Linux Schulungen: http://www.opensource-training.de  
 
Foren > Firewalling mit Linux > Prozesse über --pid-owner zulassen
Navigation
Schulungen
Foren
  Allgemeines Forum
  Intrusion Detection
  VPN mit Linux
  Firewalling mit Linux
  SELinux/AppArmor
SELinux/AppArmor Buch
IDS-Buch
VPN-Buch
Firewall-Buch
Nachrichten
Vorträge/Tutorials
Artikel
Linux-Magazin Artikel
Anmelden / Daten ändern
Messen
Impressum
Serverspiegel
Zertifizierungen
GPG Public Key

Flavours
English
German

Search

Visitors
Besucher 727680
Ansichten 3228
Online 0


Prozesse über --pid-owner zulassen

Springe zu
Thema Verfasser Letzte Antwort
Prozesse über --pid-owner zulassen yilung ( ---.253.122.50) 12 Nov 2007 12:11
Hallo :-)
ich habe einen Laptop mit Debian sarge 2.6.8 u. WLAN PCMCIA (ra0), welche zur FritzBox (als Router mit DHCP) per DHCP (Bootvorgang)erfolgreich die Verbindung aufbaut.

Für Paranoide die iptables local verwenden und nur wenigen Prozessen (z.B. keinen Trojanern) erlauben wollen auf das Internet zuzugreifen ist hier eine Lösung für das Modul pid-owner. Bei Debian musste das owner-modul per FW-Bootscript erstmal geladen werden.
Mit dem Schreiben von Scripten habe ich gerade erst angefangen, daher müsst Ihr mir das zuviel...verzeihen.

Da bei jedem Neustart eines Prozesses (z.B. Firefox) eine neue PID vom Kernel vergeben wird kann im Bootscript der FW kein pid-owner benutzt werden. Ob man feste PIDs für bestimmt Prozesse vergeben kann weis ich nicht.

Ich habe zwei Scripte geschrieben. Einen der die PID sucht und einen zweiten der bereits bestehende pid-owner Regeln durch neue ersetzt. Die PID-Suche-Datei wird durch eine Befehlszeile im Startscript des Prozesses (z.B. Firefox) gestartet. Das Script (ErsetzteFW-Regeln-Script), welches die iptables-Regeln ersetzt wird durch das PID-Suche-Script gestartet.
Das ErsetztFW-Regeln-Script beinhaltet iptables-Regeln, die nur durch root ausführbar sind. Ein neuer Eintrag in /etc/sudoers
(username localhost=NOPASSWD:/Path/ErsetztFW-Regeln-Script)
löst das Problem. NOPASSWD: muss glaube ich angegeben werden damit es funktioniert.

Die Befehlszeile im Firefoxscript lautet:
/Path_zum_Script_PID-Suche/PID-Suche &
Das Sonderzeichen & startet PID-Suche parallel, da es sonst evtl. ewig auf das Scriptende von firefox wartet.

#Hier das PID-Suche-Script
#!/bin/sh
#Suche nach der PID
#firefox
sleep 7 # Wartezeit bis die PID vergeben wurde
#mit ps -e prüfen, ob der Name wirklich firefox-bin lautet, #firefox ist es jedenfalls nicht...
pid_firefox=`ps -e |grep firefox-bin |head -n 200 |cut -b 1-5`
#Ende PID-Suche
export pid_firefox #globale Variable evtl. unnötig
#
#Speicher PID in einer Datei zur Kontrolle und späteren
#Verwendung für das 2. Script als Variable
echo $pid_firefox > /Path/PID-Kontrolldatei
#
#Script newfirewallrules aufrufen als root
sudo -u root /Path/newfirewallrules &
# Zeichen & für parallelen Scriptaufruf ist nicht
#unbedingt notwendig.
#Der Scriptaufruf /Path/newfirewallrules muss als root #erfolgen, da der iptables-Befehl sonst nicht funzt.
# "sudo -u root" muss vor dem Scriptaufruf erfolgen.
#Ende Script

