Solaris 10 Firewall

Minden informatikai környezetben illik, hogy legyen valamilyen tűzfal szolgáltatás. Olyan hálózati service, amely szabályok alapvetően szabályok szerint tilt vagy engedélyez bizonyos hálózati kapcsolatokat. Nagyobb céges környezetekre, ezt centralizálva, a hálózati struktúrába integrálva, külön tűzfalakkal oldják meg, míg kisebb költségvetésű helyeken a futtató rendszer saját tűzfalával.

Természetesen a Solaris 10 is rendelkezik integrált tűzfallal. Fontos tudni, hogy más rendszerekkel szemben, alaphelyzetben ez nincs aktiválva. Így ezt nekünk kell megtennünk.

Solaris alatt az IPF (IP Filter) lesz az ami a tűzfalért felel. A Solaris 10 és IPF előtt régebbi rendszerekben a SunScreen Lite vagy a EFS volt az alapértelmezett fűzfal. (Az IPF amugy a BSDish operációs rendszerből származik.)

IPF Beállítása

Az első és legfontosabb file ilyen szempontból a /etc/ipf/ipf.conf

Ide kell bevezetni a szükséges tiltó vagy engedélyező szabályokat. Nézzünk először a legegyszerűbbet. Tiltsunk mindent a hálózati interfece-n.

# vi /etc/ipf/ipf.conf
block in on e1000g2 all
block out on e1000g2 all

IPF aktiválása

Ezek után be kell töltenünk a szabályokat az IPF-be. Ezt a következő paranccsal tehetjük:

# ipf -Fa -f /etc/ipf/ipf.conf
# ipfstat -hio

Itt a -Fa kapcsoló először törli azon szabályokat amik előtte létezhettek, majd a -f után lévő file-ból betölti az újakat. Ezek után a ipfstat lesz a segítségünkre, mindig ellenőrizni milyen aktív szabályok vannak, illetve mennyi csomag lett arra a szabályra alkalmazva.

Tehát most minden kimenő és bejövő kapcsolatot tiltottunk. Próbáljunk meg pingelni egy másik masináról a 10.0.0.1-es IP-t és nézzök mi történik.

10.0.0.2 # ping -s 10.0.0.1
10.0.0.1 # ipfstat -hio

Majd ezek után kapcsolgassuk ki-be a tűzfalszabályokat:

10.0.0.2 # ping -s 10.0.0.1

Törlés

10.0.0.1 # ipfstat -Fa  

Aktiválás

10.0.0.1 # ipfstat -Fa -f /etc/ipf/ipf.conf  

Törlés

10.0.0.1 # ipfstat -Fa   

Aktiválás

10.0.0.1 # ipfstat -Fa -f /etc/ipf/ipf.conf   

Törlés

10.0.0.1 # ipfstat -Fa 

IPF finomhangolás

Bár nem szükséges, de több interface esetén engedélyezhetjük, vagy tilthatjuk egyes interface típusokra a tűzfal alkalmazását.

# cat /etc/ipf/pfil.ap

# IP Filter pfil autopush setup
#
# See the autopush(1M) manpage for more information.
#
# Format of the entries in this file is:
#
# major  minor lastminor modules
	
#iprb   -1      0       pfil
#elxl   -1      0       pfil
#e1000g -1      0       pfil
bge     -1      0       pfil
#nf     -1      0       pfil
#fa     -1      0       pfil
#ci     -1      0       pfil
#el     -1      0       pfil
#ipdptp -1      0       pfil
#lane   -1      0       pfil
#dnet   -1      0       pfil
#pcelx  -1      0       pfil
#spwr   -1      0       pfil

Tehát ebben a file-ban található bejegyzéseket kell módosítanunk. Ahonnan kivesszük a kommentet, ott aktív lesz a firewall.

IPF bonyolultabb példa

Értelem szerűen miután tiltottunk mindent, már csak engedélyezgetnünk kell mindazt amit viszont akarunk, hogy működjön.
Bár nem kellene, mégis van jelentősége a bejegyzések sorrendiségének. Amennyiben a mindent blokkoló szabályokat felül hagyjuk, sose fog semmit engedélyezni, hiába lentebb megtalálható a szabály.

# cat /etc/ipf/ipf.config
pass in log quick on e1000g2 proto tcp/udp from any to any
pass out log quick on e1000g2 proto tcp/udp from any to any
block in on e1000g2 all
block out on e1000g2 all

