nftable - Ausgehende Regel auf Applikation beschränken
nftable - Ausgehende Regel auf Applikation beschränken
Hallo zusammen,
ich würde gerne mit nftable eine ausgehende Regel anlegen welche lediglich für eine Applikation geöffnet wird.
Ist das mit nftable möglich? Kann man Regeln auf eine App bzw. Prozesse beschränken?
ich würde gerne mit nftable eine ausgehende Regel anlegen welche lediglich für eine Applikation geöffnet wird.
Ist das mit nftable möglich? Kann man Regeln auf eine App bzw. Prozesse beschränken?
Re: nftable - Ausgehende Regel auf Applikation beschränken
Nein!
Das geht meines Wissens nach nur über einen Trick, einen Umweg. Für Applikationen gibts keinen Match, aber imho für PID-Owner. Das heisst, Du müsstest Dir einen virtuellen User basteln und dieses Prozesse unter dessen UID laufen lassen. Dann kann man wohl nach Owner-ID matchen... das ist aber jetzt nur ein vager Erinnerungshinweis... ist zulange her, dass ich mal selber die Idee hatte .... und bin dabei auch nur auf diesen Würgerund gekommen. Such mal nach "nftables skuid".
Das geht meines Wissens nach nur über einen Trick, einen Umweg. Für Applikationen gibts keinen Match, aber imho für PID-Owner. Das heisst, Du müsstest Dir einen virtuellen User basteln und dieses Prozesse unter dessen UID laufen lassen. Dann kann man wohl nach Owner-ID matchen... das ist aber jetzt nur ein vager Erinnerungshinweis... ist zulange her, dass ich mal selber die Idee hatte .... und bin dabei auch nur auf diesen Würgerund gekommen. Such mal nach "nftables skuid".
Code: Alles auswählen
iptables-translate -A OUTPUT --match owner --uid-owner 1000 -p tcp --dport 80 -m conntrack --ctstate NEW,ESTABLISHED --sport 1024:65535 -j ACCEPT
nft add rule ip filter OUTPUT skuid 1000 tcp sport 1024-65535 tcp dport 80 ct state new,established counter accept
Re: nftable - Ausgehende Regel auf Applikation beschränken
Zumindest funktioniert das Matching mit User-ID mit iptables. Auf meinem Router darf z.B. squid über das UID-Matching Pakete nach aussen schicken:TomL hat geschrieben:17.07.2019 15:47:11Das geht meines Wissens nach nur über einen Trick, einen Umweg. Für Applikationen gibts keinen Match, aber imho für PID-Owner. ...
Code: Alles auswählen
iptables -A OUTPUT -o wan -m state --state NEW -m owner --uid-owner proxy -j ACCEPT
Re: nftable - Ausgehende Regel auf Applikation beschränken
Nee, das wurde nicht entfernt... das geht nach wie vor. Nur auf ner lokalen Maschine geht natürlich mit nem Drop oder Reject bei diesem User dann für die definierten Matchbedingungen gar nix mehr. ... also nicht nur eine App, sondern der vollständige Traffic des Users wäre hierbei und für diese Regeln gedropt, also auch auf andere Anwendungen bezogen. Er müsste dann um das zu umgehen, weil er ja auch nur eine Anwendung explizit genannt hat, diese Anwendung unter einer virtuellen UID starten und nur diese UID filtern. Nur hindert das eben nichts daran, dass die Anwendung auch unter einer normalen UID gestartet werden könnte, womit der Filter wieder umgangen wäre.
Re: nftable - Ausgehende Regel auf Applikation beschränken
Mit liblnetfilter_queue könnte man sich einen eigenen Paketfilter bauen, der Pakete auf das sendende Programm untersucht. über das /proc-Dateisystem kann man den Namen des Prozesses herausbekommen und dementsprechend reagieren. Das erfordert halt nur ein wenig Programieraufwand. 

