Debian — FTP-сервер и его настройка
В жизни каждого заядлого компьютерщика случается ситуация, когда ему нужно создать сервер FTP. В основном это касается тех ребят, которые в качестве тренировки перед запуском сайта, решили создать виртуальный сервер и при помощи протокола FTP планируют туда загружать данные, движок, картинки и прочие файлы. В основном, любители таких занятий работают не с Windows, а с Linux и подобными операционными системами. В данной статье рассмотрим, как проходит настройка сервера протокола FTP в ОС Debian. Итак, поехали!
Содержание
Каким лучше протоколом пользоваться в Debian
Многие юзеры Debian предпочитают использовать не FTP сервер, а VSFTPD. По сути, это тот же FTP, только он очень защищенный. Как известно, стандартный протокол FTP имеет слабую защиту: взломщики с легкостью могут перехватить пароли, использовать подбор для взлома аккаунтов, ломать сервер при помощи вирусов и т. д. Во VSFTPD все эти недостатки учтены. Кроме того, данный протокол работает гораздо быстрее, чем FTP, и поддерживает множество опций, включая виртуальных пользователей, регулирование скорости пропускания и прочие. В общем, нет причин отказаться от VSFTPD в сторону FTP для Debian.
Настройка сервера в Debian может проходить по-разному, в зависимости от того, что вы хотите получить в итоге. Рассмотрим различные конфигурации сервера FTP в Debian. Для начала вам необходимо установить пакет VSDFTPD. В Debian удобно работать при помощи консоли, потому в терминале введите команду: aptitude install vsftpd. Вместе с дистрибутивами после выполнения команды создается также пользователь FTP. Хоть в отчетах вы увидите сообщение о том, что домашний каталог не создан, он будет сгенерирован по адресу /home/ftp. Для настройки доступа для отдельных пользователей будет создан файл /etc/ftpusers, в котором вы сможете указать юзеров, вход на сервер для которых воспрещен.
В Debian вам постоянно придется работать с командами в терминале, если вы хотите настроить FTP в точности, как планировали.
Созданный пользователь FTP после установки VSFTPD вам не понадобится для работы на сервере, но он необходим для корректной работы хоста. Потому вам нужно создать других пользователей, которые смогут вести запись в корневой каталог сервера. Для этого в Debian нужно сначала создать группу пользователей, в которую вы занесете конкретного юзера. К примеру, добавляем группу ftpuser при помощи команды: addgroup ftpuser. Чтобы создать пользователя, который может работать с корневым каталогом сервера в Debian, воспользуйтесь командой вида: useradd -d путь/к/корневой/папке -g имя_группы имя_пользователя. Чтобы назначить пароль для созданного пользователя, используйте строку: passwd имя_пользователя.
Чтобы создать директорию в FTP сервере в ОС Debian вам понадобится команда mkdir, которая нужна как раз для генерации каталогов. К примеру: mkdir /var/ftp — эта команда создаст папку FTP внутри директории Var. После создания папки для сервера вам необходимо задать права доступа для этой папки, чтобы не каждый смог ее свободно редактировать. Настройка уровня прав проводится при помощи команды chmod. После нее нужно прописывать 3 цифры, которые и обозначают уровень доступа. Чем выше цифры (максимум до 7), тем выше доступ к редактированию каталога. Рекомендуется для всех устанавливать уровень доступа, равный трем пятеркам. Например: chmod 555 /var/ftp. А чтобы вы могли редактировать каталог вольно, без ограничений, поменяйте владельца папки, то есть его root-пользователя при помощи команды chown. И вот, как это будет выглядеть для созданной папки FTP и пользователя ftpuser: chown root:ftpuser /var/ftp.
Далее вам понадобится публичный каталог pub внутри директории FTP. Как создать его вы уже знаете — при помощи команды mkdir. Далее снова поменяйте владельца для этого каталога на вашего пользователя, например, на ftpuser, созданного ранее. Основная настройка сервера VSFTPD в Debian проходит при помощи файла конфигураций, расположенного по адресу: /etc/vsftpd.conf. Рекомендуется перед тем, как что-то изменять, сделать его резервную копию на всякий случай. Для этого пропишите: cp /etc/vsftpd.conf /etc/vsftpd.conf_old.
Теперь вы можете приступить к самому главному этапу вашей настройки — изменению файла конфигураций vsftpd.conf. Можете открыть его вручную при помощи мышки, а можете воспользоваться текстовым редактором, не выходя из терминала. Для этого введите команду cat /dev/null > /etc/vsftpd.conf, которая откроет файл конфигураций, как документ с текстом. А сделать это можно будет при помощи любого доступного у вас на компьютере редактора, к примеру, при помощи VIM — тогда вводим такую команду в терминал: vim /etc/vsftpd.conf.
Как настроить конфигурационный файл vsftpd.conf
Именно в этот момент ваша задумка имеет значение, потому что файл vsftpd.conf можно настроить абсолютно по-разному. Не стоит устанавливать рандомные опции, потому что так вы случайно можете оставить слабые места в вашем сервере. Начните настройку этого файла с определения разрешения входа для анонимных пользователей — будут ли таковые приходить к вам на сервере, или вы работаете с определенным числом юзеров, которых знаете в лицо? Если так, то пропишите в файле строку anonymous_enable=NO, которая запретит вход всем «анонимусам». Но в таком случае вам понадобится активировать доступ для локальных юзеров — введите строчку local_enable=YES для этого.
Если вы хотите развязать руки пользователям на сервере, и разрешить им запись данных по FTP, то пропишите строку: write_enable=YES. Если же вы пропустили анонимных юзеров и им так же хотите дать добро на запись данных, то укажите в файле следующее: anon_upload_enable=YES. Кроме того, вы можете позволить им даже создавать каталоги у вас на сервере, если пропишите в конфигурациях anon_mkdir_write_enable=YES.
Имеет смысл настроить логи для аплоадов и даунлоадов, чтобы вы могли отслеживать весь поток активности. В таком случае пропишите xferlog_enable=YES. Если вы активировали лог, то обязательно укажите путь, куда этому логу нужно сохраняться, чтобы данные могли начать записываться. К примеру, сохраняйте логи в папку log — вот команда для этого: xferlog_file=/var/log/vsftpd.log.
Что касается настроек безопасности, то очень важно правильно отрегулировать таймауты, чтобы никакие подборщики не смогли и близко подобраться к вашему серверу. К примеру, вот строка, которая определяет таймаут при соединение по порту: data_connection_timeout=120. Еще важнее ограничить сессии, которые уже открыты, но длительно не используются. Вам нужно отрегулировать это «длительно» так, чтобы у злоумышленников не было времени воспользоваться провисанием и неактивные пользователи не нагружали сервер. Оптимальный вариант — это 600 секунд: idle_session_timeout=600.
Если есть необходимость, вы можете сообщать пользователям, которые залогинились какую-либо информацию посредством баннера. Для этого в конфигурационном файле пропишите следующее ftpd_banner=»Текст обращения без кавычек».
Многие владельцы серверов больше всего боятся DoS-атак. Если вы относитесь к их числу, то можете создать бан-лист имейл-адресов, чтобы ресурсы взломщиков значительно снизились и они перестали рассматривать ваш сервер, как цель взлома. Укажите тогда строку активации бан-листа: deny_email_enable=YES. И не забудьте прописать файл, в котором будут размещаться заблокированные имейлы: banned_email_file=/etc/vsftpd.banned_emails.
И напоследок стоит сказать пару слов о добавлении возможности пользоваться командой chroot для некоторых пользователей в их домашних директориях не сервере. Учтите, что если пропишите в конфигурациях chroot_local_user=YES, то в списке будут указаны пользователи, которым нельзя пользоваться командой chroot. А если chroot_local_user=NO, тогда в файле ftp_chroot_list нужно прописать пользователей, которым можно управлять корневыми папками, и указать какими именно. Приступайте!