Service au démarrage

kouty -  
mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   -
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

3 réponses

  1. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 940
     
    Bonjour,
    • Que contient le fichier
      /etc/init.d/firewall
      ?
    • As-tu essayé cette approche ?


    Bonne chance
    0
  2. kouty
     
    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
  3. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 940
     
    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