Pare-feu Linux et filtrage par process : enfin résolu !

Je voudrais adresser à Florent Daignière toutes mes excuses et aussi tous mes remerciements pour la solution de filtrage de paquets par process qu’il m’avait proposée en juillet 2015. A l’époque, sa solution ne pouvait pas marcher sur les versions stables des principales distributions Linux. Iptables était en 1.4.21 et ne prenait pas en charge les cgroups. Désormais, Iptables est passé en 1.6 et prend en charge les cgroups ! J’ai testé la fonctionnalité avec succès sur une Ubuntu Server LTS 16.04.

De retour à Linux dans très peu de temps !

Je vais donc pouvoir retourner à Linux au niveau de ma station de travail. Mon seul souci est qu’il va falloir attendre encore le 15 novembre pour disposer de cette version de Iptables sur ma distribution de prédilection, Linux Fedora. Je pourrais passer aussi à Linux Mint. Je vais d’ailleurs la tester avant de prendre ma décision finale ! Je vous tiendrai au courant.

Pare-feu Linux et filtrage par process : enfin résolu !

Enregistrer

Enregistrer

Linux  / Cgroups Fedora Formateur Fedora Formateur Linux Formateur Ubuntu Server Iptables Linux Mint Netfilter Pare-feu Sécurité informatique Ubuntu Server LTS 

Commentaires

Superbe nouvelle !

@Jean

Oh que oui ! Cela fait 6 ans, presque 7 que j’attends ce moment.

Iptables 1.6.0-r1 est disponible sous Gentoo, en instable ~amd64
C’est cochable quand on veut, depuis une version stable du système. Il n’y a qu’à recompiler par un « emerge net-firewall/iptables »

Gentoo mérite qu’on s’y penche…

Suite à nos échanges et absence de réponses sur agoravox, je vous rappelle donc ici que le même genre de filtrage est aussi possible depuis 2013 grace au network namespaces.

Vous n’avez toujours pas non plus justifié en quoi ce genre de filtrage avait une utilité sur un linux dont toutes les applications sont sûres (a l’inverse d’un windows truffé de programmes malveillants)

http://www.agoravox.fr/tribune-libre/article/cloud-l-imbecilite-des-elites-186318#forum4721560

@pemile

Ce que vous préconisez, c’est donc d’établir une carte virtuelle par application, c’est ça ? Le seul souci est que dans Iptables, on ne peut alors qu’associer la carte à l’application Tcp/Ip. C’est très différent de la solution proposée par Iptables Et les Cgroups. Je ne vois dans votre solution où la maîtrise de la sortie de paquets par process est possible. Pouvez-vous me donner un exemple concret ?

Bonsoir

Il s’agit de bloquer (+LOG pour alarme) en OUTPUT les sorties tcp/80 et 443 et de créer une carte virtuelle dans un namespace à laquelle on laisse un acces web en faisant du NAT en POSTROUTING.

Seules les applis lancées dans ce namespace peuvent donc accéder au web. L’idéal est de le coupler avec un environnement encore plus confiné genre firejail (et de le coupler avec un proxy filtrant ?).

Pour les accès http de APT le plus simple est d’installer un apt-cacher et d’utiliser iptables pour ne laisser passer les connexions que vers ce cache (et si il est local de laisser passer que les flux vers les dépots de la distrib)

Sinon, avec les NFQUEUE d’iptables il est facile d’ecrire un programme qui capture le 3ème paquet tcp (ack sans syn) pour un port destination donné et utilise /proc/net/tcp et /proc/pid/exe pour retrouver le pathname de l’executable associé et accepte ou pas de laisser passer

PS: En fait, après verif, /proc/net/tcp est renseignée même si on bloque le premier paquet tcp (–syn)

Et c’est plus propre autant coté client, timeout plus rapide, que coté serveur, sans socket à moitié ouverte !

@pemile

J’ai utilisé Fireflier. C’est lent ! Très lent et le système se freeze.

Je ne connais pas fireflier.

En utilisant une nfqueue pour ne filtrer que le premier paquet tcp il n’y a aucune raison que ça rame.

Le filtrage que vous voulez faire (n’autoriser que /usr/bin/firefox à sortir vers un port 80) peut même s’écrire avec un petit script perl de quelques lignes.

Je continue à penser que ce genre de filtrage a peut être une utilité sur un windows vérolé mais pas sur un linux donc toutes les applications sont connues et sûres.

Que par contre, les outils linux, genre seccomp, namespaces et cgroups, qui permettent simplement de lancer les clients web dans un environnement restreint, sont eux, plus que nécessaire.

Vos déclarations sur le manque de sécurité de linux (depuis le noyau 2.6.14) par rapport à windows m’ont plus que scandalisé.

Laisser un commentaire

(requis)

(requis)