» »

Zaščita strežnika

Zaščita strežnika

echoman ::

Pozdravljeni!

Pred nekaj meseci sem spraševal kater OS naj naložim na strežnik in odločil sem se za Ubuntu Server. Uporabljam zadnjo LTS različico, imam pa zaprte porte, tako da strežnik ni javno viden. Ker bi v kratkem za nekaj časa potreboval strežnik iz druge lokacije, nameravam odpreti porte, da bo strežnik viden. Po možnosti bom potem strežnik kar pustil prižgan - v primeru, da bo deloval popolnoma zanesljivo in brez problemov.

Zanima me, kako lahko zaščitim strežnik pred vdori in ostalo svinjarijo, da bo kar se da varen?

Zanima me še, kater FTP software naj naložim, da bom lahko konfiguriral stvar tako, da vsakemu uporabniku določim svojo mapo do katere preko FTPja dostopa?
V zvezi z zgornjim vprašanjem, me zanima kako naj naredim, da bodo v prihodnje mape odprte tako, da uporabnikom načeloma ne bo potrebno preurejevati pravic datotek/map?

Hvala! :)
  • spremenil: echoman ()

metalc ::

Če gre ves promet na strežnik izključno prek protokola TCP, je ena varianta, da inštaliraš strežnik SSH (najverjetneje je že inštaliran), ga popatchaš in še dodatno "utrdiš" po napotkih, nato s firewallom dopustiš prihajajoči promet izključno na SSHjev port (privzeto 22), če si paranoičen in če je izvedljivo, lahko dovoliš promet samo z določenih IP naslovov. Na strežniku moraš še omogočiti t.i. port forwarding (oz. posredovanje le določenih vrat), nato odjemalci vzpostavijo SSH povezavo na tvoj strežnik (če so na Windows, je treba uporabiti brezplačna Putty, Tunnelier ali kaj podobnega, na Unixu podobnih OS je tekstovni odjemalec najverjetneje že privzeto nameščen) in pri sebi skonfigurirajo port forwarding. Namesto da bi se odjemalci povezovali neposredno na tvoj strežnik, se bodo morali na nek port na odjemalcu, ki bo stvar po varnem SSH kanalu prenesel na strežnik, od tam pa bo šlo kamorkoli že. Prek SSH deluje tudi varen prenos datotek SFTP, ki se ga tudi sicer priporoča namesto FTP (tudi tekstovni odjemalec je zelo podoben kot pri FTP), kadar želiš dati dostop samo uporabnikom z računi na strežniku. Nekateri odjemalci SSH imajo tudi t.i. FTP-SFTP most, pri sebi poženejo FTP strežnik, ki nato datoteke prek SFTP prenese na ciljni strežnik.

Če ti omejitev samo TCP povezav ne ustreza, lahko postaviš OpenVPN in spet na strežniku dovoliš promet samo na en port (ne vem na pamet, kateri je privzet). V tem primeru morajo tudi odjemalci pri sebi namestiti OpenVPN in vzpostaviti varno zasebno omrežje.

Upam, da ni prekomplicirano ;)

roscha ::

Open VPN deluje preko UDP povezave na (privzetem) portu 1194. Seveda se ga da spremneit. Tako da neke hude razlike proti prejšnjem načinu v bistvu ni. Povezava je v obeh primerih ssl, kar pa je bistvo.

echoman ::

SSH je inštaliran, požarni zid je tudi - odprti le porti, ki se jih dejansko uporablja. Se pravi, da če imam to dvoje, bo strežnik načeloma dovolj varen?

Glede FTPja bi rad dejansko imel to kar sem že napisal. Se pravi, me zanima še to dvoje:

Zanima me še, kater FTP software naj naložim, da bom lahko konfiguriral stvar tako, da vsakemu uporabniku določim svojo mapo do katere preko FTPja dostopa?
V zvezi z zgornjim vprašanjem, me zanima kako naj naredim, da bodo v prihodnje mape odprte tako, da uporabnikom načeloma ne bo potrebno preurejevati pravic datotek/map?


Hvala!

Slowenc ::

