Når du har en server som er offentlig tilgjengelig, kan hackere enkelt skanne IP-adressen din og se etter åpne porter (spesielt port 22 som brukes til SSH) på serveren din. En måte å skjule serveren mot hackere er knockd. Knockd er en er en port-knock server. Den lytter til all trafikk på et Ethernet eller andre tilgjengelige grensesnitt, og venter på spesielle sekvenser av port-hits. Klienter som telnet eller Putty initierer port-hits ved å sende en TCP eller pakke til en port på serveren.

I denne artikkelen vil vi se på hvordan vi kan bruke knockd til å skjule tjenester som kjører på en Linux-server.

Installer Knockd på en Linux Server

Knockd er tilgjengelig i de fleste distros repositorier. På en Debian / Ubuntu / Ubuntu-basert server kan du bruke apt-get kommandoen for å installere knockd.

 sudo apt-get install knockd 

For Fedora, CentOS eller REHL brukere, kan du bruke yum kommandoen:

 Du kan installere knockd 

Installer og konfigurer Iptables

Hvis du ikke har Iptables installert på serveren din, må du installere den nå.

 sudo apt-get installere iptables iptables-vedvarende 

Pakken iptables-persistent tar over automatisk lasting av lagrede iptables.

Deretter må du tillate allerede etablerte forbindelser så vel som dagens økter gjennom iptables. Bruk følgende kommando for å oppnå denne oppgaven:

 iptables -A INPUT -m conntrack --ctstate etablert, relatert -J aksept 

Deretter må du blokkere alle innkommende tilkoblinger til port 22 SSH.

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

La oss nå lagre brannmurreglene via følgende kommandoer:

 netfilter-vedvarende lagre netfilter-vedvarende reload 

Du kan gå videre og sjekke om du faktisk har blokkert port 22 ved å koble til serveren din via datamaskinen.

 ssh min-server-ip 

Konfigurer Knockd

Nå er det på tide å konfigurere standardinnstillinger for knockd. Den er plassert på "/etc/knockd.conf." For å gjøre det, bytt til knockd konfigurasjonsfilen ved hjelp av følgende kommando:

 cd / etc sudo leafpad knockd.conf 

Til illustrasjonsformål bruker jeg leafpad editoren. På serveren kan du bruke nano eller Vi.

Skjermbildet viser klokkeslettkonfigurasjonsfilen.

  • Alternativer : Du kan finne konfigurasjonsalternativer for Knockd i dette feltet. Som du ser på skjermbildet over, bruker det syslog for logging.
  • OpenSSH : Dette feltet består av sekvens, sekvens timeout, kommando og tcp flagg.
  • Sekvens : Den viser portsekvensen som kan brukes som et mønster av klienten for å starte en handling.
  • Sequence Timeout : Den viser total tid tildelt til klienter for å fullføre den nødvendige portknappen.
  • Kommando : Dette er kommandoen som vil bli utført når klokkesekvensen av klienten samsvarer med mønsteret i sekvensfeltet.
  • TCP_FLAGS : Dette er flagget som må settes på knockene utstedt av klienten. Hvis flagget var feil, men knock-mønsteret er korrekt, vil ikke handlingen utløses.

Merk : Kommandoen iptables i OpenSSH-delen i Knockd-konfigurasjonsfilen bruker -A alternativet for å legge til denne regelen til slutten av INPUT-kjeden. Dette fører til at alle de resterende forbindelsene faller.

For å forhindre det, erstatt det med følgende:

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

Denne kommandoen sikrer at en ny regel legges til toppen av INPUT-kjeden for å godta ssh-tilkoblinger.

Aktiver og start Knockd Service

Bruk følgende fremgangsmåte for å aktivere knockdjenesten i "/ etc / default / knock."

Endre verdien fra 0 til 1 som vist på skjermbildet.

 START_KNOCKD = 1 

Etterpå lagre og lukk filen "/ etc / default / knockd."

Deretter kan du starte knockdjenesten ved å bruke en av følgende kommandoer:

 sudo service knockd start 

eller

 sudo systemctl start knockd 

Tid til å banke-teste Linux-serveren

Nå er det på tide å teste Linux SSH-serveren din. Hvis du vil åpne port 22 på en spesifisert IP-adresse, bruker du følgende på datamaskinen. (Du må også installere knockd på datamaskinen din også)

 knock -v min server-ip 7000 8000 9000 

Du må erstatte "my-server-ip" med serverens IP-adresse.

Du kan nå koble til port 22 SSH ved å bruke følgende kommando:

 ssh min-server-ip 

Etter at du er ferdig med hva du ønsket å gjøre via port 22, kan du lukke den ved hjelp av følgende kommando:

 knock -v min server-ip 9000 8000 7000 

Konklusjon

Med knock, er du trygg på at SSH-serveren din er sikret og sikker fra angripere med sofistikerte skannere. I tillegg er du helt ansvarlig for SSH-serveren din.