Solaris 8 alap konfigurálása


v1.0 Vasárnap Április 7 15:45:31 2001

Írta: Micskó Gábor [trey trey@debian.szintezis.hu ]


Ez a dokumentum leírja, hogyan állítsunk be egy Solaris 8 rendszer alapkonfigurációt






Tartalom:


1.0 A biztonság alapjai
  
   1.1  Lokális biztonság
   1.2  Jelszavak
   1.3  Vírusok
  
1.4  Permissziók (engedélyek)
   1.5  Puffer Túlcsordulások (Buffer overruns)
   1.6  Hálózati biztonság
  
1.7  DoS, DDoS (denial of service, distributed denial of service)
   1.8  Man in the Middle
  
1.9  IP spoofing

 

2.0 Eszközök


   2.1 Helyi (local) eszközök
   2.2 Tripwire
   2.3 Hálózati eszközök
  
2.4 TCP wrapper-ek   
   2.5 Összefoglalás


3.0 Solaris 8 konfiguráció   

   3.1 Install
   3.2 Post-Install
   3.3 a TCP/IP beállítása
   3.4 DNS konfiguráció
   3.5 Firewall Install
  

 

4.0 Kapcsolódó Link -ek

 


 

1.0 A biztonság alapjai


   Miután sikeresen feltelepítettük az OS-t, neki kell állnunk beállítani azt. Mint minden operációs rendszer, a Solaris is egy alap (default) beállítással települ fel a gépünkre. Ezekkel a beállításokkal a rendszer sok esetben már működőképes, de nem nagyon felel meg egy korszerű UN*X szerverrel szemben támasztott biztonsági elvárásoknak (az alapbeállítások azért vannak, hogy legyen mit módosítani).
     Solaris 8 egy robosztus, biztonságos OS, de mint minden az életben, ez sem tökéletes. Akik azt hiszik, hogy a saját szerverük 100%-ban védve van minden támadással szemben, azok tévednek, és hamis biztonságérzetük van. Egy rendszer biztonságát nem lehet tökéletesre beállítani, hiszen ha mindent engedünk, akkor könnyen áldozatok lehetünk, ha pedig mindent tiltunk, akkor egy szerver elveszti elsődleges funkcióját, azt hogy rajta service-ek fussanak, és kiszolgálja a hozzá érkező kéréseket. Ha azt akarjuk, hogy hozzánk biztos ne törjenek be gonosz cracker-ek, akkor húzzuk ki a gépünk LAN csatlakozóját, és kapcsoljuk ki.
    Ehelyett én az javaslom, próbáljuk megkeresni a középutat a jól funkcionáló, de még a biztonságra maximálisan törekvő konfiguráció létrehozásával.
   

 

1.1 Lokális biztonság
   
     Ha adataidat biztonságban szeretnéd tudni, akkor a lokális biztonság felépítésével kell kezdened a munkát. A rendszer elleni támadások ~60-70%-át a lokális támadások teszik ki, ezért fontos, hogy ügyeljünk erre. Ha egy fontos szervert üzemeltetsz, szorítsd minimálisra a lokális felhasználók számát. Ezzel nagymértékben csökkenthető a kockázata annak, hogy valaki lokális 'root exploit '-tal támadja a géped.

 

1.2 Jelszavak

     A Solaris egy multiuser operációs rendszer, és ez nemcsak a felhasználó adminisztrációra vonatkozik, hanem a teljes authentikációs mechanizmusra is. Az elsődleges szabály, hogy minden felhasználónak, aki a gépen létezik, password-del kell rendelkeznie. A jelszavak kiválasztása fokozott körültekintéssel történjék: tartalmazzon betű-, szám-, írásjel kombinációt, minimum 8 karakter hosszú legyen (a minimális password hossza, amit a rendszer elfogad beállítható). A superuser (root) jelszó kiválasztása a legfontosabb, hiszen ő az, aki korlátlan ura a rendszernek, aki bármit megtehet. Az ő jelszava lehetőleg NE'root'  legyen.
   
     Ha a gépünk olyan helyen van, hogy más is hozzáférhet célszerű lelassítani az adathozzáférést (megakadályozni úgyse lehet). Használjunk BIOS password-öt. Tiltsuk le a floppy, CD boot lehetőségeket.