Sedaj si pa spedenaj še 2048 bitne SSH ključe za prijavo na strežnik - in onemogoči prijavo brez le teh, pa si varen.
Skiny gate.

echoman ::

Sem sprobaval, vendar vsakič dobim error - da ni druge mogoče metode prijave, nato pa v oklepaju nekaj s publickey. Sem generiral s puttygenom in ustvaril mapo .ssh z authorized_keys datoteko, spremenil precej nastavitev, vendar stvar ni delovala. Nastavil sem še denyhosts, ker mi tole s ključi ni delalo, bo to dovolj glede na to, da mi nikakor ne uspe nastavit teh ključev?

Zanima me še, kater FTP software naj naložim, da bom lahko konfiguriral stvar tako, da vsakemu uporabniku določim svojo mapo do katere preko FTPja dostopa?
V zvezi z zgornjim vprašanjem, me zanima kako naj naredim, da bodo v prihodnje mape odprte tako, da uporabnikom načeloma ne bo potrebno preurejevati pravic datotek/map?

Tomay ::

Če ti koristi namesti še fail2ban ali kaj podobnega, ki ti po nekaj neuspelih poskusih za določen protokol zablokira ip za nekaj časa. Uporabno za ssh, pop3, ftp brute force napade.
Voodoo 4Ever

echoman ::

Se pravi da potem ne potrebujem DenyHosts, saj fail2ban ščiti tudi SSH poleg ostalih modulov?

ta-mau ::

Za delo s certifikati in windows mašinami (putty) si lahko pomagaš s tem tutorialom. Nazadnje ko sem postavljal nisem konretno po tem tutorialu delal, sem pa nahitro pogledal in je stvar podobna. Ko se lahko uspešno logiraš s pomočjo certifikatov disejblaj password authentication mode - pa pazi da ne ostaneš zunaj :)

(tako kot je slowenc svetoval..)

Zgodovina sprememb…

  • spremenil: ta-mau ()

echoman ::

Hvala, bom poskusil.

Zanima me še vedno glede DenyHosts, če ga kar izbrišem pred namestitvijo fail2ban?
Poleg tega pa me zanima še kako nastavite FTP in apache, da stvar z vsakim novim uporabnikom kreira dostop do svoje public_html mape?

Hvala! :)

terryww ::

selinux. primož je imel pred leti uvodno predavanje v kiberpipi...
It is the night. My body's weak.
I'm on the run. No time to sleep.

ABX ::

Kot je prvi odgovor.

SSH reši vse.
Vaša inštalacija je uspešno spodletela!

echoman ::

@terryww: sem pogledal zakaj se gre, vendar ne najdem kakršnihkoli napotkov kako se uporablja.

Kot sem že rekel, bom poskusil še s tistim vodičem, katerega je linkal ta-mau, da bo SSH varen. Res je, da SSH reši vse, vendar bi dostop do strežnika (do datotek v mapi) potreboval tudi iz kje drugje, kjer enostavno raje ne bi uporabljal SSHja in prenašal datoteke s ključem.

Torej me še vedno zanima glede DenyHosts, če ga kar izbrišem pred namestitvijo fail2ban?
Poleg tega pa me zanima še kako nastaviti FTP in apache, da stvar z vsakim novim uporabnikom kreira dostop do svoje public_html mape?

Slowenc ::

Kot sem že zgoraj napisal - uporabi SSH ključe. Raznih tutorialov in how-to-jev je polno, ni drugega kot da si vzameš čas in prebereš. Vsega skupaj, po spominu rečeno, je manj kot 10 stvari za nastavit.
Sam se moraš odločit kaj zate sploh pomeni varnost. Če nočeš uporabiti ključev pa zamenjaj vsaj SSH port na kaj drugega kot 22.
Skiny gate.

echoman ::

Ok, to bom sedaj zagotovo probal nastaviti.

Zanima me le še za FTP, kako bi skonfiguriral, da ob kreiranju uporabnika nastane nova mapa v njegovem /home direktoriju in jo potem apache pograbi, kot bi bila npr. mapa v www imenovana uporabnik. Rad bi torej, namesto da vsakemu uporabniku posebej dodeljujem privzeto mapo v /www/uporabnik, da se v /home/uporabnik ustvari še ena mapa /www (na koncu /home/uporabnik/www) in jo potem apache jemlje kot bi bila ta mapa v /www/uporabnik.

