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 12-01-2018 09:30:18

joffrey575
Membre
Distrib. : Debian Bullseye
Inscription : 19-12-2016

Apprentissage iptables

Bonjour à tous,

J'aimerais approfondir mes connaissance en iptables, j'utilise uptables-persistent.

Dernièrement j'ai voulu imprimer depuis mon téléphone avec client cups, serveur cups sur rasp sur lequel j'ai ajouté l'imprimante qui a bien été détecté. (J'ai du désactiver mes règles iptables).

L'ouverture du port 631 n'avait pas suffi pour :
1-serveur cups : détecter/associer via l'interface web l'imprimante sur le réseau local 192.168.1.X
2-détecter avec le mobile (client cups) une imprimante associé au serveur cups

Voici mon /etc/iptables/rules.v4

# Generated by iptables-save v1.6.0 on Sun Dec 31 15:22:56 2017
*raw
:PREROUTING ACCEPT [1414:139193]
:OUTPUT ACCEPT [964:185537]
COMMIT
# Completed on Sun Dec 31 15:22:56 2017
# Generated by iptables-save v1.6.0 on Sun Dec 31 15:22:56 2017
*mangle
:PREROUTING ACCEPT [1414:139193]
:INPUT ACCEPT [1401:125545]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [964:185537]
:POSTROUTING ACCEPT [967:185633]
COMMIT
# Completed on Sun Dec 31 15:22:56 2017
# Generated by iptables-save v1.6.0 on Sun Dec 31 15:22:56 2017
*nat
:PREROUTING ACCEPT [15:13748]
:INPUT ACCEPT [2:100]
:OUTPUT ACCEPT [12:771]
:POSTROUTING ACCEPT [12:771]
COMMIT
# Completed on Sun Dec 31 15:22:56 2017
# Generated by iptables-save v1.6.0 on Sun Dec 31 15:22:56 2017
*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [13:1456]

###########################################
################   INPUT   ################  
###########################################

#Allow trafic on internal network
-A INPUT -i lo -j ACCEPT

#Allow ping to internal network
-A INPUT -i eth0 -p icmp -j ACCEPT

#Allow all packets ESTABLISHED,RELATED but not all NEW packets
-A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

#SSH and SFTP
-A INPUT -p tcp -m tcp --dport ssh -m state --state
NEW,RELATED,ESTABLISHED -j ACCEPT

#XMPP
-A INPUT -p tcp -m tcp --dport XXXX -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport XXXX -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport XXXX -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport XXXX -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

#Allow cups
-A INPUT -i eth0 -p UDP --dport 631 -j ACCEPT                        

###########################################
###############   OUTPUT   ################  
###########################################

#-A OUTPUT -o lo -j ACCEPT
#-A OUTPUT -o eth0 -p icmp -j ACCEPT

COMMIT



----------------------------------------

Après j'ai du mal avec ces 3 lignes de code :

:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [13:1456]



Egalement, a t-on besoin de respecifier les états ESTABLISHED,RELATED des autres lignes (tel que XMPP) puisqu'ils sont autorisés avec cette ligne :

#Allow all packets ESTABLISHED,RELATED but not all NEW packets
-A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT



