Hur man Använder Port Knackar på Linux (och Varför Du Bör inte)

0
381
Photographee.eu:/Shutterstock

Port knackar är ett sätt att säkra en server genom att stänga brandvägg hamnar—även de som du vet kommer att användas. Dessa portar öppnas på begäran om—och endast om—anslutningen begäran tillhandahåller hemligheten slå.

Port Knackar Är en “Hemlig Knock”

På 1920-talet, då förbudet är i full gång, om du ville gå in en lönnkrog, du fick veta hemligheten, knacka på och knacka på det på rätt sätt för att komma in.

Port knackar är en modern motsvarighet. Om du vill att folk ska ha tillgång till tjänster på din dator men inte vill öppna din brandvägg till internet, kan du använda port knackar. Det gör att du kan stänga portar i brandväggen för att tillåta att inkommande anslutningar och få dem att öppnas automatiskt när en förutbestämd mönster av anslutningsförsök görs. Sekvensen av anslutningar fungerar som den hemliga slå. En annan hemlighet slå stänger porten.

Port knackar är något av en nyhet, men det är viktigt att veta att det är ett exempel på säkerhet genom otydlighet, och att begreppet är i grunden felaktig. Hemligheten om hur att få tillgång till ett system är säkra eftersom endast de i en specifik grupp vet det. Men när hemligheten är ut—antingen på grund av att det är uppenbarat, observerade, gissat, eller arbetat ut—din trygghet är ogiltigt. Du är bättre att säkra din server i andra, starkare sätt, som kräver nyckel-baserade inloggningar för en SSH-server.

De mest robusta metoder för att cybersäkerhet är mångbottnad, så kanske port knackar bör vara ett av de lagren. Ju fler lager, desto bättre, eller hur? Men, du kan hävda att port knackar inte lägga mycket (om något) till ett ordentligt härdade och säkert system.

It-säkerhet är ett stort och komplicerat ämne, men du bör inte använda port knackar som din enda form av försvar.

RELATERAT: Hur att Skapa och Installera en SSH-Nycklar Från Linux Shell

Installera knockd

För att visa port knackar, som vi kommer att använda den för att styra port 22, vilket är SSH port. Vi använder ett verktyg som kallas knockd. För att använda apt-get för att installera detta paket på ditt system om du använder Ubuntu eller annan Debian-baserad distribution. På andra Linux-distributioner, använda din Linux-distribution, och det paket av verktyg, istället.

Skriv följande:

sudo apt-get install knockd

Du har förmodligen redan har iptables-brandvägg installerad på ditt system, men du kan behöva installera iptables-persistent-paketet. Det hanterar automatisk lastning av sparade iptable regler.

Skriv följande för att installera det:

sudo apt-get install iptables-beständiga

När IPV4-configuration-skärmen visas, tryck på mellanslagstangenten för att acceptera “Ja” – alternativet.

Tryck på mellanslag igen i IPv6-konfiguration skärmen för att acceptera “Ja” och gå vidare.

Följande kommando talar om iptables att låta etablerade och pågående anslutningar för att fortsätta. Vi kommer nu att fråga en annan kommando för att stänga SSH port.

Om någon är ansluten med hjälp av SSH när vi kört det här kommandot kommer vi inte vill att de ska utrotas:

sudo iptables -A INPUT-m conntrack –ctstate ETABLERADE,RELATED-j ACCEPT

Detta kommando lägger till en regel att brandväggen, som säger:

  • -Ett: Lägg till regel för att brandväggen reglerna tabellen. Det är, lägga till det till botten.
  • INPUT: Detta är en regel om inkommande anslutningar.
  • -m conntrack: brandväggsregler agera på nätverkstrafiken (paket) som matchar kriterierna i regeln. -M parameter orsaker iptables att använda extra paket matchning moduler—i detta fall en som heter conntrack arbetar med nätverksanslutning spårningsfunktioner av kärnan.
  • –cstate ETABLERADE,RELATERAT: Här anges den typ av anslutning som regeln kommer att tillämpas, det vill säga ETABLERADE och TILLHÖRANDE anslutningar. En förbindelse är en som redan är i arbete. En tillhörande anslutningen är en som görs på grund av en åtgärd från en etablerad anslutning. Kanske någon som är ansluten vill ladda ner en fil, som kan ske över en ny anslutning initieras av värden.
  • -j ACCEPT: Om den trafik som matchar regeln, hoppa ACCEPTERA mål i brandväggen. Med andra ord, trafiken är accepterat och tillåtet att passera genom brandväggen.

Nu kan vi ge kommandot till nära hamnen:

sudo iptables -A INPUT-p tcp –dport 22 -j AVVISA

