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

#26 27-04-2019 15:38:29

abumbra
Membre
Inscription : 26-04-2019

Re : ip6tables configuration

Merci encore.

Donc même si tout marche sans autoriser l'OUTPUT, j'aurai plutôt intérêt à l'accepter, ou au risque de potentiels problèmes si une appli en a besoin ?

ip6tables -A INPUT -p icmpv6 --icmpv6-type echo-request  --length 0:85 --limit 2/s -j ACCEPT  te sembles correct ?

Prends ton temps, je pense que "l'urgence" est passée, ce que j'ai là est déjà nettement mieux que ce que j'avais avant !

Au passage, un autre lien https://serverfault.com/questions/61431 … -requests#

Où là il nous met un icmpv6 drop après  ses règles, partant du principe j'accepte ce qui m'intérresse avant de dropper le reste.

Hors ligne

#27 30-04-2019 15:19:25

raleur
Membre
Inscription : 03-10-2014

Re : ip6tables configuration

J'ai le temps de répondre à tes questions sur les liens que tu as fournis.

https://resources.sei.cmu.edu/tools/dow … _rules.txt

abumbra a écrit :

la personne indique un ip6tables -A INPUT -p icmpv6 -j DROP avant la suite de ses règles, et tout fonctionne (la personne semble avoir un doute sur si la policy par défaut d'imcpv6 est drop, je comprend pas...)


Le DROP ne concerne que les paquets ICMPv6, et les règles suivantes de la chaîne INPUT concernent d'autres protocoles (TCP, UDP) donc pas d'interférence.
La règle DROP avec la politique DROP, c'est juste ceinture et bretelles. Ça évite aussi de parcourir le reste des règles de la chaîne pour rien sachant qu'aucune ne peut accepter de paquet ICMPv6. Mais quand ce n'est pas un paquet ICMPv6, ça fait une règle de plus à examiner pour rien. Donc bof.

abumbra a écrit :

Aussi : icmpv6 --icmpv6-type redirect -j REJECT : quel intérêt si policy drop ?


La cible REJECT ne fait pas que bloquer le paquet, elle renvoie aussi un paquet en réponse ( par défaut, un message d'erreur ICMPv6 port-unreachable).
Je ne vois pas du tout l'intérêt de cette règle qui s'applique aux paquets ICMPv6 de type redirect sortants. D'une part c'est le noyau qui émet ce type de paquet, et il n'a rien à faire de recevoir un message d'erreur de lui-même en réponse, contrairement à un processus en espace utilisateur. D'autre part le noyau n'émet ce type de message ICMPv6 redirect que s'il est configuré en routeur IPv6, et normalement on veut qu'un routeur puisse émettre ce type de message. Même chose pour le type router-advertisement.

abumbra a écrit :

Pourquoi ip6tables -A OUTPUT -p icmpv6 --icmpv6-type parameter-problem -j ACCEPT    si après : ip6tables -A OUTPUT -p icmpv6 -j ACCEPT ?!


Encore ceinture et bretelles, je suppose. Les types indispensables sont explicitement acceptés au cas où on changerait d'avis et on ne voudrait plus accepter tous les types ICMPv6.

J'ajoute les remarques suivantes.

# Allow localhost traffic. This rule is for all protocols.
ip6tables -A INPUT -s ::1 -d ::1 -j ACCEPT
 


Si l'adresse de loopback ::1 ne peut être utilisée que sur l'interface de loopback lo, la réciproque n'est pas vraie : toutes les adresses locales configurées sur d'autres interfaces peuvent être utilisées sur l'interface de loopback. Cette règle est donc trop restrictive, et trop laxiste puisqu'elle ne vérifie pas l'interface d'entrée.

# The REJECT is for politeness on the local network.
ip6tables -A INPUT -m multiport -p tcp --dport $blocked_tcp_ports -m hl --hl-eq 255 -j REJECT
ip6tables -A OUTPUT -m multiport -p tcp --dport $blocked_tcp_ports -m hl --hl-eq 255 -j REJECT


Je suppose que le but est de refuser poliment la demande de connexion lorsqu'elle provient du réseau local au lieu de la bloquer silencieusement. REJECT permet d'informer l'émetteur immédiatement au lieu de le laisser attendre jusqu'au time-out. Mais ça ne marche pas car les paquets émis sur le réseau local n'ont pas forcément un hop limit à 255 (valeur maxi). Les paquets de neighbour discovery sont une exception. Le hop limit initial est plutôt à 64.

https://serverfault.com/questions/61431 … -requests#

abumbra a écrit :

Où là il nous met un icmpv6 drop après  ses règles, partant du principe j'accepte ce qui m'intérresse avant de dropper le reste.


Ça marche quelle que soit la politique par défaut de la chaîne INPUT qui n'est pas spécifiée dans l'extrait.


Il vaut mieux montrer que raconter.

Hors ligne

#28 01-05-2019 07:09:51

abumbra
Membre
Inscription : 26-04-2019

Re : ip6tables configuration

Merci ! Je comprend bien mieux.

Voilà donc le iptables/ip6tables appliquant tous les conseils que l'on m'a donné :


#!/bin/bash
#iptables-restore < /etc/iptables.test.rules

iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

## On drop les scans XMAS et NULL.
iptables -A INPUT -p tcp --tcp-flags FIN,URG,PSH FIN,URG,PSH -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP

# Dropper silencieusement tous les paquets broadcastés.
iptables -A INPUT -m pkttype --pkt-type broadcast -j DROP
 
# Droping all invalid packets
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state INVALID -j DROP
iptables -A OUTPUT -m state --state INVALID -j DROP
 
# Autorise les connexions déjà établies et localhost      
iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT   
iptables -A OUTPUT -m state --state ESTABLISHED -j ACCEPT  
iptables -A INPUT -i lo -j ACCEPT


#TOR
iptables -A OUTPUT -p tcp -m tcp --dport 9050 -m state --state NEW -j ACCEPT

# ICMP (Ping)                  
iptables -A INPUT -p icmp -j DROP          
iptables -A OUTPUT -p icmp -j DROP
   
# DNS                    
iptables -A OUTPUT -p tcp --dport 53 -m state --state NEW -j ACCEPT        
iptables -A OUTPUT -p udp --dport 53 -m state --state NEW -j ACCEPT          
 
# HTTP                     
iptables -A OUTPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
 
# HTTPS
iptables -A OUTPUT -p tcp --dport 443 -m state --state NEW -j ACCEPT         

# Mail SMTP
iptables -A OUTPUT -p tcp --dport 25 -m state --state NEW -j ACCEPT  

#Transmission
iptables -A INPUT -p udp --dport 51413 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -p udp --sport 51413 -m state --state NEW -j ACCEPT
   
# NTP (horloge du serveur)
iptables -A OUTPUT -p udp --dport 123 -m state --state NEW -j ACCEPT 

# On log les paquets en entrée.
iptables -A INPUT -j LOG

# On log les paquets en sortie.
iptables -A OUTPUT -j LOG
 
# On log les paquets forward.
iptables -A FORWARD -j LOG


ip6tables -F
ip6tables -X
ip6tables -t nat -F
ip6tables -t nat -X
ip6tables -t mangle -F
ip6tables -t mangle -X
ip6tables -P INPUT DROP
ip6tables -P FORWARD DROP
ip6tables -P OUTPUT DROP

## On drop les scans XMAS et NULL.
ip6tables -A INPUT -p tcp --tcp-flags FIN,URG,PSH FIN,URG,PSH -j DROP
ip6tables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
ip6tables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
ip6tables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP

# Dropper silencieusement tous les paquets broadcastés.
ip6tables -A INPUT -m pkttype --pkt-type broadcast -j DROP
 
# Droping all invalid packets
ip6tables -A INPUT -m state --state INVALID -j DROP
ip6tables -A FORWARD -m state --state INVALID -j DROP
ip6tables -A OUTPUT -m state --state INVALID -j DROP
 
# Autorise les connexions déjà établies et localhost      
ip6tables -A INPUT -m state --state ESTABLISHED -j ACCEPT  
ip6tables -A OUTPUT -m state --state ESTABLISHED -j ACCEPT  
ip6tables -A INPUT -i lo -j ACCEPT


ip6tables -A INPUT -p icmpv6 --icmpv6-type router-advertisement -m state --state UNTRACKED -m hl --hl-eq 255 -j ACCEPT
ip6tables -A INPUT -p icmpv6 --icmpv6-type neighbour-advertisement -m state --state UNTRACKED -m hl --hl-eq 255 -j ACCEPT
ip6tables -A INPUT -p icmpv6 --icmpv6-type neighbour-solicitation -m state --state UNTRACKED -m hl --hl-eq 255 -j ACCEPT
ip6tables -A OUTPUT -p icmpv6 --icmpv6-type router-solicitation -m state --state UNTRACKED -m hl --hl-eq 255 -j ACCEPT
ip6tables -A OUTPUT -p icmpv6 --icmpv6-type neighbour-advertisement -m state --state UNTRACKED -m hl --hl-eq 255 -j ACCEPT
ip6tables -A OUTPUT -p icmpv6 --icmpv6-type neighbour-solicitation -m state --state UNTRACKED -m hl --hl-eq 255 -j ACCEPT
ip6tables -A INPUT -p icmpv6 -j DROP
ip6tables -A OUTPUT -p icmpv6 -j DROP

#TOR
ip6tables -A OUTPUT -p tcp -m tcp --dport 9050 -m state --state NEW -j ACCEPT
   
# DNS                    
ip6tables -A OUTPUT -p tcp --dport 53  -m state --state NEW -j ACCEPT        
ip6tables -A OUTPUT -p udp --dport 53  -m state --state NEW -j ACCEPT          

# HTTP                     
ip6tables -A OUTPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT       
 
# HTTPS
ip6tables -A OUTPUT -p tcp --dport 443 -m state --state NEW -j ACCEPT        

# Mail SMTP
ip6tables -A OUTPUT -p tcp --dport 587 -m state --state NEW -j ACCEPT

#Transmission
ip6tables -A INPUT -p udp --dport 51413 -m state --state NEW -j ACCEPT
ip6tables -A OUTPUT -p udp --sport 51413 -m state --state NEW -j ACCEPT
 
# NTP (horloge du serveur)
ip6tables -A OUTPUT -p udp --dport 123 -m state --state NEW -j ACCEPT

# On log les paquets en entrée.
ip6tables -A INPUT -j LOG

# On log les paquets en sortie.
ip6tables -A OUTPUT -j LOG
 
# On log les paquets forward.
ip6tables -A FORWARD -j LOG

exit 0

 



Il y a probablement des choses redondantes, mais d'un strict point de vue sécurité, je ne pense pas pouvoir faire mieux, je me trompe ?

Hors ligne

#29 01-05-2019 08:39:14

raleur
Membre
Inscription : 03-10-2014

Re : ip6tables configuration

Les règles acceptant les types d'erreur ICMP(v6) dans l'état RELATED ont disparu.

# Dropper silencieusement tous les paquets broadcastés.
ip6tables -A INPUT -m pkttype --pkt-type broadcast -j DROP


Le protocole IPv6 n'utilise pas les paquets de type broadcast donc cette règle est inutile.


Il vaut mieux montrer que raconter.

Hors ligne

#30 01-05-2019 15:50:32

abumbra
Membre
Inscription : 26-04-2019

Re : ip6tables configuration

Parce que tout fonctionne sans, après pas mal de tests !

C'est le strict "minimum légal" pour que ça fonctionne, donc hop. Un intérêt à autoriser le reste ? ça m'évite d'avoir à configurer des limites en plus, alors que je n'étais pas sûr de mes chiffres.

Ok, ça vient du copier coller avec iptables, je dégage ça.

Hors ligne

#31 01-05-2019 16:01:07

raleur
Membre
Inscription : 03-10-2014

Re : ip6tables configuration

Certes, bloquer les messages d'erreur ICMP(v6) ne cause pas de problème tant qu'il n'y pas de condition provoquant l'envoi de ces messages. Mais si tes paquets doivent passer par un chemin qui nécessite de réduire la taille des paquets et que tu bloques les messages packet-too-big, ça va marcher beaucoup moins bien. Et si une destination est injoignable, tu n'en seras pas averti puisque tu bloques les messages destination-unreachable et devras attendre un time-out.

Dernière modification par raleur (01-05-2019 16:01:49)


Il vaut mieux montrer que raconter.

Hors ligne

#32 01-05-2019 18:02:52

abumbra
Membre
Inscription : 26-04-2019

Re : ip6tables configuration

Ok, donc plutôt intérêt à les remettre. Du coup, les limites que j'avais fixées précédemment étaient correctes, avant que je les remettes dans mon script ?

Hors ligne

#33 01-05-2019 18:26:32

raleur
Membre
Inscription : 03-10-2014

Re : ip6tables configuration

La mise en place d'une limite ne concerne que le ping (echo-request), pas les types d'erreur.

Il vaut mieux montrer que raconter.

Hors ligne

#34 01-05-2019 18:50:56

abumbra
Membre
Inscription : 26-04-2019

Re : ip6tables configuration

Que j'avais supprimé également, d'où ma question.

Pas de limites sur le reste.

Hors ligne

#35 01-05-2019 19:33:19

raleur
Membre
Inscription : 03-10-2014

Re : ip6tables configuration

Le ping n'est pas indispensable. Si tu veux l'accepter, tu peux fixer les limites de taille et de fréquence comme tu veux.
Dans mon cas, le but serait de limiter la bande passante montante (débit asymétrique ADSL) consommée en répondant au ping.

Il vaut mieux montrer que raconter.

Hors ligne

#36 02-05-2019 08:24:33

abumbra
Membre
Inscription : 26-04-2019

Re : ip6tables configuration

Ok !

ip6tables -A INPUT -p icmpv6 --icmpv6-type destination-unreachable -m state --state RELATED -j ACCEPT
ip6tables -A INPUT -p icmpv6 --icmpv6-type packet-too-big -m state --state RELATED -j ACCEPT
ip6tables -A INPUT -p icmpv6 --icmpv6-type time-exceeded -m state --state RELATED -j ACCEPT
ip6tables -A INPUT -p icmpv6 --icmpv6-type parameter-problem -m state --state RELATED -j ACCEPT

ip6tables -A OUTPUT -p icmpv6 --icmpv6-type destination-unreachable -m state --state RELATED -j ACCEPT
ip6tables -A OUTPUT -p icmpv6 --icmpv6-type packet-too-big -m state --state RELATED -j ACCEPT
ip6tables -A OUTPUT -p icmpv6 --icmpv6-type time-exceeded -m state --state RELATED -j ACCEPT
ip6tables -A OUTPUT -p icmpv6 --icmpv6-type parameter-problem -m state --state RELATED -j ACCEPT

ip6tables -A INPUT -p icmpv6 --icmpv6-type router-advertisement -m state --state RELATED -m hl --hl-eq 255 -j ACCEPT
ip6tables -A INPUT -p icmpv6 --icmpv6-type router-solicitation -m state --state RELATED -m hl --hl-eq 255 -j ACCEPT
ip6tables -A INPUT -p icmpv6 --icmpv6-type neighbour-advertisement -m state --state RELATED -m hl --hl-eq 255 -j ACCEPT

ip6tables -A OUTPUT -p icmpv6 --icmpv6-type router-advertisement -m state --state RELATED -m hl --hl-eq 255 -j ACCEPT
ip6tables -A OUTPUT -p icmpv6 --icmpv6-type router-solicitation -m state --state RELATED -m hl --hl-eq 255 -j ACCEPT
ip6tables -A OUTPUT -p icmpv6 --icmpv6-type neighbour-solicitation -m state --state RELATED -m hl --hl-eq 255 -j ACCEPT

ip6tables -A INPUT -p icmpv6 -j DROP
ip6tables -A OUTPUT -p icmpv6 -j DROP


Quelque chose comme ça te parait pas mal ?

Hors ligne

#37 02-05-2019 09:01:40

raleur
Membre
Inscription : 03-10-2014

Re : ip6tables configuration

Les types neighbor discovery ont l'état UNTRACKED, pas RELATED.
Il manque l'acceptation de neighbour-solicitation en INPUT et neighbour-advertisement en OUTPUT.
Un hôte non routeur n'a pas besoin d'accepter router-solicitation en INPUT ni router-advertisement en OUTPUT.

Il vaut mieux montrer que raconter.

Hors ligne

#38 02-05-2019 09:31:48

abumbra
Membre
Inscription : 26-04-2019

Re : ip6tables configuration

Mes excuses, j'ai fait un copier coller du message où j'avais fait l'erreur. Et je me suis mélangé les pinceaux. En direct de mon fichier iptables :

ip6tables -A INPUT -p icmpv6 --icmpv6-type destination-unreachable -m state --state RELATED -j ACCEPT
ip6tables -A INPUT -p icmpv6 --icmpv6-type packet-too-big -m state --state RELATED -j ACCEPT
ip6tables -A INPUT -p icmpv6 --icmpv6-type time-exceeded -m state --state RELATED -j ACCEPT
ip6tables -A INPUT -p icmpv6 --icmpv6-type parameter-problem -m state --state RELATED -j ACCEPT

ip6tables -A OUTPUT -p icmpv6 --icmpv6-type destination-unreachable -m state --state RELATED -j ACCEPT
ip6tables -A OUTPUT -p icmpv6 --icmpv6-type packet-too-big -m state --state RELATED -j ACCEPT
ip6tables -A OUTPUT -p icmpv6 --icmpv6-type time-exceeded -m state --state RELATED -j ACCEPT
ip6tables -A OUTPUT -p icmpv6 --icmpv6-type parameter-problem -m state --state RELATED -j ACCEPT

ip6tables -A INPUT -p icmpv6 --icmpv6-type router-advertisement -m state --state UNTRACKED -m hl --hl-eq 255 -j ACCEPT
ip6tables -A INPUT -p icmpv6 --icmpv6-type neighbour-advertisement -m state --state UNTRACKED -m hl --hl-eq 255 -j ACCEPT
ip6tables -A INPUT -p icmpv6 --icmpv6-type neighbour-solicitation -m state --state UNTRACKED -m hl --hl-eq 255 -j ACCEPT
ip6tables -A OUTPUT -p icmpv6 --icmpv6-type router-solicitation -m state --state UNTRACKED -m hl --hl-eq 255 -j ACCEPT
ip6tables -A OUTPUT -p icmpv6 --icmpv6-type neighbour-advertisement -m state --state UNTRACKED -m hl --hl-eq 255 -j ACCEPT
ip6tables -A OUTPUT -p icmpv6 --icmpv6-type neighbour-solicitation -m state --state UNTRACKED -m hl --hl-eq 255 -j ACCEPT

ip6tables -A INPUT -p icmpv6 -j DROP
ip6tables -A OUTPUT -p icmpv6 -j DROP

Mieux ?

Hors ligne

#39 02-05-2019 09:47:22

raleur
Membre
Inscription : 03-10-2014

Re : ip6tables configuration

Oui. C'est le minimum pour un hôte non routeur. Ensuite tu acceptes ce dont tu as besoin.

Il vaut mieux montrer que raconter.

Hors ligne

#40 02-05-2019 09:52:15

abumbra
Membre
Inscription : 26-04-2019

Re : ip6tables configuration

Parfait.

Et bien merci encore, grâce à toi, super iptables.

Dernière petite question, vois-tu d'autres software à configurer ? Je n'ai pas configuré fail2ban en l'absence d'ssh etc., j'ai configuré psad mais qui finalement ne me rapporte évidemment aucune alerte vu que tout est filtré par iptables. D'autres choses ?

Hors ligne

#41 02-05-2019 10:03:40

raleur
Membre
Inscription : 03-10-2014

Re : ip6tables configuration

Non.

Il vaut mieux montrer que raconter.

Hors ligne

#42 03-05-2019 16:27:52

abumbra
Membre
Inscription : 26-04-2019

Re : ip6tables configuration

Bonjour !

Je reviens à la charge. On vient de me faire remarquer que mon script n'était pas bon, que je devrais utiliser iptables -save et -restore plutôt, afin qu'il n'y ait pas de période de latence entre la connexion au réseau et l'application des règles.

Qu'en penses tu ?

Aussi, pas directement en lien, mais l'un des articles que l'on m'a conseillé de lire quand à l'application du script http://sfvlug.editthis.info/wiki/Things … es-restore et https://gist.github.com/Thermi/70c9d77d … f86f59f587 mentionne que les outils netstat etc. sont à éviter puisque plus maintenu, et qu'il faut passer à leur récentes alternatives. Qu'en penses tu ?

EDIT : on vient de me faire remarquer aussi que  "Les règles de log me semblent un poil absurdes, n'importe qui pourrait mettre la machine à genoux en visant des ports non-autorisés. Autant en OUTPUT en mode "parano" ça peut se comprendre, autant en INPUT c'est prendre des risques"

Merci d'avance !

Dernière modification par abumbra (03-05-2019 16:34:24)

Hors ligne

#43 03-05-2019 18:56:05

raleur
Membre
Inscription : 03-10-2014

Re : ip6tables configuration

abumbra a écrit :

On vient de me faire remarquer que mon script n'était pas bon, que je devrais utiliser iptables -save et -restore plutôt, afin qu'il n'y ait pas de période de latence entre la connexion au réseau et l'application des règles.


Avec le tact habituel qui me caractérise, je vais répondre que c'est une grosse connerie. Ensuite, je vais nuancer. Faut quand même rester constructif, hein.

Certes, l'ajout de règles individuelles avec iptables -A prend plus de temps que l'importation d'un jeu de règles complet avec iptables-restore. Pourquoi ? Parce que pour ajouter une règle dans une table, iptables doit récupérer le contenu de la table complète du noyau (donc l'équivalent d'un iptables-save -t <table>), y ajouter la règle et réinjecter le tout dans la table du noyau (donc l'équivalent d'un iptables-restore -t <table>). Mais pour un jeu de quelques dizaines de règles, ça ne fait pas une grosse différence.

Cependant, le temps de mise en place du jeu de règles importe peu ; ce qui importe, c'est qu'il soit en place avant d'activer le réseau. Si on ne peut pas garantir ce séquencement, alors quel que soit le temps d'exécution du script il risque d'y avoir un intervalle de temps pendant lequel le réseau est actif mais pas les règles iptables. La question importante est donc : comment ton script est-il exécuté ?

abumbra a écrit :

Les règles de log me semblent un poil absurdes, n'importe qui pourrait mettre la machine à genoux en visant des ports non-autorisés


La remarque est justifiée. Compte tenu de la bande passante du réseau, la vitesse du processeur et du disque et l'espace de stockage disponible, si le nombre de paquets par seconde à traiter est susceptible de saturer les ressources de la machine, il est souhaitable de limiter les logs.


Il vaut mieux montrer que raconter.

Hors ligne

#44 03-05-2019 19:09:18

abumbra
Membre
Inscription : 26-04-2019

Re : ip6tables configuration

Ok. Je verrais demain comment cela fonctionne et je te posterai ce que j'ai fait, si ça te va. ça ne coute rien d'utiliser cette méthode, donc si elle est plus optimale.

J'utilise un /etc/network/if-pre-up.d/iptables. Cette méthode est toujours valable et permet bien la mise en place des règles avant la connexion au réseau ?

Ah. Mince. Du coup, j'ai un problème. On m'a conseillé de ne garder que les logs en output et forward, afin de ne pas risquer de saturer avec les logs input. Ceci dit, j'utilise psad, qui m'a d'ailleurs bien aidé lors de la configuration d'iptables en m'indiquant ce qui passait encore.

Sauf que pour que psad fonctionne, il a besoin que l'input soit logué. J'impose une limite sur ma ligne LOG ? Je ne vois que ça. Mais pas sûr que ça fonctionne avec psad.

Hors ligne

#45 03-05-2019 19:39:23

raleur
Membre
Inscription : 03-10-2014

Re : ip6tables configuration

abumbra a écrit :

J'utilise un /etc/network/if-pre-up.d/iptables. Cette méthode est toujours valable et permet bien la mise en place des règles avant la connexion au réseau ?


Attention : les scripts placés dans /etc/network/if-pre-up.d sont exécutés plusieurs fois : une fois quand ifup est exécuté avec l'option --all, et une fois pour chaque interface activée (donc trois fois avec les interfaces de loopback et ethernet). Cf. man interfaces pour les détails. D'autre part ils sont exécutés avant l'activation des interfaces configurées par ifupdown, mais pas forcément avant l'activation des interfaces gérées par d'autres systèmes (Wicd, NetworkManager...).

Dernière modification par raleur (03-05-2019 19:39:56)


Il vaut mieux montrer que raconter.

Hors ligne

#46 03-05-2019 19:43:12

abumbra
Membre
Inscription : 26-04-2019

Re : ip6tables configuration

Mince. Quelle solution me conseilles-tu, en ce cas ?

Et si je comprend bien save et restore, il me suffit de créer un /etc/iptables.test.rules par exemple, avec mes règles commençant par * et finissant par COMMIT, et iptables-restore < /etc/iptables.test.rules pour appliquer puis iptables-save > /etc/iptables.up.rules.

Seul soucis, les tutos que j'ai lu m'indique le même /etc/network/if-pre-up.d/iptables et dedans :
#!/bin/sh
/sbin/iptables-restore < /etc/iptables.up.rules

La démarche est la bonne, juste le script à placer ailleurs ?

Dernière modification par abumbra (03-05-2019 19:46:53)

Hors ligne

#47 03-05-2019 20:10:53

raleur
Membre
Inscription : 03-10-2014

Re : ip6tables configuration

Je conseille de mettre en place une solution adaptée à la configuration réseau de la machine (que je ne connais pas).

Si tu ne maîtrises pas le format attendu par iptables-restore, le plus simple est d'appliquer le jeu de règles avec un script classique puis de le sauvegarder dans un fichier avec iptables-save.

Je ne vais pas encore redire tout le mal que je pense des "tutos" (zut, je l'ai dit). Pour moi il ne faut pas les prendre comme des recettes à appliquer mais des sources d'idées à évaluer et adapter à ses besoins.

Il vaut mieux montrer que raconter.

Hors ligne

#48 03-05-2019 20:39:52

abumbra
Membre
Inscription : 26-04-2019

Re : ip6tables configuration

C'est ce que je ne comprend pas : partons du postulat d'une debian ou dérivé basique, connexion classique via le network-manager. Comment est-ce que je fais pour que le script soit appelé au plus tôt, avant la connexion ? Au lieu des multiples applications de if-pre-up.d ?

Oui, en effet, c'est plus simple. Le iptables-save "converti" donc mes règles en format lisibles par -restore ?

Oui, je comprend. Mais je n'ai pas trouvé UNE seule doc sur save et restore qui mentionne une autre solution que if-pre-up.d...

Donc... je sèche.

Hors ligne

#49 04-05-2019 19:47:59

raleur
Membre
Inscription : 03-10-2014

Re : ip6tables configuration

abumbra a écrit :

Comment est-ce que je fais pour que le script soit appelé au plus tôt, avant la connexion ?


Si la connexion est gérée par le service X, tu peux, au choix :
- Exécuter le script par le service X avant d'activer les connexions, s'il supporte cette fonctionnalité. NetworkManager permet l'exécution de scripts sur certains événéments d'une interface réseau, mais apparemment pas avant qu'elle soit "connectée" (signification à préciser).
- Exécuter le script par un autre service Y qui démarre avant le service X et qui supporte cette fonctionalité.
- Créer un service Z qui démarre avant le service X et exécute le script.

L'ordonnancement des services dépend du gestionnaire d'init (sysvinit, systemd...).

abumbra a écrit :

Le iptables-save "converti" donc mes règles en format lisibles par -restore ?


Voilà. Même si iptables-save est souvent détourné (par moi notamment) pour simplement afficher le jeu de règles iptables actif, sa fonction première est de le sauvegarder dans un format compatible avec iptables-restore, d'où son nom "iptables-save" et pas "iptables-list".


Il vaut mieux montrer que raconter.

Hors ligne

#50 05-05-2019 08:33:47

abumbra
Membre
Inscription : 26-04-2019

Re : ip6tables configuration

Voilà. Même si iptables-save est souvent détourné (par moi notamment) pour simplement afficher le jeu de règles iptables actif, sa fonction première est de le sauvegarder dans un format compatible avec iptables-restore, d'où son nom "iptables-save" et pas "iptables-list".



Logique, en effet. Merci bien !

L'ordonnancement des services dépend du gestionnaire d'init (sysvinit, systemd...).



Mmmh. On touche vraiment aux limites de mes compétences. Tout ce que je sais, c'est que systemd est utilisé, d'après mes souvenirs des logs et surtout parce que j'utilise souvent du systemd-analyze.
Mais de là à y placer l'application de mes règles avant network-manager... Pfiou.

Je vais lire plein de documentation cette après-midi, si tu avais quelques pistes pour orienter mes recherches (ou une réponse directe, ahah, ça marche aussi).

Merci d'avance !

Hors ligne

Pied de page des forums