Ich möchte nur Maschinen mit zulässigen IP-Adressen erlauben, sich per SSH bei meinem System anzumelden.
Beispielsweise userA
kann zum Anmelden über SSH nur die IP xx.xx.xx.xx
oder verwendet werden yy.yy.yy.yy
, keine andere IP kann sich als anmelden userA
. Und zum Anmelden über SSH userB
kann nur die IP verwendet werden zz.zz.zz.zz
, keine andere IP als zz.zz.zz.zz
kann sich als anmelden userB
.
Wie muss ich mein Linux einrichten, um dies zu erreichen?
Antwort1
Fügen Sie /etc/ssh/sshd_config
Folgendes hinzu:
AllowUsers [email protected] [email protected] userA
AllowUsers [email protected] userB
Starten Sie dann den SSH-Daemon neu.
Sie können Platzhalter verwenden, wie inMusterAbschnitt desssh_config-Handbuch.
Antwort2
Sie können dies über iptables tun.
Alle Verbindungen von Adresse 1.2.3.4 zu SSH (Port 22):
iptables -A INPUT -p tcp -m state --state NEW --source 1.2.3.4 --dport 22 -j ACCEPT
Alle anderen SSH-Verbindungen verweigern:
iptables -A INPUT -p tcp --dport 22 -j DROP
Antwort3
Ein Ansatz (wenn Sie PAM zur Authentifizierung verwenden) besteht darin, es pam_rhosts
als required
Modul in anzugeben /etc/pam.d/ssh
. Dadurch kann jeder Benutzer in seiner eigenen Datei angeben, .rhosts
von wo aus er eine Verbindung herstellen darf.
Beachten Sie, dass die Authentifizierungsmodule in der pam.d
Datei bei Pubkey-Logins nicht herangezogen werden (z. B. muss ich auth required pam_deny.so
Passwort-Logins auf meinen Rechnern verhindern). Andere Module ( account
usw. session
) werden weiterhin verwendet.