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.
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.