Mint rendszeradminisztrátor, használjuk a John the Ripper nevű programot, hogy biztosak legyünk abban, hogy a felhasználóink nem használnak 'insecure' jelszavakat.

 

1.3 Vírusok

     Vannak olyan esetek, amikor tartanunk kell vírusfertőzésektől. Maga a Solaris, mint a többi UN*X rendszer a mai napig immunis az ismert vírusokkal szemben (mostanában már hallani életképes LiNUX/UN*X, stb. vírusokról, amelyek veszélyt jelenthetnek). Amik igazi veszélyt jelenthetnek, azok az ún. macrovirus-ok. Ezek a vírusok a Microsoft Office dokumentumokat támadják meg, és ezeket a mi szerverünk is szállíthatja elektronikus levélben. Ha a szerverünk mailszerverként is üzemel, erre figyelnünk kell. Vannak olyan 'Mail User Agent'-ek amelyek automatikusan scan-elik az e-mail-eket.

 

1.4 Permissziók (engedélyek)

     Az összes felhasználó lehetőleg a legkevesebb engedéllyel rendelkezzen. Mi magunk, ha csak tehetjük, a napi munka során ne dolgozzunk 'root'-ként. Senkinek ne adjuk ki a 'root' jelszót. Lehetőleg gyakran változtassuk meg. Ha valamihez szükség van 'superuser' jogokra használjuk a 'su' parancsot. Hasznos dolog a 'sudo' is, éljünk vele.

 

1.5 Puffer Túlcsordulások (Buffer overruns)

     A puffer túlcsordítása az egyik legkedveltebb eljárása a cracker-eknek arra, hogy 'root' jogot szerezzenek a gépünkön. Jól ismert még az ún. 'stack smashing vulnerabilities' (nem tudom jól lefordítani), ezek az exploitok felülírják a statikus bejegyzéseket a program 'user stack'-jében olyan értékkel, ami a parancsot végrehajtva egy shellt kapunk (ez lehet akár root shell, de lehet más user shellje is). Ez azoknál a programoknál lehetséges, amelyek rendelkeznek 'static array dimensions'-al vagy nem lettek leellenőrizve puffer túlcsordulás szempontjából.
     Csak azok a programok sebezhetők, így amelyeken a SUID bitbe van állítva. Ezek a programok a futásuk idejére a tulajdonos jogaival futnak. Nyilván, ha a tulajdonos a 'root' azaz a superuser, és erre a programra létezik buffer overflow exploit, akkor bajban vagyunk, mert Cracker Harry máris 'root'-ként garázdálkodik a gépünkön. Ilyen program, pl. a passwd, SUID bit be van rajta állítva (szükségszerű, hogy a felhasználó meg tudja változtatni a jelszavát, ahhoz pedig írni kell tudnia a /etc/password (shadow) file-t ezt normális esetben nem tudja, ezért kell a SUID bit a passwd-re). Ezért azon kell lennünk, hogy csak a legszükségesebb programokon legyen a SUID bit beállítva. Ha egy ilyen új bug-ot felfedeznek, arról rendszerint információt kaphatunk a jól ismert security mail listáról: BugTraq  vagy newsgroup októl pl: comp.security.announce.  Az X Window System (XFree86) hírhedt a bug-okról.

 

Alapszabály: szerveren NE futtassunk X-et.


1.6 Hálózati biztonság

    A szerverek azért szerverek, mert hozzájuk kliensek kapcsolódnak. A server valamilyen hálózaton működik. Ez lehet lokális hálózat (LAN - Local Area Network), vagy távoli hálózat (WAN - Wide Area Network), mostanában éli fénykorát egy másik típus (ami nem új találmány) a VPN (Virtual Privat Network), és végül  a legnagyobb hálózat az INTERNET.
     A Solaris kimondottan hálózati operációs rendszer, az INTERNET -re fejlesztve. Ahogy a SUN mondja a Solaris a "." a ".com" -ban. Egy Solaris server -t használhatunk: http, mail, ftp, router, firewall, proxy, gateway és még ezer funkcióra. Mint ilyen server nagyon sok támadásnak lehet kitéve a HÁLÓZAT felől. Ezek ellen a támadások ellen védekezhetünk egy védelmi rendszer felépítésével, egy firewall (tűzfal) felállításával. Egy átlagos rendszert naponta 30 percenként ér támadás. A támadásfajtája is sokféle lehet, nézzük a leggyakoribbakat.

 

