logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 19-03-2016 18:40:20

anonyme-15
Invité

IPtables: bloquer tous les ports sauf

Bonjour,

Pour éviter les clics épileptiques quand je bosse - question d'attention -, je cherche à me bloquer tout accès au net saut pour les mails (pop et imap entrants et sortants), en rendant le contournement le plus pénible possible.

Comme je suis une bille en iptables, placer cette règle trouvée sur le net

iptables -m owner -I OUTPUT --uid-owner stef -j REJECT --reject-with icmp-admin-prohibited



et placée dans le fichier /etc/rc.local m'empêche d'accéder au net complètement. Je ne cherche pas à savoir comment recharger les règles iptables, ce qui m'oblige à redémarrer la machine si je veux rouvrir l'accès au net.

Quelle serait la règle pour empêcher l'accès au net à tous les utilisateurs sauf aux ports nécessaires aux mails (pop et imap entrants et sortants, comme déjà dit) ?

Si quelqu'un connaît un tuto réellement pédagogique, je suis preneur aussi, ou un autre moyen pour arriver au même effet.

Merci !

Dernière modification par anonyme-15 (19-03-2016 18:41:35)

#2 19-03-2016 19:22:03

sogal
Black Metal Modo
Lieu : Nord Isère
Distrib. : openSUSE Leap 42.3
Noyau : Linux 4.4.76
(G)UI : GNOME
Inscription : 09-05-2013
Site Web

Re : IPtables: bloquer tous les ports sauf

Bonsoir :

Pour bloquer tout le trafic sortant :

iptables -t filter -P OUTPUT DROP



Pour autoriser les ports utilisés par les protocoles POP et IMAP :

iptables -A OUTPUT -m multiport -p tcp --dport 110,143,993,995 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -m multiport -p tcp --sport 110,143,993,995 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m multiport -p tcp --dport 587,993 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -m multiport -p tcp --sport 587,993 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
 



De la doc ici : https://debian-facile.org/doc:reseau:ip … ie-icedove


1485418338.png Hello IT ! Have you tried turning it off and on again ?

Hors ligne

#3 19-03-2016 20:15:42

anonyme-15
Invité

Re : IPtables: bloquer tous les ports sauf

Merci et pour l'info et pour le tuto !

Pour une raison qui m'échappe, quel que soit l'ordre des règles en /etc/rc.local, la règle de blocage (DROP) prend le pas sur les autres.

J'ai contourné le problème en interdisant les ports de la navigation web. Il est rare que je sois distrait par un transfert ftp... Soit, d'après le tuto dont je n'ai pas essayé de simplifier les commandes:

iptables -t filter -A OUTPUT -p tcp -m multiport\
 --dports 80,443,8000 -m conntrack --ctstate\
 NEW,RELATED,ESTABLISHED -j DROP
 
iptables -t filter -A INPUT -p tcp -m multiport\
 --sports 80,443,8000 -m conntrack --ctstate\
 RELATED,ESTABLISHED -j DROP



Ca marche pour mes besoins et mes compétences.

#4 19-03-2016 20:22:47

raleur
Membre
Inscription : 03-10-2014

Re : IPtables: bloquer tous les ports sauf

Petites corrections sur la réponse de Sogal :
- Ces paquets ne sont jamais dans l'état RELATED, donc on peut supprimer cet état de la liste.
- Si INPUT est laissée par défaut à ACCEPT, les règles dans cette chaînes sont inutiles.
- Le port 993 est en doublon.
- Le port 587 n'est utilisé ni pour POP ni pour IMAP mais pour Submission, un sous-ensemble de SMTP utilisé entre un client et un relais d'envoi Pour être complet, on peut y ajouter les ports 25 et 465 pour SMTP avec ou sans chiffrement explicite ou implicite.
- A moins que les serveurs de mail soient désignés par adresse IP ou figurent dans /etc/hosts, il faudra probablement aussi autoriser les requêtes DNS (TCP et UDP port 53).

Dernière modification par raleur (19-03-2016 20:26:03)


