1

Я ничего не сделал с моими правилами брандмауэра по умолчанию, кроме открытия порта для 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 ответ1

1

Извините, но я не вижу, в чем здесь проблема. Да, у вас есть брандмауэр, который пропускает любой пакет , как INPUT, так и FORWARD. Это стандартная конфигурация для недавно установленного брандмауэра OpenWRT, у меня была такая же конфигурация.

По сути, правила iptables следует читать последовательно: чтение с первого по последнее, применяется первое подходящее правило, а остальные правила даже не тестируются. Если все правила протестированы и ни одно из них не подходит, применяется политика по умолчанию (например, в случае цепочки INPUT, по умолчанию применяется политика ПРИНЯТЬ).

Взяв в качестве примера цепочку INPUT, входящий пакет проверяется, чтобы определить, связан ли он с существующим соединением; если это так, правило применяется, поэтому пакет ПРИНЯТ. Если это не так (то есть пакет принадлежит еще не установленному соединению), мы переходим ко второму правилу. Второе правило не имеет критериев для соответствия, поэтому все пакеты соответствуют ему; таким образом, оно применяется, и его применение означает: ПРИНЯТЬ.

Остальные правила никогда не ставятся под сомнение. Вот почему вы должны тщательно проверять правила iptables перед их постоянным сохранением: порядок, в котором вы предоставили правила, может отличаться от того, в котором они применяются, и, следовательно, может привести к неприятным последствиям.

Эта общая политика (применяется первое подходящее правило, игнорируются следующие правила), например, отличается от политики, с которой ядро применяет правила маршрутизации: в этом случае применяется наиболее ограничивающее правило, которое подходит , независимо от порядка, в котором правила маршрутизации хранятся.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .