Я установил vsFTPd в CentOS 5.5, на два серверов, и добавил это правило в свои iptables
:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
Похоже, этого недостаточно, так как когда я пытаюсь загрузить файл с одного сервера на другой, я получаю такой результат (IP-адрес замаскирован):
# ftp 99.99.99.99
Connected to 99.99.99.99 (99.99.99.99).
220 (vsFTPd 2.0.5)
Name (99.99.99.99:root): vinny
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (99,99,99,99,107,74)
ftp: connect: No route to host
Я нашел несколько статей в сети о втором правиле, которое я должен добавить к iptables
, но я не нашел для него подходящего синтаксиса. Не могли бы вы помочь?
пс. У меня установлен vsFTPd по умолчанию, и я не хочу ничего менять в его файле конфигурации (/etc/vsftpd/vsftpd.conf
), если возможно.
Отредактируйте / etc / sysconfig / iptables-config и добавьте эту строку:
IPTABLES_MODULES = "ip_conntrack_ftp"
Сохраните его и перезапустите iptables.
Это связано с тем, что в пассивном режиме для связи используются нестандартные порты, поэтому вам нужно отслеживать ftp-соединения, и iptables разрешит их при необходимости.