- Ссылка на ресурс
- https://nftables.org
- Поддерживаемые версии
- Отсутствует
Это конфиг для NFTables, который является расширенной заменой базового функционала ufw с дополнительными правилами защиты.
Он рассчитан на защиту серверов от распространённых проблем: сканирование портов, большое количество мусорного трафика, простые TCP/UDP flood-атаки, некорректные TCP пакеты и подозрительную сетевую активность.
Конфиг создавался в первую очередь для VDS/Дедиков с игровыми серверами (например Minecraft), веб-сервисами.
ВНИМАНИЕ:
Не используйте его вместе с ufw. Перед установкой необходимо либо удалить ufw, либо отключить его:
nftables не является заменой защиты на уровне провайдера. Если по вашему IP идёт большой DDoS выше возможностей вашего канала, этот конфиг не спасёт.
Данный конфиг предназначен для фильтрации и автоматической блокировки части вредоносного трафика уже на стороне сервера, но он не защищает от реального DDoS
Возможности:
1. Автоматическая блокировка IP при подозрительной активности.
2. Защита от простых TCP SYN flood и UDP flood атак с временными автобанами.
3. Защита от сканирования TCP/UDP портов.
4. Раздельная работа с IPv4 и IPv6.
5. Белый список IP адресов (
6. Поддержка Docker и WireGuard. Интерфейсы
7. 6. ACL для отдельных портов (port_acl4 и
8. Фильтрация некорректных TCP пакетов и части подозрительного сетевого мусора.
9. Ограничение количества новых TCP сессий с одного адреса (по умолчанию 64).
10. Поддержка ICMP/ICMPv6.
Конфиг тестировался на Ubuntu 24.04.4 TLS с nftables v1.0.9, но должен работать на системах с современным nftables.
Установка:
Проверьте наличие nftables:
Если nftables отсутствует:
Перед установкой переименуйте текущий конфиг:
После этого поместите новый
Перед запуском обязательно проверьте конфиг:
Если ошибок нет:
Или если nftables уже был установлен:
Если при проверке появились ошибки, восстановите переименованный nftables.conf.bak и перезапустите nftables.
Настройка:
По умолчанию разрешены следующие TCP порты IPv4:
UDP порты по умолчанию закрыты:
Добавьте необходимые порты вручную.
Важно: обязательно добавьте ваш SSH порт, иначе после применения правил можно потерять доступ к серверу.
Для добавления своего IP в белый список:
Остальные настройки описаны комментариями внутри самого конфига.
Команды:
> IPv4:
Посмотреть IPv4, заблокированные за вредоносный трафик:
Посмотреть IPv4, заблокированные за сканирование портов:
Сбросить все IPv4 автобаны:
> IPv6:
Посмотреть IPv6, заблокированные за DDoS:
Посмотреть IPv6, заблокированные за сканирование портов:
Сбросить все IPv6 автобаны:
Дополнительно:
Bogon сети по умолчанию разрешены только через интерфейс wg0:
Вот список Bogon сетей:
Если вам необходимо использовать такие адреса на других интерфейсах - измените данные правила.
Не изменяйте конфиг без понимания синтаксиса nftables.
Конфиг не ограничивает исходящий трафик от сервера.
Возможны ложные срабатывания. Если найдёте проблемы или несовместимость - сообщайте.
Он рассчитан на защиту серверов от распространённых проблем: сканирование портов, большое количество мусорного трафика, простые TCP/UDP flood-атаки, некорректные TCP пакеты и подозрительную сетевую активность.
Конфиг создавался в первую очередь для VDS/Дедиков с игровыми серверами (например Minecraft), веб-сервисами.
Не используйте его вместе с ufw. Перед установкой необходимо либо удалить ufw, либо отключить его:
sudo systemctl disable --now ufwnftables не является заменой защиты на уровне провайдера. Если по вашему IP идёт большой DDoS выше возможностей вашего канала, этот конфиг не спасёт.
Данный конфиг предназначен для фильтрации и автоматической блокировки части вредоносного трафика уже на стороне сервера, но он не защищает от реального DDoS
1. Автоматическая блокировка IP при подозрительной активности.
2. Защита от простых TCP SYN flood и UDP flood атак с временными автобанами.
3. Защита от сканирования TCP/UDP портов.
4. Раздельная работа с IPv4 и IPv6.
5. Белый список IP адресов (
whitelist4 и whitelist6) с полным обходом правил.6. Поддержка Docker и WireGuard. Интерфейсы
docker0 и wg0 учтены в правилах (можете заменить на свои).7. 6. ACL для отдельных портов (port_acl4 и
port_acl6) - возможность разрешить определённый порт только конкретному IP.8. Фильтрация некорректных TCP пакетов и части подозрительного сетевого мусора.
9. Ограничение количества новых TCP сессий с одного адреса (по умолчанию 64).
10. Поддержка ICMP/ICMPv6.
Конфиг тестировался на Ubuntu 24.04.4 TLS с nftables v1.0.9, но должен работать на системах с современным nftables.
Проверьте наличие nftables:
sudo nft -vЕсли nftables отсутствует:
sudo apt updatesudo apt install nftablesПеред установкой переименуйте текущий конфиг:
sudo mv /etc/nftables.conf /etc/nftables.conf.bakПосле этого поместите новый
nftables.conf в папку /etc.Перед запуском обязательно проверьте конфиг:
sudo nft -c -f /etc/nftables.confЕсли ошибок нет:
sudo systemctl enable --now nftablesИли если nftables уже был установлен:
sudo systemctl restart nftablesЕсли при проверке появились ошибки, восстановите переименованный nftables.conf.bak и перезапустите nftables.
По умолчанию разрешены следующие TCP порты IPv4:
Код:
set allowed_tcp4 {
type inet_service
flags interval
elements = { 80, 443, 3306, 25565, 22 }
}
UDP порты по умолчанию закрыты:
Код:
set allowed_udp4 {
type inet_service
flags interval
}
Добавьте необходимые порты вручную.
Важно: обязательно добавьте ваш SSH порт, иначе после применения правил можно потерять доступ к серверу.
Для добавления своего IP в белый список:
Код:
set whitelist4 {
type ipv4_addr
flags interval
elements = { ВАШ.IP }
}
Остальные настройки описаны комментариями внутри самого конфига.
> IPv4:
Посмотреть IPv4, заблокированные за вредоносный трафик:
sudo nft list set inet filter ddos4Посмотреть IPv4, заблокированные за сканирование портов:
sudo nft list set inet filter portscanners4Сбросить все IPv4 автобаны:
sudo nft flush set inet filter ddos4 && sudo nft flush set inet filter portscanners4> IPv6:
Посмотреть IPv6, заблокированные за DDoS:
sudo nft list set inet filter ddos6Посмотреть IPv6, заблокированные за сканирование портов:
sudo nft list set inet filter portscanners6Сбросить все IPv6 автобаны:
sudo nft flush set inet filter ddos6 && sudo nft flush set inet filter portscanners6Bogon сети по умолчанию разрешены только через интерфейс wg0:
Код:
ip saddr @bogon4 iifname != "wg0" drop
ip6 saddr @bogon6 iifname != "wg0" drop
Вот список Bogon сетей:
Код:
# IPv4 bogon
set bogon4 {
type ipv4_addr
flags interval
elements = { 0.0.0.0/8, 10.0.0.0/8, 100.64.0.0/10, 127.0.0.0/8, 169.254.0.0/16, 172.16.0.0/12, 192.0.0.0/24, 192.0.2.0/24, 192.168.0.0/16, 198.18.0.0/15, 198.51.100.0/24, 203.0.113.0/24, 224.0.0.0/4, 240.0.0.0/4 }
}
# IPv6 bogon
set bogon6 {
type ipv6_addr
flags interval
elements = { ::/128, ::1/128, ::ffff:0:0/96, 100::/64, 2001:10::/28, 2001:db8::/32, 3fff::/20, fc00::/7, fec0::/10, ff00::/8 }
Если вам необходимо использовать такие адреса на других интерфейсах - измените данные правила.
Не изменяйте конфиг без понимания синтаксиса nftables.
Конфиг не ограничивает исходящий трафик от сервера.
Возможны ложные срабатывания. Если найдёте проблемы или несовместимость - сообщайте.

