Når du har en server, der er offentligt tilgængelig, kan hackere nemt scanne din IP-adresse og kontrollere, om åbne porte (især port 22, der bruges til SSH) på din server. En måde at skjule din server mod hackere er knocked. Knockd er a er en port-knock server. Det lytter til al trafik på ethernet eller andre tilgængelige grænseflader, og venter på særlige sekvenser af port-hits. Klienter som telnet eller Putty initierer port-hits ved at sende en TCP eller pakke til en port på serveren.

I denne artikel vil vi se på, hvordan vi kan bruge knockd til at skjule tjenester, der kører på en Linux-server.

Installer Knockd på en Linux Server

Knockd er tilgængelig i de fleste distro's repositorier. På en Debian / Ubuntu / Ubuntu-baseret server kan du bruge kommandoen apt-get til at installere knockd.

 sudo apt-get install knockd 

For Fedora, CentOS eller REHL brugere kan du bruge yum kommandoen:

 Du kan installere knockd 

Installer og konfigurer Iptables

Hvis du ikke har Iptables installeret på din server, skal du installere det nu.

 sudo apt-get installer iptables iptables-vedholdende 

Pakken iptables-persistent overtager automatisk indlæsning af gemte iptables.

Derefter skal du tillade allerede etablerede forbindelser såvel som aktuelle sessioner gennem iptables. Brug følgende kommando for at opnå denne opgave:

 iptables -A INPUT -m conntrack --ctstate OPSTILLET, RELATERET -J ACCEPT 

Derefter skal du blokere alle indgående forbindelser til port 22 SSH.

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

Lad os nu gemme firewallreglerne ved hjælp af følgende kommandoer:

 netfilter-vedholdende gemme netfilter-vedvarende genindlæsning 

Du kan gå videre og kontrollere, om du faktisk har blokeret port 22 ved at oprette forbindelse til din server via din computer.

 ssh my-server-ip 

Konfigurer Knockd

Nu er det tid til at konfigurere knockd standardindstillinger. Den er placeret på "/etc/knockd.conf." For at gøre det skal du skifte til knockd konfigurationsfilen ved hjælp af følgende kommando:

 cd / etc sudo leafpad knockd.conf 

Til illustration formål bruger jeg leafpad editoren. På din server kan du bruge nano eller Vi.

Skærmbilledet viser klok konfigurationsfilen.

  • Valg : Du kan finde konfigurationsindstillinger for Knockd i dette felt. Som du kan se i skærmbilledet ovenfor, bruger det syslog til logning.
  • OpenSSH : Dette felt består af sekvens, sekvens timeout, kommando og tcp flag.
  • Sekvens : Den viser havnesekvensen, som kan bruges som et mønster af klienten til at indlede en handling.
  • Sequence Timeout : Den viser den samlede tid, der er allokeret til klienterne for at fuldføre den nødvendige portknock-sekvens.
  • Kommando : Dette er kommandoen, der vil blive udført, når klientens klokkesekvens matcher mønsteret i sekvensfeltet.
  • TCP_FLAGS : Dette er det flag, der skal indstilles på de knapper, der udstedes af klienten. Hvis flagget var forkert, men knock-mønsteret er korrekt, vil handlingen ikke blive udløst.

Bemærk : Kommandoen iptables i OpenSSH-sektionen i Knockd-konfigurationsfilen bruger -A mulighed for at tilføje denne regel til slutningen af ​​INPUT-kæden. Dette får alle de resterende forbindelser til at falde.

For at forhindre det skal du erstatte det med nedenstående:

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

Denne kommando sikrer, at en ny regel tilføjes øverst i INPUT-kæden for at acceptere ssh-forbindelser.

Aktivér og start Knockd Service

Brug følgende procedure for at aktivere knockd service i "/ etc / default / knock."

Skift værdi fra 0 til 1 som vist på skærmbilledet.

 START_KNOCKD = 1 

Herefter gemme og luk filen "/ etc / default / knockd."

Derefter kan du starte knockd service ved at bruge en af ​​følgende kommandoer:

 sudo service knockd start 

eller

 sudo systemctl start knockd 

Tid til at banke-Test din Linux Server

Nu er det tid til at teste din Linux SSH-server. Hvis du vil åbne port 22 ved en angivet IP-adresse, skal du bruge følgende på din computer. (Du skal også installere knockd på din computer)

 knock -v min-server-ip 7000 8000 9000 

Du skal udskifte "my-server-ip" med din serverens IP-adresse.

Du kan nu oprette forbindelse til port 22 SSH ved at bruge følgende kommando:

 ssh my-server-ip 

Når du er færdig med det, du ønskede at gøre via port 22, kan du lukke det ved hjælp af følgende kommando:

 knock -v min-server-ip 9000 8000 7000 

Konklusion

Med knock er du sikker på at din SSH-server er sikret og sikker fra angriberne med sofistikerede scannere. Derudover er du helt ansvarlig for din SSH-server.