kleine asa

We beschrijven hier de configuratie van een kleine firewall die gebruikt wordt om een klein netwerk aan internet te hangen en een leverancier te kunnen laten 'inbellen' voor remote beheer. Een adsl router kan extern verkeer wel toelaten maar niet filteren op afzender en hij is niet zo robuust.
We plaatsen een cisco asa 5505 achter een adsl router. Dit betekent overigens ook configuratie van deze adsl router namelijk een inside nat rule voor de rdp poort. Een extra statische (inside) route is in dit voorbeeld niet nodig omdat we op de asa nogmaals natten. Deden we dit niet dan zou het inside netwerk van de asa niet bekend zijn bij de adsl router en het verkeer zou niet doorkomen.

interne interface

Bij de kleine asa moet een interface aan een vlan gekoppeld worden en de poort in een vlan geplaatst worden ipv dat direct interfaces geconfigureerd kunnen worden.
De inside interface geven we security level 100 mee wat het veiligst is. De outside interface wordt level 0 en een eventuele dmz krijgt een tussenliggende waarde mee afhankelijk van het risico. De asa hangt hier dan policies aan vast.


ASA5505(config)# interface Vlan 1
ASA5505(config-if)# nameif inside
ASA5505(config-if)# security-level 100
ASA5505(config-if)# ip address 192.168.1.1 255.255.255.0
ASA5505(config-if)# no shut
  

externe interface


ASA5505(config)# interface Vlan 2
ASA5505(config-if)# nameif outside
ASA5505(config-if)# security-level 0
ASA5505(config-if)# ip address 200.200.200.1 255.255.255.0
ASA5505(config-if)# no shut
  

koppelen van vlans aan interfaces

De inside interface hadden we op vlan 1 gedefinieerd en vlan 1 hangt automatisch aan een interface dus interface 0/1 hoeven we niet te koppelen. De outside interface hangen we aan vlan 2. Wel geven we een no shut op interface 0/1.


ASA5505(config)# interface Ethernet0/0
ASA5505(config-if)# switchport access vlan 2
ASA5505(config-if)# no shut
ASA5505(config)# interface Ethernet0/1
ASA5505(config-if)# no shut
  

NAT/PAT

We willen meestal natten op de outside interface. Dit betekent dat interne adressen niet naar buiten gaan, meestal gebruiken we private range adressen en die kun je toch niet via internet routeren. Vaak hebben we maar 1, of anders een paar, public adressen dus we natten al het verkeer naar 1 outside adres. Cisco spreekt dan over PAT, port adress translation, omdat de router het verkeer via verschillende poorten wegstuurd en een sessie tabel bijhoudt van welke interne machine een sessie was. Cisco spreekt van NAT, network address translation, als een reeks interne adressen genat wordt naar een even grote reeks outside adressen.
We geven op outside interface met een global aan dat verkeer via 1 adres naar buiten gaat. Op de interne interface geven we aan welke reeks ge(p/n)at wordt.
In onderstaand voorbeeld wordt alle verkeer genat maar we kunnen ook een deel van het interne netwerk gewoon routeren maar dan moeten die adressen wel public range zijn anders houdt het snel op.


ASA5505(config)# global (outside) 1 interface
ASA5505(config)# nat (inside) 1 0.0.0.0 0.0.0.0
  

default route

We hebben een default route nodig. Alle ip reeksen die de router niet herkent (aan ip adressen op direct aangesloten poorten) moet een default gateway hebben waar dit verkeer heen gestuurd wordt. Dit adres is het adres van de 'next hop' ofwel de volgende router.
Wanneer we intern meer routers en ip reeksen hebben dan moeten er ook inside routes opgegeven worden zodat verkeer van zo'n ip reeks dat naar buiten is geweest ook de weg terug kan vinden naar zijn bron. De tweede route is zo'n inside route waarbij het 192.168.1.100 adres het ip adres is van de volgende router.


ASA5505(config)# route outside 0.0.0.0 0.0.0.0 200.200.200.2 1
ASA5505(config)# route inside 192.168.25.0 255.255.255.0 192.168.1.100
  

verkeer van buiten naar binnen doorsturen

Soms willen we, heel beperkt, verkeer doorsturen naar een interne machine. In een grote omgeving zul je verkeer van buitenaf altijd via een broker in de dmz sturen die dan weer met een interne server communiceert. Mocht een server dan 'gepakt' worden dan kan de hacker nog niet veel omdat hij in een dmz (de-militarised zone) zit met zeer beperkte toegang tot het lan. Stond deze gepakte machine direct in het lan dan is de hacker 'binnen'.
In een kleine omgeving, passend bij deze asa, dan kan het wel gebeuren dat we een machine van buitenaf willen benaderen via bijvoorbeeld de rdp poort.
In onderstaand voorbeeld maken we een static aan die rdp verkeer, poort 3389, redirect naar de gewenste server.


static (inside,outside) tcp interface 3389 192.168.2.60 3389 netmask 255.255.255.255 0 0 
  

access-list

Om verder verkeer te beperken gebruiken we een access-list die bepaalt wat er door mag en wat niet.
In dit voorbeeld laten we rdp verkeer toe van buitenaf naar een bepaalde server. Dan moeten we vertrouwen op de goede beveiliging van die server want iedereen kan proberen daar dan in te komen via poort 3389. Vaak weten we best dat alleen bepaalde mensen deze aktie mogen doen dus kunnen we de toegang beperken tot die bepaalde bronnen door in een access list alleen toegang toe te laten vanaf bepaalde ip adressen.
De asa blokkeert standaard alle verkeer van buiten naar binnen. Dit gebeurt aan de hand van de eerder opgegeven security levels op de interfaces. Ook icmp (ping) antwoorden worden geblocked.
In onderstaand voorbeeld laten we rdp verkeer door vanaf een bepaalde ip reeks naar de server en we laten de icmp replies toe. We geven aan dat blokkeringen en rdp verkeer gelogd moet worden. Een cisco firewall zal, in tegenstelling tot een gewone router, altijd een deny ip any any aan het einde zetten maar omdat we de denies willen loggen is hij hier expliciet opgenomen.
tot slot hangen we de access list aan de outside interface en geven we aan dat hij geldt voor inkomend verkeer.
Uiteraard is het met access lists ook mogelijk om verkeer van binnen naar buiten te beperken. De access group hangt dan aan de interne interface en geldt voor inkomend.
Bij het maken van een access-list is er nog een ding belangrijk namelijk de opbouw van de diverse functies in de router. Access lists hangen aan de buiten rand van de router. De routering zit in de kern en de NAT/PAT zit daar tussen in.


access-list outside-in permit ip host 100.23.54.0 255.255.255.0 host 192.168.2.60 eq 3389 log
access-list outside-in permit icmp any any eq echo-reply
access-list outside-in deny ip any any log

interface vlan 2
  ip access-group outside-in in