Страницы

среда, 16 августа 2017 г.

129. Mikrotik Allow Access From Specific Country

Script:

Download Address List file to Router:
/tool fetch url=http://www.iwik.org/ipcountry/mikrotik/KH

Import IP Address from File to Address-List:
/import file-name=KH

Filter Rule:
/ip firewall filter add chain=forward in-interface=ether1_WAN src-address-list=!KH action=drop comment="Allow Only access From My Country" disabled=no


Ref:
http://www.ip2location.com/free/visitor-blocker
http://www.iwik.org/ipcountry/
http://www.nationsonline.org/oneworld/country_code_list.htm

воскресенье, 13 августа 2017 г.

6.1. Как ходит трафик в Микротик?


Это нужно знать наизусть. Иначе можно многое напутать... 
Представьте комп с двумя сетевыми картами. Будем называть его ШЛЮЗ.
В одну карту входит интернет. Со второй выходит к свичу.
А к свичу подключены другие компы.
За этими компами люди в интернете лазяют.
Так вот. Трафик идущий от людей в интернет и обратно - это для шлюза транзитный-проходящий трафик FORWARD
Это левая диаграмма. Как раз наш случай с Микротик.

А если на самом  шлюзе запускаются браузер, почта и пр.
То это уже Входящий и Исходящий трафик для шлюза. Не транзитный. INPUT и OUTPUT.
Т.к. конечная точка всех пакетов - это сам шлюз, а не компы за шлюзом.
Это левая и правая диаграмма, только без центрального блока FORWARD.
В Микротике правая практически никогда не задействована. 
Так что про INPUT-OUTPUT забудьте.
Только для блокировки входящих пакетов.




"И на кой черт мне это нужно?" Спросите Вы.
Все просто. Зайдите в IP - Firewall.
Там есть 3 вкладки Filter, NAT и Mangle. 
В   Filter и Mangle  есть все 3 цепочки - Prerouting, Forward и Postrouting. И еще 2 цепочки Input Output.
В NAT есть только цепочки DstNat и SrcNat.  

Filter - разрешает-запрещает пакеты, совпадающие по условию записи в Filter.
NAT - это чаще всего правило SrcNat-Masquerade - чтоб люди могли ходить в интернет.
И DstNat-DstNat - чтоб с интернета можно было добраться до компьютеров и роутеров в вашей сети.
Mangle - продвинутый маркировщик пакетов.

Предположим клиент вашей сети имеет адрес локальный 192.168.0.2
а IP Микротика 80.80.80.1 - это интернет адрес.
Когда клиент запрашивает веб-страницу, к нему сыплятся пакеты.
Но не на его адрес, а на адрес Микротика. Потому как адрес 192.168.0.2 локальный, и само собой напрямую на этот адрес прийти ничего не может. 
Т.е. Микротику приходит пакет с Dst.Address - 80.80.80.1

1. Mangle Prerouting, Nat Prerouting - правила в этих 2 цепочках Самые первые обрабатывают пакет. 
Никаких локальных адресов в пакете нет, только внешний адрес Микротика!  

2. Далее срабатывает Firewall - NAT.
Происходит подмена (из таблицы NAT) для входящих пакетов внешнего IP на локальный.
или DstNat (это для тех, кто пытается достучаться до локальных IP-адресов из интернета)
Т.е. теперь  Dst.Address пакета не 80.80.80.1, а уже локальный адрес клиента - 192.168.0.2.

3. Теперь срабатывают правила в цепочках Mangle Forward и Filter Forward. 
Тут уже можно фильтровать клиентов вашей сети.

4.Далее снова срабатывает NAT.
Здесь создаются записи в таблице NAT для исходящих пакетов. Т.е. срабатывает SRC-NAT.
По этим записям будет происходить обратная замена IP, когда придут ответные пакеты. 
И для исходящих пакетов происходит подмена локального IP  192.168.0.2  на IP Микротика 80.80.80.1.

5. И последний этап - Mangle Postrouting, Nat Postrouting. 
Никаких локальных адресов в пакете нет, только внешний адрес  Микротика!  
Далее все это направляется в шейпер. Queue Tree и Simple Queue. 

Для Транзитного траффика: сеть -> mangle PREROUTING -> nat PREROUTING -> mangle FORWARD -> filter FORWARD -> mangle POSTROUTING -> nat POSTROUTING -> сеть 

6.2. Firewall Filter — блокируем и разрешаем.


Здесь создаются блокирующие и разрешающие правила. 
Если записей никаких нет - то все разрешено. 
Порядок записей имеет значение.
Проверка правил происходит сверху вниз.
Если  пакет соответствует правилу, то дальнейшая проверка не происходит, если конечно не стоит галка PassTrugh 
Есть 2 варианта.
Мягкий - Добавлять только запрещающие правила. Все остальное разрешать.
Жесткий - поставить  запрещающее  правило на все. А сверху добавлять разрешающие. 

Блокируется  или входящие пакеты или исходящие.
Важно!
1. Никогда не пытайтесь одним правилом блокировать входящие и исходящие пакеты одновременно.
Это ошибка.
Просто создайте при необходимости  2 правила - на входящие и исходящие пакеты.
А лучше блокировать только исходящие пакеты еще на взлете. Входящих пакетов само собой уже не будет.
Да и Роутер разгрузится от лишнего входящего траффика.

2. Есть 2 типа пакетов - входящие и исходящие. 
Важно! Src.Address и  Dst.Address  в правилах меняются местами. В зависимости от направления движения пакета.
Входящие - это из интернета  к нам. 
Src.Address - это интернет-адрес отправителя (сервера в интернете). 
Dst.Address - это интернет-адрес Микротика (получателя). Если это правило в цепочке PreRouting.    или  
Dst.Address - это локальный адрес клиента (получателя). Если это правило в цепочке Forward или PostRouting.

Исходящие - это от  нас в интернет.
Src.Address  - это интернет-адрес отправителя (Микротика) . Если это правило в цепочке PostRouting.    или  
Src.Address - это локальный адрес клиента (отправителя). Если это правило в цепочке Forward или Prerouting.
Dst.Address - это интернет-адрес получателя (сервера в интернете). 

3. В правилах   всегда указывайте Out. Interface или  In. Interface.
Причем,
если указываете   In. Interface - LAN1, то это исходящий трафик. 
Значит Dst.Address - это должен быть адрес интернет-ресурса. А Src.Address - это адрес вашей локалки или Микротика  

если указываете   Out. Interface - LAN1, то это входящий трафик.
Значит Dst.Address - это должен быть адрес вашей локалки или Микротика.  А Src.Address - адрес интернет-ресурса.
Это очень важно! 

То же самое  (п. 1 и 2) касается и Mangle.