<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Mikrotik.moscow [тема: Как заблокировать SSH-атакующих после 3 неудачных попыток входа?]</title>
		<link>http://mikrotik.moscow</link>
		<description>Новое в теме Как заблокировать SSH-атакующих после 3 неудачных попыток входа? форума RouterOS на сайте Mikrotik.moscow [mikrotik.moscow]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Wed, 05 Aug 2026 05:04:49 -0400</pubDate>
		<item>
			<title>Как заблокировать SSH-атакующих после 3 неудачных попыток входа?</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/87398-kak-zablokirovat-ssh_atakuyushchikh-posle-3-neudachnykh-popytok-vkhoda/message416606">Как заблокировать SSH-атакующих после 3 неудачных попыток входа?</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Если вы не подключаетесь к своему роутеру извне через SSH и у вас нет правил NAT для SSH, особо переживать не стоит. К вам не проберутся. Вот как я поступаю. Если кто-то пытается зайти на внешний порт, который закрыт, например порт 22, его IP сразу попадает в чёрный список и остаётся там на 24 часа. Пока вы в чёрном списке — вам закрыт доступ ко всем портам моего роутера, даже к тем, что обычно открыты, например к порту 443 для веб-сервера. Если вы пытаетесь пройти на закрытый порт, я предполагаю, что вы — скрипт, который сканирует мой роутер и ничего от меня не хочет. Многие из этих автоматических скриптов запускают новый скрипт при обнаружении открытого порта, чтобы проверить уязвимости. Конечно, я веду лог этих атак, чтобы потом видеть, сколько IP заблокировано. В любой момент времени в списке заблокированных около 2000–15000 IP. Смотрите мою подпись, там описано, как я веду лог. <br />
			<i>01.06.2020 05:15:00, Jotne.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/87398-kak-zablokirovat-ssh_atakuyushchikh-posle-3-neudachnykh-popytok-vkhoda/message416606</link>
			<guid>http://mikrotik.moscow/forum/forum57/87398-kak-zablokirovat-ssh_atakuyushchikh-posle-3-neudachnykh-popytok-vkhoda/message416606</guid>
			<pubDate>Mon, 01 Jun 2020 05:15:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Как заблокировать SSH-атакующих после 3 неудачных попыток входа?</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/87398-kak-zablokirovat-ssh_atakuyushchikh-posle-3-neudachnykh-popytok-vkhoda/message416605">Как заблокировать SSH-атакующих после 3 неудачных попыток входа?</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Всем привет. У меня на MikroTik Router есть такие правила, и они работают. Но можно ли сделать что-то подобное для RDP? Я пытался применить эти правила к RDP, но, похоже, не выходит. У меня есть обычный блок SSH-брутфорсеров, основанный на списках адресов ssh_stage1 - 3, а потом они попадают в ssh_blacklist. Но если я хочу применить это к RDP и делать это по времени, а не по стадиям, как сделать правило, которое будет работать для RDP? И да, я не использую стандартный порт RDP 3389. Например, если бы я основывался на стадиях, то после трёх попыток IP попал бы в черный список. Но у меня есть ситуация: если вдруг отключают от RDP-сервера и пытаешься переподключиться, мой IP попадает в черный список. Я бы хотел, чтобы правило отслеживало не стадии, а именно неудачные попытки входа — обычно это когда хакер пытается подключиться, перебирая логин и пароль, его отключают, он снова пробует и так много раз подряд. Было бы здорово, если бы правило могло засечь 5 неудачных попыток входа и после этого заносить в черный список. Это вообще возможно? <br />
			<i>29.05.2020 18:05:00, paalbo.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/87398-kak-zablokirovat-ssh_atakuyushchikh-posle-3-neudachnykh-popytok-vkhoda/message416605</link>
			<guid>http://mikrotik.moscow/forum/forum57/87398-kak-zablokirovat-ssh_atakuyushchikh-posle-3-neudachnykh-popytok-vkhoda/message416605</guid>
			<pubDate>Fri, 29 May 2020 18:05:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Как заблокировать SSH-атакующих после 3 неудачных попыток входа?</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/87398-kak-zablokirovat-ssh_atakuyushchikh-posle-3-neudachnykh-popytok-vkhoda/message416604">Как заблокировать SSH-атакующих после 3 неудачных попыток входа?</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Спасибо за этот рабочий и классный скрипт. Я так долго его искал. Проверил — работает отлично (6.46.4). Пожалуйста, держите нас в курсе, если появится новая версия скрипта. Ваш скрипт даже автоматически добавляет всё необходимое в logging/rules-action и правило в ip/firewall/filter для блокировки address-list. Очень круто, спасибо. Мои изменения были такие…<br /><br />1. Я убрал timeout=1d, потому что хочу блокировать навсегда неудачные попытки входа.<br /><br />/ip firewall address-list add address=[$getIP string=[/log get $index message]] list=login_failure comment=([/log get $index message].", added at “.[/system clock get date].” ".[/system clock get time]) place-before=1<br /><br />Так правило будет стоять выше правила, которое разрешает winbox.<br /><br />/ip firewall filter add chain=input src-address-list=login_failure action=drop comment=“блокировать адреса, достигшие максимума попыток входа” place-before=0<br /><br />:local attempt 3 <br />
			<i>20.04.2020 18:32:00, freemannnn.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/87398-kak-zablokirovat-ssh_atakuyushchikh-posle-3-neudachnykh-popytok-vkhoda/message416604</link>
			<guid>http://mikrotik.moscow/forum/forum57/87398-kak-zablokirovat-ssh_atakuyushchikh-posle-3-neudachnykh-popytok-vkhoda/message416604</guid>
			<pubDate>Mon, 20 Apr 2020 18:32:00 -0400</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Как заблокировать SSH-атакующих после 3 неудачных попыток входа?</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/87398-kak-zablokirovat-ssh_atakuyushchikh-posle-3-neudachnykh-popytok-vkhoda/message416603">Как заблокировать SSH-атакующих после 3 неудачных попыток входа?</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			TERM &nbsp;<br />Мне не нужно получать доступ к моему Mikrotik из внешней сети (через VPN). (1) Но я хочу видеть в некоторых списках, что кто-то пытался получить доступ к моему Mikrotik снаружи. Есть ли способ это сделать? (2) &nbsp;<br />karlisi: спасибо, но я не хочу загромождать файрволл кучей списков. Всё, чего я хочу — блокировать пользователя после 3 неудачных попыток входа и добавлять его в список на 10 дней.<br /><br />+++++++++++++++++++++++++++++++ &nbsp;<br /><br />(1) Да, вы можете логировать все попытки с WAN следующим образом: &nbsp;<br />Input chain, последние два правила: &nbsp;<br />add chain=input in-interface-list=WAN action=log prefix=“Show ALL INPUT Traffic From WAN Being Dropped” &nbsp;<br />add chain=input action=drop &nbsp;<br /><br />Forward chain, последние два правила: &nbsp;<br />add chain=forward in-interface-list=WAN action=log prefix=“Show ALL FORWARD Traffic FROM WAN Being Dropped” &nbsp;<br />add chain=forward action=drop &nbsp;<br /><br />(2) Поскольку внешний доступ к роутеру вам не нужен, вы можете добавить все адреса, попадающие под эти два правила, и блокировать их через RAW. Логи тогда не будут засоряться — вы сможете смотреть списки в таблицах ip firewall address list… &nbsp;<br /><br />Последние правила: &nbsp;<br />Input chain &nbsp;<br />add chain=input in-interface-list=WAN action=add to address list address-list=badguys timeout=6h &nbsp;<br />add chain=input action=drop (последнее правило) &nbsp;<br /><br />Forward chain &nbsp;<br />add chain=forward in-interface-list=WAN action=add to address list address-list=badguys timeout=6h &nbsp;<br />add chain=forward action=drop &nbsp;<br /><br />RAW &nbsp;<br />/ip raw &nbsp;<br />add chain=prerouting source-address-list=badguys action=drop &nbsp;<br /><br />Что касается быстрых попыток, то первая попытка фиксируется, дальше они просто игнорируются. Если вы хотите ОСТАНОВИТЬ именно быстрые подряд идущие попытки, то нужна отдельная, специальная правило, а не универсальное… Я просто не знаю, как его настроить. &nbsp;<br /><br />Пример: &nbsp;<br />add input rule catch rapid attempts from wan list=rapidhackers drop all &nbsp;<br />add forward rule catch rapid attempts from wan list=rapidhackers drop all &nbsp;<br />raw - prerouting drop all ‘rapidhackers’ &nbsp;<br /><br />Параметры для такого правила, вероятно, должны быть либо connection limit, либо psd (partial sequence detection). Возможно, какие-то эксперты смогут понятно объяснить, как использовать либо один из этих параметров, либо оба, чтобы отловить: &nbsp;<br />a. флуда &nbsp;<br />b. сканирования &nbsp;<br />c. попытки взлома (предполагая username/password). <br />
			<i>07.02.2019 20:34:00, anav.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/87398-kak-zablokirovat-ssh_atakuyushchikh-posle-3-neudachnykh-popytok-vkhoda/message416603</link>
			<guid>http://mikrotik.moscow/forum/forum57/87398-kak-zablokirovat-ssh_atakuyushchikh-posle-3-neudachnykh-popytok-vkhoda/message416603</guid>
			<pubDate>Thu, 07 Feb 2019 20:34:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Как заблокировать SSH-атакующих после 3 неудачных попыток входа?</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/87398-kak-zablokirovat-ssh_atakuyushchikh-posle-3-neudachnykh-popytok-vkhoda/message416602">Как заблокировать SSH-атакующих после 3 неудачных попыток входа?</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Ну, для портов, которые ты не собираешься использовать на своем роутере, неважно, откуда приходит входящий трафик — от злодея или это ответ на исходящий трафик роутера, который, предположительно, возвращается тоже от плохого парня. Это неавторизованный порт. Так как raw работает без сохранения состояния. Что касается портов, которые ты всё же используешь… Исходящий трафик с роутера и возвращающийся по этим же портам — легитимен. В общем, мы определяем, если трафик приходит в роутер (input) или проходит через него (forward) и ещё не был идентифицирован или отмечен как установленный и связанный (established и related), то это точно трафик от плохих ребят!!! Единственный случай, когда такой подход не сработает — это, возможно, dstnat-трафик, когда нужно, чтобы внешний исходящий трафик прошёл через определённые порты. Если у тебя «открытые серверы» в локальной сети, то проблема сложнее. Я считаю, что открытые серверы — плохая идея, потому что порты видны при сканировании, но в отчётах показываются закрытыми. Волшебное решение для dst-nat трафика — использовать source-address-list, если вообще возможно! То есть, если ты знаешь, кто (внешний публичный IP) должен иметь доступ к серверу в локалке, то добавь этот IP в список источников. Интересный побочный эффект добавления source-address-list в NAT правило — порт вообще не виден при сканировании. Круто! Тогда в правиле фильтрации для форварда добавляешь:<br /><br />add chain=forward action=accept connection-nat-state=dstnat source-address-list=authorized<br /><br />а потом:<br /><br />add chain=forward action=add to address list address-list=badguys dst-ports=(порты, которые ты используешь) timeout=6hrs<br /><br />Один из сценариев, как ты мог догадаться — когда ты не знаешь легитимные внешние публичные IP, которые подключаются к твоему серверу. Это могут быть смартфоны, динамические IP и так далее... NAT правило пропустит на сервер любой исходящий IP, а правило файрволла пропустит любой IP через forward filter. Единственная защита тогда — это имя пользователя и пароль на самом сервере. В таком случае, возможно, стоит считать повторяющиеся попытки захода на сервер и порт назначения, и использовать правило по количеству попыток (помеченное выше в обсуждении), чтобы защититься от подбора логина и пароля??? <br />
			<i>07.02.2019 20:14:00, anav.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/87398-kak-zablokirovat-ssh_atakuyushchikh-posle-3-neudachnykh-popytok-vkhoda/message416602</link>
			<guid>http://mikrotik.moscow/forum/forum57/87398-kak-zablokirovat-ssh_atakuyushchikh-posle-3-neudachnykh-popytok-vkhoda/message416602</guid>
			<pubDate>Thu, 07 Feb 2019 20:14:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Как заблокировать SSH-атакующих после 3 неудачных попыток входа?</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/87398-kak-zablokirovat-ssh_atakuyushchikh-posle-3-neudachnykh-popytok-vkhoda/message416601">Как заблокировать SSH-атакующих после 3 неудачных попыток входа?</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Я пытаюсь понять, как решают, кто здесь плохой гей, а кто — легальная связь... <br />
			<i>07.02.2019 19:42:00, zivtal.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/87398-kak-zablokirovat-ssh_atakuyushchikh-posle-3-neudachnykh-popytok-vkhoda/message416601</link>
			<guid>http://mikrotik.moscow/forum/forum57/87398-kak-zablokirovat-ssh_atakuyushchikh-posle-3-neudachnykh-popytok-vkhoda/message416601</guid>
			<pubDate>Thu, 07 Feb 2019 19:42:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Как заблокировать SSH-атакующих после 3 неудачных попыток входа?</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/87398-kak-zablokirovat-ssh_atakuyushchikh-posle-3-neudachnykh-popytok-vkhoda/message416600">Как заблокировать SSH-атакующих после 3 неудачных попыток входа?</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Привет, Zivital, хороший вопрос… Во-первых, у меня нет доступа к роутеру из внешних источников. Если бы был, то только через VPN. Что касается сервисов, например API, SSH или winbox, первое, что я бы сделал — это по возможности сменил стандартный порт. Допустим, тебе нужно использовать трафик на порту API, тогда в ip firewall filter делаем так:<br /><br />INPUT — после правила accept established related добавляем &nbsp;<br />chain=input dst-port=api_port in-interface-list=WAN action=add source address list to address list=badguys timeout=6 часов<br /><br />FORWARD — после accept established related добавляем &nbsp;<br />chain=forward dst-port=api_port in-interface-list=WAN action=add source address list to address list=badguys timeout=6 часов<br /><br />/ip raw добавляем &nbsp;<br />chain=prerouting src-address-list=badguys action=drop<br /><br />Моя идея такова: скорее всего злоумышленники будут сканировать множество портов, и исходное правило в raw должно поймать большинство из них…<br /><br />/ip raw добавляем &nbsp;<br />chain=prerouting in-interface-list=WAN dst-ports= СПИСОК ВСЕХ ОБЩИХ ПОРТОВ, НЕ ИСПОЛЬЗУЕМЫХ НА ТВОЕМ УСТРОЙСТВЕ &nbsp;(например 20, 21, 22, 23, 139 и т.д.) action=add to source address list, address-list=badguys timeout=6 часов.<br /><br />Короче говоря, у нас одно правило в raw для всех популярных портов, которые не используются или скорее всего не будут использоваться на роутере, так что отсутствие состояния не имеет значения. Это должно остановить большую часть нежелательного трафика. Затем мы просто отбрасываем их в raw, чтобы минимизировать нагрузку на процессор.<br /><br />Для тех злоумышленников, кто не просто массово сканирует, а целенаправленно проверяет порты, которые мы используем, мы ловим их уже в фильтрах после разрешённого использования этих же портов и тоже отбрасываем их в raw.<br /><br />Понятно? <br />
			<i>07.02.2019 19:29:00, anav.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/87398-kak-zablokirovat-ssh_atakuyushchikh-posle-3-neudachnykh-popytok-vkhoda/message416600</link>
			<guid>http://mikrotik.moscow/forum/forum57/87398-kak-zablokirovat-ssh_atakuyushchikh-posle-3-neudachnykh-popytok-vkhoda/message416600</guid>
			<pubDate>Thu, 07 Feb 2019 19:29:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Как заблокировать SSH-атакующих после 3 неудачных попыток входа?</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/87398-kak-zablokirovat-ssh_atakuyushchikh-posle-3-neudachnykh-popytok-vkhoda/message416599">Как заблокировать SSH-атакующих после 3 неудачных попыток входа?</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Я не понимаю, сегодня я быстро написал скрипт, потому что это первый раз, когда я вижу, что кто-то пытается подключиться к моему Mikrotik API примерно 999 раз... Если у вас есть порт, который вы используете для такого Mikrotik API, как вы блокируете адреса, которые пытаются взломать ваш роутер? <br />
			<i>07.02.2019 19:12:00, zivtal.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/87398-kak-zablokirovat-ssh_atakuyushchikh-posle-3-neudachnykh-popytok-vkhoda/message416599</link>
			<guid>http://mikrotik.moscow/forum/forum57/87398-kak-zablokirovat-ssh_atakuyushchikh-posle-3-neudachnykh-popytok-vkhoda/message416599</guid>
			<pubDate>Thu, 07 Feb 2019 19:12:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Как заблокировать SSH-атакующих после 3 неудачных попыток входа?</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/87398-kak-zablokirovat-ssh_atakuyushchikh-posle-3-neudachnykh-popytok-vkhoda/message416598">Как заблокировать SSH-атакующих после 3 неудачных попыток входа?</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Вау, всё может очень быстро запутаться. Если ты вообще не используешь SSH на роутере, ни входящий, ни исходящий трафик, просто поставь это в raw. То же самое касается FTP:<br /><br />/ip firewall raw add chain=prerouting dst-port=common_ssh_port action=drop &nbsp;<br />/ip firewall raw add chain=prerouting dst-port=common_Ftp_port action=drop<br /><br />Не уверен, но, возможно, можно сделать одно правило:<br /><br />/ip firewall raw add chain=prerouting dst-ports=20,21,22,23,139 action=drop<br /><br />Для всех портов, которые ты используешь и о которых беспокоишься, почему бы не сделать так (после established, related):<br /><br />/ip firewall filter add chain=forward dst-port=53 in-interface-list=WAN action=add source address to address list address list=dropbadguys timeout=6hrs<br /><br />А потом в raw:<br /><br />/ip firewall raw add chain=prerouting source-address-list=dropbadguys action=drop <br />
			<i>07.02.2019 18:38:00, anav.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/87398-kak-zablokirovat-ssh_atakuyushchikh-posle-3-neudachnykh-popytok-vkhoda/message416598</link>
			<guid>http://mikrotik.moscow/forum/forum57/87398-kak-zablokirovat-ssh_atakuyushchikh-posle-3-neudachnykh-popytok-vkhoda/message416598</guid>
			<pubDate>Thu, 07 Feb 2019 18:38:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Как заблокировать SSH-атакующих после 3 неудачных попыток входа?</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/87398-kak-zablokirovat-ssh_atakuyushchikh-posle-3-neudachnykh-popytok-vkhoda/message416597">Как заблокировать SSH-атакующих после 3 неудачных попыток входа?</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Я написал этот скрипт. Тебе нужно добавить планировщик, который каждые 5–10 минут проверяет, если с одного IP было больше 5 неудачных попыток входа — этот IP автоматически добавляется в список блокировки. Если хочешь ограничиться только 3 попытками, просто измени строку ":local attempt 5" на ":local attempt 3". &nbsp;<br /><br /># Проверяем, есть ли действие логирования, если нет — создаём &nbsp;<br />:if ([:len [/system logging action find name=login]]=0) do={  <br />	/system logging action add name=login target=memory &nbsp;<br />} &nbsp;<br /><br /># Проверяем, есть ли правило логирования, если нет — создаём &nbsp;<br />:if ([:len [/system logging find action=login]]=0) do={  <br />	/system logging add topics=system,error,critical action=login &nbsp;<br />} &nbsp;<br /><br /># Количество попыток входа &nbsp;<br />:local attempt 5 &nbsp;<br /><br />:if ([:len [/log find where buffer=login message~"login failure" and message~"from"]]&gt;0) do={  <br />	# Получаем IP из лога &nbsp;<br />	:local getIP do={ &nbsp;<br />		:if ([:type [:find $string "from"]]!="nil") do={  <br />			:local cut [:pick $string ([:find $string "from"]+[:len "from"]+1) [:len $string]]  <br />			:if ([:len [:find $cut " "]]&gt;0) do={  <br />				:return [:pick $cut 0 [:find $cut " "]]  <br />			} else={ &nbsp;<br />				:return [:pick $cut 0 [:len $cut]]  <br />			} &nbsp;<br />		} else={ &nbsp;<br />			:if ([:len $default]&gt;0) do={  <br />				:return $default &nbsp;<br />			} else={ &nbsp;<br />				:return "" &nbsp;<br />			} &nbsp;<br />		} &nbsp;<br />	} &nbsp;<br /><br />	# Читаем значение ключа из строки &nbsp;<br />	:local getKeyValue do={ &nbsp;<br />		:if ([:type [:find $string $name]]!="nil") do={  <br />			:local cut [:pick $string ([:find $string $name]+[:len $name]+1) [:len $string]]  <br />			:if ([:len [:find $cut ";"]]&gt;0) do={  <br />				:return [:pick $cut 0 [:find $cut ";"]]  <br />			} else={ &nbsp;<br />				:return [:pick $cut 0 [:len $cut]]  <br />			} &nbsp;<br />		} else={ &nbsp;<br />			:if ([:len $default]&gt;0) do={  <br />				:return $default &nbsp;<br />			} else={ &nbsp;<br />				:return "" &nbsp;<br />			} &nbsp;<br />		} &nbsp;<br />	} &nbsp;<br /><br />	# Устанавливаем ключ и значение в строку &nbsp;<br />	:local setKeyValue do={ &nbsp;<br />		:if ([:typeof [:find $string $name]]!="nil") do={  <br />			:local current &nbsp;<br />			:local cut [:pick $string ([:find $string $name]) [:len $string]]  <br />			:if ([:len [:find $cut ";"]]&gt;0) do={  <br />				:set current [:pick $cut 0 [:find $cut ";"]]  <br />			} else={ &nbsp;<br />				:set current [:pick $cut 0 [:len $cut]]  <br />			} &nbsp;<br />			:return ([:pick $string 0 [:find $string $current]]."$name=$value".[:pick $string ([:find $string $current]+[:len $current]) [:len $string]])  <br />		} else={ &nbsp;<br />			:if (([:len $value]&gt;0) and ([:len $name]&gt;0)) do={  <br />				:if (([:len $string]=0) or ([:pick $string ([:len $string]-1) [:len $string]]=";")) do={  <br />					:return ($string."$name=$value;") &nbsp;<br />				} else={ &nbsp;<br />					:return ($string.";$name=$value;") &nbsp;<br />				} &nbsp;<br />			} else={ &nbsp;<br />				:return ($string) &nbsp;<br />			} &nbsp;<br />		} &nbsp;<br />	} &nbsp;<br /><br />	# Удаляем ключ и значение из строки &nbsp;<br />	:local delKeyValue do={ &nbsp;<br />		:if ([:typeof [:find $string $name]]!="nil") do={  <br />			:local current &nbsp;<br />			:local cut [:pick $string ([:find $string $name]) [:len $string]]  <br />			:if ([:len [:find $cut ";"]]&gt;0) do={  <br />				:set current [:pick $cut 0 [:find $cut ";"]]  <br />			} else={ &nbsp;<br />				:set current [:pick $cut 0 [:len $cut]]  <br />			} &nbsp;<br />			:return ([:pick $string 0 [:find $string $current]].[:pick $string ([:find $string $current]+[:len $current]+1) [:len $string]])  <br />		} else={ &nbsp;<br />			:return ($string) &nbsp;<br />		} &nbsp;<br />	} &nbsp;<br /><br />	# Проверяем лог на "неудачные входы" &nbsp;<br />	:local retry &nbsp;<br />	:global loginFailures &nbsp;<br />	:foreach index in=[/log find where buffer=login message~"login failure" and message~"from"] do={  <br />		:set retry [:tonum [$getKeyValue string=$loginFailures name=[$getIP string=[/log get $index message]]]]  <br />		:if (($retry+1)&gt;=$attempt) do={ &nbsp;<br />			/ip firewall address-list add address=[$getIP string=[/log get $index message]] list=login_failure comment=([/log get $index message].", добавлен ".$[/system clock get date]." ".$[/system clock get time]) timeout=1d  <br />			:set loginFailures [$delKeyValue string=$loginFailures name=[$getIP string=[/log get $index message]]]  <br />		} else={ &nbsp;<br />			:if ([:len [/ip firewall address-list find where address=[$getIP string=[/log get $index message]] and list=login_failure]]=0) do={  <br />				:set loginFailures [$setKeyValue string=$loginFailures name=[$getIP string=[/log get $index message]] value=($retry+1)]  <br />			} &nbsp;<br />		} &nbsp;<br />	} &nbsp;<br /><br />	# Очищаем лог &nbsp;<br />	/system logging disable [find action=login]  <br />	/system logging enable [find action=login]  <br />	:if ([:len $loginFailures]=0) do={  <br />		/system script environment remove loginFailures &nbsp;<br />	} &nbsp;<br />	:if ([:len [/ip firewall filter find comment="block address that reach maximum login attempts"]]=0) do={  <br />		/ip firewall filter add chain=input src-address-list=login_failure action=drop comment="block address that reach maximum login attempts" &nbsp;<br />	} &nbsp;<br />} <br />
			<i>07.02.2019 18:15:00, zivtal.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/87398-kak-zablokirovat-ssh_atakuyushchikh-posle-3-neudachnykh-popytok-vkhoda/message416597</link>
			<guid>http://mikrotik.moscow/forum/forum57/87398-kak-zablokirovat-ssh_atakuyushchikh-posle-3-neudachnykh-popytok-vkhoda/message416597</guid>
			<pubDate>Thu, 07 Feb 2019 18:15:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Как заблокировать SSH-атакующих после 3 неудачных попыток входа?</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/87398-kak-zablokirovat-ssh_atakuyushchikh-posle-3-neudachnykh-popytok-vkhoda/message416596">Как заблокировать SSH-атакующих после 3 неудачных попыток входа?</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Ты также можешь изменить порт SSH в IP-Services и поставить какой-нибудь случайный порт, например, 2200 (любой, который легко запомнить)… <br />
			<i>01.02.2018 16:49:00, donsergio.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/87398-kak-zablokirovat-ssh_atakuyushchikh-posle-3-neudachnykh-popytok-vkhoda/message416596</link>
			<guid>http://mikrotik.moscow/forum/forum57/87398-kak-zablokirovat-ssh_atakuyushchikh-posle-3-neudachnykh-popytok-vkhoda/message416596</guid>
			<pubDate>Thu, 01 Feb 2018 16:49:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
		<item>
			<title>Как заблокировать SSH-атакующих после 3 неудачных попыток входа?</title>
			<description><![CDATA[<b><a href="http://mikrotik.moscow/forum/forum57/87398-kak-zablokirovat-ssh_atakuyushchikh-posle-3-neudachnykh-popytok-vkhoda/message416595">Как заблокировать SSH-атакующих после 3 неудачных попыток входа?</a></b> <i>RouterOS</i> в форуме <a href="http://mikrotik.moscow/forum/forum57/">RouterOS</a>. <br />
			Привет, я новичок в Mikrotik, но нужно разобраться, потому что на новой работе есть RB962UiGS дома. Нужно заблокировать SSH после 3 неудачных попыток входа. Знаю, что есть вики с примером, но там много ненужных списков перед основным. Мне нужно, чтобы при попытке входа фаервол автоматически добавлял пользователя в SSH_Blacklist на 10 дней. Не понимаю, что значит 1/1m,1,dst-address/1m protocol=tcp, но работает. Вот что у меня есть для FTP, после 3 неправильных логинов:<br /><br />/ip firewall address-list &nbsp;<br />add list=FTP_Blacklist<br /><br />/ip firewall filter &nbsp;<br />add action=drop chain=input comment="drop ftp brute forcers" dst-port=21 in-interface=ether1 protocol=tcp src-address-list=FTP_Blacklist &nbsp;<br />add action=accept chain=output content="530 Login incorrect" dst-limit=1/1m,1,dst-address/1m protocol=tcp &nbsp;<br />add action=add-dst-to-address-list address-list=FTP_Blacklist address-list-timeout=1w3d chain=output content="530 Login incorrect" protocol=tcp<br /><br />/ip firewall nat &nbsp;<br />add action=masquerade chain=srcnat out-interface=pppoe-out1 &nbsp;<br />add action=dst-nat chain=dstnat comment=Transmission dst-port=53105 in-interface=pppoe-out1 protocol=tcp to-addresses=10.31.0.102 to-ports=53105 &nbsp;<br />add action=dst-nat chain=dstnat comment="Synology DSM" dst-port=6271 in-interface=pppoe-out1 protocol=tcp to-addresses=10.31.0.102 to-ports=6271 &nbsp;<br />add action=masquerade chain=srcnat comment="VPN accept" src-address=10.31.10.0/24<br /><br />Спасибо! <br />
			<i>14.01.2018 11:55:00, Term.</i>]]></description>
			<link>http://mikrotik.moscow/forum/forum57/87398-kak-zablokirovat-ssh_atakuyushchikh-posle-3-neudachnykh-popytok-vkhoda/message416595</link>
			<guid>http://mikrotik.moscow/forum/forum57/87398-kak-zablokirovat-ssh_atakuyushchikh-posle-3-neudachnykh-popytok-vkhoda/message416595</guid>
			<pubDate>Sun, 14 Jan 2018 11:55:00 -0500</pubDate>
			<category>RouterOS</category>
		</item>
	</channel>
</rss>
