Zugriff per ssh auf server übers Internet
Zugriff per ssh auf server übers Internet
Hallo,
ich möchte gerne per Fernzugriff (ssh) auf einen Server zugreifen. Der Server hat 2 Netzwerkkarten, denen ich jeweils eine eigene IP-Adresse geben möchte (z.B. 192.168.1.110 und 192.168.1.120).
Nun möchte ich um aus dem Internet heraus zugreifen zu können, einen Port auf der Fritzbox freigeben und diesen an eine IP-Adresse des Servers (192.168.1.110) weiterleiten.
Skizze:
Internet -> fritzbox->switch->Server eth0 (192.168.1.110) <-- best. Port von Außen für ssh erreichbar
eth1 (192.168.1.120) <-- von Außen nicht erreichbar
Nun zu meinen Fragen?
1. Welchen Port verwende ich am besten?
(hatte an einen von Außen sichtbaren privaten Port gedacht und den dann von der Fritzbox auf den Server auf 22 umleiten zu lassen)
2. Wie kann ich die Sicherheit hoch halten bei einem solchen ssh-Tunnel bzw. öffnen eines Ports zum Internet hin?
3. Reicht ein "einfaches" ssh mit Zertifikaten (id_rsa.pub auf dem Client und authorized_keys auf dem Server) aus?
Danke.
ich möchte gerne per Fernzugriff (ssh) auf einen Server zugreifen. Der Server hat 2 Netzwerkkarten, denen ich jeweils eine eigene IP-Adresse geben möchte (z.B. 192.168.1.110 und 192.168.1.120).
Nun möchte ich um aus dem Internet heraus zugreifen zu können, einen Port auf der Fritzbox freigeben und diesen an eine IP-Adresse des Servers (192.168.1.110) weiterleiten.
Skizze:
Internet -> fritzbox->switch->Server eth0 (192.168.1.110) <-- best. Port von Außen für ssh erreichbar
eth1 (192.168.1.120) <-- von Außen nicht erreichbar
Nun zu meinen Fragen?
1. Welchen Port verwende ich am besten?
(hatte an einen von Außen sichtbaren privaten Port gedacht und den dann von der Fritzbox auf den Server auf 22 umleiten zu lassen)
2. Wie kann ich die Sicherheit hoch halten bei einem solchen ssh-Tunnel bzw. öffnen eines Ports zum Internet hin?
3. Reicht ein "einfaches" ssh mit Zertifikaten (id_rsa.pub auf dem Client und authorized_keys auf dem Server) aus?
Danke.
Oh, yeah!
such dir einen port aus zwischen 1 ... 65.000 beim standard-port 22 wirst du sicher ne menger besucher bekommen. die kids scannen wie die wilden, dann macht sich dann sowas wie pam_abl oder pam_shield ganz gut. für den login kannst du ja zusätzlich key-files mit password-phrase verwenden, in der sshd_config muss dann glaub ich sowas wie
stehen, oder so ähnlich ...
Code: Alles auswählen
ChallengeResponseAuthentication no
PasswordAuthentication no
gruss pischti
debian stable
debian stable
Sowas hatte ich mir schon gedacht und wollte deshalb einen private Port verwenden. Die beiden Sachen pam_abl oder pam_shield kenne ich nicht, aber werde ich wohl an der fritzbox eh nicht verwenden können. Oder meinst du auf dem Server?Pischti hat geschrieben:such dir einen port aus zwischen 1 ... 65.000 beim standard-port 22 wirst du sicher ne menger besucher bekommen. die kids scannen wie die wilden, dann macht sich dann sowas wie pam_abl oder pam_shield ganz gut. .
[quote="Pischti"
für den login kannst du ja zusätzlich key-files mit password-phrase verwenden, in der sshd_config muss dann glaub ich sowas wie
Code: Alles auswählen
ChallengeResponseAuthentication no
PasswordAuthentication no
[/quote]
Hört sich gut. Muss ich mir mal anschauen.
Benötige ich zusätzlich noch iptables-Regeln für dieses eine Interface eth0?
Oh, yeah!
Du kannst auch zwei sshd auf verschiedenen Ports mit verschiedenen Einstellungen laufen lassen: einen für intern auf Port 22 und einen für extern auf einem anderen Port der auch z.B. nur für einen bestimmten User offen ist.
(Dass du root Access verweigern solltest, ist ja klar.)
(Dass du root Access verweigern solltest, ist ja klar.)
Use ed once in a while!
Das mit dem Verweigern für den root-Zugriff kann ich aber doch nur auf dem Server einstellen. Aber wie müsste ich mir dann noch anschauen.
Wie könnte ich den Zugriff von außen noch sicherer machen?
Hatte mal an 2 private Zertifikate oder so gedacht, wo ich dann wirklich per Medium auf dem Client das gleiche Zertifikat/Schlüssel benötige wie auch auf dem Server hinterlegt ist.
Ich würde gerne zudem vermeiden, dass man ununterbrochen versuchen kann, sich auf dem Server einzuwählen. 2 Fehlversuche und die IP ist geblockt oder so. Wenn's möglich ist.
Wie könnte ich den Zugriff von außen noch sicherer machen?
Hatte mal an 2 private Zertifikate oder so gedacht, wo ich dann wirklich per Medium auf dem Client das gleiche Zertifikat/Schlüssel benötige wie auch auf dem Server hinterlegt ist.
Ich würde gerne zudem vermeiden, dass man ununterbrochen versuchen kann, sich auf dem Server einzuwählen. 2 Fehlversuche und die IP ist geblockt oder so. Wenn's möglich ist.
Oh, yeah!
es gibt auch noch sowas hier als ansatz:
http://en.wikipedia.org/wiki/Port_knocking
http://www.portknocking.org/
http://en.wikipedia.org/wiki/Port_knocking
http://www.portknocking.org/
portknocking ist schon nicht schlecht.
man kann ganz einfach an eine bestimmte reihenfolge von ports anklopfen und dann wird der entsprechende port geöffnet von einem dämon der nach den knocks lauscht.
Nur ich glaube nicht, dass es an der fritz box funktioniert, da port knocking im prinzip nur an die erste firewall anklopft.
ssh würde in deinem fall denke ich ausreichen.
dann gibt es noch fail2ban
Vpn wäre, denke ich, erst sinnvoll wenn du wirklich dein Netzwerk nutzen möchtest, als ob du zu Hause wärst.
Aber wenn du nur eine Terminal-Session brauchst, ist das völlig ausreichend und auch recht sicher.
man kann ganz einfach an eine bestimmte reihenfolge von ports anklopfen und dann wird der entsprechende port geöffnet von einem dämon der nach den knocks lauscht.
Nur ich glaube nicht, dass es an der fritz box funktioniert, da port knocking im prinzip nur an die erste firewall anklopft.
ssh würde in deinem fall denke ich ausreichen.
dann gibt es noch fail2ban
Code: Alles auswählen
aptitude show fail2ban
Aber wenn du nur eine Terminal-Session brauchst, ist das völlig ausreichend und auch recht sicher.
Das mit der Fritzbox hatte noch gar nicht bedacht. Daran wird es dann wohl auch scheitern mit portknocking.
Das tool fail2ban ist also gut dafür, dass bei einer bestimmten Anzahl von fehlerhaften logins die IP gesperrt wird.
Per vpn auf das Netzwerk zugreifen möchte ich dann später noch für die Anwender einrichten, damit diese dann über den debian-server (vpn-server) auf die Windows-Rechner zugreifen können.
Aber den ssh-Zugang benötige eigentlich nur ich, damit ich von zu Hause auf den Server zugreifen kann. Will diesen Verbindungsaufbau nur so sicher wie möglich einrichten. Deshalb auch meine Sorgen
Das tool fail2ban ist also gut dafür, dass bei einer bestimmten Anzahl von fehlerhaften logins die IP gesperrt wird.
Per vpn auf das Netzwerk zugreifen möchte ich dann später noch für die Anwender einrichten, damit diese dann über den debian-server (vpn-server) auf die Windows-Rechner zugreifen können.
Aber den ssh-Zugang benötige eigentlich nur ich, damit ich von zu Hause auf den Server zugreifen kann. Will diesen Verbindungsaufbau nur so sicher wie möglich einrichten. Deshalb auch meine Sorgen
Oh, yeah!
Ich könnte mir ja auch noch einen extra user für den ssh-Zugriff auf dem Server einrichten.
Das Passwort kann ich natürlich dann sehr sicher wählen, da ich den Key aus der id_dsa.pub von meinen privaten Rechner in der authorized_keys auf dem Server eintragen kann und mich so ohne Passwortabfrage einloggen kann.
Nur ist das dann wieder sicher genug?
Könnte beim Erzeugen der Schlüssel noch eine passphrase verwenden.
Das Passwort kann ich natürlich dann sehr sicher wählen, da ich den Key aus der id_dsa.pub von meinen privaten Rechner in der authorized_keys auf dem Server eintragen kann und mich so ohne Passwortabfrage einloggen kann.
Nur ist das dann wieder sicher genug?
Könnte beim Erzeugen der Schlüssel noch eine passphrase verwenden.
Oh, yeah!