Я настраиваю брандмауэр с iptables на своем хосте. Я хочу отключить запрос ICMP с меткой времени, но он подключен, я разрешаю только тип 8 (эхо-запрос), поступающий на хост, но, тем не менее, я могу получить метку времени с моего хоста
64 bytes from xxxxxxxxx: icmp_seq=2 ttl=61 time=2.56 ms
TS: 36654775 absolute
-6423
3
1
-4
0
4
0
-2
Unrecorded hops: 1
Я пытаюсь разрешить только тип 8, но это не работает. Похоже, что все, что я могу сделать, это разрешить все запросы ICMP или отклонить их все. Ниже приводится сценарий конфигурации, который я использую.
iptables -F
iptables -X
iptables -Z
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state RELATED -j ACCEPT
# allow the icmp
iptables -I INPUT -p icmp --icmp-type 8 -j ACCEPT
# services
iptables -A INPUT -p TCP --dport 22 -j ACCEPT # SSH
iptables -A INPUT -p UDP --sport 53 -j ACCEPT # DNS
iptables -A INPUT -p TCP --sport 53 -j ACCEPT # DNS
iptables -A INPUT -p TCP --dport 80 -j ACCEPT # HTTP
iptables -A INPUT -p TCP --dport 443 -j ACCEPT # HTTPS
# allow the replay from outgoing established connection
iptables -A INPUT -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
Версия ядра Linux - 2.6.18, а версия iptables - v1.3.5. Что случилось с этим? Как заблокировать запросы отметок времени?
Я попробовал вариант с отметкой времени ping
, и похоже, что тип ICMP остается равным 8, а запрос отметки времени находится отдельно от параметров IP. Вероятно, поэтому вы не фильтруете запросы, поскольку они выглядят так же, как обычные эхо-запросы к iptables
.
Существует расширение сопоставления ipv4options, которое вы, возможно, захотите изучить для блокировки временных меток.