Закрыть ping
Если нужно, чтобы сервер перестал отвечать на ICMP ping-запросы, есть несколько вариантов.
Отключаем на уровне ядра через sysctl:
Открываем файл:
nano /etc/sysctl.conf
Добавляем строку:
net.ipv4.icmp_echo_ignore_all = 1
Применяем изменения:
sysctl -p
Разрешаем пинг только для определенных IP через nftables:
Открываем конфиг:
nano /etc/nftables.conf
Добавляем:
table inet filter {
chain input {
type filter hook input priority 0;
# Пинг только от 192.168.0.1
ip saddr 192.168.0.1 icmp type echo-request accept
# Блокируем пинг от всех
icmp type echo-request drop
# счетчик пакетов для диагностики если нужно
counter
}
chain forward {
type filter hook forward priority 0;
}
chain output {
type filter hook output priority 0;
}
}
Если у вас в конфигурации есть policy drop
, то не забудьте разрешить остальные нужные порты, например:
tcp dport { 80, 443 } accept
Применяем конфигурацию:
nft -f /etc/nftables.conf
systemctl restart nftables
Чтобы настройки сохранялись после перезагрузки (если включены counter, то добавляем -s):
nft -s list ruleset > /etc/nftables.conf
systemctl enable nftables
systemctl restart nftables
systemctl status nftables
Проверка правил:
nft list ruleset
Отключение пинга через iptables
Сначала разрешаем пинг для 192.168.0.1, а затем отключаем для всех:
iptables -I INPUT -s 192.168.0.1 -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
Добавляем разрешение для нужных портов:
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
Проверяем правила:
iptables -L -n
Сохраняем и применяем:
iptables-save > /etc/iptables/rules.v4
netfilter-persistent save
netfilter-persistent reload
Перед использованием команд netfilter-persistent
убедитесь, что установлен пакет iptables-persistent
:
apt install iptables-persistent