Introduksjon
Forutsetninger
Trinn 1: Knockd installasjon
Trinn 2: iptables-regler
Trinn 3: Knockd-konfigurasjon
Trinn 4: Testing
Konklusjon
Introduksjon
I tillegg til å endre standardporten for SSH, og bruke et nøkkelpar for autentisering, kan portbanking brukes til ytterligere å sikre (eller mer nøyaktig, skjule) SSH-serveren din. Det fungerer ved å nekte tilkoblinger til SSH-nettverksporten din. Dette skjuler i hovedsak det faktum at du kjører en SSH-server inntil en sekvens av tilkoblingsforsøk blir gjort til forhåndsdefinerte porter. Veldig sikker og enkel å implementere, portbanking er en av de beste måtene å beskytte serveren din mot ondsinnede SSH-tilkoblingsforsøk.
Forutsetninger
- En Vultr-server som kjører Ubuntu 18.04.
- Sudo tilgang.
Før du følger trinnene nedenfor, hvis du ikke er logget på som root-bruker, vennligst skaff deg et midlertidig rotskall ved å kjøre sudo -iog skrive inn passordet ditt. Alternativt kan du legge sudotil kommandoene vist i denne artikkelen.
Trinn 1: Knockd installasjon
Knockd er pakken som brukes i kombinasjon med iptables for å implementere portbanking på serveren din. iptables-persistentPakken ' ' kreves også.
apt update
apt install -y knockd iptables-persistent
Trinn 2: iptables-regler
Kjør følgende kommandoer i rekkefølge:
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --destination-port 22 -j DROP
iptables-save > /etc/iptables/rules.v4
Disse kommandoene vil gjøre henholdsvis følgende:
- Instruer iptables om å holde eksisterende tilkoblinger i live.
- Instruer iptables å avbryte enhver tilkobling til port tcp/22 (hvis SSH-demonen din lytter på en annen port enn 22, bør du endre kommandoen ovenfor tilsvarende.)
- Lagre disse to reglene slik at de vil vedvare etter en omstart.
Trinn 3: Knockd-konfigurasjon
Åpne filen ved å bruke et tekstredigeringsprogram du ønsker /etc/knockd.conf.
Du vil se følgende:
[openSSH]
sequence = 7000,8000,9000
seq_timeout = 5
command = /sbin/iptables -A INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
tcpflags = syn
Du bør endre portsekvensen (velg portnumre ovenfor 1024og ubrukt av andre tjenester), og lagre det trygt. Denne kombinasjonen bør behandles som et passord. Hvis du glemmer det, mister du tilgangen til SSH. Vi vil referere til denne nye sekvensen som x,y,z.
den seq-timeoutlinje er antall sekunder Knockd vil vente på klient for å fullføre den port-banke-sekvensen. Det vil være en god idé å endre dette til noe større, spesielt hvis portbankingen skal gjøres manuelt. En mindre tidsavbruddsverdi er imidlertid tryggere. Det anbefales å endre det til 15siden vi vil banke manuelt i denne opplæringen.
Endre åpningssekvensen til de valgte portene:
[openSSH]
sequence = x,y,z
Endre kommandoverdien til følgende:
command = /sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
Endre nå avslutningssekvensen tilsvarende:
[closeSSH]
sequence = z,y,x
Lagre endringene og avslutt, og åpne filen /etc/default/knockd:
- Bytt ut
START_KNOCKD=0med START_KNOCKD=1.
- Legg til følgende linje på slutten av filen:
KNOCKD_OPTS="-i ens3"(erstatt ens3med navnet på det offentlige nettverksgrensesnittet hvis det er forskjellig.)
- Lagre og lukk.
Start nå Knockd:
systemctl start knockd
Hvis du nå koble fra serveren din, må du banke på portene x, yog zå koble til igjen.
Trinn 4: Testing
Du vil nå ikke kunne koble til SSH-serveren din.
Du kan teste portbanking med en telnet-klient.
Windows-brukere kan starte telnet fra ledeteksten. Hvis telnet ikke er installert, gå til "Programmer"-delen av kontrollpanelet, og finn deretter "Slå Windows-funksjoner på eller av". På funksjonspanelet, finn "Telnet Client" og aktiver den.
Skriv inn følgende i terminalen/kommandoprompten:
telnet youripaddress x
telnet youripaddress y
telnet youripaddress z
Gjør alt dette på femten sekunder, siden det er grensen som er pålagt i konfigurasjonen. Prøv nå å koble til serveren din via SSH. Den vil være tilgjengelig.
For å lukke tilgangen til SSH-serveren, kjør kommandoene i omvendt rekkefølge.
telnet youripaddress z
telnet youripaddress y
telnet youripaddress z
Konklusjon
Det beste med å bruke portbanking er at hvis det er konfigurert sammen med autentisering av privat nøkkel, er det praktisk talt ingen sjanse for at noen andre kan komme inn med mindre noen kjente portbankingssekvensen din og hadde din private nøkkel.