SSH till mer än en server på privat nätverk

Permalänk
Medlem

SSH till mer än en server på privat nätverk

Jag hade en fundering kring detta med SSH då jag har ett antal klienter man vill komma åt via SSH.

Scenariot är då detta:
Jag sitter utanför mitt privata nätverk och vill göra något på en utav servrarna hemma. Jag loggar då in med putty till min publika IP-adress och port 22 som jag då gjort port-forwarding till en utav mina servrar. Detta fungerar ju bra om man bara har en server, men jag har ju flera.

Vad är då bästa sättet att lösa problemet?

Ska man sätta upp ett eget system av portar i gateway mellan en range som vanligtvis inte används av några applikationer? Som jag sedan får memorera för vilken enhet jag vill komma åt.

Kan man använda en server som svarar på port 22 default och sedan genom den ansluta till dom andra enheterna då dessa ligger på samma privata nätverk? Lite av en SSH gateway. Kanske kan skriva ett program som smidigt löser det.

Eller finns det kanske redan någon bra lösning som inte jag lyckats googla fram?

Permalänk
Medlem

Framförallt så ska du inte ha SSH öppet mot internet enligt mig. Om du har flera servrar kanske du har möjlighet att sätta upp en VPN-server?

Permalänk
Medlem

Googla SSH Jump Host, det är det du vill ha.

Skrivet av Superolle:

Framför allt så ska du inte ha SSH öppet mot internet enligt mig. Om du har flera servrar kanske du har möjlighet att sätta upp en VPN-server?

Varför? SSH, är väldigt säkert, VPN är inte på något sätt säkrare. Men se för guds skull till att att inte använda lösenord använd istället nycklar för authentiering.

Permalänk
Medlem

När du har SSH:at in till en av dina server är det ju absolut inga problem att SSH:a vidare till de andra via deras interna IP.

Permalänk
Medlem

@dlq84: Nu är jag förvisso fördomsfull men eftersom han ställde frågan förutsätter jag att han inte använder någon högre form av encryption eller cert...

Du har dock helt rätt och jag uttryckte mig klumpigt. Rätt konfigurerat är de likvärdiga men då tycker jag fortfarande att en VPN är smidigare

Permalänk
Medlem

Kolla på fail2ban om du ska öppna utifrån

Permalänk
Medlem

Nu är jag förvisso bättre på Windows men jumphost tänket är helt rätt .....

1. Definitivt SSH keys och inte lösenord (vid behov ändra /etc/ssh/sshd_config och sätt PasswordAuthentication no samt pubkeyauthentication yes)

2. Använd minst en nyckel till systemet som är nåbart utifrån och en annan till de andra burkarna.

när det väl är rätt konfat och nycklar på rätt platser så räcker det med ett SSH -J user@jumphost user@target för att man ska landa på sitt målsystem

Visa signatur

Arbetsdator: HFX Mini. Ryzen 3600, GTX1650. Skärmar: Dell 2415

Permalänk
Medlem
Skrivet av dlq84:

Googla SSH Jump Host, det är det du vill ha.

Varför? SSH, är väldigt säkert, VPN är inte på något sätt säkrare. Men se för guds skull till att att inte använda lösenord använd istället nycklar för authentiering.

Vill man bara öppna upp för ssh så kan man bara göra det och se till att det är säkert. Men vill man komma åt mer saker så är det ju bättre att bara behöva öppna upp och hålla en sak säkert, dvs vpn.

Permalänk
Medlem

Som flera i tråden är inne på, så är ett VPN en bra lösning.
Det finns flera olika sätt att sätta up en VPN server, ett tips är att testa PiVPN om du gör de för första gången.

Vill du skipa VPN delen så rekommenderar jag starkt att du ändrar ifrån port 22 till någon annan port, jag har vid tillfällen använt mig av portar i 3000 - 4000 spannet (Brukar bara skriva in en port på måfå). Samt stänga av root över SSH samt lösenords autentisering.

Vill du har mer hjälp så är de bara att hojta

Jag har löst de på ett kombo sätt då jag kör olika VLAN hemma.
En VPN server som har access till internet samt min jump host. Så ifall jag vill komma åt mina servrar när jag inte är hemma så slår jag först på VPNen på ex laptopen. Från den så SSHar jag in på en jump host för att sen SSHa vidare in på den server jag ska in på.

När jag är hemma så SSHar jag bara in på samma jump host och sen vidare in på rätt server.

Permalänk
Medlem

@lwiseby:
Om du bara vill nå ssh: Ssh jumphost funkar bra och vill du köra med vanliga lösenord så är det inga problem heller. Se till att det är långt och komplext och sätt gärna upp typ fail2ban så att bruteforce blir omöjligt i praktiken. Räkna med att folk kommer knacka på dörren tusentals gånger om dagen..

Om du vill nå annat: VPN. Supersmidigt av flera anledningar men möjligtvis lite pilligare att sätta upp om du kör t.ex. OpenVPN vilket du bör. Kräver mer av din server också om den råkar vara typ en RPi.

Permalänk
Medlem
Skrivet av lwiseby:

Jag hade en fundering kring detta med SSH då jag har ett antal klienter man vill komma åt via SSH.

Scenariot är då detta:
Jag sitter utanför mitt privata nätverk och vill göra något på en utav servrarna hemma. Jag loggar då in med putty till min publika IP-adress och port 22 som jag då gjort port-forwarding till en utav mina servrar. Detta fungerar ju bra om man bara har en server, men jag har ju flera.