Autrement, je pensais autoriser les transferts de paquets entre les périphériques de mon réseau local, la c'est sans risque!
Enfin, sans intrusion bien sur (je n'ai pas trouvé d'autres solutions pour faire en sorte de faire marcher le service d'impression cups).

Je pensais à la ligne suivante :

-A INPUT -i eth0 -s 192.168.1.0/24 -d 192.168.1.0/24 -j ACCEPT



Si vous avez un support d'apprentissage pour iptables, je suis preneur.

Merci par avance.

Hors ligne

#2 12-01-2018 10:27:28

raleur
Membre
Inscription : 03-10-2014

Re : Apprentissage iptables

Il y a un saut de ligne en trop dans la règle pour SSH.

joffrey575 a écrit :

Après j'ai du mal avec ces 3 lignes de code


Ces trois lignes définissent les politiques par défaut des trois chaînes (de la table filter).

joffrey575 a écrit :

L'ouverture du port 631 n'avait pas suffi pour :1-serveur cups : détecter/associer via l'interface web l'imprimante sur le réseau local 192.168.1.X


Normal, le protocole de communication entre le serveur et l'imprimante n'est pas CUPS mais probablement IPP.

joffrey575 a écrit :

a t-on besoin de respecifier les états ESTABLISHED,RELATED des autres lignes (tel que XMPP) puisqu'ils sont autorisés avec cette ligne


Ça dépend. Ta règle générale ne s'applique qu'aux paquets reçus par l'interface eth0, ce qui n'est pas le cas des règles spécifiques.

joffrey575 a écrit :

Je pensais à la ligne suivante :


Pas suffisant si la détection repose sur la réception de paquets en broadcast limité à l'adresse 255.255.255.255 (à verifier).
Et je ne vois pas l'intérêt de limiter l'adresse destination.


Il vaut mieux montrer que raconter.

Hors ligne

#3 12-01-2018 15:52:51

joffrey575
Membre
Distrib. : Debian Bullseye
Inscription : 19-12-2016

Re : Apprentissage iptables

Il y a un saut de ligne en trop dans la règle pour SSH.



Oui, c'était lors de mon copier/coller par le soft claws-mail.

Ces trois lignes définissent les politiques par défaut des trois chaînes (de la table filter).



D'accord mais que signifie la valeur présente entre crochet ? [0:0] et la valeur [13:1456] pour le cas que j'ai cité au dessus ?

Normal, le protocole de communication entre le serveur et l'imprimante n'est pas CUPS mais probablement IPP.



J'ai l'impression oui mais il n'y a pas que ipp, il y a : ipp, ipps, http, https, ... => donc quelle règle ajouter à iptables pour que mes paquets circulent correctement selon mon besoin ?

Pas suffisant si la détection repose sur la réception de paquets en broadcast limité à l'adresse 255.255.255.255 (à verifier).
Et je ne vois pas l'intérêt de limiter l'adresse destination.



Oui, c'est vrai !!! Alors mes règles ne permettent pas ces paquets de broadcast, je suis déjà bloqué à ce niveau.

Hors ligne

#4 12-01-2018 15:58:02

raleur
Membre
Inscription : 03-10-2014

Re : Apprentissage iptables

joffrey575 a écrit :

que signifie la valeur présente entre crochet ? [0:0] et la valeur [13:1456]


nombre de paquets:nombre d'octets
Ça fait partie des informations fournies par iptables-save, mais peut être omis dans les données fournies à iptables-restore.

joffrey575 a écrit :

J'ai l'impression oui mais il n'y a pas que ipp, il y a : ipp, ipps, http, https, ... => donc quelle règle ajouter à iptables pour que mes paquets circulent correctement selon mon besoin ?


Il faut identifier les flux à autoriser. Capture de trafic, règles LOG... tous les moyens sont bons.


Il vaut mieux montrer que raconter.

Hors ligne

#5 15-01-2018 15:56:10

joffrey575
Membre
Distrib. : Debian Bullseye
Inscription : 19-12-2016

Re : Apprentissage iptables

As-tu un moyen d'analyse de paquets par log ? avec un filtre pour avoir rapidement les infos lisible par le commun des gens si tu as.

Par ailleurs il parait qu'il faut enlever les règles RELATED car ça pourrait être problématique. On le bannit ou on le gère par conntrack ? C'est compliqué peut être

Dernière modification par joffrey575 (15-01-2018 15:57:39)

Hors ligne

#6 15-01-2018 20:26:06

raleur
Membre
Inscription : 03-10-2014

Re : Apprentissage iptables

joffrey575 a écrit :

As-tu un moyen d'analyse de paquets par log ? avec un filtre pour avoir rapidement les infos lisible par le commun des gens si tu as.


Pour avoir des logs, il faut utiliser la cible LOG dans des règles iptables. Les paquets sont loggés dans les messages du noyau.
Le seul filtre que je connais et utilise, c'est le cerveau.

joffrey575 a écrit :

Par ailleurs il parait qu'il faut enlever les règles RELATED car ça pourrait être problématique.


En toute rigueur, il y a quelques types ICMP (redirect, source-quench) qu'il ne faudrait pas accepter même dans l'état RELATED. Pour le reste, on peut créer une règle un peu plus spécifique pour chaque flux RELATED qu'on s'attend à voir passer. Mais bannir l'état RELATED est une ânerie en soi, au même titre que bannir l'état NEW. De plus, avec un noyau récent qui nécessite de marquer les flux maîtres avec la cible CT et le helper de protocole, seuls les flux liés correspondants auront l'état RELATED.


Il vaut mieux montrer que raconter.

Hors ligne

Pied de page des forums