У меня есть выделенный сервер Debian, и я хочу включить на нем неявный SSL с помощью VSFTPD, и мне трудно.
Я читал в Интернете, и единственное, что я действительно могу найти, это как включить SSL, и на страницах руководства он перечисляет одну неявную команду ssl. но поскольку Implicit ssl использует второй слушатель (по умолчанию 990), я не знаю, как заставить его работать в Debian.
Кому-нибудь удалось заставить это работать?
Вот мой конфиг:
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
connect_from_port_20=YES
pam_service_name=vsftpd
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=NO
force_local_logins_ssl=NO
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
если я включу Implicit_SSL = YES, сервер даже не запустится.
Спасибо
Неявный - предполагает, что сервер ожидает, что все будет зашифровано с использованием SSL. Это означает, что когда клиент впервые подключается к серверу, он немедленно согласовывает SSL-соединение для командного соединения. Обычно неявные соединения также находятся на другом порту, таком как порт 990. Итак, чтобы запустить vsftpd в неявном режиме, вам нужно установить параметры
implicit_ssl=YES
listen_port=990
Или
implicit_ssl=YES
listen_port=21
и настройте свой ftp-клиент использовать 21 год порт для подключения. (Клиент FileZilla, например, по умолчанию использует порт 990 при подключении к неявному типу сервера).
У меня была аналогичная проблема, вот что должно читаться в вашей конфигурации:
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
connect_from_port_20=YES
pam_service_name=vsftpd
ssl_enable=YES
#The following line enables implicit mode
implicit_ssl=YES
allow_anon_ssl=NO
#This will force secure data connections, not required, but recommended
force_local_data_ssl=YES
#This will force secure logins, not strictly required, but REALLY recommended
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
#The next line is the magic which I suspect will make this work for you.
#Some distros require explicit private key designation. You may need to regenerate your
#certificate / key pair. A lot of Debian based distros seem to need this step, and will not
#start the server without it.
rsa_private_key_file=<path to private key>.key
Это помогло мне. Кроме того, поскольку вы используете tls, а не ssl, ваш сервер должен работать на обычных портах ftp. Сейчас большинство клиенты с другой стороны, по умолчанию будет искать порт 990 для подключения ftps, но вы ничего не можете с этим поделать, если только вы действительно не хотите обслуживать порт 990. Это не нарушитель правил, а просто боль. Вы также можете рассмотреть возможность использования виртуальных пользователей, chroot jailing и пассивного режима для обеспечения безопасности, большей безопасности и простоты клиентских подключений соответственно. Ура, -Матиас
Очевидно, вам нужно установить implicit_ssl=YES
в файле конфигурации, чтобы добраться куда угодно.
Но когда вы это сделаете, вы, конечно, не сможете запустить сервер. Итак, первое, что нужно сделать, это посмотреть журналы сервера в /var/log/vsftpd.log (или, возможно, сообщения попали в /var/log/user.log или / var / log / messages, но это маловероятно ).
Не видя этого, я не могу сказать вам, в чем проблема на самом деле, но я бы сказал, что есть приличный шанс, что он не может найти свой сертификат SSL сервера. Другие возможные претенденты на проблему включают проблемы с разрешениями, сбои SELinux (если они у вас включены) или vsftpd, которому просто не нравится набор параметров конфигурации, которые вы ему предоставили - это может быть очень разборчивым, чтобы уберечь вас от случайного оставив его настроенным в небезопасном состоянии. Или нет недостатка в других возможностях - вот зачем вам логи.
Если вы посмотрите на исходный код vsftpd, вы увидите, что первая версия vsftp, содержащая implicit_ssl, - это версия 2.1.0, даже в журнале изменений упоминается эта функция для 2.0.7!
Также, если вы посмотрите на анализатор конфигурации в исходном коде c, вы увидите, что документация верна, и вам нужно будет написать параметр конфигурации в нижнем регистре, если вы хотите его включить!
например: implicit_ssl = yes
убедитесь, что вы указали "implicit_ssl" (все строчные буквы), Implicit_SSL не будет работать, как вы упомянули, сервер даже не запустится
вы уверены, что ftps только на 990 порте? Конфигурация implicit_ssl
должен активировать ftps на порту 21, если вы явно не установили listen_port
.
Узнайте, какие порты прослушивает vsftpd, и попробуйте подключиться через ftps к порту 21.
Если это все еще не работает, попробуйте установить debug_ssl=YES
и взгляните на свои журналы.
Другая возможность: у вас версия debian vsftpd, которая не поддерживает implicit_ssl
. Какую версию debian и vsftpd вы используете? Опция добавлена версией 2.0.7.