Iptables non appelé au démarrage

Tags: #<Tag:0x00007fc9df5054c8>

J’ai suivi ce tutoriel pour créer mes préférences iptables, pour un serveur.
Malgré update-rc.d init_firewall defaults, iptables -L -v me sort au reboot :

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination 

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination 

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination 

Si je lance /etc/init.d/init_firewall start, mes règles s’activent conformément au script :

 Chain INPUT (policy DROP 5 packets, 280 bytes)
 pkts bytes target     prot opt in     out     source               destination
   17  1116 ACCEPT     all  --  any    any     anywhere             anywhere             state RELATED,ESTABLISHED
    0     0 ACCEPT     all  --  lo     any     anywhere             anywhere
    0     0 ACCEPT     icmp --  any    any     anywhere             anywhere
    1   104 ACCEPT     tcp  --  any    any     anywhere             anywhere             tcp dpt:50886
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere             tcp dpt:http
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere             tcp dpt:https
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere             tcp dpt:domain
    0     0 ACCEPT     udp  --  any    any     anywhere             anywhere             udp dpt:domain

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere             tcp flags:FIN,SYN,RST,ACK/SYN limit: avg 1/sec burst 5
    0     0 ACCEPT     udp  --  any    any     anywhere             anywhere             limit: avg 1/sec burst 5
    0     0 ACCEPT     icmp --  any    any     anywhere             anywhere             icmp echo-request limit: avg 1/sec burst 5
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere             tcp flags:FIN,SYN,RST,ACK/RST limit: avg 1/sec burst 5

Chain OUTPUT (policy DROP 6 packets, 1200 bytes)
 pkts bytes target     prot opt in     out     source               destination
   21  5336 ACCEPT     all  --  any    any     anywhere             anywhere             state RELATED,ESTABLISHED
    0     0 ACCEPT     all  --  any    lo      anywhere             anywhere
    0     0 ACCEPT     icmp --  any    any     anywhere             anywhere
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere             tcp dpt:50886
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere             tcp dpt:http
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere             tcp dpt:https
    0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere             tcp dpt:domain
    0     0 ACCEPT     udp  --  any    any     anywhere             anywhere             udp dpt:domain
    1    76 ACCEPT     udp  --  any    any     anywhere             anywhere             udp dpt:ntp

Qu’est-ce qui peut être à l’origine d’une absence d’exécution au démarrage ?

Le probléme, c’est qu’on est passé en systemd, depuis le tuto, et le fonctionnement des scripts de démarrage ne se fait plus juste en mettant un script init dans /etc/init.d et en appelant update-rc.d
Je n suis pas un pro de la config des scripts de démarrage de systemd et un peu pressé, mais j’ai trouvé ça que tu peux lire:

http://linuxfr.org/news/systemd-pour-les-administrateurs-parties-3-4-et-5#partie-3-convertir-un-script-dinit-sysv-en-fichier-de-service-systemd

Merci pour ta réponse.
Je vais essayer de me plonger dedans dès que j’ai un peu de temps.
Cette documentation a l’air fournie.
Autre option : migrer chez Devuan ! :wink:

Un moyen de faire c’est d’installer le paquet iptables-persistent .

Ensuite, on peut sauvegarder manuellement les règles avec iptables-save redirigé vers /etc/iptables/rules.v4 ou via une commande du genre service netfilter-persistent save .

Ce n’est pas parfait. Mais ça marche.


AnonymousCoward

Pourquoi ?

  • La sauvegarde des règles est à faire de manière manuelle.
  • Quand on utilise un logiciel qui touche à iptables / ip6tables comme fail2ban, cela sauvegarde aussi les règles de fail2ban ou alors il faut arrêter le service fail2ban pour faire la sauvegarde.
  • On devrait pouvoir préciser si l’on souhaite sauvegarder seulement les règles en IPv4 ou en IPv6.
  • Parce-que, de base, les compteurs (de paquet et d’octets) ne sont pas sauvegardés ou restaurés.
  • Parce-que, de base, cela ne sauvegarde pas les jeux d’adresses IP mis en place avec ipset.

Et je suis sûr que l’on peut trouver encore plein de petits défauts / limites.


AnonymousCoward

OK, compris !

Salut
j’utilise ufw et son interface graphique gufw
https://wiki.debian.org/Uncomplicated%20Firewall%20(ufw)
bien intégré a systemd

systemctl status *ufw*
● ufw.service - Uncomplicated firewall
   Loaded: loaded (/lib/systemd/system/ufw.service; enabled; vendor preset: enabled)
   Active: active (exited) since Fri 2018-02-09 10:30:49 CET; 9h ago
     Docs: man:ufw(8)
  Process: 219 ExecStart=/lib/ufw/ufw-init start quiet (code=exited, status=0/SUCCESS)
 Main PID: 219 (code=exited, status=0/SUCCESS)

févr. 09 10:30:49 debian systemd[1]: Started Uncomplicated firewall.
Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.

ça me suffit amplement

 ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
192.168.0.22               ALLOW IN    192.168.0.15              
192.168.0.15               ALLOW IN    192.168.0.22              
6566/tcp                   ALLOW IN    Anywhere                  
1718/udp                   ALLOW IN    Anywhere                  
1900/udp                   ALLOW IN    Anywhere                  
8200/tcp                   ALLOW IN    Anywhere                  
6566/tcp (v6)              ALLOW IN    Anywhere (v6)             
1718/udp (v6)              ALLOW IN    Anywhere (v6)             
1900/udp (v6)              ALLOW IN    Anywhere (v6)             
8200/tcp (v6)              ALLOW IN    Anywhere (v6)             

192.168.0.22               ALLOW OUT   192.168.0.15              
192.168.0.15               ALLOW OUT   192.168.0.22              
1718/udp                   ALLOW OUT   Anywhere                  
1900/udp                   ALLOW OUT   Anywhere                  
8200/tcp                   ALLOW OUT   Anywhere                  
1718/udp (v6)              ALLOW OUT   Anywhere (v6)             
1900/udp (v6)              ALLOW OUT   Anywhere (v6)             
8200/tcp (v6)              ALLOW OUT   Anywhere (v6)             

ufw semble être le choix le plus prudent compte tenu de mon manque d’expérience dans Debian.
@grandtoubab : je suppose qu’ufw génère automatiquemeent un script rangé par exemple dans /etc/init.d/firewall, n’y a-t-il pas risque de conflit avec mes scripts que j’ai créés selon le tutoriel de ce forum ?
Merci pour votre aide.

ufw n’est qu’un logiciel frontal pour iptables

si je liste iptables, je retrouve les règles créées par ufw

exemple

iptables -L
.
.
.
Chain ufw-user-input (1 references)
target     prot opt source               destination         
ACCEPT     all  --  192.168.0.15         192.168.0.22        
ACCEPT     all  --  192.168.0.22         192.168.0.15        
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:sane-port
ACCEPT     udp  --  anywhere             anywhere             udp dpt:1718
ACCEPT     udp  --  anywhere             anywhere             udp dpt:1900
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:8200

pour faciliter la mise en place de règles personnelles utiliser gufw
https://doc.ubuntu-fr.org/gufw

http://gufw.org/

OK. Ce qui compte pour moi c’est d’avoir un pare-feu fiable, que je peux régler facilement et contrôler.
Pour gufw je n’ai pas d’environnement graphique sur cette bécane donc je ne peux pas m’en servir.