Il vaut mieux montrer que raconter.

Hors ligne

#5 19-03-2016 20:30:20

raleur
Membre
Inscription : 03-10-2014

Re : IPtables: bloquer tous les ports sauf

A Anonyme-15 :
Cette règle suffisait pour bloquer l'accès au web :

iptables -t filter -A OUTPUT -p tcp -m multiport --dports 80,443,8000 -j DROP


Inutile de vérifier l'état (state) et inutile de bloquer les paquets de réponse entrants puisque les paquets de requête sortants sont bloqués, il n'y aura pas de réponse.

EDIT : quel site web utilise le port 8000 ?

Dernière modification par raleur (19-03-2016 20:32:03)


Il vaut mieux montrer que raconter.

Hors ligne

#6 19-03-2016 20:37:08

bendia
Chadministrateur
Distrib. : openSUSE Tumbleweed, Buster
Noyau : Linux 5.9.1-2-default + Linux 4.19.0-12-amd64
(G)UI : Gnome + Console et un peu Fluxbox
Inscription : 20-03-2012
Site Web

Re : IPtables: bloquer tous les ports sauf

Salut smile

@raleur : Peux tu expliciter un peu plus ça ?

raleur a écrit :

- Ces paquets ne sont jamais dans l'état RELATED, donc on peut supprimer cet état de la liste.

Voilà ce que je trouve rapidement sur l'état des paquets, mais je ne trouve rien en français smile


Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.

Hors ligne

#7 19-03-2016 20:56:46

raleur
Membre
Inscription : 03-10-2014

Re : IPtables: bloquer tous les ports sauf

Oublie l'analogie avec le téléphone, elle est plus confuse qu'autre chose.

En revanche la description des états juste en dessous est correcte et, il me semble, compréhensible.
A partir du premier paquet de réponse inclus, tous les paquets appartenant à une connexion sont dans l'état ESTABLISHED.

Les paquets dans l'état RELATED sont de deux types :
- les messages d'erreur ICMP émis en réaction à un paquet précédent ;
- les paquets qui créent une nouvelle connexion (et devraient donc être dans l'état NEW) liée à une connexion existante dans certains protocoles complexes comme FTP et SIP. Généralement la connexion initiale est une connexion de contrôle sur un port fixe et la connexion liée est une connexion de données sur un port dynamique, c'est pourquoi il serait difficile de l'identifier sans cet état particulier. Seul le premier paquet est dans l'état RELATED, les suivants sont dans l'état ESTABLISHED. L'identification et le classement de ce type de paquet dans l'état RELATED nécessite l'activation d'un module spécifique du noyau chargé de la reconnaissance du protocole concerné. Tous les protocoles complexes ne sont pas pris en charge.

Ai-je été assez clair ?

Il vaut mieux montrer que raconter.

Hors ligne

#8 19-03-2016 21:04:21

bendia
Chadministrateur
Distrib. : openSUSE Tumbleweed, Buster
Noyau : Linux 5.9.1-2-default + Linux 4.19.0-12-amd64
(G)UI : Gnome + Console et un peu Fluxbox
Inscription : 20-03-2012
Site Web

Re : IPtables: bloquer tous les ports sauf

Pour un béotien comme moi, pas trop hmm Mais je pense que pour le coup, c'est plus dû à ma méconnaissance qu'a ton explication big_smile Si je veux comprendre les bases de ton explication, il faut que je cherches des ressources sur TCP/IP ou autre chose (d'une façon plus pragmatique, quels mot-clés utiliser dans un moteur de recherche) ?

Ben
___________________
La seule question bête, c'est celle qu'on ne pose pas.

Hors ligne

#9 19-03-2016 22:19:21

raleur
Membre
Inscription : 03-10-2014

Re : IPtables: bloquer tous les ports sauf

L'article "TCP" sur Wikipédia.
Le chapitre sur le suivi de connexion dans "iptables tutorial" (une traduction en français existe).

Il vaut mieux montrer que raconter.

Hors ligne

Pied de page des forums