Règle IPTABLE pour interdire un réseau

image

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.

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.

Haaa Salut Pascal :slight_smile:

(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}

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.

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

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

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é.

'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

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#

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

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.

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.

Non, pas forcément.

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.

image

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…).

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

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.

1 J'aime

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

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

Merci :slight_smile:
Je vais regarder.

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