Zabezpečení domácího serveru

Mirek

Zabezpečení domácího serveru
« kdy: 10. 09. 2011, 22:46:00 »

Zdravím, mohl bych poprosit zkušenější o konzultaci?

Zkouším si rozchodit malý domácí server (Apache + PHP + FTP + SSH pro správu). Hlavním smyslem je se něco přiučit + zkusit trochu uspořit za hosting.

Protože jsem v tomto směru začátečník, nahodil jsem zkusmo nqa počáteční pokusy Ubuntu 10.04. Server je fyzicky zapojen v rámci LAN přes bridge a na ten bude napojen router, ze kterého je na server směrováno pouze http. Na serveru samotném se pokusím povypínat co nejvíc procesů, v rámci firewall povolím zvenčí (od routeru) pouze http + FTP a SSH v rámci lokální sítě pro vybranou IP.

Je to smysluplné? Poradíte případně na co se mám ještě zaměřit? Díky Mirek


Jenda

Re: Zabezpečení domácího serveru
« Odpověď #1 kdy: 11. 09. 2011, 00:20:32 »

Zdravím, mohl bych poprosit zkušenější o konzultaci?

Zkouším si rozchodit malý domácí server (Apache + PHP + FTP + SSH pro správu). Hlavním smyslem je se něco přiučit + zkusit trochu uspořit za hosting.

Protože jsem v tomto směru začátečník, nahodil jsem zkusmo nqa počáteční pokusy Ubuntu 10.04. Server je fyzicky zapojen v rámci LAN přes bridge a na ten bude napojen router, ze kterého je na server směrováno pouze http. Na serveru samotném se pokusím povypínat co nejvíc procesů, v rámci firewall povolím zvenčí (od routeru) pouze http + FTP a SSH v rámci lokální sítě pro vybranou IP.

Je to smysluplné? Poradíte případně na co se mám ještě zaměřit? Díky Mirek
Pokud tam přes to FTP nahráváš soubory (=je na přihlášení), tak je to neštěstí samo o sobě, obzvláště není-li šifrované.

Kit

Re: Zabezpečení domácího serveru
« Odpověď #2 kdy: 11. 09. 2011, 08:36:59 »

Zkouším si rozchodit malý domácí server (Apache + PHP + FTP + SSH pro správu). Hlavním smyslem je se něco přiučit + zkusit trochu uspořit za hosting.

Mirek
Pokud tam přes to FTP nahráváš soubory (=je na přihlášení), tak je to neštěstí samo o sobě, obzvláště není-li šifrované.

FTP je skutečně zbytečné. Soubory se dají pohodlně nahrávat SFTP. Bez FTP budeš mít o jednoho démona a jednu bezpečnostní díru méně.

Mirek

Re: Zabezpečení domácího serveru
« Odpověď #3 kdy: 12. 09. 2011, 08:38:21 »
Děkuji za rady. S tím FPT je to recht, šlo mi primárně o sítový share, ale nedošlo mi že je tu tolik hezkých řešení :). Chtěl bych ale využívat i služeb sítové tiskárny, zkusím tohle asi pořešit přes sambu...

Jen se doptám, hraju si teď s nastavením fw. Jaká je obecně šance napadení z vnější sítě přes ADSL router, který forwarduje jen http?

A podružný dotaz, jsou nějaké "bezpečné" (potřebné pro aktualizace apod.) porty, které nemám zapomenout povolit při nastavení firewall?

aaa158

  • ***
  • 238
    • Zobrazit profil
    • E-mail
Re: Zabezpečení domácího serveru
« Odpověď #4 kdy: 12. 09. 2011, 13:42:42 »
Porty zvonku ziadne specialne netreba - ak v iptables nemas pravidla na zakaz OUTPUT tak aktualizacie atd bude behat OK. Ja mam doma otvoreny iba 1 port - 443 (SSL) a vsetko funguje. Pre tvoj Apache port http+ssh staci. Ak nemas https tak odporucam nahodit sshd na port 443, predides 90% skriptovanych utokov. Samozrejme tiez "PermitRootLogin No", a najlepsie sa prihlasovat klucom a pouzit "PasswordAuthentication no, PubkeyAuthentication yes, AllowUsers <tvojUser>"


Re: Zabezpečení domácího serveru
« Odpověď #5 kdy: 12. 09. 2011, 13:58:36 »
Jen se doptám, hraju si teď s nastavením fw. Jaká je obecně šance napadení z vnější sítě přes ADSL router, který forwarduje jen http?

Na to si přece umíš odpovědět sám, když použiješ selský rozum:

Jak mi někdo může napadnout stroj, na který má jen spojení přes http/apache?
Selská odpověď: buď musí být díra v apachi, nebo v nějaké webové aplikaci, kterou tam provozuju, a útočník jí musí umět identifikovat a využít.

A pokud máš něco jiného povoleného z nějakých "privilegovaných" strojů v té lokální síti, tak taky může jít přes tyhle stroje.

Mirek

Re: Zabezpečení domácího serveru
« Odpověď #6 kdy: 13. 09. 2011, 09:11:33 »
aaa158:

Pravdu máš a to s tím https je dobrý nápad :) díky, ukládám do dlouhodobé paměti. Já ale zvenčí vyhnu i SSH, protože na to bude přístup jen z vnitřní sítě.

Mirek:

Bojím se, že "selským rozumem" obvykle většina problémů začíná. Takže se chci raději poradit se zkušenějšími, než pak přijde někdo třebas jenom se source routingem a já se budu divit, jak mi mohl někdo napadnou počítač, který má spojení jen přes http...


