Pubkey-Auth für Internet-Zone, Passwort-Auth für LAN: Wie?

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
Benutzeravatar
donnerstag
Beiträge: 64
Registriert: 30.03.2006 21:40:57

Pubkey-Auth für Internet-Zone, Passwort-Auth für LAN: Wie?

Beitrag von donnerstag » 15.05.2009 00:26:57

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.
Zuletzt geändert von donnerstag am 15.05.2009 17:08:25, insgesamt 1-mal geändert.

Benutzeravatar
donnerstag
Beiträge: 64
Registriert: 30.03.2006 21:40:57

Re: ssh key authentication und shorewall

Beitrag von donnerstag » 15.05.2009 17:06:51

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.

Benutzeravatar
donnerstag
Beiträge: 64
Registriert: 30.03.2006 21:40:57

Re: Pubkey-Auth für Internet-Zone, Passwort-Auth für LAN: Wie?

Beitrag von donnerstag » 19.05.2009 09:19:55

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.

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Re: Pubkey-Auth für Internet-Zone, Passwort-Auth für LAN: Wie?

Beitrag von Duff » 19.05.2009 10:09:02

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.
Oh, yeah!

Benutzeravatar
donnerstag
Beiträge: 64
Registriert: 30.03.2006 21:40:57

Re: Pubkey-Auth für Internet-Zone, Passwort-Auth für LAN: Wie?

Beitrag von donnerstag » 19.05.2009 15:19:56

> nur bestimmten Benutzern Zugang per ssh erlauben

Danke fuer den Tipp. Der zweite sshd hat jetzt ein

Code: Alles auswählen

AllowUsers <meinLogin>
> wenn die Firewallregeln stimmen
policy:

Code: Alles auswählen

loc             all             ACCEPT
loc             fw              ACCEPT
fw              loc             ACCEPT
net             fw              CONTINUE
rules:

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>
Sieht das OK aus?

tschues & danke,
do.

Antworten