Port Listening in chroot nur auf festgelegten IPs erlauben

Rund um die Sicherheit des Systems und die Applikationen
xardias
Posts: 22
Joined: 2006-04-23 15:52

Port Listening in chroot nur auf festgelegten IPs erlauben

Post by xardias » 2006-09-26 20:07

Guten Tag,

ich habe einen Server mit mehreren IPs und nutze diese um unter anderem den SSH Zugang auf eine IP zu legen, welche sonst nicht verwendet wird.
Ich habe meine "Kunden" in eine vollwertige Chroot Umgebung (Also ein komplettes minimal Debian System) gesperrt und würde dort nun gerne verhindern das ein von den Kunden gestarteter Service (Teamspeak Server o.Ä.) nicht auf der SSH Zugangs IP lauschen kann sondern sich auf eine bestimmte IP beschränkt.
Kann ich das irgendwie durch die Netzwerk Konfguration innerhalb des Chroots erledigen, oder eventuell durch iptables oder sonst was?
Danke :)
Dennis

mattiass
Userprojekt
Userprojekt
Posts: 608
Joined: 2005-12-16 17:57

Re: Port Listening in chroot nur auf festgelegten IPs erlauben

Post by mattiass » 2006-09-26 20:36

xardias wrote:
ich habe einen Server mit mehreren IPs und nutze diese um unter anderem den SSH Zugang auf eine IP zu legen, welche sonst nicht verwendet wird.
Ich habe meine "Kunden" in eine vollwertige Chroot Umgebung (Also ein komplettes minimal Debian System) gesperrt und würde dort nun gerne verhindern das ein von den Kunden gestarteter Service (Teamspeak Server o.Ä.) nicht auf der SSH Zugangs IP lauschen kann sondern sich auf eine bestimmte IP beschränkt.
"Normales" Chroot oder RSBAC-Jail? Falls ersteres, solltest Du Dir zweiteres überlegen...

xardias
Posts: 22
Joined: 2006-04-23 15:52

Re: Port Listening in chroot nur auf festgelegten IPs erlauben

Post by xardias » 2006-10-03 00:51

MattiasS wrote: "Normales" Chroot oder RSBAC-Jail? Falls ersteres, solltest Du Dir zweiteres überlegen...
Ist ein "normales" chroot, jedoch mit den grsecurity patches ein wenig geflickt.
Ist das damit nicht möglich?

User avatar
daemotron
Administrator
Administrator
Posts: 2635
Joined: 2004-01-21 17:44

Re: Port Listening in chroot nur auf festgelegten IPs erlauben

Post by daemotron » 2006-10-03 08:47

Wenn Dein Kernel mit dem Grsecurity-Patch versorgt ist, sollte eine chroot-Umgebung hinreichend ausbruchsicher sein. Allerdings ist eine feingranulare Zuweisung von Ressourcen (wie z. B. einer dedizierten IP-Adresse) nur in der RSBAC-Implementierung möglich. Dir bleibt also nur der Weg über ip-tables oder ein per Cron gestartetes Script, das per netstat prüft, welche Dienste auf besagter IP lauschen und alle abschießt, die nicht sshd heißen und auf Port 22 lauschen (eine Prüfung nur auf sshd würde es einem "bösen" Kunden ermöglichen, einen beliebigen Dienst einfach in sshd umzubenennen und dann trotzdem laufen zu lassen).

EDIT: Natürlich wirkt Grsecurity nur, wenn Du die entsprechenden Optionen in der Kernel-Config auch aktiviert hast:

Code: Select all

Security Options --->
  Grsecurity --->
    Filesystem Protection --->
      [...]
      [*]   Chroot jail restrictions
        [*]   Deny mounts
        [*]   Deny double-chroots
        [*]   Deny pivot_root in chroot
        [*]   Enforce chdir("/") on all chroots
        [*]   Deny (f)chmod +s
        [*]   Deny fchdir out of chroot
        [*]   Deny mknod
        [*]   Deny shmat() out of chroot
        [*]   Deny access to abstract AF_UNIX sockets out of chroot
        [*]   Protect outside processes
        [*]   Restrict priority changes
        [*]   Deny sysctl writes
        [*]   Capability restrictions

xardias
Posts: 22
Joined: 2006-04-23 15:52

Re: Port Listening in chroot nur auf festgelegten IPs erlauben

Post by xardias » 2006-10-03 10:30

jfreund wrote:Dir bleibt also nur der Weg über ip-tables oder ein per Cron gestartetes Script, das per netstat prüft, welche Dienste auf besagter IP lauschen und alle abschießt, die nicht sshd heißen und auf Port 22 lauschen (eine Prüfung nur auf sshd würde es einem "bösen" Kunden ermöglichen, einen beliebigen Dienst einfach in sshd umzubenennen und dann trotzdem laufen zu lassen).
Gut dann werde ich mal zusehen dass ich das hinkriege. Jedoch die überprüfung auf einen laufenden sshd ist nicht nötig, dass grsecurity nur Prozesse aus dem aktuellen chroot listet. Danke für die tipps :)

User avatar
daemotron
Administrator
Administrator
Posts: 2635
Joined: 2004-01-21 17:44

Re: Port Listening in chroot nur auf festgelegten IPs erlauben

Post by daemotron » 2006-10-03 11:27

xardias wrote:Jedoch die überprüfung auf einen laufenden sshd ist nicht nötig, dass grsecurity nur Prozesse aus dem aktuellen chroot listet.
Ich würde diese Prüfung nicht innerhalb des chroot laufen lassen, da sie dort (theoretisch) manipulierbar ist.

buddaaa
Posts: 163
Joined: 2004-11-08 09:59

Re: Port Listening in chroot nur auf festgelegten IPs erlauben

Post by buddaaa » 2006-10-08 02:29

wuerd ich mit iptables machen, einfach allen traffic von und zu TCP22 zu dieser IP verwerfen.

ohne gewaehr:

Code: Select all

/usr/sbin/iptables -A INPUT -p TCP --dport 22 -d 1.2.3.4 -m state --state NEW,ESTABLISHED -j ACCEPT
/usr/sbin/iptables -A OUTPUT -p TCP --sport 22 -s 1.2.3.4 -m state --state ESTABLISHED -j ACCEPT
/usr/sbin/iptables -A INPUT -d 1.2.3.4 -j DROP
/usr/sbin/iptables -A OUTPUT -s 1.2.3.4 -j DROP