Протокол передачи файлов (File Transfer Protocol, FTP) дает пользователям простой путь
передачи файлов на и с FTP сервера. В FreeBSD серверная программа FTP, ftpd, включена в базовую систему. Это упрощает настройку и
администрирование FTP
сервера в FreeBSD.
Наиболее важный шаг заключается в определении того, каким учетным записям будет
позволено получать доступ к FTP серверу. В обычной системе FreeBSD есть множество
системных учетных записей, используемых различными даемонами, но пользователям должно
быть запрещен вход с использованием этих учетных записей. В файле /etc/ftpusers находится список пользователей, которым запрещен
доступ по FTP. По умолчанию он включает упомянутые системные учетные записи, но в него
можно добавить и определенных пользователей, которым будет запрещен доступ по FTP.
Вам может понадобиться ограничить доступ определенных пользователей без полного
запрета использования FTP. Это можно сделать через файл /etc/ftpchroot. В нем находится список пользователей и групп, к
которым применяется ограничение доступа. На странице справочника ftpchroot(5) дана
подробная информация, и она не будет дублироваться здесь.
Если вы захотите разрешить анонимный FTP доступ на сервер, в системе FreeBSD
необходимо создать пользователя ftp. Этот пользователь сможет
входить на FTP сервер с именем пользователя ftp или anonymous, с любым паролем (существует соглашение об использовании
почтового адреса пользователя в качестве пароля). FTP сервер выполнит chroot(2) при входе
пользователя anonymous для ограничения доступа только домашним каталогом пользователя ftp.
Существуют два текстовых файла, определяющих сообщение, отправляемое FTP клиентам.
Содержимое файла /etc/ftpwelcome будет выведено пользователям
перед приглашением на вход. После успешного входа будет выведено содержимое файла /etc/ftpmotd. Обратите внимание, что путь к этому файлу задается
относительно домашнего каталога пользователя, так что анонимным пользователям будет
отправляться ~ftp/etc/ftpmotd.
Как только FTP сервер был правильно настроен, он должен быть включен в /etc/inetd.conf. Все, что необходимо, это удалить символ
комментария ``#'' из начала существующей строки ftpd:
ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l
Как описано в Прим. 23-1, сигнал
HangUP должен быть отправлен inetd после того, как этот файл
настройки был изменен.
Теперь вы можете войти на FTP сервер, введя:
% ftp localhost
Для протоколирования даемон ftpd использует сообщения syslog(3). По
умолчанию, syslog(3) поместит
сообщения, относящиеся к FTP, в файл /var/log/xferlog.
Местоположение лог файла FTP может быть изменено путем изменения следующей строки в файле
/etc/syslog.conf:
ftp.info /var/log/xferlog
Учитывайте потенциальные проблемы, возникающие с анонимным FTP сервером. В частности,
вы должны дважды подумать, прежде чем позволить анонимным пользователям загружать файлы
на сервер. Вы можете обнаружить, что FTP сайт стал форумом, на котором происходит обмен
нелицензионным коммерческим программным обеспечением или чем-то еще хуже. Если вам
необходимо разрешить анонимную выгрузку файлов на FTP, права должны быть настроены таким
образом, чтобы эти файлы не могли прочитать другие анонимные пользователи до их
рассмотрения администратором.