ASA Tűzfal Konfigurálása

Alapkonfigurálás és Rendszerbeállítások

ASA> enable ! Belépés engedélyezett módba
ASA# configure terminal
ASA# clock set 10:00:00 1 april 2016 ! Pontos idő
ASA(config)# help parancs ! Súgó
ASA(config)# hostname ASAA ! Eszköznév
ASA(config)# enable password class ! Titkos jelszó
! Jelszó titkosítás (8.3+): először a mesterkulcsot kell megadni, majd engedélyezni
ASA(config)# key config-key password-encrypt MySecretKey ! Mesterkulcs megadása
ASA(config)# password encryption aes ! AES jelszótitkosítás engedélyezése – JAVÍTVA: kiegészítve a mesterkulccsal
ASA(config)# domain-name teszt.hu
ASA(config)# banner motd DANGER ! Nap üzenete

Interfészek és VLAN-ok

Az ASA 5505-ön a fizikai portok (Ethernet0/0–0/7) switch portok. Az IP-címet és a nameif-et mindig a VLAN interfészre kell megadni, nem a fizikai portra. A security level határozza meg az alapértelmezett forgalomirányítást: magasabb szintről az alacsonyabb felé a forgalom alapból engedélyezett, fordítva nem.

! --- Fizikai port hozzárendelése VLAN-hoz (ASA 5505) ---
ASA(config)# interface e0/0
ASA(config-if)# switchport access vlan 2
ASA(config-if)# no shutdown ! Fizikai port aktiválása

ASA(config)# interface e0/1
ASA(config-if)# switchport access vlan 1 ! inside port
ASA(config-if)# no shutdown

ASA(config)# interface e0/2
ASA(config-if)# switchport access vlan 10 ! DMZ port
ASA(config-if)# no shutdown

! --- VLAN interfészek konfigurálása ---
ASA(config)# interface vlan 1
ASA(config-if)# nameif inside
ASA(config-if)# security-level 100 ! Legmegbízhatóbb (inside = 100)
ASA(config-if)# ip address 192.168.1.1 255.255.255.0
ASA(config-if)# no shutdown

ASA(config)# interface vlan 2
ASA(config-if)# nameif outside
ASA(config-if)# security-level 0 ! Legkevésbé megbízható (outside = 0)
ASA(config-if)# ip address 200.0.0.2 255.255.255.0
ASA(config-if)# ip address dhcp setroute ! VAGY dinamikus IP alapértelmezett úttal
ASA(config-if)# no shutdown

ASA(config)# interface vlan 10
ASA(config-if)# nameif dmz
ASA(config-if)# security-level 50 ! Közepes bizalmi szint (DMZ = 50)
ASA(config-if)# ip address 172.16.1.1 255.255.255.0
ASA(config-if)# no shutdown

! --- Trunk port (ha menedzselhető kapcsoló csatlakozik az ASA-hoz) ---
ASA(config)# interface e0/6
ASA(config-if)# switchport trunk allowed vlan 1,10,20
ASA(config-if)# switchport mode trunk
ASA(config-if)# no shutdown

! --- Subinterface (ASA 5510/5520 GigabitEthernet modelleken) ---
ASA(config)# interface GigabitEthernet0/0.10
ASA(config-subif)# vlan 10
ASA(config-subif)# nameif dmz
ASA(config-subif)# security-level 50
ASA(config-subif)# ip address 172.16.1.1 255.255.255.0
ASA(config-subif)# no shutdown

! --- Statikus útvonalak ---
ASA(config)# route outside 0.0.0.0 0.0.0.0 200.0.0.1 ! Alapértelmezett útvonal
ASA(config)# route inside 192.168.1.0 255.255.255.0 10.0.0.254 ! Statikus belső útvonal

! --- Ellenőrzés ---
ASA# show interface ip brief ! Interfészek és IP-ek
ASA# show switch vlan ! VLAN–port hozzárendelések
ASA# show ip route ! Útválasztó tábla

Hálózati szolgáltatások

! DHCP Szerver beállítása
ASA(config)# dhcpd address 10.0.0.1-10.0.0.20 inside
ASA(config)# dhcpd lease 1800
ASA(config)# dhcpd dns 8.8.8.8
ASA(config)# dhcpd enable inside

! NTP beállítása
ASA(config)# ntp authenticate
ASA(config)# ntp trusted-key 89
ASA(config)# ntp authentication-key 89 md5 cisco123
ASA(config)# ntp server 10.0.0.2

