Я знаком с усилением защиты IPv4 на сервере Ubuntu, но когда я использую те же правила для IPv6 с ip6tables, подключение IPv6 теряется, что приводит к Пункт назначения недоступен: Адрес недоступен
ошибки при пинге. Не могли бы вы посоветовать, как исправить эту проблему? Моя логика следующая:
#IPv6
#Сбросить все правила (F) и цепочки (X)
ip6tables -F
ip6tables -X
#Принудительная проверка пакетов SYN
ip6tables -A ВХОД -p TCP ! --syn -m состояние --state NEW -j DROP
#Отбрасывать XMAS-пакеты
ip6tables -A INPUT -p tcp --tcp-flags ВСЕ ВСЕ -j DROP
#Отбрасывать пустые пакеты
ip6tables -A INPUT -p tcp --tcp-flags ВСЕ НЕТ -j DROP
#Отбрасывать входящие пакеты с фрагментами
#ip6tables -A INPUT -f -j DROP #это действительно не работает как в iptables
#Отбрасывать трафик
ip6tables -t фильтр -P ВХОД DROP
ip6tables -t filter -P ПЕРЕДАЧА ПЕРЕДАЧИ
ip6tables -t фильтр -P ВЫХОД DROP
#Оставаться установленным
ip6tables -A ВХОД -m состояние --state СВЯЗАННО, УСТАНОВЛЕНО -j ПРИНЯТЬ
ip6tables -A ВЫВОД -m состояние --state СВЯЗАННО, УСТАНОВЛЕНО -j ПРИНЯТЬ
#Принять петлю
ip6tables -t filter -A INPUT -i lo -j ПРИНЯТЬ
ip6tables -t filter -A ВЫВОД -o lo -j ПРИНЯТЬ
#ICMP
ip6tables -t фильтр -A ВВОД -p icmp -j ПРИНЯТЬ
ip6tables -t filter -A ВЫВОД -p icmp -j ПРИНЯТЬ
#СервисX
ip6tables -t filter -A НАЗНАЧЕНИЕ -p ПРОТОКОЛ --dport ПОРТ -j ПРИНЯТЬ
#СервисY
ip6tables -t filter -A НАЗНАЧЕНИЕ -p ПРОТОКОЛ --dport ПОРТ -j ПРИНЯТЬ
#ServiceZ
ip6tables -t filter -A НАЗНАЧЕНИЕ -p ПРОТОКОЛ --dport ПОРТ -j ПРИНЯТЬ
...
Пример для ssh-сервера, хотя я никогда не использую порт 22 по умолчанию...
#SSH
ip6tables -t filter -A INPUT -p tcp --dport 22 -j ПРИНЯТЬ
ip6tables -t filter -A ВЫВОД -p tcp --dport 22 -j ПРИНЯТЬ
Скрипт сделан исполняемым, поэтому он запускается после перезагрузки в /etc/init.d/scriptname. Идея состоит в том, чтобы заблокировать все и разрешить только то, что действительно известно для использования серверными службами.
Какой-нибудь лучший подход, пожалуйста? Почему это работает в IPv4, но не в IPv6? Когда я выпускаю ip6tables -t filter -P ВВОД ПРИНЯТЬ
это работает, но это не главное. Как мне действительно защитить IPv6 на серверах Ubuntu? Спасибо!