Routeur MikroTik

Les routeurs MikroTik offrent des solutions professionnelles à des prix abordables, idéales pour une utilisation personnelle. Que ce soit pour des routeurs, switchs ou points d’accès Wi-Fi, ils fonctionnent tous sous RouterOS. Peu importe le périphérique, chaque modèle peut remplir les rôles de routeur, pare-feu et switch. Vous pouvez ainsi débuter avec un modèle comme le hEX lite, disponible pour environ 40€.
Il est également possible de tester RouterOS sur une machine virtuelle pendant 24 heures.

Caractéristiques

Les routeurs MikroTik proposent les fonctionnalités suivantes :

Pour plus d’informations, consultez la documentation officielle.


Fonctionnalités en détail

Safe Mode

Le Safe Mode protège contre les erreurs de configuration pouvant entraîner une perte d’accès.

Depuis la ligne de commande, appuyez sur CTRL-x pour activer ce mode, identifiable par l’indication <SAFE> dans l’invite.

Comment ça fonctionne ?

En mode Safe Mode, le routeur teste périodiquement la connectivité entre lui-même et la session SSH de l’administrateur. Si une perte de connexion est détectée, il restaure la configuration précédente.

Pour sauvegarder vos modifications tout en restant connecté, désactivez le Safe Mode en appuyant de nouveau sur CTRL-x.


Firewall

Les routeurs MikroTik intègrent deux types de pare-feu : Layer 2 et Layer 3.

Exemple Layer 3

/ip/firewall/filter
# Input
add action=accept chain=input comment="accept established,related,untracked" connection-state=established,related,untracked
add action=drop chain=input comment="drop invalid" connection-state=invalid
add action=accept chain=input comment="accept to local loopback (for CAPsMAN)" dst-address=127.0.0.1
add action=drop chain=input comment="drop all not coming from LAN" in-interface-list=!LAN log=yes log-prefix=BAN

# Forward
add action=fasttrack-connection chain=forward comment="fasttrack" connection-state=established,related hw-offload=yes
add action=accept chain=forward comment="accept established,related,untracked" connection-state=established,related,untracked
add action=drop chain=forward comment="drop invalid" connection-state=invalid
add action=drop chain=forward comment="drop all from WAN not DSTNATed" connection-nat-state=!dstnat connection-state=new in-interface-list=WAN

# Masquerade
/ip firewall nat
add action=masquerade chain=srcnat comment="masquerade" ipsec-policy=out,none out-interface-list=WAN

VLAN

Les VLAN permettent d’isoler plusieurs flux réseau au sein du même bridge. Cela permet, par exemple, de séparer le trafic entre le LAN et une DMZ sans interaction entre eux. Voici deux notions importantes :

  • Tagged (trunk) : Ajout d’un numéro VLAN dans l’en-tête Ethernet du paquet IP, pour les périphériques compatibles (802.1Q).
  • Untagged : Suppression du numéro VLAN pour rendre le paquet accessible aux périphériques classiques.

Exemple

L’exemple suivant configure deux VLANs : LAN (2) et DMZ (3). Tous les ports sont dédiés au LAN, sauf :

  • ether10 pour la DMZ.
  • ether2, utilisé comme trunk (tagged) pour transporter les flux LAN et DMZ.
# Désactiver temporairement le filtrage VLAN
/interface/bridge
set [find where name="bridge"] vlan-filtering=no

# Associer tous les ports au VLAN-LAN (PVID 2)
/interface/bridge/port
set [find] pvid=2

# Associer ether10 au VLAN-DMZ (PVID 3)
set [find where interface=ether10] pvid=3

# Configurer le trunk (ether2)
/interface/bridge/vlan
add bridge=bridge comment=eth2-lan tagged=ether2,bridge vlan-ids=2
add bridge=bridge comment=eth2-dmz tagged=ether2,bridge vlan-ids=3

# Créer les interfaces VLAN
/interface/vlan
add interface=bridge name=vlan-lan vlan-id=2
add interface=bridge name=vlan-dmz vlan-id=3

# Adressage IP
/ip/address
add address=192.168.2.254/24 interface=vlan-lan
add address=192.168.3.254/24 interface=vlan-dmz

# Configurer les pools DHCP
/ip/pool
add name=dhcp-lan ranges=192.168.2.128/25
add name=dhcp-dmz ranges=192.168.3.128/25

# Ajouter les serveurs DHCP
/ip/dhcp-server
add address-pool=dhcp-lan interface=vlan-lan
add address-pool=dhcp-dmz interface=vlan-dmz
Application de la configuration

Pour préserver l’ensemble de la configuration précédente (étant toujours en mode <SAFE>), je resort du safe mode en pressant es touches CTRL-x.

