Цитата: KirillHome ➤ На мой взгляд - логично.
Еще раз повторюсь, Микротики достаточно слабы процами, поэтому бездумно набивать их правилами нельзя. Особенно очереди жрут проц.
Соответственно, сверка
каждого пакета со списком - достаточно ресурсоемкая операция. А у тебя она повторяется в каждом правиле проброса. Если у тебя за NAT какой-нибудь FTP, то можно как следует просадить процессор, особенно, когда подрастет список и канал расширится.
В общем, сделал, для начала сделал себе фиктивный NAT с порта 6789 на 8080, который у меня был среди открытых
Код:
/ip firewall nat
add action=dst-nat chain=dstnat dst-address=192.168.10.1 dst-port=6789 protocol=tcp to-addresses=192.168.10.70 to-ports=8080
проверил с 10.10.0.2
Цитата: telnet 192.168.10.1 6789
Trying 192.168.10.1...
Connected to 192.168.10.1.
Escape character is '^]'.
GET
HTTP/1.1 400 Bad Request
Content-Type: text/html
Connection: close
Date: Thu, 31 May 2018 08:20:23 GMT
Content-Length: 94
<HTML><HEAD>
<TITLE>400 Bad Request</TITLE>
</HEAD><BODY>
<H1>Bad Request</H1>
</BODY></HTML>
Connection closed by foreign host.
работает
Добавил 10.10.0.2 в список, на случай случайной блокировки поставил таймаут в сутки (через сутки адрес из этого списка уберется)
Код:
/ip firewall address-list
add address=10.10.0.2 list=garbage timeout=1d
Создал правило на блокировку по списку
Код:
/ip firewall filter
add action=drop chain=forward src-address-list=garbage
посмотрел, какое оно у меня
Код:
/ip firewall filter print
...
...
10 chain=forward action=drop protocol=tcp src-address-list=garbage
и сделал его первым вместо десятого (последнего)
Попробовал telnet, что выше - не работает. Попереключал disable 0 и enable 0, то работает, то не работает, все нормально...
В качестве варианта, опять же, при большом трафике, добавил бы в блокировщик условие с интерфейсом, еще и только connection-state=new, может... Правило INPUT можно добавить, если закрывать сам Mikrotik. У меня по умолчанию на все INPUT закрыт, открыто только то, что нужно.