Forum » Programiranje » Zaščita web servisa
Zaščita web servisa
tx-z ::
Na strežniku imam nek web servis, na katerega se povezuje nek drug računalnik (IP tega računalnika se spreminja).
Kakšne so kej opcije, da zaščitim ta web servis, da ne bi kar nekdo dostopal do njega? V osnovi imam neko geslo, ki ga moraš podat kot parameter, ampak to ne vem če kej koristi sploh iz smisla varnosti?
Kakšne so kej opcije, da zaščitim ta web servis, da ne bi kar nekdo dostopal do njega? V osnovi imam neko geslo, ki ga moraš podat kot parameter, ampak to ne vem če kej koristi sploh iz smisla varnosti?
tx-z
cen1 ::
Če hočeš da se samo tisti računalnik povezuje gor potem je najbolj popolna možnost da dobiš statičen IP in potem s firewallom blokiraš vse ostalo.
SeMiNeSanja ::
Če firewall podpira avtentikacijo uporabnikov, lahko s tem še dodatno omejiš zadevo (spustiš samo avtenticiranega uporabnika).
Druga možnost je VPN povezava, s pomočjo katere ravno tako avtenticiraš uporabnika na drugi strani.
Druga možnost je VPN povezava, s pomočjo katere ravno tako avtenticiraš uporabnika na drugi strani.
mirancar ::
SeMiNeSanja ::
V osnovi imam neko geslo, ki ga moraš podat kot parameter, ampak to ne vem če kej koristi sploh iz smisla varnosti?
zakaj to nebi bilo dovolj Ok?
Ker se da lepo bruteforce napad izvest?
Ker ima web servis lahko varnostne luknje, s katerimi se ne želi ubadati, saj ima takointako samo enega (znanega) uporabnika?
itd...
Prav nič ni narobe, če razmišlja o zaščiti. Definitivno bolje, kot si reči 'na svetu je nekaj miljard IP naslovov, pa ja ne bodo glih mojega hekali'.
Spura ::
SeMiNeSanja ::
Poenostavljeno povedano je MITM 'napad', ko nekdo prestreže tvojo zahtevo, ki jo pošiljaš spletnemu (ali drugemu) strežniku, 'pogleda' kaj si poslal in potem namesto tebe pošlje zahtevo strežniku (lahko tudi spremenjeno zahtevo).
Ko strežnik odgovori, ta odgovor najprej prejme 'napadalec', ki lahko odgovor 'pogleda' in ti ga posreduje naprej (tudi tu lahko naredi kakšno spremembo v odgovoru).
Čar tega je, da ponavadi ne veš, da je nekdo 'bral' kar si komuniciral s spletnim strežnikom.
Sam princip kot tak, uporabljajo proxy strežniki že od pradavnine, tako da ni kar vse MITM napad, kar gre preko nekega posrednika (po tvoji volji ali brez nje). Brez tega nebi delovali caching serverji, ad-blockerji, kot tudi ne številni varnostni proxiji, ki se uporabljajo za zaščito omrežij.
O 'napadu' lahko govorimo predvsem takrat, ko se v promet vključi nekdo 'nepooblaščen' z zlemi namerami (vohljanje za podatki, gesli, namerno spreminjanje podatkov, itd.).
Ko strežnik odgovori, ta odgovor najprej prejme 'napadalec', ki lahko odgovor 'pogleda' in ti ga posreduje naprej (tudi tu lahko naredi kakšno spremembo v odgovoru).
Čar tega je, da ponavadi ne veš, da je nekdo 'bral' kar si komuniciral s spletnim strežnikom.
Sam princip kot tak, uporabljajo proxy strežniki že od pradavnine, tako da ni kar vse MITM napad, kar gre preko nekega posrednika (po tvoji volji ali brez nje). Brez tega nebi delovali caching serverji, ad-blockerji, kot tudi ne številni varnostni proxiji, ki se uporabljajo za zaščito omrežij.
O 'napadu' lahko govorimo predvsem takrat, ko se v promet vključi nekdo 'nepooblaščen' z zlemi namerami (vohljanje za podatki, gesli, namerno spreminjanje podatkov, itd.).
Zgodovina sprememb…
- spremenilo: SeMiNeSanja ()
tx-z ::
Sem omejil na range IP-jev, kar pač izloči 99% vseh ostalih na svetu; ni velik ampak prvi korak je.
Drugi je potem prenos na https protokol.
Tretji, avtentikacija...A basic authentication je tisto kar recimo na apacheju daš v .htaccess (Require valid-user) ? A je to smiselno? Ali je bolje razmišljati o kakšnem oauth2?
Drugi je potem prenos na https protokol.
Tretji, avtentikacija...A basic authentication je tisto kar recimo na apacheju daš v .htaccess (Require valid-user) ? A je to smiselno? Ali je bolje razmišljati o kakšnem oauth2?
tx-z
nightrage ::
Avtentifikacija oz. prijava v tvoj web servis preko kakšnega AD bi morala biti v tvojem primeru na prvem mestu.
Maximus ::
webservis lahko zaščitiš na ta način, da pred njega postaviš reverse web-proxy ki izvaja avtentikacijo in avtorizacijo.
Klientu ki kliče web servis podaš certifikat (nekaj kar ima) in mogoče še kako dodatno geslo (nekaj kar ve) da se avtenticira proti reverse web-proxyju. Če se vse ujame, reverse web-proxy v imenu klienta pošlje zahtevek do web servisa in nato odgovor posreduje klientu.
Na ta način zaščitiš webservis pred DDoS, bruteforce in drugimi napadi. Če se že kdo loti napada, bo kvečjemu usul reverse web-proxy in ne samega web servisa. In pa kot je bilo zgoraj že omenjeno, prenesi komunikacijo v SSL.
lp,
Max
Klientu ki kliče web servis podaš certifikat (nekaj kar ima) in mogoče še kako dodatno geslo (nekaj kar ve) da se avtenticira proti reverse web-proxyju. Če se vse ujame, reverse web-proxy v imenu klienta pošlje zahtevek do web servisa in nato odgovor posreduje klientu.
Na ta način zaščitiš webservis pred DDoS, bruteforce in drugimi napadi. Če se že kdo loti napada, bo kvečjemu usul reverse web-proxy in ne samega web servisa. In pa kot je bilo zgoraj že omenjeno, prenesi komunikacijo v SSL.
lp,
Max
SeMiNeSanja ::
Jaz sploh nebi toliko kompliciral zaradi enega samega uporabnika (razen če imaš v načrtih dati servis na razpolago širšemu občinstvu).
Pri enem samem uporabniku postaviš OpenVPN ali kakšno IPSec varianto in se ne ubadaš z ostalimi zadevami.
Če pa imaš v planu stvari kasneje nuditi širšemu krogu uporabnikov in bi jih rad omejeval, da res lahko do servisa pridejo zgolj tisti, ki jim to dovoliš, potem se bo pa treba spogledati s SSL komunikacijo in client-side certifikati.
Reverse web proxy pa se mi zdi overkill za neko 'domačo rešitev'. Če imaš zadevo v požarni pregradi, potem jo seveda lahko uporabiš, ampak Tomato&Co mislim, da tega še dolgo ne bodo nudili.
Pri enem samem uporabniku postaviš OpenVPN ali kakšno IPSec varianto in se ne ubadaš z ostalimi zadevami.
Če pa imaš v planu stvari kasneje nuditi širšemu krogu uporabnikov in bi jih rad omejeval, da res lahko do servisa pridejo zgolj tisti, ki jim to dovoliš, potem se bo pa treba spogledati s SSL komunikacijo in client-side certifikati.
Reverse web proxy pa se mi zdi overkill za neko 'domačo rešitev'. Če imaš zadevo v požarni pregradi, potem jo seveda lahko uporabiš, ampak Tomato&Co mislim, da tega še dolgo ne bodo nudili.
Mavrik ::
Reverse web proxy je lahko preprosto en nginx ki obenem služi kot forward cache. Kaj takšnega je precej trivialno skonfigurirati in se pozna tudi pri hitrosti.
The truth is rarely pure and never simple.
SeMiNeSanja ::
Že mogoče, da je zadeva (nginx) preprosta, ampak načeloma ni mišljena, da bi laufala na isti mašini kot web server (če nič drugega, imaš potem probleme s porti, ki jih moraš preusmerjati). Da bi pa zaradi ENEGA uporabnika postavljal dodatno mašino, pa definitivno nima smisla.
Mufasa ::
Ssh tunell z client certom in call na localhost:19999/xy...to je ajnfoh.. vpn ki pa je cisti overkill ako je toj sole purpose dostop do enega endpointa je bloated opcija.
"Es ist nicht genug, zu wissen, man muss auch anwenden;
es ist nicht genug, zu wollen, man muss auch tun."
- Johann Wolfgang von Goethe
es ist nicht genug, zu wollen, man muss auch tun."
- Johann Wolfgang von Goethe
SeMiNeSanja ::
Ssh tunell z client certom in call na localhost:19999/xy...to je ajnfoh.. vpn ki pa je cisti overkill ako je toj sole purpose dostop do enega endpointa je bloated opcija.
Če že ima vzpostavljen npr. OpenVPN (ali podobno)za lastni oddaljeni dostop, potem to ni noben tak poseben overkill.
Sploh pa se mi zdi, da OP ni povedal, na kateri platformi ima postavljen web server. Če je MS, je potem treba biti še pazljiv pri izbiri ssh software-a. Sem namreč že videl ljudi, ki so si od nevemkje navlekli nek ssh server, ki je zadnji update doživel pred desetimi leti....
dz0ny ::
Fantje nginx/apache2 ima interni modul za dostop prek samo določenega ipja.
Primer za nginx(http://nginx.com/resources/admin-guide/...
Primer za nginx(http://nginx.com/resources/admin-guide/...
location / { allow 89.88.87.86/24; allow 127.0.0.1; deny all; }
SeMiNeSanja ::
OP je rekel, da se IP spreminja! Tako mu to ne nuca kaj dosti (na IP range je pa že tako omejil).
tx-z ::
Stvar je v tem da:
1) Client je v cloudu (ni dostopa do konzole) in bo vedno samo en
2) Server je lokalno
Torej razni vpnji odpadejo..Sej pravim, za začetk na https, potem pa morda še kakšni certifikati...Kej več pa že ne bo šlo.
Hvala za odgovore!
1) Client je v cloudu (ni dostopa do konzole) in bo vedno samo en
2) Server je lokalno
Torej razni vpnji odpadejo..Sej pravim, za začetk na https, potem pa morda še kakšni certifikati...Kej več pa že ne bo šlo.
Hvala za odgovore!
tx-z
Mavrik ::
V takem primeru narediš HTTPS s client-side certifikatom - torej tvoj client naj pošlje (lahko tudi self-signed) certifikat serverju pri povezavi, server pa poskrbi da se samo tisti client lahko poveže. Podprto na praktično vseh implementacijah ter dokaj varno.
The truth is rarely pure and never simple.
SeMiNeSanja ::
Stvar je v tem da:
1) Client je v cloudu (ni dostopa do konzole) in bo vedno samo en
2) Server je lokalno
Torej razni vpnji odpadejo..Sej pravim, za začetk na https, potem pa morda še kakšni certifikati...Kej več pa že ne bo šlo.
Hvala za odgovore!
Odvisno od variante 'Cloud-a', je možen tudi VPN! Za Azure vem zagotovo, mislim pa da ima tudi Amazon neke svoje variante. Koneckoncev je treba poskrbeti za varno komunikacijo med servisom 'v oblaku' in domačim omrežjem (ne samo za takšne primere, kot ga imaš ti).
Malo preštudiraj, kaj ti ponuja tvoj oblačni serviser na tem področju.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | VPN (strani: 1 2 )Oddelek: Omrežja in internet | 16423 (7097) | rkobarov |
» | Dve domeni z istim IPjemOddelek: Omrežja in internet | 2529 (1706) | c3p0 |
» | Python v WordpressOddelek: Programiranje | 1305 (1100) | Halfdead987 |
» | En IP dva serverja in 2 domeniOddelek: Omrežja in internet | 1911 (1651) | neooo |
» | Spreminjanje HTTP prometa v HTTPS/SSLOddelek: Omrežja in internet | 1546 (1421) | Vaseer |