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

Для начала размеремся в двух режимах работы FTP серверов, это пассивный и активный метод работы

Приступаем к установке нашего сервера:

В активном режиме, когда клиент говорит «Привет!» он так же сообщает серверу номер порта (из динамического диапазона 1024-65535) для того, чтобы сервер мог подключиться к клиенту для установки соединения для передачи данных. FTP-сервер подключается к заданному номеру порта клиента используя со своей стороны номер TCP-порта 20 для передачи данных.

 

В пассивном режиме, после того как клиент сказал «Привет!», сервер сообщает клиенту номер TCP-порта (из динамического диапазона 1024-65535), к которому можно подключится для установки соединения передачи данных.

Главное отличие между активным режимом FTP и пассивным режимом FTP – это сторона, которая открывает соединение для передачи данных. В активном режиме, клиент должен принять соединение от FTP-сервера. В пассивном режиме, клиент всегда инициирует соединение.

#apt-get install vsftpd

Открываем конфигурационный файл

#nano /etc/vsftpd.conf

И вносим такого рода изменения для работы нашего FTP в пассивном режиме с авторизацией и шифрованием средствами сгенерированных нами сертификатов.

# Разрешает слушать протокол IPv4

listen=YES

# Запретить анонимный доступ

anonymous_enable=NO

# Разрешить входить по системной записи

local_enable=YES

# Разрешить запись

write_enable=YES

# Разрешить сообщения при смене директории

dirmessage_enable=YES

# Использовать локальное время сервера

use_localtime=YES

# Ведние лога загрузок и закачек

xferlog_enable=YES

# Осуществлять передачу данных через 20-ый порт (если требуется)

#connect_from_port_20=YES

# При необходимости включаем работу пассивного режима указав необходимый диапазон портов

#pasv_min_port=64000

#pasv_max_port=65535

# Сообщение-приветствие сервера

ftpd_banner=Welcome to virtual FTP service

# Если включено, то email’ы из указанного файла будут запрещены для анонимного доступа

#banned_email_file=/etc/vsftpd.banned_emails

# Пользователи «заперты» в своих домашних каталогах

chroot_local_user=YES

 

# Если требуется, то раскоментируем несколько строчек ниже для включения ssl шифрования предварительно сгенерировав сертификаты

# enable TLS/SSL

#ssl_enable=YES

# force client to use TLS when logging in

#allow_anon_ssl=NO

#force_local_data_ssl=YES

#force_local_logins_ssl=YES

#ssl_tlsv1=YES

#ssl_sslv2=NO

#ssl_sslv3=NO

#require_ssl_reuse=NO

#ssl_ciphers=HIGH

# specify SSL certificate/private key

#rsa_cert_file=/etc/vsftpd.pem

#rsa_private_key_file=/etc/vsftpd.pem

 

# Настройки ниже нужно включить, если необходимо закрыть только некоторых пользователей

# в их домашних каталогах. Список будет храниться в файле, указанном в параметре chroot_list_file

#chroot_local_user=YES

#chroot_list_enable=YES

# (default follows)

#chroot_list_file=/etc/vsftpd.chroot_list

# Разрешить использование «ls -R». Это создает незначительную угрозу безопасности, т.к. выполнение

# «ls -R» для каталога с большим количеством подкаталогов и файлов, может потребовать много ресурсов

ls_recurse_enable=NO

# Каталог, используемый как безопасная «тюрьма» — в него выполняется chroot() когда vsftpd не

# требуется доступ к файловой системе. Каталог должен быть пустым и не доступен на запись

# пользователю ftp.

secure_chroot_dir=/var/run/vsftpd/empty

# По-умолчанию эта опция имеет значение YES, и vsftpd проверяет, что у подключившегося пользователя

# в системе есть валидный shell. Если shell имеет значение false или не определен, вход на сервер

# будет отклонен с сообщением Invalid password

check_shell=NO

Сгенерировать требуемый нам сертификат можно следующим способом

#openssl req -x509 -days 365 -newkey rsa:2048 -nodes -keyout /etc/vsftpd.pem -out /etc/vsftpd.pem

После чего мы сможем использовать шифрованный FTP для своих нужд

После всех манипуляций требуется перезапустить рнашь сервер

#/etc/init.d/vsftpd restart

Проверяем доступ

#ftp 127.0.0.1

Нас попросит ввести логин и пароль, вводим их и пользуемся, всю информациию о возможностях управления можно получить нажав «?»

З.Ы. если есть желание настроить более тонко, указав время нахождения на сервере настроить дополнительные опции по безопасности, то вам на официальные сайты для просмотра возможных переменных для данного сервера.