# Règle IPTABLE pour interdire un réseau

**URL:** <https://www.debian-fr.org/t/regle-iptable-pour-interdire-un-reseau/86330>\
**Category:** Support Debian\
**Created:** [Avril 1, 2022, 2:42 UTC](https://www.debian-fr.org/t/regle-iptable-pour-interdire-un-reseau/86330 "2022-04-01T14:42:19Z")\
**Posts on this page:** 19\
**Page:** 1

<div class="post-metadata">

**Author:** ![fabdunet1313](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/3da27b/32.png) [@fabdunet1313](https://www.debian-fr.org/u/fabdunet1313)\
**Post date:** [Avril 1, 2022, 2:42 UTC](https://www.debian-fr.org/t/regle-iptable-pour-interdire-un-reseau/86330/1 "2022-04-01T14:42:19Z")

</div>

![image](https://www.debian-fr.org/uploads/default/original/2X/0/041fbbb45bd28e79c999cb279028995a36329815.png)

Bonjour,

Je me suis monter un petit server linux sous Debian avec 3 cartes réseaux.  
J’ai activé l’IP FORWARD à 1 et paramétré mon linux et mes postes de travails et tous mes postes et tout le monde communique avec tout le monde.  
J’ai rajouté deux routes sur mon routeur SYNOLOGY afin que le réseau maison et invité aie internet

J’aimerais faire une règle IPTABLE (sachant que de base mes règles sont vides) pour interdire de faire communiquer le réseau invité le réseau server serveurs et le réseau maison.

Je ne connais rien à IPTABLES ? pouvez vous m’aider S’il vos plait.

---

<div class="post-metadata">

**Author:** ![PascalHambourg](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pascalhambourg/32/5837_2.png) [@PascalHambourg](https://www.debian-fr.org/u/PascalHambourg)\
**Post date:** [Avril 1, 2022, 3:32 UTC](https://www.debian-fr.org/t/regle-iptable-pour-interdire-un-reseau/86330/2 "2022-04-01T15:32:17Z")

</div>

Première étape : décrire formellement chaque flux en jeu comme suit :

adresse source ; interface d’entrée ; interface de sortie ; adresse destination ; accepté|bloqué

Une fois cela fait, l’écriture des règles ne sera pas compliquée.

---

<div class="post-metadata">

**Author:** ![fabdunet1313](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/3da27b/32.png) [@fabdunet1313](https://www.debian-fr.org/u/fabdunet1313)\
**Post date:** [Avril 1, 2022, 4:40 UTC](https://www.debian-fr.org/t/regle-iptable-pour-interdire-un-reseau/86330/3 "2022-04-01T16:40:43Z")

</div>

Haaa Salut Pascal 🙂

(Pour le moment je le virtualise et le le mettais en place si sa fonctionne )

Sa va ce faire en trois étapes. si je comprend comment faire la règle (ou mon architecture réseau) en fonction de l’étape 1, j’adapterais mes règles pour les autres étapes.

Etape 1

Je veux que le réseau 10.0.0.0 (ETH1)communique avec le réseau 192.168.0.0 (eth2) mais je ne veux pas que le réseau 10.0.0.0 (ETH1) qu’il communique avec le réseau 172.20.23.0 (ETH3)

- Depuis Eth1 10.0.0.0 /4 communiquer uniquement avec ETH2 192.168.0.0/24 {ACCEPT}
- Depuis Eth1 10.0.0.0 /4 interdire la communication avec le réseau 172,20,23,0 (eth0) {DROP}

---

<div class="post-metadata">

**Author:** ![Zargos](https://www.debian-fr.org/user_avatar/www.debian-fr.org/zargos/32/10889_2.png) [@Zargos](https://www.debian-fr.org/u/Zargos)\
**Post date:** [Avril 1, 2022, 5:39 UTC](https://www.debian-fr.org/t/regle-iptable-pour-interdire-un-reseau/86330/4 "2022-04-01T17:39:23Z")

</div>

Salut sinon c’est facile:

Tu utilises Shorewall.  
Tu défini des zones dans `/etc/shorewall/zones` :

- net =\< internet
- Lan =\> lan maison
- guest =\> Invité

dans le fichier `/etc/shorewall/policy` tu n’as plus qu’à mettre:

```
#SOURCE DEST POLICY LOGLEVEL RATE CONNLIMIT
$FW net ACCEPT
lan net accept
guest net accept
net all DROP $LOG
# The FOLLOWING POLICY MUST BE LAST
all all DROP $LOG

```

et le tour est joué. Aucune règle iptable à definir de plus.

---

<div class="post-metadata">

**Author:** ![PascalHambourg](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pascalhambourg/32/5837_2.png) [@PascalHambourg](https://www.debian-fr.org/u/PascalHambourg)\
**Post date:** [Avril 1, 2022, 5:45 UTC](https://www.debian-fr.org/t/regle-iptable-pour-interdire-un-reseau/86330/5 "2022-04-01T17:45:00Z")

</div>

Comme il faut une règle pour chaque direction, ça pourait donner

```
iptables -A FORWARD -i eth1 -s 10.0.0.0/8 -o eth2 -d 192.168.0.0/24 -j ACCEPT
iptables -A FORWARD -o eth1 -d 10.0.0.0/8 -i eth2 -s 192.168.0.0/24 -j ACCEPT
iptables -A FORWARD -i eth1 -s 10.0.0.0/8 -o eth0 -d 172.20.23.0/24 -j DROP
iptables -A FORWARD -o eth1 -d 10.0.0.0/8 -i eth0 -s 172.20.23.0/24 -j DROP

```

Il reste à fixer le sort par défaut des autres paquets si nécessaire.

```
iptables - P FORWARD DROP
```

---

<div class="post-metadata">

**Author:** ![Zargos](https://www.debian-fr.org/user_avatar/www.debian-fr.org/zargos/32/10889_2.png) [@Zargos](https://www.debian-fr.org/u/Zargos)\
**Post date:** [Avril 1, 2022, 5:46 UTC](https://www.debian-fr.org/t/regle-iptable-pour-interdire-un-reseau/86330/6 "2022-04-01T17:46:12Z")

</div>

> [@PascalHambourg](#):
>
> Il reste à fixer le sort par défaut des autres paquets si nécessaire.
> 
> ```auto
> iptables - P FORWARD DROP
> 
> ```

C’est toujorus nécessaire.  
la dernière règle d’un parefeu doit systématiquement être l’équivalent de :  
`all to all is drop`

---

<div class="post-metadata">

**Author:** ![fabdunet1313](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/3da27b/32.png) [@fabdunet1313](https://www.debian-fr.org/u/fabdunet1313)\
**Post date:** [Avril 1, 2022, 5:47 UTC](https://www.debian-fr.org/t/regle-iptable-pour-interdire-un-reseau/86330/7 "2022-04-01T17:47:19Z")

</div>

Super Merci à tout les deux.  
Je test vos solutions après le sport, suis en trains de me préparé et je vous dit si je suis arrivé.

---

<div class="post-metadata">

**Author:** ![fabdunet1313](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/3da27b/32.png) [@fabdunet1313](https://www.debian-fr.org/u/fabdunet1313)\
**Post date:** [Avril 2, 2022, 2:00 UTC](https://www.debian-fr.org/t/regle-iptable-pour-interdire-un-reseau/86330/8 "2022-04-02T14:00:09Z")

</div>

'Comme il faut une règle pour chaque direction, ça pourait donner

```auto
iptables -A FORWARD -i eth1 -s 10.0.0.0/8 -o eth2 -d 192.168.0.0/24 -j ACCEPT
iptables -A FORWARD -o eth1 -d 10.0.0.0/8 -i eth2 -s 192.168.0.0/24 -j ACCEPT
iptables -A FORWARD -i eth1 -s 10.0.0.0/8 -o eth0 -d 172.20.23.0/24 -j DROP
iptables -A FORWARD -o eth1 -d 10.0.0.0/8 -i eth0 -s 172.20.23.0/24 -j DROP

```

Génial, sa fonctionne, j’ai pas répondu hier au message car j’ai pas touché à ma maquette, mais c’est cette règle que je recherché à mètre en place.

Saurais tu me dire en fonction de mon schéma, les règle la syntaxe des règle IPTABLE pour autoriser uniquement depuis le réseau invité {eth0} d’accédé uniquement à internet (utilisation du port 80, 443 et du DNS} avec le port 10443 qui sert pour une application bien spécifique et interdire tout les autres ?  
je voudrais faire en sorte que sa s’applique uniquement sur eth0 en laissant tout passer sur eth2 et eth1  
j’ai quasiment pas de règle

```
root@q4os-desktop:/home/pi# iptables-save
# Generated by iptables-save v1.8.7 on Sat Apr 2 16:08:53 2022
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A FORWARD -s 10.0.0.0/24 -d 172.0.0.0/8 -i eth1 -o eth2 -j DROP
-A FORWARD -s 10.0.0.0/24 -d 172.0.0.0/8 -i eth1 -o eth2 -j ACCEPT
COMMIT
# Completed on Sat Apr 2 16:08:53 2022
root@q4os-desktop:/home/pi#
```

---

<div class="post-metadata">

**Author:** ![PascalHambourg](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pascalhambourg/32/5837_2.png) [@PascalHambourg](https://www.debian-fr.org/u/PascalHambourg)\
**Post date:** [Avril 2, 2022, 2:44 UTC](https://www.debian-fr.org/t/regle-iptable-pour-interdire-un-reseau/86330/9 "2022-04-02T14:44:48Z")

</div>

> [@fabdunet1313](#):
>
> autoriser uniquement depuis le réseau invité {eth0} d’accédé uniquement à internet (utilisation du port 80, 443 et du DNS} avec le port 10443

Que veux-tu dire par «&nbsp;avec le port 10443&nbsp;» ?

> [@fabdunet1313](#):
>
> j’ai quasiment pas de règle

Les longueurs de préfixes dans ces règles me correspondent pas au schéma, et la seconde règle ne sert à rien puisque tout ce qu’elle pourrait accepter a déjà été bloqué par la première, et de toute façon la politique par défaut est ACCEPT.

---

<div class="post-metadata">

**Author:** ![Zargos](https://www.debian-fr.org/user_avatar/www.debian-fr.org/zargos/32/10889_2.png) [@Zargos](https://www.debian-fr.org/u/Zargos)\
**Post date:** [Avril 2, 2022, 3:21 UTC](https://www.debian-fr.org/t/regle-iptable-pour-interdire-un-reseau/86330/10 "2022-04-02T15:21:01Z")

</div>

> [@fabdunet1313](#):
>
> j’ai quasiment pas de règle
> 
> ```auto
> root@q4os-desktop:/home/pi# iptables-save
> # Generated by iptables-save v1.8.7 on Sat Apr 2 16:08:53 2022
> *filter
> :INPUT ACCEPT [0:0]
> :FORWARD ACCEPT [0:0]
> :OUTPUT ACCEPT [0:0]
> -A FORWARD -s 10.0.0.0/24 -d 172.0.0.0/8 -i eth1 -o eth2 -j DROP
> -A FORWARD -s 10.0.0.0/24 -d 172.0.0.0/8 -i eth1 -o eth2 -j ACCEPT
> COMMIT
> # Completed on Sat Apr 2 16:08:53 2022
> root@q4os-desktop:/home/pi#
> 
> ```

Il te manque une règle pour exclure tout flux qui n’est pas autorisé. C’est même la seule règle qu’il ne faut jamais oublier.

la politique par defaut doit toujours etre DROP, jamais ACCEPT.  
les autorisation doivent être explicite, l’interdiction est implicite par defaut.

---

<div class="post-metadata">

**Author:** ![PascalHambourg](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pascalhambourg/32/5837_2.png) [@PascalHambourg](https://www.debian-fr.org/u/PascalHambourg)\
**Post date:** [Avril 2, 2022, 3:30 UTC](https://www.debian-fr.org/t/regle-iptable-pour-interdire-un-reseau/86330/11 "2022-04-02T15:30:11Z")

</div>

> [@Zargos](#):
>
> la politique par defaut doit toujours etre DROP, jamais ACCEPT.  
> les autorisation doivent être explicite, l’interdiction est implicite par defaut.

Non, pas forcément.

---

<div class="post-metadata">

**Author:** ![Zargos](https://www.debian-fr.org/user_avatar/www.debian-fr.org/zargos/32/10889_2.png) [@Zargos](https://www.debian-fr.org/u/Zargos)\
**Post date:** [Avril 2, 2022, 3:37 UTC](https://www.debian-fr.org/t/regle-iptable-pour-interdire-un-reseau/86330/12 "2022-04-02T15:37:17Z")

</div>

ben en terme de sécurité c’est toujours ce que tu fait: tout est interdit sauf ce qui est explicitement autorisé.

Considerer le fait d’avoir des autorisations implicites ou par defaut, ça s’appelle un trou de securité, autant ne pas mettre un parfeu.

---

<div class="post-metadata">

**Author:** ![fabdunet1313](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/3da27b/32.png) [@fabdunet1313](https://www.debian-fr.org/u/fabdunet1313)\
**Post date:** [Avril 2, 2022, 5:04 UTC](https://www.debian-fr.org/t/regle-iptable-pour-interdire-un-reseau/86330/13 "2022-04-02T17:04:34Z")

</div>

![image](https://www.debian-fr.org/uploads/default/original/2X/a/ab7fbeebcbdb0e123718da114fec7e5b6912a99d.png)

Je ne veux pas mètre de restriction au réseau serveur et au réseau maison, mais uniquement sur le réseau invité.

j’ai un utilisateur qui se connecte au réseau WIFI invité, et je souhaiterais faire une règle IPTABLE pour que tout les utilisateurs du réseau invité ont un accès accès uniquement au au WEB et FTP uniquement après j’adapterais ma règle pour le port 10443.

je ne veux pas par exemple qu’un utilisateur connecté sur le réseau invité accède à du SSH par exemple (que ce soit un serveur SSH de chez lui ou de chez moi), je souhaiterais qu’il puissent utiliser ce réseau pour faire de l’internet uniquement (sortir sur le port 80, 443, 21…).

---

<div class="post-metadata">

**Author:** ![fabdunet1313](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/3da27b/32.png) [@fabdunet1313](https://www.debian-fr.org/u/fabdunet1313)\
**Post date:** [Avril 2, 2022, 5:29 UTC](https://www.debian-fr.org/t/regle-iptable-pour-interdire-un-reseau/86330/14 "2022-04-02T17:29:53Z")

</div>

J’ai pansser à un truc comme ça mais j’ai une erreur de syntaxe

Tout bloquer sur le réseau invité

> iptables -A FORWARD -o eth0 -d 172.20.23.0/8 -p \* DROP

Autoriser le port

> iptables -A FORWARD -o eth0 -d 172.20.23.0/8 -p 80 ACCEPT  
> iptables -A FORWARD -o eth0 -d 172.20.23.0/8 -p 443ACCEPT  
> …

---

<div class="post-metadata">

**Author:** ![PascalHambourg](https://www.debian-fr.org/user_avatar/www.debian-fr.org/pascalhambourg/32/5837_2.png) [@PascalHambourg](https://www.debian-fr.org/u/PascalHambourg)\
**Post date:** [Avril 2, 2022, 6:19 UTC](https://www.debian-fr.org/t/regle-iptable-pour-interdire-un-reseau/86330/15 "2022-04-02T18:19:25Z")

</div>

j’ai suggéré une méthodologie dans mon premier message. Visiblement tu n’en as pas tenu compte. Libre à toi, mais ne compte pas sur moi. Bonne chance.

---

<div class="post-metadata">

**Author:** ![fabdunet1313](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/3da27b/32.png) [@fabdunet1313](https://www.debian-fr.org/u/fabdunet1313)\
**Post date:** [Avril 2, 2022, 7:52 UTC](https://www.debian-fr.org/t/regle-iptable-pour-interdire-un-reseau/86330/16 "2022-04-02T19:52:05Z")

</div>

Je vais tenter ta méthode que tu m’a donner, j’ai aucune maitrise dans ce domaine .je vais me documenter

---

<div class="post-metadata">

**Author:** ![Zargos](https://www.debian-fr.org/user_avatar/www.debian-fr.org/zargos/32/10889_2.png) [@Zargos](https://www.debian-fr.org/u/Zargos)\
**Post date:** [Avril 2, 2022, 8:17 UTC](https://www.debian-fr.org/t/regle-iptable-pour-interdire-un-reseau/86330/17 "2022-04-02T20:17:33Z")

</div>

utilise Shorewall, c’est plus à ta portée.

---

<div class="post-metadata">

**Author:** ![fabdunet1313](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/3da27b/32.png) [@fabdunet1313](https://www.debian-fr.org/u/fabdunet1313)\
**Post date:** [Avril 3, 2022, 5:15 UTC](https://www.debian-fr.org/t/regle-iptable-pour-interdire-un-reseau/86330/18 "2022-04-03T17:15:59Z")

</div>

Merci 🙂  
Je vais regarder.

---

<div class="post-metadata">

**Author:** ![Zargos](https://www.debian-fr.org/user_avatar/www.debian-fr.org/zargos/32/10889_2.png) [@Zargos](https://www.debian-fr.org/u/Zargos)\
**Post date:** [Avril 4, 2022, 8:54 UTC](https://www.debian-fr.org/t/regle-iptable-pour-interdire-un-reseau/86330/19 "2022-04-04T08:54:21Z")

</div>

J’utilise souvent et sur tout mes machines. je peux te donner un coup de main si tu n’y arrives pas.
