1.Установка proftpd
1 |
# yum install proftpd |
1 |
# chkconfig --level 2345 proftpd on |
2.Установка утилиты ftpasswd
Скачиваем утилиту ftpasswd и кладем ее в /usr/bin/ftpasswd
1 |
# curl http://www.castaglia.org/proftpd/contrib/ftpasswd > /usr/bin/ftpasswd |
1 |
# ls -al /usr/bin/ | grep ftpasswd |
1 |
-r-xr-xr-x 1 root root 28692 Апр 15 18:23 ftpassw |
1 |
# chmod 0555 /usr/bin/ftpasswd |
1 |
# cp /etc/proftpd.conf /etc/proftpd.conf~ |
3.Добавление системного пользователя(vftp),от которого будут действовать виртуальные пользователи
1 |
# groupadd -g 510 vftp |
1 |
# useradd -g 510 -u 510 -c 'Virtual FTP User' -d /home/vftp -s /bin/bash vftp |
1 |
# cat /etc/passwd | grep vftp |
1 |
vftp:x:510:510:Virtual FTP User:/home/vftp:/bin/bash |
1 |
# cat /etc/group | grep vftp |
1 |
vftp:x:510: |
1 |
# ls -al /home/ | grep vftp |
1 |
drwx------ 2 vftp vftp 4096 Апр 15 18:41 vftp |
4.Создание виртуальных пользователей
1 |
# ftpasswd --passwd --file /etc/ftpd.passwd --name=vftpuser1 --shel=/sbin/nologin --home=/home/vftpuser1 --uid=510 --gid=510 |
1 |
# ftpasswd --passwd --file /etc/ftpd.passwd --name=vftpuser2 --shel=/sbin/nologin --home=/home/vftpuser2 --uid=510 --gid=510 |
1 |
# mkdir -p /home/{vftpuser1,vftpuser2} |
1 |
# chown -R vftp:vftp /home/vftpuser1 |
1 |
# chown -R vftp:vftp /home/vftpuser2 |
1 |
# ls -al /home/ | grep vftp |
1 2 3 |
drwx------ 2 vftp vftp 4096 Апр 15 18:41 vftp drwxr-xr-x 2 vftp vftp 4096 Апр 15 18:49 vftpuser1 drwxr-xr-x 2 vftp vftp 4096 Апр 15 18:49 vftpuser2 |
1 |
# ftpasswd --group --name=vftp --file=/etc/ftpd.group --gid=510 --member vftpuser1 |
Далее вручную добавляем в /etc/ftpd.group пользователя vftpuser2
На выходе имеем
1 |
# cat /etc/ftpd.group |
1 |
vftp:x:510:vftpuser1,vftpuser2 |
Особенности авторизации
Только системные пользователи
1 2 3 4 5 |
# AuthUserFile /etc/ftpd.passwd # AuthGroupFile /etc/ftpd.group # AuthPAM off AuthPAMConfig proftpd AuthOrder mod_auth_pam.c* mod_auth_unix.c |
Системные и виртуальные пользователи
1 2 3 4 5 |
AuthUserFile /etc/ftpd.passwd AuthGroupFile /etc/ftpd.group AuthPAM off AuthPAMConfig proftpd AuthOrder mod_auth_pam.c* mod_auth_unix.c mod_auth_file.c |
Только виртуальные пользователи
1 2 3 4 5 6 |
AuthUserFile /etc/ftpd.passwd AuthGroupFile /etc/ftpd.group AuthOrder mod_auth_file.c AuthPAM off AuthPAMConfig proftpd #AuthOrder mod_auth_pam.c* mod_auth_unix.c mod_auth_file.c |
Проверка синтаксиса proftpd.conf
1 |
# proftpd -t |
Перезапуск proftpd
1 |
# /etc/init.d/proftpd restart |
Тестировка подключения с командной строки
1 |
# ftp |
1 |
ftp> open 192.168.1.16 |
1 2 |
Connected to 192.168.1.16. 220 FTP Server ready. |
1 2 |
Name (192.168.1.16:root): vftpuser1 331 Необходим пароль для пользователя vftpuser1 |
1 2 3 4 |
Password: 230 Пользователь vftpuser1 подключён Remote system type is UNIX. Using binary mode to transfer files. |
1 2 |
ftp> pwd 257 "/" является текущей директорией |
1 2 3 4 5 6 7 |
ftp> ls -al 227 Entering Passive Mode (192,168,1,16,223,244). 150 Открываю режим ASCII данных для file list drwxr-xr-x 2 vftpuser1 vftp 4096 Apr 15 16:40 . drwxr-xr-x 2 vftpuser1 vftp 4096 Apr 15 16:40 .. -rw-r--r-- 1 vftpuser1 vftp 0 Apr 15 16:40 CONFIG.SYS 226 Передача завершена |
1 2 |
ftp> quit 221 До свидания. |
Важно!!!
Обязательно отключить Selinux
1 |
# cat /etc/selinux/config |
1 |
SELINUX=disabled |
1 |
# setenforce 0 |
1 |
# getenforce |
1 |
permissive |