Започваме много обширна тема за защита отвън. По-точно как да блокираме определено IP, домейн или на Layer 7 определен или група компоненти. За начало да покажем как да блокираме IP идващо от публичната мрежа.
Доста често ще видите по логовете как всякакви потребители с различни IP адреси се мъчат да се свържат с микротика. За да не си играете да ги блокирате ще покажа начин тази опция да се извършва автоматично. За начало да видим командите:
/ip firewall filter add action=drop chain=input comment="drop ssh brute forcers" dst-port=22 \ protocol=tcp src-address-list=ssh_blacklist add action=add-src-to-address-list address-list=ssh_blacklist \ address-list-timeout=1w3d chain=input connection-state=new dst-port=22 \ protocol=tcp src-address-list=ssh_stage3 add action=add-src-to-address-list address-list=ssh_stage3 \ address-list-timeout=1m chain=input connection-state=new dst-port=22 \ protocol=tcp src-address-list=ssh_stage2 add action=add-src-to-address-list address-list=ssh_stage2 \ address-list-timeout=1m chain=input connection-state=new dst-port=22 \ protocol=tcp src-address-list=ssh_stage1 add action=add-src-to-address-list address-list=ssh_stage1 \ address-list-timeout=1m chain=input connection-state=new dst-port=22 \ protocol=tcp add action=accept chain=input comment="SSH traffic monitor" dst-port=22 \ protocol=tcp/ip firewall filter add action=drop chain=input comment="drop ssh brute forcers" dst-port=22 \ protocol=tcp src-address-list=ssh_blacklist add action=add-src-to-address-list address-list=ssh_blacklist \ address-list-timeout=1w3d chain=input connection-state=new dst-port=22 \ protocol=tcp src-address-list=ssh_stage3 add action=add-src-to-address-list address-list=ssh_stage3 \ address-list-timeout=1m chain=input connection-state=new dst-port=22 \ protocol=tcp src-address-list=ssh_stage2 add action=add-src-to-address-list address-list=ssh_stage2 \ address-list-timeout=1m chain=input connection-state=new dst-port=22 \ protocol=tcp src-address-list=ssh_stage1 add action=add-src-to-address-list address-list=ssh_stage1 \ address-list-timeout=1m chain=input connection-state=new dst-port=22 \ protocol=tcp add action=accept chain=input comment="SSH traffic monitor" dst-port=22 \ protocol=tcp
Малко обяснение по горните команди. 1. Забраняваме всичко което идва отвън и се обръща към порт 22. Създаваме и файл наречен ssh_blacklist. В него ще се записват IP адреси които няколко пъти са се опитали да се свържат с рутера и не са успели. Ако три пъти не са успели да се свържат по SSH то IP-то автоматично ще се запише в блеклистата. 2. Проверяваме всеки опит за влизане в Mikrotik по порт 22. Ако по някаква причина не може да се влезе (примерно грешна парола) се създават записи ssh_stage 3, ssh_stage 2 и ssh_stage 1, 3. При 3 грешни опита за влизане IP адреса от който се прави опита за влизане се записва в ssh_blacklist и автоматично се блокира за достъп до системата за 10 дена. 4. Ако пък правилно се достъпи по SSH то не се прави запис в ssh_blacklist и се достъпва рутера.

Би трябвало ако четете това да знаете различните слоеве за какво служат. Layer 1 (Physical) - примерно е физическата свързаност (платка, кабела в мрежата), отговаря за електрическата свързаност. Layer 2 (Data Link) - това е примерно MAC адреса и управление на логическите връзки. Layer 3 (Network) -е IP адреса, отговаря за съединението и маршрутизиранията в мрежата. Layer 4 (Transport) - e примерно TCP, UDP и разни други протоколи отговарящи за транспортирането на данни. Layer 5 (Session) - управлява комуникацията между приложенията (управлява съединенията и сесиите). Layer 6 (Presentation) - отговаря за независимостта на данните, пример Skype преобразува гласа в битове за да може да го предаде после на следващото ниво което прави обратното. Layer 7 (Application) - както от предния пример взема данните и ги преобразува в зависимост от приложението в формат който искаме. Примерно пак Skype преобразува битове в глас. На Layer 7 много удобно може да се прави филтрация. Примерно искаме да филтрираме всичко от YouTube, Facebook, Google и т.н. В по-долния пример именно това ще демонстрираме.
[Block domain] IP >> Firewall >> Address List >> + Name: mail from saillantie.nl Address: saillantie.nl Applay >> OK След като се приложи правилото автоматично домейна получава IP IP >> Firewall >> Filter Rules >> + General >> Chain: forward Advanced >> Dst.Addres List: mail from saillantie.nl Action >> Action: drop [Laier 7 block - само за URL] IP >> Firewall >> Layer7 Protocols >> + Name: Block Sites Regexp: ^.+(facebook.com|youtube|google|yahoo).*$ Applay >> OK IP >> Firewall >> Filter Rules >> + General >> Chain: forward Advanced >> Layer7 Protocol: Block Sites Action >> Action: drop