Установка, настройка и тестирование FTP-сервера Linux — полное руководство CentOS
Удивительно, но многие сетевые устройства и устройства безопасности по-прежнему поддерживают только FTP, а не SFTP. Я долго бился над тем, чтобы правильно установить и настроить FTP-сервер. Теперь это окончательная рабочая версия vsftpd.
Шаг 1. Создайте ftp-пользователя
|
1 2 |
#$ sudo useradd ftpuser #$ sudo passwd ftpuser |
Шаг 2. Создайте каталог с именем «ftp» в каталоге нового пользователя /home/ftpuser/.
# Получите полный доступ к каталогу ftp.
|
1 2 |
#$ sudo mkdir /home/ftpuser/ftp #$ sudo chown -R ftpuser:ftpuser /home/ftpuser/ftp |
Шаг 3a. Отключите SSH-вход для пользователя sftp, чтобы он не мог управлять сервером через SSH-соединение.
|
1 |
#$ sudo vim /etc/ssh/sshd_config |
# Добавьте эту строку в конец файла sshd_config.
|
1 |
DenyUsers sftpuser |
# Перезапустите службы sshd.
|
1 |
#$ sudo systemctl restart sshd |
Шаг 3b. Разрешите ftp-трафик на брандмауэре операционной системы.
|
1 2 3 4 |
#$ sudo firewall-cmd --add-service=ftp #$ sudo firewall-cmd --permanent --add-port=40000-410000/tcp #$ sudo setsebool -P ftpd_full_access on #$ sudo firewall-cmd --reload |
Шаг 4. Установите FTP-сервер с помощью следующей команды
|
1 |
#$ sudo dnf install -y vsftpd |
Шаг 5a. После завершения установки включите, запустите и проверьте службу ftp.
|
1 2 3 4 5 |
#$ sudo systemctl enable vsftpd #$ sudo systemctl start vsftpd #$ sudo systemctl stop vsftpd #$ sudo systemctl restart vsftpd #$ sudo systemctl status vsftpd |
Шаг 5b. Используйте команды netstat, чтобы просмотреть рабочие порты для служб FTP.
|
1 2 3 |
#$ netstat -ap | grep ftp #$ netstat -tupan | grep 21 #$ netstat -tuna | grep tcp6 |
Шаг 6. Поскольку мы используем user_list в etc/vsftpd/user_list для управления доступом по FTP, нам нужно удалить всех пользователей из user_list и добавить пользователя ftp, как показано ниже. После внесения изменений сохраните файл.
|
1 2 3 4 5 6 7 8 |
#$ sudo cat /etc/vsftpd/user_list # vsftpd userlist # If userlist_deny=NO, only allow users in this file # If userlist_deny=YES (default), never allow users in this file, and # do not even prompt for a password. # Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers # for users that are denied. ftpuser |
Шаг 7. Измените файл /etc/vsftpd/vsftpd.conf в точности так, как указано ниже. Оставьте все остальные настройки как есть, измените или добавьте только следующие настройки.
#Отключить анонимный вход в систему
|
1 |
anonymous_enable=NO |
# Разрешить локальным пользователям входить в систему.
|
1 |
local_enable=YES |
# Включите любую форму команды записи по FTP.
|
1 |
write_enable=YES |
# Отключите порт 20 для усиления безопасности.
|
1 |
connect_from_port_20=YES |
# Привязать пользователя только к его / ее собственному локальному местоположению, если это не задано, он может перейти в другие каталоги.
|
1 |
chroot_local_user=YES |
# Если ДА, то это поддерживает как ipv4, так и ipv6. Если вы хотите использовать только ipv4, установите listen_ipv4=YES.
|
1 |
listen_ipv6=YES |
# Это значение настроено по умолчанию.
|
1 |
pam_service_name=vsftpd |
# Используйте файл user_list, чтобы контролировать, кто может получить доступ по FTP. Измените user_list.
|
1 2 3 |
userlist_enable=YES userlist_file=/etc/vsftpd/user_list userlist_deny=NO |
# Разрешить запись для пользователя.
|
1 2 3 4 |
allow_writeable_chroot=YES pasv_enable=YES pasv_min_port=40000 pasv_max_port=41000 |
# Это установит пользователя в его домашнем каталоге. Создайте каталог с именем «ftp» в домашнем каталоге пользователя/имени пользователя.
|
1 2 |
user_sub_token=$USER local_root=/home/$USER/ftp |
Шаг 8. Теперь перезапустите ваш ftp-сервис и протестируйте передачу файлов.
|
1 |
#$ sudo systemctl restart vsftpd |
Шаг 9. С другого компьютера под управлением Linux войдите на свой новый FTP-сервер и выполните следующие тестовые команды.
9a) login
|
1 2 3 4 5 6 7 8 9 |
#$ ftp 192.168.0.101 Connected to 192.168.0.101 (192.168.0.101). 220 (vsFTPd 3.0.3) Name (192.168.0.101:brendan): ftpuser 331 Please specify the password. Password:************ 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. |
9b) Check present working directory
|
1 2 3 4 5 6 7 8 9 |
ftp> pwd 257 "/" is the current directory 9c) check the list of files in your root folder ftp> ls 227 Entering Passive Mode (172,31,31,39,55,35). 150 Here comes the directory listing. -rw-r--r-- 1 1005 0 0 Nov 21 02:29 test.txt drwxr-xr-x 2 1005 0 6 Nov 21 01:55 upload 226 Directory send OK. |
9d) make and detelet a directory
|
1 2 3 4 |
ftp> mkdir test_dir 257 "/test_dir" created ftp> rmdir test_dir 250 Remove directory operation successful. |
9e) Upload a file called test.txt to the FTP server.
|
1 2 3 4 5 |
ftp> put test.txt local: test.txt remote: test.txt 227 Entering Passive Mode (172,31,31,39,169,168). 150 Ok to send data. 226 Transfer complete. |
9f) Download a file from the FTP server
|
1 2 3 4 5 6 |
ftp> get test77.txt local: test77.txt remote: test77.txt 227 Entering Passive Mode (172,31,31,39,58,6). 150 Opening BINARY mode data connection for test77.txt (13 bytes). 226 Transfer complete. 13 bytes received in 8.7e-05 secs (149.43 Kbytes/sec) |
9g) Check the files in your ftp directory now.
|
1 2 3 4 5 6 7 8 9 10 |
ftp> ls 227 Entering Passive Mode (172,31,31,39,227,212). 150 Here comes the directory listing. -rw-r--r-- 1 1005 1005 41416 Nov 21 06:07 sa-gs-cubicus-confg -rw-r--r-- 1 1005 1005 27737 Nov 21 05:49 syd1wan_r01-confg -rw-r--r-- 1 1005 1005 16478 Nov 21 05:49 syd3wan_rt01-confg -rw-r--r-- 1 1005 1005 0 Nov 21 06:44 test.txt -rw-r--r-- 1 0 0 13 Nov 21 06:46 test77.txt -rw-r--r-- 1 1005 1005 0 Nov 21 05:22 test_text_file01.txt 226 Directory send OK. |
9h) Delete the downloaded file.
|
1 2 |
ftp> delete test77.txt 250 Delete operation successful. |
9i) Open FTP and close, then quit from the session.
|
1 2 3 4 5 6 7 |
ftp> pwd 257 "/" is the current directory ftp> open Already connected to 192.168.0.101, use close first. ftp> close 221 Goodbye. ftp> quit |
Шаг 10. Также используйте FileZilla и WinSCP с вашего компьютера под управлением Windows, чтобы проверить правильность работы вашего FTP-сервера.
Если все вышеперечисленное сработало, ваш FTP-сервер будет работать без сбоев. Наслаждайтесь своим новым FTP.
To bee continue