1.7 DDOS (distributed denial of service)

     A DDOS támadás lényege, hogy a támadó megbénítsa a serverünk működését. Ezt elérheti úgy, hogy a gépünket nagy mennyiségű adathalmazzal (vagy hálózati kéréssel) bombázza (flood). A támadás után a gépünk nem lesz elérhető, és ezzel a támadó elérte a célját. Legtöbb esetben a DDOS -t kombinálják az IP spoofing -al. A támadó több gépről a mi IP -nkel ping -el  (ICMP echo request) nagy hálózat broadcast -jét. Az eredmény az, hogy a nagy hálózat összes gépe válaszol a  ping kérésre (ICMP echo reply) és a válasza mi gépünkre özönlik. A gépünk sávja lassan betelik, majd teljesen elfogy. Tipikus jelenség, hogy az áldozatgép erőforrásai lassan elfogynak, a service -k leállnak és rossz esetben a kernel is 'elszáll'.
Sok hozzáértő szerint a DDOS ellen nem lehet védekezni, a támadó személyét szinte lehetetlen kideríteni. Ha egy program DOS -al támadható (pl. a BIND 8.xx szériájából elég sok), és ezt felfedezik, annak javítása órákon belül elérhető az INTERNET -en. Az adminisztrátor feladata, hogy naprakész-információkkal, és patch -ekkel rendelkezzen.

 

