Правила для Правила iptables. Список возможных типов выводится по команде
# iptables -p icmp -h
Valid ICMP Types:
any
echo-reply (pong)
destination-unreachable
network-unreachable
host-unreachable
protocol-unreachable
port-unreachable
fragmentation-needed
source-route-failed
network-unknown
host-unknown
network-prohibited
host-prohibited
TOS-network-unreachable
TOS-host-unreachable
communication-prohibited
host-precedence-violation
precedence-cutoff
source-quench
redirect
network-redirect
host-redirect
TOS-network-redirect
TOS-host-redirect
echo-request (ping)
router-advertisement
router-solicitation
time-exceeded (ttl-exceeded)
ttl-zero-during-transit
ttl-zero-during-reassembly
parameter-problem
ip-header-bad
required-option-missing
timestamp-request
timestamp-reply
address-mask-request
address-mask-reply
Можно указать стандартный числовой код или сообщение. Пропустить все входящие ICMP-эхо-запросы (пинги).
# iptables -I INPUT -p icmp --icmp-type 8 -j ACCEPT
# iptables -I INPUT -p icmp --icmp-type echo-request -j ACCEPT
Блокирует фрагменты ICMP-пакетов
iptables -I INPUT -p icmp -f -j DROP
Рекомендуемые правила для ICMP:
#!/bin/sh
IPT="/sbin/iptables"
$IPT -A INPUT -p icmp --icmp-type 3 -j ACCEPT # destination-unreachable 3/4
$IPT -A INPUT -p icmp --icmp-type 8 -j ACCEPT # echo request
$IPT -A INPUT -p icmp --icmp-type 12 -j ACCEPT # IP header bad
$IPT -A OUTPUT -p icmp --icmp-type 0 -j ACCEPT #
$IPT -A OUTPUT -p icmp --icmp-type 3 -j ACCEPT #
$IPT -A OUTPUT -p icmp --icmp-type 4 -j ACCEPT #
$IPT -A OUTPUT -p icmp --icmp-type 11 -j ACCEPT #
$IPT -A OUTPUT -p icmp --icmp-type 12 -j ACCEPT #
В отличие от цели DROP, где пакет просто отбрасывается, в данном случае отправителю будет отправлено IСМР-сообщение «Port unreachable / icmp port unreachable» («Порт недоступен»). С помощью опции –reject-with можно изменить тип ICMP-сообщения:
# iptables -A INPUT -s 1.2.3.4 -j REJECT --reject-with icmp-net-unreachable
У опции –reject-with есть следующие аргументы:
icmp-net-unreachable — сеть недоступна;
icmp-host-unreachable — узел недоступен;
icmp-port-unreachable — порт недоступен;
icmp-proto-unreahable — неподдерживаемый протокол;
icmp-net-prohibited — сеть запрещена;
icmp-host-prohibited — узел запрещен.
По умолчанию будет передано сообщение port-unreachable. Вышеперечисленные аргументы являются ICMP error messages.В дополнение к опции –reject-with TCP-пакеты можно отклонить с помощью аргумента tcp-reset, который отправляет RST-сообщения отправителю. Это наилучший с точки зрения безопасности способ, нужно обязательно использовать именно его. TCP RST пакеты используются для закрытия TCP соединений.