Tag Archives: IPsec

Mikrotik VPN IPsec

U prethodnom tekstu smo obradili dva vpn tunela na drugom osi nivou koji nemaju enkripciju, sada ćemo se pozabaviti IPsec-om koji radi na trećem nivou i naravno podrazumeva enkripciju svakog paketa. IPsec možemo koristiti bez obzira na način implementacije fizičkog sloja mreže. U ovom članku ćemo obraditi IPsec site to site na dva Mikrotik rutera, sasvim normalno radi MT – Cisco, ali o tome neki drugi put.

Šema mreže na koju će se odnositi konfiguracija je na slici 1.0. Potrebno je postići IP povezanost na računarima PC1 i PC2 preko IPsec tunela koji se završava na R1 (rajco.me Čačak 1) i R2 (rajco.me Čačak 2) ruterima.

IPsec_blog

Pre većine podešavanja na Mikrotiku poželjno je uključiti logovanje koje nam dosta može pomoći pri eventualnom rešavanju problema. Sva podešavanja će biti data prvo preko Winbox-a a zatim i preko komandne linije.

image8

/system logging
add action=memory disabled=no prefix="" topics=ipsec

Kada smo podesili logovanje određene teme na oba mikrotika prelazimo na samo podešavanje IPsec-a. Prvo ćemo dodatai novu IPsec policy na kome imamo dve kartice, General i Action:

image26
 
/ip ipsec policy
add action=encrypt disabled=no dst-address=10.10.11.0/24 dst-port=any \
    ipsec-protocols=esp level=require priority=0 proposal=default \
    protocol=all sa-dst-address=1.1.1.2 sa-src-address=1.1.1.1 \
    src-address=10.10.10.0/24 src-port=any tunnel=yes

Pod karticom General potrebno je dodati source i destination IP opseg koji se koristi u lokalu. Podešavanja će biti ista na oba rutera osim što će podaci za source i destination biti zamenjeni. Na kartici Action je potrebno čekirati opciju Tunnel i postaviti jave IP adrese od oba rutera. Evo kako izgleda podešena polisa na prvom ruteru:

image27

Kada smo završili sa podešavanjem IPsec polisy prelazimo na dodavanje Peers:

image33

/ip ipsec peer
add address=1.1.1.2/32 auth-method=pre-shared-key dh-group=modp1024 \
    disabled=no dpd-interval=2m dpd-maximum-failures=5 enc-algorithm=\
    3des exchange-mode=main generate-policy=no hash-algorithm=md5 \
    lifebytes=0 lifetime=1d my-id-user-fqdn="" nat-traversal=no port=\
    500 proposal-check=obey secret=blog send-initial-contact=yes

U polje Address upisujemo javnu IP adresu drugog rutera (R2, rajco.me Čačak 2), a u polje Secret šifru koja će nam biti ista i na drugom ruteru. Ovde možemo birati metod enkripcije, hash algoritam koji štiti integritet podataka i garantuje autentičnost poruke, kao i Diffie-Hellman grupu koja određuje jačinu ključa koji se koristi u procesu izmene ključeva. Što je veći broj grupe duži je ključ, bezbednost je povećana, ali kao i vreme koje je potrebno da se ključ izračuna i upari.

Nakon ovoga je ostalo da podesimo i R2 sa istim parametrima, samo izmenjenim source i destination IP adresama.

image41

image44

/ip ipsec policy
add dst-address=10.10.10.0/24 sa-dst-address=1.1.1.1 sa-src-address=\
1.1.1.2 src-address=10.10.11.0/24 tunnel=yes

Napomena: Ukoliko primećujete razliku između komande za dodavanje polise na drugom ruteru u odnosu na prvi razlika je u tome što je korišćena compact komanda kod eksporta konfiguracije. Na Mikrotiku je dostupna od verzije 5.12 i omogućava dosta pregledniju konfiguraciju, odnosno daje samo promenjene parametre a ne sve kao što je slučaj bio do sada.

Ostalo je još da dodamo Peers na R2 i time bi osnovno podešavanje IPsec-a site to site na RouterOS-u bilo završeno.

image48

/ip ipsec peer
add address=1.1.1.1/32 secret=blog

Kao što možete videti na sledećoj slici iako je konfiguracija završena još uvek nema informacija o ključevima pod karticom Installed SAs, što znači da nema ni tunela. To se dešava jer još uvek ne postoji interesting traffic odnosno tunel se neće uspostavljati dok ne bude potrebe. Da bi simulirali saobraćaj možemo pingovati IP adresu na drugoj strani VPN-a preko interfejsa ether2.

image57

Prva dva paketa su odbačena dok se tunel nije uspostavio, a zatim ostali idu uspešno i na prvom ruteru možemo videti da je tunel uspostavljen. Ako uključimo log videćemo da je sve u redu na oba rutera:

image61

Takođe da je postojao neki problem mogli bi da vidimo u logovima o čemu se radi, jer smo na početku uključili logovanje IPsec-a.

Ukoliko bi na nekoj od strana imali više subneta jedino što je potrebno uraditi je dodati novu polisu za IPsec sa odgovarajućim lokalnim adresama, dok sve ostalo ostaje isto.

