Kucanje porta: Najbolja sigurnost koju imate na računaru ili serveru (primjena + konfiguracija)

Upadljive luke (na engleskom lupanje luke) je bez sumnje praksa koju bismo svi koji upravljamo poslužiteljima trebali dobro znati, ovdje detaljno objašnjavam što je to i kako to implementirati i konfigurirati 😉

Trenutno mi koji upravljamo serverom imamo SSH pristup tom serveru, neki mijenjamo zadani port SSH i više ne koristi port 22, a drugi ga samo ostavljaju tako (nešto se ne preporučuje), međutim poslužitelj je omogućio SSH pristup preko nekog porta i to je već 'ranjivost'.

con Lupanje luke možemo postići sljedeće:

1. Nijedan port ne omogućava SSH pristup. Ako smo konfigurirali SSH za port 9191 (na primjer), taj će port (9191) biti zatvoren za sve.
2. Ako netko želi pristupiti serveru putem SSH-a, očito neće moći, jer je port 9191 zatvoren ... ali ako koristimo 'magičnu' ili tajnu kombinaciju, taj će se port otvoriti, na primjer:

1. Ja sam telnet na port 7000 servera
2. Radim još jedan telnet za port 8000 servera
3. Radim još jedan telnet za port 9000 servera
4. Poslužitelj otkrije da je netko napravio tajnu kombinaciju (dodirni portovi 7000, 8000 i 9000 tim redoslijedom) i otvorit će port 9191 da zatraži prijavu putem SSH-a (otvorit će ga samo za IP adresu od koje je kombinacija napravljena broj porta zadovoljavajući).
5. Sada da zatvorim SSH, samo sam telnet na port 3500
6. Upotrijebit ću još jedan telnet do porta 4500
7. I na kraju još jedan telnet za port 5500
8. Izvođenjem ove druge tajne kombinacije koju server detektira ponovo će zatvoriti port 9191.

Drugim riječima, objasniti ovo još jednostavnije ...

con Lupanje luke naš server može imati zatvorene određene portove, ali kada server to otkrije X IP je napravljena ispravna kombinacija porta (konfiguracija prethodno definirana u konfiguracijskoj datoteci) izvršiće određenu naredbu na sebi očigledno (komandu takođe definirano u konfiguracijskoj datoteci).

Zar se to ne razumije? 🙂

Kako instalirati demon za lupanje porta?

Radim to sa paketom kockd, što će nam omogućiti na vrlo, vrlo jednostavan i brz način da implementiramo i konfigurišemo Lupanje luke.

Instalirajte paket: knockd

Kako konfigurirati kucanje porta pomoću knockd-a?

Jednom instalirani nastavljamo ga konfigurirati, za to uređujemo (kao root) datoteku /etc/knockd.conf:

nano /etc/knockd.conf

Kao što vidite u toj datoteci već postoji zadana konfiguracija:

 Objašnjenje zadanih postavki je zaista jednostavno.

- Prvo, UseSyslog znači da ćemo zabilježiti aktivnost (dnevnik) koju ćemo koristiti / var / log / syslog.
- Drugo, u odeljku [openSSH] Tamo će očito ići upute za otvaranje SSH-a, prvo imamo redoslijed portova (tajna kombinacija) koji je konfiguriran prema zadanim postavkama (port 7000, port 8000 i na kraju port 9000). Očito se portovi mogu mijenjati (zapravo to preporučujem), kao što ne moraju biti 3, mogu biti više ili manje, ovisi o vama.
- Treće, seq_timeout = 5 znači vrijeme čekanja da se tajna kombinacija porta održi. Po defaultu je postavljeno na 5 sekundi, to znači da nakon što počnemo izvoditi kucanje porta (to jest, kada telefoniramo na port 7000) imamo najviše 5 sekundi da završimo ispravan niz, ako prođe 5 sekundi i nismo dovršili kucanje porta, tada će jednostavno biti kao da je sekvenca nevaljana.
- Četvrto, naredba ne treba puno objašnjenja. Ovo će jednostavno biti naredba koju će poslužitelj izvršiti kada otkrije prethodno definiranu kombinaciju. Naredba koja je zadana prema zadanim postavkama, ona je otvorio port 22 (promijenite ovaj port u svoj SSH port) samo na IP koji je napravio ispravnu kombinaciju portova.
- Peto, tcpflags = sinh Ovom linijom određujemo vrstu paketa koje će poslužitelj prepoznati kao važeće za kucajući port.

Zatim postoji odjeljak za zatvaranje SSH-a, da zadana konfiguracija nije ništa drugo do isti slijed gore navedenih portova već u obrnutom redoslijedu.

Evo konfiguracije s nekim izmjenama:

 Kako pokrenuti knockd daemon?

Da bismo ga pokrenuli, prvo moramo izmijeniti (kao root) datoteku / etc / default / knockd:

nano /etc/default/knockd

Tamo mijenjamo red broj 12 koji kaže: «START_KNOCKD = 0»I da promijenimo 0 na 1, imali bismo:«START_KNOCKD = 1«

Jednom kada je ovo gotovo, jednostavno ga pokrećemo:

service knockd start

I voila, konfigurirano je i radi.

Kucanje u luku s kucanjem i trčanjem!

Kao što možete vidjeti u prethodnoj konfiguraciji, ako se lupanje porta izvrši na port 1000, zatim na 2000 i na kraju na 3000, tada će se otvoriti port 2222 (moj SSH), pa evo još jednog računara koji izvršava kucanje porta:

Jednom kad pritisnem [Enter] na Knock No.1, na No.2 i na kraju na No.3 otvorit će se port, evo dnevnika:

Kao što vidite, prilikom kucanja porta 1000, registriran je stupanj 1, tada će 2000. biti stupanj 2 i na kraju 3 sa 3000, kada se to radi, naredba koju sam proglasio u .conf se izvršava i to je to.

Tada bi zatvaranje luke značilo samo kucanje 9000, 8000 i konačno 7000, evo dnevnika:

I ovdje objašnjenje upotrebe završava 😀

Kao što vidite, lupanje porta je zaista zanimljivo i korisno, jer iako ne želimo jednostavno otvoriti port nakon određene kombinacije portova, naredba ili naredba koju će poslužitelj izvršiti mogu se razlikovati, to jest ... umjesto otvaranje porta možemo proglasiti da ubijamo proces, zaustavljamo uslugu poput apachea ili mysqla itd ... ograničenje je vaša mašta.

Kucanje porta funkcionira samo kada imate fizički poslužitelj ili kada je virtualni poslužitelj KVM tehnologija. Ako je vaš VPS (virtualni server) OpenVZ, onda lupanje porta, mislim da vam to ne ide jer ne možete direktno manipulirati iptablesima

Pa i do sada članak ... Ja nisam daleko stručnjak za ovo pitanje, ali želio sam podijeliti s vama ovaj zanimljiv proces.

Pozdrav 😀


Sadržaj članka pridržava se naših principa urednička etika. Da biste prijavili grešku, kliknite ovdje.

27 komentara, ostavi svoj

Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   ErunamoJAZZ rekao je

    Odličan članak, prilično je zanimljiv i nisam znala da postoji ... bilo bi sjajno da nastavite davati članke za newbie sysadmin i to 😀

    Pozdrav i hvala ^ _ ^

    1.    KZKG ^ Gaara rekao je

      Hvala vam na komentaru.
      Da ... to je da člancima o DNS-u Fico-a ne želim da budem iza sebe LOL !!!

      Nista ozbiljno. Prije nekoliko mjeseci čuo sam nešto o lupanju luka i to mi je odmah privuklo pažnju, ali budući da sam u to vrijeme mislio da će biti vrlo složeno, nisam odlučio ući, baš jučer pregledavajući neke pakete iz repo-a otkrio sam knockd i odlučio probati, i evo vodiča.

      Uvijek sam volio stavljati tehničke članke, neki možda nisu dovoljno zanimljivi, ali ... nadam se da su drugi 😉

      Saludos

    2.    Mario rekao je

      Pozdrav, znam da ovaj članak postoji već neko vrijeme, ali šaljem svoj upit da vidim može li ga netko riješiti umjesto mene.
      Činjenica je da sam implementirao kucanje porta na moju malinu kako bih pokušao poboljšati sigurnost kada se na nju povežem izvan lokalne mreže. Da bi ovo uspjelo, morao sam otvoriti opseg portova na usmjerivaču 7000-9990 usmjeravajući na stroj. Da li je sigurno otvoriti te portove na usmjerivaču ili, naprotiv, kada pokušavam imati veću sigurnost, radim li suprotno?

      Pozdrav i hvala.

  2.   eVeR rekao je

    Super, godinama sam sysadmin i nisam ga poznavao.
    Jedno pitanje ... kako se radi "kucanje"?
    Da li telefonirate protiv tih luka? Šta vam telnet odgovara? Ili postoji neka naredba "kucanja" vala?
    Super je članak. Spektakularno. Hvala puno

    1.    KZKG ^ Gaara rekao je

      Napravio sam test s telnetom i sve je učinilo čuda ... ali, znatiželjno je da postoji naredba 'kucaj', uradi a čovjek kuca tako da možete vidjeti 😉

      Telnet mi zapravo uopće ne odgovara, iptables s DROP politikom čini da uopće ne reagira i telnet ostaje tamo čekajući neki odgovor (koji nikada neće stići), ali knockd daemon prepoznat će kucanje čak i ako nitko ne odgovori it 😀

      Hvala vam puno na komentaru, zadovoljstvo mi je znati da moji članci i dalje vole ^ _ ^

  3.   st0rmt4il rekao je

    Dodano u Favorite! : D!

    Hvala!

    1.    KZKG ^ Gaara rekao je

      Hvala 😀

  4.   dhunter rekao je

    Ah, sigurnost, onaj ugodni osjećaj kada osiguravamo računalo na vodovodu, a zatim se danima / sedmicama kasnije pokušavamo povezati s nekog udaljenog mjesta kojem ne možemo pristupiti jer je vatrozid u načinu "niko ni za koga", to se naziva boravak izvan dvorac u smislu sysadmina. 😉

    Zbog toga je ovaj post tako koristan, s knockdom možete pristupiti s bilo kojeg mjesta koje može poslati paket na vašu lokalnu mrežu, a napadači gube interes kad vide da je ssh port zatvoren, mislim da neće udarati grubom silom otvoriti luku.

  5.   Manuel rekao je

    Hej, članak je sjajan.

    Jedno: služi li za povezivanje izvan lokalne mreže?

    Kažem to jer imam usmjerivač sa zatvorenim portovima minus onaj koji odgovara ssh-u koji je preusmjeren na server.

    Pretpostavljam da će, kako bi mogao raditi izvan lokalne mreže, biti potrebno otvoriti portove usmjerivača koji odgovaraju Port Knockingu i učiniti ih također preusmjernim na server.

    Mmm ...

    Ne znam koliko je sigurno to učiniti.

    Šta ti misliš?

    1.    KZKG ^ Gaara rekao je

      Nisam baš siguran, nisam obavio test, ali mislim da da, trebali biste otvoriti portove na usmjerivaču, inače nećete moći zakucati server.

      Napravite test bez otvaranja priključaka na usmjerivaču, ako vam to ne uspije šteta, jer se slažem s vama, nije poželjno otvarati ove priključke na usmjerivaču.

      1.    Manuel rekao je

        Zapravo, moramo otvoriti portove i preusmjeriti ih na računar koji zovemo.

        Šteta.

  6.   Rabba08 rekao je

    Veliko hvala! Tek počinjem učiti umrežavanje i ovi vodiči su mi izvrsni! hvala što ste odvojili vrijeme za razmjenu znanja

    1.    KZKG ^ Gaara rekao je

      Tijekom godina naučio sam puno s globalnom Linux zajednicom ... već nekoliko godina želim i ja dati svoj doprinos, upravo zato pišem 😀

  7.   janus981 rekao je

    Puno vam hvala, ne znate kako mi to pomaže, namjeravam postaviti server i ovo mi ide super.

    Saludos

    1.    KZKG ^ Gaara rekao je

      Za to smo i mi, da pomognemo 😉

  8.   Jean ventura rekao je

    Odličan članak! Nisam znao za ovo i puno mi pomaže (koristim RackSpace koji koristi KVM, tako da mi odgovara kao rukavica!). Dodano u omiljene.

    1.    KZKG ^ Gaara rekao je

      Hvala na komentaru 🙂

  9.   Algabe rekao je

    Kao i uvijek FromLinux donosi nam izvrsnu objavu s vodičima koje je zaista korisno provesti u djelo, hvala na dijeljenju! 🙂

    1.    KZKG ^ Gaara rekao je

      Hvala na komentaru 🙂
      Da, uvijek se trudimo da utažimo tu žeđ za znanjem koju imaju naši čitatelji 😀

  10.   Timbleck rekao je

    Zanimljivo, nisam znao opciju.
    Idite pravo na tov moje biblioteke kotleta.
    Hvala!

    1.    KZKG ^ Gaara rekao je

      Zadovoljstvo za mene 😀
      Saludos

  11.   Frederick. A. Valdés Toujague rekao je

    Pozdrav KZKG ^ Gaara !!! Stisnuo si. Strašan članak o sigurnim serverima. Nema @% * & ^ ideje da tako nešto postoji. Pokušaću. Hvala ti

  12.   Bijela ^ ogrlica rekao je

    ovo je super…. ^ - ^

  13.   LearnLinux rekao je

    Pozdrav, možete li objasniti kako ga instalirati u CentOS 5.x?

    Skinuo sam rpm:
    http://pkgs.repoforge.org/knock/knock-0.5-3.el5.rf.x86_64.rpm

    Instalirano:
    rpm -i knock-0.5-3.el5.rf.x86_64.rpm

    Konfigurišite konfiguracijsku datoteku s vremenom od 15 sekundi i port koji koristim za povezivanje ssh-om na svoj vps

    Demon započinje:
    / usr / sbin / knockd &

    Ja telnet i ništa se port ne zatvara, po defaultu je port otvoren, ali se ne zatvara.

    Radim li nešto loše?

  14.   hola rekao je

    Mmmm, telnet zahtjeve za te portove mogao bi naučiti administrator naše lokalne mreže ili naš davatelj usluga, ne? To bi blokiralo vanjske ljude, ali ne i njih, pa ako žele aktivirati naš port, mogli bi to učiniti jer zahtjevi koje podnosimo, mmm recimo da štiti, ali ne 100%

    1.    Roberto rekao je

      Moglo bi biti, ali mislim da neće zamišljati da određeni telnet izvršava X akciju. Osim ako ne vide da se slijede isti telnet obrasci.

  15.   Pablo Andres Diaz Aramburo rekao je

    Zanimljiv članak, imam pitanje. Mislim da postoji greška u slici konfiguracijske datoteke, jer ako dobro analizirate, u oba retka naredbe koristite ACCEPT u Iptables-u. Mislim da jedan treba biti PRIHVATEN, a drugi ODBIJATI.

    Inače, izvrsna inicijativa. Puno vam hvala što ste odvojili vrijeme da drugima objasnite svoje znanje.

    Saludos