Page 1 of 1

Port Listening in chroot nur auf festgelegten IPs erlauben

Posted: 2006-09-26 20:07
by xardias
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

Re: Port Listening in chroot nur auf festgelegten IPs erlauben

Posted: 2006-09-26 20:36
by mattiass
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...

Re: Port Listening in chroot nur auf festgelegten IPs erlauben

Posted: 2006-10-03 00:51
by xardias
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?

Re: Port Listening in chroot nur auf festgelegten IPs erlauben

Posted: 2006-10-03 08:47
by daemotron
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

Re: Port Listening in chroot nur auf festgelegten IPs erlauben

Posted: 2006-10-03 10:30
by xardias
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 :)

Re: Port Listening in chroot nur auf festgelegten IPs erlauben

Posted: 2006-10-03 11:27
by daemotron
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.

Re: Port Listening in chroot nur auf festgelegten IPs erlauben

Posted: 2006-10-08 02:29
by buddaaa
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