Настройка сервера File Transfer Protocol
Об FTP
FTP это старый и широко используемый сетевой протокол. FTP обычно работает на двух раздельных портах -- 20 и 21. Порт 21 используется для контрольного потока (передающий информацию о входе в систему и команды) в то время как порт 20 используется для потока данных, по которому идет передача файлов.
В общем FTP это не очень безопасный протокол по той причине, что в режиме по умолчанию управляющий поток -- а значит логин и пароль -- передается в открытом виде. Поток данных также передается открыто, также как в NFS и Samba (для усиления безопасности SSH/SCP лучший выбор). Можно перенаправить управляющий поток FTP через SSH, таким образом, защитив его.
Традиционные клиенты FTP предоставляют собственные среды для работы, по которым передаются команды и настраиваются соединения. Иногда GUI интерфейсы поставляются вместе с клиентами для более удобной работы с файлами. Однако в наши дни многие инструменты включают FTP -- начиная от менеджера файлов до текстовых редакторов, они часто работают с файлами, лежащими на FTP сервере.
Анонимный FTP
Для тех применений, где FTP используется чаще всего, безопасность не является проблемой. Чаще всего FTP сервера используются как "анонимные FTP" -- то есть размещенные на них данные доступны миру и не требуют большой безопасности. По соглашению пользователь anonymous может получить доступ к файлам, предоставив произвольный пароль (обычно адрес почты), который не проверяется. Иногда имя пользователя/пароль требуются, полученная комбинация не проходит более сложную степень аутентификации (например для людей, которые хотят стать добровольцами в каком-либо проекте).
Большинство Web-браузеров и файловых менеджеров, а также инструментов прозрачно поддерживают FTP сервера. Часто этим инструментам требуется FTP URL для получения файла (а также для загрузки файла на сервер). Например, инструмент командной строки wget скачает файл с FTP сервера с помощью следующей команды:
$ wget ftp://example.net/pub/somefile
$ wget ftp://user:passwd@example.net/pub/somefile
|
Файловые менеджеры часто монтируют FTP сервера как локальную систему или диски NFS или Samba (но не полностью точно так же, не используйте mount и /etc/fstab; такие псевдоразделы обычно именуются по своему URL).
Выбор FTP серверов
FTP старый и повсеместно внедренный, поэтому существует огромное число его реализаций и установок на различных Linux дистрибутивах. Настройка выбранного FTP сервера потребует от вас обращения к руководству по установке.
Некоторые популярные Linux FTP сервера:
- wu-ftpd.
- vsftpd.
- ProFTPd.
- BSD ftpd.
- TUX FTP.
Многие другие реализации не так популярны. В большинстве случаев настройка конкретного сервера будет находится в файле /etc/FOOftpd.conf (для соответствующего сервера "FOO"). Мне нравится vsftpd, так как он быстр и довольно надежен в плане защищенности ("vs" означает "очень защищенный").
Простой пример настройки FTPd
Синтаксис настройки каждого сервера будет различен. Но некоторые концепции, взятые из /etc/vsftpd.conf позволят понять типы опций остальных серверов. Что касается vsftpd, то у каждой опции имеется формат вида option=value с использованием знака решетки для обозначения комментариев. Большинство остальных файлов настроек FTPd похожи.
-
anonymous_enable: управляет возможностью входа пользователя anonymous.
-
anon_world_readable_only: Когда включено, то только anonymous пользователям позволено скачивать файлы для чтения.
-
chroot_local_user: Если включено, то локальные пользователи будут помещены в chroot() окружение в своих домашних каталогах после входа.
-
pasv_enable: Должен ли сервер использовать "пассивный FTP" режим, в котором клиенты инициируют порты (помогает, когда у клиентов есть файервол).
-
ssl_enable: Если включено, то vsftpd будет поддерживать SSL соединения.
-
tcp_wrappers: Если включено, то все входящие соединения будут проходить контроль доступа (как /etc/hosts.allow и /etc/hosts.deny).
Запуск FTP сервера
В простейшем случае вы можете запустить FTP сервер, так же как и любой другой демон:
Теперь сервер будет принимать входящие соединения согласно правилам в его файле настроек. Вы также можете запустить FTP сервер из "сетевого супер-сервера", такого как inetd или xinetd. Руководства LPI 202 расскажут о супер-серверах.
Запуск демона отдельно, даже в скриптах загрузки, как для какого-то определенного уровня загрузки, так и в /etc/rcS.d/, даст вам точный контроль над поведением FTP сервера.
|