Hvis du noen gang har sett på autentiseringsloggene for serveren din, vet du at enhver server som er koblet til Internett, er under en konstant byrde av påloggingsforsøk fra hackere.
Selv om serveren din er en helt ukjent hobbyserver, vil automatiserte skript finne den og kontinuerlig prøve å bruke SSH. Selv om de sannsynligvis ikke kommer inn så lenge du bruker komplekse passord eller andre sikkerhetstiltak, er det fortsatt en sjanse for at de kan lykkes.
Heldigvis er det en nyttig og morsom måte å fange disse hackerne på serveren din og holde dem for distrahert til å forårsake problemer.
Hva er en SSH Honeypot?
For å si det enkelt, er en SSH honningkrukke et lokkemiddel som er ment å se ut som lavthengende frukt for å tiltrekke seg nettkriminelle og lokke dem til å målrette den. Men det er ikke et faktisk mål, og hackeren skjønner det ofte ikke før det er for sent.
En honningkrukke kan ta mange former og ha mange forskjellige bruksområder. Noen ganger er de litt mer enn en distraksjon, men andre ganger brukes de til å samle informasjon om angriperen.
Mange offentlige etater bruker honningkrukker for å fange kriminelle, lokke dem til å angripe, bare for å samle informasjon om dem for å fange dem senere. Men honningpotter kan også brukes av systemadministratorer som jobber for selskaper eller bare hobbyister som kjører en Linux-server for moro skyld.
Hvorfor bruke en SSH Honeypot?
Det er mange grunner til at noen kanskje vil implementere en SSH honningpotte på serveren deres. I noen tilfeller kan det være lurt å bruke det slik at du kan blokkere eventuelle fremtidige tilkoblinger fra dem. Kanskje du bare ønsker å lokke dem vekk fra virkelige mål på systemet ditt. Eller det kan være for pedagogiske formål: for å hjelpe til med å lære hvordan angrepene fungerer.
I denne veiledningen bruker vi først og fremst honningkrukken som en distraksjon. Spesielt vil det distrahere hackeren fra å angripe mer sårbare deler av serveren din, samt holde dem for opptatt til å angripe andres server.
Og i det minste i dette tilfellet vil metoden som brukes også være bra for en latter eller to.
Fanget i SSH
I hovedsak, det vi ønsker å gjøre er å fange hackeren når de prøver å brutalt tvinge SSH-påloggingen. Det er noen måter å gjøre dette på, men en av de enkleste er å sakte sende dem et veldig langt SSH-banner.
På denne måten vil hackerens automatiserte skript sitte fast og vente på et banner. Dette kan vare i timer, om ikke dager eller uker. Siden skriptet er automatisert, legger hackeren sannsynligvis ikke mye oppmerksomhet til det og vil ikke legge merke til at det sitter fast før mye tid allerede har gått.
Dette blir noen ganger lekent referert til som en “SSH-tarpit”, ettersom hackerens skript blir sittende fast i det og ikke klarer å komme seg ut av seg selv.
Dette krever at du kjenner til grunnleggende SSH-bruk. Hvis du ikke er sikker på hvordan du bruker SSH, så les denne veiledningen for å komme i gang.
uendelig
Programmet som vi bruker for å oppnå dette kalles uendelig og er laget av skeeto.
Når du har logget på serveren din, kloner du depotet. (Du må ha git
installerte det.)
git clone https://github.com/skeeto/endlessh
Nå som du har depotet på serveren din, må du bytte til den katalogen og kompilere den.
cd endlessh make
Noen feil kan dukke opp mens du prøver å kompilere programmet. Dette betyr mest sannsynlig at du mangler en avhengighet som programmet må kompilere. Du må sjekke hvilken avhengighet den sier mangler, og deretter installere den med distribusjonens pakkebehandling.
Når du har programmet som skal kompileres, vil du flytte det til bin-katalogen slik at det er i banen din.
sudo mv endlessh /usr/local/bin
Du bør dobbeltsjekke for å sikre at det er oppdaget i banen din.
which endless
Det skal skrives ut/usr/local/bin/endlessh
sti. Hvis dette ikke er tilfelle, vil du sørge for at den ble flyttet til riktig katalog.
Deretter gjør du programmet til en tjenestedemon slik at det kan fungere som en systemd
service.
sudo cp util/endlessh.service /etc/systemd/system/
Når det er ferdig, aktiverer du tjenesten slik at den kjører i bakgrunnen.
sudo systemctl enable endlessh
Som standard vil endlessh bare fungere på porter over 1024, men vi vil at den skal bruke standard SSH-porten slik at vi kan lure hackere til å prøve å angripe den. For å gjøre dette, må vi redigere tjenestefilen.
Dette eksemplet bruker nano for å redigere konfigurasjonsfilen, men bruk gjerne det tekstredigeringsprogrammet du ønsker.
sudo nano /etc/systemd/system/endlessh.service
Når filen er åpen, fjerner du kommentaren til følgende linje ved å fjerne #-tegnet:
#AmbientCapabilities=CAP_NET_BIND_SERVICE
Legg så til et # til starten av denne linjen:
PrivateUsers=true
Lagre filen og kjør denne kommandoen:
sudo setcap 'cap_net_bind_service=+ep' /usr/local/bin/endlessh
Du må opprette og sette opp en konfigurasjonsfil slik at uendelig vet hvilken port den skal kjøre på. Du må lage en ny katalog for den først, og deretter opprette konfigurasjonsfilen.
sudo mkdir -p /etc/endlessh sudo vim /etc/endlessh/config
Konfigurasjonsfilen trenger bare en enkelt linje i den. Dette vil fortelle endlessh å kjøre på port 22, som er standardporten for SSH. Vi gjør dette slik at det er et mer forlokkende mål for hackere. De vil se at standard SSH-porten er åpen, og deretter prøve å bryte seg inn i den.
Skriv inn følgende i konfigurasjonsfilen din:
Port 22
Du må starte opp den endeløse tjenesten.
sudo systemctl start endlessh
Det er alt som skal til! Du vil nå kjøre uendelig på din standard SSH-port og fanger allerede hackere.
Tester det ut
Bare for å være sikker på at honningpotten fungerer etter hensikten, la oss late som om vi er en hacker et sekund og prøve å få tilgang til SSH på serveren din.
ssh root@<server-ip-address>
Så lenge alt er satt opp riktig, bør du se at ssh
kommandoen sitter fast og gjør ingenting. La oss ta en titt for å se hva som faktisk skjer når du (eller en faktisk hacker) utsteder denne kommandoen.
Gjenta den samme kommandoen, men legg til -vvv
flagg for å bruke det verbose alternativet.
ssh -vvv root@<server-ip-address>
Det skal nå være tydelig hvordan dette lille verktøyet fanger deg og hindrer deg i å få tilgang til SSH på serveren din. Det sender sakte, linje for linje, et veldig stort SSH-banner til klienten.
Og selvfølgelig, siden en hacke har dette automatisert med en bot, vil de ikke innse at dette skjer før du har kastet bort timer, om ikke dager, av tiden deres.
ofte stilte spørsmål
1. Vil dette hindre hackere i å få tilgang til SSH?
Selv om det er et ganske godt avskrekkende middel, er det ikke garantert å stoppe hackere fullstendig. En oppmerksom hacker vil etter hvert legge merke til at du har opprettet en honeypot på serveren din og kan prøve forskjellige porter for å få tilgang til SSH på serveren din.
Dette bør imidlertid være nok til å forhindre hackere som kun er ute etter den lavthengende frukten.
2. Hvordan bruker jeg SSH hvis dette programmet kjører på standardporten?
Du må endre porten SSH kjører på. Dette er god praksis selv om du ikke hadde en honeypot på serveren din, siden hackere alltid vil prøve standardporter først før de skanner etter andre.
3. Er det andre alternativer jeg kan legge til i konfigurasjonsfilen?
Ja, det er flere andre innstillinger du kan endre, inkludert å endre forsinkelseshastigheten.
Du kan se en liste over alternativer i eksempelkonfigurasjonsfilen på Github-depotet.
Siste ord
Nå som du har lært hvordan du setter opp en honeypot på serveren din for å fange hackere og holde dem distrahert slik at de ikke kan angripe noe annet, er det langt fra den eneste måten å sikre SSH-tilgang til serveren din.
Sjekk ut denne artikkelen som viser hvordan du bruker krypteringsnøkler for å logge på SSH for å bidra til å sikre serveren din ytterligere.
Bildekreditt: Honning i gryte, honningkake og pinne av Yay Images