Detta kommando lägger till en regel att brandväggen, som säger:

  • -Ett: Lägg till regel för att brandväggen reglerna tabellen, dvs, lägga till det till botten.
  • INGÅNG: Denna regel är om inkommande anslutningar.
  • -p tcp: Denna regel gäller trafik som använder Transmission Control Protocol.
  • –dport 22: Denna regel gäller särskilt TCP-trafik som mål port 22 (SSH port).
  • -j AVVISA: Om den trafik som matchar regeln, hoppa AVVISA målet i brandväggen. Så, om trafiken är förkastat, det är inte tillåtet att genom brandväggen.

Vi måste börja netfilter-persistent-demonen. Vi kan göra så med detta kommando:

sudo systemctl börja netfilter-beständiga

Vi vill att netfilter-persistent att gå igenom en spara och ladda cykel, så den laddar och styr iptable regler.

Skriv följande kommandon:

sudo netfilter-ihållande spara

sudo netfilter-ihållande reload

Du har nu installerat verktyg, och SSH-porten är stängd (förhoppningsvis utan att avsluta någons anslutning). Nu är det dags att konfigurera den hemliga slå.

Konfigurera knockd

Det är två filer som du kan redigera för att konfigurera knockd. Den första är följande knockd konfigurationsfil:

sudo gedit /etc/knockd.conf

Den gedit-redigeraren öppnas med knockd konfiguration fil laddas.

Vi kommer att redigera denna fil för att passa våra behov. De sektioner som vi är intresserad av är “openSSH” och “closeSSH.” Följande fyra poster som finns i varje avsnitt:

  • sekvens: sekvens av portar man ska öppna eller stänga port 22. Standard portar är 7000, 8000 och 9000 för att öppna den, och 9000, 8000, och 7000 för att stänga det. Du kan ändra dessa eller lägga till fler hamnar i listan. För våra syften, vi ska hålla på med standardvärden.
  • seq_timeout: Den tid inom vilken någon har tillgång till portarna för att utlösa den för att öppna eller stänga.
  • kommando: kommandot skickas till iptables-brandvägg i öppna eller stänga åtgärd som utlöses. Dessa kommandon antingen lägga till en regel till brandvägg (för att öppna porten) eller ta ut det (för att stänga den port).
  • tcpflags: vilken typ av paket varje hamn ska ta emot i den hemliga sekvensen. En SYN (synkronisera) – paket är den första i en TCP-anslutning begäran, en så kallad tre-vägs handskakning.

Den “openSSH” avsnitt kan läsas som “en TCP-anslutning begäran måste göras till hamnar 7000, 8000 och 9000—i den ordning och inom 5 sekunder—för kommando för att öppna port 22 för att skickas till brandväggen.”

Den “closeSSH” avsnitt kan läsas som “en TCP-anslutning begäran måste göras till hamnar 9000, 8000, och 7000—i den ordning och inom 5 sekunder—för kommando för att stänga port 22 för att skickas till brandväggen.”

Brandväggsreglerna

“Command” – poster i openSSH och closeSSH avsnitt förblir desamma, med undantag för en parameter. Detta är hur de är som bestod av:

  • -Ett: Lägg till en regel på undersidan av brandväggsregler listan (openSSH-kommandot).
  • -D: ta Bort ett kommando från brandväggsregler lista (för closeSSH kommando).
  • INGÅNG: Denna regel gäller inkommande nätverkstrafik.
  • -s %IP -%: IP-adressen för den enhet begär en anslutning.
  • -p: Nätverk, protokoll, i detta fall, det är TCP.
  • –destinationsport: destination port; i vårt exempel, port 22.
  • -j ACCEPT: Hoppa till acceptera målet innanför brandväggen. Med andra ord, låt packet släppa igenom resten av reglerna utan att agera på den.

Den knockd konfigurationsfilen Redigeringar

De redigeringar vi ska göra för att filen som är markerad i rött nedan:

Vi förlänger “seq_timeout” till 15 sekunder. Detta är generös, men om någon manuellt bränning i samband begär, han kanske behöver detta mycket tid.

I “openSSH”, kan vi ändra A (append) alternativ i kommandot för att -I (insert). Detta kommando infogar en ny brandväggsregel på toppen av brandväggsregel listan. Om du lämnar alternativet-A, den lägger till den brandväggsregel listan och lägger det i botten.

Inkommande trafik testas mot varje brandväggsregel i listan uppifrån och ner. Vi har redan en regel som stänger port 22. Så, om inkommande trafik testas mot denna regel innan den ser den regel som tillåter trafik anslutning vägras, om man ser denna nya regel för det första anslutningen är tillåtna.

Den nära kommando tar bort den regel som lagts till av openSSH från reglerna. SSH-trafik än en gång hanteras av den pre-existerande “port 22 är stängt” – regeln.

När du gör dessa ändringar, spara konfigurationsfilen.

