Både använder standardkryptering och är väletablerade, men jag ser att folk här skrockar åt att exponera ssh på den offentliga internet, men rekommenderar att sätta upp en VPN. Om du sätter upp varje i den “normala” vägen (ssh med nyckelbaserad autentisering; VPN med wireguard), är de inte lika säkra?
Rätt inställt SSH är inte riskabelt. De flesta som säger så reciterar bara saker de ser hela tiden. Jag har haft SSH öppet i åratal. SSH är en mycket säker programvara från OpenBSD-projektet (som också är mycket säkerhetsfokuserat) och används brett av regeringar och företag världen över.
Jag brukar bara rekommendera VPN mer för praktikalitet eftersom folk oftast frågar om det för att komma åt sitt hemnätverk på distans. I så fall har VPN fördelen att när du är inloggad kan du få åtkomst till alla fjärrmaskiner som om du är på LAN. Med SSH har du bara tillgång till SSH-maskinen. Du kan sätta upp tunneling, men det är mer komplicerat att konfigurera enligt mig.
Om du väljer att använda SSH, se till att du använder antingen ed25519 eller RSA med minst 4096-bitars nyckellängd och inaktivera lösenordsbaserad inloggning.
- “exponerad” SSH är bullrig tack vare botnets som försöker brute-force eller stulna autentiseringsuppgifter… att använda ett ovanligt eller unikt användarnamn, inaktivera lösenord och ställa in pubkey-autentisering motverkar dessa attacker men det syns fortfarande i loggarna, vilket nybörjare blir paranoida över.
- sedan för wireguard, är det mindre bullrigt eftersom det inte svarar på obehörig trafik. så länge din brandvägg släpper inte igenom paket, är det okänt via portscanning. plus det ger dig en privat IP-adress som du enkelt kan binda dina tjänster till istället för att tunnla individuella portar över SSH.
Här är något jag inte ser någon säga, ur ett företagsäkerhetsperspektiv då;
-
SSH är i grunden svarande. Det kommer att svara även vid ett misslyckande. Även att etablera en session kan ge källan mycket information, som din SSH-version, KEX, Ciphers, etc. Om du har en avancerad SSH-banner kan allt i den gå in i listan. Det kan till och med få operativsystem och version av det du använder i vissa fall.
-
Vanligtvis körs SSH inte på din router, utan portforwardas till en intern enhet. Det betyder att det finns ett hål i din routers brandvägg, och om någon av tjänsterna är felkonfigurerad kan det tillåta angriparen att pivota till andra interna enheter.
-
VPN:er körs vanligtvis på routern och bör ha flera verifierings- och behörighetsnivåer. Till exempel, OpenVPN kan konfigureras att helt ignorera anslutningsförsök utan en specifik nyckel. Om den inte svarar, vet inte angriparen att den finns.
-
Du kan också ha begränsningar i din VPN:s brandvägg så att VPN-klienter har en begränsad uppsättning tjänster de kan komma åt. Att sätta upp en SSH-bastion är mycket mer kunskapskrävande.
-
Om du vidarebefordrar SSH på standardporten kan en angripare undra vilka andra tjänster du kör och göra ett fullständigt skann. HTTP/S, VPN-standarder, andra vanliga portar, kan de börja peta på hårdare, och loggningen fylls snabbt.
-
Probing-attacker försöker få tillgång främst, men att samla information är en nära andra. Shodan är en sak och den säljer bokstavligen detta data som en affärsmodell. Andra typer av webbplatser är mindre pålitliga.
Ännu en gång, detta är företagsäkerhetstänkande.
Svar här missar helt poängen.
Kryptering är densamma.
Säkerhetsbekymret med SSH handlar inte om krypteringen. SSH är för hantering av en maskin. Du öppnar ett säkert (krypterat) skal på distans för att kör kommandon på en annan maskin; det är syftet med SSH. Du kör inte kommandon över VPN.
Om jag komprometerar ditt VPN, får jag lager 3-åtkomst till ditt nätverk. Om jag komprometerar SSH med root-privilegier äger jag din maskin, och sannolikt många andra.
I en företagsmiljö är det vanligt att ha “jump boxes”. Till exempel, jag jobbade för en internetleverantör som hade flera randroutrar där kundtrafi k transiterade. Åtkomstkontrollistor förhindrade SSH från vilken IP som helst som inte var en av jump boxarna. Jag kunde bara SSH:a till routrarna från jump boxarna (som kör RHEL), som var placerade i vårt nätverk, och krävde MFA (multifaktorautentisering) för inloggning, och sedan ytterligare en uppsättning behörigheter för SSH till routrarna.
Om dessa ACL:er inte var på plats, kunde en kund/dålig aktör potentiellt få lösenordet till routern och ställa till det för tusentals andra kunder som trafikerar den routern.
Det har absolut inget att göra med krypteringen när folk säger att man inte ska exponera SSH för det allmänna internet.
Att ha SSH öppet för internet är okej, du behöver bara strikta säkerhetskontroller precis som med vilken offentlig tjänst som helst.
Varför rekommenderar folk här att sätta upp VPN för säker tillgång, men säger att exponering av SSH är för riskabelt?
Jag är inte säker på att de gör det… Jag ser det inte så ofta..
Vissa säger detta, men jag skulle inte säga att det är vanligt.
Personligen har jag SSH öppet för världen på den normala porten.
Att byta port ger det några dagar till innan det hittas, men det är fortfarande upptäckt och listat i offentliga listor över SSH-servrar.
Jag brukade byta portnummer, men slutade av några skäl..
-
Jag var tvungen att komma ihåg vilken port jag bytte till..
-
Vissa platser begränsar vilka portar utgående anslutningar får göras till, 22 kan vara tillåtet men en slumpmässig port inte.
-
Det gör ingenting annat än att lägga till ett par dagar innan det listas.
Port-knocking är ett annat alternativ som vissa använder för att dölja det, men det hänvisar till 1 och 2 ovan.
Alla utom ett av mina OS avbryter anslutningen innan lösenordsprompten visas, den som fortfarande visar lösenord, accepterar inte lösenordet om kontot har ett nyckel sparat.
Jag använder SSH för att fixa systemet om min VPN inte kan ansluta.
Linode / AWS / GCP ger alla SSH, problemet är att om folk frågar om det är okej kanske de inte vet hur man säkrar det. Implementering är det största hindret.
Wireguard, till exempel, är UDP vilket är svårare att upptäcka om en port är öppen eller inte under ett portskanning.
SSH använder TCP så det är lättare att upptäcka under ett portskanning.
Du har rätt, med några icke-standardalternativ är SSH lika säkert som en VPN. SSH kan hårdrocks ganska bra.
Men det finns några fördelar med en VPN - om du kör en över UDP, kommer den inte att synas vid en portscanning, medan SSH som använder TCP kommer att (även om Port Knocking minskar detta). Jag använder OpenVPN med TLS Auth, så en klient kan inte ens initiera en anslutning om den inte har den nödvändiga nyckeln. Och en VPN ger dig mer granular åtkomst till maskinerna bakom den genom att definiera rutter eller specificera ett subnet med brandväggsregler.
Det finns mycket överlappning i funktionalitet men båda är säkra alternativ om de är korrekt konfigurerade. Och SSH är svårt att konfigurera fel på om du inte really vet vad du gör.
Det beror. Tekniskt sett är båda i samma riskkategori. Om de är ordentligt inställda, skulle båda också vara okej.
Folk här är oftast också med tekniska jobb och tenderar att rekommendera beprövade bästa metoder från sina branscher. Från den synvinkeln skulle ett mer strukturerat företagsnätverk, en VPN, vara mer meningsfull eftersom den fjärrstyrda enheten sannolikt är hanterad eller kan hanteras. Dessutom är det lättare att isolera när man använder VPN i sådana miljöer. Så folk rekommenderar vad som fungerar.
Jag använder en VPN istället för att exponera en SSH-port av samma skäl. Mitt hem-labb är ett nästan spegelav av mina företagsnätverk i många tekniska avseenden, inklusive VPN, etc. Jag kan använda det för att testa nya tekniker och lära mig befintlig teknik som jag exponeras för dagligen.
Så det är förmodligen därför du ser dessa rekommendationer. Om du vill använda SSH, konfigurera det bara ordentligt så är du okej. Följ reglerna för all exponering (regelbundna uppdateringar, övervakning, etc) och det finns vanligtvis inga problem.
Det finns inget problem med att exponera SSH om det konfigureras säkert. Vi gör oftast inte detta externt och våra SSH-servrar är alla* inställda på nyckel-läge.
- de flesta. Utvecklingsservrar, testservrar, etc kanske ännu inte är konfigurerade.
En dåligt konfigurerad VPN som passar trafiken är säkrare än en standard SSH-server. När du konfigurerar en VPN gör du det för att tillåta fjärråtkomst, säkerheten är det första. VPN-inställningarna är osannolikt att ändras. När du gör en ändring är du medveten om riskerna.
I många fall är SSH förinstallerat och fungerar.
Default-konfigurationen av SSH är inte tillräckligt säker för att exponeras till internet. Det kräver kunskap och åtgärder för att bli säkert.
Så, svaret är att båda kan vara säkra att exponera till internet. Men anledningen till att använda SSH bakom en VPN är att mildra mänskliga fel, brist på kunskap och processfel. Det är mycket svårare att av misstag tillåta tillgång om du har din SSH bakom din VPN.
Om du har en hektisk miljö kan säkerhetsteamet eller seniora tekniker hantera eller granska VPN. Sedan kan juniora tekniker eller utvecklare starta servrar med SSH-åtkomst som inte kräver omedelbar granskning från säkerhetsteamet för att säkerställa att de är korrekt konfigurerade.