Un certain nombre d'entre vous m'ont demandé la configuration IPv4 pour Mikrotik CCR2004-1G-12S+2XS.
Je rappelle que l'ensemble est plus qu'inspiré du volumineux post de
Seb59 en Janvier 2017:
Rappel de l'organisation des ports. N'y cherchez pas de logique, il est d'inspiration Seb59. Les ports utilisés ne sont pas nécessairement collés les uns aux autres, de façon à diluer la dissipation thermique et repousser le seuil d'intervention du refroidissement actif.
D'origine, le CCR2004 démarre en 192.168.88.1/24 sur l'interface eth1 1Gbps.
Dans sa configuration d'origine, le plus simple consiste à s'y connecter avec winbox, et écraser certains réglages dans une même étape:
Cliquez sur Quick Set en haut à gauche, puis, modifiez ainsi
- L'adresse IP de la Gateway :192.168.1.1/
- Local Network / IP Address
- Router Indentity: Mikrotik CCR2004 (utile pour différentier le routeur des switchs 10Gbps du réseau
- Password: A changer immanquablement, car à peine connecté, des petits farceurs aux scripts aiguisés tenteront de se connecter.
Alors, il sera de bon ton de déconnecter winbox, puis de le reconnecter.
Le plus simple est de se connecter depuis une session ssh, moins à même de ne pas apprécier les quelques caractères accentués que j'ai glissé ici.
#######################################################################################################################
#
# Rappel des fonctions des ports sur mon routeur -
# N'y cherchez pas de logique, ça m'a pris comme ça.
#
#######################################################################################################################
#
# Configuration IPv4 pour Mikrotik CCR2004-1G-12S+2XS
# Accès Orange Up 2Gbps
#
#######################################################################################################################
# Config IPV4 - Sans LB - Sans TV
#################################
#
# Eth7 : Décodeur TV <= Utilisation au prochain épisode
# Eth8 : LB <= Utilisation au prochain épisode
#
# Eth10 : ONT <=
# Eth12 : LAN <= Seuls ces 2 là seront utilisés pour l'instant.
#
#################################
#####################################################################################################################################
# Configuration des interfaces du routeur
#####################################################################################################################################
/interface ethernet
set [ find default-name=sfp-sfpplus1 ] disabled=yes
set [ find default-name=sfp-sfpplus2 ] disabled=yes
set [ find default-name=sfp-sfpplus3 ] disabled=yes
set [ find default-name=sfp-sfpplus4 ] disabled=yes
set [ find default-name=sfp-sfpplus5 ] disabled=yes
set [ find default-name=sfp-sfpplus6 ] disabled=yes
set [ find default-name=sfp-sfpplus7 ] comment="Routeur TV local" name=ether7-TV
set [ find default-name=sfp-sfpplus8 ] comment=Livebox name=ether8-LB
set [ find default-name=sfp-sfpplus9 ] disabled=yes
set [ find default-name=sfp-sfpplus10 ] name=ether10-WAN comment="WAN-ONU-2500GBaseX" advertise=1000M-full,2500M-full,10000M-full
set [ find default-name=sfp-sfpplus11 ] disabled=yes
set [ find default-name=sfp-sfpplus12 ] name=ether12-LAN comment=LAN advertise=10M-half,10M-full,100M-half,100M-full,1000M-half,1000M-full,2500M-full,10000M-full
set [ find default-name=sfp28-1 ] disabled=yes
set [ find default-name=sfp28-2 ] disabled=yes
De façon à lier tous les Vlan nécessaires, nous utilisons un bridge
##################################################
# Créons le bridge principal qui va servir sans arrêt
##################################################
/interface bridge
add name=br-wan
On écrase les IP des interfaces d'accès.
############################################################################################
# Surcharge des IP de configuration - Arbitraire
############################################################################################
/ip address
add address=192.168.88.1/24 comment=defconf interface=ether1 network=192.168.88.0
add address=192.168.1.1/24 interface=ether12-LAN network=192.168.1.0
Créons une interface esclave sur ce vlan 832
############################################################################################
# Ajout du VLAN 832 sur ether10-WAN pour accès Internet (valable pour IPV4 et IPV6)
# VLAN 832 pour Internet, le 838 pour la VOD/Replay et le 840 pour le multicast TV
############################################################################################
/interface vlan
add comment="Internet ONT" interface=ether10-WAN loop-protect-disable-time=0s loop-protect-send-interval=1s name=vlan832-internet vlan-id=832
Définissons les options nécéssaires à la configuration du client DHCP pour se connecter à l'accès Orange.
Convertissez votre identifiant fti complet pour remplacer les 22 caractères XXXXXXXXXXXXXXXXXXXXX en les convertissant sur
https://www.rapidtables.com/convert/number/ascii-to-hex.htmlMieux, utilisez donc la page de @kgersen
https://jsfiddle.net/kgersen/3mnsc6wy/############################################################################################
# Définition des options du client DHCPv4 pour Orange
############################################################################################
/ip dhcp-client option
add code=60 name=vendor-class-identifier value=0x736167656d
add code=77 name=userclass value="0x2b46535644534c5f6c697665626f782e496e7465726e65742e736f66746174686f6d652e4c697665626f7833"
add code=90 name=authsend value=0x00000000000000000000001a0900000558010341010DXXXXXXXXXXXXXXXXXXXXXX
On lancera le client DHCP un peu plus tard, nous avons deux ou trois choses à définir avant, comme le serveur DHCP côté LAN, interface ether12-LAN.
############################################################################################
# Définition de la plage d'IP LAN DHCP
############################################################################################
/ip pool
add name=pool_lan ranges=192.168.1.100-192.168.1.200
/ip dhcp-server
add address-pool=pool_lan disabled=no interface=ether12-LAN lease-time=1w name=LAN
RouterOS permet de définir de nombreux types de queues, destinées à limiter et prioriser le traffic.
https://wiki.mikrotik.com/wiki/Manual:Queue pour plus d'informations.
Nous resterons dans le simple, First-In/First-Out, premier arrivé, premier distribué.
############################################################################################
# Définition des types de queue utilisée par RouterOS pour gérer les interfaces qui nous occupent.
############################################################################################
/queue interface
#set ether7-TV queue=ethernet-default <= On provisionne
#set ether8-LB queue=ethernet-default <= Pour la suite
set ether10-WAN queue=ethernet-default
set ether12-LAN queue=ethernet-default
Si l'on lance le client DHCP requérrant l'IP publique à Orange, sans marquer CE trafic DHCP sortant de son nécessaire (selon la localisation géographique) niveau de priorité COS=6, cela ne fonctionnera pas.
Par chez moi c'est nécessaire.
Au passage, on ajoute l'interface esclave vlan832-internet au bridge br-wan, sur lequel s'nvoie la requête DHCP (à COS=6 forgée)
############################################################################################
# Definition du filtre qui envoit les requêtes DHCP avec la COS=6 si nécessaires à Orange
# Prélablement à la crétion du client DHCP bien sûr
############################################################################################
/interface bridge filter
add action=set-priority chain=output dst-port=67 ip-protocol=udp log=yes log-prefix="Set CoS6 on DHCP request" mac-protocol=ip new-priority=6 out-interface=vlan832-internet passthrough=yes
/interface bridge port
add bridge=br-wan interface=vlan832-internet
# définition du pont où s'enverra la requête DHCP, à COS forgée
############################################################################################
On peut enfin lancer l'authentification DHCP
############################################################################################
# Création du client DHCP qui requiert les adresses IPv4 et IPv6 à Orange
############################################################################################
/ip dhcp-client
add dhcp-options=hostname,clientid,authsend,userclass,vendor-class-identifier disabled=no interface=br-wan
############################################################################################
À partir de ce moment, l'IP WAN apparaît sur le bridge br-wan dans l'interface winbox /IP/ADDRESS
Définissons le service DNS pour le LAN
############################################################################################
# On définit le service DNS pour le LAN
############################################################################################
/ip dhcp-server network
add address=192.168.1.0/24 dns-server=8.8.8.8,8.8.4.4 gateway=192.168.1.1 netmask=24
###########################################################################################
Nous avons une adresse IP externe, mais le NAT IPv4 n'est pas encore lancé.
Créons donc quelques règles de Firewall.
D'abord on ajoute à la liste "support" toutes les tranches d'IP que nous allons utiliser
C'est très imporant car si votre tranche IP LAN n'y est pas, le FW vous coupera l'accès au routeur lui même.
########################################################################################################################################################################################
# Avant de lancer le NAT, on crée deux doigts de règles de FW
########################################################################################################################################################################################
############################################################################################
# Définitions des listes particulières liées aux RFC pour ne pas prêter la joue inutilement.
############################################################################################
# D'abord on ajoute à la liste "support" toutes les tranches d'IP que nous allons utiliser
# C'est très imporant car si votre tranche IP LAN n'y est pas, le FW vous coupera l'accès au routeur lui même.
############################################################################################
/ip firewall address-list
add address=192.168.1.0/24 list=support
add address=192.168.42.0/24 list=support
add address=192.168.255.0/24 list=support
##############################
# Puis quelques classes qui ne devraient pas nécessairement pousser des datagrames sur l'interface WAN
##############################
add address=0.0.0.0/8 comment="Self-Identification [RFC 3330]" list=bogons
add address=10.0.0.0/8 comment="Private[RFC 1918] - CLASS A" disabled=yes list=bogons
add address=127.0.0.0/16 comment="Loopback [RFC 3330]" list=bogons
add address=169.254.0.0/16 comment="Link Local [RFC 3330]" list=bogons
add address=172.16.0.0/12 comment="Private[RFC 1918] - CLASS B" disabled=yes list=bogons
add address=192.168.0.0/16 comment="Private[RFC 1918] - CLASS C" disabled=yes list=bogons
add address=192.0.2.0/24 comment="Reserved - IANA - TestNet1" list=bogons
add address=192.88.99.0/24 comment="6to4 Relay Anycast [RFC 3068]" list=bogons
add address=198.18.0.0/15 comment="NIDB Testing" list=bogons
add address=198.51.100.0/24 comment="Reserved - IANA - TestNet2" list=bogons
add address=203.0.113.0/24 comment="Reserved - IANA - TestNet3" list=bogons
#add address=224.0.0.0/4 comment="MC, Class D, IANA" disabled=yes list=bogons
Enfin, les règles firewall elles mêmes.
############################################################################################
# Les règles de Firewall - adapter aux besoins
############################################################################################
/ip firewall filter
add action=add-src-to-address-list address-list=Syn_Flooder address-list-timeout=30m chain=input comment="Add Syn Flood IP to the list" connection-limit=30,32 protocol=tcp tcp-flags=syn
add action=drop chain=input comment="Drop to syn flood list" src-address-list=Syn_Flooder
add action=add-src-to-address-list address-list=Port_Scanner address-list-timeout=1w chain=input comment="Port Scanner Detect" protocol=tcp psd=21,3s,3,1
add action=drop chain=input comment="Drop to port scan list" src-address-list=Port_Scanner
add action=jump chain=input comment="Jump for icmp input flow" jump-target=ICMP protocol=icmp
add action=drop chain=input comment="Block all access to the winbox - except to support list # DO NOT ENABLE THIS RULE BEFORE ADD YOUR SUBNET IN THE SUPPORT ADDRESS LIST" dst-port=8291 protocol=tcp src-address-list=!support
add action=jump chain=forward comment="Jump for icmp forward flow" jump-target=ICMP protocol=icmp
add action=drop chain=forward comment="Drop to bogon list" dst-address-list=bogons
add action=add-src-to-address-list address-list=spammers address-list-timeout=3h chain=forward comment="Add Spammers to the list for 3 hours" connection-limit=30,32 dst-port=25,587 limit=30/1m,0:packet protocol=tcp
add action=drop chain=forward comment="Avoid spammers action" dst-port=25,587 protocol=tcp src-address-list=spammers
add action=accept chain=input comment="Accept DNS - UDP" port=53 protocol=udp
add action=accept chain=input comment="Accept DNS - TCP" port=53 protocol=tcp
add action=accept chain=input comment="Accept to established connections" connection-state=established
add action=accept chain=input comment="Accept to related connections" connection-state=related
add action=accept chain=input comment="Full access to SUPPORT address list" src-address-list=support
add action=drop chain=input comment="Drop anything else! # DO NOT ENABLE THIS RULE BEFORE YOU MAKE SURE ABOUT ALL ACCEPT RULES YOU NEED"
add action=accept chain=ICMP comment="Echo request - Avoiding Ping Flood" icmp-options=8:0 limit=1,5:packet protocol=icmp
add action=accept chain=ICMP comment="Echo reply" icmp-options=0:0 protocol=icmp
add action=accept chain=ICMP comment="Time Exceeded" icmp-options=11:0 protocol=icmp
add action=accept chain=ICMP comment="Destination unreachable" icmp-options=3:0-1 protocol=icmp
add action=accept chain=ICMP comment=PMTUD icmp-options=3:4 protocol=icmp
add action=drop chain=ICMP comment="Drop to the other ICMPs" protocol=icmp
add action=jump chain=output comment="Jump for icmp output" jump-target=ICMP protocol=icmp
Notez le traitement spécial réservé aux tentatives d'ouverture de shell SSH depuis l'interface WAN.
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=drop chain=forward comment="drop ssh brute downstream" dst-port=22 protocol=tcp src-address-list=ssh_blacklist
Une fois les deux doigts de firewall activés, on peut lancer le NAT
############################################################################################
# Et enfin, le NAT
############################################################################################
/ip firewall nat
add action=masquerade chain=srcnat out-interface=br-wan to-addresses=0.0.0.0
Voilà, le routeur est connecté, et il route.
On peut alors ajouter un port forwarding vers son super serveur wouaibe pour montrer à mamie les photos des petits.
Ici, serveur web http port 80 sur l'IP LAN 192.168.1.5
Oui, c'est arbitraire.
Pensez bien à préciser l'interface d'entrée, sinon toutes les connexions sortantes, ici "
in-interface=br-wan" vers un port identique (ici, une page web non chiffrée http://), serait immanquablement renvoyé vers le réseau interne.
add action=dst-nat chain=dstnat dst-port=80 in-interface=br-wan protocol=tcp to-addresses=192.168.1.5 to-ports=80
On finit en désactivant le telnet et le FTP, au cas où.
Le plus sûr, c'est ssh, et que depuis l'intérieur du réseau.
############################################################################################
# Réglages des types d'accès en supervision
############################################################################################
/ip service
set telnet disabled=yes
set ftp disabled=yes
Enjoy.
Merci à @Seb59