OpenWRT Firewarll INPUT Chain позволяет все?
Я ничего не сделал с моими правилами брандмауэра по умолчанию, кроме открытия порта для ssh из wan и добавления правил для OpenVPN, как определено в этом руководстве: http://wiki.openwrt.org/doc/howto/vpn.openvpn, но я обеспокоен тем, что я оставил больше открытых портов, чем предполагалось, из-за вывода iptables -L. Я поставил полный вывод ниже, но в частности:
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere
syn_flood tcp -- anywhere anywhere tcp flags:FIN,SYN,RST,ACK/SYN
input_rule all -- anywhere anywhere
input all -- anywhere anywhere
from the:
ACCEPT all -- anywhere anywhere
немного ли это означает, что все принимается откуда угодно?
Завершите вывод таблиц IP для справки:
# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere
syn_flood tcp -- anywhere anywhere tcp flags:FIN,SYN,RST,ACK/SYN
input_rule all -- anywhere anywhere
input all -- anywhere anywhere
Chain FORWARD (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
forwarding_rule all -- anywhere anywhere
forward all -- anywhere anywhere
reject all -- anywhere anywhere
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere
output_rule all -- anywhere anywhere
output all -- anywhere anywhere
Chain forward (1 references)
target prot opt source destination
zone_lan_forward all -- anywhere anywhere
zone_wan_forward all -- anywhere anywhere
zone_vpn_forward all -- anywhere anywhere
Chain forwarding_lan (1 references)
target prot opt source destination
Chain forwarding_rule (1 references)
target prot opt source destination
Chain forwarding_vpn (1 references)
target prot opt source destination
Chain forwarding_wan (1 references)
target prot opt source destination
Chain input (1 references)
target prot opt source destination
ACCEPT udp -- anywhere anywhere udp dpt:openvpn
zone_lan all -- anywhere anywhere
zone_wan all -- anywhere anywhere
zone_vpn all -- anywhere anywhere
Chain input_lan (1 references)
target prot opt source destination
Chain input_rule (1 references)
target prot opt source destination
Chain input_vpn (1 references)
target prot opt source destination
Chain input_wan (1 references)
target prot opt source destination
Chain output (1 references)
target prot opt source destination
zone_lan_ACCEPT all -- anywhere anywhere
zone_wan_ACCEPT all -- anywhere anywhere
zone_vpn_ACCEPT all -- anywhere anywhere
Chain output_rule (1 references)
target prot opt source destination
Chain reject (7 references)
target prot opt source destination
REJECT tcp -- anywhere anywhere reject-with tcp-reset
REJECT all -- anywhere anywhere reject-with icmp-port-unreachable
Chain syn_flood (1 references)
target prot opt source destination
RETURN tcp -- anywhere anywhere tcp flags:FIN,SYN,RST,ACK/SYN limit: avg 25/sec burst 50
DROP all -- anywhere anywhere
Chain zone_lan (1 references)
target prot opt source destination
input_lan all -- anywhere anywhere
zone_lan_ACCEPT all -- anywhere anywhere
Chain zone_lan_ACCEPT (3 references)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
Chain zone_lan_DROP (0 references)
target prot opt source destination
DROP all -- anywhere anywhere
DROP all -- anywhere anywhere
Chain zone_lan_REJECT (1 references)
target prot opt source destination
reject all -- anywhere anywhere
reject all -- anywhere anywhere
Chain zone_lan_forward (1 references)
target prot opt source destination
zone_wan_ACCEPT all -- anywhere anywhere
forwarding_lan all -- anywhere anywhere
zone_lan_REJECT all -- anywhere anywhere
Chain zone_vpn (1 references)
target prot opt source destination
input_vpn all -- anywhere anywhere
zone_vpn_ACCEPT all -- anywhere anywhere
Chain zone_vpn_ACCEPT (3 references)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
Chain zone_vpn_DROP (0 references)
target prot opt source destination
DROP all -- anywhere anywhere
DROP all -- anywhere anywhere
Chain zone_vpn_REJECT (0 references)
target prot opt source destination
reject all -- anywhere anywhere
reject all -- anywhere anywhere
Chain zone_vpn_forward (1 references)
target prot opt source destination
zone_wan_ACCEPT all -- anywhere anywhere
zone_lan_ACCEPT all -- anywhere anywhere
forwarding_vpn all -- anywhere anywhere
zone_vpn_ACCEPT all -- anywhere anywhere
Chain zone_wan (1 references)
target prot opt source destination
ACCEPT udp -- anywhere anywhere udp dpt:bootpc
ACCEPT icmp -- anywhere anywhere icmp echo-request
ACCEPT tcp -- anywhere anywhere tcp dpt:23232
input_wan all -- anywhere anywhere
zone_wan_REJECT all -- anywhere anywhere
Chain zone_wan_ACCEPT (3 references)
target prot opt source destination
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
Chain zone_wan_DROP (0 references)
target prot opt source destination
DROP all -- anywhere anywhere
DROP all -- anywhere anywhere
Chain zone_wan_REJECT (2 references)
target prot opt source destination
reject all -- anywhere anywhere
reject all -- anywhere anywhere
Chain zone_wan_forward (1 references)
target prot opt source destination
forwarding_wan all -- anywhere anywhere
zone_wan_REJECT all -- anywhere anywhere
1 ответ
Извините, но я не вижу, в чем здесь проблема. Да, у вас есть брандмауэр, который пропускает любой пакет, как INPUT, так и FORWARD. Это стандартная конфигурация для недавно установленного брандмауэра OpenWRT, у меня была такая же конфигурация.
По сути, правила iptables следует читать последовательно: чтение с первого по последнее, применяется первое подходящее правило, а остальные правила даже не проверяются. Если все правила проверены и ни одно из них не подходит, применяется политика по умолчанию (например, в случае цепочки INPUT, по умолчанию применяется политика ПРИНЯТЬ).
Взяв в качестве примера цепочку INPUT, входящий пакет проверяется, чтобы определить, связан ли он с существующим соединением; если это так, правило применяется, таким образом, пакет ПРИНЯТ. Если это не так (то есть пакет принадлежит еще не установленному соединению), мы переходим ко второму правилу. Второе правило не имеет критериев для соответствия, поэтому все пакеты соответствуют ему; таким образом, оно применяется, и его применение означает: ПРИНЯТЬ.
Остальные правила никогда не ставятся под сомнение. Вот почему вы должны тщательно проверять правила iptables перед их постоянным сохранением: порядок, в котором вы предоставили правила, может отличаться от того, в котором они применяются, и, следовательно, может привести к неприятным последствиям.
Эта общая политика (применяется первое подходящее правило, игнорируются следующие правила), например, отличается от политики, с которой ядро применяет правила маршрутизации: в этом случае применяется наиболее ограничивающее правило, которое подходит, независимо от порядка, в котором правила маршрутизации хранятся.