Установка и настройка FTP-сервера - vsftpd
Решил обратить внимание, еще на один знатный FTP-сервер, имя которого - vsftpd. Vsftpd был разработан и реализован с нуля с учетом требований безопасности. По нагрузкам, вот краткий пример:
За 24 часов, Vsftpd обслужил 2.6TB с одновременным число пользователей более 1500. Это на одной машине!
Основные функциональные характеристики:
* Виртуальные IP;
* Виртуальные пользователи;
* работает как отдельно так и через inetd;
* Мощная система конфигурирования для каждого пользователя;
* Полосы пропускания;
* Настройка для каждого IP;
* Установка лимитов для каждого IP;
* Поддержка протокола IPv6;
* Поддержка шифрования SSL путем интеграции;
Прошел кратко по офсайту и увидел список FTP-серверов которые доверяют vsftpd. После того, как увидел в нем ftp.freebsd.org, решил нужно ставить.
Обновляем порты удобным вам способом и начинаем инсталить:
[root@srv /usr/ports/ftp/vsftpd]# make config
В окне "Options for vsftpd 2.3.2" выбираем:
[ ] VSFTPD_SSL Include support for SSL
[ ] PIDFILE unofficial support for pidfile
Настроим vsftpd с авторизацией пользователей по login\password, для этого соответственно отредактируем конфиг:
listen_address=192.168.0.1
# Выключение анонимного режима FTP.
anonymous_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
# Разрешаем работать в фоновом режиме.
background=YES
# Запираем каждого юзера в свою клелку.
chroot_local_user=YES
# Каждый путь к клетке юзера, берется из домашних директорий с /etc/passwd.
passwd_chroot_enable=YES
# Если "chroot_local_user=NO", тогда в файле /etc/ftp_chroot_list прописываем кого, куда чрутить.
#chroot_list_enable=YES
#chroot_list_file=/etc/ftp_chroot_list
# Разрешаем локальным юзерам использовать FTP-сервер.
local_enable=YES
# Разрешить просматривать каталоги рекурсивно с опцией "-R" для ls.
ls_recurse_enable=YES
# Разрешаем или запрещаем юзерам записывать файлы
write_enable=YES
# Работать в автономном режиме?
listen=YES
# Разрешения, с которыми создаются закачиваемые файлы.
file_open_mode=0600
# Этот каталог должен быть пустым, так как он используется chroot() клеткой во время, когда vsftpd не запрашивает доступ к файловой системе.
secure_chroot_dir=/var/empty
# Указываем диапазон портов для пассивного режима например (30000:50000). Так же не забываем потом их открыть у у себя на фаерволе.
pasv_min_port=30000
pasv_max_port=50000
# Максимально разрешенная скорость передачи данных (байт/c), для локальных пользователей.
local_max_rate=25600
# Разрешить использование списка пользователей .
userlist_enable=YES
# Путь к файлу списка разрешенных или запрещенных пользователей.
userlist_file=/etc/user_list
# Включаем userlist, указываем расположение файла, а так же действие.
# "userlist_deny=NO" - Список будет белым. Запрещены все, кто явно не разрешены.
# "userlist_deny=YES" - Список будет черным. Расрешены все, кто явно не запрещены.
userlist_deny=NO
# Разрешаем записывать в лог, кто чего делал.
xferlog_enable=YES
# Местоположение того самого лога.
xferlog_file=/var/log/vsftpd.log
# Разрешаем соединение по 20-м порту.
connect_from_port_20=YES
# Поддержка древних FTP клиентов.
async_abor_enable=YES
# Используем родное время, а не GMT.
use_localtime=YES
# Ограничение на количество сесий с одного IP.
max_per_ip=4
# Что бы юзеры создавали файлы с правами - 775.
local_umask=001
# Данные будут скачиваться и закачиваться в аски.
ascii_download_enable=YES
ascii_upload_enable=YES
# Приветствие при входе.
ftpd_banner=Hello! This my FTP!
# Разрешить просматривать файлы которые начинаются с точки (скрытые)
force_dot_files=NO
Создаем файл для пользователей, каджый пользователь с новой строки.
В этом файлике будет располагаться белый список пользователей. Пользователей, необходимо писать по одному в строчку.
Создаем каталоги:
[root@srv /]# mkdir -p /var/ftp/public
[root@srv /]# chmod 777 /var/ftp/incoming/
[root@srv /]# chmod 555 /var/ftp/public/
[root@srv /]# chmod 555 /var/ftp
[root@srv /]# chown -R ftp:wheel /var/ftp
Добавим в /etc/rc.conf для автостарта:
Запускаем:
Starting vsftpd.
Смотрим поднялся ли он?
vsftpd is running as pid 11564.
Пробуем коннектиться:
Connected to 192.168.0.1.
220 Hello! This my FTP!
Name (192.168.0.1:root): ftp
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
Обсуждения на форуме: тут.
Удачи!
- Войдите на сайт для отправки комментариев
- Версия для печати