Hier das ErsetzeFW-Regeln-Script.
#!/bin/sh
#Variable holen
pid_firefox=`cat /Path/PID-Kontrolldatei`
#
export pid_firefox #setzen globaler Variable evtl.unnütz
#
#Setze Variable für iptables
IPTABLES="/sbin/iptables"
#Es muss kein sudo davor, da die Zeile in /etc/sudoers sich
#auf den Aufruf dieses Scriptes als root bezieht und das #reicht aus (es bezieht sich nicht direkt auf die Ausführung
#des Befehls iptables.
#
#Ersetzte iptables-Regeln
#Wichtig ist -R OUTPUT "Nr.der Regel" evtl. müsst Ihr mal
#die Chains mit iptables -L durchzählen...
#Im eigenlichen FW-Script sind die Regeln ähnlich und ich
#habe irgendeine hohe PID gesetzt (funktioniert eh nicht),
#da die pid-owner-Regel ohne PID Fehlermeldungen rauswirft
#und die Regeln dann wohl nicht setzt u. dann fehlen diese
#wenn sie durch die neuen ersetzt werden sollen (es würden
#die anderen Regeln ungewollt gelöscht werden
#PROBIERT ALSO ERSTMAL EIN BISSCHEN ALLES DURCH (logisch)

$IPTABLES -R OUTPUT 8 -p tcp --dport 80 -m owner --pid-owner $pid_firefox -m state --state NEW -j ACCEPT #Regel 8 -OUTPUT-
$IPTABLES -R OUTPUT 9 -p udp --dport 80 -m owner --pid-owner $pid_firefox -m state --state NEW -j ACCEPT #Regel 9 -OUTPUT-
$IPTABLES -R OUTPUT 10 -p tcp --dport 443 -m owner --pid-owner $pid_firefox -m state --state NEW -j ACCEPT #Regel 10 -OUTPUT-
$IPTABLES -R OUTPUT 11 -p udp --dport 443 -m owner --pid-owner $pid_firefox -m state --state NEW -j ACCEPT #Regel 11 -OUTPUT-
$IPTABLES -R OUTPUT 17 -m owner --pid-owner $pid_firefox -m state --state ESTABLISHED,RELATED -j ACCEPT #Regel 17 -OUTPUT-
#Ende Script

Im Firefox-Script habe ich den Scriptaufruf vor ##Start addon Script eingefügt.
Vergesst nicht in der Datei /etc/sudoers das ErsetzeFW-Regel-Script freizugeben!
Viel Spass
Michael
PIV 1.7 /Debian sarge 2.6.8-2-386
WLAN PCMCIA Ralink interface ra0
FritzBox als DSL Router mit DHCP

RE: Prozesse über --pid-owner zulassenRalf ( ---.dip.t-dialin.net)12 Nov 2007 12:11
Nettes Skript. Danke. Leider ist die Option --pid-owner in neueren Kerneln nicht mehr vorhanden.

Gruß,

Ralf

[ Zurück ] Um ein neues Thema hinzu zu fügen müssen sie eingeloggt sein.


Umfrage

Welche Distribution verwenden Sie?

 A) Fedora Core
 B) SuSE
 C) Debian
 D) Mandriva
 E) Red Hat Enterprise Linux
 F) SuSE Enterprise Linux
 G) Slackware
 H) Ubuntu
 I) Gentoo
 J) Andere


Latest News
17 Oct 2008: Neue Schulung: Netzwerküberwachung mit Nagio...
17 Oct 2008: Neue Schulung: Virtualisierung mit KVM
24 Sep 2008: Business-Online Messe in Münster
24 Sep 2008: Eröffnungskonferenz am 25. September 2008
28 Aug 2008: Zertifizierung nach LPIC-3
Weitere News...

Login
eMail


Passwort



© 2002-2005 Ralf Spenneberg, OpenSource Security, Germany