LINUX.ORG.RU
ФорумAdmin

Переделка правил из iptables в nftables

 , ,


3

2

Были на старом сервере такие правила для защиты, потом после обновление и переезда на новые сервера эти правила не получается переделать в новый формат для nftables. Прошу помощи в переделки этих правил:

Конвертировать эти правила автоматом используя iptables-restore-translate не получается.

# Создаем список "BRUTESCAN", строгие правила для проверки хакеров, проверяем brute force и сканирование портов
iptables -N BRUTESCAN  
# Если на легитимный порт входит хакер который сканировал нас, мы его блочим
iptables -A BRUTESCAN -m recent --update --seconds 600 --hitcount 10 --name ScanPort -j DROP   

# Если за последний час с одного адреса было 10 или более новых соединений — блокируем этот адрес
iptables -A BRUTESCAN -m conntrack --ctstate NEW -m recent --update --seconds 3600 --hitcount 10 --name BruteForce --rsource -j DROP  

# В противном случае - разрешаем, и при этом заносим в список IP откуда зашли
iptables -A BRUTESCAN -m recent --set --name BruteForce -j ACCEPT 

# Создаем список "ONLYSCAN", простые правила для проверки хакеров, только на сканирование портов
iptables -N ONLYSCAN   

# Если на легитимный порт входит хакер который сканировал нас, мы его блочим
iptables -A ONLYSCAN  -m recent --update --name ScanPort --seconds 60 --hitcount 10 -j DROP    

# В противном случае - разрешаем, и при этом  IP никуда не заносим
iptables -A ONLYSCAN -m recent --set --name AcceptMiniCheck -j ACCEPT  

# вытаскиваем из черного списка IP, если он там есть, используя Port Knocking
iptables -A INPUT -p icmp -m length --length 123 -m recent --remove --name ScanPort -j DROP
iptables -A INPUT -p icmp -m length --length 123 -m recent --remove --name BruteForce -j DROP
iptables -A INPUT -p icmp -m length --length 123 -m recent --set    --name UnBanIPicmp -j DROP

P.S. Это только часть правил и это их параноидальная часть :-)

Не надо ничего переделывать.

Осильте nftables in 10_minutes

И там в конце страницы шаблон для файрвола, начните с него и дополняйте своими правилами.

Дополнительно nftables examples

vvn_black ★★★★★
()
Последнее исправление: vvn_black (всего исправлений: 1)

fail2ban умеет работать с nftables, попробуй это.

Meyer ★★★★★
()

Первое что нужно сделать: посмотреть вот здесь. Если есть что-то из unsupported extensions, то надо что-то придумывать по другому. В остальном, ниже, написаны ссылки на мануалу и местами есть типовые примеры портирования.

SkyMaverick ★★★★★
()

OFF А зачем переделывать? Не работают iptables? Я прошлым летом тоже переполз на новые сервера fedora 34 и там тоже nftables. Остановил, поставил iptables и все работает. С конвертацией тоже ничего не получилось. Планирую когда то начать крутить nftables, когда будет время, все равно же вынудят, как с systemd (он мне кстати, нравится все больше и больше)

alex_sim ★★★★
()
Ответ на: комментарий от alex_sim

все равно же вынудят, как с systemd (он мне кстати, нравится все больше и больше)

Вы хотели сказать «Пришлось убедить себя, что оно нравиться» ? :)

anc ★★★★★
()
Ответ на: комментарий от anc

Вы хотели сказать «Пришлось убедить себя, что оно нравиться» ? :)

:)) Да нет серьезно, переделал свои задания cron на юниты timer, гибче крона.

alex_sim ★★★★
()
Ответ на: комментарий от alex_sim

А, т.е. «оно нравиться» это только про таймеры? :) А если серьезно, можно пример того, что удобно решить таймерами и неудобно/невозможно кроном? Мне просто интересно, таймеры даже палочкой не тыкал, вдруг я что-то упускаю.

anc ★★★★★
()
Ответ на: комментарий от anc

Я тут просил сообщество помощи, может читал. Libvirtd при загрузке виртуалки, добавляет свои правила iptables, так по хозяйски не спрашивая меня, советы были но все как-то не явно, то патчить, то колхозить, хотя мой изворот тоже иначе чем колхозом не назовешь. При добавлении прави, я терял доступ по ssh к компу на котором и крутятся виртуалки. Приходилось по rdp заходить и запускать свой скрипт который рихтовал правила. Не кузяво. Наваял я юнит для разового запуска, работает исправляет правила моей песочницы. Надо его запустить после libvirtd насколько я понимаю, но правила курочатся, только когда в автозагрузке есть виртуалка, те надо время видимо, чтоб еще загрузилась виртуалка. Во тут таймеры и пригодились, там есть возможность запустить юнит после загрузки, сразу или через какое то время, дать возможность загрузиться виртуалке. Не знаю, ты линуксовод авторитетный, может и с кроном можно как то, я не придумал ну и старые скрипты init.d мне както не очень удавались, может просто не было особой нужды. А тут мне как то понравилось, journajd тоже мне «зашел» этож тоже производная systemd? хотя поначалу плевался нафига все в кучу…. Ну уж под одну гребенку счетчики свои, что по крону пускаются, перевел на тамеры и архивацию. Календарь там говорят круче, хотя мне кроновского 22 года хватало.

