pingvin2.jpg

IPv6 kapcsolatok tiltása

Írta: Torig on . Beküldve: Linuxos dolgok

Véded a szerveredet a külső támadásoktól? Hát persze. Készítettél egy jó kis Iptables tűzfalat? Minden bizonnyal. Akkor már minden rendben van igaz? Biztos? Nem biztos! Ugyanis lehet, hogy nem gondoltál az IPv6 kapcsolatokra. Ez a cikk azoknak szól, akik nem ismerik az IPv6 tűzfalat. Red Hat 6 és Ubuntu 12.04 LTS szerverekről lesz most szó.
Ha elkészültél az Iptables tűzfaladdal és kényelmesen hátradőltél, akkor most jól figyelj ide! Ez a cikk nem arról szól, hogy, hogy hogyan tudsz tűzfalat építeni. inkább fel szeretném hívni a figyelmedet, hogy létezik egy másik protokoll is IPv6 néven.
 
Az tűzfalad Iptadbles szabályait az iptables -vL paranccsal bármikor megnézeted. Erre nem is vesztegetnék több szót. Ha vannak szabályaid és megfelelően véded a gépedet, akkor elvileg már minden rendben lenne. Mi van akkor, ha a szervered hálózati interfésze IPv6 kompatibilis és a hálózatod is támogatja az IPv6 szabványt? Mi van akkor, ha az Internet szolgáltatód is támogatja az IPv6 szabványt és IPv6 címet és elérést is biztosít a szervered felé?
Hát akkor gond van. Ugyanis a Linux rendszerekben az IPv4 és IPv6 tűzfal működése egymástól teljesen független. Add ki az alábbi parancsot az aktuális tűzfal szabályaid listázásához!
 
iptables -vL
 
A parancs futtatásának eredményeképpen láthatod, a tűzfal szabályaidat. Eddig rendben is volnánk.
 
Most add ki azt alábbi parancsot az IPv6 tűzfal szabályainak listázásához!
 
ip6tables -vL
 
Ha az alábbihoz hasonlót látsz, akkor az már problémás lehet.
 
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Mit látunk? Azt, hogy létezik IPv6 tűzfal és az alapértelmezett szabályok szerint minden irányból, minden láncon az alapértelmezett policy ACCEPT, tehát engedélyezett. Ez nem  jó, mert ha a szolgáltatód biztosít IPv6 szolgáltatást, akkor a szervereden hiába véded a szolgáltatásaidat IPv4 szabályokkal. Hiába zártad le a támadási lehetőségeket, mert a szolgáltatásaidat azokat IPv6-al simán el lehet érni bármilyen irányból. Hogy megfelelően védjed a szervered muszáj a meglévő mellé egy külön IPv6 tűzfalat is készíteni, aminek segítségével szabályozhatod az IPv6 kommunikációt. A legalapvetőbb védelem mindössze annyi, hogy letiltod az IPv6 kommunikációt az összes láncon.
 

Megoldás Red Hat 6 szerveren

 Az IPv6 tűzfal szabályokat a /etc/sysconfig/ip6tables fájlba hozd létre. A fájl nem létezik, ezért a létrehozásához használd kedvenc szövegszerkesztődet!
 
vim /etc/sysconfig/ip6tables
A fájl tartalma a következő legyen. Ez a pár sor tiltja az Input a Forward és az Output láncon a forgalmakat.
 
#IIPV6 beállítások
*filter
:INPUT DROP
:FORWARD DROP
:OUTPUT DROP
COMMIT
A fájlra add meg a megfelelő jogosultságokat!
 
chmod 600 /etc/sysconfig/ip6tables
Léptesd életbe a tűzfal szabályokat!
 
service ip6tables restart

Add ki az alábbi parancsot az IPv6 szabályaid ellenőrzéséhez.

 
ip6tables -vL
Láthatod, hogy minden láncon DROP lett az alapértelmezett policy. Ezzel be is zártad a szerver külső IPv6 elérésének lehetőségét.
 
Chain INPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
 

Megoldás Ubuntu 12.04 LTS szerveren

 
A Red Hat megoldáshoz képest van némi eltérés. A különbség mindössze annyi, hogy az IPv6 tűzfal szabályait a  /etc/network/ip6firewall fájlba hoznám létre ugyanazzal a tartalommal mint amit fentebb láthatsz, majd a /etc/network/interfaces fájlban a Loopback interfészhez hozzáfűzném az alábbi sort ami az interfész indulásakor betölti a tűzfal konfigurációját.
auto lo
iface lo inet loopback
up ip6tables-restore /etc/network/ip6firewall

A tűzfalat a hálózat újraindításával lehet aktiválni.

/etc/init.d/networking restart

Ezután már az Ubuntu szervereden is van IPv6 tűzfal. Remélem azt is észrevetted, hogy a fenti lépésekkel valójában egy vadiúj IPv6 tűzfalat hoztál létre. Most, hogy már van IPv6 tűzfalad, lehetőséged van a tűzfal fájlba egyedi szabályokat is konfigurálni hasonlóan ahhoz, mintha IPv4 szabályokat használnál.