Red Hat / CentOS VSFTPD FTP конфигурация сервера



vsftpd (Very Secure FTP Daemon) - является FTP сервером для UNIX- подобных систем, включая CentOS / RHEL / Fedora и другие Linux дистрибутивы. Он поддержтвает новый протокол IPv6, SSL, ограничевание пользователей домашней директорией, также много других дополнительных возможностей.

В этом руководстве вы узнаете, как:

- устанавливать vsftpd для обеспечения службы FTP.
- конфигурировать vsftpd.
- настраивать Firewall для защиты FTP Serverа.
- настраивать vsftpd с SSL/TLS.
- настраивать vsftpd только для скачивания, как Анонимный Интернет Сервер
- настраивать vsftpd с виртуальными пользователями, и многое другое.

VSFTPD обеспечивает безопасность, производительность и надежность по сравнению с другими серверами.

Краткий список функций vsftpd:

- виртуальные IP конфигурации
- виртуальные пользователи
- запуск автономных или INETD / Xinetd операций
- Perl-user конфигурации пользователя
- регулирование трафика
- настраиваемость для IP каждого клиента
- ограничения для IP каждого клиента
- поддержка IPv6
- поддержка шифрования SSL путем интеграции
- и многое другое.

Установка FTP Vsftpd сервера

Установка vsftpd пакета выполняется через yum - комманду:
# yum install vsftpd

Vsftpd - установки по умолчанию:

Порты : TCP / UDP - 21 и 20
Файл конфигурации: /etc/vsftpd/vsftpd.conf
Запрещенные пользователи: /etc/vsftpd/ftpusers

Конфигурирование Vsftpd сервера

Откройте файл:
# vi /etc/vsftpd/vsftpd.conf

Отмените стандартный ftpd xferlog формат log-ов:
xferlog_std_format=NO

Разрешите похожий, vsftpd - формат журнала. По умолчанию нахождение файла log-ов /var/log/vsftpd.log :
log_ftp_protocol=YES

Всем директориям, выше домашней, будет вестись журнал для всех FTP операций. Нужно закрыть пользователей в своих домашних директориях :
chroot_local_user=YES

Можно создать файл - баннер для всех FTP пользователей:
banner_file=/etc/vsftpd/issue

Создайте файл /etc/vsftpd/issue с любым подходящим вашей политике организации сообщением:

NOTICE TO USERS
Use of this system constitutes consent to security monitoring and testing.

Любая активность будет записана в файле лога с указанием вашего имени хоста и IP адреса.
All activity is logged with your host name and IP address.

Запуск Vsftpd сервисы

Разрешить сервис vsftpd при загрузке:
# chkconfig vsftpd on

Запустить сервис
# service vsftpd start
# netstat -tulpn | grep :21

Настройка Iptables для защиты FTP сервера

Откройте файл /etc/sysconfig/iptables :
# vi /etc/sysconfig/iptables

Добавьте следующие строки, которые должны быть перед последними, до LOG и DROP строк для RH-Firewall-1-INPUT :
-A RH-Firewall-1-INPUT -m state --state NEW -p tcp --dport 21 -j ACCEPT

Откройте файл /etc/sysconfig/iptables-config, введя:
# vi /etc/sysconfig/iptables-config

Убедитесь, что список модулей (если больше одного) разделен пробелами, содержит дополнительный модуль FTP:
IPTABLES_MODULES="ip_conntrack_ftp"

Сохраните и закройте файл. Перезапустите firewall:
# service iptables restart

Подсказка: Просмотреть последние строки FTP Log файла можно, набрав комманду:
# tail -f /var/log/vsftpd.log

Пример вывода на экран:
Thu May 21 11:40:31 2009 [pid 42298] FTP response: Client "10.1.3.108", "530 Please login with USER and PASS."
Thu May 21 11:40:36 2009 [pid 42298] FTP command: Client "10.1.3.108", "USER vivekda"
Thu May 21 11:40:36 2009 [pid 42298] [vivek] FTP response: Client "10.1.3.108", "331 Please specify the password."
Thu May 21 11:40:38 2009 [pid 42298] [vivek] FTP command: Client "10.1.3.108", "PASS"
Thu May 21 11:40:38 2009 [pid 42297] [vivek] OK LOGIN: Client "10.1.3.108"
Thu May 21 11:40:38 2009 [pid 42299] [vivek] FTP response: Client "10.1.3.108", "230 Login successful."
Thu May 21 11:40:38 2009 [pid 42299] [vivek] FTP command: Client "10.1.3.108", "SYST"
Thu May 21 11:40:38 2009 [pid 42299] [vivek] FTP response: Client "10.1.3.108", "215 UNIX Type: L8"
Thu May 21 11:40:39 2009 [pid 42299] [vivek] FTP command: Client "10.1.3.108", "PORT 10,1,3,108,162,253"
Thu May 21 11:40:39 2009 [pid 42299] [vivek] FTP response: Client "10.1.3.108", "200 PORT command successful. Consider using PASV."
Thu May 21 11:41:05 2009 [pid 42299] [vivek] FTP response: Client "10.1.3.108", "150 Ok to send data."
Thu May 21 11:41:06 2009 [pid 42299] [vivek] OK UPLOAD: Client "10.1.3.108", "/windows-7-too-many-programs.png", 8957 bytes, 6.70Kbyte/sec
Thu May 21 11:41:06 2009 [pid 42299] [vivek] FTP response: Client "10.1.3.108", "226 File receive OK."
Thu May 21 11:41:10 2009 [pid 42299] [vivek] FTP command: Client "10.1.3.108", "TYPE A"
Thu May 21 11:41:10 2009 [pid 42299] [vivek] FTP response: Client "10.1.3.108", "200 Switching to ASCII mode."
Thu May 21 11:41:11 2009 [pid 42299] [vivek] FTP command: Client "10.1.3.108", "PORT 10,1,3,108,217,96"
Thu May 21 11:41:11 2009 [pid 42299] [vivek] FTP response: Client "10.1.3.108", "200 PORT command successful. Consider using PASV."
Thu May 21 11:41:11 2009 [pid 42299] [vivek] FTP command: Client "10.1.3.108", "LIST"
Thu May 21 11:41:11 2009 [pid 42299] [vivek] FTP response: Client "10.1.3.108", "150 Here comes the directory listing."
Thu May 21 11:41:11 2009 [pid 42299] [vivek] FTP response: Client "10.1.3.108", "226 Directory send OK."

Tip: Restrict Access to Anonymous User Only

Edit the vsftpd configuration file /etc/vsftpd/vsftpd.conf and add the following:

local_enable=NO
Tip: Disable FTP Uploads

Edit the vsftpd configuration file /etc/vsftpd/vsftpd.conf and add the following:

write_enable=NO
Security Tip: Place the FTP Directory on its Own Partition

Separation of the operating system files from FTP users files may result into a better and secure system. Restrict the growth of certain file systems is possible using various techniques. For e.g., use /ftp partition to store all ftp home directories and mount ftp with nosuid, nodev and noexec options. A sample /etc/fstab enter:

/dev/sda5 /ftp ext3 defaults,nosuid,nodev,noexec,usrquota 1 2
Disk quota must be enabled to prevent users from filling a disk used by FTP upload services. Edit the vsftpd configuration file. Add or correct the following configuration options to represents a directory which vsftpd will try to change into after an anonymous login:
anon_root=/ftp/ftp/pub

Перевод CETb, адрес оригинала:
(http://www.cyberciti.biz/tips/rhel-fedora-centos-vsftpd-installation.html)

Back to top