Pripravljanje vašega Linux strežnika za Internet

Oboroževanje Linux-a


Lance Spitzner
Zadnjič spremenjeno: 25.04.2000

Organizacije po vsem svetu so sprejele Linux za svojo produkcijsko platformo. S tem, ko povežejo te strežnike na Internet, da bi nudile pomembne internetne servise, hkrati postanejo tudi prilične tarče. Ta članek opisuje osnovne načine zavarovanja Linux strežnika. Tukaj navedeni primeri temeljijo na distribuciji Red Hat 6.0 (RH 6.0), vendar v glavnem veljajo za vse Linux distribucije.


Namestitev


Najboljši začetek zaščite sistema je na začetku - pri namestitvi. Ker je to produkcijski sistem, ne moremo zaupati nobeni predhodni namestitvi. Potrebno je začeti s "čisto" (clean) namestitvijo, saj le tako lahko zagotovimo neoporečnost sistema. Postavite sistem na izolirano omrežje. Sistema ne smete postaviti na aktivno omrežje ali celo na Internet, saj tvegate vdor, ker sistem ni primerno zaščiten. Sam sem bil priča vdoru script kiddie-a po 15 minutah povezave nekega strežnika v Internet. Za pridobitev pomembnih datotek ter popravkov potrebujete še en računalnik z dostopom do Interneta iz katerega boste prenašali te datoteke ter popravke na strežnik preko omrežja ali pa boste datoteke zapekli na CD-R.

Ko ste postavili bodoči Linux strežnik na izolirano omrežje, ste pripravljeni. Prvi korak je izbira operacijskega sistema, ki ga hočete naložiti. Pri RH 6.0 imate tri možnosti: Delovna postaja (workstation), strežnik (server) ali "po izbiri" (custom). Priporočam izbiro custom, saj ta omogoča, da sami izbirate med komponentami in servisi, ki bodo aktivni na strežniku ter kako bo sistem razdeljen. Najbolje je naložiti minimalno število paketov (packages), saj tako zagotovimo najboljšo učinkovitost sistema. Manj nepotrebne programske opreme je na strežniku, manj je potencialne možnosti, da kdo izrabi kakšno varnostno luknjo. To pomeni: če ne berete News (konferenc) ali Real Audio strežnika, ju ne namestite. Lepa stvar pri Linuxu je, da če si premislite, lahko še vedno kasneje dodate katerega izmed paketov. Ne glede na to katero možnost namestitve izberete, priporočam, da namestite priročnike (manual pages) ter HOWTO dokumente, saj so zelo pomembni in uporabni in ne pomenijo kakšnega varnostnega tveganja za strežnik.

Če ste izbrali "custom" (po izbiri) možnost, vas bo namestitveni program vprašal za particioniranje (razdelitev) trdega diska. Sam najraje naredim root (koreninsko) particijo karseda veliko ter vse podatke dam nanjo, tako da kasneje ne primanjkuje prostora na njej. Da bi zavarovali root particijo, vseeno potrebujemo še kakšno particijo, kjer bomo imeli podatke kot so e-mail-i, dnevniki ipd. Če bi ti podatki napolnili root particijo, bi verjetno prišlo do sesutja sistema.

Zaradi tega priporočam, da naredite posebno particijo za /var direktorij, kjer se bo shranjevala vsa pošta ter vsi dnevniki. Z izolacijo /var particije boste root particijo obvarovali pred zapolnitvijo. Navadno je 400 MB več kot dovolj za /var (razen če bo vaš sistem sprejemal velike količine elektronske pošte). Lahko se tudi odločite za posebne particije za določene programe, ki bi potrebovali veliko prostora za dnevnike ali pa mogoče za /home direktorij, če boste imeli veliko uporabnikov. S tako organizacijo bi particije izgledale nekako tako:


/ - everything else
/var - 400 MB
swap - (I normally go with 256 MB)