! HTTP (ASDM) engedélyezése
ASA(config)# http server enable
ASA(config)# http 192.168.1.0 255.255.255.0 inside

! Tűzfal szabály (ICMP ellenőrzés/inspect engedélyezése)
! FONTOS: a policy-t a 'service-policy global_policy global' paranccsal kell aktiválni!
ASA(config)# policy-map global_policy
ASA(config-pmap)# class inspection_default
ASA(config-pmap-c)# inspect icmp
ASA(config)# service-policy global_policy global ! JAVÍTVA: hiányzó aktiváló sor pótolva

Távoli elérés (Telnet, SSH)

! Telnet
ASA(config)# password cisco
ASA(config)# telnet 192.168.1.22 255.255.255.255 inside
ASA(config)# telnet timeout 3
ASA(config)# aaa authentication telnet console LOCAL
ASA(config)# clear configure telnet ! Beállítások törlése

! SSH
ASA(config)# username admin password admin
ASA(config)# aaa authentication ssh console LOCAL
ASA(config)# crypto key gen rsa modulus 1024
ASA(config)# ssh 192.168.1.22 255.255.255.255 inside
ASA(config)# ssh version 2

Objektumok és Csoportok

! Hálózati objektumok (IP, Alhálózat, Tartomány)
ASA(config)# object network EXAMPLE
ASA(config-network-object)# host 10.0.0.2
ASA(config-network-object)# subnet 10.0.0.0 255.0.0.0
ASA(config-network-object)# range 10.0.0.10 10.0.0.20

! Szolgáltatás objektum
ASA(config)# object service SERV
ASA(config-service-object)# service tcp destination eq www

! Objektum csoportok
ASA(config)# object-group network HOSTS
ASA(config-network-object-group)# network-object host 10.0.0.20
ASA(config-network-object-group)# network-object 10.0.0.0 255.0.0.0
ASA(config-network-object-group)# group-object ADMIN_HST

Hozzáférési listák (ACL)

! ACL létrehozása
ASA(config)# access-list NÉV remark megjegyzés
ASA(config)# access-list NÉV extended permit | deny protokoll forrás_cím portszám cél_cím portszám

! ACL objektumokkal
ASA(config)# access-list NÉV extended permit | deny protokoll object-group prot_obj object-group forras_obj object-group cel_obj

! ACL alkalmazása interfészre
ASA(config-if)# access-group NÉV in | out interface outside

Címfordítás (NAT, PAT)

! --- Dinamikus NAT (IP-készletből fordít) ---
ASA(config)# object network NAT
ASA(config-network-object)# subnet 10.0.0.0 255.0.0.0
ASA(config-network-object)# nat (inside, outside) dynamic PUBLIC_CIMTART_OBJEKTUM

! --- PAT (Port túlterhelés – sok belső gép egy külső IP-vel) ---
ASA(config)# object network PAT
ASA(config-network-object)# subnet 10.0.0.0 255.0.0.0
ASA(config-network-object)# nat (inside, outside) dynamic interface ! outside IP-t használja

! --- Statikus NAT (1:1 leképezés, pl. DMZ szerver kívülről elérhető) ---
ASA(config)# object network SNAT
ASA(config-network-object)# host 10.0.0.2
ASA(config-network-object)# nat (dmz, outside) static 100.0.0.1

! --- Static NAT adott portra (porttovábbítás) ---
ASA(config)# object network WEBSZERVER-PORT
ASA(config-network-object)# host 172.16.1.10
ASA(config-network-object)# nat (dmz, outside) static 100.0.0.1 service tcp www www

! --- NAT ellenőrzése ---
ASA# show nat ! NAT szabályok listája
ASA# show nat detail ! Részletes NAT info
ASA# show xlate ! Aktív fordítási tábla
ASA# show conn ! Aktív kapcsolatok

NAT Exemption (VPN-hez)

VPN-kapcsolatnál a titkosított forgalmat ki kell venni a NAT alól, különben az ASA lefordítja a csomagokat, mielőtt a VPN alagútba kerülnének – és a kapcsolat nem épül fel.

! Objektumok definiálása
ASA(config)# object network LOCAL-NET
ASA(config-network-object)# subnet 192.168.1.0 255.255.255.0
ASA(config)# object network REMOTE-NET
ASA(config-network-object)# subnet 10.10.10.0 255.255.255.0

