Port Knocking: Den beste sikkerheten du kan ha på datamaskinen eller serveren din (Deployment + Configuration)

Slående porter (på engelsk portbanking) Det er utvilsomt en praksis at alle vi som administrerer servere skal vite godt, her forklarer jeg i detalj hva dette er og hvordan man implementerer og konfigurerer dette 😉

Akkurat nå har de av oss som administrerer en server SSH-tilgang til den serveren, noen vi endrer standardporten til SSH og den bruker ikke lenger port 22 og andre lar den bare være slik (noe som ikke anbefales), men serveren har aktivert SSH-tilgang gjennom en eller annen port, og dette er allerede et "sårbarhet".

med Portbanking vi kan oppnå følgende:

1. SSH-tilgang er ikke aktivert av noen port. Hvis vi har konfigurert SSH for port 9191 (for eksempel), blir den porten (9191) stengt for alle.
2. Hvis noen ønsker å få tilgang til serveren med SSH, vil de åpenbart ikke kunne, siden port 9191 er stengt ... men hvis vi bruker en 'magisk' eller hemmelig kombinasjon, vil den porten bli åpnet, for eksempel:

1. Jeg telnet til port 7000 på serveren
2. Jeg gjør et annet telnet til port 8000 på serveren
3. Jeg gjør et annet telnet til port 9000 på serveren
4. Serveren oppdager at noen har laget den hemmelige kombinasjonen (berøringsporter 7000, 8000 og 9000 i den rekkefølgen) og vil åpne port 9191 slik at innlogging blir bedt om av SSH (den vil bare åpne den for IP-en som kombinasjonen ble laget fra tilfredsstillende).
5. Nå for å lukke SSH telnet jeg bare til port 3500
6. Jeg skal gjøre et annet telnet til port 4500
7. Og til slutt enda et telnet til port 5500
8. Hvis du utfører denne andre hemmelige kombinasjonen som serveren oppdager, lukkes port 9191 igjen.

Med andre ord, å forklare dette enda enklere ...

med Portbanking serveren vår kan ha visse porter stengt, men når serveren oppdager det fra X IP ble riktig portkombinasjon laget (konfigurasjon som tidligere er definert i en konfigurasjonsfil) vil selvsagt utføre en viss kommando (comando også definert i konfigurasjonsfil).

Er det forstått ikke? 🙂

Hvordan installerer jeg en demon for Port Knocking?

Jeg gjør det med pakken sparket, som vil tillate oss på en veldig, veldig enkel og rask måte å implementere og konfigurere Portbanking.

Installer pakken: knockd

Hvordan konfigurerer du Port Knocking med knockd?

Når den er installert, fortsetter vi med å konfigurere den, for dette redigerer vi (som rot) filen /etc/knockd.conf:

nano /etc/knockd.conf

Som du kan se i den filen, er det allerede en standardkonfigurasjon:

 Å forklare standardinnstillingene er veldig enkelt.

- Først BrukSyslog betyr at for å registrere aktivitet (logg) vil vi bruke / var / log / syslog.
- For det andre, i seksjonen [openSSH] er der åpenbart instruksjonene for å åpne SSH vil gå, først har vi sekvensen av porter (den hemmelige kombinasjonen) som er konfigurert som standard (port 7000, port 8000 og til slutt port 9000). Åpenbart kan portene endres (faktisk anbefaler jeg det), i tillegg til at de ikke trenger å være 3, de kan være mer eller mindre, det kommer an på deg.
- For det tredje seq_timeout = 5 betyr tiden for å vente på at den hemmelige havnekombinasjonen skal finne sted. Som standard er det satt til 5 sekunder, dette betyr at når vi begynner å utføre portbanking (det vil si når vi telnet til port 7000) har vi maksimalt 5 sekunder til å fullføre riktig sekvens, hvis 5 sekunder går og vi har ikke fullført portbankingen, så vil det rett og slett være som om sekvensen var ugyldig.
- Fjerde, kommando det trenger ikke mye forklaring. Dette vil ganske enkelt være kommandoen som serveren vil utføre når den oppdager den tidligere definerte kombinasjonen. Kommandoen som er angitt som standard, er hva den gjør, bare åpne port 22 (endre denne porten for SSH-porten) til IP-en som gjorde den riktige kombinasjonen av porter.
- Femte, tcpflags = syn Med denne linjen spesifiserer vi hvilken type pakker serveren vil gjenkjenne som gyldig for bankeporten.

Så er det delen for å lukke SSH, at standardkonfigurasjonen ikke er mer enn den samme sekvensen av porter ovenfor, men i motsatt rekkefølge.

Her er en konfigurasjon med noen modifikasjoner:

 Hvordan starte knockd-demonen?

For å starte det må vi først endre (som rot) filen / etc / default / knockd:

nano /etc/default/knockd

Der endrer vi linje 12 som sier: «START_KNOCKD = 0»Og endre 0 til 1, ville vi ha:«START_KNOCKD = 1«

Når dette er gjort nå, starter vi det bare:

service knockd start

Og voila, den er konfigurert og fungerer.

Port Knocking med knockd up and running!

Som du kan se i forrige konfigurasjon, hvis en portbank er utført til port 1000, deretter til 2000 og til slutt til 3000, åpnes port 2222 (min SSH), vel her, en annen datamaskin som utfører portbank:

Når jeg trykker [Enter] på Knock No.1, på No.2 og til slutt på No.3 vil porten åpne, her er loggen:

Som du kan se, når du banker på port 1000, ble trinn 1 registrert, så i 2000 blir det trinn 2 og til slutt på 3 med 3000, når du gjør dette, blir kommandoen som jeg erklærte i .conf utført og det er det.

For å lukke porten ville det bare være å banke 9000, 8000 og til slutt 7000, her er loggen:

Og vel her ender bruksforklaringen 😀

Som du kan se, er Port Knocking veldig interessant og nyttig, for selv om vi ikke bare vil åpne en port etter en bestemt kombinasjon av porter, kan kommandoen eller rekkefølgen som serveren vil utføre variere, det vil si ... i stedet for Å åpne en port vi kan erklære for å drepe en prosess, stoppe en tjeneste som apache eller mysql, etc ... grensen er fantasien din.

Port Knocking fungerer bare når du har en fysisk server eller når den virtuelle serveren er KVM-teknologi. Hvis VPS (virtuell server) din er OpenVZ, så tror jeg ikke Port Knocking at det fungerer for deg fordi du ikke direkte kan manipulere iptables

Vel og så langt artikkelen ... Jeg er ikke langt en ekspert i denne saken, men jeg ønsket å dele med deg denne interessante prosessen.