1.8 Man in the Middle


      "Man in the Middle" támadásnak akkor lehetünk áldozatai, ha olyan hálózaton dolgozunk, ami több host -on keresztül van route -olva. A támadó megszerzi az irányítást az egyik route -en, és megfelelő program segítségével az immár rajta keresztül haladóforgalmat ellenőrizheti. Képes a 'sniffelni' az IP csomagokat, eltéríteni azokat, vagy teljesen kicserélni. Azokon a router -eken amelyek nem kérnek authentikációt ez nagyon egyszerű. Az új standard, IPv6 -os protokoll, már fel van készítve ez ellen.

     Az egyetlen védelmet ez ellen, valamilyen criptografikus (titkosító) eszköz jelenthet. Soha ne használj telnet -t, rsh -t, mert ezek a jelszavakat titkosítás nélkül küldik (vannak kivételek). Ez azt jelenti, hogy egy átlagos cracker ezeket 'ellopva' el tudja olvasni őket. Ehelyett használj SSH-t (Secure SHell - http://www.openssh.com/). Email -jeidet titkosítsd pgp -vel. Ha a WEB oldalad tartalmát akarod titkosítani (pl. banki, e-commers, stb. oldalt üzemeltetsz), titkosítsd SSL (Secure Socket Layer - http://www.openssl.org/ ) protokoll segítségével.

 

1.9 IP spoofing

     Az IP spoofing a TCP/IP (IPv4) protokoll hibáját használja ki, ami nem ellenőrzi a visszatérő címet. Ez a cím így módosítható a támadó által. vagyis a támadó spoof -olva az én IP -met, a nevemben működhet (lásd. DDOS). Ezért fontos, hogy a router -ek jól legyenek konfigurálva, nem csak a saját router -ek. Ehhez az is kell, hogy az ISP -k is jól konfigurálják a router -eiket. Csak azokat a csomagokat route -oljuk a belső hálózat felé, amelyek külső címeket tartalmaznak, és csak azokat a csomagokat route -oljuk kifelé amelyek belső címeket tartalmaznak.

    


 

2.0 Eszközök


    Lássuk azokat az eszközöket, amelyekkel ellenőrizhetjük, karbantarthatjuk a rendszerünket (a teljesség igénye nélkül).


2.1 Helyi (local) eszközök

    Két nagy előnye van a Solaris -nak (és a többi UN*X rendszereknek) a többi  operációs rendszerrel szemben. Ez a stabilitás és a multiuser rendszer. Viszont a multiuser mivolta nagyobb rizikót is jelent. A nem megfelelő permissziók alkalmazása, kihasználható egy járatosabb felhasználónak. Pl: a SUID bit (Lásd. Puffer Túlcsordulások). Fontos, hogy tudjuk melyek azok a programok, amelyek potenciális veszélyt rejtenek. Ezért derítsük fel a rendszerünkben a gyenge pontokat. Keressük meg azokat a programokat, amelyek rendelkeznek SUID bittel és a 'root' a tulajdonosuk. Ezek a legveszélyesebbek:

        root@earth:~$ > find / -uid 0 -perm +4000

        -rwsr-xr-x     1     root      root           13216  Mar 19   15:32   /bin/ping

    Ez az egyik módja, hogy felfedezzük a veszélyes programokat. Senki nem tudja állandóan monitorozni a gépet. Szerencsére vannak eszközök, amelyek segítenek nekünk. Van egy, amely a CERT (Computer Emergency Response Team - http://www.cert.dfn.de/dfncert/info.html/ ) által ajánlott eszköz. Ez a Tripwire nevű program.

 

2.2 Tripwire

     A Tripwire működése egyszerű. Állandóan ellenőrzi a rendszert és az állapotot egy adatbázisban tárolja. Be tudod állítani mely file -ket ellenőrizze. A Tripwire nem ellenőrzi a 'fertőzött' file -ket és a rendszerhibákat. Egy frissen telepített rendszerre kell telepíteni.  Azelőtt még mielőtt a gépünkre felhasználót veszünk fel, vagy mielőtt a gépet a hálózathoz kapcsolnánk (gondolom érthető okokból). Itt az áll, hogy kell az alapadatbázist létrehozni:

root@earth:~$ > /var/adm/tripwire/bin/tripwire -init

     Ezzel elkészíti az adatbázist , amelyet legjobb, ha egy floppy -n helyezünk el. Ezután a Tripwire a legközelebbi futtatáskor a különbségeket jelzi a rendszeren. Legjobb, ha a Tripwire -t cron -ból futtatjuk rendszeresen.

     

2.3 Hálózati eszközök

    inetd

     Az inetd ( Internet 'Super Server') kétségtelenül a legfontosabb service -ket kontrolálja azzal, hogy engedélyez, tilt portokat (itt most nem beszélünk a különböző firewall -okról). Alapesetben az inetd -ben sok olyan service van engedélyezve, ami veszélyes lehet (ez nem csak a Solaris -ban van, így hanem pl. a Debian -ban is). A konfigurációs file a /etc/inetd.conf . Csak azokat a service -ket engedélyezzük, amelyekre feltétlenül szükség van. A telnet -et, shell -t , rlogin -t , stb. azonnal tiltsuk le.

 

2.4 TCP wrapper -ek

    TCP wrapper -el (tcpd) ellenőrzésed alá vonhatod az IP alapú service -ket a hálózaton. A konfigurációs file -k:

A hozzáférés engedélyezett, ha a kliens és host kombináció szerepel a /etc/host.allow -ban. A hozzáférés tiltott, ha a kliens és host kombináció szerepel a /etc/host.deny-ben. Csak TCP wrapper alkalmazása nem elég, kell mellé még egy jól konfigurált firewall is.

 

2.5 Összefoglalás

 


 

3. Solaris 8  konfiguráció


   Ennyi bevezető után térjünk át a Solaris 8 konkrét beállítására.


    A user/rendszer beállításoknál lehetőleg ne használjuk az admintools nevű programot. Több okból se. Az egyik hogy X kell hozzá, a másik, hogy inkább írjunk mindent kézzel =). A telepítésnél, amikor a 'root' jelszót kell beállítani a jelszó mezőt üresen lehet hagyni.

"The optional root password will help protect your system from unauthorized access. We recommend that you supply a root password but itis not required."

  

   NE HAGYJUK ÜRESEN.

   Az alap Solaris install után a telnet engedélyezve van. Ezt tiltsuk le. A /etc/ftpusers írjuk be a 'root' -ot, hogy 'root' - ként ne lehessen ftp -zni. A rendszeren egy csomó veszélyes service engedélyezve van:

7/tcp echo
9/tcp discard
13/tcp daytime
19/tcp chargen
21/tcp ftp
23/tcp telnet
25/tcp  smtp
37/tcp time
79/tcp finger
111/tcp sunrpc
161/udp snmp
177/udp xdmcp
512/tcp exec
513/tcp  login
514/tcp shell
515/tcp printer
540/tcp uucp
4045/tcp lockd
6000/tcp X11
6112/tcp  dtspc
7100/tcp font-service
8888/tcp sun-answerbook
32771/tcp sometimes-rpc5
32772/tcp  sometimes-rpc7
32773/tcp sometimes-rpc9
32774/tcp sometimes-rpc11
32775/tcp sometimes-rpc13
32776/tcp  sometimes-rpc15
32777/tcp sometimes-rpc17
32778/tcp sometimes-rpc19

    Ezeket a /etc/inetd.conf -ban egy # jellel kommentezzük ki. A /etc/rc2.d -ben indulnak el a rendszer alap beállításai (network, stb.), a runlevel 3 -ban indul az X. Ha server -ként akarod használni, NE indíts X -et! Ezzel megelőzhetsz egy csomó támadást.

 

3.1 Install

   Az install előtt (és itt most nem foglalkozok otthoni multiboot rendszerrel) ha a disk már használatban volt előtte, szedjük le a masterboot record -ot. Ezt egyszerűen egy DOS bootlemezről az fdisk /mbr paranccsal oldhatjuk meg. Akinek nem tetszik, keressen másmegoldást =). 

 