Hvala! :)

ta-mau ::

*edit: v tvojem primeru se boš ukvarjal le z generiranjem ključev in ne certifikatov kot sem omenil v prejšnem postu.

Tomay ::

echoman je izjavil:


Torej me še vedno zanima glede DenyHosts, če ga kar izbrišem pred namestitvijo fail2ban?
Poleg tega pa me zanima še kako nastaviti FTP in apache, da stvar z vsakim novim uporabnikom kreira dostop do svoje public_html mape?


Hosts file lahko pustiš. Fail2ban blokira z iptables.
Voodoo 4Ever

echoman ::

Hvala, mi je uspelo vse skupaj namestiti in skonfigurirati.

Edina stvar, ki me sedaj zanima je še, kako imate vi urejeno tisto s FTPjem in nalaganjem datotek?

Hvala!

ta-mau ::

Za ftp strežnik lahko poskusiš z proftpd... za tvoj prvi post pa si lahko pogledaš če najdeš kaj tukaj..

echoman ::

Sem našel odgovor na svoje vprašanje - rešitev je Apache2 mod UserDir.

Potrebujem pa še omejiti dostop uporabnikom v mapo public_html in da ne bodo mogli dostopati izven te mape.
Sedaj me zanima še kaj naj raje uporabim - proftpd ali vsftpd?

Hvala! :)

Blisk ::

Preveč komplicirat ni pr teh zadevah, ker si potem zakompliciraš življenje.
Kot prvo naložiš gor en firewall, ki NI po defoltu. Jaz si naprimer naložim shorewall, ki ga je zelo lepo urejati preko webmina.
Prižgan imam ssh, ftp, pop3, smtp, imap in še kaj. Vendar je naložen tudi fail2ban, zelo fajn zadeva, samo jo moraš dobro skonfigurirat. Ta ti po naprimer 3 poizkusih vdora na ssh blokira IP ali na pop3 ali katerkoli port nastaviš.
Dostop do ssh in ftp in te zadeve, ki so kritične pa v firewallu zakleneš na tvoje IP naslove, se pravi ostali ne morejo dostopat gor.
Seveda, ko je server v stanju obratnovanja ugasneš GUI, ugasneš webmin, ugasneš vnc-server itd, vse kar pač en rabiš za obratovanje serverja in si to prižgeš samo takrat ko rabiš. Obvezno pa moraš met vključen SElinux. Će ti že kdo vdre gor, kar je malo verjetno, ti ne bo mogel po celem serverju delat štale ampak samot am kjer je vdrl naprimer na apache. Apache_mod je precej zajebana zadeva in ti velik stvari ne bo delal, jaz sem ga moral določen del disablat. Za ftp lahko uporabiš pure-ftp, ki ima tudi GUI kjer lahko nastaviš kdo lahko uporablja na IP in koliko lahko downloada in uploada, itd.

Zgodovina sprememb…

  • spremenil: Blisk ()

echoman ::

Hvala!

Sem sedaj zrihtal celotno zadevo, glede omejevanja ssh, ftp, ... na svoj IP pa ne bo šlo, ker imam namen te storitve uporabljati na več lokacijah (pravtako ne morem zakleniti IPja na teh lokacijah). Kolikor gledam webmin sploh ni tako potraten, tako da ga imam namen imeti kar prižganega, v primeru da bo potrebno dodati kakšnega uporabnika ali kaj takega.

Imam še eno vprašanje glede upravljanja domen. Zanima me kako bi spremenil hostname računalnika na določen IP (tisti preko katerega je server tudi dostopen), da bi bilo možno pošiljati in prejemati pošto. Kasneje imam namen povezati še domeno, katero bi potem zamenjal za IP (tako kot bi sedaj hostname za IP), kako pa to poteka pa sem si že pogledal. Je torej možno zaenkrat zamenjati hostname za IP?

Hvala! :)

