1.1, sabitov (ok), 08:03, 01/04/2023 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
"chain OUTPUT" -- комментарии при обработке лупбека неправильные. Понятно, что копипаста рулит, но не до такой же степени! :)
| |
|
2.4, umask (?), 01:04, 02/04/2023 [^] [^^] [^^^] [ответить] | +/– | Так лучше Я, если честно, думал что возникнет вопрос, прежде всего, про iif ... большой текст свёрнут, показать | |
|
1.2, sabitov (ok), 08:19, 01/04/2023 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Ну, и если тешить паранойю, то icmpv6 лучше проверять отдельным правилом, т.к. он реально нихрена непростой :(
У меня так:
add rule inet fw input_icmpv6 \
ip6 saddr @lan_list_6 \
icmpv6 type echo-request \
accept
add rule inet fw input_icmpv6 \
ip6 nexthdr icmpv6 \
icmpv6 type echo-request \
limit rate 15/minute \
accept
#Router Solicitation
add rule inet fw input_icmpv6 \
ip6 saddr { fe80::/10, 2001:db8::/48, ::0/128 } \
ip6 daddr { ff02::2 } \
ip6 hoplimit 255 \
icmpv6 type 133 \
icmpv6 code 0 \
accept
#Neighbor Solicitation
add rule inet fw input_icmpv6 \
ip6 saddr { fe80::/10, 2001:db8::/48, ::0/128 } \
ip6 daddr { fe80::/10, 2001:db8::/48, ff02::0001:ff00:0/104 } \
ip6 hoplimit 255 \
icmpv6 type 135 \
icmpv6 code 0 \
accept
#Router Advertisement
#Neighbor Advertisement
add rule inet fw input_icmpv6 \
ip6 saddr { fe80::/10, 2001:db8::/48 } \
ip6 daddr { ff02::1, fe80::/10, 2001:db8::/48 } \
ip6 hoplimit 255 \
icmpv6 type { 134, 136 } \
icmpv6 code 0 \
accept
add rule inet fw input_icmpv6 \
ip6 nexthdr icmpv6 \
icmpv6 type { 1, 2, 3, 4 } \
accept
Не настаиваю, но вдруг пригодится :)
| |
|
2.5, umask (?), 01:11, 02/04/2023 [^] [^^] [^^^] [ответить]
| +/– |
>[оверквотинг удален]
> icmpv6 code 0 \
>
> accept
> add rule inet fw input_icmpv6 \
> ip6 nexthdr icmpv6 \
> icmpv6 type { 1,
> 2, 3, 4 } \
>
> accept
> Не настаиваю, но вдруг пригодится :)
Спасибо.
А можно увидеть ваш rule set полностью?
Думаю, здесь можно попробовать упросить правила через virdict map (vmap). Но нужно пробовать, насколько это будет удобно в итоге.
Ещё бы проэкспериментировать, что ядро думает на advertisement/solicitation на не link-local адреса. Возможно, что по стандарту icmp и вовсе не уйдёт дальше маршрутизатора. Да, icmp6 не прост.
| |
|
1.3, anonymous (??), 13:18, 01/04/2023 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Для включения port knocking нужно закомментировать правила в ### rate limits и раскомментировать - в ### port knocking.
И конечно, заменить changeme[1-4] номерами портов.
| |
1.6, OpenEcho (?), 08:01, 02/04/2023 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
Вообще сурово так, для такой задачи то...
Не проще URL knocking?
Курлишь секретный линк с клиента, мониторишь лог веб сервера с tail -f и если есть запрос по секретному линку тo просто открываешь порт для айпишника застуканного вебсервером... и простота спасет от ошибок
| |
|
|
3.12, OpenEcho (?), 19:31, 04/04/2023 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Есть маленькая незадачка - вёбсервер к тому времени может лечь, а чтобы
> поднять - надо SSH :D
И как часто веб сервера "ложаться"? И ни какого мониторинга который автоматически рестартуют, а только все ручками? Для URL-knocking можно вообще отдельный веб сервис держать на нестандартных портах и простейших веб серверах, хоть на busybox. Зато открыть SSH порт можно будет без "спец" програм стучащих по портам (особенно актуально в комадировках)
| |
|
4.16, Tron is Whistling (?), 09:19, 05/04/2023 [^] [^^] [^^^] [ответить]
| +3 +/– |
Ещё раз: SSH нужен для доступа к системе в т.ч. в критических случаях. Подвязывать его на дополнительный сервис - так себе затея, но если ССЗБ - why not?
В принципе я ниже всё написал. Можно UDP отправить. Можно даже TCP SYN с единственно правильным sequence - это вообще не засвет ни разу :D
| |
4.33, Аноним (33), 17:04, 06/07/2023 [^] [^^] [^^^] [ответить]
| +/– |
Вот это и будет как раз именно тот самый день. Когда сильно пожалеешь о усложнении добавлением +1 сервиса веб-сервера и процессов разбора логов. Память там, лимиты на число файлов/соединений, прочие сложности упрощающего решения через добавление сложных процессов.
| |
|
|
2.11, Tron is Whistling (?), 09:57, 04/04/2023 [^] [^^] [^^^] [ответить]
| +/– |
Впрочем никто не мешает сделать вместо port knocking просто u32 knocking - и посылать "секретный" UDP с определённым ключом. Вот только после каждой посылки ключ менять за***ься.
| |
|
3.13, OpenEcho (?), 19:36, 04/04/2023 [^] [^^] [^^^] [ответить]
| +/– |
> Впрочем никто не мешает сделать вместо port knocking просто u32 knocking -
> и посылать "секретный" UDP с определённым ключом. Вот только после каждой
> посылки ключ менять за***ься.
Это будет явный засвет для MITM (в смысле что используется какая-то технология, а значит субьект для исследования), в случае же с HTTPS секретный линк не засвечивается и в общем потоке запросов затерян
| |
|
4.14, Tron is Whistling (?), 09:14, 05/04/2023 [^] [^^] [^^^] [ответить]
| –1 +/– |
Ну, ещё раз повторюсь - HTTPS к тому времени может лежать, и чего делать? Ехать?
В принципе засвет кнокинга не критичен, можно даже часто не менять, потому что далее ещё SSH.
| |
4.15, Tron is Whistling (?), 09:16, 05/04/2023 [^] [^^] [^^^] [ответить]
| +/– |
Ну и опять же - можно не засвечивать. UDP бывает разный. На порт 53 например отправить традиционный DNS-запрос к некому похожему на реальный домен. И усё. Или на порт 443 инициацию квака с добавочкой.
| |
|
|
|
1.7, Anonx (?), 10:06, 02/04/2023 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
set trusted_ipv4_set {
169.254.169.254,
Зачем метадату то в трастед?
| |
|
|
3.21, Аноним (19), 13:19, 06/04/2023 [^] [^^] [^^^] [ответить]
| –1 +/– |
Ваш мусор до и после стыренных правил ничего не меняет.
Ссылки на оригиналы оставлять надо.
| |
|
|
1.26, Hui (?), 12:02, 15/04/2023 [ответить] [﹢﹢﹢] [ · · · ]
| +6 +/– |
Что за шизики пишут эти статьи....
Для создания правила port-knocking с использованием nftables для открытия порта 22 после нока на порту 1122, вы можете использовать следующую команду:
nft add rule ip filter input tcp dport 22 ct state new,untracked meta nftrace set 1 reject with tcp reset
nft add rule ip filter input tcp dport 1122 tcp flags syn meta nftrace set 1 ct state new,untracked tcp dport 22 accept
Это создаст два правила. Первое правило запрещает входящий трафик на порт 22, если он не соответствует заданным условиям. Второе правило открывает порт 22 после успешного нока на порту 1122. Важно понимать, что это только пример и вы можете изменить порты и условия в зависимости от своих потребностей.
| |
1.28, Пряник (?), 09:55, 12/05/2023 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
Никогда не понимал, зачем port knocking для SSH? Там итак где-то 1 попытка в секунду, с такой скоростью брутфорс не сработает. Лучше для уязвимых сервисов, типа RDP/VNC/SMB/IPMI. Попытка сменить SSH порт вообще забавляет. Может ещё порт SMTP/IMAP смените на 2525? Мало ли ваш postfix взломают и начнут спам слать.
| |
|
2.36, xen (??), 15:00, 28/07/2023 [^] [^^] [^^^] [ответить]
| +1 +/– |
4 гига логов по сравнению с 20 мегабайт. Если места хватает, то не страшно, но на небольших машинках имеет вполне смысл
| |
|
1.30, Аноним (30), 22:49, 16/06/2023 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
Сложно очень. Я бы примерно так действовал для последовательности 1111, 2222, 3333, 4444.
# Закрыть доступ к SSH
nft add rule filter input tcp dport 22 ct state new reject
# Определить последовательность портов для порт-нокинга
nft add chain filter port_knocking { type filter hook prerouting priority 0 \; }
nft add rule filter port_knocking tcp dport 1111 tcp flags syn counter accept
nft add rule filter port_knocking tcp dport 2222 tcp flags syn recent set policy timeout seconds 15 name "knock2" counter accept
nft add rule filter port_knocking tcp dport 3333 tcp flags syn recent set policy timeout seconds 15 name "knock3" counter accept
nft add rule filter port_knocking tcp dport 4444 tcp flags syn recent set policy timeout seconds 15 name "knock4" counter accept
# Добавить временное правило на открытие доступа к SSH
nft add rule filter input tcp dport 22 ct state new ip saddr <клиент> recent check seconds 15 name "knock4" counter accept
# Установить таймер на закрытие доступа к SSH
nft add rule filter input tcp dport 22 ct state established,related,untracked counter accept
| |
1.31, Аноним (31), 17:01, 26/06/2023 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Такая простыня... проще надо быть.
iptables -A INPUT -p tcp -m tcp --dport 1111 -m recent --set --name SSH0 --mask 255.255.255.255 --rsource -m comment --comment "knock-knock port for SSH" -j DROP
iptables -A INPUT -p tcp -m tcp --dport 22 -m recent --rcheck --seconds 60 --name SSH0 --mask 255.255.255.255 --rsource -m comment --comment "60 seconds for SSH connect" -j ACCEPT
| |
1.34, Аноним (34), 17:29, 10/07/2023 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
nftables - фаервол курильщика
iptables + ipset - фаервол здорового человека
| |
1.35, daWSL (?), 21:08, 21/07/2023 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
Коллеги, прошу прощения если я чего-то "матёро недогоняю", но вот реально, эта "простыня" правда сильно "православнее" 6-ти строчек в iptables?
| |
|