Most próbálva a pingelés nem fog menni, cserébe az összes tcp/udp kapcsolat igen. Én a lenti képen pingelés után egy ssh kapcsolatot próbáltam.

Na de akkor nézzünk egy reális példát:

# Teszt IPF szabaly gyujtemeny
# MiszterX - 2010.03.23
#
# Engedelyezzuk a forgalmat a loopback-en
pass in quick on lo0 all
pass out quick on lo0 all
#
# Engedelyezzuk a pingelest kifele.
pass out quick on e100g2 proto icmp all keep state
#
# Teszteleshez engedelyezzuk bizonyos IP-krol a pingelest is
pass in quick on e1000g2 proto icmp from 10.0.1.11/32 to 10.0.1.0/24
pass in quick on e1000g2 proto icmp from 10.0.1.12/32 to 10.0.1.0/24
#
# Engedelyezzuk a kimeno kapcsolatokat a mar kiepult kapcsolatok szamara.
pass out quick on e1000g2 proto tcp/udp from any to any keep state
#
# Engedelyezzuk az ssh kapcsolatokat a megadott halozatokbol 
pass in log quick on e1000g2 proto tcp from 10.0.1.11/32 to 10.0.0.1/32 port = 22
pass in log quick on e1000g2 proto tcp from 10.0.1.12/32 to 10.0.0.1/32 port = 22
pass in log quick on e1000g2 proto tcp from 10.2.1.0/24 to 10.0.0.1/32 port = 22
#
# Blokkoljunk minden csomagot, ami tul rovid, hogy igazi legyen azt dobja el es logolja
block in log all with ipopts
# Nyilvános halozat. Amit ezelott nem engedelyeztunk, az blokkolodjon.
block in  on e1000g2 all
block out on e1000g2 all

IPF fontosabb parancsok

# ipf -E

ipfilter engedélyezése először szükséges csupán. Tru64-es rendszereknél feltétlenül szükséges.

# ipf -f /etc/ipf/ipf.conf

Szabályok betöltése már működő tűzfalba a /etc/ipf/ipf.conf file-ból.

# ipf -Fa -f /etc/ipf/ipf.conf  

Aktív szabályok törlése majd a újratöltése a /etc/ipf/ipf.conf file-ból.

# ipf -Fi

Minden bejövő szabály törlése

# ipf -I -f /etc/ipf/ipf.conf

Szabályok betöltése az inaktív tűzfalba a /etc/ipf/ipf.conf file-ból.

# ipf -V 

A verzió és alap információk lekérése az ipfilterről

# ipf -s

Kapcsolgatás aktív és inaktív állapot között

# ipfstat

Részletes statisztika lekérése

# ipfstat -i

Bejövő szabályok lekérése

# ipfstat -o

Kimenő szabályok lekérése

# ipfstat -hio

Kimenő, bejövő szabályok és számlálók lekérése

# vipfstat -t -T 5

Az állapottábla lekérése 5 másodperces frissítéssel. Hasonló mint a ‘top’.

# ipmon -s S

Állapottábla megtekintése

# ipmon -sn 

Állapottábla syslogba íratása, és a hostnevek, service nevek visszakonvertálásával.

# ipmon -s [file]

Az állapottábla file-ba íratása

# ipmon -Ds

Az ipmon háttérbe futó daemonként futtatása. Ilyenkor a /var/adm/message file-ba fog automatikusan logolni.

IPF további lehetőségek

A bemutatott lehetőségek által gyakorlatilag egy teljes értékű tűzfalat lehet építeni a Solaris 10-ből. Talán a managelése kicsit fapados a sima file alapú tárolásával, és parancssoros utasítások által. Ettől függetlenül hasznos, bár extra és speciális szűrési lehetőségei nem érnek fel egy Linux alapú iptables firewall-al.

Solaris 10 Firewall” bejegyzéshez egy hozzászólás

  1. Jó, hogy ezek a csomagszűrő megoldások elérhetőek Solaris-on is. Legutóbb épp egy AIX-es gépen merült fel, hogy csak egy portot kellene beengedni a gépre és akkor szó jött, hogy szoftveresen oldjuk meg a dolgot.
    Úgyhogy tényleg lehet létjogosultsága Solaris-on is. Az azonban tény, hogy egy vállalati tűzfalat nem Solaris alapokon oldanék meg.

Vélemény, hozzászólás?

Az e-mail címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük