ftpd сервер

Существует множество очень функциональных ftp-серверов, однако для использования в «личных» целях, как правило, вполне достаточно возможностей входящей в состав FreeBSD программы ftpd сервер. Программа ftpd представляет собой достаточно простой ftp-сервер. В отличие от таких инструментов, как ProFTPD, Pure-FTPd быстрая установка и настройка в любом Linux и других, ftpd не имеет развитых средств конфигурирования, работы с правами доступа и т. д. Однако если вы не собираетесь строить публичный ftp-сервер, то его возможностей вам вполне хватит для организации «бытовых» функций, таких как обмен файлами между сервером и вашей рабочей машиной, например, для размещения HTML-страниц на веб-сервере или настройки простейшего резервирования.

Сервер ftpd, по умолчанию может обслуживать как активные, так и пассивные соединения (в том числе и расширенные), режим работы для конкретного сеанса определяется клиентом.

Сервер ftpd поддерживает авторизованный и анонимный доступ. В любом случае в начале каждого сеанса проводится аутентификация пользователя, после чего пользователь авторизуется для работы в соответствие со следующими условиями:

  • Если пользователь имеет пустой пароль, либо его оболочка по умолчанию отсутствует в /etc/shells, либо его имя (или наименование группы, членом которой он является) указано в файле /etc/ftpusers, то соединение разрывается – такому пользователю запрещен доступ по ftp.
  • Когда имя пользователя или его группа указаны в файле /etc/ftpchroot, то разрешается ограниченный доступ – пользователь может работать только в пределах своего домашнего каталога.
  • В случае, когда в качестве имени указано ftp или anonymous, соединение рассматривается как анонимное.
  • Если же ни одно из приведенных выше условий не выполнено, то в случае указания правильного пароля пользователь получает ftp-доступ ко всей файловой системе согласно имеющимся у него правам.

Настройка ftpd для FreeBSD (для FAQ Linux больших отличий быть не может):

  • Для включение ftpd нужно раскоментировать одну строку в inetd.conf и перезапустить inetd
    > ee /etc/inetd.conf
    ftp     stream  tcp     nowait  root    /usr/libexec/ftpd       ftpd -l
    > /etc/rc.d/inetd restart

    Некоторые настройки сервера, в том числе и касающиеся ограничения доступа, можно выполнить с помощью ключей командной строки. Если вы запускаете ftpd из inetd, добавьте нужные параметры в соответствующей строке файла inetd.conf (по умолчанию там записан только ключ l).

  • Для протоколирования даемон ftpd использует сообщения Использование syslog.
    > ee /etc/syslog.conf
    ftp.info                                        /var/log/xferlog
  • В файле /etc/ftpusers находится список пользователей, которым запрещен доступ по FTP. По умолчанию он включает системные учетные записи, но в него можно добавить и определенных пользователей, которым будет запрещен доступ по FTP.
  • Анонимный доступ: Для анонимного FTP доступа на сервер, в системе FreeBSD необходимо создать пользователя ftp. Этот пользователь сможет входить на FTP сервер с именем пользователя ftp или anonymous, с любым паролем (существует соглашение об использовании почтового адреса пользователя в качестве пароля). FTP сервер выполнит chroot при входе пользователя anonymous для ограничения доступа только домашним каталогом пользователя ftp. У этого пользователя должна быть «легальная» оболочка (одна из указанных в /etc/shells). Также у него не может быть пустого пароля.
  • Существуют два текстовых файла, определяющих сообщение, отправляемое FTP клиентам. Содержимое файла /etc/ftpwelcome будет выведено пользователям перед приглашением на вход. После успешного входа будет выведено содержимое файла /etc/ftpmotd. Обратите внимание, что путь к этому файлу задается относительно домашнего каталога пользователя, так что анонимным пользователям будет отправляться ~ftp/etc/ftpmotd.
  • Ограниченный доступ: Вам может понадобиться ограничить доступ определенных пользователей без полного запрета использования FTP. Это можно сделать через файл /etc/ftpchroot. В нем находится список пользователей и групп, к которым применяется ограничение доступа. В том случае, если имя пользователя присутствует в файле /etc/ftpchroot, то соответствующий процесс запускается в chroot-окружении, ограничивая пользователю доступ только его домашним каталогом (или тем, который указан во втором поле файла ftpchroot). При необходимости организовать такую работу для большого числа пользователей (например, дать всем абонентам доступ для обновления своих домашних веб-страничек), в ftpchroot можно указать общую для них группу, предварив ее имя символом @. Во втором поле дополнительно может быть указан каталог, который следует использовать в качестве корневого для соответствующего пользователя или группы. Вот пример такого файла:
    vasya
    petya  /var/db/petya
    @dialup

    Теперь Вася и все пользователи группы dialup смогут работать только в пределах своих домашних каталогов, а для Пети в качестве рабочей будет определена указанная папка /var/db/petya. С помощью разделителя /./ можно указать каталог, отличающийся от корневого, который станет текущим:

    serg  /home/serg/./public_html

    В данном случае для пользователя serg доступ будет ограничен каталогом /home/serg, но в качестве текущего при входе на сервер установится /home/serg/public_html.

Ссылки

📌 Для тестирования скриптов, установщиков VPN, Python ботов рекомендуем использовать надежные VPS на короткий срок. Если вам нужна помощь с более сложными задачами, вы можете найти фрилансера, который поможет с настройкой. Узнайте больше о быстрой аренде VPS для экспериментов и о фриланс-бирже для настройки VPS, WordPress. 📌

💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!