Hlavní navigace

Ochrana přístupu

Sdílet

Pokud nemáte přístup k serveru 100% zabezpečený před nezvanou návštěvou, věnujte trochu pozornosti fyzickému zabezpečení:

Fyzické zabezpečení

Pokud nemáte přístup k serveru 100% zabezpečený před nezvanou návštěvou, věnujte trochu pozornosti fyzickému zabezpečení:

  • CMOS: zablokujte přístup do BIOSu heslem. Nikdo kromě správce by neměl mít možnost změnit nastavení BIOSu.
  • Nastavte startovní sekvenci na C;A, a nejraději úplně zablokujte možnost startu z diskety.
  • Zvažte instalaci na zašifrovaný souborový systém (podporuje to například distribuce Mandrake.)

Softwarové zabezpečení

  • Nastavte si kvalitní heslo pro správce systému. Mělo by mít aspoň 8 znaků, a obsahovat malá i velká písmena. Heslo můžete okořenit i závorkou nebo čárkou (ovšem pozor při přihlašování s národní nebo naopak třeba anglickou klávesnicí – než si všimnete, že posíláte v podstatě úplně jiné heslo, můžete se pěkně rozčílit).
  • Zvažte přejmenování názvu účtu pro správce systému na něco jiného než je root. Je to snadné: Každý uživatel, jehož UID je 0 má oprávnění správce systému. Když bude mít správcovský účet nějaké neobvyklé jméno, a uživatel root nebude existovat, nebude možné vlámat se do systému hrubým útokem, tj. zkoušením různých hesel.
  • Povolte bit „sticky“ pro /tmp tímto povelem: „chmod &1777 /tmp“. To zajistí, aby v adresáři /tmp mohl soubory mazat jen jejich tvůrce.
  • Zakažte Ctrl-Alt-Del: zakomentujte příslušný řádek v inittab a proveďte restart procesu init.
  • Zablokujte interaktivní start procesu INIT: nastavte prompt=no v souboru /etc/sysconfig/init (tento bod je závislý na použité distribuci).

Jak zablokovat procesy

Nyní byste měli nastavit, které procesy se mají spustit po startu systému. V tomto se bohužel různé distribuce také odlišují – některé používají systém startovacích skriptů zděděný z BSD (což je třeba příklad Slackwaru) a některé zase ze SysV (Red Hat, Debian, SuSE a další).

V prvním případě se služby spouštějí ze skriptů umístěných v adresáři /etc/rc.d. Do těch se obvykle nezasahuje – skripty si testují přítomnost démonů a spouští je automaticky. Nejlepší je tedy software zajišťující nežádoucí služby úplně odinstalovat (to ostatně platí vždy).

Oproti tomu startovací skripty na bázi SysV více méně striktně dodržují pravidlo, že jeden skript startuje jednu službu. Tyto skripty jsou v novějších distribucích umístěné ve složce /etc/init.d a jsou obvykle velmi srozumitelně pojmenovány. Ještě důležitějšími složkami ale jsou /etc/rc?.d, kde namísto otazníku je čislo odpovídající takzvanému runlevelu. Tímto mechanismem je zajištěno, že třeba při runlevelu 3 se spustí všechny skripty umístěné v adresáři /etc/rc3.d, zatímco při runlevelu 2 zase skripty z adresáře /etc/rc2.d. Soubory zde umístěné jsou symbolické odkazy do složky /etc/init.d. Každý odkaz začínající písmenem S znamená, že daný proces bude spuštěn a každý odkaz začínající písmenem K zase, že daný proces bude ukončen (to pro případ změny runlevelu za běhu systému). Číslo za znakem S nebo K určuje pořadí vykonání skriptu. Pokud je stejné, spouštění probíhá podle abecedy.

Pokud budete chtít zamezit spouštění služby, musíte předně zjistit, jaký runlevel standardně váš systém používá. Například v Debianu je tím „základním“ runlevelem číslo 2, zatímco třeba v Red Hatu je to číslo 3. Ověřit si to lze povelem runlevel spuštěným z shellu po nabootování do „normálního“ režimu. Pak už jen stačí odstranit soubor Sxxsluzba v patřičné složce /etc/rc?.d, případně ještě přidat Kxxsluzba tamtéž (pokud chcete zajistit, aby se služba ukončila při přechodu do tohoto runlevelu za chodu). Znovu ale opakuji, že nejjistější je rozhodně nežádoucí službu úplně odinstalovat.

V některých distribucích může být obsažen pomocný prográmek ntsysv, který výše uvedené nastavení provádí v pohodlném prostředí s jednoduchou nabídkou, bez nutnosti ručně přejmenovávat soubory.

Které procesy zablokovat

Pro server doporučujeme zablokovat (zakázat) následující procesy:

autofs
nfs (ne když provozujete nfs server)
ruserd
rwalld
rwhod
mcserv
kerneld
smb (ne když provozujete Samba server)
lpd (ne když provozujete tiskový server)
portmap (ne když provozujete nfs server)
nfsfs (ne když provozujete nfs server)
pcmcia
dhcpd (ne když provozujete DHCP server)
httpd (ne když provozujete WWW server)
sendmail (ne když provozujete mail server)

Blokujte většinu procesů spouštěných superserverem

Distribuce používají dále takzvaný superserver (obvykle inetd nebo xinetd) pro start serverových komponent podle potřeby. Takto se startuje typicky například server pro vyzvedávání elektronické pošty přes POP3. Rozhodně zablokujte vše, co bezprostředně nepotřebujete.

Při použití xinetd najdete konfiguraci v adresáři /etc/xinetd.d. Tam v jednotlivých souborech nastavte disable na „yes“. Doporučujeme zablokovat tyto služby: chargen, chargen-udp, daytime, daytime-udp, echo, finger, imap, ident, ipop3, ntalk, talk, time. Pokud ale váš server má sloužit například jako IMAP server, nesmíte službu imap zablokovat.

Aby změny nabyly účinek, restartujte xinetd.

Starší inetd používá jediný konfigurační soubor /etc/inetd.conf, ve kterém typicky jeden řádek reprezentuje jednu službu. Její vypnutí tedy spočívá v zakomentování nebo vymazání patřičného záznamu. Opět je nutné restartovat inetd.

Blokujte TCP wrapper

Co není v demokracii zakázáno, je dovoleno. Pro vás server musí platit pravý opak, jinak nebude bezpečný. Proto mějte na konci souboru /etc/hosts.deny řádek „ALL: ALL“, a povolení dávejte raději explicitně do souboru /etc/hosts.allow

Zkontrolujte vzdálený přístup

Ověřte si, že soubor /etc/securetty obsahuje jen takové terminály, ze kterých má být povolen přístup správce systému (root).

Ověřte si, že soubor /etc/ftpusers obsahuje seznam uživatelů, kteří nesmějí používat FTP služby na tomto serveru. To se týká především roota! Je mnohem bezpečnější posílat soubory na váš server přes FTP přihlášen jako běžný uživatel a pak se přihlásit přes SSH a změnit majitele pomocí chown na root, než dovolit přímý přístup uživatele root. Nejbezpečnější je ovšem používat pro přenos souborů šifrované protokoly, například programem scp (secure copy).

Zkontrolujte cron

Přesvědčte se, že soubor /etc/cron a jím volané složky obsahují jen programy, které chcete spouštět.

Audit suid programů

Vyhledejte všechny programy s nastaveným suid bitem:

mkdir -m700 /etc/info
find -type f ( -perm –04000 -o -perm –02000 ) -ls &>
/etc/info/suid-results

Tyto programy běží s právy uživatele root bez ohledu na to, který uživatel je spustil. Zvažte, zda u některých programů nechcete bit suid odstranit. 2

Poznámky

2 Pozor, některé programy pak nemohou plnit svou funkci správně pro jiné uživatele než je root.