LINUX.ORG.RU
ФорумAdmin

Не могу заставить vsftpd работать в пассивном режиме

 ,


0

1

Есть сервер на RHEL 7.4 Установил vsftpd и не могу подключиться. Filezilla показывает, что подключение установлено, а потом, что время ожидания ответа от сервера истекло. Порты 21 и 20 открыты. ip белый.

ftp утилита из терминала:

220 (vsFTPd 3.0.2)
Name (адрес:login): login
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> dir
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
226 Directory send OK.

конфиг 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
chroot_local_user=YES
listen=YES
listen_ipv6=NO
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
user_sub_token=$USER
local_root=/home/$USER/ftp
allow_writeable_chroot=YES

pasv_enable=YES
pasv_min_port=50000
pasv_max_port=50999
port_enable=YES
pasv_address=<ip адрес>

в какую сторону дальше копать?



Последнее исправление: denko (всего исправлений: 4)

Порты 21 и 20 открыты.

А диапазон для передачи данных?

И про лоркод почитай уже и предпросмотром пользуйся.

Radjah ★★★★★
()
Ответ на: комментарий от Radjah

ok

Про лоркод прочитаю :) А конфиг копировал из терминала, в окне он нормально был отформатирован.

Про диапазон для передачи данных вопрос не понял.

denko
() автор топика
Ответ на: комментарий от Radjah

Да, доступны.

И я нашел кучу похожих тем англоязычной сети, перепробовал уже все, что мог, прежде чем здесь создавать тему.

denko
() автор топика

Временно отключи iptables. Если заработает, то дело в нем.

Bobby_
()

скорее всего дело в ipt.

если собрался юзать в пассивном режиме, то connect_from_port_20=NO

и я бы на твоем месте добавил что то типа

session_support=YES
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=NO
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=YES
ssl_sslv3=YES
rsa_cert_file=/etc/vsftpd/vsftpd.pem

anonymous
()

Рабочий конфиг:

[root@localhost aleksa]# uname -a
Linux localhost.localdomain 3.10.0-693.11.1.el7.x86_64 #1 SMP Mon Dec 4 23:52:40 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
[root@localhost aleksa]# grep -v '^#' /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_file=/var/log/vsftpd.log
xferlog_std_format=NO
chroot_local_user=YES
listen=YES
listen_ipv6=NO

pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

allow_writeable_chroot=YES

listen_port=XXXX
pasv_min_port=2500
pasv_max_port=2900
-A INPUT -p tcp -m state --state NEW -m tcp --dport XXXX -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 2500:2900 -j ACCEPT
Aleksandra
()
Ответ на: комментарий от Aleksandra

Не работает рабочий конфиг:

"ECONNREFUSED - Connection refused by server"

Вернулся к своему, он, по крайней мере делает вид, что подключается, а потом советует использовать ftp в пассивном режиме.

Как отключить iptables?

sudo systemctl stop itpables
Failed to stop itpables.service: Unit itpables.service not loaded.
sudo service iptables stop
Redirecting to /bin/systemctl stop iptables.service
Failed to stop iptables.service: Unit iptables.service not loaded.
denko
() автор топика
Ответ на: комментарий от Bobby_

И еще выключи временно selinux. Если заработает, потом пропишешь ему полиси.

Bobby_
()
Ответ на: комментарий от Bobby_

Изменил в /etc/selinux/config SELINUX=enforcing на SELINUX=disabled, перезагрузил систему. Все то же самое.

Консольная ftp:

ftp> verbose
Verbose mode on.
ftp> debug
Debugging on (debug=1).
ftp> dir
ftp: setsockopt (ignored): Permission denied
---> PORT 192,168,1,142,139,189
200 PORT command successful. Consider using PASV.
---> LIST
150 Here comes the directory listing.
226 Directory send OK.
denko
() автор топика

Установи proftpd. Он простой как трусы за рубь двадцать. И забудешь надолго про его существование.

Bootmen ☆☆☆
()
Ответ на: комментарий от Aleksandra

Дело не в файрволе и не в iptables. Сервер только создал и секьюрностью пока не не озаботился.

sudo systemctl status firewalld
Unit firewalld.service could not be found.
[ec2-user@ip-172-31-28-86 ~]$ 

Мне кажется, хотя я rad hat только поставил в первый раз (до этого пользовался LAMP Ubuntu) что проблема все-таки где-то в том, как провайдер обеспечивает доступ к серверу. Провайдер aws. Поэтому ftp и подсказывает использовать пассивный режим.

denko
() автор топика
Ответ на: комментарий от Bobby_

Попробовал. Консольная утилита хотя бы dir выполнила. Filezilla все не работает. Но мне хотя бы через консоль файлы отправлять, их не много.

ftp> quote pasv
227 Entering Passive Mode (ip address,195,83).
ftp> dir
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
drwxrwxrwx    2 1001     1001            6 Dec 29 06:35 ftp
226 Directory send OK.
ftp> cd ftp
250 Directory successfully changed.
ftp> put /home/denko/test/test
local: /home/denko/test/test remote: /home/denko/test/test
200 PORT command successful. Consider using PASV.
553 Could not create file.
denko
() автор топика
Ответ на: комментарий от denko

Консольная утилита хотя бы dir выполнила

Значит сервер работает.

Теперь разберись с 2 вещами:

1. Авторизация и права доступа на каталог, в который писать/читать 2. почему твоя файзилла не перереходит в пассивную моду, это когда сервер анонсирует свои порты, а клиент сам должен отрыть на них соединение.

Bobby_
()
Ответ на: комментарий от Bobby_

файлзилла на этом ip и есть, только это ip домашней сети, конечно. Так и должно быть? vsftpd в интернете.

Не знаю как, но настроил хоть какую-то работу ftp. получается подключиться, удалить файлы, закачать файлы, но если SELinux отключен. Если его включить, то не получается загрузить файлы. Ошибка can not create file.

Для папки ftp делал

# chcon -R -t public_content_t /path/to/directory
и
# setsebool -P allow_ftpd_anon_write=1
не помогает.

denko
() автор топика
Ответ на: комментарий от denko

Включи логирование: semodule -DB. Затем смотри ошибки в /var/log/audit/audit.log, вроде так.

Bobby_
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.