Prueba con este manual. Quizás funcione para ti.
Cómo hacerlo
Instale vsftpd y una biblioteca PAM
Editar /etc/vsftpd.conf
y/etc/pam.d/vsftpd
Cree cuentas de usuario con directorios personalizados (en / var / www / por ejemplo)
Establecer directorios con el correcto chmod
ychown
Crear un usuario administrador con acceso completo al servidor
- Instalar
vsftpd
(Very Secure FTP Deamon) y libpam-pwdfile
crear usuarios virtuales
Quería crear usuarios FTP pero no quería agregar usuarios locales de Unix (sin acceso a shell, sin directorio de inicio, etc.). Un PAM (Módulos de autenticación conectables) lo ayudará a crear usuarios virtuales.
sudo apt-get install vsftpd libpam-pwdfile
- Editar
vsftpd.conf
Primero debes hacer una copia de seguridad del archivo original
sudo mv /etc/vsftpd.conf /etc/vsftpd.conf.bak
Luego crea uno nuevo
sudo vim /etc/vsftpd.conf
Copie y pegue las siguientes líneas. El archivo SOLO debe contener estas líneas:
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
nopriv_user=vsftpd
virtual_use_local_privs=YES
guest_enable=YES
user_sub_token=$USER
local_root=/var/www/$USER
chroot_local_user=YES
hide_ids=YES
guest_username=vsftpd
- Registrar usuarios virtuales
Para registrar un usuario que usa htpasswd
, así que supongo que tiene apache2
trabajando en su servidor. Cree una vsftpd
carpeta y luego coloque los archivos de configuración en ella.
sudo mkdir /etc/vsftpd
luego
sudo htpasswd -cd /etc/vsftpd/ftpd.passwd user1
-c significa que crearemos el archivo si aún no existe -d fuerza MD5, lo necesitas en ubuntu 12.04, solo úsalo siempre
El comando le pedirá una contraseña.
Si desea agregar nuevos usuarios después:
sudo htpasswd -d /etc/vsftpd/ftpd.passwd user2
- Configurar PAM en
/etc/pam.d/vsftpd
Nuevamente, debe hacer una copia de seguridad del archivo original
sudo mv /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
y crear uno nuevo
sudo vim /etc/pam.d/vsftpd
Copie y pegue estas 2 líneas (este debería ser el único contenido). Insisto solo en estas 2 líneas, perdí mucho tiempo guardando los originales y acabo de agregarlos.
auth required pam_pwdfile.so pwdfile /etc/vsftpd/ftpd.passwd
account required pam_permit.so
- Crear un usuario local sin acceso a shell
sudo useradd --home /home/vsftpd --gid nogroup -m --shell /bin/false vsftpd
Puede verificar que se haya creado con el comando id: id vsftpd. Definimos al usuario con el shell / bin / false debido al parámetro check_shell (incluso si no lo usa). Cuando el usuario final se conecta al servidor FTP, se utilizarán para obtener derechos y propiedad:
chmod
y chown
.
- Reiniciar
vsftpd
La forma común es usar init.d como todos los deamon
sudo /etc/init.d/vsftpd restart
sudo service vsftpd restart
- Crear directorios
Según la configuración, todos los usuarios se colocarán en esta carpeta: / var / www / user1.
Debe crearlos con derechos particulares: ¡la carpeta raíz no puede ser editable!
/ [root = /var/www/user1] => 555
www [ /var/www/user1/www ] => 755
docs [ /var/www/user1/docs ] => 755
Nota: el usuario no puede crear archivos o carpetas en el directorio raíz.
En lo vsftpd.conf
que tenemos, chroot_local_user=YES
el usuario no puede ver nada fuera de su carpeta. Para él, el servidor se ve así:
Así que solo ejecuta estos comandos:
mkdir /var/www/user1`
chmod -w /var/www/user1
mkdir www/user1/www
chmod -R 755 /var/www/user1/www
chown -R vsftpd:nogroup /var/www/user1
La /var/www/user1
carpeta TIENE QUE existir o la conexión fallará.
Ahora puedes intentar conectarte con tu FTP
- Cree un usuario administrador para acceder a todo el servidor
Para crear un usuario administrador necesitamos registrar un nuevo usuario con htpasswd
.
Antes de hacerlo, le aconsejaré que verifique el /etc/ftpusers
archivo que define a ciertos usuarios a los que no se les permite conectarse con ftp. Creo que es solo para usuarios locales y no para usuarios virtuales, pero por si no elige un nombre contenido en este archivo.
sudo htpasswd -d /etc/vsftpd/ftpd.passwd theadmin
Ahora necesitamos agregar una nueva línea en /etc/vsftpd.conf
chroot_list_enable=YES
Esto significa que su usuario será colocado en su carpeta (como cárcel) EXCEPTO los usuarios en / etc /
vsftpd.chroot_list
Creemos este archivo y agreguemos nuestro usuario, el archivo es una línea simple que contiene "theadmin". Agregue un usuario por línea. Eso significa que NO necesita crear una /var/www/theadmin
carpeta, el usuario iniciará sesión y comenzará /home/vsftpd
.
Reinicie el servidor y listo.