Zugriff auf Alias-IPs beschränken

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

Zugriff auf Alias-IPs beschränken

Post by daemotron »

Moin,

ich habe folgendes Problem: An mein phyisches NIC (eth0) sind neben der Haupt-IP 6 Alias-IPs gebunden. Da das Interface über iproute2 konfiguriert wird, entstehen dabei keine virtuellen Interfaces à la eth0:1 etc.

Nun möchte ich für einzelne chroot-Jails den Zugriff auf jeweils eine der Alias-Adressen beschränken. In /proc und /dev habe ich allerdings bisher nichts gefunden, womit ich das bewerkstelligen könnte. Im Moment fällt mir nur noch eine Möglichkeit ein: Per iptables anhand der User-IDs (diese sind systemweit eindeutig, auch in den Jails) alles droppen, was nicht erlaubt ist. Aber eigentlich genügt mir das nicht; ich würde einerseits gerne ohne Paketfilter auskommen und andererseits verhindern, dass sich ein Prozess an ein Interface bindet, auf dem er nichts zu suchen hat (von wegen gegenseitiger Portklau - wenn auch wahrscheinlich nur aus Versehen).

Zum Server selbst: Es läuft ein gehärtetes Gentoo Linux (amd64) mit PaX und grsecurity. Letzteres bietet dafür offenbar keinen Mechanismus (ich dachte da an eine Rolle pro Jail, die eine bestimmte IP nutzen darf) - jedenfalls konnte ich nichts entsprechendes in der (recht dürftigen) Doku finden. Bin für jede Idee dankbar, wie sich sowas realisieren lässt, ohne auf RSBAC oder eine "richtige" Virtualisierungslösung zurückzugreifen.
Top

freddy36
RSAC
Posts: 277
Joined: 2008-03-20 17:31

Re: Zugriff auf Alias-IPs beschränken

Post by freddy36 »

Mir würde so auch nur RSBAC und iptables einfallen.

Sollte aber auch nicht alzuschwer sein das selbst in den Kernel zu implementieren.
Top

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

Re: Zugriff auf Alias-IPs beschränken

Post by daemotron »

*seufz*

Na ja, ich habe mir mal angeschaut, was RSBAC tut - es ändert nur den Zugriffsbezug für '0.0.0.0'. Wie gesagt, auf ein anderes RBAC-System kann/will ich nicht umstellen (der Server muss bald produktiv gehen, und ich müsste mich schon ein paar Wochen mit RSBAC auseinandersetzen, bevor ich das produktiv einsetzen kann). Ich werde mir also mit iptables behelfen, kann damit allerdings nicht verhindern, dass jemand einen Socket aufmacht und damit die entsprechende IP/Port-Kombination blockiert.

Freddy36 wrote:Sollte aber auch nicht alzuschwer sein das selbst in den Kernel zu implementieren.

*lol* der war gut. Das im Kernel "mal eben" zu ändern ist nicht ganz so trivial - der ganze net-Zweig im Kernel ist ein ziemliches Monstrum; außerdem fällt mir auf die Schnelle auch nicht ein, wie man die Zuordnung IP - Jail sinnvoll hinterlegen könnte (im Kernel-Space auf irgendwelche Konfigurationsdateien zurückzugreifen ist mir dann doch zu schmutzig). Sauber wäre es, einen jail()-Syscall zu implementieren (um den root-Kontext + IP-Kontext festzulegen), und ein passendes Userland-Werkzeug dazu. net/socket.c müsste so abgeändert werden, dass alle relevanten Funktionen den IP-Kontext prüfen, bevor sie aktiv werden. Vielleicht, wenn ich mal wirklich zu viel Zeit habe... :wink:
Top

Who is online

Users browsing this forum: Google [Bot] and 1820 guests