Пошли попытки взлома с адресов, заканчивающихся на .0 Как выделить их?
Для взлома порта в своём блок-листе увидел: используются IP-адреса, заканчивающиеся нулём. Т.е. меняется только вторая с конца триада адреса . Между /16 и /24 .
//Это после кого-то, кто сидра напился :)
В смысле, после внедрения технологии CIDR.
Как их выделить для создания правила?
Т.о., Как разобрать IP адрес?
Дополнительно:
Как их выделить для создания правила?
действуйте так же как если бы действовали в случае если бы они кончались, на 1, 2, 3, ... 9
Но хотелось бы все такие на RAW-drop кинуть для ускорения девайса.
ps
перечитал, и понял что октет третий, а не четвертый, но тогда совсем ничего не понятно, есть желание заблокировать ххх.ххх.0.ххх или что-то иное?
Маски с сверху - не работают, нужны двойные маски!
Мне нужно ПОКА выделить последний октет в 0, чтобы блокировать!
190.110.113.0
190.110.114.0 и т.п.
Если /23, /22 и т.д. - они уже вполне могут оказаться обычными
Повторяю, последний октет - 0, меняется маской предпоследний, который мб и Вашим!
А у Вас адреса с 1-254?
Забудьте! Теперь с нуля!
"служебный" как вы называете, это адрес сети:
192.168.5.0/24 - тут 192.168.5.0 это адрес сети, (254 хоста от 192.168.5.1 до 192.168.5.254)
192.168.5.0/23 - тут 192.168.5.0 это адрес хоста в сети 192.168.4.0 (510 хостов от 192.168.4.1 до 192.168.5.254)
больше мне нечего вам сказать, возьмите книгу по сетям tcp/ip (хотя достаточно и погуглить)
Он хотел одной записью firewall с использованием маски сети заблокировать сразу несколько адресов, кончающихся на ноль.
Вот только злость и сидр ему помешали об этом внятно сказать :)
Когда он вернётся, надеюсь, он прочтёт
википедию
и поймёт, что маска сети - это не вот прям битовая маска любого формата, а именно длина последовательности единичек, а значит одной записи будет мало и придётся использовать много-много /32
И никто из этих сетей уже не подключится
Он хотел одной записью firewall с использованием маски сети заблокировать сразу несколько адресов, кончающихся на ноль.
Сидр + триада + октава + "служебные адреса" и другая понятная только ему терминология сделали своё дело. Не зря говорят в правильно заданном вопросе содержится половина ответа.
Плюс там полное не понимание того что айпи адрес разделен точками исключительно для упрощенного визуального восприятия IP адреса человеком. То что айпиадрес это 4х байтовое число и то что никаких октетов не существует - по этому вежливо предложил ознакомится с документацией. А он начал грубить, отвечать не по делу, пришлось привлечь модератора.
Теоретически то что он хочет можно сделать скриптом в микротике, или даже башем, написать автогенерацию хостов и потом забить в Address List повесив одно правило дроп. Но это уже freelance - это уже работа, это уже не бесплатно...
Раз уж я был упомянут на "Вы" да с большой буквы:
Изучите! и, поскольку, я считаю-таки Вас сведующим, киньте резалт в мыло или на площадку!
Пожалуйста!
Вот приблизительная рыба:
:local subnet "192.168.0.0/16" :local listName "ban-ip" # Разбиваем подсеть на адрес и маску :local ip [ :pick $subnet 0 [ :find $subnet "/" ] ] :local mask [ :pick $subnet ( [ :find $subnet "/" ] + 1 ) 32 ] # Вычисляем количество хостов в подсети :local hosts ( ( 1 << ( 32 - $mask ) ) - 2 ) # Цикл по всем хостам в подсети :for i from=0 to=$hosts do={ :local hostIp [ :toip ( [ :toip $ip ] + $i ) ] :if ( [ :pick $hostIp ( [ :find $hostIp "." -1 ] + 1 ) 32 ] = "0" ) do={ /ip firewall address-list add list=$listName address=$hostIp comment="Banned IP" } } |
:local subnet "192.168.0.0/16" :local listName "ban-ip" # Разбиваем подсеть на адрес и маску :local ip [ :pick $subnet 0 [ :find $subnet "/" ] ] :local mask [ :pick $subnet ( [ :find $subnet "/" ] + 1 ) 32 ] # Вычисляем количество хостов в подсети :local hosts ( ( 1 << ( 32 - $mask ) ) - 2 ) # Цикл по всем хостам в подсети :for i from=0 to=$hosts do={ :local hostIp [ :toip ( [ :toip $ip ] + $i ) ] :if ( [ :pick $hostIp ( [ :find $hostIp "." -1 ] + 1 ) 32 ] = "0" ) do={ /ip firewall address-list add list=$listName address=$hostIp comment="Banned IP" } }
само собой это не рабочий код на 100%, ничего не тестировано, всё на свой страх и риск.
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для выделения всех попыток взлома с адресов, заканчивающихся на .0, можно воспользоваться регулярными выражениями. Вот пример кода на PHP, который поможет вам решить эту задачу: