Linux mini-howto? Krátce o nástrojích ze života sysadmina.
Základní pravidla bezpečnosti serverů
Proč? Základní představa o bezpečnosti serverů je často mylná nebo žádná, tímto soupisem praxí ověřených pravidel se jí pokusme nastínit, v některých případech jde obecná pravidla platná napříč světem IT v jinde cílíme přímo na UNIX systémy, znovu připomínáme jde o takový dobrý základ od čeho se odrazit a v případě zájmu můžeme pokračovat dalším dílem.
Bezpečnost IT systémů není stav, je to neustálý proces a i z toho důvodu je 100% zabezpečení přelud, kterého nelze dosáhnout, ale můžeme se k němu zkusit přiblížit, jediný bezpečný systém je ten který nemáte ala jediné auto které Vám nezestárne je to které jste si nekoupili.
Fyzická bezpečnost
Fyzická bezpečnost je klíčová, veškerá opatření padají s faktem, že dojte ke kompromitaci serveru fyzickou manipulací, nabootování vlastní systému, zcizení, zničení, atd. Zakažte na serveru bootování CD/DVD, usb, floppy, externích zařízení, zaheslujte BIOS a zavaděč GRUB (nenechte útočníka přejít do single módu).
Všímejte si malých i velkých detailu při umístění serveru do datacentra, místo kde je serveru uložen, kdo všechno má přístup, kamery, klimatizace, požární systémy, mříže, rozvody napájení, racky i čistotu prostřední, zda-li se nepovalují krabice a kartony všude okolo, ptejte se, mějte dotazy je to vaše právo, speciálně se ptejte na fyzický přístup v nočních/ranních hodinách.
Virtuální servery jsou dnes velkým fenoménem proto dopadem průniku do takových strojů jsou rozsáhlé škody, na samotném hypervizoru může dnes běžet desítky virtuální mašin, proto už dnes moderní datacentra a VPS hostingy nabízejí šifrování celých samotných virtuálních strojů unikátním zákaznickým klíčem.
Pamatujte, že neštěstí nechodí po horách, ale po lidech, vzpomeňme “potopu” v datacentru Casablanca či záplavy v Plzni kdy to odneslo malé DC bývalého Contactelu.
Ostraha objektu je kapitola sama pro sebe, prakticky každý "akční" film při průniku využije selhání lidského faktoru.
- Vypněte reboot serveru pomocí Ctrl+Alt+Del
- Pozor na interaktivní boot distribucí RHEL, CentOS, Fedora [I] (/etc/sysconfig/init)
- Nastavte auto-logout z terminálu po X minutách
Instalace systému
Naplánujte si instalaci, udělejte ji pečlivě a v klidu, vyberte si vhodnou distribuce pro Vás a i zamýšlený účel, některé věci jsou po instalaci změnit snadno, jiné hůře, některé takřka vůbec.
- Nainstalujte “minimal system” , pouze základní balíčky a nástroje, doinstalujte potřebné služby nikoliv obráceně (nainstalovat vše a vypínat služby, v systému tak zůstane spousta knihovat, nástrojů, binárek…)
- Odděluje data a systém, vytvořte samostatné diskové oddíly ( /, /boot, /home, /var, /usr, /opt … atd.) a nastavte jim vhodné mount volby (nodev, nosuid, noexec,…), viz man mount, zvažte nastavení /boot oddílu jako read-only
- Šifrujte diskové oddíly/data
- Nekoncentrujte mnoho služeb dohromady na jeden stroj
- Odstraňte nepotřebné balíčky a služby, v software který není nainstalován určitě není bezpečnostní chyba
- Na UNIX server NEpatří GUI rozhraní (X-Window)
Hesla, přístup, SSH
Nikdy nepoužívejte pro přístup k administraci serveru nešifrované protokoly (plaintext), platí i pro administrace skrze http protokol.
Používejte silná hesla a vynucujte tuto politiku i pro běžné uživatele, nedovolte opakování hesel, pro představu 20 nejpoužívanějsí (slabých) hesel rok 2014, 2015.
Nastavte omezenou platnost hesel a automatické uzamčení účtu v případě expirace, opětovné manuální povolení účtu Vám zajistí “konzistenci” aktivně používaných účtů v systému.
- Zakažte přihlášení uživatel root přes SSH, používejte k přihlášení neprivilegováného uživatele a nástroj su, sudo, vždy používejte k přihlášení SSH protokol verze 2
- Přihlašujte se certifikáty místo hesel
- Omezte přihlášení k SSH z předem definovaných bezpečených strojů (firewall, ip adresy) nebo port knocking
- Použijte nástroje DenyHost, Fail2Ban
- Omezte login SSH na uživatele(AllowUsers), skupinu (AllowGroups)
- Logujte přihlašení uživatelů (notifikujte přihlášení root uživatele)
- Změňte výchozí port SSH (22) na nestandartní např. 8022 (security through the absurdity)
- Přijdete SSH login banner (/etc/issue.net, motd) s varováním o protiprávním jednání v případě neautorizovaného použití systému
Firewall
Zapněte firewall, udržujte aktuální pravidla, používejte restriktivní politiku (implicitní chování je DROP, zahození paketu), povolte jen služby (porty) které potřebujete, na žádnou službu tak nezapomenete a vše ostatní bude zákázano.
Pokud provozujte Linux router, implicitní politika FORWARD chain je DROP a povolujete pouze žádáné toky dat.
Konfigurace firewall je složitá a komplexní záležitost, vyplatí se mu věnovat čas, je to přávě on, kdo Vás může ochránit.
- Omezete/limitujte spojení a ICMP (ignorovat ICMP redirect +broadcast, atd.)
- Chraňte se před SYNflood a UDPflood útoky
- Nemáte IPv6 konektivitu? Zakažtě ji v jádře úplně.
- Reverse Path Filtering pro routery
- IPset a geo blokování (omezte své služby pouze na území kde to má smysl, např. IMAP/POP3 pouze ČR pokud jste tuzemská firma apod.)
- Blokujte útočníky z veřejných blacklistů, TOR sítě, proxy, botnety, spamhaus,…
- Blokujte pokusy o port scanning
- IDS/IPS (Suricata, psad, snort)
Bezpečností rozšíření jádra systému Linux
Pokud máte přehled můžete zvýšit bezpečnost samotného jádra systému Linux pomocí nástrojů SELinux, AppArmor, Grsecurity, s aplikací omezení může být problematické správně provozovat nekteré aplikace v rámce nastavených bezpečnostních kontextů
Monitoring systému, logy, detekce
Dohledujte nonstop své systémy, mějte přehled o jejich stavu, detekujte odchylky, nechte si reportovat podezřelé aktivity a přihlášení, hledejte změny v systémových souborech, kontrolujte logy a logujte na centrální remote syslog.
Pár nástrojů pro pomoc – tripwire, aide, lynis, rkhunter, chkrootkit, logwatch, munin, monit a mnoho dalších, hledejte suid programy, kontrolujte uživatele a jejich UID/GID, sledujte neovyklé procesy a využití CPU a RAM.
Monitoring je podstatná součást práce administrátora, je jen na něm jak moc velké peklo si z toho sám udělá.
Aktualizujte systém, knihovny, aplikace
Bez komentáře, alfa a omega bezpečnosti, udržujte své systémy aktualizované, je to Vaše práce, opět platí software který nepotřebujte odinstalujte.
Včas plánujte přechodu na další vydání systému, na serverech se často používají verze s dlouhodobou podporou (LTS, Long Time Support), ale i ty mají svojí životnost, mějte pod kontrolou životnost svého serveru.
Zálohování a obnova
Zálohujte, zálohujte, zálohujte … a ověřujte funkčnost záloh, servery dnes obsahuji terabajty dat, emaily, katalogy, www stránky, … připravte si recovery plán obnovy, buďte připraveni, pokud pracujete s cizími daty buďte opatrní a pojištění.
Hotovo!
Pamatujte, bezpečnost není stav, je to neustálý proces, hezky shrnuje pohled na bezpečnost Scott Culp ve své práci “10 neměných pravidel bezpečnosti“, jednoho dne to přijde a bezpečnost Vašeho systému bude otestována.
Pokud se článek líbil dejte nám echo, komentáře, sociálně sítě, email, zkusíme natočit případně i video na podobné téma či napsat další pokračování v podobě článku.
Užívejte moudře a díky za pozornost.
František Havel, MOJEservery.cz