Mikrotik VPN (PPTP i L2TP)

Sve veća je potreba za VPN-om, odnosno Virtuelnim privatnim mrežama. VPN podrazumeva privatnu komunikacionu mrežu koja se koristi za komunikaciju u okviru javne mreže. Tunelovanje je najvažnija komponenta VPN-a i to je metod kojim se koristi infrastruktura jednog protokola za prenos podataka drugog protokola. Odlike VPN-a koje su bitne korisnicima su niska cena, laka implementacija i sigurnost a sve nam to omogućava Mikrotik, odnosno RouterOS.

U zavisnosti od potreba izabraćemo neki od sledećih načina za ostvarivanje VPN-a:

  • PPTP (Point-to-Point Tunel Protocol, dosta korišćen za povezivanje klijentskih uređaja, skoro svi operativni sistemi ga podržavaju, MS od Windows 95 verzije)
  • L2TP (Layer 2 Tunneling Protocol, sam po sebi ne obezbeđuje bezbednost već se oslanja na protokole za eknripciju)
  • IPsec (Može korisiti šifru ili certifikat za pojačanu bezbednost. Ide sam ili u kombinaciji sa nekim drugim tunelom)
  • IPIP (IP over IP, jednostavan protokol koji enkapsulira IP paket u IP, obično se koristi u kombinaciji sa IPsec-om)

Prva dva tunela se ostvaruju na drugom nivou OSI modela, dok je IPsec na trećem (Network Layer).

Podrazumevana podešavanja PPTP servera su:

/interface pptp-server server

set authentication=mschap1,mschap2 default-profile=default-encryption

enabled=no keepalive-timeout=30 max-mru=1460 max-mtu=1460 mrru=disabled

Da bi nam pptp radio potrebno je da ga uključimo sa komandom:

/interface pptp-server> server set enabled=yes 

Isto možemo uraditi i preko Winbox-a:

pptp01

Korisnike možete dodavati iz Winbox-a preko kartice Secrets ili komandom:

ppp_secrets

ppp secret add caller-id="" disabled=no limit-bytes-in=0 limit-bytes-out=0 \local-address=10.10.10.10 name=rajco password=blog profile=default-encryption \remote-address=10.10.10.20 routes="" service=pptp

Gde je name ime korinisnika kojeg kreirate, password  je šifra korisnika, profile služi da ne bi menjali ručno parametre za svaku grupu korisnika, local-address  je ip adresa na strani rutera i može biti ista za više korisnika, dok je remote-address  ip adresa koja će biti dodeljena korisniku. Ukoliko koristmo isti opseg za remote-address i adrese u lokalnoj mreži bitna napomena je da moramo uključiti proxy-arp na lokalnom interfejsu (ako je to interfejs ether2 komanda će izgledati):
 
interface ethernet set arp=proxy-arp ether2
proxy-arp
Za remote-address možemo koristi i IP pool i time smanjiti posao:
 
/ip pool
add name=dhcp_pool1 ranges=192.168.1.2-192.168.1.254
pptp_pool
Sa jednim korisničkim imenom podrazumevano može da se “kači” jedan korisnik, to možemo izmeniti:
 
ppp profile set default only-one=no

ppp-profile

Ukoliko imamo veći broj korisnika najbolje je njima upravljati sa RADIUS serverom (u nekom od narednih tekstova ću napisati uputstvo kako to uraditi sa domen kontrolerom na Windows Serveru 2008R2).
 
Slično ide i za L2TP, potrebno je uklučiti server:
 

interface l2tp-server server set enabled=yes

l2tp-server

Nakon toga kreiramo korisnika:

/ppp secret
add caller-id="" disabled=no limit-bytes-in=0 limit-bytes-out=0 \
local-address=10.20.30.1 name=rajco password=blog profile=default \
remote-address=10.20.30.2 routes="" service=l2tp

l2tp-user

Ukoliko koristimo na drugoj strani internet sa statičkom adresom onda je poželjno tu adresu upisati u polje Caller ID i time povećati stepen bezbednosti.

Evo podešavanja rutera na klijentskoj strani:

/interface l2tp-client
add add-default-route=no allow=pap,chap,mschap1,mschap2 connect-to=1.1.1.1 \
dial-on-demand=no disabled=no max-mru=1460 max-mtu=1460 mrru=disabled name=\
l2tp-out1 password=blog profile=default-encryption user=rajco

l2tp-client

Nakon toga je potrebno dodati statičku rutu koja kaže da sve što krene lokalnom opsegu drugog rutera ide na interface l2tp-rajco, odnosno na ip adresu 10.20.30.2 jer nekada može doći do problema ukoliko u padajućem meniju izaberete interface umesto da ukucate ip adresu. Podrazumeva se da isto ovo uradite na klijentskom ruteru samo što će ip adresa biti 10.20.30.1

/ip route
add disabled=no distance=1 dst-address=192.168.2.0/24 gateway=10.20.30.2 \
scope=30 target-scope=10

ip-route

Nakon toga će vam raditi VPN i računari će biti vidljivi između sebe. Ovo je jedan od najjednostavnijih načina da povežete dve lokacije a kasnije ga možete unapređivati.