Service au démarrage
Bonjour,
J'essaie d'ajouter mon firewall au démarrage du serveur, je lance la commande :
... mais ça fonctionne pas. Je n'ai pas de message d'erreur, aucune trace des scripts dans
aucune action au redémarrage du serveur.
Quelqu'un sait comment faire, ou d’où vient le problème ?
Merci d'avance
https://www.alsacreations.com/tuto/lire/622-Securite-firewall-iptables.html
ubuntu 20.04
J'essaie d'ajouter mon firewall au démarrage du serveur, je lance la commande :
sudo update-rc.d firewall defaults
... mais ça fonctionne pas. Je n'ai pas de message d'erreur, aucune trace des scripts dans
/etc/rcX.d
aucune action au redémarrage du serveur.
Quelqu'un sait comment faire, ou d’où vient le problème ?
Merci d'avance
https://www.alsacreations.com/tuto/lire/622-Securite-firewall-iptables.html
ubuntu 20.04
3 réponses
-
-
bonjour,
voici le contenu du fichier
#!/bin/sh
# Vider les tables actuelles
iptables -t filter -F
# Vider les règles personnelles
iptables -t filter -X
# Interdire toute connexion entrante et sortante
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT DROP
# ---
# Ne pas casser les connexions etablies
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# Autoriser loopback
iptables -t filter -A INPUT -i lo -j ACCEPT
iptables -t filter -A OUTPUT -o lo -j ACCEPT
# ICMP (Ping)
iptables -t filter -A INPUT -p icmp -j ACCEPT
iptables -t filter -A OUTPUT -p icmp -j ACCEPT
# ---
# SSH In
iptables -t filter -A INPUT -p tcp --dport 222-j ACCEPT
# SSH Out
iptables -t filter -A OUTPUT -p tcp --dport 222-j ACCEPT
# DNS In/Out
iptables -t filter -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -t filter -A INPUT -p udp --dport 53 -j ACCEPT
# NTP Out
iptables -t filter -A OUTPUT -p udp --dport 123 -j ACCEPT
# Si vous hébergez un serveur web (Apache) :
# HTTP + HTTPS Out
iptables -t filter -A OUTPUT -p tcp --dport 80 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 443 -j ACCEPT
# HTTP + HTTPS In
iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 8443 -j ACCEPT
#Si vous hébergez un serveur FTP :
# FTP Out
iptables -t filter -A OUTPUT -p tcp --dport 20:21 -j ACCEPT
# FTP In
#modprobe ip_conntrack_ftp # ligne facultative avec les serveurs OVH
iptables -t filter -A INPUT -p tcp --dport 20:21 -j ACCEPT
iptables -t filter -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Si vous hébergez un serveur de mail avec SMTP, POP3 et IMAP :
# Mail SMTP:25
# iptables -t filter -A INPUT -p tcp --dport 25 -j ACCEPT
# iptables -t filter -A OUTPUT -p tcp --dport 25 -j ACCEPT
# # Mail POP3:110
# iptables -t filter -A INPUT -p tcp --dport 110 -j ACCEPT
# iptables -t filter -A OUTPUT -p tcp --dport 110 -j ACCEPT
# # Mail IMAP:143
# iptables -t filter -A INPUT -p tcp --dport 143 -j ACCEPT
# iptables -t filter -A OUTPUT -p tcp --dport 143 -j ACCEPT
# # Mail POP3S:995
# iptables -t filter -A INPUT -p tcp --dport 995 -j ACCEPT
# iptables -t filter -A OUTPUT -p tcp --dport 995 -j ACCEPT
# Si vous hébergez un serveur Mysql :
# Mysql
iptables -t filter -A INPUT -m state --state NEW -p tcp --dport 3306 --syn -j ACCEPT
# Si vous utilisez l'outil de monitoring Monit sur le port 1337 (à modifier selon votre configuration) autorisez cette connexion :
# Monit
# iptables -t filter -A INPUT -p tcp --dport 1337 -j ACCEPT
# Si vous utilisez le moteur de recherche Solr sur le port 8983 (à modifier selon votre configuration) autorisez cette connexion :
# Apache Solr
# iptables -t filter -A OUTPUT -p tcp --dport 8983 -j ACCEPT
# iptables -t filter -A INPUT -p tcp --dport 8983 -j ACCEPT
# Si vous utilisez gitlab sur le port 10080 (à modifier selon votre configuration) autorisez cette connexion :
# Gitlab
iptables -t filter -A OUTPUT -p tcp --dport 10080 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 10080 -j ACCEPT
# Si vous utilisez ntp sur le port 123 (à modifier selon votre configuration) autorisez cette connexion :
# Network Time Protocol
# iptables -t filter -A OUTPUT -p udp --sport 123 -j ACCEPT
# iptables -t filter -A INPUT -p udp --dport 123 -j ACCEPT
# Si vous utilisez le LDAP autorisez cette connexion :
# LDAP
#iptables -t filter -A INPUT -m state --state NEW -p tcp --dport 389 -j ACCEPT
#iptables -t filter -A INPUT -m state --state NEW -p tcp --dport 636 -j ACCEPT
# iptables -t filter -A OUTPUT -m state --state NEW -p tcp --dport 389 -j ACCEPT
# iptables -t filter -A OUTPUT -m state --state NEW -p tcp --dport 636 -j ACCEPT
en attendant je vais regarder systemctl. -
Bonjour,
Méthode 1 :/etc/init.d
Ce script ne peut pas marcher avecupdate-rc.d
car il ne se conforme pas au squelette attendu par la chaîne de démarrage (comme je te l'ai dit, tu pourrais repartir de /etc/init.d/ssh et corriger la partie dans le blocstart)
.
Exemple :
#!/bin/bash # Description: my service # case "$1" in 'start') echo "starting my service" ;; 'stop') echo "stopping my service" ;; esac
Méthode 2 :/etc/rc.local
Ton script en tant que tel pourrait aussi être injecté, ou mieux, appelé depuis/etc/rc.local
. Sur les debian récentes, on fait plus propre. Si tu regardes le contenu de/etc/rc.local
, tu verras ceci :
#!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. if test -d /etc/boot.d ; then run-parts /etc/boot.d fi
Cela signifie que/etc/rc.local
invoque les scripts placés dans/etc/boot.d
. Il suffirait donc de créer ce dossier, y placer ton script (i.e./etc/boot.d/firewall
) et lui donner les droits en lecture exécution :
sudo mkdir /etc/boot.d
sudo mv /home/toto/firewall /etc/init.d/
sudo chown root:root /etc/init.d/firewall
chmod a+rx /etc/init.d/firewall
Méthode 3 :systemctl
Voir la documentation et cet exemple
Bonne chance