В этой статье я опишу настройку FTP сервера на базе Debian 5 (Lenny). Будем использовать vsftpd. VSFTPD (Very Secure FTP Daemon) — как следует из названия, очень защищённый демон FTP, с хорошей производительностью, поддерживаются: IPv6, SSL, виртуальные пользователи, есть контроль скорости полосы пропускания. На vsftpd работают ftp.debian.org, ftp.freebsd.org, ftp.suse.com, ftp.openbsd.org, ftp.gnu.org, ftp.kernel.org, ftp.gnome.org, ftp.gimp.org, ftp.rpmfind.net, ftp.linux.org.uk, ftp-stud.fht-esslingen.de, gd.tuwien.ac.at, ftp.sunet.se, ftp.ximian.com, ftp.engardelinux.org, ftp.sunsite.org.uk, ftp.isc.org, ftp.redhat.com.
В статье будут описаны несколько конфигураций:
- Простая конфигурация. Анонимные пользователи имеют доступ только на чтение. Для записи информации на FTP сервер используется пользователь ftpuser. Разрешён доступ локальных пользователей к своим домашним каталогам.
- Более сложная конфигурация. Анонимные пользователи всё так же имеют доступ только на чтение. Локальные пользователи не используются. Вместо них используются виртуальные пользователи, учётные записи которых хранятся в MySQL. Каждому виртуальному пользователю можно задать свои параметры работы с FTP. Используется PAM авторизация.
- Более защищённая конфигурация. Анонимные пользователи не используются. Используются только виртуальные пользователи, учётные записи которых хранятся в MySQL. Для каждого пользователя можно задать свою конфигурацию. Используется SSL.
Простая конфигурация FTP сервера
#aptitude install vsftpd
При этом создаются:
- Системный пользователь ftp, который добавляется в группу nogroup
- Домашняя директория пользователя ftp - /home/ftp. Интересная особенность: при установке пакета выдаётся сообщение о том, что домашний каталог НЕ создаётся!
- Создаётся файл /etc/ftpusers. В нём перечислены пользователи, которым запрещён доступ к FTP.
Пользователь ftp не будет работать с FTP сервером, но он нужен для его корректной работы. Так как директория FTP сервера будет располагаться в /var/ftp, то изменим домашнюю директорию для пользователя ftp:
# usermod -d /var/ftp ftp
Удалим прежнюю директорию этого пользователя:
# rmdir /home/ftp
Теперь настроим пользователя, у которого будут права записи в корневую директорию FTP сервера:
Cоздаём группу ftpuser
# addgroup ftpuser
Создаём пользователя ftpuser, добаляем его в группу ftpuser и устанавливаем домашним каталогом директорию FTP сервера, а так же меняем пароль
#useradd -d /var/ftp -g ftpuser ftpuser
#passwd ftpuser
Создаём директорию FTP сервера и устанавливаем права:
# mkdir /var/ftp
# chmod 555 /var/ftp
# chown root:ftpuser /var/ftp
Создаём публичный каталог.
# mkdir /var/ftp/pub
# chown ftpuser:ftpuser /var/ftp/pub
Конфигурационный файл vsftpd располагается в /etc/vsftpd.conf. Сделаем его резервную копию.
#cp /etc/vsftpd.conf /etc/vsftpd.conf_old
Теперь очистим /etc/vsftpd.conf, откроем текстовым редактором:
# cat /dev/null > /etc/vsftpd.conf
# vim /etc/vsftpd.conf
и напишем:
# Запускать vsftpd в независимом режиме
listen=YES
# Делаем анонимный доступ
anonymous_enable=YES
# Анонимные входят без пароля
no_anon_password=YES
# Анонимные будут попадать в публичную директорию
anon_root=/var/ftp/pub
anon_umask=022
# Разрешаем вход локальным пользователям с правом записи в домашних директориях
local_enable=YES
write_enable=YES
local_umask=022
# Локальные пользователи будут входить только в свои домашние каталоги
chroot_local_user=YES
chroot_list_enable=NO
# Сообщения будут записываться в собственный журнал
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
Теперь перестартуем vsftpd:
/etc/init.d/vsftpd restart
Если всё работает как надо и сервер будет использоваться не только локально, то добавим ещё несколько строк после listen:
# Установки публичного FTP
max_clients=100
max_per_ip=10
hide_ids=YES
idle_session_timeout=600
data_connection_timeout=120
dirmessage_enable=YES
ftpd_banner=Welcome!
Комментариев нет:
Отправить комментарий