Рассмотрим, как установить и настроить FTP на VPS под управлением ОС Linux-Ubuntu. В качестве FTP-сервера будем использовать «VSFTPD». «Арендовать VDS» можно на нашем сайте.
Чтобы установить VSFTPD необходимо подключится к VPS по «SSH».
1. Подключаемся к серверу по SSH. В командной строке вводим команду
yum install vsftpd
и ждем окончания проверки зависимостей и репозиториев и и подтверждаем установку вводом y и нажатием «Enter».
2. При появлении предупреждения о публичном ключе также разрешаем установку вводом y и нажатием «Enter».
3. Редактируем файл настроек FTP-сервера /etc/vsftpd/vsftpd.conf
В данном примере используется текстовый редактор «nano», команда:
nano /etc/vsftpd/vsftpd.conf
Выставляем опцию anonymous_enable=NO (запрет на подключение анонимных пользователей), chroot_local_user=YES (запретим выход за пределы домашней директории пользователя), добавляем опцию allow_writeable_chroot=YES (разрешаем подключения пользователю, у которого есть права на запись в корневую директорию), и назначаем порты, которые будут использоваться для пассивного режима подключений:
pasv_min_port=49000
pasv_max_port=55000
Чтобы разрешить только определенным пользователям входить на FTP-сервер, добавьте следующие строки после userlist_enable=YES строки:
userlist_file=/etc/vsftpd/user_list
userlist_deny=NO
Когда эта опция включена, нужно явно указать, какие пользователи могут войти, добавив имена пользователей в /etc/vsftpd/user_list файл (по одному пользователю в строке).
Чтобы разрешить пользователю входить за пределы своей корневой директории вставляем опцию chroot_list_file=/etc/vsftpd/chroot_list, в файле /etc/vsftpd/chroot_list будет перечислен список пользователей, которым это разрешено и раскомментируем опцию chroot_list_enable=YES.
Чтобы по FTP отображались файлы, имена которых начинаются с точки, например .htaccess, включаем опцию force_dot_files=YES.
4. Разрешаем автозапуск vsFTPd и запускаем его командами
systemctl enable vsftpd
systemctl start vsftpd
Далее открываем порты в файрволле и также его перезапускаем.
firewall-cmd --permanent --add-port=21/tcp
firewall-cmd --permanent --add-port=49000-55000/tcp
firewall-cmd --reload
5. Добавим пользователей.
Чтобы разрешить доступ пользователю root, внесем его в файлы etc/vsftpd/chroot_list и /etc/vsftpd/user_list
Это можно сделать, как через текстовый редактор, так и командами:
echo 'root'> /etc/vsftpd/user_list
echo 'root'> /etc/vsftpd/chroot_list
В файле же /etc/vsftpd/ftpusers строку с root комментируем, поставив в начале символ «#»
6. Добавим теперь нового пользователя с доступом только по FTP
useradd -s /sbin/nologin testuser
passwd testuser
Добавляем нового пользователя в файл /etc/vsftpd/user_list через текстовый редактор или командой
echo 'testuser'>> /etc/vsftpd/user_list
По умолчанию, vsftpd имеет запрет. Стоит запрет на пользователей без к оболочки к файловой системе, поэтому чтобы мы могли подключиться под новым пользователем, нужно в файле /etc/pam.d/vsftpd закомментировать эту строчку: auth required pam_shells.so и перезапустить vsftpd командой systemctl restart vsftpd
7. Теперь мы можем подключится.
Под пользователем root мы имеем доступ ко всей файловой системе, под пользователем testuser — только к его домашней директории