Защита VSFTP с SSL и двухфакторной аутентификацией
Введение
В недавнем отчёте Finjan отмечалось, что учётные данные администраторов для более чем 9 000 FTP-серверов были выставлены на продажу; F-Secure также зафиксировал рост атак на FTP. Многие компании всё ещё активно используют FTP. Даже если вы добавите шифрование, важно контролировать, кто получает доступ: двухфакторная аутентификация (2FA) повышает безопасность администраторов и пользователей.
Кратко: этот материал показывает, как установить и настроить VSFTPD с SSL и подключить WiKID через RADIUS для 2FA.
Важно: перед изменениями сделайте резервную копию конфигураций и ключей.
Установка и создание SSL-сертификата
Установите пакет vsftpd (для RHEL/CentOS):
yum install vsftpdСоздайте самоподписанный SSL-сертификат, если у вас его нет:
openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pemПодсказка: для производственной среды используйте ключ длиной не менее 2048 бит и подпишите сертификат у доверенного CA.
Пример конфигурации vsftpd
Отредактируйте конфигурационный файл (в некоторых системах путь может быть /etc/vsftpd/vsftpd.conf). Приведённые ниже параметры работали в тестах, но не гарантируют максимальную безопасность — проверьте политику вашей организации.
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
ftpd_banner=Welcome to blah FTP service.
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
pasv_enable=YES
pasv_promiscuous=YES
pasv_min_port=6000
pasv_max_port=7000
ssl_enable=YES
allow_anon_ssl=NO
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
rsa_cert_file=/etc/vsftpd/vsftpd.pem
rsa_private_key_file=/etc/vsftpd/vsftpd.pemПримечания по безопасности:
- Отключите SSLv2/SSLv3 и при возможности используйте только TLSv1.2 или выше (современные сборки vsftpd поддерживают tlsv1_2).
- Ограничьте диапазон пассивных портов в брандмауэре и пробросьте только эти порты.
Настройка PAM для RADIUS
Чтобы подключить RADIUS-аутентификацию через WiKID, отредактируйте файл PAM для vsftpd. Примерное содержимое /etc/pam.d/vsftpd:
#%PAM-1.0
session optional pam_keyinit.so force revoke
auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
auth required pam_shells.so
auth required /lib/security/pam_radius_auth.so
#auth include system-auth
account include system-auth
session include system-auth
session required pam_loginuid.soУбедитесь, что модуль pam_radius_auth установлен в системе и доступен по указанному пути. Права на файл /etc/raddb/clients.conf или аналогичный конфиг RADIUS должны быть ограничены.
Конфигурация RADIUS (raddb)
Отредактируйте серверы RADIUS в конфигурации (например, /etc/raddb/clients.conf или /etc/raddb/servers в зависимости от дистрибутива):
# server[:port] shared_secret timeout (s)
127.0.0.1 secret 1
WIKID_Server_IP wikidserver_secret 3Замените WIKID_Server_IP и shared secret на значения, полученные при создании Network Client в WiKID.
Настройка сервера WiKID
Если у вас ещё нет домена в WiKID, создайте его через интерфейс администратора.

После сохранения домена перейдите на вкладку «Network Client» и нажмите «Create New Network Client». Введите имя клиента и IP-адрес сервера VSFTP во внутренней сети. Выберите протокол RADIUS и домен, который вы создали.

Нажмите Add, чтобы перейти к следующей странице, и введите shared secret для RADIUS.

Клиентская поддержка и рекомендации по использованию
VSFTP поддерживается многими FTP-клиентами. Для шифрования в примерах использовался FileZilla, он поддерживает FTP over TLS. Если вы внедряете 2FA для SSH, то SCP/SFTP-клиенты, такие как WinSCP, также могут получить преимущества 2FA (в зависимости от интеграции).
Даже если вы не шифруете содержимое, важно знать, кто загружает файлы. 2FA защищает учётные записи администраторов и критические учётные записи пользователей.
Контрольные списки для внедрения
Роль: администратор сервера
- Сделать резервную копию конфигураций vsftpd и PAM
- Установить vsftpd и pam_radius_auth
- Сгенерировать/установить сертификат TLS
- Ограничить пассивные порты и настроить брандмауэр
- Настроить WiKID Network Client и RADIUS secret
- Протестировать вход под обычным и 2FA-пользователем
Роль: оператор/DevOps
- Проверить логи аутентификации и авторизации
- Настроить мониторинг отказов аутентификации и алармы
- Обновлять vsftpd и зависимости безопасности
Краткая методика внедрения (шаги)
- Резервное копирование текущих конфигов.
- Установка vsftpd и зависимостей.
- Генерация TLS-сертификата.
- Настройка /etc/vsftpd/vsftpd.conf (включить ssl_enable и пути к сертификату).
- Установка и настройка pam_radius_auth.
- Создание Network Client в WiKID и получение shared secret.
- Добавление RADIUS-сервера в /etc/raddb/servers.
- Тестирование входа и передачи файлов через шифрованное соединение.
Критерии приёмки
- TLS-соединение устанавливается (проверить через FileZilla или openssl s_client).
- Аутентификация через RADIUS проходит для обычного пользователя и для пользователя с 2FA.
- Логирование успешных и неуспешных попыток аутентификации настроено.
- Порты пассивного диапазона открыты только там, где нужно.
Фактические заметки и ограничения
- Самоподписанные сертификаты защищают канал, но не подтверждают подлинность сервера; для полного доверия используйте сертификат от CA.
- Поддержка 2FA на клиентской стороне зависит от механизма WiKID и интеграции с PAM.
Резюме
- Включите SSL/TLS в vsftpd для защиты трафика.
- Интегрируйте pam_radius_auth с сервером WiKID для двухфакторной аутентификации.
- Тестируйте конфигурацию и добавьте мониторинг логов и алерты.
Важно: всегда проверяйте совместимость пакетов и делайте обновления безопасности своевременно.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента