Port Knocking: Den bästa säkerheten du kan ha på din dator eller server (Deployment + Configuration)

Slående hamnar (på engelska hamn knackar) är utan tvekan en praxis som alla vi som hanterar servrar ska känna till, här förklarar jag i detalj vad detta är och hur man implementerar och konfigurerar detta 😉

Just nu har de av oss som hanterar en server SSH-åtkomst till den servern, några vi ändrar SSH: s standardport och den använder inte längre port 22 och andra lämnar det helt enkelt så (något som inte rekommenderas), men servern har aktiverat SSH-åtkomst genom någon port och detta är redan en "sårbarhet".

med Port knackar vi kan uppnå följande:

1. SSH-åtkomst är inte aktiverad av någon port. Om vi ​​har konfigurerat SSH för port 9191 (till exempel) kommer den porten (9191) att stängas för alla.
2. Om någon vill komma åt servern med SSH kommer de uppenbarligen inte att kunna, eftersom port 9191 är stängd ... men om vi använder en "magisk" eller hemlig kombination kommer den porten att öppnas, till exempel:

1. Jag telnet till port 7000 på servern
2. Jag gör ytterligare ett telnet till port 8000 på servern
3. Jag gör ett annat telnet till port 9000 på servern
4. Servern upptäcker att någon har skapat den hemliga kombinationen (pekportar 7000, 8000 och 9000 i den ordningen) och kommer att öppna port 9191 för att begära inloggning med SSH (den öppnar den endast för den IP som kombinationen gjordes från tillfredsställande).
5. Nu för att stänga SSH telnet jag bara till port 3500
6. Jag gör ett annat telnet till port 4500
7. Och äntligen ytterligare ett telnet till port 5500
8. Genom att utföra denna andra hemliga kombination som servern upptäcker stängs port 9191 igen.

Med andra ord, förklara detta ännu enklare ...

med Port knackar vår server kan ha vissa portar stängda, men när servern upptäcker det från X IP gjordes rätt portkombination (konfiguration som tidigare definierats i en konfigurationsfil) kommer självklart att utföra ett visst kommando (Comando definieras också i konfigurationsfilen).

Förstås det inte? 🙂

Hur installerar jag en demon för Port Knocking?

Jag gör det med paketet kockd, vilket gör det möjligt för oss på ett mycket, mycket enkelt och snabbt sätt att implementera och konfigurera Port knackar.

Installera paketet: knockd

Hur konfigurerar jag Port Knocking med knockd?

Efter installationen fortsätter vi med att konfigurera den, för detta redigerar vi (som root) filen /etc/knockd.conf:

nano /etc/knockd.conf

Som du kan se i den filen finns det redan en standardkonfiguration:

 Att förklara standardinställningarna är väldigt enkelt.

- Först, UseSyslog betyder att för att spela in aktivitet (logg) kommer vi att använda / Var / log / syslog.
- För det andra, i avsnittet [OpenSSH] Det är där uppenbarligen instruktionerna för att öppna SSH kommer att gå, först har vi sekvensen av portar (den hemliga kombinationen) som är konfigurerad som standard (port 7000, port 8000 och slutligen port 9000). Självklart kan portarna ändras (jag rekommenderar det faktiskt) såvida de inte behöver vara 3 nödvändigtvis, de kan vara mer eller mindre, det beror på dig.
- För det tredje, seq_timeout = 5 betyder tiden att vänta på att den hemliga hamnkombinationen ska äga rum. Som standard är det inställt på 5 sekunder, det betyder att när vi börjar utföra portknackningen (det vill säga när vi telnet till port 7000) har vi högst 5 sekunder för att avsluta rätt sekvens, om 5 sekunder passerar och vi inte har slutfört portknackning blir det helt enkelt som om sekvensen var ogiltig.
- Fjärde, kommando det behöver inte mycket förklaring. Detta kommer helt enkelt att vara kommandot som servern kommer att utföra när den upptäcker den kombination som definierats ovan. Kommandot som är inställt som standard vad det gör är att öppna port 22 (ändra den här porten för din SSH-en) endast till IP som gjorde rätt kombination av portar.
- Femte, tcpflags = syn Med den här raden specificerar vi vilken typ av paket som servern kommer att känna igen som giltiga för bankporten.

Sedan finns det avsnittet för att stänga SSH, att standardkonfigurationen inte är mer än samma sekvens av portar ovan men i motsatt ordning.

Här är en konfiguration med några modifieringar:

 Hur startar jag knockd daemon?

För att starta det måste vi först ändra (som root) filen / etc / default / knockd:

nano /etc/default/knockd

Där ändrar vi rad nummer 12 som säger: «START_KNOCKD = 0»Och ändra 0 till 1, skulle vi ha:«START_KNOCKD = 1«

När detta är gjort nu startar vi helt enkelt det:

service knockd start

Och voila, den är konfigurerad och fungerar.

Port Knocking med knockd igång!

Som du kan se i den tidigare konfigurationen, om en portknackning görs till port 1000, sedan till 2000 och slutligen till 3000 kommer port 2222 (min SSH) att öppnas, och här en annan dator som kör portknackning:

När jag väl trycker på [Enter] på Knock No.1, på No.2 och slutligen på No.3 öppnas porten, här är loggen:

Som du kan se, när du slår på port 1000 registrerades steg 1, då 2000 kommer det att vara steg 2 och slutligen vid 3 med 3000, när du gör detta körs kommandot som jag förklarade i .conf och det är det. .

För att stänga porten skulle det bara vara att slå 9000, 8000 och slutligen 7000, här är loggen:

Och här slutar förklaringen av användning 😀

Som du kan se är Port Knocking verkligen intressant och användbart, för även om vi inte bara vill öppna en port efter en viss kombination av portar, kan kommandot eller ordern som servern kommer att utföra variera, det vill säga ... istället för att öppna en port kan vi förklara att döda en process, stoppa en tjänst som apache eller mysql, etc ... gränsen är din fantasi.

Portknockning fungerar bara när du har en fysisk server eller när den virtuella servern är KVM-teknik. Om din VPS (virtuell server) är OpenVZ så hamnar Port Knocking inte på att det fungerar för dig eftersom du inte direkt kan manipulera iptables

Tja och så långt artikeln ... Jag är inte överlägset expert på det här området men jag ville dela med dig av den här intressanta processen.

Hälsningar 😀


Innehållet i artikeln följer våra principer om redaktionell etik. Klicka på för att rapportera ett fel här.

27 kommentarer, lämna din

Lämna din kommentar

Din e-postadress kommer inte att publiceras.

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.

  1.   ErunamoJAZZ sade

    Utmärkt artikel, den är ganska intressant och jag visste inte att den fanns ... det skulle vara jättebra om du fortsätter att lägga ut artiklar för nybörjare sysadmins och sånt

    Hälsningar och tack ^ _ ^

    1.    KZKG ^ Gaara sade

      Tack för din kommentar.
      Ja ... det är så att med artiklarna om DNS från Fico vill jag inte vara kvar LOL !!!

      Ingenting på allvar. För flera månader sedan hörde jag något om Port Knocking och det fick genast min uppmärksamhet, men eftersom jag trodde att det skulle bli väldigt komplicerat vid den tiden bestämde jag mig inte för att gå in på det, just igår granskade jag några repopaket som jag upptäckte knockd och bestämde mig för att prova, och här är handledningen.

      Jag har alltid gillat att lägga tekniska artiklar, vissa kanske inte är intressanta nog men ... jag hoppas att andra är 😉

      hälsningar

    2.    Mario sade

      Hej, jag vet att den här artikeln har funnits länge men jag skickar min fråga för att se om någon kan lösa det för mig.
      Faktum är att jag har implementerat portknackning till mitt hallon för att försöka förbättra säkerheten när jag ansluter till den utanför det lokala nätverket. För att detta ska fungera var jag tvungen att öppna utbudet av portar på routern 7000-9990 som riktar sig till maskinen. Är det säkert att öppna dessa portar på routern eller tvärtom, när jag försöker ha mer säkerhet, gör jag det motsatta?

      Hälsningar och tack.

  2.   någonsin sade

    Bra, jag har varit sysadmin i flera år och kände inte honom.
    En fråga ... hur gör man "knackarna"?
    Telnetar du mot de portarna? Vad svarar telnet dig? Eller finns det något "knock" vågkommando?
    Fantastiskt coolt är artikeln. Spektakulär. Tack så mycket

    1.    KZKG ^ Gaara sade

      Jag gjorde testet med telnet och allt fungerade underligt ... men märkligt nog finns det ett "knock" -kommando, gör ett man knackar så att du kan se 😉

      Telnet svarar inte riktigt på mig alls, iptabletter med DROP-policyn gör att det inte svarar alls och telnet stannar där och väntar på något svar (som aldrig kommer fram), men knockd-demonen kommer att känna igen banan även om ingen svarar det 😀

      Tack så mycket för din kommentar, det är ett nöje att veta att mina artiklar fortfarande gillar ^ _ ^

  3.   st0rmt4il sade

    Lagt till i Favoriter! : D!

    Tack!

    1.    KZKG ^ Gaara sade

      Tack 😀

  4.   djägare sade

    Ahh säkerhet, den trevliga känslan av när vi säkrar datorn till lod, och sedan dagar / veckor senare försöker ansluta från någon avlägsen plats kan vi inte komma åt eftersom brandväggen är i "ingen för någon" -läge, detta kallas att stanna utanför slott när det gäller sysadminer. 😉

    Det är därför detta inlägg är så användbart, med knockd kan du komma åt var som helst som kan skicka ett paket till ditt lokala nätverk och angripare tappar intresset när de ser att ssh-porten är stängd, jag tror inte att de kommer att slå brute force för att öppna porten.

  5.   Manuel sade

    Hej, artikeln är jättebra.

    En sak: tjänar det till att ansluta utanför det lokala nätverket?

    Jag säger detta eftersom jag har routern med portarna stängda minus den som motsvarar ssh som omdirigeras till servern.

    Jag föreställer mig att för att den ska fungera utanför det lokala nätverket kommer det att vara nödvändigt att öppna portarna på routern som motsvarar Port Knocking och göra att de också omdirigeras till servern.

    Mmm ...

    Jag vet inte hur säkert jag kan göra det här.

    Vad tycker du?

    1.    KZKG ^ Gaara sade

      Jag är inte särskilt säker, jag har inte gjort testet men jag tror ja, du bör öppna portar på routern annars skulle du inte kunna slå på servern.

      Gör testet utan att öppna portar på routern, om det inte fungerar för dig är det synd, för jag håller med dig, det är inte tillrådligt att öppna dessa portar på routern.

      1.    Manuel sade

        Vi måste faktiskt öppna portarna och omdirigera dem till den dator vi ringer till.

        Synd.

  6.   Rabba08 sade

    Stor tack så mycket! Jag har just börjat studera nätverk och dessa handledning är bra för mig! tack för att du tog dig tid att dela kunskapen

    1.    KZKG ^ Gaara sade

      Jag har lärt mig mycket genom åren med den globala Linux-communityn ... i några år har jag också velat bidra, det är just därför jag skriver 😀

  7.   janus981 sade

    Tack så mycket, du vet inte hur det hjälper mig, jag håller på att skapa en server och det här går bra för mig.

    hälsningar

    1.    KZKG ^ Gaara sade

      Det är vad vi är för att hjälpa 😉

  8.   Jean ventura sade

    Utmärkt artikel! Jag hade ingen kunskap om detta och det hjälper mig mycket (jag använder RackSpace som använder KVM, så det passar mig som en handske!). Tillagd till favorit.

    1.    KZKG ^ Gaara sade

      Tack för att du kommenterade 🙂

  9.   Algave sade

    Som alltid ger FromLinux oss utmärkta inlägg med handledning som är riktigt användbara att genomföra, tack för att du delar! 🙂

    1.    KZKG ^ Gaara sade

      Tack för din kommentar 🙂
      Ja, vi försöker alltid tillfredsställa den törst efter kunskap som våra läsare har 😀

  10.   Timbleck sade

    Intressant, jag visste inte alternativet.
    Gå direkt till gödning av mitt huggbibliotek.
    Tack!

    1.    KZKG ^ Gaara sade

      Ett nöje för mig 😀
      hälsningar

  11.   Fredrik. A. Valdés Toujague sade

    Hälsningar KZKG ^ Gaara !!! Du klämde. Enorm artikel för att säkra servrar. Ingen @% * & ^ idé om att sådant finns. Jag ska prova det. Tack

  12.   Vitt ^ halsband sade

    det här är bra…. ^ - ^

  13.   LearnLinux sade

    Hej, kan du förklara hur du installerar det i CentOS 5.x?

    Jag har laddat ner varvtalet:
    http://pkgs.repoforge.org/knock/knock-0.5-3.el5.rf.x86_64.rpm

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

    Konfigurera konfigurationsfilen med 15 sekunders tid och porten som jag använder för att ansluta med ssh till min vps

    Demonen börjar:
    / usr / sbin / knockd &

    Jag telnet och ingenting porten stänger inte, som standard är porten öppen, men den stänger inte.

    Gör jag något fel?

  14.   Hallå sade

    Mmmm, telnetförfrågningar till dessa portar kan läsas av administratören av vårt lokala nätverk eller av vår tjänsteleverantör, nej? Det skulle blockera externa personer men inte dem, så om de vill aktivera vår port kan de göra det för att se förfrågningar vi gör, mmm låt oss säga att det skyddar men inte 100%

    1.    Roberto sade

      Det kan vara, men jag tror inte att de kommer att föreställa sig att vissa telnet utför X-åtgärder. Om de inte ser att samma telnetmönster följs.

  15.   Pablo Andres Diaz Aramburo sade

    Intressant artikel, jag har en fråga. Jag tror att det finns ett fel i konfigurationsfilens bild, för om du analyserar bra använder du ACCEPT i båda raderna i kommandot i Iptables. Jag tycker att en ska acceptera och en annan bör avvisa.

    Annars utmärkt initiativ. Tack så mycket för att du tog dig tid att förklara din kunskap för andra.

    hälsningar