! NAT Exemption szabály – ez biztosítja, hogy a VPN forgalom ne legyen NAT-olva
ASA(config)# nat (inside,outside) source static LOCAL-NET LOCAL-NET destination static REMOTE-NET REMOTE-NET

! Ellenőrzés
ASA# show nat detail ! A 'no-proxy-arp' és 'route-lookup' sorok jelzik, hogy helyes

Site-to-Site VPN (IPsec)

A VPN titkosított alagutat hoz létre két telephely között. Két fázisból áll: az 1. fázis (ISAKMP/IKE) a menedzsment-alagút, a 2. fázis az adatalagút.

! --- 1. Fázis: ISAKMP Policy ---
ASA(config)# crypto isakmp enable outside ! IKE engedélyezése az outside interface-en
ASA(config)# crypto isakmp policy 10
ASA(config-isakmp-policy)# authentication pre-share ! Előre megosztott kulcs
ASA(config-isakmp-policy)# encryption aes-256
ASA(config-isakmp-policy)# hash sha
ASA(config-isakmp-policy)# group 5 ! Diffie-Hellman csoport
ASA(config-isakmp-policy)# lifetime 86400 ! 24 óra

! Tunnel-group (peer IP és pre-shared key)
ASA(config)# tunnel-group 203.0.113.200 type ipsec-l2l ! L2L = LAN-to-LAN
ASA(config)# tunnel-group 203.0.113.200 ipsec-attributes
ASA(config-tunnel-ipsec)# pre-shared-key VPNKulcs123 ! Mindkét végponton ugyanez!

! --- 2. Fázis: Transform Set és Crypto Map ---
ASA(config)# crypto ipsec transform-set MYSET esp-aes-256 esp-sha-hmac
ASA(cfg-crypto-trans)# mode tunnel

! ACL a titkosítandó forgalomhoz (NAT exemption-nel egyezzen meg!)
ASA(config)# access-list VPN-ACL extended permit ip 192.168.1.0 255.255.255.0 10.10.10.0 255.255.255.0

ASA(config)# crypto map MYMAP 10 match address VPN-ACL
ASA(config)# crypto map MYMAP 10 set peer 203.0.113.200 ! Távololdali ASA IP-je
ASA(config)# crypto map MYMAP 10 set transform-set MYSET
ASA(config)# crypto map MYMAP interface outside ! Alkalmazás az outside-ra

! --- VPN ellenőrzés ---
ASA# show crypto isakmp sa ! 1. fázis állapot – MM_ACTIVE = OK
ASA# show crypto ipsec sa ! 2. fázis, titkosított csomagok száma
ASA# show crypto map ! Crypto map beállítások

DMZ konfiguráció

A DMZ (Demilitarizált Zóna) egy köztes biztonsági zóna nyilvánosan elérhető szervereknek (webszerver, DNS, email). Security level-je általában 50 – az outside (0) felé ACL kell, az inside (100) felé való forgalom alapból tiltott.

! DMZ interface beállítása (lásd VLAN szekció)
! Security level logika: higher → lower: szabad | lower → higher: tiltott (ACL kell)

! Kívülről DMZ webszerverre (HTTP/HTTPS) – ACL szükséges!
ASA(config)# access-list OUT-TO-DMZ extended permit tcp any host 172.16.1.10 eq 80
ASA(config)# access-list OUT-TO-DMZ extended permit tcp any host 172.16.1.10 eq 443
ASA(config)# access-group OUT-TO-DMZ in interface outside

! DMZ-ből belső hálózat elérésének explicit tiltása
ASA(config)# access-list DMZ-TO-IN extended deny ip 172.16.1.0 255.255.255.0 192.168.1.0 255.255.255.0
ASA(config)# access-list DMZ-TO-IN extended permit ip any any
ASA(config)# access-group DMZ-TO-IN in interface dmz

! Static NAT – DMZ webszerver legyen elérhető kívülről
ASA(config)# object network DMZ-WEB
ASA(config-network-object)# host 172.16.1.10
ASA(config-network-object)# nat (dmz, outside) static 203.0.113.10

Forgalom-ellenőrzés (Inspect / Policy-map)

Az inspect parancsok lehetővé teszik, hogy az ASA megértse az egyes protokollokat (pl. ICMP, FTP, DNS), és a visszirányú forgalmat automatikusan engedélyezze – anélkül, hogy külön ACL kellene hozzá.

! --- Alap inspect policy (ICMP, DNS, FTP, HTTP) ---
ASA(config)# policy-map global_policy
ASA(config-pmap)# class inspection_default
ASA(config-pmap-c)# inspect icmp ! ICMP (ping) válasz automatikusan engedélyezve
ASA(config-pmap-c)# inspect dns ! DNS lekérdezések és válaszok
ASA(config-pmap-c)# inspect ftp ! FTP aktív és passzív mód
ASA(config-pmap-c)# inspect http ! HTTP protokoll ellenőrzése
ASA(config-pmap-c)# inspect tftp
ASA(config-pmap-c)# inspect esmtp ! Email (SMTP)

! Policy alkalmazása globálisan (kötelező, különben nem lép életbe!)
ASA(config)# service-policy global_policy global

! Ellenőrzés
ASA# show service-policy ! Aktív policy-k és csomagszámlálók
ASA# show service-policy inspect dns ! Adott inspect részletei

AAA és Felügyelet

! --- AAA szerver (TACACS+/RADIUS) ---
ASA(config)# aaa-server NÉV protocol tacacs+
ASA(config-aaa-server-group)# aaa-server NÉV (dmz) host 10.0.0.2
ASA(config)# aaa authentication enable console NÉV LOCAL
ASA(config)# aaa authentication http console NÉV LOCAL

! --- Syslog (naplózás külső szerverre) ---
ASA(config)# logging enable
ASA(config)# logging host inside 192.168.1.200 ! Syslog szerver IP-je
ASA(config)# logging trap informational ! Naplózási szint (0=emerg … 7=debug)
ASA(config)# logging buffered debugging ! Puffer naplózás helyben

! --- SNMP ---
ASA(config)# snmp-server community kozosseg ro ! Read-only közösségi string
ASA(config)# snmp-server location Gepterem
ASA(config)# snmp-server contact admin@iskola.hu
ASA(config)# snmp-server host inside 192.168.1.200 version 2c kozosseg

! --- Ellenőrző parancsok ---
ASA# show interface ip brief
ASA# show route
ASA# show switch vlan
ASA# show xlate
ASA# show nat detail
ASA# show conn count ! Aktív kapcsolatok száma
ASA# show traffic ! Forgalmi statisztikák
ASA# show run aaa
ASA# show logging ! Naplóbejegyzések
ASA# show version ! ASA verzió, licensz info

! --- Mentés és törlés ---
ASA# write ! Konfiguráció mentése (= copy run start)
ASA# write erase ! Konfiguráció törlése
ASA# copy running-config tftp: ! Mentés TFTP szerverre
ASA# copy tftp: running-config ! Visszatöltés TFTP-ről

Hibaelhárítás és Debug

A packet-tracer parancs szimulál egy csomagot, és lépésről lépésre megmutatja, mi történik vele az ASA-n belül – ez az egyik leghasznosabb hibaelhárítási eszköz.

! --- Packet Tracer (szimulált csomagkövetés) ---
ASA# packet-tracer input inside tcp 192.168.1.100 1234 8.8.8.8 80
! Szintaxis: packet-tracer input <interface> <protokoll> <forrás-IP> <forrás-port> <cél-IP> <cél-port>
ASA# packet-tracer input outside tcp 203.0.113.5 80 172.16.1.10 80 ! Kívülről DMZ-be

! --- ICMP debug ---
ASA# debug icmp trace ! ICMP forgalom nyomon követése

! --- VPN debug ---
ASA# debug crypto isakmp ! 1. fázis hibakeresés
ASA# debug crypto ipsec ! 2. fázis hibakeresés

! --- NAT debug ---
ASA# debug ip nat ! NAT fordítások nyomon követése

! --- Debug leállítása ---
ASA# undebug all ! FONTOS: éles rendszeren mindig állítsd le!
ASA# no debug all ! Ugyanaz

! --- Gyors hibaelhárítási útmutató ---
! Nincs internet:      → show nat, show ip route, interface állapot
! ACL nem engedélyez:  → show access-list (találatszám), access-group iránya
! VPN nem épül fel:    → show crypto isakmp sa (MM_ACTIVE kell), pre-shared key egyezés
! SSH nem működik:     → crypto key generate rsa, aaa authentication LOCAL
! Static NAT hibás:    → show nat detail, outside ACL engedi-e a forgalmat