Můžu se ještě optat, jak je to s PHP? Na několika fórech jsem narazil na vlnu paniky ohledně jeho "děravosti" a složité konfigurace v domácích podmínkách (nemám na mysli neošetřené XSS apod.). Jsou zde nějaké specialitky na co si dát pozor?

tomfi

Re: Zabezpečení domácího serveru
« Odpověď #7 kdy: 13. 09. 2011, 09:37:52 »
Ahoj,
dobrým začátkem jsou doporučení pro nastavení zabezpečení od NSA http://www.nsa.gov/ia/guidance/security_configuration_guides/index.shtml

V sekci OS jsou uvedena doporučení pro linux (konkrétně pro RH, ale většina platí obecně)... tebe asi bude zajímat převážně podkapitola "sítě a firewall" a celá kapitola "služby".
Pro IPv6 tam je samostatný guide v sekci IPv6.

U distribucí najdeš i security guide přímo tvé distribuce (myslím přímo distribuční, ne NSA). Například debian:
http://www.debian.org/doc/manuals/securing-debian-howto/index.en.html

PS: je toho opravdu dost co by jsi měl mít na zřeteli, proto si raději udělej obrázek sám.. je to lepší, než jenom bezmyšlenkovitě poslechnout někoho na fóru a pak žít roky v domění, že tvůj systém je zabezpečený... i když na druhou stranu: slepota je často pohodlnější :)

Re: Zabezpečení domácího serveru
« Odpověď #8 kdy: 13. 09. 2011, 10:22:46 »
Bojím se, že "selským rozumem" obvykle většina problémů začíná. Takže se chci raději poradit se zkušenějšími, než pak přijde někdo třebas jenom se source routingem a já se budu divit, jak mi mohl někdo napadnou počítač, který má spojení jen přes http...

Já si myslím, že co se týče bezpečnosti, častější je opak - nainstaluju si kdejaký "bezpečnostní nástroje", mám pocit, jak jsem to vyhmátl, ale nepoužiju selský rozum na to, abych si vůbec uvědomil, co mi hrozí, odkud, s jakou pravděpodobností a jak bych tomu měl zamezit...

Podle mě selským rozumem to musí začít a až teprve potom, když mám jasno, hledat nějaké nástroje a vychytaniny...

Jenda

Re: Zabezpečení domácího serveru
« Odpověď #9 kdy: 13. 09. 2011, 13:36:56 »
Samozrejme tiez "PermitRootLogin No"
A to pomůže konkrétně jak? (nijak)

trubicoid2

Re: Zabezpečení domácího serveru
« Odpověď #10 kdy: 13. 09. 2011, 14:06:47 »
trochu to pomuze

Kód: [Vybrat]
refused connect from root@174.133.114.42

Jenda

Re: Zabezpečení domácího serveru
« Odpověď #11 kdy: 13. 09. 2011, 15:58:57 »
trochu to pomuze

Kód: [Vybrat]
refused connect from root@174.133.114.42
A to tedy pomáhá čemu?

Sten

Re: Zabezpečení domácího serveru
« Odpověď #12 kdy: 13. 09. 2011, 16:02:10 »
Samozrejme tiez "PermitRootLogin No"
A to pomůže konkrétně jak? (nijak)

Pokud tam je slabé nebo žádné heslo roota, tak to pomůže hodně. Navíc to řádově zvedá složitost útoku, útočník kromě hesla roota musí uhodnout ještě uživatelské jméno a heslo pro toho uživatele. Samozřejmě klíče tohle řeší, ale i částečná bezpečnost je lepší než žádná.

Granda Urso

  • *
  • 13
  • Ne estas pano sen laboro!
    • Zobrazit profil
    • univerzální celosvětový jazyk
    • E-mail
Re: Zabezpečení domácího serveru
« Odpověď #13 kdy: 13. 09. 2011, 16:11:33 »
trochu to pomuze

Kód: [Vybrat]
refused connect from root@174.133.114.42
A to tedy pomáhá čemu?
To je dost důležité. Zakáže to přihlašování přes SSH rootovi, tj pokud by někdo uhodl heslo roota tak je to v pytli. Nikdo se nemůže přes SSH přihlásit jako root ale pouze jako uživatel s omezeným oprávněním. Navíc už útočník neví jaké máš další účty (root je vždy). Po připojení bežného uživatele přes SSH se zadá
Kód: [Vybrat]
su<ENTER>
heslo roota<ENTER>
a je to.

Jenda

Re: Zabezpečení domácího serveru
« Odpověď #14 kdy: 13. 09. 2011, 16:27:28 »
trochu to pomuze

Kód: [Vybrat]
refused connect from root@174.133.114.42
A to tedy pomáhá čemu?
To je dost důležité. Zakáže to přihlašování přes SSH rootovi, tj pokud by někdo uhodl heslo roota tak je to v pytli. Nikdo se nemůže přes SSH přihlásit jako root ale pouze jako uživatel s omezeným oprávněním. Navíc už útočník neví jaké máš další účty (root je vždy). Po připojení bežného uživatele přes SSH se zadá
Kód: [Vybrat]
su<ENTER>
heslo roota<ENTER>
a je to.
Pokud se na systému používají uhodnutelná hesla, řešil bych to zesilováním hesel a ne tanečky okolo přihlašování na jiného uživatele.

Kombinace uživatele jenda s heslem mojeheslo je stejně silná, jako kdybys rootovi rovnou nastavil jako heslo "jendamojeheslo". A ušetříš si jedno su a spoustu problémů například s tím, až budeš chtít pomocí rsyncu nebo rdiff-backupu odzálohovat nějaké systémové soubory, ke kterým má přístup pouze root.

Vhodnější ale bude nastavit nějaké ještě silnější heslo, nebo se nejlépe přihlašovat klíčem.