När du har en server som är tillgänglig för allmänheten kan hackare enkelt skanna din IP-adress och kontrollera efter öppna portar (särskilt port 22 som används för SSH) på din server. Ett sätt att dölja din server från hackare är knocked. Knockd är a är en port-knock-server. Den lyssnar på all trafik på en Ethernet eller andra tillgängliga gränssnitt, och väntar på särskilda sekvenser av port-hits. Klienter som telnet eller Putty initierar port-hits genom att skicka ett TCP eller paket till en port på servern.

I den här artikeln kommer vi att titta på hur vi kan använda knockd för att dölja tjänster som körs på en Linux-server.

Installera Knockd på en Linux Server

Knockd är tillgänglig i de flesta distros repositorier. På en Debian / Ubuntu / Ubuntu-baserad server kan du använda kommandot apt-get att installera knockd.

 sudo apt-get install knockd 

För Fedora, CentOS eller REHL-användare kan du använda kommandot yum :

 Du installerar knockd 

Installera och konfigurera Iptables

Om du inte har Iptables installerad på din server, installera den nu.

 sudo apt-get installera iptables iptables-persistent 

Paketet iptables-persistent tar över automatisk laddning av sparade iptables.

Därefter måste du tillåta redan etablerade anslutningar såväl som aktuella sessioner via iptables. Använd följande kommando för att uppnå denna uppgift:

 iptables -A INPUT -m conntrack --ctstate Inrättat, RELATERAT -J ACCEPT 

Därefter måste du blockera alla inkommande anslutningar till port 22 SSH.

 iptables -A INPUT -p tcp --port 22 -j REJECT 

Låt oss nu spara brandväggen genom följande kommandon:

 netfilter-persistent spara netfilter-beständig reload 

Du kan gå vidare och kontrollera om du verkligen har blockerat port 22 genom att ansluta till din server via din dator.

 ssh min-server-ip 

Konfigurera Knockd

Nu är det dags att konfigurera knackade standardinställningar. Den är placerad på "/etc/knockd.conf." För att göra så byt till knockd-konfigurationsfilen med följande kommando:

 cd / etc sudo leafpad knockd.conf 

I illustrationen använder jag leafpadredigeraren. På din server kan du använda nano eller Vi.

Skärmdumpen visar klockkonfigurationsfilen.

  • Alternativ : Du kan hitta konfigurationsalternativ för Knockd i det här fältet. Som du kan se i skärmbilden ovan använder den syslog för loggning.
  • OpenSSH : Det här fältet består av sekvens, sekvens timeout, kommando och tcp flaggor.
  • Sekvens : Den visar portföljden som kan användas som ett mönster av kunden att initiera en åtgärd.
  • Sequence Timeout : Den visar den totala tiden som allokeras till klienter för att slutföra den önskade portknappssekvensen.
  • Kommando : Det här är kommandot som kommer att utföras när klientens klicksekvens matchar mönstret i sekvensfältet.
  • TCP_FLAGS : Det här är flaggan som måste ställas in på knockarna som utfärdats av klienten. Om flaggan var felaktig men knockmönstret är korrekt, kommer inte åtgärden att utlösas.

Obs ! Kommandot iptables i avsnittet OpenSSH i Knockd-konfigurationsfilen använder -A alternativet för att lägga till den här regeln till slutet av INPUT-kedjan. Detta förorsakar att alla återstående anslutningar släpps.

För att förhindra det, ersätt det med följande:

 command = / sbin / iptables -I INPUT 1 -s% IP% -p tcp --port 22 -j ACCEPT 

Detta kommando säkerställer att en ny regel läggs till överst i INPUT-kedjan för att acceptera ssh-anslutningar.

Aktivera och starta Knockd Service

Använd följande procedur för att aktivera knockdjänsten i "/ etc / default / knock."

Ändra värde från 0 till 1 som visas på skärmdumpen.

 START_KNOCKD = 1 

Därefter spara och stäng filen "/ etc / default / knockd."

Därefter kan du starta knockdjänsten genom att använda någon av följande kommandon:

 sudo service knockd start 

eller

 sudo systemctl starta knockd 

Tiden att knacka-testa din Linux-server

Nu är det dags att testa din Linux SSH-server. För att öppna port 22 vid en angiven IP-adress, använd följande på din dator. (Du måste installera knockd på din dator också)

 knock -v min-server-ip 7000 8000 9000 

Du måste ersätta "my-server-ip" med din servers IP-adress.

Du kan nu ansluta till port 22 SSH genom att använda följande kommando:

 ssh min-server-ip 

När du är klar med vad du vill göra via port 22 kan du stänga den med följande kommando:

 knacka -v min-server-ip 9000 8000 7000 

Slutsats

Med knock är du säker på att din SSH-server är säker och säker från attacker med sofistikerade skannrar. Dessutom är du helt ansvarig för din SSH-server.