Я хочу, чтобы iptables фильтровал только один интерфейс eth0, который обращен к WAN. Как это может быть сделано? И я хочу, чтобы порты ftp и ssh были открыты на eth0.
Я хочу, чтобы iptables фильтровал только один интерфейс eth0, который обращен к WAN. Как это может быть сделано? И я хочу, чтобы порты ftp и ssh были открыты на eth0.
Ответы:
Таким образом, для всех интерфейсов, кроме одного, вы хотите принимать весь трафик, а на eth0 вы хотите отбросить весь входящий трафик, кроме ftp и ssh.
Во-первых, мы можем установить политику приема всего трафика по умолчанию.
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
Затем мы можем сбросить ваши правила брандмауэра.
iptables -F
Теперь можно сказать, что мы хотим разрешить входящий трафик на eth0, который является частью соединения, которое мы уже разрешили.
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
Также, что мы хотим разрешить входящие ssh-соединения на eth0.
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
Но что-либо еще поступающее на eth0 должно быть отброшено.
iptables -A INPUT -i eth0 -j DROP
Для более подробной информации смотрите эту статью CentOS вики .
FTP сложнее, чем ssh, поскольку он может использовать произвольный порт, поэтому посмотрите этот предыдущий вопрос .
Нечто подобное должно сделать работу:
iptables -A INPUT -i eth1 -p all -j DROP
iptables -A INPUT -i eth0 -p all -j ACCEPT
ACCEPT
остального на других интерфейсах.
Возможность указать интерфейс в правиле Iptables является -i
, например: -i eth0
.
Это очень просто, когда вы создаете iptables
правило, тогда вы должны указать интерфейс. Опция указать карту LAN, на которой iptables
должно работать-i
Следующие правила могут дать вам хороший пример
iptables -A INPUT -p tcp -i eth0 --dport 22 -j ACCEPT
iptables -A INPUT -p tcp -i eth0 --dport 21 -j ACCEPT
iptables -A INPUT -p tcp -i eth0 -j REJECT --reject-with tcp-reset
Последнее правило - отклонить любой другой пакет, который не соответствует первым двум правилам. Все правила iptables
выполняются в указанном порядке, поэтому правило отклонения пакетов всегда последнее.