RELATERAT: Hur man Redigerar Text Filer Grafiskt på Linux Med gedit

Den knockd Kontroll Fil Redigeringar

Den knockd kontroll-filen är helt och hållet enklare. Innan vi dyker in och redigera det, men vi behöver veta det interna namnet för vårt nätverk anslutning; för att hitta den, skriv in detta kommando:

ip addr

Anslutningen i den här maskinen används till forskning denna artikel kallas enp0s3. Anteckna namnet på din anslutning.

Följande kommando redigerar knockd kontroll-fil:

sudo gedit /etc/default/knockd

Här är knockd fil i gedit.

De få ändringar vi behöver göra är markerade i rött:

Vi ändrade på det “START_KNOCKD=” inträde till från 0 till 1.

Vi tog också bort hash # från början av “KNOCKD_OPTS=” posten och ersättas “eth1” med namnet på vårt nätverk, enp0s3. Naturligtvis, om din nätverksanslutning är eth1, du kommer inte att ändra det.

Beviset Är i Pudding

Det är dags att se om det fungerar. Vi kommer att starta knockd demonen med detta kommando:

sudo systemctrl börja knockd

Nu ska vi hoppa på en annan dator och försöka ansluta. Vi installerade knockd verktyget på denna dator också, inte för att vi vill ställa upp porten och knackar, men eftersom knockd paketet innehåller ytterligare verktyg som heter knock. Vi kommer att använda denna maskin till en brand i vårt hemliga sekvensen och gör det knackar för oss.

Använd följande kommando för att skicka din hemliga sekvensen av anslutningar till hamnar på port knackar värd dator med IP-adressen 192.168.4.24:

slå 192.168.4.24 7000 8000 9000 -d-500

Här berättar slå till målet dator vid IP-adress 192.168.4.24 och brand en förfrågan om anslutning till hamnar 7000, 8000 och 9000, i sin tur, med a-d (fördröjning) på 500 millisekunder mellan dem.

En användare som heter “dave” och sedan gör en SSH-begäran till 192.168.4.24:

ssh dave@192.168.4.24

Hans anslutning accepteras, så kommer han in med sitt lösenord, och hans fjärr-sessionen börjar. Hans kommandotolken förändringar från dave@nostromo att dave@howtogeek. För att logga ut från en dator, han typ:

avsluta

Hans kommandotolken återvänder till sin lokala dator. Han använder slå en gång till, och den här gången riktar man hamnar i omvänd ordning för att stänga SSH-porten på en dator.

slå 192.168.4.24 9000 8000 7000 -d-500

Visserligen, det var inte en särskilt givande fjärr-sessionen, men det visar öppning och stängning av porten via port knackar och passar i en enda skärmbild.

Så, vad gjorde detta ser ut från andra sidan? Systemadministratören om port knackar värd använder följande kommando för att visa nya poster som kommer i systemloggen:

tail-f /var/log/syslog

  • Du ser tre openSSH-poster. Detta är upp till varje port är riktad genom fjärrkontrollen för att slå på verktyget.
  • När alla tre stadier av avtryckaren sekvens är uppfyllda, ett inlägg som säger “SESAM ÖPPNA dig” är inloggad
  • Kommandot för att infoga regeln i iptables-regler listan ska skickas. Det tillåter åtkomst via SSH på port 22 från specifika IP-adressen till den DATOR som gav rätt hemliga knock (192.168.4.23).
  • Användaren “dave” ansluter ett par sekunder och sedan kopplar.
  • Du ser tre closeSSH poster. Detta är upp till varje port är riktad genom fjärrkontrollen för att slå utility—det berättar port knackar värd att nära port 22.
  • Efter att alla tre stadier utlöses, vi får “SESAM ÖPPNA dig” – meddelande igen. Kommandot skickas till den brandvägg för att ta bort regeln. (Varför inte “NÄRA SESAM” när det är sista hamnen? Vem vet?)

Nu finns bara en regel i iptables-regler listan när det gäller port 22 och det är den vi skrev i början att stänga den port. Så, port 22 är nu stängt igen.

Slå den på Huvudet

Som port knackar s salong trick. Behandla det som en avledning och gör det inte i den verkliga världen. Eller, om du måste, lita inte på det som din enda form av säkerhet.

LÄS NÄSTA

  • “Vad Är en “Heta ” Ta” och Där Gjorde den Frasen Kommer Från?
  • “Hur Windows 7 är “Extended Security Updates Kommer att Arbeta
  • “Windows-10: s telefonsamtal Kommer att Stödja Alla Android-7+ – Telefoner
  • “Vad Är Patch-tisdag för Windows, och När Är Det?
  • “Inaktivera Interaktiva Pop-Up-Annonser på Din TV-Roku