Сервер FTP FreeBSD

Теперь, когда вы узнали, как пользоваться клиентом FTP в системе FreeBSD, давайте посмотрим, как можно реализовать сервис FTP. Первая ваша задача – определиться с тем, как запускать демон ftpd(8), из inetd(8) или в автономном режиме.

По умолчанию FreeBSD запускает демон FTP из inetd(8). Большинство систем получают не так много запросов FTP, поэтому inetd легко справляется с поступающими запросами. Если не требуется поддерживать много сессий FTP одновременно, можно использовать inetd(8). Достаточно раскомментировать строку с описанием службы FTP в файле /etc/inetd.conf (глава 15) и перезапустить inetd. Любое изменение командной строки запуска ftpd(8) можно внести в файле /etc/inetd.conf.

Однако если предполагается, что ваш сервер FTP будет обслуживать сотни и тысячи одновременных соединений, то запуск FTP из inetd приведет к дополнительной нагрузке на систему. Чтобы этого не было, настройте использование FTP в автономном (standalone) режиме, подразумевающем постоянное прослушивание сети и самостоятельное обслуживание запросов. Не забудьте убрать запуск ftpd(8) из inetd, а затем добавьте строку ftpd enable= "YES" в файл /etc/rc.conf. После этого можно будет запустить ftpd(8) с помощью сценария /etc/rc.d/ftpd или перезагрузки.

Вы можете выполнить некоторые подстройки ftpd(8) с помощью ключей командной строки. Добавьте эти ключи в строку запуска ftpd(8) в файле /etc/inetd.conf или в параметр ftpd flags в файле /etc/rc.conf. Теперь посмотрим, какие возможности предлагает демон ftpd(8), входящий в состав FreeBSD.

Протоколирование обращений Kftpd(8)

Демон ftpd(8) имеет два уровня протоколирования. Если задать ключ -1 один раз (значение по умолчанию в /etc/inetd.conf), ftpd(8) будет протоколировать все успешные и неуспешные попытки регистрации. Если данный ключ указать дважды, ftpd(8) будет протоколировать все операции FTP: загрузку и выгрузку файлов, создание и удаление каталогов и т. д.

Режим «только для чтения»

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

Режим «только для записи»

Возможно, вам потребуется организовать сервер, куда пользователи смогут выгружать файлы, но не смогут загружать их. Для этого применяется флаг -о.

Тайм-аут

По умолчанию, если сеанс связи с пользователем простаивает 15 минут (900 секунд), соединение разрывается. Определить новое значение тайм-аута можно с помощью ключа -t, которому следует передать значение в секундах.

Управление пользователями FTP

С работающим сервером FTP связаны две типичные проблемы: 1) он позволяет пользователям загружать произвольные системные файлы и 2) пароли FTP могут быть похищены. Стоит ли подвергать свою систему риску из-за того, что какой-то пользователь-разиня, подключившись к серверу из местного интернет-кафе, не уберег свой пароль, и злоумышленник смог загрузить ключевые системные файлы! Лучший способ управлять пользователями заключается в том, чтобы выбрать, кто может входить на сервер и какие каталоги будут доступны этим выбранным пользователям.

chroot для пользователей

Вы можете заблокировать пользователей FTP в своих домашних каталогах с помощью chroot(8). Для пользователя его домашний каталог будет выглядеть как корень файловой системы. Пользователи не смогут покинуть свои домашние каталоги или получить доступ к произвольным системным файлам. Это очень напоминает маленькую клетку. Вариант с chroot полезен для веб-серверов с большим количеством клиентов на одной машине, то есть для веб-серверов с большим числом виртуальных хостов. В конце концов, только пользователь должен видеть свой каталог и больше никто.

Чтобы посадить пользователя в клетку, добавьте его имя в файл /etc/ ftpchroot. Каждый пользователь должен указываться в отдельной строке. Всякий раз, когда пользователь подключается к системе по FTP, его учетная запись сравнивается с содержимым /etc/ftpchroot. Если имя есть в этом файле, пользователь блокируется в своем домашнем каталоге с возможностью полностью контролировать его (если это позволяют установленные вами права доступа), создавать столько подкаталогов и хранить столько файлов, сколько позволяет отведенное ему дисковое пространство. Но пользователь не может покидать свой домашний каталог и исследовать систему.

В файле /etc/ftpchroot можно также указывать группы, что будет приводить к блокированию в домашних каталогах всех пользователей, входящих в эту группу. Имена групп должны начинаться с символа @ (например, @customers).

Допустим, в системе есть два веб-дизайнера, Гордон и Крис. Требуется разрешить им выгрузку файлов только в свои домашние каталоги. Есть также группа клиентов, которые поддерживают свои веб-сайты. Клиенты входят в группу webclients. Чтобы «посадить» всех этих пользователей в клетку, настройте /etc/ftpchroot так:

gordon chris

@webclients

Теперь все эти пользователи заперты в своих домашних каталогах. Запрет доступа к FTP

Имя файла /etc/ftpusers обманчиво. Файл содержит не список разрешенных пользователей, а список тех, кому не позволено входить в систему по FTP. По умолчанию в /etc/ftpusers представлены разные системные учетные записи, такие как root и nobody. Ни один системный администратор не сможет зарегистрироваться как root!

В этот файл можно добавить группы, поместив перед их именами символ Обычно я запрещаю доступ к FTP членам группы wheel. Пользователи, применяющие пароль root, не должны передавать свои пароли открытым текстом! Все, кому я могу доверить доступ в систему с привилегиями пользователя root, знают, как пользоваться SSH, scp(l) и sftp(l)!

Сообщения сервера FTP

При подключении сервер FTP может выводить два разных сообщения, текст которых хранится в файлах /etc/ftpwelcome и /etc/ftpmotd.

Когда клиент устанавливает соединение FTP впервые, ftpd(8) отображает содержимое файла /etc/ftpwelcome. В него можно поместить правила пользования, предупреждения, сообщения о предоставляемых возможностях, непристойности, угрозы, то есть все что угодно. Пользователи увидят данную информацию еще до получения приглашения к регистрации. Это замечательное место для сообщения «Несанкционированное использование запрещено». Факт наличия этого сообщения, пусть и не такого забавного, как «Пользователи, совершившее незаконное вторжение, будут преследоваться по всей строгости моим злобным ротвейлером и 12-зарядным дробовиком», пригодится в суде, если кто- нибудь воспользуется вашими услугами в противозаконных целях.

Как только пользователь войдет в систему, отображается содержимое /etc/ftpmotd. Обычно в нем содержатся соглашения по пользованию услугой.

Источник: ЛукасМ. FreeBSD. Подробное руководство, 2-е издание. – Пер. с англ. – СПб.: Символ- Плюс, 2009. – 864 е., ил.

Похожие посты:

Вы можете оставить комментарий, или ссылку на Ваш сайт.

Оставить комментарий