Да простит TS нас за флуд в его теме.

alex_sim ★★★★
()
Ответ на: комментарий от intelfx

Есть более подробные и понятные иснтрукции с примерами по работе nftables? Желательно не простые, а нацеленные на борьбу с хакерами и брутфорсом. Простых инструкция просто навалом и толку от них ноль.

AnastasiaM
() автор топика
Ответ на: комментарий от alex_sim

Дайте угадаю, в libvirt вы указали сеть типа nat, а не bridge и после этого мужественно боролись с fw при помощи костылей. Я угадал?

anc ★★★★★
()
Ответ на: комментарий от anc

ничего я в libvirt не указывала и костыли не использовала. Прошу пояснить в чем там может быть проблема и как ее правильно избежать?

AnastasiaM
() автор топика
Ответ на: комментарий от anc

Ничего страшнего, это помогает привлечь людей. Возможно кто-то даст ссылку на хорошую инструкцию где подробно и понятно говорится про настройку nft. Я пока такую инструкцию не могу найти, попадаются только простые и базовые.

AnastasiaM
() автор топика
Ответ на: комментарий от anc

нет не подойдет, уже давали ссылку выше. Там только сухие данные без подробностей и без примеров по защите от брутфорса. По этому мануалу можно только базовую настройку сделать, а дальше и глубже не получится.

AnastasiaM
() автор топика
Ответ на: комментарий от alex_sim

А боролся Да, мужественно, по другому не умею.

Вот! А всего-то надо было прочитать документацию.

anc ★★★★★
()
Ответ на: комментарий от anc

@anc с вражим языком я на Вы, учил в школе, техниккуме, институте, а дока наверняка англицкая, да и стока я ее должен прочесть, такой широкий спект задач, что не перечитать всего.

alex_sim ★★★★
()

Промежуточные итоги:

Как использовать список BRUTESCAN и ONLYSCAN в том виде что был у меня не поняла и нешла этого в описании. Поэтому заменила простыми правила с ограничением количества подключений в минуту. Вытаскиваем из черного списка IP пока не получается.

Вот промежуточные привила что сейчас использую:

nft flush ruleset        # очистить все и потом начинаем создавать правила
nft add table ip filter  # Создать таблицу фильтр

nft add chain ip filter INPUT   { type filter hook input   priority 0 \; policy drop   \; } # INPUT   по умолчанию - drop
nft add chain ip filter FORWARD { type filter hook forward priority 0 \; policy drop   \; } # FORWARD по умолчанию - drop
nft add chain ip filter OUTPUT  { type filter hook output  priority 0 \; policy accept \; } # OUTPUT  по умолчанию - accept


nft add rule ip filter INPUT                    ct state invalid              counter drop
nft add rule ip filter INPUT ip protocol tcp    ct state related,established  counter accept
nft add rule ip filter INPUT ip protocol udp    ct state related,established  counter accept
nft add rule ip filter INPUT ip protocol icmp   ct state related,established  counter accept
nft add rule ip filter INPUT iifname "lo"                                     counter accept   # разрешить loopback 
nft add rule ip filter INPUT tcp dport 12345 ct state new limit rate 10/minute counter accept comment "SSH" # простые ограничения
AnastasiaM
() автор топика
Последнее исправление: AnastasiaM (всего исправлений: 1)
Ответ на: комментарий от alex_sim

да и стока я ее должен прочесть, такой широкий спект задач, что не перечитать всего.

Метод научного тыка? Бывает...

anc ★★★★★
()

Получилось конвертировать правила iptables в nftables?

У меня дошли руки поковырять nftables - тупо конвертнуть получилось. Может поможет, я делал так:

iptables-restore-translate -f /etc/sysconfig/iptables >prav
# засунем правила
nft -f ./prav
#просмотр
nft list ruleset
alex_sim ★★★★
()
Ответ на: комментарий от alex_sim

Нет, так у меня не получилось по нормльному переконвертировать часть правил.

Решение проблемы:

  • удалить nftables.
  • поставить iptables и использовать старые рабочие правила :-)
AnastasiaM
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.