|
|
автор Mario M. Knopf <netzmeister/at/neo5k/dot/org> Об авторе: Mario нравится Linux, сети и темы связанные с компьютерной безопасностью. В свое свободное время он занимается двумя сайтами : neo5k.org и linuxwallpapers.de. Перевод на Русский: Лебедев Александр Сергеевич <slice(at)list.ru> Содержание: |
vsftpd - Введение в безопасный FTP-демонРезюме:
Эта статья описывает основные возможности "Very Secure FTP Daemon". Я
начну с описания основ работы FTP и vsftpd. После этого мы произведем
установку и настройку vsftpd-демона. И закончим тестом
работоспособности нашего сервера.
|
Контроль над передачей данных выполняет протокол TCP (Transmission Control Protocol), который гарантирует получателю доставку сообщения, поэтому FTP нет необходимости проверять были ли пакеты потеряны и произошли ли какие-нибудь ошибки во время их передачи. TCP гарантирует, пришли ли они без ошибок и в правильной последовательности.
Передача данных происходит тремя различными способами маркировки потока, которые могут означать конец файла (EOF) или двумя другими, использующими маркировку конца записи (EOR).
Определяют еще два различных режима:
ASCII-режим используется для передачи текстовой информации, а бинарный - для передачи других данных, обычно программ. Пользователю не нужно менять режимы при передачи своих данных, обычно функции определения их типа выполняет FTP-клиент.
Каждый пользователь должен понять, что пароли, передаваемые при авторизации, не шифруются , и на это нужно особо обратить внимание. Над этим стоит серьезно призадуматься. В октябре 1997 в RFC 2228[2] были опубликованы некоторые поправки, касающиеся безопасности FTP.
Название vsftpd произошло от "very secure FTP deamon" (чрезвычайно безопасный FTP-демон) который разрабатывается под руководством Chris Evans. С самого начала этапа разработки FTP-сервера, безопасности уделялось особое внимание.
К примеру, vsftpd можно запустить в chroot-среде. Это означает, что программа ( vsftpd)создает для нее новую корневую директорию (l), к которой не будут иметь доступ внешние программы или файлы. Поэтому, если FTP-сервер будет скомпрометирован злоумышленником, он не сможет выйти за пределы этой директории и нанести вред системе. Больше информации о chroot вы можете подчерпнуть из другой статьи [3]. Следующая статья [4] также рекомендуется к прочтению об этом интересном механизме безопасности в vsftpd
Среди многих требований предъявляемых к FTP-серверу, безопасность имеет наибольший приоритет, и в этом плане vsftpd значительно превосходит другие FTP-сервера. Достаточно упомянуть WU-FTPD[5] в котором было выявлено огромное количество ошибок за последние несколько лет.
После того как вы скачали и распаковали архив с исходниками, зайдите в созданную распаковщиком директорию и запустите make. Ниже показан один из способов, как можно это сделать:
neo5k@phobos> tar xzvf vsftpd-x.x.x.tar.gz
neo5k@phobos> cd vsftpd-x.x.x
neo5k@phobos> make
neo5k@phobos> mkdir /var/ftp
neo5k@phobos> useradd -d /var/ftp ftp
neo5k@phobos> chown root.root /var/ftp
neo5k@phobos> chmod og-w /var/ftp
neo5k@phobos> make install
Man-страницы, а также сама программа должны быть скопированы в надлежащие директории. В случае каких-нибудь проблем сделайте это самостоятельно.neo5k@phobos> cp vsftpd /usr/sbin/vsftpd
neo5k@phobos> cp vsftpd.conf.5 /usr/share/man/man5
neo5k@phobos> cp vsftpd.8 /usr/share/man/man8
neo5k@phobos> cp vsftpd.conf /etc
# Это - комментарий
# Разрешать ли анонимный доступ ? YES/NO
anonymous_enable=NO
# Разршать ли загрузку файлов анонимному пользователю? YES/NO
anon_upload_enable=NO
# Разрешать ли анонимному пользователю создавать свои директории ?
YES/NO
anon_mkdir_write_enable=NO
# Разрешать ли пользователю производить операции с записью, такие
как перименование или удаление ? YES/NO
anon_other_write_enable=NO
# Регистрировать ли сообщения локальных пользователей ? YES/NO
local_enable=YES
# Должны ли пользователи находится только в своих директориях ?
YES/NO
chroot_local_user=YES
# Максимальная скорость передачи данных для зарегистрированных
пользователей. По-умолчанию = 0 (неограниченная).
local_max_rate=7200
# Разрешать ли запись в каталог ? YES/NO
write_enable=YES
# Включать сообщения при смене директории ? YES/NO
dirmessage_enable=YES
# Показ баннера при регистрации пользователя.
ftpd_banner="Welcome to neo5k's FTP service."
# Включить регистрацию событий ? YES/NO
xferlog_enable=YES
# Регистрировать все ативные FTP-соединения ? YES/NO
# Осторожно! Возможно на экране будет огромное количество информации.
log_ftp_protocol=NO
# Разрешать соединения только на порт 20 (ftp data) ? YES/NO
connect_from_port_20=YES
# Таймаут сессии
idle_session_timeout=600
# Таймаут передачи данных
data_connection_timeout=120
# Предоставлять вход через Pluggable Authentication Modules (PAM)
pam_service_name=vsftpd
# Запускать вручную ? YES/NO - зависит от режима (inetd, xinetd,
Standalone).
# У автора FTP-сервис запускается через xinetd, поэтому у него стоит
значение NO.
listen=NO
neo5k@phobos> vi /etc/inetd.conf
# ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd
ftp stream tcp nowait root /usr/sbin/tcpd vsftpd
# vsftp daemon.
service ftp
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/sbin/vsftpd
per_source = 5
instances = 200
no_access = 192.168.1.3
banner_fail = /etc/vsftpd.busy_banner
log_on_success += PID HOST DURATION
log_on_failure += HOST
nice = 10
}
# Должен ли vsftpd-демон запускаться вручную? YES/NO
listen=YES
neo5k@phobos> /usr/sbin/vsftpd &
А если было правильно указано, в какой папке искать в первую очередь, то просто:neo5k@phobos> vsftpd &
Просмотреть, является ли эта папка проверяемой по-умолчанию можно вот так:neo5k@phobos> echo $PATH
/usr/sbin:/bin:/usr/bin:/sbin:/usr/X11R6/bin
neo5k@phobos> ftp phobos
Connected to phobos
220 "Welcome to neo5k's FTP service."
Name (phobos:neo5k): testuser
331 Please specify the password.
Password:
230 Login successful
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls -l
229 Entering Extended Passive Mode
150 Here comes the directory listing
drwxr-xr-x 11 500 100 400 May 07 16:22 docs
drwxr-xr-x 9 500 100 464 Feb 01 23:05 hlds
drwxr-xr-x 39 500 100 4168 May 10 09:15 projects
226 Directory send OK.
ftp>
Конечно, эта статья описывает лишь малую часть того, что может предоставить нам vsftpd, раскрыты не все аспекты его конфигурирования. Если вы хотите найти больше информации о vsftpd , то вы можете посетить его домашнюю страничку [6]и прочитать более подробную документацию.
|
Webpages maintained by the LinuxFocus Editor team
© Mario M. Knopf "some rights reserved" see linuxfocus.org/license/ http://www.LinuxFocus.org |
Translation information:
|
2004-11-01, generated by lfparser version 2.48