Niekoľko krokov k zvýšeniu bezpečnosti Linuxu Slackware 3.4 |
Štefan Šimko, 4. března 1998 |
Za bezpečnosť budem v tomto článku považovat súbor opatrení
zabezpečujúcich, že nikto nezíska kontrolu nad mojim počítačom,
neznefunkční ho ani ho nepoužije k útoku na iný systém. Tento článok
je zameraný na Slackware 3.4. Väčšina krokov, ktoré teraz uvediem, sa
netýka len Slackware, ale Linuxu všeobecne. Slackware je jedna
z najznámejších a najpoužívanejších distribúcií Linuxu. Je udržiavaný
na Walnut Creek. Jeho domáci archív je na ftp.cdrom.com a má
množstvo mirrorov. Zakúpiť sa dá na www.cdrom.com,
www.lsl.com, www.cheapbytes.com. Na posledných dvoch
stojí len 2 - 3 doláre, avšak s poštovným a clom sa môže predražiť aj
na viac ako 500 Sk.
Prvá pomoc
- Nastavenie rootovho hesla. Toto je veľmi dôležité, pretože jeho
vlastník má úplnú kontrolu nad systémom. Heslo by malo mať
prinajmenšom 6 znakov, odporúčam však 8, malo by obsahovať veľké, malé
písmená, čísla a vhodný je aj nejaký nealfanumerický znak. Nemalo by
to byť žiadne zrozumiteľné slovo ani rodné číslo. Hackerské slovníky
a programy sa takisto vedia vyrovnať aj so substitúciami typu L - 1, E
- 3, O - 0 a podobne.
- Odstránenie bugov dodávaných v distribúcii. Slackware 3.4 sa
dodáva s bugovým dillon crontab/crond. Po inštalácii hned nahradíme
celý balík bin.tgz za nový patchnutý z adresy
ftp://ftp.cdrom.com/pub/linux/slackware-3.4/slakware/a2.
Ak mienime využívať POP3, je vhodné namiesto dodávaného použiť nejaký
iný, dobré skúsenosti mám s qpopperom, ktorý sa dá nájsť
na adrese http://www.eudora.com/freeware/qpop.html.
- Vyhodenie zbytočných daemonov z /etc/rc.d/rc.*. Obzvlášť
sendmail a sieťoví daemoni v rc.inet2. Čo naozaj
nepotrebujeme, to nemá zmysel spúšťať a ochránime sa aj pred rizikom,
ze niekedy v budúcnosti sa objaví exploit práve na našu verziu
daemonov. Zároveň aj šetríme pamäť servera.
- To isté pre služby a daemonov v /etc/inetd.conf. Služby,
ktoré sme ponechali, by mali byť oklieštené pomocou /usr/sbin/tcpd TCP wrappera.
- Nastavenie sieťových prístupových práv pre služby, ktoré sme
nechali v /etc/inetd.conf. Robí sa to pomocou konfiguračných
súborov /etc/hosts.allow a /etc/hosts.deny, ktoré sú
konfiguračné súbory tcpd. Čím menej počítačom alebo sieťam
povolíme prístup, tým menej ľudí má príležitosť na nás útočiť.
- Okamžitý prechod na kernel aspoň 2.0.33. Predchádzajúce verzie
obsahujú bugy v TCP/IP implementácii, ktoré umožňujú hocikomu zo siete
zhodiť Linux a tým mu znemožniť poskytovať služby (Denial Of
Service Attack). Čo sa týka kernelu, nezmeniť nastavenie Drop
Source-routed Frames, ktoré chráni ostatné počítače od útokov cez náš
počítač.
- Inštalácia najnovšej verzie sendmailu
z http://www.sendmail.org/. Obzvlášť
dôležité, pretože sendmail je veľmi komplexný program plný bugov. Napriek tomu je však často
nutné ho použiť, preto je dôležité mať nainštalovanú poslednú verziu.
- Inštalácia ssh alebo iného programu zabezpečujúceho, že heslá ani
žiadna komunikácia nejde po sieti nezašifrovaná.
- Odstránenie identifikačných znakov Linuxu. Ak neprezradíme, že používame
Linux, vyhneme sa útokom typu: "Je nový exploit na Linux, vyhladajme všetky
Linuxy na dosah a hacknime ich". Ako sa dá nájsť Linux? Pomocou login bannerov
v /etc/issue.net, pomocou SNMP, sendmail, ftpd atď., pomocou
hrdých bannerov "Linux inside" na WWW stránkach a hlavne podľa mena servera,
ako napríklad linux.na.univerzite.sk, čo umožňuje skutočne masové
automatické hľadanie Linuxov.
Trvalo udržateľná bezpečnosť
- Nainštalovať software, ktorý pravidelne (z cronu)
kontroluje bezpečnosť systému. Napríklad kontrolu setuid programov,
privilégii a vlastníctva systémových súborov vykonáva cops.
Dobrý program na kontrolu zmien rôznych parametrov súborov, ako
času vytvorenia, poslednej zmeny, posledného prístupu, dĺžky, zmeny
obsahu atď. je tripwire (obidva najdete na adrese
http://www.cert.org/). Tripwire treba
nakonfigurovať aby monitoroval tie súbory ktoré potrebujeme. Databázu
kontrolných súčtov si treba skopírovať na nejaký iný počítač, aby
hackeri po zmene súborov nevykonali update datábazy. Pravidelne
kontrolovať heslá užívateľov pomocou programu crack. Napísať si
alebo pohladať nejakú kontrolu /var/log/syslog na zlé pokusy o su,
/var/adm/wtmp na neštandardné adresy.
- Sledovať diskusné skupiny a mailing listy zamerané na bezpečnosť,
napr. bugtraq, linux-security, CERT
advisories, SNI advisories, L0pht advisories.
- Používať ťažké heslá, ktoré sa nedajú uhádnuť, odporúča sa aspoň jeden
nealfanumerický znak, veľké, malé písmená a čísla.
- Nedávať SUID bit programom, ktoré ho nepotrebujú alebo bez ktorých sa
zaobídeme.
- Učiť sa, učiť sa, učiť sa, stále je niečo nové. Nenechať sa
ukolísať pocitom, že sme spravili všetko a že sme dobrí (tuším som
zašiel do ideológie).
Paranoia
Ak máte temné tušenie, že to stále nestačí a nemôžete sa zbaviť
pocitu, že niekto ide po vás, môžte napríklad preventívne upraviť svoj
kernel:
- Vyhodiť z drivera sieťovej karty kód prepínajúci
do Promiscuous Mode, ktorý umožňuje odchytávať z ethernetu
packety. Takto dosť sťažíte niekomu, kto hackol váš počítač, útoky
na ďaľšie počítače pomocou zachytených hesiel.
- Vyhodiť používanie modulov.
- Nastaviť v kerneli kvóty na počet procesov, užívateľov, proces/užívateľ,
pamäť/proces atď., aby nám užívatelia nemohli zhodiť systém obyčajným programom
alokujúcim pamäť alebo procesy.
- Vykonať zopár patchov (nápady podľa Phracku 52 - http://www.phrack.com/52/):
- Znemožniť userom vidieť info o procesoch (dobrý nápad).
- Znemožniť exec iných fajlov ako boli explicitne povolené
(dosť reštriktívne).
- Ochrana pred útokmi s pretekajúcim bufferom.
- Rozvrstvenie právomocí na niektoré operácie (potom netreba
root privs) vytvorením špeciálnych groups na bindovanie na port <
1024, vytváranie raw socketov.
|