Vad är då bästa sättet att lösa problemet?

Ska man sätta upp ett eget system av portar i gateway mellan en range som vanligtvis inte används av några applikationer? Som jag sedan får memorera för vilken enhet jag vill komma åt.

Kan man använda en server som svarar på port 22 default och sedan genom den ansluta till dom andra enheterna då dessa ligger på samma privata nätverk? Lite av en SSH gateway. Kanske kan skriva ett program som smidigt löser det.

Eller finns det kanske redan någon bra lösning som inte jag lyckats googla fram?

Jag hade gjort det så här.

Exempel.
5 SSH klienter i lokalt nät.

Samma SSH Auth Key för alla 5 klienter.

Server Side / Router:

PC1 > 192.168.1.11:6011
PC2 > 192.168.1.12:6071
PC3 > 192.168.1.13:6051
PC4 > 192.168.1.14:6021
PC5 > 192.168.1.15:7011
*slumpmässiga portar

Client Side / SSH Config:

ssh username@IP -p portnumber
Exempel:
ssh root@192.168.1.15 -p 7011

Så det du gör här i mitt exempel, är att du öppnar upp portar i routern för dom ssh klienter du vill ha,
sen kopplar du upp dig med rätt syntax för ssh med rätt port samt IP.
Byt ut port & de interna IP nummer jag använde i mitt Client Side / SSH Config exempel, till det riktiga IP nummer du har

Visa signatur

[ Fractal Design Define S Svart ] [ ASUS ProArt X670E-Creator WIFI ] [ Amd Ryzen 9 7950x3D ]
[ G.Skill Trident 64GB DDR5 6000MHz ] [ Noctua NH-D15 Chromax Black ]
[ Western Digital Black SN850X 1TB Gen4 ] [ Samsung 870 QVO 2TB MZ-77Q2T0BW ]
[ ASUS TUF GeForce RTX 3080 10GB Gaming OC ]
[ Corsair AX860 80 Plus Platinum ] [ Gigabyte 32" M32U IPS 4K 144 Hz HDMI 2.1 ]

Permalänk
Medlem

Jätte fina svar från er allihopa. Jag har länge tänkt köra över VPN så de får bli ett nytt försök med openVPN.

jumphost måste jag läsa vidare på. Så länge kommer jag ssh:a till min huvudserver och sedan vidare där igenom.

Ni är alla guld värda här på sweclockers!

Permalänk
Medlem
Skrivet av lwiseby:

Jätte fina svar från er allihopa. Jag har länge tänkt köra över VPN så de får bli ett nytt försök med openVPN.

jumphost måste jag läsa vidare på. Så länge kommer jag ssh:a till min huvudserver och sedan vidare där igenom.

Ni är alla guld värda här på sweclockers!

I detta fall så är då din huvudserver din jumphost

Vill man ta de till nästa steg så kan man (i linux) lägga på "-j" ex "ssh -j huvudserver spelserver" då kommer man att automatiskt ssh in på spelservern genom huvudservern. Jag gör väldigt sällan de, utan jag hoppar först in på huvudservern och sen manuellt vidare därifrån.

Lite mer info finns på gentoo forumet

Permalänk
Medlem

SSH med nycklar och sedan en jumphost.

Permalänk
Medlem

Ändra extern port och redirikta till port 22 på den server

@lwiseby:

Jag kör ett antal servrar på samma publika IP, men som använder olika lokala IP-adresser, som jag använder SSH till, lösningen är att jag ändrar vilken extern port jag använder att ansluta till den publika IPt, sedan skickar jag förfrågan vidare till port 22 på den lokala IPt, dvs den server jag vill nå.

Permalänk
Medlem
Skrivet av lwiseby:

Jag hade en fundering kring detta med SSH då jag har ett antal klienter man vill komma åt via SSH.

Scenariot är då detta:
Jag sitter utanför mitt privata nätverk och vill göra något på en utav servrarna hemma. Jag loggar då in med putty till min publika IP-adress och port 22 som jag då gjort port-forwarding till en utav mina servrar. Detta fungerar ju bra om man bara har en server, men jag har ju flera.

Vad är då bästa sättet att lösa problemet?

Ska man sätta upp ett eget system av portar i gateway mellan en range som vanligtvis inte används av några applikationer? Som jag sedan får memorera för vilken enhet jag vill komma åt.

Kan man använda en server som svarar på port 22 default och sedan genom den ansluta till dom andra enheterna då dessa ligger på samma privata nätverk? Lite av en SSH gateway. Kanske kan skriva ett program som smidigt löser det.

Eller finns det kanske redan någon bra lösning som inte jag lyckats googla fram?

Enklast är väl att från servern du har port-forwarding till bara göra ssh till de andra servrarna.

Permalänk
Medlem

Om Du enbart vill ha en publik port öppen till din SSH server men vill kunna komma åt andra värdar inne på ditt nätverk UTAN att slå ihop nätverk(t.ex. VPN) så är det helt enkelt "tunnel" funktionen som skall nyttjas i klienten(förutsatt att servern är inställd på att tillåta det).

Fungerar utan problem mellan PuTTY/PuTTY-CAC och OpenSSH.

Visa signatur

Grundregel för felsökning: Bryt och begränsa.