У меня есть компьютер 192.168.1.10, и я хочу заблокировать трафик на порт 443 из локальной сети.
Сейчас я просто использую:
iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 443 -j REJECT
проблема в том, что если я укажу в браузере https://192.168.1.10
требуется некоторое время, чтобы пройти по таймауту соединения, вместо того, чтобы немедленно дать мне отказ в соединении, как я ожидал от действия -j REJECT.
Зачем ? Я хотел бы получить отказ в соединении с установленными мной правилами iptables, а не тайм-аут соединения с некоторой задержкой.
Спасибо
ОБНОВЛЕНИЕ: правила iptables:
Chain INPUT (policy DROP 1 packets, 36 bytes)
pkts bytes target prot opt in out source destination
0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcpflags:! 0x17/0x02 state NEW
0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcpflags: 0x3F/0x29
0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcpflags: 0x3F/0x3F
0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcpflags: 0x3F/0x00
0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcpflags: 0x06/0x06
0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcpflags: 0x03/0x03
0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcpflags: 0x11/0x01
0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcpflags: 0x3F/0x37
0 0 ACCEPT tcp -- * * 127.0.0.0/24 0.0.0.0/0
0 0 ACCEPT udp -- * * 127.0.0.0/24 0.0.0.0/0
9 468 REJECT tcp -- * * 192.168.1.0/24 0.0.0.0/0 tcp dpt:443 reject-with icmp-admin-prohibited
0 0 REJECT tcp -- tun0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 reject-with icmp-port-unreachable
70 4080 ACCEPT tcp -- * * 192.168.1.0/24 0.0.0.0/0
37 9773 ACCEPT udp -- * * 192.168.1.0/24 0.0.0.0/0
0 0 ACCEPT udp -- eth0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:67
0 0 ACCEPT all -- tun0 * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmptype 0
0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmptype 3
0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmptype 11
0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 icmptype 8 limit: avg 10/sec burst 5
0 0 DROP icmp -- * * 0.0.0.0/0 0.0.0.0/0
6 456 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT all -- eth0 tun0 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
0 0 ACCEPT all -- * eth0 10.7.7.0/24 0.0.0.0/0
Chain OUTPUT (policy ACCEPT 94 packets, 14132 bytes)
pkts bytes target prot opt in out source destination
На основании дальнейших обменов выяснилось, что возникла необходимость добавить:
--reject-with tcp-reset
на ваш iptables ... -j REJECT
правило, чтобы иметь немедленную реакцию, не дожидаясь тайм-аута.
Даже если бы было лучше использовать определенный тип отказа на основе ICMP, поскольку этот протокол предназначен для сигнализации о причине отказа в соединении.