Programm auf localhost binden

CryOrDies

Member
Nabend.

Interessen bedingt würde mich mal interessieren, ob man ein Programm wie Firefox nur auf localhost binden kann (Input/Output)? In den verschiedenen Configs habe ich bezüglich bind nichts gefunden.
Oder ob man das anders machen könnte wie z.B. anhand von iptables...
 
Firefox öffnet keine Listen-Ports, du musst dir also keine Gedanken um einkommende Verbindungen machen. Ein Bind von ausgehenden Verbindungen auf loopback ist zwar theoretisch möglich, praktisch aber vermutlich eher nicht - davon abgesehen dass du ihn dann selbst neu kompilieren darfst.
Ein einfaches Droppen aller Verbindungen des Firefox-Benutzers oder der Applikation ist unter allen gängigen Betriebssystemen möglich, entspricht aber nicht exakt der Frage.

Was genau hast du vor, eventuell können wir dann genauer helfen?
 
Nun, der soll sich im localhost Bereich ganz normal als Browser bewegen. So das man http//:localhost:Port anwählen kann, aber Verbindungen nach außen nach Google oder Facebook z.B. nicht.

Der soll sich wie ein normaler Browser bewegen aber nur local.

Also auf Grundlage deiner Antwort, alles außer localhost nach Außen Droppen.
 
Da musst du wohl wie gesagt die Firewall bemühen.
Eine andere (vermutlich nicht applizierbare) Lösung wäre ein Kiosk-Modus, das Ziehen des Netzwerksteckers, ...
Leider gibst du weiterhin nicht an um was es sich handelt.
 
Ich rate 'mal, dass Firefox bzw. das Programm, das du nach außen Sperren möchtest, einen eigenen User hast, daher würde ich diese Regel hier empfehlen:

Code:
iptables -A OUTPUT -o ethX -m owner --uid-owner {USERNAME} -j REJECT
 
Ich rate 'mal, dass Firefox bzw. das Programm, das du nach außen Sperren möchtest, einen eigenen User hast, daher würde ich diese Regel hier empfehlen:

Code:
iptables -A OUTPUT -o ethX -m owner --uid-owner {USERNAME} -j REJECT

Da hast du leider falsch geraten. Der Prozess läuft auf den User der das Programm startet.
Der Iceweasel Client ist ein Browser der auf Firefox basiert, mit dem habe ich nachgeschaut welchen Username hinter seinem Prozess steht.
 
Last edited by a moderator:
Dann sperrst du alle Potenziellen User, verhinderst auch auch gleichzeitig für die User jegliche ausgehende Kommunikation. Mir war langweilig. Wollte erst mit awk anfangen und dann konnte ich mich mal wieder nicht an diesen Syntax erinnern.

iptables_forbid_output_over_id_1000_and_below_64000.py
Code:
#!/usr/bin/env python
from shlex import split
from subprocess import Popen, PIPE
rows = (x.split(':') for x in open('/etc/passwd'))
users = (row[0] for row in rows if int(row[2]) >= 1000 and int(row[2]) < 64000)
ipt = (Popen(split('echo iptables -A OUTPUT -o ethX -m owner --uid-owner {} -j REJECT'.format(user)), shell=False).wait() for user in users)

for out in ipt:
    pass

PS:Gibt es hier kein Syntaxhighlighting?

Das 'echo' dient zur eigenen Sicherheit. Könnte sein, dass viel schief läuft :-p
 
Last edited by a moderator:
Achja, das komische Script, was ich oben gepostet hab, sperrt jeden User. Da ist natürlich die Lösung von d4f (eine|die) Lösung.
 
Back
Top