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 Re : Réseau » ip6tables configuration » 09-05-2019 12:13:02

abumbra
Journalctl, pardon. Avec toutes ces discussions à propos de systemd, lapsus.

#2 Re : Réseau » ip6tables configuration » 09-05-2019 07:56:19

abumbra
Super, merci !

Aussi, juste pour te tenir au courant, après vérification, iptables.service démarre avant wpa-supplicant, raise network, network-manager via un systemctl -b. Donc c'est bien la bonne solution !

On est bien d'accord qu'avec iptables-restore, c'est vraiment immédiat ou du moins extrêmement rapide, les règles sont déjà appliquées même si wpa-supplicant, network manager démarrent quelques millisecondes après ? De toute façon, c'est ce que veux dire le before network.target, il me semble.

#3 Re : Réseau » ip6tables configuration » 09-05-2019 07:03:05

abumbra

raleur a écrit :


Bien sûr. Il est préférable d'accepter les mêmes types d'erreur qu'ICMPv6 dans l'état RELATED, sauf packet-too-big qui n'existe pas en ICMPv4.



C'est aussi simple que ça, simple copier coller, juste remplacer icmpv6 par icmp tout court, et supprimer packet-too-big ? Rien besoin de plus ?

#4 Re : Réseau » ip6tables configuration » 08-05-2019 19:07:30

abumbra
Ok, et de toute manière /etc est déjà root:root, logique, donc tout bon. Je vais mettre ça en place ce soit, merci !

Juste un autre petite chose, jusque là j'utilisais 750 pour rendre exécutables mes scripts. Tu m'as parlé de 755 ?

Aussi, plusieurs personnes me disent que même en ipv4, même si tout fonctionne, bloquer icmp n'est optimal, et surtout "pas génial" pour les autres ? Un intérêt à faire comme en icmpv6 et n'autoriser que certains types, quitte à imposer des limites ?

#5 Re : Réseau » ip6tables configuration » 08-05-2019 17:32:35

abumbra
Donc, je résume avant d'appliquer :

1) je reprend mon fichier de création de service
2) je le place au bon endroit
3) l'exec vers mon script que j'aurai placé dans /etc
4) et point barre, pas besoin de s'embêter avec les permissions

ceci dit, j'ai un doute, en passant par un sudo nano ...adressedemonscript, le fichier est automatiquement créé sans pouvoir être modifié par l'utilisateur courant (le nevermore de plus tôt, bref, moi) ?

Ou un chown root:root est nécessaire ? Je m'y perd. Juste le chown, pas besoin d'un chmod xxx ?

#6 Re : Réseau » ip6tables configuration » 08-05-2019 17:13:07

abumbra
Bien ce que je me disais, mauvaise lecture de ma part.

Du coup, dans  /etc/ avec chmod 740 sur le script, ça passe (je ne suis pas bien au point niveau permission, non plus).

#7 Re : Réseau » ip6tables configuration » 08-05-2019 16:24:16

abumbra
Donc la meilleure solution serait bien la création d'un service ?

A condition de :

1) le placer dans le bon répertoire (il fonctionnait là où il était ceci dit)
2) placer le script dans /etc par exemple
3) ne pas l'exécuter en root ?! pourtant c'était le cas avec if pre up.

?

#8 Re : Réseau » ip6tables configuration » 08-05-2019 10:29:18

abumbra
Merci ! Je l'avais vu, et lu partiellement. D'ailleurs, mes questions quant à Nat et mangle sur un hôte non routeur étaient liées.

Ceci dit, s'il est plus que complet, je n'y ai étrangement rien trouvé pour appliquer les règles au boot. Ou je suis passé devant sans le voir, ou rien à ce sujet.

#9 Re : Réseau » ip6tables configuration » 07-05-2019 20:28:47

abumbra
Salutations !

Merci encore pour cette réponse.

J'ai fait pas mal de recherches et j'ai trouvé plusieurs solutions :

1) la tienne

2) créer un /usr/lib/systemd/system/iptables.service  contenant :
[Unit]
Description=iptables firewall service
Before=network.target

[Service]
Type=oneshot
ExecStart=/home/nevermore/iptables start
RemainAfterExit=true
ExecStop=/home/nevermore/iptables stop
StandardOutput=journal

[Install]
WantedBy=multi-user.target

3) script dans /etc/init.d

4) if-pre-up malgré tout

5) variante de if-pre-up : dans /etc/network/interfaces, après wlo1 : pre-up iptables-restore < /etc/iptables_rules (règles le problème des applications multiples)

Même sans trop maîtriser systemd, tu pourras peut-être me dire quelle(s) option(s) te sembles les plus appropriés ?

EDIT : je crois que je me prend la tête pour rien : d'après le man :
"
pre-up command
Run command before bringing the interface up. If this command fails then ifup aborts, refraining from marking the interface as configured, prints an error message, and exits (...)"

Il semblerait donc qu'avec if-pre-up tout soit bien appliqué avant même la configuration de l'interface !

