Vad är poängen med detta ifall SSH-nyckel och Wireguard-kryptering erbjuder jämförbara säkerhetsnivåer och det inte är som du kan förvänta dig att en angripare kan knäcka vare sig? Vilka är vanliga användningsområden för Wireguard?
SSH är ganska säkert i sig, om du följer alla riktlinjer (till exempel, inaktivera lösenordsinloggning, inaktivera alla inloggningar för användare som inte behöver ha detta (som tjänster använder när du installerar dem) etc)
Användningsfallet för Wireguard är att vara en VPN. När du ansluter via Wireguard är det som om du är direktansluten till nätverket av din server. Som om jag tracerouter IP-adressen till min server via Wireguard, är det bara ett hopp bort:
traceroute till 10.11.12.1 (10.11.12.1), 30 hopp max, 60 byte paket
1 server.vpn (10.11.12.1) 221.807 ms 221.809 ms 221.784 ms
Jag är också på samma nätverk som andra Wireguard-klienter, så min mobiltelefon kan prata direkt med min stationära dator även när jag är bortrest hemifrån. Det här är vad en VPN används för, att göra ett Virtuellt Nätverk som är Privat.
Ska du köra alla typiska tjänster över Wireguard eller finns det fall där du inte ska?
Det beror. Om jag kör min vanliga webbserver över Wireguard, ja, ingen kommer att kunna se min hemsida! Men till exempel är min Jellyfin-server bara bakom Wireguard, det finns inget behov av att den ska exponeras till hela internet. Du kör saker bakom Wireguard om du vill att det ska vara privat.
Gör detta att saker som Fail2ban/Crowdsec blir överflödiga (om jag har förstått det rätt, Wireguard använder UDP så kommer den bara svara på oönskade anslutningar)? Skulle Fail2ban/Crowdsec erbjuda några fördelar för portar som inte är öppna?
Om du placerar en tjänst bakom Wireguard (eller någon annan VPN), ja, då är fail2ban och liknande överflödigt för den tjänsten. Men du kan aktivera Wireguard för att skapa loggar och konfigurera fail2ban att blockera IPs som försöker ansluta men inte ger en korrekt handshake. Det kommer att synas i loggarna så här:
Sat Mar 6 20:41:31 2021] wireguard: wg0: Ogiltigt handskakningsinitiering från 203.0.113.2:51820
Jag har aldrig sett någon göra detta, dock.
Finns det andra generella regler för att förbättra en brandvägg förutom standarden att neka all inkommande anslutning förutom nödvändiga portar?
En enkel brandvägg som UFW kan bara tillåta att blockera portar. Men du kan förbättra med annan programvara också. De brandväggar som utför DPI (Deep Packet Inspection) kan till exempel upptäcka viss trafik även om den inte använder standardportar. Så låt oss säga att du låser din SSH endast bakom en Wireguard och installerar en DPI-brandvägg som är konfigurerad för att blockera SSH-anslutningar på den offentliga IP:n. Och låt oss säga att du fått en bakdörr som skapar en SSH-server på en slumpmässig port. I det ögonblick en SSH-paket anländer, kommer DPI-brandväggen att märka det och blockera. Jag har aldrig använt sådan programvara, så jag kan inte hjälpa till med detta, förutom att veta att det finns.
En annan sak jag lagt märke till på min webbserver är att flera bots försöker hitta sårbarheter i viss webbprogramvara. Jag får flera träffar på /wp/admin och andra välkända sökvägar som naturligtvis ger 404 fel. Jag konfigurerade fail2ban för att fängsla de IPs som försöker göra detta. En vanlig brandvägg kan inte göra det eftersom jag bara skulle kunna öppna eller stänga port 443. Fail2ban kan å andra sidan övervaka mina webbserverloggar, och inkludera brandväggsregler för att blockera de IPs i realtid, och även hålla koll på vad som blockeras och hur länge, för att ta bort blockeringsregler efter en tid.