^

Simple Firewall Setup Script

Article 144 in Networking

2021-08-16 16:24:41 from bugfish
Simple Firewall Setup Script
Networking / IpTables
Last Review on: 2021-09-20 14:15:02 | Hits: 43

Attention! This script has been written 2010 and could be outdated.

Start.SH - Start Firewall

#!/bin/sh
#Start Firewall
#Copyright by Xeno
#

echo
echo Firewall Starter
echo
echo Die Firewall wird gestartet und der Port 22 SSH
echo für die Fernkontrolle freigegeben.
echo
echo Wollen sie die Firewall nun aktivieren? y/n

read RESPONSE
echo


if [ $RESPONSE = y ]
then
    if [ -f /etc/firewall_temp.save ]
    then
        BACKUPTEST=1
        echo Alte Ports werden ebenfalls wieder freigegeben...
        echo Bitte warten...
        sleep 5
    else
        BACKUPTEST=0
        echo Alte Ports werden nicht wieder freigegeben da
        echo die Firewall zum ersten mal verwendet wird oder
        echo resettet wurde...
        echo Bitte warten...
        sleep 5
    fi
    echo Regeln und Ketten werden gelöscht.......DONE        
    echo LoopBack wird ausgeführt.......DONE    
    echo Input Stream wird gesichert.......DONE
    echo Output Stream wird gesichert.......DONE
    echo Forwarding wird deaktiviert.......DONE
    echo SSH Port 22 wird freigegeben.......DONE
    iptables -F
    iptables -X
    
    iptables -I INPUT -p tcp --dport 1:21 -j DROP
    iptables -I INPUT -p tcp --dport 23:65535 -j DROP
    iptables -I INPUT -p udp --dport 1:65535 -j DROP

    iptables -I OUTPUT -p tcp --dport 1:21 -j DROP
    iptables -I OUTPUT -p tcp --dport 23:65535 -j DROP
    iptables -I OUTPUT -p udp --dport 1:65535 -j DROP

    iptables -I FORWARD -p tcp --dport 1:21 -j DROP
    iptables -I FORWARD -p tcp --dport 23:65535 -j DROP
    iptables -I FORWARD -p udp --dport 1:65535 -j DROP

    iptables -I INPUT -p tcp --dport 22 -j ACCEPT
    iptables -I OUTPUT -p tcp --dport 22 -j ACCEPT
    iptables -I FORWARD -p tcp --dport 22 -j ACCEPT

    iptables -I INPUT -p tcp --sport 22 -j ACCEPT
    iptables -I OUTPUT -p tcp --sport 22 -j ACCEPT
    iptables -I FORWARD -p tcp --sport 22 -j ACCEPT

iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
    
    if [ BACKUPTEST=1 ]
    then
        echo Einstellungen vor dem Stop werden wiederhegestellt........DONE
            iptables-restore < /etc/firewall_temp.save
            unlink /etc/firewall_temp.save
    else
        echo ....................................
    fi
    
    echo
    echo Die Firewall wurde erfolgreich aktiviert.....
    echo
else
    echo
    echo Sie haben sich entschlossen die Firewall
    echo nicht zu aktivieren oder einen unzulässigen
    echo Wert eingegeben...
    echo
fi
exit 0
#end of file


---------------------------------------------------------------------------------------------------------

Stop.sh - Stop Firewall

#!/bin/sh
#Stop Firewall
#Copyright by Xeno
#

echo
echo Firewall Deactivator
echo
echo Wollen sie die Firewall nun deaktivieren? y/n

read RESPONSE

if [ $RESPONSE = y ]
then

    echo Einstellungen werden gesichert.......DONE
        iptables-save > /etc/firewall_temp.save

    echo Regeln und Ketten werden deaktiviert.......DONE
        iptables -X
        iptables -F

    echo Porteinstellungen werden gelöscht.......DONE
        iptables -P INPUT ACCEPT
        iptables -P OUTPUT ACCEPT
        iptables -P FORWARD ACCEPT
        iptables -t filter -P INPUT ACCEPT
        iptables -t filter -P OUTPUT ACCEPT
        iptables -t filter -P FORWARD ACCEPT
        
    echo Iptables beenden.......DONE
    echo
    echo Sie sollten die Firewall so früh wie möglich
    echo wieder einschalten. Das arbeiten ohne Firewall
    echo stellt eine enorme unsicherheit dar...
    echo
else
    echo
    echo Sie haben sich entschlossen die Firewall
    echo nicht zu deaktivieren oder einen unzulässigen
    echo Wert eingegeben...
    echo
fi
exit 0
#end of file


-------------------------------------------------------

Reset.SH - reset Firewall

#!/bin/sh
#Reset Firewall
#Copyright by Xeno
#