Aussi, on m'a fait remarquer "et ton nat et mangle ?". On est bien d'accord que sur une machine non routeur, je laisse tout à accepte. le fait qu'une vérification m'indique des paquets en nat, c'est normal et pas un problème niveau sécurité ?

#10 Re : Réseau » ip6tables configuration » 05-05-2019 08:33:47

abumbra

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 !

#11 Re : Réseau » ip6tables configuration » 03-05-2019 20:39:52

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

#12 Re : Réseau » ip6tables configuration » 03-05-2019 19:43:12

abumbra
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 ?

#13 Re : Réseau » ip6tables configuration » 03-05-2019 19:09:18

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

#14 Re : Réseau » ip6tables configuration » 03-05-2019 16:27:52

abumbra
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 !

#15 Re : Réseau » ip6tables configuration » 02-05-2019 09:52:15

abumbra
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 ?

#16 Re : Réseau » ip6tables configuration » 02-05-2019 09:31:48

abumbra
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 ?

#17 Re : Réseau » ip6tables configuration » 02-05-2019 08:24:33

abumbra
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 ?

#18 Re : Réseau » ip6tables configuration » 01-05-2019 18:50:56

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

Pas de limites sur le reste.

#19 Re : Réseau » ip6tables configuration » 01-05-2019 18:02:52

abumbra
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 ?

#20 Re : Réseau » ip6tables configuration » 01-05-2019 15:50:32

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

#21 Re : Réseau » ip6tables configuration » 01-05-2019 07:09:51

abumbra
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 ?

#22 Re : Réseau » ip6tables configuration » 27-04-2019 15:38:29

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

#23 Re : Réseau » ip6tables configuration » 26-04-2019 21:22:10

abumbra
Tu n'es pas la première personne à me le faire remarquer. Mais étonnement, tout fonctionne sans, donc je ne vois pas vraiment l'intérêt de l'ajouter, je me trompe ?

Je testerai cela demain. Merci ! Valeur à fixer arbitrairement ou selon ce que me donne une petite analyse du trafic ?

Peut-être que ça t'aidera dans la compréhension de ce qui m'embrouille, mais je suis entre autre tombé sur ceci https://resources.sei.cmu.edu/tools/dow … _rules.txt

Et plusieurs points m'interpelle, 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...).

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

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

Une excellente soirée et nuit.

#24 Re : Réseau » ip6tables configuration » 26-04-2019 19:38:34

abumbra
Donc, le drop est terminal et les règles qui suivent ne sont donc pas pris en compte.
En revanche, pour le -P INPUT DROP initial, les règles qui suivent sont bien pris en compte ? Je m'avoue perdu.

Il n'est qu'en output, smtp, si tu l'as vu en input quelques part, faute de copier coller je pense.

Voici le tout


iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT 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 -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 -j ACCEPT         
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT         
 
# HTTP                     
iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT
 
#HTTPS
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT        

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

#Transmission
iptables -A INPUT -p udp --dport 51413 -j ACCEPT
iptables -A OUTPUT -p udp --sport 51413 -j ACCEPT
   
# NTP (horloge du serveur)
iptables -A OUTPUT -p udp --dport 123 -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 -P INPUT DROP
ip6tables -P FORWARD DROP
ip6tables -P OUTPUT 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 echo-request -j ACCEPT
ip6tables -A INPUT -p icmpv6 --icmpv6-type echo-reply -j ACCEPT
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 echo-request -j ACCEPT
ip6tables -A OUTPUT -p icmpv6 --icmpv6-type echo-reply -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 router-solicitation -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-advertisement -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

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

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

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

#Transmission
ip6tables -A INPUT -p udp --dport 51413 -j ACCEPT
ip6tables -A OUTPUT -p udp --sport 51413 -j ACCEPT
 
# NTP (horloge du serveur)
ip6tables -A OUTPUT -p udp --dport 123 -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
 
 



Et je tiens à te remercier encore du temps passé à me guider, c'est très gentil (c'est que tu y as passé, du temps...).

#25 Re : Réseau » ip6tables configuration » 26-04-2019 16:59:15

abumbra
Ahah, mes excuses, j'ai passé un bon bout de temps sur faire marcher smtp, lapsus. Transmission.

Ok, merci pour tes réponses.

Et du coup, pas d'autres optimisations nécessaires, cette configuration est "sécurisée" ?



Aussi, j'ai vu sur pas mal d'exemple de :

iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT

Après ce que tu viens de me dire, je ne sais qu'en penser.

Ne vaut il mieux pas accepter que les états nécessaire au lieu d'un accept global ?

(debout depuis 5h, je commence à m'endormir, pardonnes si je ne fais plus aucun sens)



Aussi, je m'amusait à tester... Si je précède les règles vu avant d'un imcpv6 drop, plus rien ne fonctionne. Pourtant, les accept qui suis devraient laisser passer, non ?... Je ne comprend plus rien.

Pied de page des forums

Propulsé par FluxBB