3.2 Post-Install

   Ne használd az AdminTool -t a hostname beállítására. Editáld a  /etc/inet/hosts kézzel. Alapból a root -nak nincs ~ könyvtára, hozz létre neki egyet.

        root@earth:~$ >  cd /
        root@earth:~$ >  mkdir root ; chown root:root root/

    Írdd  át a /etc/password file első sorát, hogy a 'root' home -ja /root legyen. Ha a sh nem szimpatikus, a shell -t változtasd meg /bin/bash -ra.


3.3 A TCP/IP beállítása

      Ha az install alatt nem állítottad be a hálózati paramétereket, itt az ideje, hogy megtedd :

  • /etc/nodename          - írdd bele a  node nevet  ( pl : sunbox)
  • /etc/hostname.dnet0  - írdd bele IP/hostnevet amit az interface használ (sunbox)
  • /etc/defaultrouter       - írdd bele a default gateway IP -jét vagy a nevét (gateway)
  • /etc/inet/hosts           - először tedd irhatóvá a  root -nak (chmod u+w /etc/inet/hosts) aztán írdd bele a  hostnevét a local gépnek és a gateway -ek  minimum
  • /etc/inet/netmasks     - írdd bele a  local network(ök) netmask -jait

 

3.4 DNS konfiguráció
     

  • másoldd át a  /etc/nsswitch.dns  /etc/nsswitch.conf -ra
  • /etc/defaultdomain - írdd be a  default domainname -t (example.org)
  • írdd meg a /etc/resolv.conf -ot:
nameserver 1.2.3.4
domain example.org
search example.org

 

3.5 Firewall Install

        Azzal, hogy nem installáltunk X -et a server -re elveszítettük a lehetőségét annak, hogy a local gépen a tűzfalat adminisztrálni tudjuk. De ki akar a server -en lokálisan tűzfalat birizgálni? A SUN -tól ingyenesen beszerezhetjük a SUNSCREEN Lite nevű tűzfal software -t. Ezzel 2 interface -t tudunk kezelni, de nem tudunk más SUNSCREEN -elt firewall -t managelni távolról. Egy firewall server -nek (screen) egy saját VPN-el , ez bőven elég. Töltsük le a SUNSCREEN -t ami kb. 60MB tarball, és csomagoljuk ki valahova biztonságos helyre (lehetőleg ne a /tmp -be). Olvassuk el az INSTALL Instruction -t a README -ba. Első olvasatra elég bonyolultnak tűnhet, de ha követjük a leírást könnyen fel tudjuk támasztani. Az install után egy WEB alapú adminisztrációs felületet kapunk, aminek az előnye, hogy bármilyen gépről azonnal tudjuk a firewall beállításokat módosítani. Fontos: az alapjelszót admin/admin változtassuk meg. Alapban nincs rule létrehozva a 22 -es port -hoz (SSH) ezt mindenképpen hozd létre.Ezzel bővebben egy másik how-to foglalkozik majd.

 

4. Kapcsolódó Link -ek

SunScreen Lite
http://www.sun.com/software/securenet/lite/

Sun documentáció
http://docs.sun.com/

OpenSSL and OpenSSH csomagok Solaris 8.0 Intel és Sparc -ra
ftp://ftp.cryptoarchive.net/pub/cryptoarchive/ftp-site/solaris-8.0/x86/