Hilsen 😀


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.

  1.   erunamoJAZZ sa

    Utmerket artikkel, den er ganske interessant, og jeg visste ikke at den eksisterte ... det ville vært flott hvis du fortsetter å legge ut artikler for nybegynnere fra sysadmin og at

    Hilsen og takk ^ _ ^

    1.    KZKG ^ Gaara sa

      Takk for kommentaren.
      Ja ... det er at med artiklene på DNS ​​fra FICO, vil jeg ikke bli etterlatt LOL !!!

      Ingenting seriøst. For flere måneder siden hørte jeg noe om Port Knocking, og det fanget umiddelbart oppmerksomheten min, men siden jeg trodde det skulle bli veldig komplisert på det tidspunktet bestemte jeg meg ikke for å gå inn, bare i går gjennomgikk jeg noen pakker fra repoen, og jeg oppdaget knockd og bestemte meg for å prøve, og her er veiledningen.

      Jeg har alltid likt å legge tekniske artikler, noen er kanskje ikke interessante nok, men ... jeg håper andre er 😉

      Hilsen

    2.    Mario sa

      Hei, jeg vet at denne artikkelen har eksistert i noen tid, men jeg lanserer spørsmålet mitt for å se om noen kan løse det for meg.
      Faktum er at jeg har implementert portbanking til bringebæren min for å prøve å forbedre sikkerheten når jeg kobler til den utenfor det lokale nettverket. For at dette skal fungere har jeg måttet åpne rekkevidden av porter på 7000-9990 ruteren som retter seg mot maskinen. Er det trygt å åpne disse portene på ruteren, eller tvert imot, når jeg prøver å ha mer sikkerhet, gjør jeg det motsatte?

      Hilsen og takk.

  2.   noensinne sa

    Flott, jeg har vært sysadmin i årevis og kjente ham ikke.
    Ett spørsmål ... hvordan gjør du "bankene"?
    Telnet du mot disse portene? Hva svarer telnet deg? Eller er det noen "banke" bølgekommandoer?
    Stor kul er artikkelen. Spektakulær. Takk så mye

    1.    KZKG ^ Gaara sa

      Jeg gjorde testen med telnet og alt gjorde underverker ... men, merkelig nok, det er en "banke" -kommando, gjør en mann banker slik at du kan se 😉

      Telnet reagerer egentlig ikke på meg i det hele tatt, iptables med DROP-policyen gjør at det ikke svarer i det hele tatt, og telnet forblir der og venter på et svar (som aldri kommer fram), men knockd-demonen vil gjenkjenne knock selv om nei man svarer 😀

      Tusen takk for kommentaren din, det er en glede å vite at artiklene mine fremdeles liker ^ _ ^

  3.   st0rmt4il sa

    Lagt til i Favoritter! : D!

    Takk!

    1.    KZKG ^ Gaara sa

      Takk 😀

  4.   dhunter sa

    Ahh sikkerhet, den behagelige følelsen av når vi sikrer PCen til lodd, og deretter dager / uker senere prøver å koble til fra et eksternt sted vi ikke får tilgang til fordi brannmuren er i "ingen for noen" -modus, dette kalles å holde seg utenfor slott når det gjelder sysadminer. 😉

    Det er derfor dette innlegget er så nyttig, med knockd kan du få tilgang fra hvor som helst som kan sende en pakke til ditt lokale nettverk, og angriperne mister interessen når de ser at ssh-porten er stengt, jeg tror ikke de vil slå brute tvinge til å åpne havnen.

  5.   Manuel sa

    Hei, artikkelen er flott.

    En ting: tjener den til å koble til utenfor det lokale nettverket?

    Jeg sier dette fordi jeg har ruteren med portene stengt minus den som tilsvarer ssh som blir omdirigert til serveren.

    Jeg forestiller meg at for at det skal fungere utenfor det lokale nettverket, vil det være nødvendig å åpne portene på ruteren som tilsvarer Port Knocking og få dem til å omdirigere til serveren.

    Mmm ...

    Jeg vet ikke hvor trygt å gjøre dette.

    Hva synes du?

    1.    KZKG ^ Gaara sa

      Jeg er ikke veldig sikker, jeg har ikke gjort testen, men jeg tror ja, du bør åpne porter på ruteren, ellers kunne du ikke banke på serveren.

      Gjør testen uten å åpne porter på ruteren. Hvis det ikke fungerer for deg, er det synd, for jeg er enig med deg, det er ikke tilrådelig å åpne disse portene på ruteren.

      1.    Manuel sa

        Vi må faktisk åpne portene og omdirigere dem til datamaskinen vi ringer til.

        Medlidenhet.

  6.   rabba08 sa

    Stor takk! Jeg har akkurat begynt å studere nettverk, og disse veiledningene er gode for meg! takk for at du tok deg tid til å dele kunnskapen

    1.    KZKG ^ Gaara sa

      Jeg har lært mye gjennom årene med det globale Linux-samfunnet ... i noen år har jeg ønsket å bidra også, det er nettopp derfor jeg skriver 😀

  7.   janus 981 sa

    Tusen takk, du vet ikke hvordan det hjelper meg, jeg er i ferd med å sette opp en server, og dette går bra for meg.

    Hilsen

    1.    KZKG ^ Gaara sa

      Det er det vi er for å hjelpe 😉

  8.   Jean ventura sa

    Utmerket artikkel! Jeg hadde ingen kunnskap om dette, og det hjelper meg mye (jeg bruker RackSpace som bruker KVM, så det passer meg som en hanske!). Lagt til i favoritt.

    1.    KZKG ^ Gaara sa

      Takk for at du kommenterte 🙂

  9.   Algave sa

    Som vanlig DesdeLinux gir oss utmerkede innlegg med opplæringsprogrammer som virkelig er nyttige å sette i verk, takk for at du deler!! 🙂

    1.    KZKG ^ Gaara sa

      Takk for kommentaren din 🙂
      Ja, vi prøver alltid å tilfredsstille den tørsten etter kunnskap som leserne våre har 😀

  10.   Timbleck sa

    Interessant, jeg visste ikke alternativet.
    Hopp rett til å fete karbonadebiblioteket mitt.
    Takk!

    1.    KZKG ^ Gaara sa

      En glede for meg 😀
      Hilsen

  11.   Frederick. A. Valdés Toujague sa

    Hilsen KZKG ^ Gaara !!! Du klemte deg. Enorm artikkel for å sikre servere. Ingen @% * & ^ idé om at en slik ting eksisterer. Jeg skal prøve det. Takk skal du ha

  12.   Hvitt ^ halskjede sa

    dette er flott…. ^ - ^

  13.   LearnLinux sa

    Hei, kan du forklare hvordan du installerer det i CentOS 5.x?

    Jeg har lastet ned o / min:
    http://pkgs.repoforge.org/knock/knock-0.5-3.el5.rf.x86_64.rpm

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

    Konfigurer konfigurasjonsfilen med 15 sekunders tid og porten jeg bruker for å koble ssh til min vps

    Demonen begynner:
    / usr / sbin / knockd &

    Jeg telnet og ingenting porten lukkes ikke, som standard er porten åpen, men den lukkes ikke.

    Gjør jeg noe galt?

  14.   Hallo sa

    Telmmforespørsler til disse portene kan læres av administratoren av vårt lokale nettverk, eller av tjenesteleverandøren vår, nei? Det ville blokkere eksterne mennesker, men ikke dem, så hvis de vil aktivere porten vår, kan de gjøre det fordi Se forespørslene vi kommer med, mmm la oss si at det beskytter, men ikke 100%

    1.    Roberto sa

      Det kan være, men jeg tror ikke de kommer til å forestille seg at visse telnet utfører X-handling. Med mindre de ser at de samme telnetmønstrene følges.

  15.   Pablo Andres Diaz Aramburo sa

    Interessant artikkel, jeg har et spørsmål. Jeg tror det er en feil i bildet av konfigurasjonsfilen, for hvis du analyserer godt, i begge linjene i kommandoen bruker du ACCEPT i Iptables. Jeg tror man skal godta og en annen skal AVVISE.

    Ellers utmerket initiativ. Tusen takk for at du tok deg tid til å forklare din kunnskap for andre.

    Hilsen