Wanneer u een server hebt die openbaar toegankelijk is, kunnen hackers eenvoudig uw IP-adres scannen en controleren op open poorten (met name poort 22 die wordt gebruikt voor SSH) op uw server. Een manier om uw server te verbergen voor hackers is knockd. Knockd is een port-knock-server. Het luistert naar alle verkeer op een ethernet of andere beschikbare interfaces, in afwachting van speciale sequenties van poort-hits. Cliënten zoals Telnet of Putty starten poorthits door een TCP of pakket naar een poort op de server te verzenden.

In dit artikel zullen we bekijken hoe we knockd kunnen gebruiken om services te verbergen die op een Linux-server worden uitgevoerd.

Installeer Knockd op een Linux-server

Knockd is beschikbaar in de meeste repro's van repro's. Op een op Debian / Ubuntu / Ubuntu gebaseerde server kunt u de opdracht apt-get gebruiken om knockd te installeren.

 sudo apt-get install knockd 

Voor Fedora, CentOS of REHL-gebruikers, kunt u de yum opdracht gebruiken:

 yum installeer knockd 

Installeer en configureer Iptables

Als Iptables nog niet op uw server is geïnstalleerd, installeert u het nu.

 sudo apt-get install iptables iptables-persistent 

Het pakket iptables-persistent neemt het automatisch laden van opgeslagen iptables over.

Vervolgens moet u reeds bestaande verbindingen toestaan, evenals huidige sessies via iptables. Gebruik de volgende opdracht om deze taak te voltooien:

 iptables -A INPUT -m conntrack --ctstate ESTABLISHED, RELATED -j ACCEPT 

Vervolgens moet je alle inkomende verbindingen blokkeren naar poort 22 SSH.

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

Laten we nu de firewallregels opslaan via de volgende opdrachten:

 netfilter-persistent save netfilter-persistent reload 

U kunt doorgaan en controleren of u poort 22 inderdaad hebt geblokkeerd door via uw computer verbinding te maken met uw server.

 ssh my-server-ip 

Knockd configureren

Nu is het tijd om knockd standaardinstellingen te configureren. Deze bevindt zich op "/etc/knockd.conf." Ga hiervoor naar het knockd-configuratiebestand met de volgende opdracht:

 cd / etc sudo leafpad knockd.conf 

Voor illustratiedoeleinden gebruik ik de leafpad-editor. Op uw server kunt u nano of Vi gebruiken.

De schermafbeelding toont het knockd-configuratiebestand.

  • Opties : u kunt configuratie-opties voor Knockd vinden in dit veld. Zoals u kunt zien in de bovenstaande schermafbeelding, wordt syslog gebruikt voor logboekregistratie.
  • OpenSSH : dit veld bestaat uit reeks-, sequentie-timeout-, commando- en tcp-vlaggen.
  • Sequence : het toont de poortsequentie die door de client als een patroon kan worden gebruikt om een ​​actie te initiëren.
  • Sequence Timeout : toont de totale tijd die aan clients is toegewezen om de vereiste port knock-sequentie te voltooien.
  • Opdracht : dit is het commando dat zal worden uitgevoerd zodra de klopvolgorde door de client overeenkomt met het patroon in het sequentieveld.
  • TCP_FLAGS : Dit is de vlag die moet worden ingesteld voor de klappen die door de klant worden uitgegeven. Als de vlag niet klopt maar het kloppatroon onjuist is, wordt de actie niet geactiveerd.

Opmerking : de opdracht iptables in de sectie OpenSSH in het bestand Knockd-configuratie gebruikt de optie -A om deze regel toe te voegen aan het einde van de INPUT-keten. Hierdoor gaan alle resterende verbindingen verloren.

Om dit te voorkomen, vervangt u het met het volgende hieronder:

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

Deze opdracht zorgt ervoor dat er een nieuwe regel aan de bovenkant van de INPUT-keten wordt toegevoegd om ssh-verbindingen te accepteren.

Schakel Knockd Service in en start deze

Gebruik de volgende procedure om de service knockd in te schakelen in "/ etc / default / knock."

Verander de waarde van 0 naar 1 zoals weergegeven in de schermafbeelding.

 START_KNOCKD = 1 

Sla daarna het bestand "/ etc / default / knockd." Op en sluit het.

Vervolgens kun je de knockd-service starten met een van de volgende opdrachten:

 sudo service knockd start 

of

 sudo systemctl start knockd 

Time to Knock-Test Your Linux Server

Nu is het tijd om je Linux SSH-server te testen. Als u poort 22 op een opgegeven IP-adres wilt openen, gebruikt u het volgende op uw computer. (U moet ook knockd op uw computer installeren)

 knock-v my-server-ip 7000 8000 9000 

U moet "my-server-ip" vervangen door het IP-adres van uw server.

U kunt nu verbinding maken met poort 22 SSH met behulp van de volgende opdracht:

 ssh my-server-ip 

Nadat je klaar bent met wat je wilt doen via poort 22, kun je het afsluiten met de volgende opdracht:

 knock-v my-server-ip 9000 8000 7000 

Conclusie

Met knockd bent u er zeker van dat uw SSH-server beveiligd is en beschermd tegen aanvallers met geavanceerde scanners. Bovendien bent u volledig verantwoordelijk voor uw SSH-server.