2011-02-05

IPSec site-to-site VPN Cisco és Fortigate eszközökkel

A korábbi Cisco-Cisco majd Cisco-Vyatta felállás után jöjjön most ismét ugyanaz, ám Cisco-Fortinet variációban. A teszteszköz egy Fortigate 60-as, még a régebbi, 3-as FortiOS-szel, de ugyanezek a CLI parancsok használhatók a legfrissebb 4-es verziójú FortiOS-ekben is. A korábbi topológia változatlan:


Az IPSec beállításokat összegző táblázat szintén változatlan, a Cisco-Cisco posztban megtalálható. A vyattás felállással ellentétben a FortiOS parancsokat nem próbálom megfeleltetni az IOS-es parancsoknak, alapvető szemléletbeli különbségek vannak a Fortigate tűzfalak és a Cisco routerek közt, túl sok lenne a különbség, így az IOS-t futtató R1 eszköz beállításai itt nem is szerepelnek, pontról pontra ugyanazt a konfigurációt használtam, amit korábban is.

A korábbi versenyzőkkel ellentétben a Fortigate viszonylag terjedelmes gyári beállításokkal érkezik, NAT/route üzemmódban (ez az alapértelmezett) a következő IP-k vannak a fizikai interfészeken beállítva:
  • Internal: 192.168.1.99
  • WAN1: 192.168.100.99
  • WAN2: 192.168.101.99
  • DMZ: 10.10.10.1
Az alapértelmezett user/jelszó páros: admin/nincs jelszó, ha nem tudjuk a jelszót, állítsuk vissza az eszközt a gyári beállításokra. A bejelentkezés után kezdhetünk az interfészekkel, a WAN1 porton lesz a WAN kapcsolatunk (10.1.1.0/24), az internalon pedig a belső háló (10.3.3.0/24), a többit le lehet lőni:
config system interface
    edit "internal"
        set ip 10.3.3.1 255.255.255.0
    next
    edit "dmz"
        set status down
    next
    edit "wan1"
        set ip 10.1.1.2 255.255.255.0
    next
    edit "wan2"
        set status down
end
A következő lépés a Phase1 adatok megadása, minden további beállítás esetén az itt létrehozott néven (TESZT-PH1) tudunk erre a VPN kapcsolatra hivatkozni.
config vpn ipsec phase1-interface
    edit "TESZT-PH1"
        set interface "wan1"
        set proposal aes256-sha1
        set keylife 28800
        set remote-gw 10.1.1.1
        set psksecret TITOK
end
Szükségünk lesz természetesen Phase2 beállításokra is, amelyek a már létrehozott Phase1 beállításokra fognak épülni:
config vpn ipsec phase2-interface
    edit "TESZT-PH2"
        set pfs enable
        set phase1name "TESZT-PH1"
        set proposal aes128-md5
        set dst-subnet 10.2.2.0 255.255.255.0
        set keylifeseconds 3600
        set src-subnet 10.3.3.0 255.255.255.0
end
Ezzel maga az IPSec konfiguráció ugyan készen van, de ne feledjük, hogy a Fortigate-ek alapvetően UTM eszközök, magától szinte semmi sem működik, ha csak nem kreálunk hozzá tűzfalszabályokat. Mielőtt azonban ténylegesen a tűzfal policy-khez nyúlnánk, definiálnunk kell a subneteket, amelyekkel dolgozgatni szeretnénk a későbbiekben:
config firewall address
    edit "R2-belso-subnet"
        set associated-interface "internal"
        set subnet 10.3.3.0 255.255.255.0
    next
    edit "R1-belso-subnet"
        set associated-interface "TESZT-PH1"
        set subnet 10.2.2.0 255.255.255.0
end
Miután készen vannak a subnetek, jöhet a tűzfal policy. Ha az alapértelmezett beállításról indulunk, akkor észrevehetjük, hogy egy szabály már létezik a tűzfalon, ami az R2 belső subnet hostjai számára hozzáférést engedélyez a WAN1 interfészen keresztül elérhető dolgokhoz. Ezt a szabályt megtarthatjuk, vagy akár törölhetjük, letilthatjuk (set status disable), attól függően, mire van épp szükségünk, ezért nem eggyel kezdődik a tűzfalszabályok számozása:
config firewall policy
    edit 2
        set srcintf "internal"
        set dstintf "TESZT-PH1"
        set srcaddr "
R2-belso-subnet"           
        set dstaddr "
R1-belso-subnet"           
        set action accept
        set schedule "always"
        set service "ANY"           
    next
    edit 3
        set srcintf "TESZT-PH1"
        set dstintf "internal"
        set srcaddr "
R1-belso-subnet"           
        set dstaddr "
R2-belso-subnet"           
        set action accept
        set schedule "always"
        set service "ANY"
end
A végére maradt a statikus route a távoli subnet felé:
config router static
    edit 1
        set device "TESZT-PH1"
        set dst 10.2.2.0 255.255.255.0
end

A FortiOS-ben külön nem szükséges menteni, amint kilépünk az end paranccsal valamilyen objektum konfigurációs módjából, a beállított értékeket a rendszer elmenti, illetve természetesen a futó konfigurációban érvényre juttatja.

A figyelmesebbeknek szemet szúrhat, hogy történt egy kis csalás ebben a Fortigate beállításban. A korábbiakban sehol sem használtam az IPSec-hez bármilyen módon köthető virtuális interfészt, VTI-t, loopback interfészt, a Cisco routeren és a Vyattán is egyszerű tunnel módban hoztam létre a kapcsolatot, nem hajtottuk át az adatokat semmilyen egyéb interfészen, csak azon, ahol kiléptek a routerből. A Fortigate esetén is elérhető ez a tunnel mód, policy-based VPN-nek hívják, config vpn ipsec phase1-interface helyett a config vpn ipsec phase1 paranccsal kell létrehozni. Phase2-ben szintén a megfelelő parancs interface nélküli változatát kell választanunk, majd egy tűzfalszabályt kell még hozzárendelnünk, ahol ACCEPT vagy DENY helyett az IPSEC műveletet kell a szabályban műveletként megadni (egy tunnelhez csak egy szabály tartozhat). Eddig egyébként még sosem sikerült értelmes módon beállítanom a policy-based VPN-t, például a távoli site-ról kezdeményezett forgalom során nem áll fel magától az IPSec kapcsolat, bármilyen tűzfal policy-vel is próbálkoztam, míg a Fortigate mögötti subnetből meginduló forgalom hatására mindig azonnal létrejött az IPSec összeköttetés.

A másik, a posztban részletesen is bemutatott módszerrel létrehozott, virtuális IPSec interfésszel operáló beállítást a Fortigate rendszerekben route-based VPN-nek nevezik. A virtuális interfész segítségével kezelhetőbbé válnak a IPSec-en keresztül kimenő vagy beérkező csomagok, átláthatóbbak a rájuk vonatkozó tűzfalszabályok, és mivel ekkor önálló interfészként jelenik meg az IPSec tunnel Fortigate-en lévő vége, bármennyi szabály vonatkozhat rá, kedvünk szerint finomhangolhatjuk.

Nincsenek megjegyzések:

Megjegyzés küldése