Протокол передачи файлов (File Transport Protocol - FTP) — пожилой TCP-протокол, разработанный для передачи файлов по сети. Так как обмен данными с сервером, в том числе и при проверке подлинности, происходит в открытом виде, этот протокол считается небезопасным и при его настройке следует соблюдать осторожность.
Red Hat Enterprise Linux предлагает три FTP сервера.
gssftpd — основанный на xinetd FTP-демон, поддерживающий Kerberos, и поэтому не передающий по сети учётные данные в открытом виде.
Red Hat Content Accelerator (tux) — веб-сервер, встроенный в ядро, поддерживающий FTP.
vsftpd — отдельная, ориентированная на безопасность реализация службы FTP.
Следующие рекомендации касаются настройки FTP-службы vsftpd.
Прежде чем пользователь передаст имя и пароль, он увидит заголовок с приветствием. По умолчанию, в этом заголовке будут указаны сведения о версии, а с их помощью взломщики могут определить слабые места в вашей системе.
Чтобы изменить заголовок с приветствием для vsftpd, добавьте в /etc/vsftpd/vsftpd.conf следующее указание:
ftpd_banner=<insert_greeting_here> |
Замените в этом указании <insert_greeting_here> текстом приветствия.
Для многострочных заголовков лучше использовать отдельный файл. Чтобы упростить управление разными заголовками, поместите их в один каталог /etc/banners/. В этом примере заголовок для FTP-соединений находится в /etc/banners/ftp.msg. Ниже показано, как может выглядеть этот файл:
#################################################### # Hello, all activity on ftp.example.com is logged.# #################################################### |
Замечание | |
---|---|
Вовсе не обязательно начинать каждую строку файла с 220, как было показано в разделе 5.1.1.1 Оболочки TCP и заголовки соединений. |
Чтобы служба vsftpd ссылалась на этот файл заголовка, добавьте в /etc/vsftpd/vsftpd.conf следующее указание:
banner_file=/etc/banners/ftp.msg |
Также дополнительные заголовки в ответ на входящие подключения можно отправлять с помощью оболочек TCP, как описано в разделе 5.1.1.1 Оболочки TCP и заголовки соединений.
Присутствие каталога /var/ftp/ включает анонимную учётную запись.
Проще всего создать этот каталог можно, установив пакет vsftpd. Этот пакет настраивает дерево каталогов для анонимных пользователей и даёт им в этих каталогах только право чтения.
По умолчанию анонимный пользователь не может записывать ни в один каталог.
Внимание | |
---|---|
Разрешая анонимный доступ к FTP-серверу, проверьте, где находятся важные данные. |
Чтобы анонимные пользователи могли закачивать файлы, рекомендуется создать каталог в /var/ftp/pub/ с правом только на запись.
Для этого введите:
mkdir /var/ftp/pub/upload |
Затем измените разрешения, чтобы анонимные пользователи не видели, что находится в каталоге:
chmod 730 /var/ftp/pub/upload |
Этот каталог в подробном списке будет выглядеть так:
drwx-wx--- 2 root ftp 4096 Feb 13 20:05 upload |
Предупреждение | |
---|---|
Администраторы, разрешающие анонимным пользователям читать и писать в каталоги, часто обнаруживают, что их сервера становятся складом пиратского программного обеспечения. |
Кроме этого, для службы vsftpd добавьте в /etc/vsftpd/vsftpd.conf следующую строку:
anon_upload_enable=YES |
Так как в протоколе FTP имена и пароли пользователей передаются по незащищённым сетям в открытом виде, будет правильно, если вы запретите доступ к серверу пользователям с их учётными данными.
Чтобы отключить учётные записи пользователей для vsftpd, добавьте в /etc/vsftpd/vsftpd.conf следующее указание:
local_enable=NO |
Запретить доступ к FTP серверу определённым пользователям, например, root или другим с привилегиями sudo, легче всего с помощью файла PAM, как показано в разделе 4.4.2.4 Отключение root с помощью PAM. Файл конфигурации PAM для vsftpd называется /etc/pam.d/vsftpd.
Также можно отключить учётные записи непосредственно в самой службе.
Чтобы отключить учётные записи пользователей в vsftpd, добавьте имя пользователя в /etc/vsftpd.ftpusers.
Используйте оболочки TCP для управления доступом к демону FTP, как описано в разделе 5.1.1 Усиление безопасности с помощью оболочек TCP.