 
      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
         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
         
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.
      
            
          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
         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."
   
      
    
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 :
3.4 DNS konfiguráció
                
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.
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/