echo
echo Firewall Reset Deactivate
echo
echo Die Firewall wird resettet alle Regeln und
echo Einstellungen werden gelöscht, danach werden
echo alle Ports geschlossen und Port 22 SSH
echo für Fernzugriff freigeschaltet...
echo
echo ACHTUNG!
echo Alle Einstellungen werden gelöscht und müssen
echo später manuell oder per restore wiederhergestellt
echo werden. Wenn Sie Ihre einstellungen vorher sichern
echo möchten führen Sie backup.sh aus...
echo Die Sicherung die beim Stop der Firewall ausgeführt
echo wird wird ebenfalls gelöscht...Die Firewall ist dann
echo komplett im anfangszustand...
echo
echo Wollen sie die Firewall nun resetten? y/n

read RESPONSE

if [ $RESPONSE = y ]
then
    echo Regeln und Ketten werden zurückgesetzt.......DONE
    iptables -X
    iptables -F
    iptables -A INPUT -i lo -j ACCEPT
    iptables -A OUTPUT -o lo -j ACCEPT
    
    unlink /etc/firewall_temp.save
    

    echo Iptables resetten..........DONE
    echo ERRORS BITTE IGNORIEREREN, DIESE SIND GEWOLLT!
    echo Die Firewall wurde resettet. Sie können nun neue
    echo Portregeln definieren oder ein Backup laden...
    echo
else
    echo
    echo Sie haben sich entschlossen die Firewall
    echo nicht zu resetten oder einen unzulässigen
    echo Wert eingegeben...
    echo
fi
exit 0
#end of file


------------------------------

Open_port.sh - Open A Port

#!/bin/sh
#PortRelease Firewall
#Copyright by Xeno
#

echo
echo Firewall Port Konfigurator
echo
 
echo Welcher Port soll geöffnet werden?
echo example: 21,22,33,543  
read PORT

echo TCP or UDP?
read TCPUDP

echo Bitte warten...
echo Eingaben werden überprüft.......DONE

if [ $TCPUDP == "tcp" -o $TCPUDP == "udp" ]; then

    echo Konfiguriere INPUT Stream.......DONE
    iptables -I INPUT -p $TCPUDP -m multiport --dport $PORT -j ACCEPT
    iptables -I INPUT -p $TCPUDP -m multiport --sport $PORT -j ACCEPT

    echo Konfiguriere OUTPUT Stream.......DONE
    iptables -I OUTPUT -p $TCPUDP -m multiport --dport $PORT -j ACCEPT
    iptables -I OUTPUT -p $TCPUDP -m multiport --sport $PORT -j ACCEPT

    echo Konfiguriere FORWARDING.......DONE
    iptables -I FORWARD -p $TCPUDP -m multiport --dport $PORT -j ACCEPT
    iptables -I FORWARD -p $TCPUDP -m multiport --sport $PORT -j ACCEPT

    echo Port Öffnung.......DONE
    echo
    echo Operation erfolgreich abgeschlossen...

else

    echo
    echo Sie haben einen unzulässigen wert eingegeben...
    echo übeprüfen sie Ihre TCP und UDP eingabe und achten
    echo Sie darauf das Wort klein zu schreiben!
    echo

fi
exit 0
#end of file


--------------------------------------------

Close_port.SH - Close a Port

#!/bin/sh
#PortSecure Firewall
#Copyright by Xeno
#

echo
echo Firewall Port Konfigurator
echo
 
echo Welcher Port soll geschlossen werden?
echo example: 21,22,33,543  
read PORT

echo TCP or UDP?
read TCPUDP

echo Bitte warten...
echo Eingaben werden überprüft.......DONE

if [ $TCPUDP == "tcp" -o $TCPUDP == "udp" ]; then

    echo Konfiguriere INPUT Stream.......DONE
    iptables -I INPUT -p $TCPUDP -m multiport --dport $PORT -j DROP
    iptables -I INPUT -p $TCPUDP -m multiport --sport $PORT -j DROP

    echo Konfiguriere OUTPUT Stream.......DONE
    iptables -I OUTPUT -p $TCPUDP -m multiport --dport $PORT -j DROP
    iptables -I OUTPUT -p $TCPUDP -m multiport --sport $PORT -j DROP

    echo Konfiguriere FORWARDING.......DONE
    iptables -I FORWARD -p $TCPUDP -m multiport --dport $PORT -j DROP
    iptables -I FORWARD -p $TCPUDP -m multiport --sport $PORT -j DROP

    echo Ports Sichern.......DONE
    echo
    echo Operation erfolgreich abgeschlossen...

else

    echo
    echo Sie haben einen unzulässigen wert eingegeben...
    echo übeprüfen sie Ihre TCP und UDP eingabe und achten
    echo Sie darauf das Wort klein zu schreiben!
    echo

fi
exit 0
#end of file

 

 

 

I do not guarantee the reliability of the information given here, the code described on this page is executed at your own risk and in the event of damage or other unforeseeable consequences I am in no way responsible or liable.
Currently 0 Upvotes!
captcha image
System - 2021-08-16 16:24:49
We appreciate comments on our site!

Theme
13/11
This Website is using Session Cookies for Site Functionality and AWStats.