Wer sich selbst eine Firewall baut steht irgendwann vor der Frage „wie starte ich das Firewallscript bei jedem Boot?“.

    Da gibts es zwei Möglichkeiten:

    1. Die Regel exportieren und bei jeder Aktivierung der Netzwerkkarte laden
    2. das script im entsprechnende Runleve Eintragen

     

    Möglichkeit 1

    Laden Sie zuerst die Firewall Regel. Sind diese wie gewünscht (iptables -L) exportieren Sie diese in eine Datei:

    iptables-save > /etc/firewall.conf

    Nun wird ein script erstellt, dass bei jedem laden der Netzwerkkrate ausgeführt wird.

    echo '!/bin/bash' > /etc/network/if-up.d/firewall
    echo "iptables-restore < /etc/firewall.conf" >> /etc/network/if-up.d/firewall
    chmod +x /etc/network/if-up.d/firewall

    Möglichkeit 2

    Sie erstellen einen Link im entsprechenden Runleven auf das Firewallscript.

    ln -s  /root/scripts/firewall.sh /etc/rc2.d/S99firewall

    Das Firewall-Script selbst muss aber mit den Parametern start & stop umgehen können.

    Beispiel:

    #! /bin/bash
    case "$1" in
      start)
    
    ;;
      stop)
        echo "Stoppe IP-Paketfilter"
        # Tabelle flushen
        iptables -F
        iptables -X
        echo "Deaktiviere IP-Routing"
        echo 0 > /proc/sys/net/ipv4/ip_forward
    
        # Default-Policies setzen
        iptables -P INPUT ACCEPT
        iptables -P OUTPUT ACCEPT
        iptables -P FORWARD ACCEPT
        ;;
      restart)
        $0 stop && $0 start
      ;;
      status)
        echo "Tabelle filter"
        iptables -L -vn
        ;;
      *)
        echo "Fehlerhafter Aufruf"
        echo "Syntax: $0 {start|stop|restart|status}"
        exit 1
        ;;
    esac

    Links:

    2 Kommentare

    1. Zu Möglichkeit 1):

      echo „#!/bin/bash“ > /etc/network/if-up.d/firewall

      Das Script funktioniert so nicht. echo „…….“ wäre ein String, der genauso in die gewünschte Datei geschrieben wird. Die bash wird einen exec-error melden.
      Check mal, ob ich falsch liege.

      BR
      casa

    Leave A Reply