RouterOS configuratie (alleen internet IPv4)

Doel

Dit is de basis RouterOS configuratie die alleen internet op IPv4 afhandelt. Met deze configuratie sluit je de glasvezel aan op poort 1 en je hebt LAN verbinding op poort 2,3,4,5. De router verwacht dat het VLAN6 verkeer op poort 1 TAGGED wordt afgeleverd. Het LAN verkeer komt untagged op de LAN-poorten direkt bruikbaar voor pc's, laptops, etc.
Dit is een hele simpele maar doeltreffende configuratie die als basis zal dienen voor verdere uitbreiding.

Ben je op zoek naar de IPv6 variant van deze configuratie? Klik dan hier.

Schematisch overzicht

Configuratie

 Let op dat vanaf hier de beschreven configuratie er van uit gaat dat het systeem GEEN huidige configuratie heeft. Dus ook niet de 'default configuration' die bij 1e installatie wordt aangeboden. Verwijder deze indien nodig. Je kunt het beste met WinBOX verbinden op MAC-adres van de router op poort 2.

 

 # Bruikbaar voor een KPN of XS4ALL fiber verbinding (alleen IPv4)
# Alleen internet configuratie.
#
# Export voor RouterOS versie 6.43 en hoger
#
# Laatste wijziging: 19 januari 2019
#
/interface ethernet
#
# Poort 1 (ether1) = FIBER connectie
#
set [ find default-name=ether1 ] arp=proxy-arp l2mtu=1598 loop-protect=off

#
# Poort 2 (ether2) = LAN
#
set 1 arp=enabled auto-negotiation=yes \
    disabled=no full-duplex=yes l2mtu=1598 \
    mtu=1500 name=ether2 speed=1Gbps
#
# VLAN 6 = internet, deze koppelen we aan de fysieke interface ether1-gateway.
#
/interface vlan
add interface=ether1 loop-protect=off name=vlan1.6 vlan-id=6

#
# PPPoE profiel, heel standaard.
# Twee profielen, eentje met en eentje zonder IPv6.

/ppp profile
set *0 only-one=yes use-compression=yes use-upnp=no use-ipv6=no
add name=default-ipv6 only-one=yes use-compression=yes use-upnp=no use-ipv6=yes

# PPPOE CLIENT, deze koppelen we aan de VLAN6 interface die eerder gemaakt is.
# (vul eigen MAC in ipv xx-xx...) Let op: hier worden streepjes gebruikt ipv dubbele punten
# Het MAC adres verwijst hier naar het adres van de Experiabox die vervangen wordt.
# De exacte inloggegevens zijn ook zichtbaar in de webinterface van de experiabox.
#   
/interface pppoe-client

add add-default-route=yes allow=pap disabled=no interface=vlan1.6 \
    keepalive-timeout=20 max-mru=1500 max-mtu=1500 name=pppoe-client \
    password=1234 profile=default user=1234@provider

#
# BGP, alleen maar even om zeker te zijn dat het disabled is.
#
/routing bgp instance
set default disabled=yes

#
# Bridges, ofwel verzameling switchpoorten die bij elkaar horen.
#
# De bridge-local is de bridge voor de LAN kant van het netwerk. Let op: poort 1 zit (daarom) niet in de LAN bridgepoort!

/interface bridge
add name=bridge-local arp=proxy-arp

/interface bridge port
add bridge=bridge-local interface=ether2
add bridge=bridge-local interface=ether3
add bridge=bridge-local interface=ether4
add bridge=bridge-local interface=ether5

# Lokaal IP adres van de router. Pas dit aan naar het IP adres in de reeks die je gebruikt (of laat het zo)
#

/ip address
add address=192.168.10.250/24 disabled=no interface=bridge-local network=192.168.10.0

# De DNS van Google, lekker betrouwbaar. Stel deze dmv remote requests als caching server open voor het LAN.
#
/ip dns
set allow-remote-requests=yes cache-max-ttl=1d cache-size=2048KiB \
    max-udp-packet-size=4096 servers=8.8.8.8,8.8.4.4
#
# De 3 standaard rules voor de firewall. Dit zijn geen veilige rules, alles staat open, maar
# bedoeld om de basis functionaliteiten te laten werken.
#
/ip firewall filter
add action=accept chain=input disabled=no in-interface=pppoe-client protocol=icmp
add action=accept chain=input connection-state=related disabled=no
add action=accept chain=input connection-state=established disabled=no
#
# BELANGRIJK: nu volgen enkele drastische voorbeeld firewall rules om de router vanaf internet te beschermen.
#
# Bedenk: input rules = verkeer naar de router zelf.
# Denk hierbij aan de webinterface, SSH toegang, een DNS server, VPN, etc.
#
# Onderstaande regels zorgen dat bijvoorbeeld de webinterface en de ssh poort niet van buitenaf te bereiken zijn.
# Ook sluit je een eventuele DNS server af voor de buitenwereld.
# Neem je de volgende twee regels niet mee in je eigen configuratie dan krijg je vanzelf bericht van KPN
# dat je verbinding is geblokkeeerd vanwege een "open DNS" of soortgelijke reden. Dan heb je geen internet meer.
# Voorkom dit dus vooral en neem deze basis firewall regels mee in je configuratie.
#
add action=reject chain=input in-interface=pppoe-client protocol=tcp reject-with=icmp-port-unreachable
add action=reject chain=input in-interface=pppoe-client protocol=udp reject-with=icmp-port-unreachable
#
# De NAT regel om vanaf LAN het internet te kunnen gebruiken, vervang evt het src adres door je eigen LAN IP reeks.
#
/ip firewall nat

add action=masquerade chain=srcnat comment="Needed for internet" \
    out-interface=pppoe-client src-address=192.168.0.0/16

## Een basis DHCP server voor het LAN
#

/ip pool
add name=thuisnetwerk ranges=192.168.10.40-192.168.10.99
/ip dhcp-server
add address-pool=thuisnetwerk authoritative=yes disabled=no interface=bridge-local \
    lease-time=1h30m name=dhcp-thuis
/ip dhcp-server config
set store-leases-disk=15m
/ip dhcp-server network
add address=192.168.10.0/24 dns-server=192.168.10.250 domain=thuis.local gateway=\
    192.168.10.250
#
# Algemene andere dingetjes
#
/ip upnp
set allow-disable-external-interface=no enabled=no show-dummy-rule=no
/ip upnp interfaces
add disabled=no interface=bridge-local type=internal
add disabled=no interface=pppoe-client type=external
/system clock
set time-zone-name=Europe/Amsterdam
#########################################

Geavanceerde extra's - Portforwarding

De technische naam voor een portforwarding is Destination-NAT. Deze kun je in RouterOS als volgt toevoegen via de commandline. Uiteraard kan dit ook via de grafische interface.
Het is niet nodig voor portforwarding nog losse firewall regels toe te voegen.

Doel: doorzetten van extern TCP poort 80 naar intern IP adres 192.168.10.1

/ip firewall nat
add action=dst-nat chain=dstnat dst-port=80 protocol=tcp to-addresses=192.168.10.1

Doel: doorzetten van TCP poort 80 naar 192.168.10.1 maar dit alleen toestaan vanaf een publiek IP adres in de address list VERTROUWD. In deze list zetten we ook meteen 2 IP adressen.

/ip firewall nat
add action=dst-nat chain=dstnat dst-port=80 protocol=tcp src-address-list=VERTROUWD to-addresses=192.168.10.1
/ip firewall address-list
add address=1.2.3.4 list=VERTROUWD
add address=2.3.4.5 list=VERTROUWD

(TIP: het bewerken van de address list gaat veel eenvoudiger vanuit de grafische interface)

Doel: doorzetten van TCP poort 81 naar 192.168.10.1 poort 5858 (het externe poort nummer is dus anders dan het interne nummer)

/ip firewall nat
add action=dst-nat chain=dstnat dst-port=81 protocol=tcp to-addresses=192.168.10.1 to-ports=5858