Mettre en place un firewall sur une machine de bureau sous Linux
L'installation d'un firewall sur une machine est primordiale, quelque soit la façon d'utiliser sa machine (machine de travail, machine de jeu, serveur, etc.).
Seulement, ce n'est pas évident de trouver l'outil idéal et accessible pour mettre en place un firewall. Personnellement, j'utilise iptables partout où je peux. Sur mes serveurs, j'ai un script qui balance sur série de règles pour bloquer ou ouvrir l'accès à des services, faire des ban ip, etc. J'ai également des outils comme fail2ban pour virer les bourrins qui tentent des accès en brute force sur mes services. Ces règles iptables sont longues à mettre en place car la syntaxe n'est pas simple du tout. La documentation est ample mais complexe.
Sur les machines de bureau, il existe un tas d'outils plus ou moins évolués et complets, plus ou moins accessibles. Dans tout ces outils ressort Firestarter.
Firestarter est un outil graphique qui permet de constuire un ensemble de règles en fonction des interfaces réseaux disponibles et activées sur son système. Il se base sur iptables pour finaliser les configurations.
Il offre aussi des outils qui permettent de connaître facilement les connexions sortantes de la machine.
La GUI est bien foutue et il n'est pas nécessaire de l'expliquer ici. Je vous recommande donc ette outil si vous souhaitez rapidement mettre en place une politique de sécurité sur votre système.
Afficher les règles iptables générées
root@nikita:~ # iptables -S
-P INPUT DROP
-P FORWARD DROP
-P OUTPUT DROP
-N INBOUND
-N LOG_FILTER
-N LSI
-N LSO
-N OUTBOUND
-A INPUT -s 192.168.222.253/32 -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT
-A INPUT -s 192.168.222.253/32 -p udp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p icmp -m limit --limit 10/sec -j ACCEPT
-A INPUT -d 255.255.255.255/32 -i eth0 -j DROP
-A INPUT -d 192.168.127.255/32 -j DROP
-A INPUT -s 224.0.0.0/8 -j DROP
-A INPUT -d 224.0.0.0/8 -j DROP
-A INPUT -s 255.255.255.255/32 -j DROP
-A INPUT -d 0.0.0.0/32 -j DROP
-A INPUT -m state --state INVALID -j DROP
-A INPUT -f -m limit --limit 10/min -j LSI
-A INPUT -i eth0 -j INBOUND
-A INPUT -j LOG_FILTER
-A INPUT -j LOG --log-prefix "Unknown Input" --log-level 6
-A FORWARD -p icmp -m limit --limit 10/sec -j ACCEPT
-A FORWARD -j LOG_FILTER
-A FORWARD -j LOG --log-prefix "Unknown Forward" --log-level 6
-A OUTPUT -s 192.168.127.125/32 -d 192.168.222.253/32 -p tcp -m tcp --dport 53 -j ACCEPT
-A OUTPUT -s 192.168.127.125/32 -d 192.168.222.253/32 -p udp -m udp --dport 53 -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -s 224.0.0.0/8 -j DROP
-A OUTPUT -d 224.0.0.0/8 -j DROP
-A OUTPUT -s 255.255.255.255/32 -j DROP
-A OUTPUT -d 0.0.0.0/32 -j DROP
-A OUTPUT -m state --state INVALID -j DROP
-A OUTPUT -o eth0 -j OUTBOUND
-A OUTPUT -j LOG_FILTER
-A OUTPUT -j LOG --log-prefix "Unknown Output" --log-level 6
-A INBOUND -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INBOUND -p udp -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INBOUND -p tcp -m tcp --dport 53 -j ACCEPT
-A INBOUND -p udp -m udp --dport 53 -j ACCEPT
-A INBOUND -p tcp -m tcp --dport 67:68 -j ACCEPT
-A INBOUND -p udp -m udp --dport 67:68 -j ACCEPT
-A INBOUND -p tcp -m tcp --dport 20:21 -j ACCEPT
-A INBOUND -p udp -m udp --dport 20:21 -j ACCEPT
-A INBOUND -p tcp -m tcp --dport 80 -j ACCEPT
-A INBOUND -p udp -m udp --dport 80 -j ACCEPT
-A INBOUND -p tcp -m tcp --dport 443 -j ACCEPT
-A INBOUND -p udp -m udp --dport 443 -j ACCEPT
-A INBOUND -p tcp -m tcp --dport 111 -j ACCEPT
-A INBOUND -p udp -m udp --dport 111 -j ACCEPT
-A INBOUND -p tcp -m tcp --dport 2049 -j ACCEPT
-A INBOUND -p udp -m udp --dport 2049 -j ACCEPT
-A INBOUND -p tcp -m tcp --dport 22 -j ACCEPT
-A INBOUND -p udp -m udp --dport 22 -j ACCEPT
-A INBOUND -p tcp -m tcp --dport 25 -j ACCEPT
-A INBOUND -p udp -m udp --dport 25 -j ACCEPT
-A INBOUND -p tcp -m tcp --dport 3306 -j ACCEPT
-A INBOUND -p udp -m udp --dport 3306 -j ACCEPT
-A INBOUND -p tcp -m tcp --dport 8080 -j ACCEPT
-A INBOUND -p udp -m udp --dport 8080 -j ACCEPT
-A INBOUND -p tcp -m tcp --dport 6667 -j ACCEPT
-A INBOUND -p udp -m udp --dport 6667 -j ACCEPT
-A INBOUND -p tcp -m tcp --dport 6668 -j ACCEPT
-A INBOUND -p udp -m udp --dport 6668 -j ACCEPT
-A INBOUND -p tcp -m tcp --dport 9091 -j ACCEPT
-A INBOUND -p udp -m udp --dport 9091 -j ACCEPT
-A INBOUND -p tcp -m tcp --dport 24800 -j ACCEPT
-A INBOUND -p udp -m udp --dport 24800 -j ACCEPT
-A INBOUND -j LSI
-A LSI -j LOG_FILTER
-A LSI -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m limit --limit 1/sec -j LOG --log-prefix "Inbound " --log-level 6
-A LSI -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j DROP
-A LSI -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK RST -m limit --limit 1/sec -j LOG --log-prefix "Inbound " --log-level 6
-A LSI -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK RST -j DROP
-A LSI -p icmp -m icmp --icmp-type 8 -m limit --limit 1/sec -j LOG --log-prefix "Inbound " --log-level 6
-A LSI -p icmp -m icmp --icmp-type 8 -j DROP
-A LSI -m limit --limit 5/sec -j LOG --log-prefix "Inbound " --log-level 6
-A LSI -j DROP
-A LSO -j LOG_FILTER
-A LSO -m limit --limit 5/sec -j LOG --log-prefix "Outbound " --log-level 6
-A LSO -j REJECT --reject-with icmp-port-unreachable
-A OUTBOUND -p icmp -j ACCEPT
-A OUTBOUND -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTBOUND -p udp -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTBOUND -j ACCEPT

Détecter les vulnérabilités dans les dépendances de son projet
La gestion des dépendances dans un projet est quelque chose de complexe. Il y a autant de ge…

Sharepoint Office365 sur Linux : automatiser l'authentification (v2)
En septembre 2018, je publiais un article pour automatiser l'authentification sur Sharepoint…

Un an d'utilisation de AdGuard comme DNS
Au moment où j'ai commencé à utiliser Wireguard, je me suis aperçu que le principal usage qu…
- Sinon tu peux utiliser un vrai OS, avec un vrai firewall et un vrai fichier de conf... :)
- tu parles de ton ridicule pf :o)) ? </troll>
- Il y a aussi "ufw" qui est pas mal et très simple, en root suffit de l'installer, de l'activer, et il se lancera automatiquement en arrière plan à chaque démarrage sans rien y toucher ;)