parent
d58c6ca2c0
commit
3400549d48
@ -0,0 +1,10 @@
|
||||
---
|
||||
title: "Section Sécurité : Parefeu"
|
||||
date: 2017-07-23T18:41:14+01:00
|
||||
description: "Articles à-propos de différents parefeux…"
|
||||
draft: false
|
||||
noindex: true
|
||||
tags: ['Sécurité','firewall']
|
||||
---
|
||||
|
||||
Différents articles autour de différents parefeux : Iptables, PF, etc…
|
@ -0,0 +1,20 @@
|
||||
---
|
||||
date: 2017-07-29T12:38:55+02:00
|
||||
description: "Exemple de règles pour gèrer les connexions en mode FTP actif avec Iptables"
|
||||
draft: false
|
||||
tags: ['firewall','iptables','accept','FTP','astuce']
|
||||
title: "iptables accepte de gèrer le mode FTP actif"
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
Exemple de règles pour gèrer les connexions en mode FTP actif avec Iptables :
|
||||
|
||||
`iptables -A OUTPUT -o eth0 -p tcp -m multiport --sports 20,21 -m conntrack --ctstate ! INVALID -j ACCEPT` <br>
|
||||
`iptables -A INPUT -i eth0 -p tcp -m multiport --dports 20,21 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT` <br>
|
||||
|
||||
---
|
||||
|
||||
*J'ai écrit ce mémo, pour la première fois, sur mon autre site : "[Mémoire Grise Libérée](http://memoire-grise-liberee.fr.eu.org/Linux/IpTables/FAQ/ftp_actif/)".*
|
||||
|
||||
---
|
@ -0,0 +1,32 @@
|
||||
---
|
||||
date: 2017-07-28T15:22:49+02:00
|
||||
description: "Exemple de règles pour gèrer les connexions venant seulement des autres machines sur le LAN avec Iptables"
|
||||
draft: false
|
||||
tags: ['firewall','iptables','accept','LAN','astuce']
|
||||
title: "iptables accept le trafic interne au LAN"
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
⇒ Demander à iptables d'accepter tout le trafic de votre ip vers votre lan,
|
||||
en admettant que vos machines soient sur un réseau de classe C, dont le
|
||||
segment est 192.168.0.0 :
|
||||
|
||||
`iptables -A OUTPUT -o eth0 -s 192.168.0.1 -d 192.168.0.0 / 24 -m conntrack --ctstate ! INVALID -j ACCEPT` <br>
|
||||
`iptables -A INPUT -i eth0 -s 192.168.0.0 / 24 -d 192.168.0.1 -m conntrack --ctstate ! INVALID -j ACCEPT` <br>
|
||||
|
||||
⇒ Accepter le flux de type broadcast :
|
||||
|
||||
`iptables -A OUTPUT -o eth0 -s 192.168.0.1 -d 192.168.0.255 -m conntrack --ctstate ! INVALID -j ACCEPT` <br>
|
||||
`iptables -A INPUT -i eth0 -s 192.168.0.255 -d 192.168.0.1 -m conntrack --ctstate ! INVALID -j ACCEPT` <br>
|
||||
|
||||
⇒ Accepter le flux BootDHCP vers LAN :
|
||||
|
||||
`iptables -A INPUT -i eth0 -p udp --sport bootpc --dport bootps -m conntrack --ctstate NEW -j ACCEPT`
|
||||
|
||||
|
||||
---
|
||||
|
||||
*J'ai écrit ce mémo, pour la première fois, sur mon autre site : "[Mémoire Grise Libérée](http://memoire-grise-liberee.fr.eu.org/Linux/IpTables/FAQ/accept_ip2lan/)".*
|
||||
|
||||
---
|
@ -0,0 +1,28 @@
|
||||
---
|
||||
date: 2017-07-29T12:19:32+02:00
|
||||
description: "Exemple de règles pour autoriser le flux sur l'interface locale avec Iptables"
|
||||
draft: false
|
||||
tags: ['firewall','iptables','accept','lo','astuce']
|
||||
title: "iptables accepte tout flux sur l'interface locale"
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
**Permettre à l'interface locale de discuter est important !**
|
||||
|
||||
⇒ Autorise la connexion sur l'interface locale :
|
||||
|
||||
`iptables -A INPUT -i lo -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT` <br>
|
||||
`iptables -A OUTPUT -o lo -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT` <br>
|
||||
|
||||
⇒ règle simpliste :
|
||||
|
||||
`iptables -A INPUT -i lo -j ACCEPT` <br>
|
||||
`iptables -A OUTPUT -o lo -j ACCEPT` <br>
|
||||
|
||||
|
||||
---
|
||||
|
||||
*J'ai écrit ce mémo, pour la première fois, sur mon autre site : "[Mémoire Grise Libérée](http://memoire-grise-liberee.fr.eu.org/Linux/IpTables/FAQ/accept_lo/)".*
|
||||
|
||||
---
|
@ -0,0 +1,20 @@
|
||||
---
|
||||
date: 2017-07-29T13:07:00+02:00
|
||||
description: "Exemple de règles pour gèrer les connexions en mode FTP passif avec Iptables"
|
||||
draft: false
|
||||
tags: ['firewall','iptables','accept','FTP','astuce']
|
||||
title: "iptables accepte de gèrer le mode FTP passif"
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
{{< note warning >}}Les modules `ip_conntrack`, et `ip_conntrack_ftp` doivent être chargés !{{</note>}}
|
||||
|
||||
`iptables -A OUTPUT -o eth0 -p tcp --sport 1024: -m conntrack --ctstate ! INVALID -j ACCEPT` <br>
|
||||
`iptables -A INPUT -i eth0 -p tcp --dport 1024: -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT` <br>
|
||||
|
||||
---
|
||||
|
||||
*J'ai écrit ce mémo, pour la première fois, sur mon autre site : "[Mémoire Grise Libérée](http://memoire-grise-liberee.fr.eu.org/Linux/IpTables/FAQ/ftp_passif/)".*
|
||||
|
||||
---
|
@ -0,0 +1,34 @@
|
||||
---
|
||||
date: 2017-07-29T11:56:01+02:00
|
||||
description: "Exemple de règles pour gèrer le ping avec Iptables"
|
||||
draft: false
|
||||
tags: ['firewall','iptables','accept','ping','astuce']
|
||||
title: "iptables accepte de gèrer le ping"
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
⇒ Règle simpliste :
|
||||
|
||||
`iptables -A OUTPUT -o eth0 -p icmp -m conntrack --ctstate ! INVALID -j ACCEPT` <br>
|
||||
`iptables -A INPUT -i eth0 -p icmp -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT` <br>
|
||||
|
||||
⇒ Règles plus fines :
|
||||
|
||||
{{< note warning >}}**ATTENTION :**
|
||||
Remplacez la mention **adr_ip_gw** par l'adresse ip de votre routeur/passerelle… <br>
|
||||
celle-ci est précisée comme source ou destination parce que ce type d'ICMP
|
||||
ne doit être envoyé ou reçu que de votre passerelle.{{</note>}}
|
||||
|
||||
{{< code "sec-firewall-iptables-accept-ping-example" sh >}}
|
||||
|
||||
---
|
||||
|
||||
**Je vous invite très fortement à lire ATTENTIVEMENT sur le filtrage d'ICMP
|
||||
sous Linux : {{< inside "sec:firewall:linux-firewall-icmp" >}}**
|
||||
|
||||
---
|
||||
|
||||
*J'ai écrit ce mémo, pour la première fois, sur mon autre site : "[Mémoire Grise Libérée](http://memoire-grise-liberee.fr.eu.org/Linux/IpTables/FAQ/ping/)".*
|
||||
|
||||
---
|
@ -0,0 +1,26 @@
|
||||
---
|
||||
date: 2017-07-29T14:03:15+02:00
|
||||
description: "Exemple de règles pour autoriser les connexions sortantes vers WAN avec Iptables"
|
||||
draft: false
|
||||
tags: ['firewall','iptables','accept','WAN','astuce']
|
||||
title: "iptables accepte de gèrer les connexions sortantes vers WAN"
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
⇒ Accepter les connexions vers Internet ({{< abbr WAN "World Area Network" >}}),
|
||||
en admettant que votre adresse ip fasse partie de la classe C, segment
|
||||
réseau de type 192.168.0.0 :
|
||||
|
||||
`iptables -A OUTPUT -o eth0 -s 192.168.0.1 -m conntrack --ctstate ! INVALID -j ACCEPT`
|
||||
|
||||
---
|
||||
|
||||
Il peut-être intéressant de la faire suivre de cette règle de {{< inside "sec:firewall:iptables-reject-wan" rejet >}}…
|
||||
|
||||
---
|
||||
|
||||
*J'ai écrit ce mémo, pour la première fois, sur mon autre site : "[Mémoire Grise Libérée](http://memoire-grise-liberee.fr.eu.org/Linux/IpTables/FAQ/accept_wan/)".*
|
||||
|
||||
---
|
||||
|
@ -0,0 +1,30 @@
|
||||
---
|
||||
date: 2017-07-29T11:49:33+02:00
|
||||
description: "Exemple de règles pour refuser les réseaux Bogons avec Iptables"
|
||||
draft: false
|
||||
tags: ['firewall','iptables','drop','Bogons','astuce']
|
||||
title: "iptables refuse les réseaux Bogons"
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
La **RFC 1918** nous fait comprendre que les adresses de type privé ne doivent
|
||||
pas être publié sur Internet. De fait, puisque nul ne doit contacter l'interface
|
||||
réseau internet, il est bon de dropper tout flux qui y correspond !
|
||||
|
||||
La **RFC 5735** définit l'ensemble des réseaux dits spécifiques, qu'il est
|
||||
bon de ne pas retrouver sur Internet !
|
||||
|
||||
{{< code "sec-firewall-iptables-drop-bogons-example" sh >}}
|
||||
|
||||
{{< note warning >}}Pensez à supprimer la ligne correspondant à votre réseau !{{</note>}}
|
||||
|
||||
## Documentations
|
||||
|
||||
* {{< rfc 1918 >}}, {{< rfc 5735 >}}
|
||||
|
||||
---
|
||||
|
||||
*J'ai écrit ce mémo, pour la première fois, sur mon autre site : "[Mémoire Grise Libérée](http://memoire-grise-liberee.fr.eu.org/Linux/IpTables/FAQ/drop_private2public/)".*
|
||||
|
||||
---
|
@ -0,0 +1,22 @@
|
||||
---
|
||||
date: 2017-07-29T12:01:48+02:00
|
||||
description: "Exemple de règles pour refuser les scans nommés NULL, XMAS avec Iptables"
|
||||
draft: false
|
||||
tags: ['firewall','iptables','drop','scan','astuce']
|
||||
title: "iptables refuse les scans NULL et XMAS"
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
Il existe un type de scan de port, dit XMAS et NULL ; pour s'en protéger :
|
||||
|
||||
`iptables -A INPUT -p tcp --tcp-flags FIN,URG,PSH FIN,URG,PSH -j DROP` <br>
|
||||
`iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP` <br>
|
||||
`iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP` <br>
|
||||
`iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP` <br>
|
||||
|
||||
---
|
||||
|
||||
*J'ai écrit ce mémo, pour la première fois, sur mon autre site : "[Mémoire Grise Libérée](http://memoire-grise-liberee.fr.eu.org/Linux/IpTables/FAQ/drop_xmas_nullscan/)".*
|
||||
|
||||
---
|
@ -0,0 +1,35 @@
|
||||
---
|
||||
date: 2017-07-29T12:30:33+02:00
|
||||
description: "Exemple de règles pour gèrer les connexions établies ou relatives avec Iptables"
|
||||
draft: false
|
||||
tags: ['firewall','iptables','accept','established','related','astuce']
|
||||
title: "iptables accept les connexions établies ou relatives"
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
⇒ Règle simple, juste pour le protocole tcp :
|
||||
|
||||
`iptables -A INPUT -i eth0 -d 192.168.0.1 -p tcp -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT` <br>
|
||||
`iptables -A OUTPUT -o eth0 -S 192.168.0.1 -p tcp -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT` <br>
|
||||
|
||||
⇒ Règle plus évoluée, pour les protocoles icmp, tcp et udp :
|
||||
|
||||
`iptables -A INPUT -p tcp ! --syn -m conntrack --ctstate ESTABLISHED -j ACCEPT` <br>
|
||||
`iptables -A INPUT -p tcp -m conntrack --ctstate RELATED -j ACCEPT` <br>
|
||||
|
||||
`iptables -A INPUT -p udp -m conntrack --ctstate ESTABLISHED -j ACCEPT` <br>
|
||||
`iptables -A INPUT -p icmp -m conntrack --ctstate RELATED,ESTABLISHED,UNTRACKED -j ACCEPT` <br>
|
||||
|
||||
`iptables -A OUTPUT -p tcp ! --syn -m conntrack --ctstate ESTABLISHED -j ACCEPT` <br>
|
||||
`iptables -A OUTPUT -p tcp -m conntrack --ctstate RELATED -j ACCEPT` <br>
|
||||
|
||||
`iptables -A OUTPUT -p udp -m conntrack --ctstate ESTABLISHED -j ACCEPT` <br>
|
||||
`iptables -A OUTPUT -p icmp -m conntrack --ctstate RELATED,ESTABLISHED,UNTRACKED -j ACCEPT` <br>
|
||||
|
||||
|
||||
---
|
||||
|
||||
*J'ai écrit ce mémo, pour la première fois, sur mon autre site : "[Mémoire Grise Libérée](http://memoire-grise-liberee.fr.eu.org/Linux/IpTables/FAQ/accept_established/)".*
|
||||
|
||||
---
|
@ -0,0 +1,46 @@
|
||||
---
|
||||
date: 2017-07-28T16:09:39+02:00
|
||||
description: "Exemple de règles pour partager une connexion vers Internet avec Iptables"
|
||||
draft: false
|
||||
tags: ['firewall','iptables','forward','astuce']
|
||||
title: "iptables partage la connexion internet"
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
{{< note tip >}}À utiliser pour une machine faisant office de passerelle…{{</note>}}
|
||||
|
||||
Partager une connexion sous linux est assez simple…
|
||||
|
||||
⇒ Dans un premier temps, il faut autoriser la redirection d'IP, avec des
|
||||
droits administrateur :
|
||||
|
||||
`# echo 1 > /proc/sys/net/ipv4/ip_forward`
|
||||
|
||||
⇒ Ensuite autoriser la redirection avec iptables
|
||||
|
||||
* Avec une adresse ip extérieur statique : <br>
|
||||
`iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to 1.2.3.4` <br> où
|
||||
l'adresse IP `1.2.3.4` est à remplacer par votre réelle adresse IP extèrieure.
|
||||
|
||||
* Avec une adresse ip extérieur dynamique : <br>
|
||||
`iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE` <br>
|
||||
|
||||
## Configuration
|
||||
|
||||
⇒ Ajouter à votre fichier `/etc/sysctl.conf` :
|
||||
|
||||
`net.ipv4.ip_forward=1`
|
||||
|
||||
## Exemples
|
||||
|
||||
`iptables -A FORWARD -i eth0 -o ppp0 -s 192.168.0.0/24 -m conntrack --ctstate ! INVALID -j ACCEPT` <br>
|
||||
`iptables -A FORWARD -i ppp0 -o eth0 -d 192.168.0.0/24 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT` <br>
|
||||
`iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.0/24 -j MASQUERADE` <br>
|
||||
|
||||
|
||||
---
|
||||
|
||||
*J'ai écrit ce mémo, pour la première fois, sur mon autre site : "[Mémoire Grise Libérée](http://memoire-grise-liberee.fr.eu.org/Linux/IpTables/FAQ/partage_connexion/)".*
|
||||
|
||||
---
|
@ -0,0 +1,39 @@
|
||||
---
|
||||
date: 2017-07-29T12:38:55+02:00
|
||||
description: "Exemple de règles pour limiter le nombre de connexions avec Iptables"
|
||||
draft: false
|
||||
tags: ['firewall','iptables','limit','flood','astuce']
|
||||
title: "iptables limite le flood"
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
Une des attaques possible est de saturer votre interface réseau par un nombre
|
||||
conséquent de connexions ou tentatives de connexion dans un espace de temps
|
||||
très restreint.
|
||||
|
||||
Pour éviter de saturer l'interface réseau, on utilise une technique limitant
|
||||
le nombre de connexions au-delà desquelles toute autre tentative sera rejetée.
|
||||
|
||||
⇒ TCP Syn flood :
|
||||
|
||||
`iptables -A INPUT -i eth0 -p tcp --syn -m limit --limit 3/s -j ACCEPT`
|
||||
|
||||
⇒ UDP Syn flood :
|
||||
|
||||
`iptables -A INPUT -i eth0 -p udp -m limit --limit 10/s -j ACCEPT`
|
||||
|
||||
{{< note warning >}}**ATTENTION** : Certains sites mettent le flag `--syn`
|
||||
après le protocole `udp`, sachez que ce flag n'existe pas pour le protocole udp.{{</note>}}
|
||||
|
||||
⇒ Ping flood :
|
||||
|
||||
`iptables -A INPUT -i eth0 -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT` <br>
|
||||
`iptables -A INPUT -i eth0 -p icmp --icmp-type echo-reply -m limit --limit 1/s -j ACCEPT` <br>
|
||||
|
||||
|
||||
---
|
||||
|
||||
*J'ai écrit ce mémo, pour la première fois, sur mon autre site : "[Mémoire Grise Libérée](http://memoire-grise-liberee.fr.eu.org/Linux/IpTables/FAQ/limit_flood/)".*
|
||||
|
||||
---
|
@ -0,0 +1,32 @@
|
||||
---
|
||||
date: 2017-07-29T13:23:41+02:00
|
||||
description: "Exemple de règles pour gèrer le mode multiport avec Iptables"
|
||||
draft: false
|
||||
tags: ['firewall','iptables','multiport','astuce']
|
||||
title: "iptables gère le mode multiport"
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
L'extension `multiport` d'iptables permet de spécifier une et une seule
|
||||
règle pour cibler plusieurs services !
|
||||
|
||||
`iptables -A INPUT -i eth0 -p TCP -m multiport --dports 20-22,80,443 -m conntrack --ctstate NEW -j ACCEPT`
|
||||
|
||||
## Exemples
|
||||
|
||||
Au lieu d'écrire :
|
||||
|
||||
{{< code "sec-firewall-iptables-multiport-bad-example" sh >}}
|
||||
|
||||
Écrivez donc :
|
||||
|
||||
`iptables -A INPUT -i eth0 -s 192.168.0.0/24 -d 192.168.0.1 -p TCP -m multiport --dports 22,53,631 -m conntrack --ctstate ! INVALID -j ACCEPT` <br>
|
||||
`iptables -A OUTPUT -o eth0 -s 192.168.0.1 -d 192.168.0.0/24 -p TCP -m multiport --sports 22,53,631 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT` <br>
|
||||
|
||||
|
||||
---
|
||||
|
||||
*J'ai écrit ce mémo, pour la première fois, sur mon autre site : "[Mémoire Grise Libérée](http://memoire-grise-liberee.fr.eu.org/Linux/IpTables/FAQ/multiport/)".*
|
||||
|
||||
---
|
@ -0,0 +1,22 @@
|
||||
---
|
||||
date: 2017-07-29T13:42:29+02:00
|
||||
description: "Exemple de règles pour rejeter les connexions entrantes depuis WAN avec Iptables"
|
||||
draft: false
|
||||
tags: ['firewall','iptables','reject','WAN','astuce']
|
||||
title: "iptables rejette les connexions entrantes WAN"
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
⇒ Si l'on est une station, refuser poliment les paquets demandant une connexion
|
||||
et venant d'Internet se dit ainsi :
|
||||
|
||||
`iptables -A INPUT -i eth0 -s 0.0.0.0/0 -d 192.168.0.1 -m conntrack --ctstate NEW -j REJECT`
|
||||
|
||||
Il peut-être intéressant de la faire précéder de cette règle {{< inside "sec:firewall:iptables-accept-wan" >}}…
|
||||
|
||||
---
|
||||
|
||||
*J'ai écrit ce mémo, pour la première fois, sur mon autre site : "[Mémoire Grise Libérée](http://memoire-grise-liberee.fr.eu.org/Linux/IpTables/FAQ/reject_wan/)".*
|
||||
|
||||
---
|
@ -0,0 +1,182 @@
|
||||
---
|
||||
date: 2017-07-26T21:03:54+02:00
|
||||
description: "Filtrer de manière sécurisé le protocole ICMP sous Linux : exemples avec le parefeu Iptables"
|
||||
draft: false
|
||||
tags: ['Linux','firewall','ICMP','Iptables']
|
||||
title: "Linux : firewall ICMP"
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
Ou comment titrer : **Filtrer le protocole ICMP sous Linux**.
|
||||
|
||||
Certains déclament qu'il faut absolument tout bloquer, terminer les commandes
|
||||
telles `traceroute`, `ping`… <br> <q>basta, et qu'on me fiche la paix !</q>
|
||||
|
||||
D'autres disent, oui, mais c'est quand même bien pratique d'utiliser de
|
||||
telles commandes, sauf que…
|
||||
|
||||
Le but évident d'ICMP est de rapporter les messages d'erreurs, d'informations
|
||||
des états, de contrôle, liés à la communication IP d'un réseau, dont Internet,
|
||||
donc, relatifs à la délivrance des paquets IP.
|
||||
|
||||
Ce but intéressant a ses défauts : puisque par ce biais-là, toute personne
|
||||
qui utilise le protocole ICMP peut "cartographier" l'ensemble de votre réseau,
|
||||
*un moindre mal en somme*, voire à chercher à attaquer celui-là, par certaines
|
||||
attaques connues, telles que le déni de service **Smurf**, comme le fameux
|
||||
"**Ping de la Mort**" ou tout autre {{< abbr DOS "Deni de Service" >}} existant.
|
||||
Certaines attaques permettent aussi de s'attaquer au protocole TCP, tel
|
||||
que le service HTTP (attaque **SlowLoris**), et d'autres…
|
||||
|
||||
<q>Froid dans le dos ? <br> Y'a de quoi…</q>
|
||||
|
||||
---
|
||||
|
||||
## Gérer ICMP
|
||||
|
||||
### Les codes ICMP à refuser
|
||||
|
||||
Les codes ci-dessous sont reconnus pour être dépréciés, dangereux, et
|
||||
donc **à ne plus utiliser** :
|
||||
|
||||
* **3/6** - Destination Network Unknown
|
||||
* **3/8** - Source Host Isolated
|
||||
* **4/0** - Source Quench
|
||||
* **15/0** - Information Request Message
|
||||
* **16/0** - Information Reply Message
|
||||
|
||||
{{< note warning >}}**Attention**: l'IANA, autre organisme mondialement
|
||||
reconnu, fait [référence](https://www.iana.org/assignments/icmp-parameters/icmp-parameters.xhtml)
|
||||
à la {{< anchor "RFC 6633" "RFC 6633" >}}, à-propos de la **dépréciation
|
||||
de Source Quench**, et **recommande de loguer de tels paquets et de les
|
||||
supprimer, sans avertissements (DROP)**.
|
||||
{{</note>}}
|
||||
|
||||
**N'hésitons même pas, les messages correspondant doivent ABSOLUMENT être
|
||||
refusés !**
|
||||
|
||||
---
|
||||
|
||||
L'IANA, dans sa [référence][1] à la **{{< anchor "RFC 6918" "RFC 6918" >}}**
|
||||
considère que les codes suivants sont dépréciés et donc à filtrer - *toute
|
||||
discrétion est laissé libre à l'administrateur de choisir son mode de filtrage* - :
|
||||
|
||||
* **6/0** - Alternate Host Address
|
||||
* **15** - Information Request
|
||||
* **16** - Information Reply
|
||||
* **17** - Address Mask Request
|
||||
* **18** - Address Mask Reply
|
||||
|
||||
* **30** - Traceroute
|
||||
* **31** - Datagram Conversion Error
|
||||
* **32** - Mobile Host Redirect
|
||||
* **33** - IPv6 Where-Are-You
|
||||
* **34** - IPv6 I-Am-Here
|
||||
* **35** - Mobile Registration Request
|
||||
* **36** - Mobile Registration Reply
|
||||
* **37** - Domain Name Request
|
||||
* **38** - Domain Name Reply
|
||||
* **39** - SKIP
|
||||
|
||||
À vous de choisir, si vous les détruisez… *alors, mode parano ?!*
|
||||
|
||||
Quoiqu'il en soit, si vous décidez de filtrer le code 30, n'oubliez pas
|
||||
que l'utilitaire **traceroute** est capable de fonctionner sur les protocoles
|
||||
UDP:53, TCP:80, voire d'imiter le code ICMP:8/0 !
|
||||
|
||||
### Les codes ICMP à limiter
|
||||
|
||||
Les recommandations sont de limiter, en entrée et en sortie de machine :
|
||||
|
||||
* le code **0/0** - Echo Reply Message - *(la fameuse réponse au Ping : le Pong, quoi :p)*
|
||||
* tous les autres codes de **type 3** - Destination Unreachable -
|
||||
* sauf un traitement légèrement particulier pour le **3/7** - Destination Host Unknown - à limiter en sortie et ignorer en entrée.
|
||||
* tous les codes **5** - Redirect
|
||||
* le code **8/0** - Echo Message - *(la fameuse commande Ping)*
|
||||
* le code **9/0** - Router Advertisement Message
|
||||
* le code **10/0** - Router Solicitation Message
|
||||
* tous les codes **11** - Time Exceeded - *(Utile pour la commande `traceroute`, ainsi que le code **30/0** d'ailleurs)*
|
||||
* tous les codes **12** - Parameter Problem
|
||||
* le code **13/0** - Timestamp Message
|
||||
* le code **14/0** - Timestamp Reply Message
|
||||
* le code **17/0** - Address Mask Request
|
||||
* le code **18/0** - Address Mask Reply
|
||||
|
||||
Pour limiter, dans le contexte d'une machine Linux, on utilisera l'option
|
||||
`match limit` avec **iptables**, tout simplement…
|
||||
|
||||
## Exemples
|
||||
|
||||
### ICMP en mode parano
|
||||
|
||||
En mode parano, vous pouvez très bien ouvrir :
|
||||
|
||||
* en sortie le code 8/0,
|
||||
* et en entrée le code 0/0 relatif à la sortie, pour que vous vous puissiez pinguer…
|
||||
* et empêcher les autres d'en faire autant !
|
||||
* Puis de supprimer tous les autres codes…
|
||||
|
||||
{{< code "sec-firewall-linux-icmp-parano-example" sh >}}
|
||||
|
||||
### ICMP filtré, limité
|
||||
|
||||
Voici, pour l'exemple, basé sur la compréhension des recommandations IETF,
|
||||
des règles ICMP filtrées, limitées ; puis de rejeter tous les autres codes,
|
||||
avec le message `icmp-host-prohibited`.
|
||||
|
||||
{{< code "sec-firewall-linux-icmp-limit-example" sh >}}
|
||||
|
||||
|
||||
## Documentation
|
||||
|
||||
### IETF
|
||||
|
||||
L'IETF est un organisme connu, reconnu qui écrit beaucoup de documents techniques,
|
||||
dont le propos est d'améliorer la technicité, la sécurité des usages liés à Internet.
|
||||
|
||||
Et, bien-sûr certains documents existent sur le fait de filtrer ICMP, voire
|
||||
ICMPv6 - relatif à IPv6, tels que :
|
||||
|
||||
* la **{{< anchor "RFC 4890" "RFC 4890" >}}**
|
||||
* la **{{< anchor "RFC 5927" "RFC 5927" >}}**
|
||||
* le <span lang="en">[draft ICMP filtering][101]</span>
|
||||
* le <span lang="en">[draft ICMPv6 filtering][102]</span>
|
||||
|
||||
Ces documents tous intéressants, certains sont vieux, d'autres récents,
|
||||
ont pour propos de réfléchir sérieusement à la sécurité à mettre en place
|
||||
autour du protocole ICMP.
|
||||
|
||||
Le document de travail relatif au filtrage d'ICMP aborde l'ensemble des
|
||||
protocoles IPv4 et IPv6 et explique quelles sont les attaques possibles,
|
||||
et donnent des recommandations utiles, qui vont du refus du paquet à la
|
||||
limitation des autres.
|
||||
|
||||
Il y a clairement certains codes de messages qui sont absolument à bloquer,
|
||||
refuser, tels que le code ICMP 4/0 alias "**Source Quench**" qui est explicitement
|
||||
déprécié, à ne plus utiliser, mais ce n'est pas le seul !
|
||||
|
||||
---
|
||||
|
||||
{{< rfcdoc 4890 >}}
|
||||
{{< rfcdoc 5927 >}}
|
||||
{{< rfcdoc 6633 >}}
|
||||
{{< rfcdoc 6918 >}}
|
||||
|
||||
|
||||
### Wikipedia
|
||||
|
||||
* {{< wp "Attaque_par_déni_de_service#Smurfing" >}}
|
||||
* {{< wp "Ping_de_la_mort" >}}
|
||||
* {{< wp Slowloris >}}
|
||||
|
||||
---
|
||||
|
||||
[1]: https://www.iana.org/assignments/icmp-parameters/icmp-parameters.xhtml
|
||||
|
||||
|
||||
[101]: https://tools.ietf.org/html/draft-ietf-opsec-icmp-filtering-04
|
||||
[102]: https://tools.ietf.org/id/draft-ietf-v6ops-icmpv6-filtering-recs-02.txt
|
||||
|
||||
|
||||
|
||||
|
@ -0,0 +1,159 @@
|
||||
---
|
||||
date: 2017-07-26T22:22:02+02:00
|
||||
description: "Filtrer de manière sécurisé le protocole ICMPv6 sous Linux : exemples avec le parefeu Ip6tables"
|
||||
draft: false
|
||||
tags: ['Linux','firewall','ICMPv6','Ip6tables']
|
||||
title: "Linux : firewall ICMPv6"
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
Ou cette fois-ci, comment titrer : **Filtrer le protocole ICMPv6 sous Linux** -
|
||||
*l'équivalent du protocole ICMP mais pour IPv6*
|
||||
|
||||
Il y a quelques heures, j'ai écrit cet autre {{< inside "sec:firewall:linux-firewall-icmp" mémo >}}… <br>
|
||||
maintenant, je retranscris à-propos des mesures de filtrage à mettre en place autour de ce protocole qu'est ICMPv6.
|
||||
|
||||
Je ne vais pas faire un rappel de ce pourquoi existe ce protocole, ni du fait
|
||||
que mal utilisé, il peut-être dangereux ; et, bien sûr, malheureusement,
|
||||
il y aura toujours des gens pour mal l'utiliser !
|
||||
|
||||
## Gérer ICMPv6
|
||||
|
||||
### Les codes ICMPv6 à refuser
|
||||
|
||||
Par prudence, il est recommandable de filtrer tous les codes expérimentaux,
|
||||
tels que 100, 101, 200, et 201, ainsi que les codes réservés pour le futur,
|
||||
à savoir les codes 127 et 255.
|
||||
|
||||
Il est recommandé de bloquer les codes suivants :
|
||||
|
||||
* **137** - Redirect Message
|
||||
* **138** - Router Renumbering
|
||||
* **139** - ICMP Node Information Query
|
||||
* **140** - ICMP Node Information Response
|
||||
* **144** - Home Agent Address Discovery Request Message
|
||||
* **145** - Home Agent Address Discovery Reply Message
|
||||
* **146** - Mobile Prefix Solicitation
|
||||
* **147** - Mobile Prefix Advertisement
|
||||
|
||||
### Les codes ICMPv6 à limiter
|
||||
|
||||
Les recommandations sont de limiter, en entrée et en sortie de machine,
|
||||
tous les codes de type :
|
||||
|
||||
* **1** - Destination Unreachable
|
||||
* **4** - Parameter Problem Message
|
||||
|
||||
Les recommandations suivantes sont de limiter en entrée seulement, tous
|
||||
les codes suivants :
|
||||
|
||||
* **2/0** - Packet Too Big Message
|
||||
* **3** - Time Exceeded Message
|
||||
* et tous les autres codes existants, dont particulièrement :
|
||||
* le code **128/0** - Echo Request message *(le ping)* -
|
||||
* et le code **129/0** - Echo reply message *(le pong)*.
|
||||
|
||||
### Précisions utiles
|
||||
|
||||
Concernant les codes suivants, il est précisé, dans leur RFC correspondante, leur format de message :
|
||||
|
||||
* tous les codes dits **{{< abbr MLD "Multicast Listener Discovery" >}}**
|
||||
donc **130**, **131**, **132** et **143** - et **MLDv2** doivent être envoyés depuis
|
||||
une adresse dont la source est un lien local IPv6, avec un `hop limit`
|
||||
à `1` - *selon la {{< anchor "RFC 2710" "RFC 2710" >}}* ;
|
||||
*le type 143 étant défini par la {{< anchor "RFC 3810" "RFC 3810" >}}*.
|
||||
* tous les codes dits **{{< abbr ND "Neighbor Discovery" >}}** de **133**
|
||||
à **137** doivent être envoyés avec un `hop-limit` à `255` - *définis par
|
||||
la {{< anchor "RFC 4861" "RFC 4861" >}}*. <br>
|
||||
Quelques précisions concernant ces codes :
|
||||
* le code **133** - **Router Solicitation** - doit être envoyé par une
|
||||
source ayant forcément une adresse IP assignée, ou depuis une adresse
|
||||
non spécifiée si l'interface réseau n'a pas encore d'adresse IP
|
||||
assignée, vers tout routeur.
|
||||
* le code **134** - **Router Advertisement** - doit ABSOLUMENT être
|
||||
envoyé par un routeur, émettant un avis de routeur périodique, ou
|
||||
une réponse à une sollicitation de routeur, à destination de tout
|
||||
nœud multicast ou à l'adresse source invoquant le routeur.
|
||||
* le code **135** - **Neighbor Solicitation** - doit être envoyé par
|
||||
une source ayant forcément une adresse IP assignée, ou depuis une
|
||||
adresse non spécifiée si l'interface réseau n'a pas encore d'adresse
|
||||
IP assignée, vers tout nœud multicast.
|
||||
* le code **136** - **Neighbor Advertisement** - doit ABSOLUMENT être
|
||||
envoyé par une adresse IP assignée, vers l'adresse source invoquant
|
||||
le code 135, ou vers tout nœud multicast, s'il n'y a pas d'adresse
|
||||
assignée.
|
||||
* le code **137** - **Redirect Message** - doit ABSOLUMENT être envoyé
|
||||
par une adresse IP assignée, lien local IPv6, d'un routeur vers
|
||||
l'adresse source qui a demandé la redirection du message.
|
||||
* les codes dits **{{< abbr NIQ "Node Information Queries" >}}** - donc
|
||||
**139** - **ICMP Node Information Query** - et **140** - **ICMP Node Information Response** -
|
||||
doivent refuser toutes requêtes venant d'adresses IPv6 dites globales
|
||||
et devraient appliquer l'emploi de l'option `limit`. <br>
|
||||
À savoir qu'il y a d'autres mesures de sécurité, plus complexes… *{{< anchor "RFC 4620" "RFC 4620" >}}*
|
||||
* les codes dits **{{< abbr "ND ID" "Neighbor Discovery Inverse Discovery" >}}** -
|
||||
donc **141** - **Inverse Neighbor Discovery Solicitation Message** -
|
||||
et **142** - **Inverse Neighbor Discovery Advertisement Message** -,
|
||||
tous deux doivent avoir pour source une adresse IP assignée - *codes
|
||||
définis par la {{< anchor "RFC 3122" "RFC 3122" >}}* :
|
||||
* le code **141** doit être envoyé à destination de tout noeud multicast,
|
||||
dont le format est de type **FF02::1**
|
||||
* le code **142** doit répondre seulement à une requête de type 141.
|
||||
* les codes dits **{{< abbr SEND "SEcure Neighbor Discovery" >}}** - donc
|
||||
**148** - **Certification Path Solicitation Message** - et **149** -
|
||||
**Certification Path Advertisement Message** - doivent être envoyés
|
||||
avec un `hop-limit` à `255` - *c'est la {{< anchor "RFC 3971" "RFC 3971" >}}
|
||||
qui définit ces codes*.
|
||||
* les codes dits **{{< abbr MRD "Multicast Router Discovery" >}}** - donc
|
||||
**151** à **153**, *définis par la {{< anchor "RFC 4286" "RFC 4286" >}}*,
|
||||
doivent être envoyés depuis une addresse assignée, lien local IPv6,
|
||||
et avoir un `hop-limit` à `255`.
|
||||
|
||||
## Exemples
|
||||
|
||||
### ICMPv6 en mode parano
|
||||
|
||||
En mode paranoïaque, cela donne ce genre de règles :
|
||||
|
||||
{{< code "sec-firewall-linux-icmpv6-parano-example" sh >}}
|
||||
|
||||
### ICMP filtré, limité
|
||||
|
||||
Voici, pour l'exemple, basé sur la compréhension des recommandations IETF,
|
||||
des règles ICMP filtrées, limitées ; puis de rejeter tous les autres codes,
|
||||
avec le message `icmp6-adm-prohibited`.
|
||||
|
||||
{{< code "sec-firewall-linux-icmpv6-limit-example" sh >}}
|
||||
|
||||
|
||||
## Documentations
|
||||
|
||||
Je ne vais pas reprendre le petit laïus sur IETF , ou IANA, mais simplement
|
||||
rappeler de bonnes lectures à faire.
|
||||
|
||||
*Si jamais, vous avez d'autres "tuyaux" du même acabit, n'hésitez pas m'envoyer
|
||||
un commentaire par mail.*
|
||||
|
||||
* les différents [paramètres ICMPv6][100]
|
||||
* la **{{< anchor "RFC 4890" "RFC 4890" >}}**
|
||||
* la **{{< anchor "RFC 5927" "RFC 5927" >}}**
|
||||
* le <span lang="en">[draft ICMP filtering][101]</span>
|
||||
* le <span lang="en">[draft ICMPv6 filtering][102]</span>
|
||||
|
||||
---
|
||||
|
||||
{{< rfcdoc 2710 >}}
|
||||
{{< rfcdoc 3122 >}}
|
||||
{{< rfcdoc 3810 >}}
|
||||
{{< rfcdoc 3971 >}}
|
||||
{{< rfcdoc 4286 >}}
|
||||
{{< rfcdoc 4620 >}}
|
||||
{{< rfcdoc 4861 >}}
|
||||
{{< rfcdoc 4890 >}}
|
||||
{{< rfcdoc 5927 >}}
|
||||
|
||||
---
|
||||
|
||||
[100]: https://www.iana.org/assignments/icmpv6-parameters/icmpv6-parameters.xhtml
|
||||
[101]: https://tools.ietf.org/html/draft-ietf-opsec-icmp-filtering-04
|
||||
[102]: https://tools.ietf.org/id/draft-ietf-v6ops-icmpv6-filtering-recs-02.txt
|
@ -0,0 +1,26 @@
|
||||
---
|
||||
date: 2019-10-31T12:38:55+02:00
|
||||
description: "Exemple de règles pour gèrer les connexions avahi avec le parefeu Packet-Filter (PF)"
|
||||
draft: false
|
||||
tags: ['firewall','PF','Packet-Filter','avahi','astuce']
|
||||
title: "PF accepte de gèrer les connexions du service avahi"
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
Voici les règles pare-feu au besoin :
|
||||
|
||||
{{< code "sec-firewall-pf-avahi" sh >}}
|
||||
|
||||
### Précisions
|
||||
|
||||
Concernant le trafic SSDP :
|
||||
|
||||
* pour IPv6 :
|
||||
* `ff02::c` est l'adresse multicast de lien local
|
||||
* `ff05::c` est l'adresse multicast de site local
|
||||
* `ff08::c` est l'adresse multicast d'organisation local
|
||||
* il existe aussi `ff0e::c` pour l'adresse multicast global - que nous
|
||||
n'utiliserons pas dans le contexte local !
|
||||
|
||||
---
|
@ -0,0 +1,43 @@
|
||||
---
|
||||
date: 2019-10-31T12:38:55+02:00
|
||||
description: "Exemple de règles pour gèrer le protocole ICMP avec le parefeu Packet-Filter (PF)"
|
||||
draft: false
|
||||
tags: ['firewall','PF','Packet-Filter','ICMP','astuce']
|
||||
title: "PF accepte de gèrer le protocole ICMP"
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
{{< note tip >}}
|
||||
Cet article peut très bien être utile pour le PF embarqué dans [Debian GNU/kFreeBSD](https://wiki.debian.org/fr/Debian_GNU/kFreeBSD) !
|
||||
{{</note>}}
|
||||
|
||||
Suivant les recommandations que l'on retrouve sur mon autre {{< inside "sec:firewall:linux-firewall-icmp" article >}},
|
||||
à-propos des règles à mettre en place pour autoriser ou bloquer le flux
|
||||
ICMP, voici les règles PF adéquates, pour tout BSD qui utilise Packet Filter,
|
||||
dont OpenBSD :
|
||||
|
||||
## Gestion
|
||||
|
||||
### Les codes ICMP à rejeter
|
||||
|
||||
{{< code "sec-firewall-pf-icmp-reject-example" sh >}}
|
||||
|
||||
{{< note warning >}}Il semble que PF ne comprend pas les options **37**,
|
||||
**38** *(respectivement **Domain Name Request**, et **Domain Name Reply**)* ;
|
||||
du moins, il ne les traduit pas, comme il le fait très bien avec les autres options !
|
||||
{{</note>}}
|
||||
|
||||
### Les codes ICMP à autoriser
|
||||
|
||||
{{< note info >}}L'équivalent `limit` d'Iptables n'existe pas pour PF !<br>
|
||||
Il semble que c'est géré finement par le noyau BSD d'OpenBSD.
|
||||
{{</note>}}
|
||||
|
||||
{{< code "sec-firewall-pf-icmp-auth-example" sh >}}
|
||||
|
||||
Bien-sûr, vous pouvez autoriser tous les autres codes qui peuvent être autorisés
|
||||
et dont les recommandations sont de limiter. Les trois codes mis en exergue sont un minima !
|
||||
|
||||
---
|
||||
|
@ -0,0 +1,103 @@
|
||||
---
|
||||
date: 2019-10-31T12:38:55+02:00
|
||||
description: "Exemple de règles pour gèrer le protocole ICMPv6 avec le parefeu Packet-Filter (PF)"
|
||||
draft: false
|
||||
tags: ['firewall','PF','Packet-Filter','ICMPv6','astuce']
|
||||
title: "PF accepte de gèrer le protocole ICMPv6"
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
{{< note tip >}}
|
||||
Cet article peut très bien être utile pour le PF embarqué dans [Debian GNU/kFreeBSD](https://wiki.debian.org/fr/Debian_GNU/kFreeBSD) !
|
||||
{{</note>}}
|
||||
|
||||
Reprenant le principe des informations renfermées dans mon autre {{< inside "sec:firewall:linux-firewall-icmpv6" article >}},
|
||||
à-propos des recommandations faites pour autoriser ou bloquer le flux ICMPv6,
|
||||
voici les règles PF adéquates pour tout BSD qui utilise Packet Filter, dont OpenBSD :
|
||||
|
||||
{{< note warning >}}
|
||||
Ne JAMAIS oublier que toute la pile IPv6, à la différence d'IPv4, se repose
|
||||
vraiment sur ICMPv6 ; ainsi, une mauvaise configuration d'ICMPv6 empêchera
|
||||
assurément tout ou partie du flux IPv6 de fonctionner correctement, ou comme attendu !
|
||||
{{</note>}}
|
||||
|
||||
## Gestion
|
||||
|
||||
### Les codes ICMP à rejeter
|
||||
|
||||
`icmp6_block = "{ 100 101 127 138 139 140 144 145 146 147 150 200 201 }"` <br>
|
||||
`block drop quick log on egress inet6 proto icmp6 icmp6-type $icmp6_block` <br>
|
||||
|
||||
---
|
||||
|
||||
⇒ Cas d'un routeur :
|
||||
|
||||
Un routeur **ne doit jamais transmettre** un paquet ayant pour adresse source
|
||||
ou de destination une adresse de type lien local :
|
||||
|
||||
`block drop quick on egress inet6 proto icmp6 from fe80::/64 to any` <br>
|
||||
`block drop quick on egress inet6 proto icmp6 from any to fe80::/64` <br>
|
||||
|
||||
### Les codes ICMPv6 à autoriser
|
||||
|
||||
⇒ Gestion d'une station :
|
||||
|
||||
`icmp6_auth = "{ unreach toobig timex paramprob echoreq routeradv neighbrsol neighbradv }"` <br>
|
||||
`#pass in quick on egress inet6 proto icmp6 from fe80::/64 to ff02::01/64` <br>
|
||||
`pass quick on egress inet6 proto icmp6 icmp6-type $icmp6_auth allow-opts` <br>
|
||||
`pass in quick on egress inet6 proto icmp6 icmp6-type redir allow-opts` <br>
|
||||
|
||||
**Explications**
|
||||
|
||||
* La première règle, mis en commentaire, autorise en entrée tout ce vient
|
||||
de la pile IPv6 vers ICMPv6 à partir d'une adresse de lien local vers
|
||||
l'adresse multicast de lien local - issue de secours au cas où !
|
||||
* La deuxième règle autorise en entrée et sortie tout ce qui vient de la
|
||||
pile IPv6 vers ou depuis ICMPv6 ciblant les types mentionnés dans la
|
||||
macro `$icmp6_auth`.
|
||||
* La troisième règle autorise en entrée tout ce qui vient de la pile IPv6
|
||||
vers l'annonce ICMPv6 de redirection vers une route plus courte.
|
||||
|
||||
#### Autorisations plus restrictives
|
||||
|
||||
`icmp6_auth = "{ unreach, toobig, timex code 0, timex code 1, paramprob code 1, paramprob code 2, echoreq, routeradv, neighbrsol, neighbradv }"` <br>
|
||||
`icmp6_in = "{ redir }"` <br>
|
||||
`pass quick on egress inet6 proto icmp6 icmp6-type $icmp6_auth allow-opts` <br>
|
||||
`pass in quick on egress inet6 proto icmp6 icmp6-type $icmp6_in allow-opts` <br>
|
||||
|
||||
**Explications**
|
||||
|
||||
* La règle `icmp6_auth` ne gère que ce qui est absolument nécessaire… **attention
|
||||
à bien utiliser les virgules séparant les codes, autrement elle ne
|
||||
serait pas fonctionnelle** !
|
||||
* La règle `icmp6_in` gère le cas de l'annonce de redirection `redir` vers
|
||||
une route sortante plus courte, et normalement ne doit être qu'entrante,
|
||||
pour une station ou un serveur ; mieux, elle devrait cibler le fait
|
||||
de ne venir absolument que d'un routeur !
|
||||
|
||||
---
|
||||
|
||||
⇒ Cas d'un routeur :
|
||||
|
||||
Si vous avez la belle idée de "construire", vous-même, votre propre routeur
|
||||
*sous OpenBSD, par exemple*, il est nécessaire que celui-ci autorise tous
|
||||
les codes **ND** dits de découvertes des voisins, c'est-à-dire les options
|
||||
**133** à **137**, à destination de lui et depuis lui :
|
||||
|
||||
`icmp6_auth = "{ unreach toobig timex paramprob echorep echoreq }"` <br>
|
||||
`icmp6_nd = "{ routersol routeradv neighbrsol neighbradv redir }"` <br>
|
||||
`pass quick on egress inet6 proto icmp6 icmp6-type $icmp6_auth allow-opts` <br>
|
||||
`pass inet6 proto ipv6-icmp from any to { ff02::/8, (self) } icmp6-type $icmp6_nd allow-opts` <br>
|
||||
|
||||
|
||||
## Documentation
|
||||
|
||||
* http://livre.g6.asso.fr/index.php/Lien-local
|
||||
|
||||
## Remerciements
|
||||
|
||||
Merci à @22decembre pour ses explications ! :D
|
||||
|
||||
---
|
||||
|
@ -0,0 +1,30 @@
|
||||
---
|
||||
date: 2019-10-31T12:38:55+02:00
|
||||
description: "Exemple de règles pour gèrer les ping avec le parefeu Packet-Filter (PF)"
|
||||
draft: false
|
||||
tags: ['firewall','PF','Packet-Filter','ping','ICMP','astuce']
|
||||
title: "PF accepte de gèrer les ping"
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
Très simplement :
|
||||
|
||||
⇒ IPv4 :
|
||||
|
||||
`pass on egress inet proto icmp all icmp-type echoreq`
|
||||
|
||||
⇒ IPv6 :
|
||||
|
||||
`pass on egress inet6 proto icmp all icmp6-type echoreq`
|
||||
|
||||
## Documentation
|
||||
|
||||
### Manpage
|
||||
|
||||
N'hésitez pas à (re?)lire le manpage concernant la commande [`ping`](https://man.openbsd.org/ping.8),
|
||||
et son équivalent `ping6` qui fonctionne de la même manière avec presque
|
||||
toutes les mêmes options…
|
||||
|
||||
---
|
||||
|
@ -0,0 +1,28 @@
|
||||
---
|
||||
date: 2019-10-31T12:38:55+02:00
|
||||
description: "Exemple de règles pour gèrer les connexions du service SMB avec le parefeu Packet-Filter (PF)"
|
||||
draft: false
|
||||
tags: ['firewall','PF','Packet-Filter','SMB','astuce']
|
||||
title: "PF accepte de gèrer les connexions du service Samba"
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
Voici les règles PF nécessaires :
|
||||
|
||||
⇒ macros
|
||||
|
||||
`smb_ports_tcp = "{ 135 137 139 445 }"` <br>
|
||||
`smb_ports_udp = "{ 135 137 138 445 }"` <br>
|
||||
|
||||
⇒ samba in
|
||||
|
||||
`pass in quick on egress proto tcp from egress:network to egress port $smb_ports_tcp flags S/SA modulate state` <br>
|
||||
`pass in quick on egress proto udp from egress:network to egress port $smb_ports_udp allow-opts` <br>
|
||||
|
||||
⇒ samba out
|
||||
|
||||
`pass out on egress proto tcp from egress to egress:network port $smb_ports_tcp flags S/SA modulate state` <br>
|
||||
`pass out on egress proto udp from egress to egress:network port $smb_ports_udp allow-opts` <br>
|
||||
|
||||
---
|
@ -0,0 +1,39 @@
|
||||
---
|
||||
date: 2019-10-31T12:38:55+02:00
|
||||
description: "Exemple de règles pour gèrer les connexions du logiciel de scanner saned avec le parefeu Packet-Filter (PF)"
|
||||
draft: false
|
||||
tags: ['firewall','PF','Packet-Filter','saned','astuce']
|
||||
title: "PF accepte de gèrer les connexions du scanner logiciel saned"
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
Normalement le port donné pour le service `sane` est le `6566` sur le protocole `tcp`.
|
||||
|
||||
Il suffit donc d'écrire une règle équivalente :
|
||||
|
||||
`pass out on egress proto tcp from egress to egress:network port 6566 flag S/SA modulate state`
|
||||
|
||||
---
|
||||
|
||||
### Cas d'une imprimante MFP Epson
|
||||
|
||||
Si vous avez une MFP de marque Epson, le port `1865` sur `udp` est celui qu'il faut contacter…
|
||||
par défaut. *(d'autres sont possibles, dépendant de votre modèle)*
|
||||
|
||||
Mais une analyse de l'activité sur l'interface `pflog0`, par le biais de
|
||||
la fameuse commande `tcpdump -n -e -ttt -i pflog0` nous restitue qu'il
|
||||
envoie des paquets sur `udp` à l'attention du réseau local, puis interroge
|
||||
en envoyant des paquets broadcasts, avant d'obtenir une réponse de l'imprimante… <br>
|
||||
bref, tout se passe en `udp`.
|
||||
|
||||
{{< code "sec-firewall-pf-saned-tcpdump-example" sh >}}
|
||||
|
||||
Le plus simple est d'autoriser le flux du protocole `udp` entrant et
|
||||
venant du réseau local vers ou depuis l'interface locale :
|
||||
|
||||
`pass in quick on egress proto udp from egress to egress:network allow-opts` <br>
|
||||
`pass in quick on egress proto udp from egress:network to egress allow-opts` <br>
|
||||
|
||||
---
|
||||
|
@ -0,0 +1,27 @@
|
||||
---
|
||||
date: 2019-10-31T12:38:55+02:00
|
||||
description: "Exemple de règles pour gèrer les connexions du service Syncthing avec le parefeu Packet-Filter (PF)"
|
||||
draft: false
|
||||
tags: ['firewall','PF','Packet-Filter','syncthing','astuce']
|
||||
title: "PF accepte de gèrer les connexions du service Syncthing"
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
Voici les règles PF nécessaires :
|
||||
|
||||
⇒ in :
|
||||
|
||||
`pass in quick on egress inet proto tcp from egress:network to egress port 22000 flags S/SA modulate state` <br>
|
||||
`pass in quick on egress inet proto udp from egress:network to egress port 21027 allow-opts` <br>
|
||||
|
||||
⇒ out :
|
||||
|
||||
`pass out quick on egress inet proto tcp from egress to egress:network port 22000 flags S/SA modulate state` <br>
|
||||
`pass out quick on egress inet proto udp from egress to egress:network port 21027 allow-opts` <br>
|
||||
|
||||
Bien-sûr, ces règles pour Syncthing sont à modifier, surtout si vous modifiez les ports dans la configuration de Syncthing !
|
||||
|
||||
Ce sont des règles de bases, pour exemple !
|
||||
|
||||
---
|
@ -0,0 +1,28 @@
|
||||
---
|
||||
date: 2019-10-31T12:38:55+02:00
|
||||
description: "Exemple de règles pour gèrer les connexions de l'outil traceroute avec le parefeu Packet-Filter (PF)"
|
||||
draft: false
|
||||
tags: ['firewall','PF','Packet-Filter','traceroute','astuce']
|
||||
title: "PF accepte de gèrer les connexions de l'outil traceroute"
|
||||
---
|
||||
|
||||
## Description
|
||||
|
||||
La commande `traceroute` a un comportement particulier, car il est possible
|
||||
d'utiliser l'option `-I` afin de simuler le comportement d'ICMP, voire d'ICMPv6.
|
||||
|
||||
Voici la règle utile afin de sortir sur le protocol `udp` :
|
||||
|
||||
`pass out on egress inet proto udp to port 33433:33626`
|
||||
|
||||
La commande équivalente nommée `traceroute6` pour la pile IPv6 fonctionne
|
||||
avec les mêmes options, donc de la même manière !
|
||||
|
||||
## Documentation
|
||||
|
||||
### Manpage
|
||||
|
||||
Allez lire un peu le manpage [traceroute(8)](https://man.openbsd.org/traceroute.8),
|
||||
cela fait toujours du bien de se rafraîchir la mémoire !
|
||||
|
||||
---
|
@ -0,0 +1,27 @@
|
||||
iptables -A INPUT -p icmp -m icmp --icmp-type0 -m conntrack --ctstate ESTABLISHED -j ACCEPT -m comment --comment "ICMP Echo reply"
|
||||
iptables -A INPUT -p icmp -m icmp --icmp-type3/0 -m conntrack --ctstate RELATED -j ACCEPT -m comment --comment "ICMP Destination Net Unreachable"
|
||||
iptables -A INPUT -p icmp -m icmp --icmp-type3/1 -m conntrack --ctstate RELATED -j ACCEPT -m comment --comment "ICMP Destination Host Unreachable"
|
||||
iptables -A INPUT -p icmp -m icmp --icmp-type8 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT -m comment --comment "ICMP Echo mssg"
|
||||
iptables -A INPUT -s adr_ip_gw -p icmp -m icmp --icmp-type9 -m conntrack --ctstate RELATED -j ACCEPT -m comment --comment "ICMP Router Advert"
|
||||
iptables -A INPUT -s adr_ip_gw -p icmp -m icmp --icmp-type10 -m conntrack --ctstate NEW -j ACCEPT -m comment --comment "ICMP Router Select"
|
||||
iptables -A INPUT -p icmp -m icmp --icmp-type11 -m conntrack --ctstate RELATED -j ACCEPT -m comment --comment "ICMP Time exceeded"
|
||||
iptables -A INPUT -p icmp -m icmp --icmp-type12 -m conntrack --ctstate RELATED -j ACCEPT -m comment --comment "ICMP Param pb"
|
||||
iptables -A INPUT -p icmp -m icmp --icmp-type13 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT -m comment --comment "ICMP Timestamp mssg"
|
||||
iptables -A INPUT -p icmp -m icmp --icmp-type14 -m conntrack --ctstate ESTABLISHED -j ACCEPT -m comment --comment "ICMP Timestamp reply"
|
||||
iptables -A INPUT -p icmp -m icmp --icmp-type17 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT -m comment --comment "ICMP Addr Mask mssg"
|
||||
iptables -A INPUT -s adr_ip_gw -p icmp -m icmp --icmp-type18 -m conntrack --ctstate ESTABLISHED -j ACCEPT -m comment --comment "ICMP Addr Mask reply"
|
||||
iptables -A INPUT -p icmp -m icmp --icmp-type30 -m conntrack --ctstate NEW,RELATED -j ACCEPT -m comment --comment "ICMP Traceroute"
|
||||
|
||||
iptables -A OUTPUT -p icmp -m icmp --icmp-type0 -m conntrack --ctstate ESTABLISHED -j ACCEPT
|
||||
iptables -A OUTPUT -p icmp -m icmp --icmp-type3/0 -m conntrack --ctstate RELATED -j ACCEPT
|
||||
iptables -A OUTPUT -p icmp -m icmp --icmp-type3/1 -m conntrack --ctstate RELATED -j ACCEPT
|
||||
iptables -A OUTPUT -p icmp -m icmp --icmp-type8 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
|
||||
iptables -A OUTPUT -d adr_ip_gw -p icmp -m icmp --icmp-type9 -m conntrack --ctstate RELATED -j ACCEPT
|
||||
iptables -A OUTPUT -d adr_ip_gw -p icmp -m icmp --icmp-type10 -m conntrack --ctstate NEW -j ACCEPT
|
||||
iptables -A OUTPUT -p icmp -m icmp --icmp-type11 -m conntrack --ctstate RELATED -j ACCEPT
|
||||
iptables -A OUTPUT -p icmp -m icmp --icmp-type12 -m conntrack --ctstate RELATED -j ACCEPT
|
||||
iptables -A OUTPUT -p icmp -m icmp --icmp-type13 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
|
||||
iptables -A OUTPUT -p icmp -m icmp --icmp-type14 -m conntrack --ctstate ESTABLISHED -j ACCEPT
|
||||
iptables -A OUTPUT -p icmp -m icmp --icmp-type17 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
|
||||
iptables -A OUTPUT -d adr_ip_gw -p icmp -m icmp --icmp-type18 -m conntrack --ctstate ESTABLISHED -j ACCEPT
|
||||
iptables -A OUTPUT -p icmp -m icmp --icmp-type30 -m conntrack --ctstate NEW,RELATED -j ACCEPT
|
@ -0,0 +1,33 @@
|
||||
iptables -A INPUT -i eth0 -s 0.0.0.0/8 -j DROP
|
||||
iptables -A INPUT -i eth0 -s 10.0.0.0/8 -j DROP # adr Class A privee
|
||||
iptables -A INPUT -i eth0 -s 100.64.0.0/10 -j DROP # définit par la RFC 6598
|
||||
iptables -A INPUT -i eth0 -s 127.0.0.0/8 -j DROP # adr de Loopback
|
||||
iptables -A INPUT -i eth0 -s 169.254.0.0/16 -j DROP # adr Link Local Network
|
||||
iptables -A INPUT -i eth0 -s 172.16.0.0/12 -j DROP # adr Class B privee
|
||||
iptables -A INPUT -i eth0 -s 192.0.0.0/24 -j DROP
|
||||
iptables -A INPUT -i eth0 -s 192.0.2.0/24 -j DROP # adr TEST-NET
|
||||
iptables -A INPUT -i eth0 -s 192.88.99.0/24 -j DROP
|
||||
iptables -A INPUT -i eth0 -s 192.168.0.0/16 -j DROP # adr Class C Privee
|
||||
iptables -A INPUT -i eth0 -s 198.18.0.0/15 -j DROP
|
||||
iptables -A INPUT -i eth0 -s 198.51.100.0/24 -j DROP
|
||||
iptables -A INPUT -i eth0 -s 203.0.113.0/24 -j DROP
|
||||
iptables -A INPUT -i eth0 -s 224.0.0.1/4 -j DROP # adr Class D MultiCast
|
||||
iptables -A INPUT -i eth0 -s 240.0.0.0/4 -j DROP # adr Class E Reservee
|
||||
iptables -A INPUT -i eth0 -s 255.255.255.255 -j DROP # aucun flux ne doit être de source avec l'adressage de loopbak...
|
||||
|
||||
iptables -A OUTPUT -o eth0 -d 0.0.0.0/8 -j DROP
|
||||
iptables -A OUTPUT -o eth0 -d 10.0.0.0/8 -j DROP # adr Class A privee
|
||||
iptables -A OUTPUT -o eth0 -d 100.64.0.0/10 -j DROP # définit par la RFC 6598
|
||||
iptables -A OUTPUT -o eth0 -d 127.0.0.0/8 -j DROP # adr de Loopback
|
||||
iptables -A OUTPUT -o eth0 -d 169.254.0.0/16 -j DROP # adr Link Local Network
|
||||
iptables -A OUTPUT -o eth0 -d 172.16.0.0/12 -j DROP # adr Class B privee
|
||||
iptables -A OUTPUT -o eth0 -d 192.0.0.0/24 -j DROP
|
||||
iptables -A OUTPUT -o eth0 -d 192.0.2.0/24 -j DROP # adr TEST-NET
|
||||
iptables -A OUTPUT -o eth0 -d 192.88.99.0/24 -j DROP
|
||||
iptables -A OUTPUT -o eth0 -d 192.168.0.0/16 -j DROP # adr Class C Privee
|
||||
iptables -A OUTPUT -o eth0 -d 198.18.0.0/15 -j DROP
|
||||
iptables -A OUTPUT -o eth0 -d 198.51.100.0/24 -j DROP
|
||||
iptables -A OUTPUT -o eth0 -d 203.0.113.0/24 -j DROP
|
||||
iptables -A OUTPUT -o eth0 -d 224.0.0.1/4 -j DROP # adr Class D MultiCast
|
||||
iptables -A OUTPUT -o eth0 -d 240.0.0.0/4 -j DROP # adr Class E Reservee
|
||||
iptables -A OUTPUT -o eth0 -d 255.255.255.255 ! -p icmp -j DROP # aucun flux ne doit être à destination avec l'adressage de loopbak, sauf sur le protocole ICMP...
|
@ -0,0 +1,11 @@
|
||||
# autorise entree-sortie vers ssh, si est server ssh
|
||||
iptables -A INPUT -i eth0 -s 192.168.0.0/24 -d 192.168.0.1 -m conntrack --ctstate ! INVALID -p TCP --dport 22 -j ACCEPT
|
||||
iptables -A OUTPUT -o eth0 -s 192.168.0.1 -d 192.168.0.0/24 -m conntrack --ctstate RELATED,ESTABLISHED -p TCP --sport 22 -j ACCEPT
|
||||
|
||||
# autorise entree-sortie vers DNS &lt;-&gt; LAN, si est server DNS
|
||||
iptables -A INPUT -i eth0 -s 192.168.0.0/24 -d 192.168.0.1 -m conntrack --ctstate ! INVALID -p TCP --dport 53 -j ACCEPT
|
||||
iptables -A OUTPUT -o eth0 -s 192.168.0.1 -d 192.168.0.0/24 -m conntrack --ctstate RELATED,ESTABLISHED -p TCP --sport 53 -j ACCEPT
|
||||
|
||||
# autorise entree-sortie vers Cups &lt;-&gt; LAN, si est server Cups
|
||||
iptables -A INPUT -i eth0 -s 192.168.0.0/24 -d 192.168.0.1 -m conntrack --ctstate ! INVALID -p TCP --dport 631 -j ACCEPT
|
||||
iptables -A OUTPUT -o eth0 -s 192.168.0.1 -d 192.168.0.0/24 -m conntrack --ctstate RELATED,ESTABLISHED -p TCP --sport 631 -j ACCEPT
|
@ -0,0 +1,51 @@
|
||||
/sbin/iptables -A INPUT -i ethX -p icmp -m limit --limit 3/s --limit-burst 7 -j icmp4in
|
||||
/sbin/iptables -A icmp4in -p icmp -m conntrack --ctstate INVALID -j DROP
|
||||
/sbin/iptables -A icmp4in -p icmp -m icmp --icmp-type 0 -m conntrack --ctstate RELATED,ESTABLISHED,UNTRACKED -j ACCEPT -m comment --comment "ICMP Echo reply"
|
||||
/sbin/iptables -A icmp4in -p icmp -m icmp --icmp-type 3/0 -m conntrack --ctstate RELATED,ESTABLISHED,UNTRACKED -j ACCEPT -m comment --comment "ICMP Destination Net Unreachable"
|
||||
/sbin/iptables -A icmp4in -p icmp -m icmp --icmp-type 3/1 -m conntrack --ctstate RELATED,ESTABLISHED,UNTRACKED -j ACCEPT -m comment --comment "ICMP Destination Host Unreachable"
|
||||
/sbin/iptables -A icmp4in -p icmp -m icmp --icmp-type 3/3 -m conntrack --ctstate RELATED,ESTABLISHED,UNTRACKED -j ACCEPT -m comment --comment "ICMP Destination Port Unreachable"
|
||||
/sbin/iptables -A icmp4in -p icmp -m icmp --icmp-type 3/6 -j DROP
|
||||
/sbin/iptables -A icmp4in -p icmp -m icmp --icmp-type 3/8 -j DROP
|
||||
/sbin/iptables -A icmp4in -p icmp -m icmp --icmp-type 4 -j DROP
|
||||
/sbin/iptables -A icmp4in -p icmp -m icmp --icmp-type 5 -m conntrack --ctstate NEW,RELATED,ESTABLISHED,UNTRACKED -j ACCEPT -m comment --comment "ICMP Redirect mssg"
|
||||
/sbin/iptables -A icmp4in -p icmp -m icmp --icmp-type 8/0 -m conntrack --ctstate NEW,RELATED,ESTABLISHED,UNTRACKED -j ACCEPT -m comment --comment "ICMP Echo mssg"
|
||||
/sbin/iptables -A icmp4in -p icmp -m icmp --icmp-type 9/0 -m conntrack --ctstate RELATED,ESTABLISHED,UNTRACKED -j ACCEPT -m comment --comment "ICMP Router Advertisement Message"
|
||||
/sbin/iptables -A icmp4in -p icmp -m icmp --icmp-type 10/0 -m conntrack --ctstate NEW,RELATED,ESTABLISHED,UNTRACKED -j ACCEPT -m comment --comment "ICMP Router Solicitation Message"
|
||||
/sbin/iptables -A icmp4in -p icmp -m icmp --icmp-type 11 -m conntrack --ctstate NEW,RELATED,ESTABLISHED,UNTRACKED -j ACCEPT -m comment --comment "ICMP Time exceeded"
|
||||
/sbin/iptables -A icmp4in -p icmp -m icmp --icmp-type 12 -m conntrack --ctstate NEW,RELATED,ESTABLISHED,UNTRACKED -j ACCEPT -m comment --comment "ICMP Param pb"
|
||||
/sbin/iptables -A icmp4in -p icmp -m icmp --icmp-type 13/0 -m conntrack --ctstate NEW,RELATED,ESTABLISHED,UNTRACKED -j ACCEPT -m comment --comment "ICMP Timestamp Message"
|
||||
/sbin/iptables -A icmp4in -p icmp -m icmp --icmp-type 14/0 -m conntrack --ctstate RELATED,ESTABLISHED,UNTRACKED -j ACCEPT -m comment --comment "ICMP Timestamp Reply Message"
|
||||
/sbin/iptables -A icmp4in -p icmp -m icmp --icmp-type 15 -j DROP
|
||||
/sbin/iptables -A icmp4in -p icmp -m icmp --icmp-type 16 -j DROP
|
||||
/sbin/iptables -A icmp4in -p icmp -m icmp --icmp-type 17/0 -m conntrack --ctstate NEW,RELATED,ESTABLISHED,UNTRACKED -j ACCEPT -m comment --comment "ICMP Address Mask Request"
|
||||
/sbin/iptables -A icmp4in -p icmp -m icmp --icmp-type 18/0 -m conntrack --ctstate RELATED,ESTABLISHED,UNTRACKED -j ACCEPT -m comment --comment "ICMP Address Mask Reply"
|
||||
/sbin/iptables -A icmp4in -p icmp -m icmp --icmp-type 30 -m conntrack --ctstate NEW,RELATED,ESTABLISHED,UNTRACKED -j ACCEPT -m comment --comment "ICMP Traceroute"
|
||||
|
||||
# REJECT Others
|
||||
/sbin/iptables -A icmp4in -p icmp -j REJECT --reject-with icmp-host-prohibited
|
||||
|
||||
/sbin/iptables -A OUTPUT -o ethX -p icmp -m limit --limit 3/s --limit-burst 7 -j icmp4out
|
||||
/sbin/iptables -A icmp4out -p icmp -m conntrack --ctstate INVALID -j DROP
|
||||
/sbin/iptables -A icmp4out -p icmp -m icmp --icmp-type 0 -m conntrack --ctstate RELATED,ESTABLISHED,UNTRACKED -j ACCEPT
|
||||
/sbin/iptables -A icmp4out -p icmp -m icmp --icmp-type 3/0 -m conntrack --ctstate RELATED,ESTABLISHED,UNTRACKED -j ACCEPT
|
||||
/sbin/iptables -A icmp4out -p icmp -m icmp --icmp-type 3/1 -m conntrack --ctstate RELATED,ESTABLISHED,UNTRACKED -j ACCEPT
|
||||
/sbin/iptables -A icmp4out -p icmp -m icmp --icmp-type 3/3 -m conntrack --ctstate RELATED,ESTABLISHED,UNTRACKED -j ACCEPT
|
||||
/sbin/iptables -A icmp4out -p icmp -m icmp --icmp-type 3/6 -j DROP
|
||||
/sbin/iptables -A icmp4out -p icmp -m icmp --icmp-type 3/7 -m conntrack --ctstate RELATED,ESTABLISHED,UNTRACKED -j ACCEPT
|
||||
/sbin/iptables -A icmp4out -p icmp -m icmp --icmp-type 3/8 -j DROP
|
||||
/sbin/iptables -A icmp4out -p icmp -m icmp --icmp-type 4/0 -j DROP
|
||||
/sbin/iptables -A icmp4out -p icmp -m icmp --icmp-type 5 -m conntrack --ctstate NEW,RELATED,ESTABLISHED,UNTRACKED -j ACCEPT
|
||||
/sbin/iptables -A icmp4out -p icmp -m icmp --icmp-type 8/0 -m conntrack --ctstate NEW,RELATED,ESTABLISHED,UNTRACKED -j ACCEPT
|
||||
/sbin/iptables -A icmp4out -p icmp -m icmp --icmp-type 9/0 -m conntrack --ctstate RELATED,ESTABLISHED,UNTRACKED -j ACCEPT
|
||||
/sbin/iptables -A icmp4out -p icmp -m icmp --icmp-type 10/0 -m conntrack --ctstate NEW,RELATED,ESTABLISHED,UNTRACKED -j ACCEPT
|
||||
/sbin/iptables -A icmp4out -p icmp -m icmp --icmp-type 11 -m conntrack --ctstate NEW,RELATED,ESTABLISHED,UNTRACKED -j ACCEPT
|
||||
/sbin/iptables -A icmp4out -p icmp -m icmp --icmp-type 12 -m conntrack --ctstate NEW,RELATED,ESTABLISHED,UNTRACKED -j ACCEPT
|
||||
/sbin/iptables -A icmp4out -p icmp -m icmp --icmp-type 13/0 -m conntrack --ctstate NEW,RELATED,ESTABLISHED,UNTRACKED -j ACCEPT
|
||||
/sbin/iptables -A icmp4out -p icmp -m icmp --icmp-type 14/0 -m conntrack --ctstate RELATED,ESTABLISHED,UNTRACKED -j ACCEPT
|
||||
/sbin/iptables -A icmp4out -p icmp -m icmp --icmp-type 15 -j DROP
|
||||
/sbin/iptables -A icmp4out -p icmp -m icmp --icmp-type 16 -j DROP
|
||||
/sbin/iptables -A icmp4out -p icmp -m icmp --icmp-type 17/0 -m conntrack --ctstate NEW,RELATED,ESTABLISHED,UNTRACKED -j ACCEPT
|
||||
/sbin/iptables -A icmp4out -p icmp -m icmp --icmp-type 18/0 -m conntrack --ctstate RELATED,ESTABLISHED,UNTRACKED -j ACCEPT
|
||||
/sbin/iptables -A icmp4out -p icmp -m icmp --icmp-type 30 -m conntrack --ctstate NEW,RELATED,ESTABLISHED,UNTRACKED -j ACCEPT
|
||||
|
||||
/sbin/iptables -A icmp4out -p icmp -j REJECT --reject-with icmp-host-prohibited
|
@ -0,0 +1,4 @@
|
||||
iptables -A INPUT -p icmp --icmp-type echo-reply -m conntrack --ctstate RELATED,ESTABLISHED,UNTRACKED -m limit --limit 3/s --limit-burst 7 -j ACCEPT
|
||||
iptables -A OUTPUT -p icmp --icmp-type echo-request -m conntrack --ctstate NEW,RELATED,ESTABLISHED,UNTRACKED -m limit --limit 3/s --limit-burst 7 -j ACCEPT
|
||||
iptables -A INPUT -p icmp -j DROP
|
||||
iptables -A OUTPUT -p icmp -j DROP
|
@ -0,0 +1,106 @@
|
||||
# INPUT RULES
|
||||
ip6tables -N INPUT_ICMPV6
|
||||
ip6tables -A INPUT_ICMPV6 -p icmpv6 -m conntrack --ctstate INVALID -j DROP
|
||||
ip6tables -A INPUT_ICMPV6 -p icmpv6 -m limit --limit 3/s --limit-burst 7 -j ACCEPT
|
||||
ip6tables -A INPUT_ICMPV6 -p icmpv6 -m conntrack --ctstate RELATED,ESTABLISHED,UNTRACKED -j ACCEPT
|
||||
ip6tables -A INPUT_ICMPV6 -p icmpv6 --icmpv6-type 1 -m conntrack --ctstate NEW -j ACCEPT # destination-unreachable; Must Not Be Dropped
|
||||
ip6tables -A INPUT_ICMPV6 -p icmpv6 --icmpv6-type 2/0 -m conntrack --ctstate NEW -j ACCEPT # packet too big; Must Not Be Dropped
|
||||
ip6tables -A INPUT_ICMPV6 -p icmpv6 --icmpv6-type 3/0 -m conntrack --ctstate NEW -j ACCEPT # time exceeded; Must Not Be Dropped
|
||||
ip6tables -A INPUT_ICMPV6 -p icmpv6 --icmpv6-type 3/1 -m conntrack --ctstate NEW -j ACCEPT # time exceeded; Should Not Be Dropped
|
||||
ip6tables -A INPUT_ICMPV6 -p icmpv6 --icmpv6-type 4/0 -m conntrack --ctstate NEW -j ACCEPT # parameter pb: Erroneous header field encountered; Should Not Be Dropped
|
||||
ip6tables -A INPUT_ICMPV6 -p icmpv6 --icmpv6-type 4/1 -m conntrack --ctstate NEW -j ACCEPT # parameter pb: Unrecognized Next Header Type encountered; Must Not Be Dropped
|
||||
ip6tables -A INPUT_ICMPV6 -p icmpv6 --icmpv6-type 4/2 -m conntrack --ctstate NEW -j ACCEPT # parameter pb: Unrecognized IPv6 option encountered; Must Not Be Dropped
|
||||
ip6tables -A INPUT_ICMPV6 -p icmpv6 --icmpv6-type 100 -j DROP # private experimentation
|
||||
ip6tables -A INPUT_ICMPV6 -p icmpv6 --icmpv6-type 101 -j DROP # private experimentation
|
||||
ip6tables -A INPUT_ICMPV6 -p icmpv6 --icmpv6-type 127 -j DROP # error messages ICMPv6
|
||||
ip6tables -A INPUT_ICMPV6 -p icmpv6 --icmpv6-type 128/0 -m conntrack --ctstate NEW -j ACCEPT # ping tool: echo request message; Must Not Be Dropped
|
||||
ip6tables -A INPUT_ICMPV6 -p icmpv6 --icmpv6-type 129/0 -m conntrack --ctstate NEW -j ACCEPT # ping tool: echo reply message; Must Not Be Dropped
|
||||
# link-local multicast receive notification mssg (need link-local src address, with hop-limit: 1)
|
||||
ip6tables -A INPUT_ICMPV6 -p icmpv6 --icmpv6-type 130/0 -s fe80::/64 -m conntrack --ctstate NEW -m hl --hl-eq 1 -j ACCEPT # Must Not Be Dropped
|
||||
ip6tables -A INPUT_ICMPV6 -p icmpv6 --icmpv6-type 131/0 -s fe80::/64 -m conntrack --ctstate NEW -m hl --hl-eq 1 -j ACCEPT # Must Not Be Dropped
|
||||
ip6tables -A INPUT_ICMPV6 -p icmpv6 --icmpv6-type 132/0 -s fe80::/64 -m conntrack --ctstate NEW -m hl --hl-eq 1 -j ACCEPT # Must Not Be Dropped
|
||||
# address configuration and routeur selection mssg (received with hop limit = 255)
|
||||
ip6tables -A INPUT_ICMPV6 -p icmpv6 --icmpv6-type 133/0 -m hl --hl-eq 255 -j ACCEPT # Must Not Be Dropped (only RELATED,ESTABLISHED,UNTRACKED)
|
||||
ip6tables -A INPUT_ICMPV6 -s fe80::/64 -p icmpv6 --icmpv6-type 134/0 -m hl --hl-eq 255 -j ACCEPT # Must Not Be Dropped (only RELATED,ESTABLISHED,UNTRACKED)
|
||||
ip6tables -A INPUT_ICMPV6 -p icmpv6 --icmpv6-type 135/0 -m hl --hl-eq 255 -j ACCEPT # Must Not Be Dropped (only RELATED,ESTABLISHED,UNTRACKED)
|
||||
ip6tables -A INPUT_ICMPV6 -p icmpv6 --icmpv6-type 136/0 -m hl --hl-eq 255 -j ACCEPT # Must Not Be Dropped (only RELATED,ESTABLISHED,UNTRACKED)
|
||||
ip6tables -A INPUT_ICMPV6 -p icmpv6 --icmpv6-type 137/0 -j DROP # Will Be Dropped Anyway
|
||||
ip6tables -A INPUT_ICMPV6 -p icmpv6 --icmpv6-type 138/0 -j DROP # Will Be Dropped Anyway
|
||||
ip6tables -A INPUT_ICMPV6 -p icmpv6 --icmpv6-type 139/0 -j DROP # Should Be Dropped Unless a Good Case Can Be Made
|
||||
ip6tables -A INPUT_ICMPV6 -p icmpv6 --icmpv6-type 140/0 -j DROP # Should Be Dropped Unless a Good Case Can Be Made
|
||||
ip6tables -A INPUT_ICMPV6 -p icmpv6 --icmpv6-type 141/0 -d ff02::1 -m hl --hl-eq 255 -j ACCEPT # Must Not Be Dropped (only RELATED,ESTABLISHED,UNTRACKED)
|
||||
ip6tables -A INPUT_ICMPV6 -p icmpv6 --icmpv6-type 142/0 -m hl --hl-eq 255 -j ACCEPT # Must Not Be Dropped (only RELATED,ESTABLISHED,UNTRACKED)
|
||||
# link-local multicast receive notification mssg (need link-local src address, with hop-limit: 1)
|
||||
ip6tables -A INPUT_ICMPV6 -p icmpv6 --icmpv6-type 143 -s fe80::/64 -m conntrack --ctstate NEW -m hl --hl-eq 1 -j ACCEPT # Must Not Be Dropped
|
||||
# needed for mobylity
|
||||
ip6tables -A INPUT_ICMPV6 -p icmpv6 --icmpv6-type 144/0 -j DROP # Will Be Dropped Anyway
|
||||
ip6tables -A INPUT_ICMPV6 -p icmpv6 --icmpv6-type 145/0 -j DROP # Will Be Dropped Anyway
|
||||
ip6tables -A INPUT_ICMPV6 -p icmpv6 --icmpv6-type 146/0 -j DROP # Will Be Dropped Anyway
|
||||
ip6tables -A INPUT_ICMPV6 -p icmpv6 --icmpv6-type 147 -j DROP # Will Be Dropped Anyway
|
||||
# SEND certificate path notification mssg (received with hop limit = 255)
|
||||
ip6tables -A INPUT_ICMPV6 -p icmpv6 --icmpv6-type 148 -m hl --hl-eq 255 -j ACCEPT # Must Not Be Dropped (only RELATED,ESTABLISHED,UNTRACKED)
|
||||
ip6tables -A INPUT_ICMPV6 -p icmpv6 --icmpv6-type 149 -m hl --hl-eq 255 -j ACCEPT # Must Not Be Dropped (only RELATED,ESTABLISHED,UNTRACKED)
|
||||
# multicast routeur discovery mssg (need link-local src address and hop limit = 1)
|
||||
ip6tables -A INPUT_ICMPV6 -p icmpv6 --icmpv6-type 151 -s fe80::/64 -m conntrack --ctstate NEW -m hl --hl-eq 1 -j ACCEPT # Must Not Be Dropped
|
||||
ip6tables -A INPUT_ICMPV6 -p icmpv6 --icmpv6-type 152 -s fe80::/64 -m conntrack --ctstate NEW -m hl --hl-eq 1 -j ACCEPT # Must Not Be Dropped
|
||||
ip6tables -A INPUT_ICMPV6 -p icmpv6 --icmpv6-type 153 -s fe80::/64 -m conntrack --ctstate NEW -m hl --hl-eq 1 -j ACCEPT # Must Not Be Dropped
|
||||
#
|
||||
ip6tables -A INPUT_ICMPV6 -p icmpv6 --icmpv6-type 200 -j DROP # private experimentation
|
||||
ip6tables -A INPUT_ICMPV6 -p icmpv6 --icmpv6-type 201 -j DROP # private experimentation
|
||||
ip6tables -A INPUT_ICMPV6 -p icmpv6 --icmpv6-type 255 -j DROP # error messages ICMPv6
|
||||
# all others are dropped
|
||||
#ip6tables -A INPUT_ICMPV6 -p icmpv6 ! --icmpv6-type -j DROP or -j REJECT --reject-with icmp6-adm-prohibited <= this type seems not correctly supported!
|
||||
ip6tables -A INPUT_ICMPV6 -p icmpv6 -j REJECT --reject-with no-route
|
||||
|
||||
# OUTPUT RULES
|
||||
ip6tables -N OUTPUT_ICMPV6
|
||||
ip6tables -A OUTPUT_ICMPV6 -p icmpv6 -m conntrack --ctstate INVALID -j DROP
|
||||
ip6tables -A OUTPUT_ICMPV6 -p icmpv6 -m conntrack --ctstate RELATED,ESTABLISHED,UNTRACKED -j ACCEPT
|
||||
ip6tables -A OUTPUT_ICMPV6 -p icmpv6 --icmpv6-type 1 -m conntrack --ctstate NEW -m limit --limit 3/s --limit-burst 7 -j ACCEPT # destination-unreachable; Must Not Be Dropped
|
||||
ip6tables -A OUTPUT_ICMPV6 -p icmpv6 --icmpv6-type 2/0 -m conntrack --ctstate NEW -j ACCEPT # packet too big; Must Not Be Dropped
|
||||
ip6tables -A OUTPUT_ICMPV6 -p icmpv6 --icmpv6-type 3/0 -m conntrack --ctstate NEW -j ACCEPT # time exceeded; Must Not Be Dropped
|
||||
ip6tables -A OUTPUT_ICMPV6 -p icmpv6 --icmpv6-type 3/1 -m conntrack --ctstate NEW -j ACCEPT # time exceeded; Should Not Be Dropped
|
||||
ip6tables -A OUTPUT_ICMPV6 -p icmpv6 --icmpv6-type 4/0 -m conntrack --ctstate NEW -m limit --limit 3/s --limit-burst 7 -j ACCEPT # parameter pb: Erroneous header field encountered; Should Not Be Dropped
|
||||
ip6tables -A OUTPUT_ICMPV6 -p icmpv6 --icmpv6-type 4/1 -m conntrack --ctstate NEW -m limit --limit 3/s --limit-burst 7 -j ACCEPT # parameter pb: Unrecognized Next Header Type encountered; Must Not Be Dropped
|
||||
ip6tables -A OUTPUT_ICMPV6 -p icmpv6 --icmpv6-type 4/2 -m conntrack --ctstate NEW -m limit --limit 3/s --limit-burst 7 -j ACCEPT # parameter pb: Unrecognized IPv6 option encountered; Must Not Be Dropped
|
||||
ip6tables -A OUTPUT_ICMPV6 -p icmpv6 --icmpv6-type 100 -j DROP # private experimentation
|
||||
ip6tables -A OUTPUT_ICMPV6 -p icmpv6 --icmpv6-type 101 -j DROP # private experimentation
|
||||
ip6tables -A OUTPUT_ICMPV6 -p icmpv6 --icmpv6-type 127 -j DROP # error messages ICMPv6
|
||||
ip6tables -A OUTPUT_ICMPV6 -p icmpv6 --icmpv6-type 128/0 -m conntrack --ctstate NEW -j ACCEPT # ping tool: echo request message; Must Not Be Dropped
|
||||
ip6tables -A OUTPUT_ICMPV6 -p icmpv6 --icmpv6-type 129/0 -m conntrack --ctstate NEW -j ACCEPT # ping tool: echo reply message; Must Not Be Dropped
|
||||
# link-local multicast receive notification mssg (need link-local src address, with hop-limit: 1)
|
||||
ip6tables -A OUTPUT_ICMPV6 -p icmpv6 --icmpv6-type 130/0 -m conntrack --ctstate NEW -m hl --hl-eq 1 -j ACCEPT # Must Not Be Dropped
|
||||
ip6tables -A OUTPUT_ICMPV6 -p icmpv6 --icmpv6-type 131/0 -m conntrack --ctstate NEW -m hl --hl-eq 1 -j ACCEPT # Must Not Be Dropped
|
||||
ip6tables -A OUTPUT_ICMPV6 -p icmpv6 --icmpv6-type 132/0 -m conntrack --ctstate NEW -m hl --hl-eq 1 -j ACCEPT # Must Not Be Dropped
|
||||
# address configuration and routeur selection mssg (received with hop limit = 255)
|
||||
ip6tables -A OUTPUT_ICMPV6 -p icmpv6 --icmpv6-type 133/0 -m conntrack --ctstate NEW -m hl --hl-eq 255 -j ACCEPT # Must Not Be Dropped
|
||||
ip6tables -A OUTPUT_ICMPV6 -p icmpv6 --icmpv6-type 134/0 -d fe80::/64 -m hl --hl-eq 255 -j ACCEPT # Must Not Be Dropped
|
||||
ip6tables -A OUTPUT_ICMPV6 -p icmpv6 --icmpv6-type 135/0 -m conntrack --ctstate NEW -m hl --hl-eq 255 -j ACCEPT # Must Not Be Dropped
|
||||
ip6tables -A OUTPUT_ICMPV6 -p icmpv6 --icmpv6-type 136/0 -m conntrack --ctstate NEW -m hl --hl-eq 255 -j ACCEPT # Must Not Be Dropped
|
||||
ip6tables -A OUTPUT_ICMPV6 -p icmpv6 --icmpv6-type 137/0 -j DROP # Will Be Dropped Anyway
|
||||
ip6tables -A OUTPUT_ICMPV6 -p icmpv6 --icmpv6-type 138/0 -j DROP # Will Be Dropped Anyway
|
||||
ip6tables -A OUTPUT_ICMPV6 -p icmpv6 --icmpv6-type 139/0 -j DROP # Should Be Dropped Unless a Good Case Can Be Made
|
||||
ip6tables -A OUTPUT_ICMPV6 -p icmpv6 --icmpv6-type 140/0 -j DROP # Should Be Dropped Unless a Good Case Can Be Made
|
||||
ip6tables -A OUTPUT_ICMPV6 -p icmpv6 --icmpv6-type 141/0 -d ff02::1 -m conntrack --ctstate NEW -m hl --hl-eq 255 -j ACCEPT # Must Not Be Dropped
|
||||
ip6tables -A OUTPUT_ICMPV6 -p icmpv6 --icmpv6-type 142/0 -m hl --hl-eq 255 -j ACCEPT # Must Not Be Dropped
|
||||
# link-local multicast receive notification mssg (need link-local src address, with hop-limit: 1)
|
||||
ip6tables -A OUTPUT_ICMPV6 -p icmpv6 --icmpv6-type 143 -m conntrack --ctstate NEW -m hl --hl-eq 1 -j ACCEPT # Must Not Be Dropped
|
||||
# needed for mobylity
|
||||
ip6tables -A OUTPUT_ICMPV6 -p icmpv6 --icmpv6-type 144/0 -j DROP # Will Be Dropped Anyway
|
||||
ip6tables -A OUTPUT_ICMPV6 -p icmpv6 --icmpv6-type 145/0 -j DROP # Will Be Dropped Anyway
|
||||
ip6tables -A OUTPUT_ICMPV6 -p icmpv6 --icmpv6-type 146/0 -j DROP # Will Be Dropped Anyway
|
||||
ip6tables -A OUTPUT_ICMPV6 -p icmpv6 --icmpv6-type 147 -j DROP # Will Be Dropped Anyway
|
||||
# SEND certificate path notification mssg (received with hop limit = 255)
|
||||
ip6tables -A OUTPUT_ICMPV6 -p icmpv6 --icmpv6-type 148 -m conntrack --ctstate NEW -m hl --hl-eq 255 -j ACCEPT # Must Not Be Dropped
|
||||
ip6tables -A OUTPUT_ICMPV6 -p icmpv6 --icmpv6-type 149 -m conntrack --ctstate NEW -m hl --hl-eq 255 -j ACCEPT # Must Not Be Dropped
|
||||
# multicast routeur discovery mssg (need link-local src address and hop limit = 1)
|
||||
ip6tables -A OUTPUT_ICMPV6 -p icmpv6 --icmpv6-type 151 -m conntrack --ctstate NEW -m hl --hl-eq 1 -j ACCEPT # Must Not Be Dropped
|
||||
ip6tables -A OUTPUT_ICMPV6 -p icmpv6 --icmpv6-type 152 -m conntrack --ctstate NEW -m hl --hl-eq 1 -j ACCEPT # Must Not Be Dropped
|
||||
ip6tables -A OUTPUT_ICMPV6 -p icmpv6 --icmpv6-type 153 -m conntrack --ctstate NEW -m hl --hl-eq 1 -j ACCEPT # Must Not Be Dropped
|
||||
#
|
||||
ip6tables -A OUTPUT_ICMPV6 -p icmpv6 --icmpv6-type 200 -j DROP # private experimentation
|
||||
ip6tables -A OUTPUT_ICMPV6 -p icmpv6 --icmpv6-type 201 -j DROP # private experimentation
|
||||
ip6tables -A OUTPUT_ICMPV6 -p icmpv6 --icmpv6-type 255 -j DROP # error messages ICMPv6
|
||||
# all others are dropped
|
||||
#ip6tables -A OUTPUT_ICMPV6 -p icmpv6 ! --icmpv6-type -j DROP or -j REJECT --reject-with icmp6-adm-prohibited # <= this type seems not correctly supported!
|
||||
ip6tables -A OUTPUT_ICMPV6 -p icmpv6 -j REJECT --reject-with no-route
|
@ -0,0 +1,18 @@
|
||||
ip6tables -A INPUT -p icmpv6 -m conntrack --ctstate INVALID -j DROP
|
||||
ip6tables -A INPUT -p icmpv6 -m conntrack --ctstate RELATED,ESTABLISHED,UNTRACKED -j ACCEPT
|
||||
ip6tables -A INPUT -p icmpv6 -m limit --limit 3/s --limit-burst 7 -j ACCEPT
|
||||
ip6tables -A INPUT -p icmpv6 --icmpv6-type echo-request -m conntrack --ctstate NEW -j ACCEPT
|
||||
ip6tables -A INPUT -p icmpv6 --icmpv6-type echo-request -m conntrack --ctstate NEW -j ACCEPT
|
||||
ip6tables -A INPUT -p icmpv6 --icmpv6-type router-advertisement -m hl --hl-eq 255 -j ACCEPT # Type: 134
|
||||
ip6tables -A INPUT -p icmpv6 --icmpv6-type neighbour-solicitation -m hl --hl-eq 255 -j ACCEPT # Type: 135
|
||||
ip6tables -A INPUT -p icmpv6 --icmpv6-type neighbour-advertisement -m hl --hl-eq 255 -j ACCEPT # Type: 136
|
||||
ip6tables -A INPUT -p icmpv6 -j DROP
|
||||
|
||||
ip6tables -A OUTPUT -p icmpv6 -m conntrack --ctstate INVALID -j DROP
|
||||
ip6tables -A OUTPUT -p icmpv6 -m conntrack --ctstate RELATED,ESTABLISHED,UNTRACKED -j ACCEPT
|
||||
ip6tables -A OUTPUT -p icmpv6 --icmpv6-type echo-request -m conntrack --ctstate NEW -j ACCEPT
|
||||
ip6tables -A OUTPUT -p icmpv6 --icmpv6-type echo-reply -m conntrack --ctstate NEW -j ACCEPT
|
||||
ip6tables -A OUTPUT -p icmpv6 --icmpv6-type router-solicitation -j ACCEPT # Type: 133
|
||||
ip6tables -A OUTPUT -p icmpv6 --icmpv6-type neighbour-solicitation -j ACCEPT # Type: 135
|
||||
ip6tables -A OUTPUT -p icmpv6 --icmpv6-type neighbour-advertisement -j ACCEPT # Type: 136
|
||||
ip6tables -A OUTPUT -p icmpv6 -j DROP
|
@ -0,0 +1,6 @@
|
||||
# avahi
|
||||
pass on egress inet proto udp from any to 224.0.0.251 port mdns allow-opts
|
||||
pass on egress inet6 proto udp from any to ff02::fb port mdns allow-opts
|
||||
# ssdp
|
||||
pass on egress inet proto udp from any to 239.255.255.250 port 1900 allow-opts
|
||||
pass on egress inet6 proto udp from any to { ff02::c, ff05::c, ff08::c } port 1900 allow-opts
|
@ -0,0 +1,16 @@
|
||||
(…)
|
||||
|
||||
icmp_types="{ 8 11 12 }"
|
||||
|
||||
(…)
|
||||
block log
|
||||
pass out
|
||||
(…)
|
||||
|
||||
pass in quick on egress inet proto icmp from any to egress icmp-type 3 code 3
|
||||
pass in quick on egress inet proto icmp from any to egress icmp-type $icmp_types
|
||||
|
||||
pass out quick on egress inet proto icmp from egress to any icmp-type 3 code 3
|
||||
pass out quick on egress inet proto icmp from egress to any icmp-type $icmp_types
|
||||
|
||||
(…)
|
@ -0,0 +1,12 @@
|
||||
(…)
|
||||
|
||||
icmp_block_types="{ 4 6 15 16 17 18 31 32 33 34 35 36 37 38 39 }"
|
||||
|
||||
(…)
|
||||
|
||||
block drop quick on egress inet proto icmp icmp-type 3 code 6
|
||||
block drop in quick on egress inet proto icmp icmp-type 3 code 7
|
||||
block drop quick on egress inet proto icmp icmp-type 3 code 8
|
||||
block drop quick on egress inet proto icmp icmp-type $icmp_block_types
|
||||
|
||||
(…)
|
@ -0,0 +1,7 @@
|
||||
Oct 10 13:15:25.146815 rule 53/(match) block in on axe0: 192.168.1.2.8612 > 192.168.1.255.8612: udp 16
|
||||
Oct 10 13:15:25.146890 rule 53/(match) block in on axe0: 192.168.1.2.8612 > 192.168.1.255.8610: udp 16
|
||||
Oct 10 13:15:25.158437 rule 53/(match) block in on axe0: 192.168.1.2.8612 > 192.168.1.255.8612: udp 16
|
||||
Oct 10 13:15:25.158493 rule 53/(match) block in on axe0: 192.168.1.2.8612 > 192.168.1.255.8610: udp 16
|
||||
Oct 10 13:15:30.007313 rule 53/(match) block in on axe0: 192.168.1.2.4891 > 255.255.255.255.3289: udp 15 [ttl 1]
|
||||
Oct 10 13:15:30.020862 rule 53/(match) block in on axe0: 192.168.1.3.3289 > 192.168.1.2.4891: udp 76
|
||||
Oct 10 13:15:31.171140 rule 53/(match) block in on axe0: 192.168.1.2.17068 > 255.255.255.255.1124: udp 37 [ttl 1]
|
Loading…
Reference in new issue