Как настроить FTP на VPS

Рассмотрим как установить и настроить FTP на VPS под управлением ОС Linux-Ubuntu. В качестве FTP-сервера будем использовать «VSFTPD».

Чтобы установить VSFTPD необходимо подключится к VPS по «SSH».

1. Подключаемся к серверу по SSH. В командной строке вводим команду
yum install vsftpd

и ждем окончания проверки зависимостей и репозиториев и и подтверждаем установку вводом y и нажатием «Enter».

подключение к VPS по SSH

Подключение к VPS по SSH

2. При появлении  предупреждения о публичном ключе также разрешаем установку вводом y и нажатием «Enter».

Подключение к VPS по SSH

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

Подключение к VPS по SSH

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 комментируем, поставив в начале символ «#»

Подключение к VPS по SSH

6. Добавим теперь нового пользователя с достпом только по FTP

useradd -s /sbin/nologin testuser
passwd testuser

Подключение к VPS по SSH

Добавляем нового пользователя в файл /etc/vsftpd/user_list через текстовый редактор или командой

echo 'testuser'>> /etc/vsftpd/user_list

По умолчанию, vsftpd имеет запрет. Стоит запрет на пользователей без к оболочки к файловой системе, поэтому чтобы мы могли подключиться под новым пользователем, нужно в файле /etc/pam.d/vsftpd закомментировать эту строчку: auth required pam_shells.so и перезапустить vsftpd командой systemctl restart vsftpd

Подключение к VPS по SSH

7. Теперь мы можем подключится.
Под пользователем root мы имеем доступ ко всей файловой системе, под пользователем testuser — только к его домашней директории

Подключение к VPS по SSH

Подключение к VPS по SSH

Принимаем
Все способы