Re: nftable - Ausgehende Regel auf Applikation beschränken
Hmmm...
Kann man evtl einen Proxy oder ähnliches bereitstellen welcher lediglich gewünschte Applikationen zulässt?
Kann man evtl einen Proxy oder ähnliches bereitstellen welcher lediglich gewünschte Applikationen zulässt?
Re: nftable - Ausgehende Regel auf Applikation beschränken
Es gibt nichts fertiges.joe2017 hat geschrieben:17.07.2019 16:20:38Kann man evtl einen Proxy oder ähnliches bereitstellen welcher lediglich gewünschte Applikationen zulässt?
Du kannst dir was eigenes schreiben, siehe mein Kommentar oben.
Andererseits sind solche Appllication-Firewalls ziemlicher Unsinn. Spätestens, wenn die Firewall auf einem eigenen Rechner läuft, kennt sie den Namen der Anwendung nicht mehr, weil dieser Name nur dem Sendenden Rechner bekannt wäre. Appllication-Firewalls auf dem lokalen Host sind zu einfach auszuhebeln und daher auch eher nutzlos. Jedem, der sich nur halbwegs mit Netzwerksicherheit beschäftigt hat, ist zu der gleichen Erkenntnis gelangt und daher gibt es sowas in der Linuxwelt auch nicht.
Re: nftable - Ausgehende Regel auf Applikation beschränken
Ja da hast du schon Recht.
Ich frage mich nur warum man die Möglichkeit nicht eingebaut hat. Es ist sicherlich besser einen Port nur für eine Anwendung zu öffnen wie für das ganze System.
Dann muss ich mal schauen wie ich das lösen kann.
Ich frage mich nur warum man die Möglichkeit nicht eingebaut hat. Es ist sicherlich besser einen Port nur für eine Anwendung zu öffnen wie für das ganze System.
Dann muss ich mal schauen wie ich das lösen kann.
Re: nftable - Ausgehende Regel auf Applikation beschränken
Und ich geh noch nen Schritt weiter und sag "vergiss den Quatsch, das ist nix anderes als ein wirkungsloses Placebo"

Code: Alles auswählen
# cp /usr/bin/mc /home/toml/mico

Zuletzt geändert von TomL am 17.07.2019 16:47:07, insgesamt 1-mal geändert.
Re: nftable - Ausgehende Regel auf Applikation beschränken
Da steht aber auch nix von Filter auf Applikation drin....

Re: nftable - Ausgehende Regel auf Applikation beschränken
Doch, man kann damit SCP und FTP Verbindungen aufbauen.TomL hat geschrieben:17.07.2019 16:45:35Ich nutze gerne und viel den Midnight Commander... der hat natürlich jetzt nix mit Netzwerk-Traffic zu tun, aber egal....

Ansonsten, schönens Beispiel, wie man ein Verbot von mc aushebelt indem man ihn auf einen anderen Programmnamen kopiert.
Re: nftable - Ausgehende Regel auf Applikation beschränken
*uuups*... erwischt....


ps
Der MC hat bei mir schon vor längerem den Filezilla für Updates auf meine HP abgelöst.... im Terminal ist der MC absolut einer meiner Favoriten... das Teilchen ist schon richtig klasse.
Re: nftable - Ausgehende Regel auf Applikation beschränken
Das ist die falsche Frage. Man kann es nicht, weil es keinen Sinn macht:joe2017 hat geschrieben:17.07.2019 15:35:04Ist das mit nftable möglich? Kann man Regeln auf eine App bzw. Prozesse beschränken?
Hier ein Beispiel: Die aller meisten älteren Programme nutzen curl (und nicht libcurl) um Daten aus dem Internet zu ziehen. KDE-Programm gehen oft den Umweg über einen Hintergrunddienst (kio) Selbst Chrome konnte eine Zeit lang curl nutzen statt selbst zu laden. Hättest du Chrome den Internetzugriff verboten wäre alles geblieben wie es ist.
Beschränkst du also die Internetzugriffe eines Programms oder gar nur eines Prozesses, erreichst du meist gar nichts. Der Prozess der den Internetzugriff macht ist ein anderer als du intuitiv denkst.
Insbesondere ist es unter Linux üblich, dass ein Prozess das zugehörige Programm wechselt. (Siehe man exec.)
Was du suchst sind Netzwerk-Namespaces. Damit kannst du ein ganzes Bundel von Prozessen zusammenfassen. Der kann dann eigene Routing und firewallregeln haben.
Eine Lösung die etwas weniger verständnis fordert ist den passenden Prozess unter einem anderen User auszuführen.
Für beides Gilt: Führt ein Programm ein anderes aus bleibt das erhalten.
rot: Moderator wanne spricht, default: User wanne spricht.