26.9. Протокол передачи файлов (FTP)
Пред. | Глава 26. Сетевые серверы | След.

## 26.9. Протокол передачи файлов (FTP)

Предоставил Murray Stokely.

### 26.9.1. Обзор

Протокол передачи файлов (File Transfer Protocol, FTP) дает пользователям простой путь передачи файлов на и с FTP сервера. В FreeBSD серверная программа FTP, ftpd, включена в базовую систему. Это упрощает настройку и администрирование FTP сервера в FreeBSD.

### 26.9.2. Настройка

Наиболее важный шаг заключается в определении того, каким учетным записям будет позволено получать доступ к 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

Как описано в Пример 26.1, «Перезагрузка конфигурационного файла inetd», inetd должен перечитать конфигурацию после того, как этот файл настройки был изменен. Пожалуйста обратитесь к Раздел 26.2.2, «Настройки» за деталями по запуску inetd на вашей системе.

В качестве альтернативы, демон ftpd может быть запущен как самостоятельный сервер. В этом случае достаточно установить соответствующую переменную в файле `/etc/rc.conf`:

ftpd_enable="YES"

Демон будет запущен автоматически при следующей загрузке системы. Также демон можно запустить вручную, для чего выполните следующую команду как пользователь `root`:

`#` `/etc/rc.d/ftpd start`

Теперь вы можете войти на FTP сервер, введя:

`%` `ftp localhost`

### 26.9.3. Поддержка

Для протоколирования даемон ftpd использует сообщения syslog(3). По умолчанию, syslog(3) поместит сообщения, относящиеся к FTP, в файл `/var/log/xferlog`. Местоположение лог файла FTP может быть изменено путем изменения следующей строки в файле `/etc/syslog.conf`:

ftp.info /var/log/xferlog

Учитывайте потенциальные проблемы, возникающие с анонимным FTP сервером. В частности, вы должны дважды подумать, прежде чем позволить анонимным пользователям загружать файлы на сервер. Вы можете обнаружить, что FTP сайт стал форумом, на котором происходит обмен нелицензионным коммерческим программным обеспечением или чем-то еще хуже. Если вам необходимо разрешить анонимную выгрузку файлов на FTP, права должны быть настроены таким образом, чтобы эти файлы не могли прочитать другие анонимные пользователи до их рассмотрения администратором.

Пред. | Наверх | След.
26.8. Файл сервер и печать для Microsoft® Windows® клиентов (Samba) | Начало | 26.10. Синхронизация часов через NTP

Этот, и другие документы, могут быть скачаны с http://ftp.FreeBSD.org/pub/FreeBSD/doc/.

По вопросам, связанным с FreeBSD, прочитайте документацию прежде чем писать в <questions@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите в рассылку <doc@FreeBSD.org>.