Best practise – nastavení linuxového serveru
- kedrigern
- Člen | 102
Zdravím,
je někde nějaký (dobrý) článek, či kvalitní doporučení jak:
- Mít nastavené přístupové údaje, jaké uživatele používat etc. obecně.
- Jak např. ošetřovat situaci, kdy uživatel nahrává soubory na server.
- Popřípadě na co dál si dát pozor.
Vím, že je krátká zmínka v quickstartu, ale já bych uvítal něco komplexnějšího. Ideálně od situace: mám nainstalované mainstremové linuxové distro (např. Debian), Apache + mod rewrite.
Uvítám i něco obecného, ale kdyby někdo znalý Nette řekl, že to platí i pro Nette.
PS: Nejsem analfabet, znám různé zásady a tak, ale jde mi o zkušenost a případné praktické zkušenosti u Nette.
- Elijen
- Člen | 171
Neco podobneho mi take chybi. Vetsinu veci s nastavenim Linuxoveho serveru jsem se naucil metodou pokus/omyl a „dokud to funguje, tak na to nesahej“ … Nicmene citim, ze se mi to jednou seredne vymsti :)
PS: Mozna by neco podoneho mohla vytvorit zdejsi komunita. Kdyz nekdo napise, jak to dela on, tak ho tu hned ostatni zjebnou, ze to dela spatne a nakonec se treba dokopeme k peknemu seznamu „best practices“.
Editoval Elijen (25. 8. 2012 18:15)
- Elijen
- Člen | 171
Takze podle me (budu rad, kdyz me nekdo zjebne a poradi jak to delat lepe):
- K prihlasovani pouzivat zasadne public/private zasifrovany pomoci silneho hesla.
- V nastaveni SSH serveru zakazat prihlaseni bez klice.
- Osobne preferuju prihlaseni primo na roota bez nutnosti zadavani su nebo sudo (nebavi me porad hledat a zadavat heslo).
- Vlastnik souboru projektu (Nette) je vetsinou root a skupina www-data (apache), pripadne muze byt vlastnik konkretni uzivatel (pokud to nejsem ja).
- Prava souboru 0640, prava adresaru 750, adresare log a temp maji 770
- Vsechny projekty mam v adresari /var/www/[nazev_projektu], pokud uzivatel potrebuje nahravat soubory pres FTP je vlastnikem souboru v tomto adresari a adresar ma namountovany do /home/[nickname] (coz je jeho root nastaveny pomoci chroot – nikam jinam nemuze)
- ViPEr*CZ*
- Člen | 817
Podle mě stačí se na SSH přihlašovat i pomocí silného hesla, samozřejmě pokud si ssh nastavím na SSL klíče a ještě ho omezím na určité IP adresy, pak to bude asi nejsilnější možnost co existuje. Samozřejmě je dobré ještě klíč udržovat na nějaké zašifrované flashce, ale to už budu hodně paranoidní.
Přihlášení přímo na roota určitě nedoporučuju pokud jsem tak paranoidní už v bodě jedna. A doporučuje se sudo namísto su, samotné su se vůbec nedoporučuje, protože to je prakticky to samé jako se přihlásit na roota. I když třeba mc přes sudo je prakticky podobné se přepnout přes su.
Vlastník souborů Nette … záleží kolik lidí používá server atd. V zásadě by k nim měl mít přístup www server a jejich vlastník… www server minimálně pro čtení a vlastník samozřejmě pro vše. Temp a log může mít 770 za předpokladu, že www server je ve skupině co vlastní daná data.
Tady jsem to příliš nepochopil proč to tak je. Server je produkční nebo vývojový? Na produkčním bych totiž předpokládal adresy /var/www/domain.tld/[nazev_projektu]. Co to je za další uživatele co přistupují přes FTP? Nebude už teda lepší, když se kouká na bezpečnost lepší sFTP? Popřípadě využití git nebo svn?
- Elijen
- Člen | 171
- klic je o neco bezpecnejsi ale hlavne (alespon pro me) jeho pouziti je mnohem pohodlnejsi
- zalohovat si klic je urcite dobry napad, take se obcas vytvari uzivatel „toor“, ktery ma stejna prava jako root (pouze) pro pripad, ze se z nejakeho duvodu nepujde za roota prihlasit (stava se) … heslo pro tohoto uzivatele by melo byt „hustodemonsky krutoprisne“ a ulozene nekde na bezpecnem miste :)
- vim, ze spousta lidi prihlaseni za roota nedoporucuje, ale pamatovat si heslo na vsechny stroje je nad me sily a i jeho kopirovani z nejake DB hesel je strasny opruz … pres sudo se toho imho da znicit stejne jako primo pres roota
- v mem pripade [nazev_projektu] == domain.tld :)
- SFTP by urcite bylo dobre, pouzivam ProFTPD jehoz nastaveni byl dost velky opruz takze jsem se drzel zmineneho „dokud to funguje, tak na to nesahej“ … nicmene koukam, ze ProFTPD ma mod_sftp
- FTP je tam vlastne jen kvuli „neprogramatorum“, kteri potrebuji nekam
nahrat obrazek, logo, xml apod., kod se nahrava pres
git pull
coz bych chtel vymenit za nejaky deploy system, ale zatim jsem nenarazil na nic dostatecne pohodlneho (nejake doporuceni?)
Editoval Elijen (25. 8. 2012 19:59)
- ViPEr*CZ*
- Člen | 817
Určitě použití klíče bude bezpečnější než uhodnotí nějakého hesla, samozřejmě se utočník nesmí zmocnit tohoto klíče. Ale ohledně roota je běžná praxe taktéž zakázat vzdálený login pro roota přes ssh, aby se o to nemohli pokoušet žádní vychytralý roboti. Taktéž je dobré použít nějaký soft typu fail2ban, který po x neúspěšných pokusech zablokuje další pokusy o přihlášení. Taktéž je dobré že instance sudo po čase vyprší a root je tak opět nedosažitelný, pro případ, že se by se útočník zmocnil PC, které se k serveru připojuje.
Achá, tak to pak jo, takže produkční server.
sFTP podporuje samotný ssh, není potřeba nic doinstalovávat… jako klienta doporučuju program WinSCP.
Kód přes git a obrázky přes FTP? Není lepší mít obrázky součástí celého projektu?
- Elijen
- Člen | 171
ViPErCZ napsal(a):
sFTP podporuje samotný ssh, není potřeba nic doinstalovávat… jako klienta doporučuju program WinSCP.
Nepleteš si SFTP se SCP? Pochybuji, že by SSH v sobě mělo zabudované FTP. Mohl bych zvážit místo SFTP použít SCP ale nevím jaké by to mohlo mít omezení/výhody.
Kód přes git a obrázky přes FTP? Není lepší mít obrázky součástí celého projektu?
Tohle se spíše týká Magenta než Nette, kde si třeba klient může instalovat sám moduly nebo měnit různá loga a obrázky přes FTP aniž by mě s tím prudil. Nicméně tohle je výjimečný případ, běžně bych to měl koplet přes git.
Editoval Elijen (25. 8. 2012 21:33)
- ViPEr*CZ*
- Člen | 817
No v tom případě se pletou všude jinde… například: http://www.uhk.cz/…default.aspx
Rozumím. ;-) Ostatně klasické FTP se stále hojně využívá ;-)
- Patrik Votoček
- Člen | 2221
ve zkratce a v bodech
- přihlášení pouze pomocí ssh klíče
- zakázané přihlášení na roota
- sudo je jasná věc
- jiný ssh port
- uživatel per aplikace (tj aplikace www.pepa.cz ma jineho usera než aplikace www.standa.cz)
- apache
- fpm (pool)
- díky tomu se nemusí řešit práva na složky a soubory
- zapomenout že existuje něco jako ftp
- zálohování
- monitoring