Service au démarrage

Fermé
kouty - Modifié le 21 oct. 2020 à 01:48
mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 - 21 oct. 2020 à 14:31
Bonjour,

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
A voir également:

3 réponses

mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 7 749
Modifié le 21 oct. 2020 à 01:53
Bonjour,
  • Que contient le fichier
    /etc/init.d/firewall
    ?
  • As-tu essayé cette approche ?


Bonne chance
0
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.
0
mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 7 749
21 oct. 2020 à 14:31
Bonjour,

Méthode 1 :
/etc/init.d


Ce script ne peut pas marcher avec
update-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 bloc
start)
.

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
0