Я хочу разрешить входящий трафик FTP.
CentOS 5.4:
Это мой /etc/sysconfig/iptables
файл.
# Generated by iptables-save v1.3.5 on Thu Oct 3 21:23:07 2013
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [133:14837]
-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m state --state ESTABLISHED -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-port-unreachable
-A OUTPUT -p tcp -m tcp --sport 20 -j ACCEPT
COMMIT
# Completed on Thu Oct 3 21:23:07 2013
Также по умолчанию загружается модуль ip_conntrack_netbios_n.
#service iptables restart
Flushing firewall rules: [ OK ]
Setting chains to policy ACCEPT: filter [ OK ]
Unloading iptables modules: [ OK ]
Applying iptables firewall rules: [ OK ]
Loading additional iptables modules: ip_conntrack_netbios_n[ OK ]
Но проблема не в этом модуле, так как я пытался его разгрузить, но все равно не повезло.
Если я отключу iptables, я смогу перенести свою резервную копию с другого компьютера на FTP. Если iptables применяется, передача не удалась.
источник
--sport 1024: and --dport 1024:
означает, что мы включаем все порты в диапазон,1024:32535
которые являются непривилегированными портами, а это означает, что пользователи, не имеющие привилегированного доступа, могут использовать эти порты для тестирования своих приложений.--sport
непривилегированный режим, чтобы предотвратить проблемы с брандмауэром и позволить клиентам подключаться к серверу.NEW,ESTABLISHED
но это не должно иметь значения. Соединение сначала всегда находится вNEW
состоянии, затем оно переходит,RELATED
что указывает на то, что это соединение связано с уже разрешенным соединением. Когда соединение переходит вESTABLISHED
состояние, оно сообщает нам, что соединение установлено с обеих сторон (сервер / клиент). Вы можете попробовать-m state --state ...
вместо этого.NEW
действительно имеет значение. Кажется, это не работает без него.--sport 1024:
. Почему порт клиента будет полезен для правила? Если он подключается от порта 80 к пассивным портам сервера, ему также необходимо разрешить подключение.Я видел такие обширные правила уже в нескольких блогах и т. Д. И задавался вопросом, почему бы просто не использовать
вместе с
nf_conntrack_ftp
модулем. Это более кратко и читабельно, что, как правило, хорошо, особенно с брандмауэрами ...FWIW, похоже, что в ядре 4.7 произошли изменения, так что вам нужно либо установить
net.netfilter.nf_conntrack_helper=1
черезsysctl
(например, вставить его/etc/sysctl.d/conntrack.conf
), либо использовать(см. здесь для более подробной информации)
источник
echo "1" > /proc/sys/net/netfilter/nf_conntrack_helper
и все работает как положено.FTP-клиент:
FTP-СЕРВЕР:
Для переключения между пассивным и активным режимом на стороне клиента
источник
Добавление NEW исправило это, я считаю.
Теперь мой файл iptables выглядит следующим образом ..
Введите его в качестве ответа, так как слишком много символов не допускаются в комментариях. Большое спасибо за вашу помощь.
источник
--dport 20:65535
все порты с 20 - 65535 остаются открытыми с любого порта источника между 1024: 65535, что оставляет многие службы открытыми, чего, вероятно, не должно быть, если это явно не разрешено. Я верю, что было задумано--dport 1024:65535
Если вам нужны как активные, так и пассивные соединения, и вы уже принимаете
ESTABLISHED
соединения, такие как:Тогда вам нужно только открыть порт 21 и добавить специальное правило для пассивных портов. Для порта 20 не требуется никаких правил, так как оно уже принято
ESTABLISHED
правилом выше.Сначала примите новые подключения на
port 21
:Затем добавьте помощник CT для пассивных портов
1024:
:Смотрите также:
Примечание: вы должны установить
1024:
как на вашем FTP-сервере: поиск пассивных портов по умолчанию в вашей конфигурации FTP. В противном случае вы открываете слишком много портов, которые могут не относиться к FTP.Важное примечание: я не добавил
OUTPUT
правила, так как мои настройки по умолчанию соответствуютiptables -P OUTPUT ACCEPT
. Это означает, что я доверяю тому, что происходит из моей коробки. Это не может быть хорошим вариантом, особенно в настройках NAT.Очень важное примечание: FTPS не будет работать с такой настройкой, поскольку пассивный порт скрыт (зашифрован), поэтому нет никакого способа
iptables
угадать хороший порт. См. Изменение IPTables для разрешения FTP через TLS с использованием пассивных портов и https://serverfault.com/questions/811431/are-my-iptables-for-ftps-with-tls-okисточник