P.S.: No ja.. spomnil sem se, da mi nekaj glede ProFTPDja še ni uspelo. Direktorij dostopa bi rad zaklenil na public_html (v /home/user/ mapi), vendar mi to pri navadnih uporabnikih ne uspe. Deluje na glavnem uporabniku (ne root), na navadnih pa ne, kljub temu da sem se precej ukvarjal z zadevo. Mogoče kdo ve kaj bi moral narediti poleg tega da pri DefaultRoot nastavim ~/public_html?

Blisk ::

Glede dostopa z zaklenjenim IPjem, lahko narediš tako, da spremeniš port za te servise da ne delajo na default portih kar je veliko bolj varno. Jaz imam, zaradi teh zadev, da lahko dostopam, do serverjev z različnih IPjev nameščen eno windows mašino, ki ima statičen IP in softwer, ki mi po reštartu vedno postavi windowse na stanje takoj po inštalaciji. Se pravi pobriše čisto vse kar sem delal na tej mašini, poleg tega pa se sama spravi v stanje spanja po 10ih minutah in zbudim jo z WOL, ko jo rabim.
Se pravi, ko rabim it na določen server, grem na to windows mašino in preko te mašine na server, kerkoli že.

Kot drugo webmin je ugasnjen zaradi varnosti, če ga rabim, poženem putty in potem poženem preko terminalskega okna servis za webmin.

Glede pošte rabiš registrirat domeno pri kateremkoli registrarju že, ta registrat, ko plačaš domeno, mu daš IP naslov svojga serverja in jo on vnese v svoj sistem se pravi da je domena vezana na tvoj IP.

Z PROftp se nisem ukvarjal, raje ima PUREftpd. Lažje ga je nastaviti in deluje!

echoman ::

Zanima me še, če registrarja kontaktiram preko e-pošte (oz. nekaj podobnega) ali je to podobno kot pri shared hostingu - kupiš domeno, jo nastaviš v nastavitvah, enako narediš za hosting?

S čim potem povežem domeno na server in kako delam poddomene?

Hvala! :)

Blisk ::

echoman je izjavil:

Zanima me še, če registrarja kontaktiram preko e-pošte (oz. nekaj podobnega) ali je to podobno kot pri shared hostingu - kupiš domeno, jo nastaviš v nastavitvah, enako narediš za hosting?

S čim potem povežem domeno na server in kako delam poddomene?

Hvala! :)


Ja skoraj enako.
Domeno povežeš z IP naslovom tvojega strežnika, mora imeti fiksen IP naslov in zunanji IP naslov.
Če imaš doma ruter moraš nastaviti na ruterju DMZ na tvoj notranji IP naslov od trežnika, če je na notranji strani IPjev tvoj server.
Potem pa na njihovi spletni strani oz. prek vmesnika, če ti oni ne nastavijo si sam nastaviš.

Najbolje je, da ti naprimer za zunanji IP naslov nastavijo naprimer za domeno www.bedarije.com z zunanjim Ip naslovom 123.234.345.456 takole
*.bedarije.com -> 123.234.345.456

Potem pa ti na strežnikuv apacheju nastaviš poddomeno. Ker zvezdica ti omogoči, da sam na serverju delaš poddomene.
in karkoli boš dal tam namest zvezdice bo delalo, samo da moraš v apacheju nastavit mapo iz kje bere.
naprimer... jaka.bedarije.com ali delam.bedarije.com
če si mislil poddomeno z www.bedarije.com/jaka
to delaš vse na svojem strežniku z apache


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Varen dostopat do strežnika

Oddelek: Informacijska varnost
304717 (3154) galu
»

Domači strežnik (strani: 1 2 )

Oddelek: Omrežja in internet
8011655 (9748) Zalachenko
»

Kater OS za "webserver"?

Oddelek: Operacijski sistemi
353027 (2457) echoman
»

clarkconnect rabim poomoč pri inštaliranju! (strani: 1 2 3 4 5 )

Oddelek: Operacijski sistemi
23015959 (7498) Gapi
»

Napad na FTP server

Oddelek: Informacijska varnost
161503 (1024) amigo_no1

Več podobnih tem