Традиционным протоколом для обмена файлами по сети является протокол FTP (File transfer protocol, протокол передачи файлов). Этот протокол был разработан в те времена, когда мировая сеть не содержала в себе никаких опасностей. В результате сейчас очень трудно защитить те сервисы, которые работают по этому протоколу – он просто не рассчитан на защиту. Однако при этом он настолько широко распространён (по историческим причинам), что очень часто предоставлять по нему доступ необходимо. Поэтому этот протокол следует рассмотреть.
1. Установка FTP-сервера
В базовую поставку FreeBSD входит стандартный системный FTP-сервер. Однако он обладает неочевидной настройкой и крайне низкой функциональностью. Поэтому покажем использование протокола FTP на примере наиболее безопасного на данный момент FTP-сервера Pure-FTP.
Также, как и Apache, Pure-FTP присутствует в коллекции портов. Для его установки необходимо выполнить следующие шаги:
1. Перейти в каталог порта Pure-FTP категории ftp:
# cd /usr/ports/ftp/pure-ftpd
2. Собрать порт Pure-FTP:
# make
3. Установить собранный порт:
# make install
Настройка Pure-FTP
Для активизации запуска Pure-FTP при загрузке ОС в файл /etc/rc.conf нужно добавить строку pureftpd_enable="YES”.
Для того, чтобы добиться необходимой нам функциональности сервиса, нужно проделать следующие действия:
1. Скопировать пример файла конфигурации на место основного файла конфигурации:
Cp /usr/local/etc/pure-ftp.conf.sample /usr/local/etc/pure-ftp.conf
2. Изменить в файле конфигурации следующие параметры:
Включить разрешение (resolving) имён хостов в файлах протоколов. Это стоит сделать, так как DNS-сервер – это та же машина, что и FTP-сервер:
DontResolve no
Разрешить аутентификацию по системной базе данных пользователей. Это необходимо, так как отдельная база данных пользователей создаваться не будет:
UnixAuthentication yes
3. Создать группу ftp командой:
# pw group add ftp -g 21
4. Создать пользователя ftp командой:
# pw user add ftp -u 21 -g 21 –s /usr/sbin/nologin –h /var/ftp
5. Создать домашний каталог пользователя ftp, который одновременно будет являться корнем для функционирования FTP-сервера[1]:
# mkdir /var/ftp
6. Настроить протоколирование работы службы:
Для протоколированая работы сервиса FTP в конец файла конфигурации системы протоколирования /etc/syslog.conf требуется дописать строки:
!ftp
*.* /var/log/ftp
и создать файл /var/log/ftp командой:
# touch /var/log/ftp
После этого требуется перезапустить систему протоколирования командой:
# /etc/rc.d/syslog restart
7. Создать файл информации об FTP-сервере.
Пользователю, вошедшему на FTP-сервер, иногда бывает полезно получить информацию о том сервере, на который он зашел. Для этого в корень FTP-сервера часто помещают файл README, в который помещают эту информацию. В нашем случае этот файл (/var/ftp/README) состоит всего из одной строки:
This is main FTP-server of domain3.ru domain.[2]
Запуск Pure-FTP
Для запуска Pure-FTP нужно выполнить следующую команду:
# /usr/local/etc/rc.d/pure-ftpd.sh start