Zabezpečení serveru

Z ZděchovNET
Verze z 5. 2. 2011, 10:18, kterou vytvořil Chronos (diskuse | příspěvky)
(rozdíl) ← Starší verze | zobrazit aktuální verzi (rozdíl) | Novější verze → (rozdíl)
Skočit na navigaci Skočit na vyhledávání

Díky technologickému pokroku a nízkým cenám výpočetní techniky dnes může provozovat vlastní server prakticky kdokoliv. Přesto při provozu serveru je dobré mít základní a lépe i pokročilé znalosti správy serveru a práce s použitým operačním systémem. K provozu serverů se poslední dobou dostávají i mladší uživatelé, kteří zprovozňují server bez patřičných znalostí a tyto servery se tak mohou stát snadným terčem útoku. Přestože na takových serverech jsou málokdy citlivá data, je vhodné věnovat se zabezpečení svého serveru a snažit se rozumně snížit riziko narušení funkce nebo zneužití serveru někým z internetu.

Linux

GNU/Linux je komplexní svobodný open source operační systém. Pro jeho použití je dobré si přečíst vhodnou vzdělávací literaturu.

Odkazy:

Brána firewall

Firewall slouží k filtrování síťové komunikace. Doporučuje se povolit pouze porty nezbytné pro fungování serveru. Vše co není povoleno by mělo být zakázáno. Firewall pouze částečně zmenšuje riziko pomocí blokován služeb. I tak je nutné řešit bezpečnost jednotlivých síťových služeb.

Odkazy:

Uživatelské účty

Oprávnění

Jednotlivým uživatelům se snažíme přidělovat jen ta oprávnění, která potřebují ke své práci. Není vhodné pracovat přímo pod uživatelským účtem root. Vhodnější je spouštět aplikace, které potřebují oprávnění roota přes povel sudo případně přes su -c <příkaz>.

Oprávnění pro jednotlivé uživatele nastavujeme přes soubor sudoers umístěný v konfiguračním adresáři etc. V tomto souboru je možné přidělit uživatelům např. oprávnění pro správu procesů, používání síťových nástrojů, aktualizaci systému a správu disků.

Odkazy:

Hesla

Doporučuje se používat silná hesla. Pro jednotlivé podsystémy je dobré používat odlišná hesla, aby prozrazení jednoho hesla neumožnilo útočníkovi zneužít další části systému.

Odkazy:

Spuštění programů

Není vhodné spouštět nedůvěryhodné programy pod uživatelským účtem root s plným oprávněním. Namísto toho je dobré vytvořit pro jednotlivé programy samostatné uživatele a spouštět tyto programy pod těmito omezenými účty. Z účtu roota můžete spustit program pod jiným uživatelem takto: su <uživatel> -c <program> (např. su mangos -c mangos-worldd)

Síťové přihlašování

K přihlášení ze sítě se používá především protokol SSH, který přenáší data v šifrované podobě. V rámci ochrany utajením je vhodné zablokovat možnost přihlásit se k účtu root ze sítě. Namísto toho je vhodné se přihlásit na svůj účet a spouštět aplikace přes sudo. Díky tomu je pak účet root chráněn ze sítě dvěma hesly. Zablokování roota se provede v konfiguraci SSH serveru v souboru /etc/ssh/sshd_config odkomentováním řádku PermitRootLogin no což znamená Povolení přihlášení roota ne.

Odkazy:

Systémové záznamy

Operační systém i samotné aplikace často vytváří záznamy o svém běhu zvané logy. Z pohledu bezpečnosti nás pro informaci zajímá informace o tom, kdo se přihlašoval k serveru. Záznam přihlášení přes SSH najdete v souboru /var/log/secure.

Dále systém loguje příkazy provedené přes sudo do souboru /var/log/sudo.log.


Windows

Multiplatformí aplikace

phpMyAdmin

Při přístupu k webovému rozhraní používejte šifrovanou komunikaci (SSL) zadáním protokolu https místo http do adresního řádku.

Pokud používáte v MySQL uživatelské účty bez hesla omezené pro lokální počítač, dejte pozor na to, že PHPMyAdmin a PHP skripty přistupují k SQL serveru z lokální IP adresy a pravidlo pro omezení z lokálního počítače se tedy nevztahuje na webové stránky. Je však možné v konfiguračním souboru config.php dále upřesnit oprávnění uživatelů. Předpokládejme, že používáme autorizaci přes HTTP ($cfg['Servers'][$i]['auth_type'] = 'http';). Pak je možné nastavit oprávnění přes:

$cfg['Servers'][$i]['AllowDeny']['order'] = 'deny, allow';
$cfg['Servers'][$i]['AllowDeny']['rules'] = array('deny &lt;uživatel&gt; from all');

Tímto zablokujeme přístup uživateli <uživatel>.

Odkazy:

MySQL server

Při konfiguraci MySQL serveru vždy nastavte heslo pro uživatele root. Lze doporučit přejmenování tohoto účtu na jiný a zamezit tak případným slovníkovým útokům. Jednotlivým uživatelům přidělujte oprávnění jen pro ty databáze a tabulky, které potřebují.

Dynamické webové stránky

U dynamických stránek napsaných např. v jazyce PHP se může objevit zranitelnost v podobě útoku tzv. SQL injection nebo také CSS(Cross Site Scripting). Vždy se pokuste zkontrolovat a zabezpečit stránky proti těmto útokům, které mohou vést až k získání obsahu vaší databáze včetně otevřených nebo i hashovaných hesel.

Odkazy: