Hallo, debianistas,
ich brauche mal wieder eure Hilfe.
Mein LAN darf mit ssh auf meinen Server, und zwar mit Passworteingabe.
Das soll so bleiben!
Neu: Das boese Internet soll auch ssh'en duerfen, aber nur mit key authentication.
Kann jemand mal kurz skizzieren, wie das geht (wenn das geht)?
Kurzer Einblick in meine Firewall:
ACCEPT loc all all
ACCEPT loc loc all
ACCEPT fw fw all
ACCEPT fw loc all
ACCEPT fw all all
Kleiner Ausschnitt aus meiner sshd_config:
Port 22
Protocol 2
RSAAuthentication yes
PubkeyAuthentication yes
# ja, da steht no, geht aber!
PasswordAuthentication no
Kurze Motivation:
BIsher war NET => LOC dicht. Jetzt hab ich so nen zierlichen eeepc und wuerde
gerne ab und zu mal von unterwegs mit ssh -X nach Hause telefonieren.
Gruesse
do.
Pubkey-Auth für Internet-Zone, Passwort-Auth für LAN: Wie?
- donnerstag
- Beiträge: 64
- Registriert: 30.03.2006 21:40:57
Pubkey-Auth für Internet-Zone, Passwort-Auth für LAN: Wie?
Zuletzt geändert von donnerstag am 15.05.2009 17:08:25, insgesamt 1-mal geändert.
- donnerstag
- Beiträge: 64
- Registriert: 30.03.2006 21:40:57
Re: ssh key authentication und shorewall
Hallo Debianiter,
verzeiht, meine Frage war wahrscheinlich zu flapsig.
Nochmal ordentlich formuliert:
Aus der Internet-Zone ist derzeit kein Zugang zu meinem (Anwendungs- und Daten-) Server
möglich. Dafür sorgen entsprechende shorewall-Regeln.
Aus der lokalen Zone ist der ssh-Port geöffnet. sshd lässt Login per RSA-/Pubkey-Authentication und per Passwort zu.
Nun möchte ich für einen Laptop den Zugang aus der Internet-Zone öffnen. Um Bruteforcer und Eavesdropper draußen zu halten, soll nur Zugang per Public-Key-Auth erlaubt sein. Dagegen soll lokal weiterhin Login per Passwort möglich sein.
Mir ist nicht klar, was ich dafür tun muss. Wie kann ich sshd so konfigurieren, dass er Zonen unterscheidet? Diese sind doch nur der Firewall bekannt.
BItte gebt mir ein paar Fingerzeige in die richtige Richtung, damit ich mich anschließend im Web weiter belesen kann.
Danke im Voraus, und jetzt los, ihr müden debianistas, das Wetter ist schön, ich will mit meinem neuen Nettop endlich raus an den See,
eure
do.
verzeiht, meine Frage war wahrscheinlich zu flapsig.
Nochmal ordentlich formuliert:
Aus der Internet-Zone ist derzeit kein Zugang zu meinem (Anwendungs- und Daten-) Server
möglich. Dafür sorgen entsprechende shorewall-Regeln.
Aus der lokalen Zone ist der ssh-Port geöffnet. sshd lässt Login per RSA-/Pubkey-Authentication und per Passwort zu.
Nun möchte ich für einen Laptop den Zugang aus der Internet-Zone öffnen. Um Bruteforcer und Eavesdropper draußen zu halten, soll nur Zugang per Public-Key-Auth erlaubt sein. Dagegen soll lokal weiterhin Login per Passwort möglich sein.
Mir ist nicht klar, was ich dafür tun muss. Wie kann ich sshd so konfigurieren, dass er Zonen unterscheidet? Diese sind doch nur der Firewall bekannt.
BItte gebt mir ein paar Fingerzeige in die richtige Richtung, damit ich mich anschließend im Web weiter belesen kann.
Danke im Voraus, und jetzt los, ihr müden debianistas, das Wetter ist schön, ich will mit meinem neuen Nettop endlich raus an den See,
eure
do.
- donnerstag
- Beiträge: 64
- Registriert: 30.03.2006 21:40:57
Re: Pubkey-Auth für Internet-Zone, Passwort-Auth für LAN: Wie?
Lösung: Zwei sshd-Demons auf verschiedenen Ports lauschen
lassen. Der auf :22 akzeptiert Passwort-Auth, der auf :xyz akzeptiert
(nur) Key-Auth.
- öffne in der Firewall einen Port > 1024, z.B. 61517
- kopiere /etc/ssh/sshd_conf nach /etc/ssh/sshd_conf_61517
- ändere das neue _conf entsprechend (listen on port 61517, key auth only)
- Linke sshd nach sshd61517 (damit du in der Prozessliste immer siehst,
welcher Demon was macht): ln /usr/sbin/sshd /usr/sbin/sshd61517
- kopiere das Startscript nach /etc/init.d/ssh61517. Ändere hier alle
Referenzen auf
/var/run/sshd ==> in ===> /var/run/sshd61517
und alle auf
/var/run/sshd.pid ==> in ===> /var/run/sshd61517.pid
und alle
/usr/sbin/sshd ==> in ===> /usr/sbin/sshd61517
(denn start/stop/reload soll sich ja immer auf den neuen, zweiten sshd-Prozess
beziehen)
- der zweite sshd muss das alternative Configfile einlesen. Also ersetze im
Startscript immer
/usr/sbin/sshd61517
durch
/usr/sbin/sshd61517 -f /etc/ssh/sshd_config_61517
bzw. (im Kontext von start-stop-daemon)
/usr/sbin/sshd61517 -- $SSHD_OPTS
durch
/usr/sbin/sshd61517 -- -f /etc/ssh/sshd_config_61517 $SSHD_OPTS
usw. (start-stop-daemon erwartet die Argumente fuer das gestartete
Script am Ende nach --)
- Nach dem Start sollte
ps aux | grep sshd
die beiden Daemonen zeigen. (Fehler beim Start in /var/log/auth.log)
Kommentare zu diesem Vorgehen les ich gerne :)
do.
lassen. Der auf :22 akzeptiert Passwort-Auth, der auf :xyz akzeptiert
(nur) Key-Auth.
- öffne in der Firewall einen Port > 1024, z.B. 61517
- kopiere /etc/ssh/sshd_conf nach /etc/ssh/sshd_conf_61517
- ändere das neue _conf entsprechend (listen on port 61517, key auth only)
- Linke sshd nach sshd61517 (damit du in der Prozessliste immer siehst,
welcher Demon was macht): ln /usr/sbin/sshd /usr/sbin/sshd61517
- kopiere das Startscript nach /etc/init.d/ssh61517. Ändere hier alle
Referenzen auf
/var/run/sshd ==> in ===> /var/run/sshd61517
und alle auf
/var/run/sshd.pid ==> in ===> /var/run/sshd61517.pid
und alle
/usr/sbin/sshd ==> in ===> /usr/sbin/sshd61517
(denn start/stop/reload soll sich ja immer auf den neuen, zweiten sshd-Prozess
beziehen)
- der zweite sshd muss das alternative Configfile einlesen. Also ersetze im
Startscript immer
/usr/sbin/sshd61517
durch
/usr/sbin/sshd61517 -f /etc/ssh/sshd_config_61517
bzw. (im Kontext von start-stop-daemon)
/usr/sbin/sshd61517 -- $SSHD_OPTS
durch
/usr/sbin/sshd61517 -- -f /etc/ssh/sshd_config_61517 $SSHD_OPTS
usw. (start-stop-daemon erwartet die Argumente fuer das gestartete
Script am Ende nach --)
- Nach dem Start sollte
ps aux | grep sshd
die beiden Daemonen zeigen. (Fehler beim Start in /var/log/auth.log)
Kommentare zu diesem Vorgehen les ich gerne :)
do.
Re: Pubkey-Auth für Internet-Zone, Passwort-Auth für LAN: Wie?
Ist bestimmt nicht die eleganteste Lösung, aber bei deinem Vorhaben hört sich dies für mich plausibel an, wenn die Firewall-Regeln stimmen.
Dies würde ich nochmals überprüfen. Vorallem aus dem Internet heraus.
Du könntest zusätzlich noch nur bestimmten user oder Gruppen den Zugang per ssh erlauben.
Dies würde ich nochmals überprüfen. Vorallem aus dem Internet heraus.
Du könntest zusätzlich noch nur bestimmten user oder Gruppen den Zugang per ssh erlauben.
Oh, yeah!
- donnerstag
- Beiträge: 64
- Registriert: 30.03.2006 21:40:57
Re: Pubkey-Auth für Internet-Zone, Passwort-Auth für LAN: Wie?
> nur bestimmten Benutzern Zugang per ssh erlauben
Danke fuer den Tipp. Der zweite sshd hat jetzt ein
> wenn die Firewallregeln stimmen
policy:
rules:
Sieht das OK aus?
tschues & danke,
do.
Danke fuer den Tipp. Der zweite sshd hat jetzt ein
Code: Alles auswählen
AllowUsers <meinLogin>
policy:
Code: Alles auswählen
loc all ACCEPT
loc fw ACCEPT
fw loc ACCEPT
net fw CONTINUE
Code: Alles auswählen
ACCEPT loc all all
ACCEPT loc loc all
ACCEPT fw fw all
ACCEPT fw loc all
ACCEPT fw all all
# und neu:
ACCEPT+ net fw tcp <Port fuer sshd#2>
tschues & danke,
do.