Извините, ребята, за глупый вопрос, но я не могу открыть свой FTP (ProFTPd) из браузера на CentOS 6.5. Когда я останавливаю IPtables, у меня нет проблем, но когда я работаю, у меня есть.
Порт 21 открыт, порт 20 нет (не знаю, как его открыть).
РЕДАКТИРОВАТЬ 1:
Вывод из "iptables -L -n"
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:21
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:8000
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
target prot opt source destination
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
РЕДАКТИРОВАТЬ 2: @HBruijn Его способ работает для меня.
Ваш вопрос сформулирован не очень хорошо, но описанные вами симптомы указывают на то, что пассивный FTP не работает правильно в сочетании с вашим брандмауэром.
Обычно команда insmod nf_conntrack_ftp
достаточно для загрузки вспомогательного модуля FTP в плохо настроенном брандмауэре RHEL6 или CentOS.
Чтобы сделать это постоянным:
Отредактируйте файл конфигурации /etc/sysconfig/iptables-config
и добавляем вспомогательный модуль nf_conntrack_ftp
в переменную IPTABLES_MODULES:
IPTABLES_MODULES="nf_conntrack_ftp"
или добавьте его к любым другим модулям, уже перечисленным там.
Вы можете напрямую отредактировать файл конфигурации iptables /etc/sysconfig/iptables
затем перезапустите службу iptables. Или измените и сохраните текущую конфигурацию. Как root или sudo:
# If using a custom chain for this sort of thing, APPEND port to chain:
iptables -A MYCHAIN -m state --state NEW -p tcp --dport 20 -j ACCEPT
service iptables save
Если у вас есть строка REJECT в вашей цепочке INPUT, вам нужно убедиться, что порт, который вы добавляете в брандмауэр, вставлен перед REJECT:
# List the Chain with line numbers
iptables -L INPUT -n --line-numbers
# in this example 7 is REJECT line from the above, this will push the REJECT line down
# and insert this right above it:
iptables -I INPUT 7 -m state --state NEW -p tcp --dport 20 -j ACCEPT
service iptables save
также не забудьте сделать то же самое для ip6tables
если необходимо.