Старый добрый протокол передачи FTP позволяет передавать файлы по сетям, и скорее всего вам когда-либо приходилось с ним сталкиваться, либо вы о нем слышали. По умолчанию использует 21 порт (так сложилось исторически), и традиционно служит для обмена файлами, между машинами, по схеме клиент-сервер, как впрочем, и многие другие протоколы. FTP является героем своего времени, и сегодня он имеет довольно большую востребованность, для задач публичных ftp серверов. Кроме того, многие хостинговые компании продолжают поддерживать этот протокол, ввиду его удобства для обмена файлами.
В данном посту мы рассмотрим установку сервера ftp на операционную систему CentOS Linux. В силу того, что он был разработан довольно таки давно, первоначальный ftp является не защищённым в плане шифрования трафика и т.д., что сегодня подрывает его актуальность по современным меркам безопасности. Поэтому наиболее оптимальным выбором для большинства пользователей, которым нужен ftp сервер, является софт vsftp (Very Secure FTP daemon). Стоит отметить его надежность, а так же простоту настройки FTP сервера.
Установка vsftpd
Для установки сервера vsftpd вам необходимо авторизоваться под root-ом, затем выполнить команду:
# yum install vsftpd
Данный пакет входит в стандартный репозиторий CentOS, и проблем с установкой данного софта проблем возникнуть не должно. После того как прошел процесс установки, можно добавить запуск сервера при старте системы:
# chkconfig vsftpd on
После того как сервер был установлен, базовая конфигурация позволяет работать серверу с настройками по умолчанию. Для того чтобы внести изменения в настройки конфигурации, вам достаточно править конфигурационный файл:
/etc/vsftpd/vsftpd.conf
Рекомендуется в таком случае, перед тем как что-то дополнительно настраивать сохранить резервную копию конфигурационного файла. Чтение документации позволит настроить сервер «под себя» с наименьшим расходом времени, нервов, да и мало ли. Там описано назначение множества параметров, о которых я не буду расписывать здесь.
После этого можно запускать сервер, но есть ещё кое-что, что может помешать работе сервера, это файрвол, как и в большинстве случаев с конфигурацией серверов, следует разрешить подключение к вашему серверу.
Правила в iptables
Открываем конфигурационный файл iptables:
/etc/sysconfig/iptables
Добавляем правила для ftp сервера:
iptables -A INPUT -p tcp --dport 21 -j ACCEPT iptables -A OUTPUT -p tcp --sport 20 -j ACCEPT
Не забываем, чтобы правила вступили в силу, iptables следует перезапустить.
# service iptables restart
Запуск vsftpd
# service vsftpd start
В качестве заключения хотелось бы отметить тот факт, что vsftpd не смотря на простоту его установки, он является довольно мощным сервером с достаточным количеством плюшек и полезностей. Среди них я бы отметил наиболее актуальные фичи, такие как виртуальные пользователи, индивидуальные настройки, лимиты, отдельные настройки для отдельных IP адресов, и многое другое.
Пример простой конфигурации сервера
Правим файл конфигурации:
# vi /etc/vsftpd/vsftpd.conf
Запрет выхода пользователя из домашней дирректории
chroot_local_user=YES
Запрещаем анонимный вход на сервер
anonymous_enable=NO
Создание пользователей FTP
Добавляем пользователя
# useradd ftpuser
Задаем пароль для созданного пользователя
# passwd ftpuser
Дарее правим файл /etc/passwd
Находим строку пользователя ftpuser:
ftpuser:x:513:513::/home/ftpuser:/bin/bash
/home/ftp — домашний каталог пользователя;
/sbin/nologin — запрет на доступ пользователя к системе;
Для удобства использования можно создать группу к примеру ftpusers, затем задать соотвествующие права на папку /home/ftp
Одни из популярных программ для подключения к FTP-серверу это FileZilla или Total Commander
(см. как установить SFTP плагин в Total Commander). Так же на нашем сайте есть пост о том, можно использовать обмен по SFTP между двумя серверами Linux.
Настраивается подключение так же как и в других случаях, в настройках подключения указываем адрес сервера, имя пользователя ftpuser, пароль.
Корневую дирректорию, можно не указывать, т.к. по умолчанию ею будет /home/ftp.