Je peux dorénavant passer à l’activation du VLAN filtering, en executant les commandes suivantes (en n’oubliant pas d’activer le save mode):

# Note: Press [CTRL-x] In the terminal prompt, after the prompt line, you must see <SAFE> text

# Enable vlan filtering
/interface/bridge
set [find where name="bridge"] ] vlan-filtering=yes

Outils pratiques

Logs

Afficher les logs en temps réel :

/log/print follow

Filtrer les logs par mot-clé :

/log/print where message~"BAN"
14:33:48 firewall,info BAN INPUT 80 input: in:ether1 out:(unknown 0), connection-state:new src-mac aa:bb:cc:dd:dd:ee, proto TCP (SYN), 80.75.212.9:50264->192.168.0.88:80, len 40
14:37:55 firewall,info BAN INPUT 80 input: in:ether1 out:(unknown 0), connection-state:new src-mac aa:bb:cc:dd:dd:ee, proto TCP (SYN), 62.169.22.37:40244->192.168.0.88:80, len 40
15:13:31 firewall,info BAN INPUT 80 input: in:ether1 out:(unknown 0), connection-state:new src-mac aa:bb:cc:dd:dd:ee, proto TCP (SYN), 194.50.16.198:57018->192.168.0.88:80, len 40
15:22:55 firewall,info BAN INPUT 80 input: in:ether1 out:(unknown 0), connection-state:new src-mac aa:bb:cc:dd:dd:ee, proto TCP (SYN), 93.174.93.12:60000->192.168.0.88:80, len 40

Ping

Tester une adresse IP :

/tool/ping address=8.8.8.8 count=5
SEQ HOST                                     SIZE TTL TIME       STATUS                                                                                                                   
  0 8.8.8.8                                    56 249 27ms336us 
  1 8.8.8.8                                    56 249 28ms654us 
  2 8.8.8.8                                    56 249 28ms473us 
  3 8.8.8.8                                    56 249 28ms657us 
  4 8.8.8.8                                    56 249 28ms434us

Sniffer

Capturer le trafic réseau sur une interface :

/tool/sniffer/quick duration=1
INTERFACE  TIME   NUM  DIR  SRC-MAC            DST-MAC            VLAN  SRC-ADDRESS                 DST-ADDRESS                 PROTOCOL  SIZE  CPU
ether2     0.904  668  <-   aa:bb:cc:dd:dd:ee  aa:bb:cc:dd:dd:ee   254  192.168.254.114:33842       142.251.37.234:443 (https)  ip:tcp     109    0
bridge     0.904  669  <-   aa:bb:cc:dd:dd:ee  aa:bb:cc:dd:dd:ee   254  192.168.254.114:33842       142.251.37.234:443 (https)  ip:tcp     109    0
vlan-lan   0.904  670  <-   aa:bb:cc:dd:dd:ee  aa:bb:cc:dd:dd:ee        192.168.254.114:33842       142.251.37.234:443 (https)  ip:tcp     105    0
ether1     0.904  671  ->   aa:bb:cc:dd:dd:ee  aa:bb:cc:dd:dd:ee        192.168.88.22:33842         142.251.37.234:443 (https)  ip:tcp     105    0
ether1     0.919  672  <-   aa:bb:cc:dd:dd:ee  aa:bb:cc:dd:dd:ee        140.82.121.3                192.168.88.22               ip:icmp     98    0
vlan-lan   0.919  673  ->   aa:bb:cc:dd:dd:ee  aa:bb:cc:dd:dd:ee        140.82.121.3                192.168.254.100             ip:icmp     98    0
bridge     0.919  674  ->   aa:bb:cc:dd:dd:ee  aa:bb:cc:dd:dd:ee   254  140.82.121.3                192.168.254.100             ip:icmp    102    0

Torch

Analyser les flux réseau en direct :

/tool/torch interface=ether1 src-address=0.0.0.0/0 dst-address=0.0.0.0/0 ip-protocol=any mac-protocol=any
MAC-PROTOCOL  IP-PROTOCOL  SRC-ADDRESS     DST-ADDRESS   TX        RX         TX-PACKETS  RX-PACKETS
ip            icmp         140.82.121.3    192.168.88.22  784bps    784bps              1           1
ip            icmp         142.251.37.227  192.168.88.22  784bps    784bps              1           1
ip            icmp         192.168.0.1     192.168.88.22  41.9kbps  41.9kbps            5           5
ip            tcp          18.197.249.189  192.168.88.22  1488bps   976bps              2           1
ip            tcp          45.45.148.7     192.168.88.22  1248bps   1728bps             2           3
ip            tcp          71.18.255.144   192.168.88.22  17.6kbps  51.3kbps            9          11

Sources