MikroTik RouterOS
Sissejuhatus
MikroTik http://www.mikrotik.com/ ... Käesolev tekst on koostatud tuginedes peamiselt 'hAP ac' seadme kasutusele.
Tööpõhimõte
Osutub, et tavalist Mikrotik seadet saab käivitada erinevates režiimides
- L2 hardware switch
- L2 software switch (trunk pordid, mode access režiimis füüsilised pordid)
- L3 ip ruuter
Väited
- 'Quick set' sektsiooni abil saab seadme kiiresti käima ühe või teise populaarsele kasutusjuhule vastavalt, seejuures taustal tehakse üksikasjalikumad seadistused automaatselt (nt master porti ja slave port seosed, paketifilter)
- liikudes 'Quick set' režiimist nö omakäelisse kasutusse maksab üle vaadata muu hulgas paketifiltri seadistused
- mikrotik seadme seadistamisel saab töötada safe või non-safe režiimis
- mikrotik dhcp klient funktsionaalsuse välja lülitamine
- ip aadressi seadistamisel winbox utiliidiga esiatakse aadress koos maskiga, nt '192.168.10.77/24', seejärel network kujul '192.168.10.0'
Mikrotik seadistamisel on kasutada muu hulgas sellised objektid
- füüsilised võrguliidesed (ether1, ether2 ... ether5)
- osa füüsilisi võrguliideseid on PoE võimelised (PoE kliendina või PoE serverina)
- virtuaalsed vlan võrguliidesed (nt füüsilise liidese koosseisus)
- bridge võrguliidesed (mille abil saab moodustada nö tavalise vlan võrgu mikrotik sisse (kuhu saavad kuuluda vlan võrguliidesed ja füüsilised võrguliidesed)
Kasutamine KVM virtuaalse arvutina
Käivitada https://mikrotik.com/download/archive .iso tõmmiselt ja logida sisse kasutajana admin, kellel parooli pole. Seejärel öelda
setup
ning seadistada ühele võrguliidesele ip aadress.
MikroTik seadme võrgu seadistamine
MikroTik Winbox haldusliideses toimub võrgu seadistamine, st tema enda võrguliideste seadistamine + staatiliste ruutingute kirjeldamine avades
Interfaces -> ... IP -> Addresses ...
Käsurealt saab küsida selliselt
[admin@MikroTik] > ip route print Flags: X - disabled, A - active, D - dynamic, C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme, B - blackhole, U - unreachable, P - prohibit # DST-ADDRESS PREF-SRC GATEWAY DISTANCE 0 A S ;;; added by setup 0.0.0.0/0 192.168.10.254 1 1 ADC 192.168.1.0/24 192.168.1.13 ether2 0 2 ADC 192.168.1.12/32 192.168.1.12 ether2 0 3 ADC 192.168.10.0/24 192.168.10.13 ether1 0
Paketifiltri seadistamine
Firewall tööpõhimõte
TODO
FILTER kasutamine
TODO
DST-NAT kasutamine
Paketifiltri seadistamine toimub avades Winbox programmis, nagu Linuxi puhul mõjutavad pakettide liikumist läbi võrgusõlme filter (nn iptables FILTER tabel)
IP -> Firewall -> Filter Rules
aadresside teisendus (nn iptables NAT tabel)
IP -> Firewall -> NAT
Olgu kasutusel selline võrgulahendus
internet ..... ... 10.80.99.210 __|__ | | | |------------- kasutajad |_____| 10.0.0.1 | | ----|-------------|--- serverid | | __|__ 10.0.0.2 | | |_____|
kus avalik aadressi port 80 on suunatud 10.0.0.2 sisemises võrgus töötavale veebiserverile sellise NAT reegliga
IP -> Firewall -> NAT Rule
ning
General -> Chain - dstnat General -> Dst. Address - 10.80.99.210 General -> Protocol - tcp General -> Port 80 Action -> Action - dst-nat Action -> To Addresses - 10.0.0.2 Action -> To Ports -> 80
Lisaks peab olema sobib Filter reegel
IP -> Firewall -> Filter Rules
ning (tasub täpsustada)
General -> Chain - forward Action -> Action - accept
SRC-NAT kasutamine
TODO
DST-NAT ja SRC-NAT kombineeritud kasutamine
Selleks, et samast võrgust kus töötavad teenused, välisele aadressile tehtud pöördumised töötaksid, on vajalik sarnane src-nat reegel
IP -> Firewall -> NAT Rule
ning
General -> Chain - srcnat General -> Src Address - 10.0.0.0/24 General -> Dst Address - 10.0.0.0/24 General -> Out Interface -> DMZ Action -> Action - src-nat Action -> To Address -10.0.0.1
Kui selline reegel puudub, siis toimub järgmine
- veebiserver 10.0.0.2 saadab syn paketi aadressil 10.80.99.210 port 80 (ja ootab vastust aadressilt 10.80.99.210)
- tulemüüri dstnat suunab syn paketi aadressile 10.0.0.2 port 80, selle paketi src aadress on endine, 10.0.0.2
- veebiserverisse vastab kohale jõudnud syn paketile vatuseks syn-ack paketi ja saadab selle aadressil 10.0.0.2 (nii nagu syn paketi src ütleb)
- veebiserver 10.0.0.2 saab ootamatult syn-ack paketi ja ignoreerib seda (kuna ta ootab syn-ack paketti aadressilt 10.80.99.210)
Toodud täiendav reegel lahendab selle probleemi selliselt
- veebiserver 10.0.0.2 saadab syn paketi aadressil 10.80.99.210 port 80 (ja ootab vastust aadressilt 10.80.99.210)
- tulemüüri dstnat suunab syn paketi aadressile 10.0.0.2 port 80, selle paketi src aadress on endine, 10.0.0.2
- enne tulemüürist väljumist kirjutab srcnat reegel src 10.0.0.0/24 aadressiga ja dst 10.0.0.0/24 aadressiga paketi src aadressiks tulemüüri vastava võrguseadme aadressi, 10.0.0.1
- veebiserverisse vastab kohale jõudnud syn paketile vatuseks syn-ack paketi ja saadab selle aadressil 10.0.0.1 (nii nagu syn paketi src ütleb)
- tulemüür võtab syn-ack paketi vastu, teisendab tema src aadressi 10.80.99.210 aadressiks ja saadab vastuseks 10.0.0.2 käesti tulnud esialgsele syn paketile
- veebiserver 10.0.0.2 saab ootatud syn-ack paketi aadressilt 10.80.99.210
CLI kasutamine
[admin@MikroTik] > ip arp print Flags: X - disabled, I - invalid, H - DHCP, D - dynamic, P - published # ADDRESS MAC-ADDRESS INTERFACE 0 D 192.168.10.30 00:04:23:BD:17:D9 ether1 1 D 192.168.10.10 00:16:3E:79:03:03 ether1 2 D 192.168.1.4 70:01:68:00:10:04 ether2
mikrotik ip seadistused ja ruutingud
[admin@MikroTik] > /ip address print Flags: X - disabled, I - invalid, D - dynamic # ADDRESS NETWORK INTERFACE 0 192.168.10.77/24 192.168.10.0 bridge-vlan10 [admin@MikroTik] > /ip route print Flags: X - disabled, A - active, D - dynamic, C - connect, S - static, r - rip, b - bgp, o - ospf, m - mme, B - blackhole, U - unreachable, P - prohibit # DST-ADDRESS PREF-SRC GATEWAY DISTANCE 0 A S 0.0.0.0/0 192.168.10.254 1 1 ADC 192.168.10.0/24 192.168.10.77 bridge-vlan10 0
ip aadressi lisamine
[admin@MikroTik] > /ip address add address=192.168.10.77/24 interface=bridge-vlan10
ip aadressi eemaldamine, nimekirjas kasutatud jrk numbri abil
[admin@MikroTik] > /ip address remove 2
ethernet liideste nimekiri
[admin@MikroTik] > /interface ethernet print Flags: X - disabled, R - running, S - slave # NAME MTU MAC-ADDRESS ARP MASTER-PORT SWITCH 0 RS ether1 1500 64:D1:54:A7:CC:92 enabled none switch1 1 ether2 1500 64:D1:54:A7:CC:93 enabled none switch1 2 RS ether3 1500 64:D1:54:A7:CC:94 enabled none switch1 3 R ether4 1500 64:D1:54:A7:CC:95 enabled none switch1 4 ether5 1500 64:D1:54:A7:CC:96 enabled none switch1 ...
bridge portide olukord
[admin@MikroTik] > /interface bridge port print Flags: X - disabled, I - inactive, D - dynamic # INTERFACE BRIDGE PRIORITY PATH-COST HORIZON ... 3 ether3 bridge-vlan20 0x80 10 none 4 ether4-vlan20 bridge-vlan20 0x80 10 none 5 ether4-vlan10 bridge-vlan10 0x80 10 none 6 ether1 bridge-vlan10 0x80 10 none
füüsiliste switchide nimekiri (tavaliselt üks või kaks)
[admin@MikroTik] > /interface ethernet switch print Flags: I - invalid # NAME TYPE MIRROR-SOURCE MIRROR-TARGET SWITCH-ALL-PORTS 0 switch1 QCA-8337 none none
Paketifilter
[admin@MikroTik] > ip firewall nat add chain=srcnat src-address=192.168.10.10 action=src-nat to-addresses=192.168.1.4
VLAN kasutamine
Kõige tavalisemal viisil füüsilisele ethernet seadmele vlan sildiga liikluse õpetamiseks sobib öelda
/interface vlan add name=vlan10 vlan-id=10 interface=ether1 disabled=no /ip address add address=10.1.2.3/24 interface=vlan10
Kasulikud lisamaterjalid
Link aggregation kasutamine
Riistvaralise switch kasutamine
MirkoTik seadme koosseisu kuulub tavaliselt nö suhteliselt juhitav switch, http://wiki.mikrotik.com/wiki/Manual:Switch_Chip_Features. Tundub, et switch kasutamine on jäigem, kuid jõudluse mõttes parem.
Tarkvaralise switch kasutamine
MikroTik RouterOS tarkvara abil saab kasutada nö tarkvaralist switchi, mis sarnaneb Linuxi bridge'le, http://wiki.mikrotik.com/wiki/Manual:Interface/Bridge. Tundub, et bridge kasutamine on üldiselt paindlikum. Kui tarkvaralise bridge komponentidena kasutada vlan seadmeid ning soovitakse switch üle mõne sellise komponendi hallata, siis tuleb ip aadress omistada mitte brige seadmele (nagu tavaliselt Linuxi puhul), vaid haldusarvuti poolsele vlan komponent seadmele (on see ikka tingimata nii?).
Pildil kujutatakse tarkvaralise switchi seadistust
kus
- kahe füüsilise seadme ether3 ja ether4 peale kummalegi on tekitatud kaks vlan liidest
- mikrotik peal on kirjelatud kaks tarkvaralist bridge seadet
- vlan liidesed on seostatud bridgedega
- ip seadistused puuduvad
- tulemusena käitub mikrotik nagu hallatav switch millel on kaks nn trunk mode porti kust liiguvad läbi vlan siltidega paketid
Switch kasutamisel
- kontrollida üle paketifilter
- ruutingud
- füüsiliste portide master-slave seosed (parem nad eemaldada)
Debugimine
/tool sniffer quick
Võrguliikluse jälgimine seadmes, näha on milliste võrguliideste kaudu pakett liikus millises suunas (DI tulba nool vasakule tähendab paketi liiklumist seadmesse sisse; nool paremale liikumist välja)
[imre@MikroTik] > tool sniffer [imre@MikroTik] /tool sniffer> quick ip-address=10.0.0.2 ip-protocol=icmp INTERFACE TIME NUM DI SRC-MAC DST-MAC VLAN SRC-ADDRESS DST-ADDRESS PROTOCOL SIZE CPU ether1... 20.667 31 <- 10.168.43.166 10.0.0.2 ip:icmp 60 21 VLAN_DMZ 20.667 32 -> 10.168.43.166 10.0.0.2 ip:icmp 60 21 LAN_bo... 20.667 33 -> 129.0.0.10 10.168.43.166 ip:icmp 64 21 ether2... 20.667 34 -> 129.0.0.10 10.168.43.166 ip:icmp 64 21 VLAN_DMZ 20.668 35 <- 10.0.0.2 10.168.43.166 ip:icmp 60 14
kus
- TODO
Märkused
- quick ip-address=10.204.62.115 port=53
pakettide metaandmete logimine
TODO
mactelnet kasutamine
Seadmete nimekiri
root@imreo-lap:~# mactelnet -l Searching for MikroTik routers... Abort with CTRL+C. IP MAC-Address Identity (platform version hardware) uptime 192.168.10.77 64:d1:54:a7:cc:92 MikroTik (MikroTik 6.40.8 (bugfix) RB962UiGS-5HacT2HnT) up 41 days 22 hours TKN4-90IG bridge-vlan10
Märkused
- winbox haldusliidese port - 8291/tcp
Varundamine
- Avada Terminal ja öelda (vajadusel hide-sensitive lisada)
export file=mt-20190829 hide-sensitive
- Salvestada töökohaarvutisse (kus winbox töötab), avada Files
Parem klõps failinimel -> Download
Tarkvara uuendamine
System -> Routerboard -> Upgrade
System -> Packages -> ... (nt current haru kasutades)
L2TP over IPSec kasutamine
TODO
Kasulikud lisamaterjalid
IPSec kasutamine
TODO
Kasulikud lisamaterjalid
Mikrotik IPSec IKEv2 server ja Windows 10 töökohaarvuti kasutamine
Tööpõhimõte
Väited
- mikrotik peale on moodustatud CA
- CA suhtes antakse välja serveri sert ja klienditele igale oma sertifikaat
- kliendi autentimise õnnestuminseks peab ta esitama serverile sama CA poolt väljastatud sertifikaadi, mille poolt on väljastatud serveri sertifikaat
- vpn ühendus ei ole mitte kasutaja ja vpn serveri, aga töökohaarvuti ja vpn serveri vahel
Mikrotik seadistamine - sertifikaadid
Sertifikaatide moodustamiseks sobib öelda
[su@MikroTik] > /certificate [su@MikroTik] /certificate> add common-name=ca.moraal.ee name=ca.moraal.ee days-valid=3700 [su@MikroTik] /certificate> sign ca.moraal.ee ca-crl-host=ca.moraal.ee [su@MikroTik] /certificate> add common-name=kt.moraal.ee subject-alt-name=DNS:kt.moraal.ee key-usage=tls-server name=kt.moraal.ee days-valid=3680 [su@MikroTik] /certificate> sign kt.moraal.ee ca=ca.moraal.ee [su@MikroTik] /certificate> add common-name=rw-eve.moraal.ee name=rw-eve.moraal.ee key-usage=tls-client days-valid=3650 [su@MikroTik] /certificate> sign rw-eve.moraal.ee ca=ca.moraal.ee [su@MikroTik] /certificate> export-certificate rw-eve.moraal.ee export-passphrase=parool type=pkcs12 [su@MikroTik] /certificate> export-certificate ca.moraal.ee type=pem
Sertifikaatide mikrotik seadmest välja kopeerimiseks
ssh admin@192.168.10.78 "ls /" scp admin@192.168.10.78:/cert_export_rw-eve.moraal.ee.p12 . ...
Sertifikaatide kustutamine tundub on võimalik vaid kõik korraga, selleks sobib öelda (nt uue sertide komplekti tegemiseks)
- muuta ajutiselt ipsec identiy ära mingi non-digital-certificate väärtusele
- revokeda kõik sertifikaadid System -> Certificates all
- kustutada kõik sertifikaadid korraga
- tekitada sertfikaadid uuesti
- muuta ipsec identity juures tagasi digital-auth peale
Mikrotik seadistamine - ipsec
[su@MikroTik] > /ip ipsec profile [su@MikroTik] > add name=ike2 [su@MikroTik] > /ip ipsec proposal [su@MikroTik] > add name=ike2 pfs-group=none [su@MikroTik] > /ip pool [su@MikroTik] > add name=ike2-pool ranges=192.168.47.2-192.168.47.254 [su@MikroTik] > /ip ipsec mode-config [su@MikroTik] > add address-pool=ike2-pool address-prefix-length=32 name=ike2-conf [su@MikroTik] > /ip ipsec policy group [su@MikroTik] > add name=ike2-policies [su@MikroTik] > /ip ipsec policy [su@MikroTik] > add dst-address=192.168.47.0/24 group=ike2-policies proposal=ike2 src-address=0.0.0.0/0 template=yes [su@MikroTik] > /ip ipsec peer [su@MikroTik] > add exchange-mode=ike2 name=ike2 passive=yes profile=ike2 [su@MikroTik] > /ip ipsec identity [su@MikroTik] > add auth-method=digital-signature certificate=kt.moraal.ee generate-policy=port-strict mode-config=ike2-conf peer=ike2 policy-template-group=ike2-policies
Kliendi seadistamine
Väited
- win 10 peale piisab ainult .p12 failist
- win 7 peale tuleb mmc abil laadida ca fail ja p12 fail - https://wiki.strongswan.org/projects/strongswan/wiki/Win7Certs
- arvutis saab olla üks machine cert st kui on vaja uut kasutada, tuleb eelmine mmc abil eemaldada
- klient töötab nat tagant; mitu klienti töötab sama nat tagant (erinevalt l2tp-over-ipsec juhtumist)
Kasulikud lisamaterjalid
Tugevama krüpto seadistamine
Käesolev punkt tutvustab kuidas muidu töötava lahenduse saab viia kasutama 2019 aasta seisuga nö viisakat krüptot.
mikrotik ja vpn-... utiliidi seadistuste vastavused
- mikrotik phase 1 - ipsec profile -> hash algorithms sha256 - integritycheckmethod sha256
- mikrotik phase 1 - ipsec profile -> encryption algorithms aes-256 - encryptionmethod aes256
- mikrotik phase 1 - ipsec profile -> dhgroup modp2048 - dhgroup group14
- mikrotik (phase 2) ipsec proposal -> auth algorithms sha256 - tõenäoliselt authenticationtransformconstants sha256128
- mikrotik (phase 2) - ipsec proposal -> encr algorithms aes-256 cbc - ciphertransformconstants aes256
- mikrotik (phase 2) - ipsec proposal -> pfs group ecp384 - pfsgroup ecp384 - tundub et see väärtus ei pruugi klappida ja ikka töötab; juhendid soovitavad jätta none peale
Windows 10 powershell käsud, tulemus on näha ka GUI liideses, aga sealt seda ei saa seadistada (kustutada saab)
PS C:\Users\imre> Add-VpnConnection -Name "moraal-imre-ps" -ServerAddress "kt.moraal.ee" -TunnelType IKEv2 -AuthenticationMethod MachineCertificate PS C:\Users\imre> Set-VpnConnectionIPsecConfiguration -ConnectionName "moraal-imre-ps" -AuthenticationTransformConstants SHA256128 \ -CipherTransformConstants AES256 -EncryptionMethod AES256 -IntegrityCheckMethod SHA256 \ -PfsGroup none -DHGroup Group14 -PassThru -Force AuthenticationTransformConstants : SHA256128 CipherTransformConstants : AES256 DHGroup : Group14 IntegrityCheckMethod : SHA256 PfsGroup : None EncryptionMethod : AES256
Kasulikud lisamaterjalid
- https://docs.microsoft.com/en-us/powershell/module/vpnclient/set-vpnconnectionipsecconfiguration?view=win10-ps
- https://www.stevenjordan.net/2016/09/secure-ikev2-win-10.html
- https://forum.mikrotik.com/viewtopic.php?f=21&t=139057&p=713274&hilit=set+vpnconnectionipsecconfiguration#p713274
IKEv1 site-to-site VPN Mikrotik ja OpenBSD
Mikrotik
Väited
- phase 1 on profile
- phase 2 on proposal
/ip ipsec profile add dh-group=modp2048 enc-algorithm=aes-256 name=ike1-site2 /ip ipsec proposal add enc-algorithms=aes-256-cbc name=ike1-site2 pfs-group=modp2048 /ip ipsec peer add address=10.204.62.116/32 name=ike1-site2 profile=ike1-site2 /ip ipsec identity add peer=ike1-site2 secret=pskparool /ip ipsec policy add src-address=10.2.2.0/24 src-port=any dst-address=192.168.10.0/24 dst-port=any tunnel=yes action=encrypt proposal=ike1-site2 peer=ike1-site2 /ip firewall nat add chain=srcnat action=accept place-before=0 src-address=10.2.2.0/24 dst-address=192.168.10.0/24
OpenBSD
# cat /etc/ipsec.conf ike active from 192.168.10.0/24 to 10.2.2.0/24 local 10.204.62.116 peer 10.219.83.242 \ main auth hmac-sha2-256 enc aes-256 group modp2048 lifetime 86400 \ quick auth hmac-sha2-256 enc aes-256 group modp2048 lifetime 3600 \ psk "pskparool"
Käivitamiseks
# isakmpd -vdK # ipsecctl -f /etc/ipsec.conf
Kasulikud lisamaterjalid
IKEv2 site-to-site VPN Mikrotik ja OpenBSD
TODO
Mikrotik lähtestamine
Mikrotik lähtestamiseks sobib
- eemaldada võrgukaablid ja toitekaabel
- ühendada toide ja nii 0.3 sekundit hiljem hakata all hoidma reset nuppu
- hoida all nii umbes 5 sekundit, piisab kui üks kahest nupu kõrval olevast rohelisest indikaator tulest hakkab vilkuma
- vabastada reset nupp
- seade hakkab käivituma
- nii mõne minuti pärast on ta näha winbox peal üle nn mac põhise ühenduse
- saab sisse logida admin kasutaja ja tühja parooliga
- küsitakse, kas default konfi kasutada või kustutada
- kustutada
- seade reboodib
- seadista ip aadress nt ether5 seadmele
- seadistada parool
Wifi seadistamine
TODO
/ip firewall nat add chain=srcnat action=masquerade src-address=192.168.133.0/24 log=no log-prefix=""
Kasulikud lisamaterjalid
Capsman - üks vlan
Väited
- 5+ sekundi resetiga st hoides reset nuppu all kuni led hakkab peale vilkumist põlema ja siis vabastada toimub caps režiimis kliendiks minek
- vaikimisi saab caps režiimis klienti logida sisse üle ssh ja üle wifi winboxiga
CAP seadistamise tegevused
- TODO
Kasulikud lisamaterjalid
Capsman - üks vlan
Kasulikud lisamaterjalid
Port-mirror ja netflow lüüs
TODO
/interface bridge add name=bridge1 [admin@MikroTik] > /interface bridge port [admin@MikroTik] > add bridge=bridge1 interface=ether2 hw=yes [admin@MikroTik] > add bridge=bridge1 interface=ether3 hw=yes [admin@MikroTik] > /ip traffic-flow [admin@MikroTik] > set enable=yes [admin@MikroTik] > /ip traffic-flow target [admin@MikroTik] > add dst-address=192.168.10.189 port=2055 version=9 [admin@MikroTik] > /interface ethernet switch [admin@MikroTik] > set switch1 mirror-source=ether3 mirror-target=ether4