Ko ste računalnik po namestitvi ponovno zagnali, je potrebno namestiti varnostne popravke različnim programom. Za Red Hat lahko najdete te popravke na Red Hat's errata support site. Popravki so bistveni za zaščito sistema in morajo biti vedno spremljani ter izvedeni na sistemu. bugtraq@securityfocus.com ali redhat-watch-list-request@redhat.com sta izvrstna vira informacij o najnovejših hroščih ter popravkih. Brez teh popravkov je vaš sistem lahka tarča vdiralcev. Za pridobitev teh popravkov seveda uporabite drugi računalnik s povezavo na internet, saj mora Linux strežnik ostati na izoliranem omrežju dokler ni pripravljen. Ko si enkrat presnamete RPM paket določenega programa, je namestitev le-tega pri Red Hatu zelo enostavna z uporabo naslednje sintakse. Lep primer je varnostna posodobitev wu-ftpd strežnika:


rpm -Uvh wu-ftpd-2.6.0-1.i386.rpm


Na sistemih, ki so že povezani na Internet si lahko presnamete ter namestite RPM paket hkrati:


rpm -Uvh ftp://updates.redhat.com/5.2/i386/wu-ftpd-2.6.0-1.i386.rpm


Pri RH 6.1 je vključeno novo orodje za popravke imenovano "up2date". Toplo priporočam uporabo tega orodja. Ko ga poženete, ugotovi kateri RPM paketi morajo biti na novo nameščeni, presname le-te iz Red Hat-ove spletne strani in jih namesti na sistem. Orodje je zelo prilagodljivo ter enostavno za uporabo.


Odstranjevanje servisov


Ko ste namestili operacijski sistem, popravke ter ponovno zagnali računalnik ste pripravljeni na "oborožitev" sistema. Oborožitev sestavljajo: izklopitev nepotrebnih servisov, uvedba dnevnikov, prireditev nekaterih datotek in konfiguracija TCP Wrappers. Najprej bomo začeli z izklapljanjem nepotrebnih servisov.

Privzeto je Linux močan operacijski sistem, ki izvaja veliko število uporabnih servisov. Vendar je veliko teh servisov nepotrebnih in predstavljajo le možno varnostno tveganje. Najprej začnimo z datoteko /etc/inetd.conf. Ta datoteka določa, za katere servise bo /usr/bin/inetd daemon poslušal. Privzeto je /etc/inetd.conf konfiguriran za vrsto servisov, vi pa verjetno potrebujete dva: ftp in telnet. Odstranite ostale nepotrebne servise tako, da jih komentirate (primer A). To je zelo pomembno, saj veliko servisov pod inetd-jem predstavlja lahko težave z varnostjo, kot so popd, imapd, rsh ipd. Poglejte katere servise ste pustili odprte z ukazom:


grep -v "^#" /etc/inetd.conf


Naslednja stvar, ki jo je treba pregledati so .rc skripti. Ti skripti določajo, kateri servisi se avtomatično zaženejo pri inicializacijskem procesu (init) zagona operacijskega sistema. Pri Red Hat distribuciji, se ti skripti nahajajo v /etc/rc.d/rc3.d (ali /etc/rc.d/rc5.d če se operacijski sistem naloži direktno v grafični sistem, kot sta Gnome ali KDE). Skript onemogočite tako, da zamenjate veliko črko S v imenu datoteke z malo črko s. To omogoča enostavno vrnitev skripta v prejšnje (delujoče) stanje. Red Hat vključuje tudi orodje za rokovanje s temi servisi. Poženite /usr/sbin/setup in izberite "System Services" (sistemski servisi). Sedaj lahko izbirate kateri skripti se bodo naložili pri zagonu računalnika. Ena izmed opcij je tudi chkconfig, ki je vključena v večino distribucij. Sledeči skripti so nameščene po privzetih nastavitvah in niso nujne za funkcioniranje sistema. Če jih ne potrebujte, jih izklopite. Števila v imenih datotek določajo zaporedje inicializacije in se lahko razlikujejo pri različnih distribucijah in verzijah le-teh. Imena skriptov, ki se začnejo na črko K, namesto S, so namenjena prekinjanju procesov, ki so že zagnani.


