J'ai hébergé des serveurs de jeu sur mon serveur dédié et je configurais le pare-feu il y a quelques jours (il a fallu tout remettre en place, le disque dur est tombé en panne et j'ai oublié de sauvegarder).
Tout fonctionnait bien, les règles de pare-feu fonctionnaient correctement, jusqu'au redémarrage du serveur. J'ai redémarré le serveur à l'aide de la commande standard reboot
, et le serveur n'est jamais revenu.
J'ai contacté mon fournisseur qui l'a consulté et constaté que les règles de iptables
étaient complètement réinitialisées et bloquaient tous les ports du serveur.
J'avais activé le pare-feu via Sudo ufw enable
et ajouté les éléments pertinents dans iptables
( comme vu ici ):
Sudo ufw enable
Sudo iptables -A INPUT -d 85.25.95.217/32 -p tcp --dport 80 -j ACCEPT
Sudo iptables -A INPUT -d 85.25.95.217/32 -p tcp --dport 443 -j ACCEPT
Sudo iptables -A INPUT -d 85.25.95.217/32 -p tcp --dport 22 -j ACCEPT
Sudo iptables -A INPUT -d 85.25.110.75/32 -p tcp --dport 443 -j DROP
Sudo iptables -A INPUT -d 85.25.110.75/32 -p tcp --dport 80 -j DROP
Sudo iptables -A INPUT -d 85.25.116.59/32 -p tcp --dport 443 -j DROP
Sudo iptables -A INPUT -d 85.25.116.59/32 -p tcp --dport 80 -j DROP
Sudo iptables -A INPUT -d 188.138.110.103/32 -p tcp --dport 443 -j DROP
Sudo iptables -A INPUT -d 188.138.110.103/32 -p tcp --dport 80 -j DROP
Sudo iptables -A INPUT -d 85.25.110.75/32 -p tcp --dport 8880 -j DROP
Sudo iptables -A INPUT -d 85.25.110.75/32 -p tcp --dport 8881 -j DROP
Sudo iptables -A INPUT -d 85.25.116.59/32 -p tcp --dport 8880 -j DROP
Sudo iptables -A INPUT -d 85.25.116.59/32 -p tcp --dport 8881 -j DROP
Sudo iptables -A INPUT -d 188.138.110.103/32 -p tcp --dport 8880 -j DROP
Sudo iptables -A INPUT -d 188.138.110.103/32 -p tcp --dport 8881 -j DROP
Sudo iptables-save > /etc/network/iptables.rules
reboot
Dans mon fichier interfaces
j'ai mis pre-up iptables-restore < /etc/network/iptables.rules
à la fin.
Qu'est-ce que j'ai mal fait, ou si je n'ai rien fait de mal, pourquoi ufw
a-t-il réinitialisé/bloqué tous les ports lors du redémarrage du serveur?
Bon, donc si vous utilisez iptables
à partir de la ligne de commande, ils ne seront pas restaurés lors du rechargement ou du redémarrage.
Vous pouvez définir vos règles de pare-feu avec les instructions ufw
ici ou si vous en avez vraiment besoin. Pour utiliser iptables
, vous devez enregistrer vos règles dans un fichier et les restaurer à nouveau avant que votre réseau ne soit opérationnel. Vous devez également désactiver ufw
comme le suggère bodhi.zazen:
Sudo ufw disable # You don't want UFW managaing your firewall if you are.
iptables -A INPUT -p tcp --match multiport --dports 1:79 -j ACCEPT
iptables -A INPUT -p tcp --match multiport --dports 81:65535 -j ACCEPT
Sudo sh -c "iptables-save > /etc/iptables.rules"
En supposant que vous ayez configuré vos interfaces réseau en utilisant /etc/network/interfaces
Recherchez votre talon pour votre interface et ajoutez ce qui suit à la strophe:
pre-up iptables-restore < /etc/iptables.rules
par exemple.
auto eth0
iface eth0 inet dhcp
pre-up iptables-restore < /etc/iptables.rules
# post-down iptables-restore < /etc/iptables.downrules # if needed