SSH auf bestimmte IPs für bestimmte User
Hallo zusammen,
ich möchte auf einem CentOS7 für bestimmte OS-Benutzer den Zugriff per SSH nur auf bestimmte IP's erlauben. Ich habe aber im Moment keine schlaue Idee wie man das umsetzen könnte:
Beispiel:
user1 -> 10.2.3.4 und 20.3.4.9 und 30.4.5.0/24, sonst nichts
user2 -> 50.6.7.8 und 10.2.3.4 , sonst nichts
Ist das überhaupt möglich? Ich habe da an die Firewall gedacht, dass die das evtl. kann, aber ich habe noch keine Möglichkeit gefunden wie ich den User da noch filtern kann.
Danke & Gruß
Navigato
Ergänzung
Bei dem SSH Zugriff geht es um ausgehende Verbindungen.
ich möchte auf einem CentOS7 für bestimmte OS-Benutzer den Zugriff per SSH nur auf bestimmte IP's erlauben. Ich habe aber im Moment keine schlaue Idee wie man das umsetzen könnte:
Beispiel:
user1 -> 10.2.3.4 und 20.3.4.9 und 30.4.5.0/24, sonst nichts
user2 -> 50.6.7.8 und 10.2.3.4 , sonst nichts
Ist das überhaupt möglich? Ich habe da an die Firewall gedacht, dass die das evtl. kann, aber ich habe noch keine Möglichkeit gefunden wie ich den User da noch filtern kann.
Danke & Gruß
Navigato
Ergänzung
Bei dem SSH Zugriff geht es um ausgehende Verbindungen.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 359469
Url: https://administrator.de/contentid/359469
Ausgedruckt am: 26.11.2024 um 04:11 Uhr
7 Kommentare
Neuester Kommentar
Das kannst du in der sshd_config mit solchen Einträgen definieren
https://linux.die.net/man/5/sshd_config
Gruß @135051
AllowUsers user1@10.2.3.4 user1@20.3.4.9 user1@30.4.5.*
Gruß @135051
Ich glaube du machst da grad einen grundlegenden Fehler: Bei jedem Serverdienst ist erst mal der Server für die Authentifizierung zuständig. D.h. wenn du am Client das per Firewall oder sonstwie machst ist das bereits falsch. auf 10.2.3.4 / 30.4.5.0/24 ... darf halt nur der User1 einen Account haben. Lasse User2 sich doch verbinden - ohne gültige Zugangsdaten wird das nix. Wenn der gültige Zugangsdaten auf dem Server hat dann ist es wohl auch legitim das er sich darauf verbindet....
Alternativ kannst du vom Server aus natürlich auch filtern von wo sich jemand verbinden darf.... Alternativ auch mittels "allowusers" bzw. "allowgroups" das ganze einschränken falls du eine zentrale Benutzerverwaltung hast aber nicht willst das jeder auf jeden Server darf. Da kannst du ja dann Gruppen anlegen "allowed_on_server1", "allowed_on_server2",....
Hintergrund des ganzen ist: Was machst du wenn sich mal ne IP vom Server ändert - auf allen Clients die neuen IPs eingeben? Oder wenn der Anwender ein privates Gerät mitbringt (ob erlaubt oder nicht), sich eine VM startet,... Du hast dann eine endlose Arbeitsaufgabe geschaffen für etwas was am Server mit der normalen Benutzerverwaltung schnell erledigt ist.
Alternativ kannst du vom Server aus natürlich auch filtern von wo sich jemand verbinden darf.... Alternativ auch mittels "allowusers" bzw. "allowgroups" das ganze einschränken falls du eine zentrale Benutzerverwaltung hast aber nicht willst das jeder auf jeden Server darf. Da kannst du ja dann Gruppen anlegen "allowed_on_server1", "allowed_on_server2",....
Hintergrund des ganzen ist: Was machst du wenn sich mal ne IP vom Server ändert - auf allen Clients die neuen IPs eingeben? Oder wenn der Anwender ein privates Gerät mitbringt (ob erlaubt oder nicht), sich eine VM startet,... Du hast dann eine endlose Arbeitsaufgabe geschaffen für etwas was am Server mit der normalen Benutzerverwaltung schnell erledigt ist.
iptables -A OUTPUT -d X.X.X.X -p tcp --dport 22 -m owner --uid-owner {USERNAME} -j ACCEPT
iptables -A OUTPUT -o ethX -p tcp --dport 22 -j REJECT
Zitat von @Navigato:
Danke.
Ich habe bisher auf dem System mit firewalld gearbeitet? Wie verhält es sich mit firewalld und iptables auf CentOS, kommen sich die nicht in die Quere??
Entweder oder, das Regelwerk sollte damit eigentlich klar sein, einfach auf deine Firewall umsetzen fertig.Danke.
Ich habe bisher auf dem System mit firewalld gearbeitet? Wie verhält es sich mit firewalld und iptables auf CentOS, kommen sich die nicht in die Quere??