S05apmd (You only need this for laptops)
S10xntpd (Network time protocol)
S11portmap (Required if you have any rpc services, such as NIS or NFS)
S15sound (Saves sound cared settings)
S15netfs (This is the nfs client, used for mounting filesystems from a nfs server)
S20rstatd (Try to avoid running any r services, they provide too much information to remote users)
S20rusersd
S20rwhod
S20rwalld
S20bootparamd(Used for diskless clients, you probably don't need this vulnerable service)
S25squid (Proxy server)
S34yppasswdd (Required if you are a NIS server, this is an extremely vulnerable service)
S35ypserv (Required if you are a NIS server, this is an extremely vulnerable service)
S35dhcpd (Starts dhcp server daemon)
S40atd (Used for the at service, similar to cron, by not required by the system)
S45pcmcia (You only need this script for laptops)
S50snmpd (SNMP daemon, can give remote users detailed information about your system)
S55named (DNS server. If you are setting up DNS, upgrade to the latest version of BIND, http://www.isc.org/bind.html)
S55routed (RIP, don't run this unless you REALLY need it)
S60lpd (Printing services)
S60mars-nwe (Netware file and print server)
S60nfs (Use for NFS server, do not run unless you absolutely have to).
S72amd (AutoMount daemon, used to mount remote file systems)
S75gated (used to run other routing protocols, such as OSPF)
S80sendmail (You can still send email if you turn this script off, you just will not be able to receive or relay)
S85httpd (Apache webserver, I recommend you upgrade to the latest version, http://www.apache.org/)
S87ypbind (Required if you are a NIS client)
S90xfs (X font server)
S95innd (News server)
S99linuxconf (Used to remotely configure Linux systems via browser, every black-hat's dream :)


Preden spreminjate zagonske skripte, preverite koliko servisov je pognanih:


ps aux | wc -l


Ko ste končali z namestitvijo in izklopili vse nepotrebne skripte, še enkrat ponovite ukaz ter primerjajte števili pognanih servisov prej in sedaj. Čim manj servisov je vklopljenih, tem bolje. Dodatno lahko pregledate delujoče servise z ukazom:


netstat -na --ip


Devniki in razni triki


Ko ste izklopili vse nepotrebne servise, lahko nastavite logiranje (pisanje dnevnikov). Vsi sistemski dnevniki se zapisujejo v /var/log. Po privzetih nastavitvah ima Linux solidno logiranje, lazen za FTP servis. Za logiranje FTP-ja imamo na izbiro dve možnosti: ali konfigurirajte /etc/ftpaccess ali pa /etc/inetd.conf. Osebno raje spreminjam /etc/inetd.conf, saj je enostavneje. Da bi logirali vse FTP prenose uredite /etc/inetd.conf takole:


ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -L -i -o


--- Iz priročnika ---


Če je uporabljena opcija -l, je vsaka FTP seja logirana v syslog.
Če je uporabljena zastavica -L, se bodo logirali vsi FTP ukazi, takoj ko je FTP strežnik priklican. To ima za posledico logiranje vseh.
uporabnikovih ukazov, kar pomeni, da če uporabnik namesto uporabniškega imena, pomotoma napiše geslo, se bo le-to zapisalo v syslog.
Če je uporabljena opcija -i, bodo datoteke, ki jih je sprejel ftpd(8) strežnik logirane v xferlog(5).
Če je uporabljena opcija -o, bodo datoteke, ki so prenesene s ftpd(8) strežnikom logirane v xferlog(5).


--- snip snip ---


Sledijo razni triki (tweaking). To vključuje administracijo različnih datotek. Najprej je potrebno zavarovati našo /etc/passwd datoteko (to je bazna datoteka, v kateri so vsa uporabniška imena ter gesla). Najprej je potrebno zagotoviti, da naš sistem uporablja /etc/shadow, saj ta datoteka vsebuje vsa kodirana gesla, dostop donje pa ima samo koreninski uporabnik. Tako zavarujete vaša gesla pred "crackanjem" (razbijanjem ali dešifriranjem), saj je to ena prvih varnostnih lukenj, na katero postane vdiralec pozoren. Uporaba shadow (senčenih) gesel je privzeta v RH 6.0, ampak previdnost je mati modrosti. Vse kar morate storiti je, da poženete naslednji vkaz kot koreninski uporabnik. Tako bo program avtomatično pretvoril gesla v /etc/shadow datoteko. To je eden najpomembnejših korakov pri "oboroževanju" sistema.


pwconv


Naslednji korak je odstranjevanje vseh neuporabnih privzetih uporabniških imen v /etc/passwd. Le-ta privzeto vsebuje veliko uporabniških imen za različne sistemske aktivnosti, ki jih verjetno ne boste potrebovali. Če jih ne potrebujete, jih izbrišite. Čimveč uporabniških imen imate, lažje je dostopati do sistema. Vzemimo na primer "news" uporabniško ime. Če ne poganjate nntp, strežnika za novice, tega uporabniškega imena ne potrebujete (posodobite tudi datoteko /etc/cron.hourly, ker ta išče uporabnika "news"). Izbrišite tudi "ftp" uporabniško ime, saj je to uporabljano za anonimen FTP dostop do strežnika. Iz priročnika:


man ftpd:


Ftpd authenticates users according to four rules.

4) If the user name is ``anonymous'' or ``ftp'', an anonymous ftp account must be pre-sent in the password file (user ``ftp'').
In this case the user is allowed to log in by specifying any password (by convention this is given as the client host's name).


Za primer moje /etc/passwd datoteke si oglejte primer C.

Prav tako je dobro spremeniti datoteko /etc/ftpusers (primer D). Vsa uporabniška imena, ki so napisana v tej datoteki, ne morejo uporabljati FTP servisa. To omejuje uporabniška imena kot so "root" ali "bin" pred uporabo FTP servisa. Linux vključuje to datoteko privzeto. Koreninsko uporabniško ime root mora biti v tej datoteki, saj si verjetno ne želite, da bi kdo z koreninskimi privilegiji brskal po FTP-ju. Zagotovite tudi, da ni v tej datoteki nobenega uporabniškega imena, ki potrebuje FTP servis.

Zagotovite tudi, da se koreninski uporabnik ne more telnetati na sistem. To prisili uporabnike, da se najprej prijavijo na sistem pod svojim uporabniškim imenom in šele nato s "su"-jem pridobijo koreninske privilegije. Datoteka /etc/securetty vsebuje listo TTY-jev, na katere se lahko poveže koreninski uporabnik. V datoteki naj bodo samo tty1, tty2 itn., to omeji koreninskega uporabnika, da se lahko prijavi samo direktno na računalnik (mora biti fizično pri računalniku). ttyp1, ttyp2 itn. so pseudo-terminali, ki omogočajo, da se koreninski uporabnik prijavi tudi preko telneta (na daljavo). Oglejte si primer E.

Nazadnje naredite datoteko /etc/issue. Ta datoteka vsebuje ASCII tekst (pasica), ki se pojavi na začetku vsake telnet seje. (primer B). To opozorilo se bo pojavilo takoj, ko se bo kdorkoli želel prijaviti na sistem preko telneta. Če hočete imeti stalno /etc/issue datoteko, morate nastaviti /etc/rc.d/init.d/S99local, saj privzeto Linux naredi novo /etc/issue datoteko pri vsakem ponovnem zagonu.


Povezovanje na strežnik


Za tiste, ki boste administrirali strežnik na daljavo, je pomembno, da nastavite varen ter kontroliran način povezovanja na strežnik. Pogosto potrebujete dostop do strežnika na daljavo za administracijo ali nalaganje datotek na strežnik. Te povezave morajo biti varne. Tukaj bom opisal dve opciji: SSH in TCP Wrappers.

Raje imam SSH, ker kriptira vso komunikacijo med nami ter požarnim zidom. TCP Wrappers ne bo obvaroval mrežnega prometa pred snifanjem (vohljanjem). Uporabniki lahko še vedno vidijo vse kar natipkate (tudi gesla). Če vas skrbi, da bo kdo od uporabnikov omrežja prestregal informacije v omrežju, svetujem, da nadomestite telnet/ftp s SSH-jem (Secure SHell). SSH kriptira vse komunikacije do strežnika, hkrati pa omogoča upload (nalaganje) datotek na strežnik in administracijo le-tega na varen način. SSH in TCP Wrappers sta si podobna v tem, da imajta svoj način (layer) logiranja in lahko določata kateri računalniki se lahko povezujejo nanju. SSH lahko dobite tukaj, kjer je tudi izvorna koda klienta in sshd strežnika. Priporočam uporabo SSH verzije 1.2.*, saj ima 2.* omejeno licenco. Ena izmed SSH opcij je tudi OpenSSH.

TCP Wrappers ne kriptira komunikacij, a vseeno logira ter kontrolira, kdo lahko dostopa do sistema. To je program, ki se namesti poleg inetd servisov kot sta telnet in FTP. Če je TCW Wrappers nameščen, takrat ko sistem požene inetd povezave, TCP Wrappers logira vse poskuse povezav in primerja poskus z kontrolno listo dostopov. Če je povezava odobrena, TCP Wrappers izroči povezavo ustreznemu programu, kot je recimo telnet. Če v kontrolna lista dostopov zavrže povezavo, TCP Wrapper povezavo nemudoma prekine. Na srečo je na Linux operacijskih sistemih TCP Wrappers predhodno nameščen, zato moramo samo še konfigurirati datoteki /etc/hosts.allow in /etc/hosts.deny. Ti datoteki določata kdo lahko in kdo ne sme dostopati do strežnika. TCP Wrapper omogoča tudi druge zanimive sttvari, kot so "pasice" (banners) ali pa lahko požene kakšen drug program, kot je safe_finger. Sintaksa je relativno preprosta. V /etc/hosts.allow napišite IP naslove ali kar celotna omrežja, za katera hočete omogočiti dostop. V /etc/hosts.deny pa dajte tiste IP naslove ali omrežja, katerim želite preprečiti dostop do strežnika. Po privzetih nastavitvah Linux omogoča dostop od kogarkoli, zato je priporočljivo ti dve datoteki spremeniti. 2 nasveta pri delu z TCP Wrappers:

1. Uporabljajte IP naslov namesto imena domene.
2. Nastavite /etc/hosts.deny tako, da zavrne vsako povezavo (ALL), na to pa v /etc/hosts.allow napišite tiste naslove, katerim bi dostop omogočili.

Za primera konfiguracije datotek /etc/hosts.allow in /etc/hosts.deny si oglejte primer F. Za načinov uporabe TCP Wrappers si oglejte "Razkrinkanje vdorov".


Za resnično paranoične


Našteta merila smatram za bistvena. Če ste sledili navodilom, ste precej izboljšali varnost sistema, čestitam! Na žalost vaš sistem ni 100% zavarovan in tudi nikoli ne bo. Zato sem za resnično paranoične dodal še nekaj dodatnih korakov pri zavarovanju sistema.

Najprej bomo naredili skupino uporabnikov "wheel". Skupina "wheel" je skupina, v kateri so samo izbrani posamezniki, ki lahko izvajajo "močne" ukaze, kot je recimo /bin/su. S tem, ko omejimo število uporabnikov, ki lahko poganjajo te ukaze, povečamo varnost sistema. Skupino naredimo tako, da v datoteko /etc/group vpišemo novo skupino "wheel" in dodamo sistemske administratorje v to skupino. Potem poiščite pomembne programe, kot je /bin/su. Dodelite tem datotekam skupinsko lastništvo skupini "wheel" in jih napravite izvedne samo za lastnika le-teh ter za ljudi, ki so v "wheel" skupini (spremenite SUID in GUID bit za posamezen program). Za /bin/su bi ukazi izgledali nekako takole:


/bin/chgrp wheel /bin/su
/bin/chmod 4750 /bin/su


Naslednja stvar, ki jo bomo storili je, da bomo zaklenili datoteke .rhosts, .netrc in /etc/hosts.equiv. "r" programi uporabljajo te datoteke za dostop do sistemov. Zaklenemo jih tako, da jih naredimo (touch) in jim spremenimo dovoljenja (permissions) na vrednost 0. Tako jih zaklenemo. Tako ne more nihče narediti ali spremeniti datotek. Na primer:


/bin/touch /root/.rhosts /root/.netrc /etc/hosts.equiv
/bin/chmod 0 /root/.rhosts /root/.netrc /etc/hosts.equiv


Potem konfiguriramo /etc/shadow, da uporablja MD5 hash-e namesto crypt(3) funkcije. S tem zelo zmanjšamo možnosti za dekodiranje datoteke /etc/shadow. To naredimo tako, da spremenimo PAM module. PAM (Pluggable Authentication Modules) je niz knjižnic, ki omogočajo izbiro načina avtentikacije uporabnikov. Za več informacij o PAM-u si oglejte ftp://ftp.us.kernel.org/pub/linux/libs/pam/Linux-PAM-html/pam.html.

V starih časih je bilo potrebno ročno spremeniti PAM module, da so uporabljali MD5 hash-e. Dočim v Red Hat 6.0 distribuciji ali novejši, lahko izberete MD5 hash-e s konfiguracijskim orodjem. Napišite samo "setup" in nato izberite "authentication configuration". Tukaj lahko izberete uporabo MD5 hash-ev. MD5 hash-i bodo začeli veljati takoj, ko uporabniki na novo vnesejo svoja gesla. Tisti, ki nimate setup orodja (ali imate Red Hat 5.2 ali starejši), si lahko nastavite PAM module ročno (primer G).

Sam uporabljam bash lupino, a nisem ravno velik pristaš .bash_history datoteke. Ne maram, da ljudje (vključno z koreninskim uporabnikom) vedo kaj sem tipkal. Zaradi tega v .bash_profile datoteki napišem naslednjo vrstico:


HISTFILESIZE=0


To pomeni, da ne bo nič logirano v mojo .bash_history datoteko. Še vedno imam na voljo zgodovino vsega natipkanega in ponovni priklic ter HISTSIZE spremenljivko, ampak ukazi ne bodo zapisani v .bash_history datoteko.

Zadnja stvar, ki jo lahko naredimo je, da sistem zavarujemo pred fizičnim dostopom. To pomeni nastavitev gesla v BIOS-u. Lahko tudi zaščitite sistem z geslom, ki ga računalnik zahteva pri zagonu LILO tako, da konfigurirate /etc/lilo.conf (napišete vrstico v stilu "password=xxx", kjer je xxx geslo). Vendar vedite, da ko ima nekdo fizični dostop do računalnika, ni nobene možnosti 100% zaščite sistema.


IPChains


Brez omembe IPChains diskusija o Linux varnosti ne bi bila zaključena. IPChains je programska oprema, ki omogoča filtriranje paketkov. Prihaja z jedrom (kernel) 2.2.* in novejšimi. To pomeni, da če imate Red Hat 6.0 ali novejši, je IPChains vključen v namestitveno orodje. IPChains je podoben Cisco Access Control Lists, saj lahko kontrolira, kater paketki lahko gredo v in iz Linux strežnika. Primarno se uporablja kot požarna vrata, lahko pa je tudi uporabljen za oborožitev samostojnega Linux računalnika. Da bi zavaroval samostojni računalnik, osebno konfiguriram IPChains tako, da dopustijo samo TCP povezave, ki jih ustvarim jaz. Če kdo drug poskusi vzpostaviti TCP povezavo z menoj, je povezava prekinjena. Vseeno pa dovolim UDP in ICMP povezave. Zadnjič sem logiral vse zavrnjene povezave - tako vem, če je kdo tam zunaj poreden. Zavrnem ampak ne logiram ves broadcast/multicast promet, ker bi le-ta če ne hitro zapolnil sistemske dnevnike. Preprosta IPChains konfiguracija na samostojnem sistemu bi izgledala nekako takole:


bash# ipchains -L
Chain input (policy DENY):
target prot opt source destination ports
DENY all ------ 0.0.0.0 anywhere n/a
DENY all ------ anywhere 255.255.255.255 n/a
DENY all ------ anywhere BASE-ADDRESS.MCAST.NET/8 n/a
ACCEPT tcp !y---- anywhere anywhere any -> any
ACCEPT udp ----l- anywhere anywhere any -> any
ACCEPT icmp ----l- anywhere anywhere any -> any
DENY all ----l- anywhere anywhere n/a
Chain forward (policy ACCEPT):
Chain output (policy ACCEPT):


Če si želite ogledati konfiguracijske datoteke za to, si oglejte primer H. Za več informacij, kako uporabiti IPChains kot požarna vrata na samostojnem računalniku, si oglejte IPChains HOWTO.


Povzetek


Opisali smo nekaj najosnovnejših korakov pri "oboroževanju Linux-a" (Red Hat distribucija). Ključ do varnega sistema je v čim manj nameščene programske opreme, z zaščito po stopnjah, kot TCP Wrapper, IPChains in senčenje (shadow) gesel. Seveda obstaja še veliko dodatnih korakov, kot so tripwire (kontrola sprememb v sistemskih programih) in swatch (automatična kontrola dnevnikov in opozorila). Novim uporabnikom Linux-a predlagam, da si ogledajo Bastille Linux, PERL skript, ki avtomatično zavaruje Linux sistem, korak za korakom. Zapomnite si: noben sistem ni 100% varen. Lahko pa, z omenjenimi koraki, zelo povečate varnost sistema.