Hobby-firewall
waar staan de files en waar dienen ze voor
lokale files
- /etc/init.d/hobby-firewall (het init script)
- /etc/hobby-firewall/rules (de lokale IPv4 rules file)
- /etc/hobby-firewall/rules6 (de lokale IPv6 rules file)
- /etc/hobby-firewall/hobby-firewall.local (stuur script voor omzetten van hostnamen van websites en ftp adressen)
symlinks centraal beheerde files voor die server specifiek
Deze staan in /usr/local/hobbynet/firewall/
- /etc/hobby-firewall/allow_http (symlink naar de file met de websites waarna de server mag connecten)
- /etc/hobby-firewall/allow_ftp (symlink naar de file met de ftpservers waarna de server mag connecten)
- /etc/hobby-firewall/allow_http.ip4 (symlink naar de file met IPv4 adressen van websites waarna de server mag connecten)
- /etc/hobby-firewall/allow_ftp.ip4 (symlink naar de file met IPv4 adressen van ftpservers waarna de server mag connecten)
- /etc/hobby-firewall/allow_http.ip6 (symlink naar de file met IPv6 adressen van websites waarna de server mag connecten)
- /etc/hobby-firewall/allow_ftp.ip6 (symlink naar de file met IPv6 adressen van ftpservers waarna de server mag connecten)
Scripts gebruikt door firewall
- /usr/local/hobbynet/bin/getip-http (dit script zet allow_http files om naar lijst met ip addressen)
- /usr/local/hobbynet/bin/getip-ftp (dit script zet allow_ftp files om naar lijst met ip addressen)
- /usr/local/hobbynet/bin/get_ip4 (dit script kopieert de centraal beheerde ipv4 files met extentie .ip4 naar lokale server)
- /usr/local/hobbynet/bin/get_ip6 (dit script kopieert de centraal beheerde ipv6 files met extentie .ip6 naar lokale server)
centraal beheerde files
- /usr/local/hobbynet/firewall/general/hobby-firewall ( Het orginele init script van de firewall het staat hier en niet in bin wat hier kunnen alle servers er bij)
- /usr/local/hobbynet/firewall/general/knownoffenders.ip4 (lijst bekend onverlaten die wij blokken IPv4)
- /usr/local/hobbynet/firewall/general/knownoffenders.ip6 (lijst bekend onverlaten die wij blokken IPv6)
- /usr/local/hobbynet/firewall/general/in_up.ip4 ( het bovenste deel van de centraal beheerder incoming firewall rules)
- /usr/local/hobbynet/firewall/general/in_down.ip4 ( het onderste deel van de centraal beheerder incoming firewall rules)
- /usr/local/hobbynet/firewall/general/out_up.ip4 ( het bovenste deel van de centraal beheerder outgoing firewall rules)
- /usr/local/hobbynet/firewall/general/out_down.ip4 ( het onderste deel van de centraal beheerder outgoing firewall rules)
files
/etc/init.d/hobby-firewall
Dit script zorgt er voor de firewall wordt gestart en de rules files worden ingelezen en verwerkt.
/etc/hobby-firewall/rules
In de rules file staan naast de lokaal gelden firewall rules ook de includes van de centraal beheerde bestanden.<anbr> In standaard rules files voor webserver ziet er zo uit :
#! /bin/bash # ##### # # IPv4 rule file voor hobbynet-firewall # ##### PUBIF="eth0" LOCIF="eth1" # Inbound established and related traffic is ok: $IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # include default incoming rules UP . /etc/hobby-firewall/in_up.ip4 # HTTP/HTTPS are always allowed: $IPTABLES -A INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT $IPTABLES -A INPUT -p tcp --dport 443 -m state --state NEW -j ACCEPT # include default incoming rules DOWN . /etc/hobby-firewall/in_down.ip4 ## OUTPUT ## # Outbound established and related traffic is ok: $IPTABLES -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # include default outcomming rules UP . /etc/hobby-firewall/out_up.ip4 # include http_allow.ip4 . /etc/hobby-firewall/http_allow.ip4 # include ftp_allow.ip4 . /etc/hobby-firewall/ftp_allow.ip4 # include default outgoing rules down . /etc/hobby-firewall/out_down.ip4
/etc/hobby-firewall/rules6
Volgt nog zodra deze ook gestandiseert is
/etc/hobby-firewall/hobby-firewall.local
Wanneer deze file op server bestaat zorgt deze er voor dat de allow_* files worden omgezet naar ip adresseren en worden toegestaan in de uitgaande firewall.
#!/bin/bash # Vertaal domeinnamen naar IP adressen t.b.v. hobby-firewall # In de onderliggende scripts wordt $MAPNAME vertaald # naar /usr/local/hobbynet/firewall/$MAPNAME. # In die map staan de originele 'allow'-bestanden # die vertaald gaan worden naar een lijst met IP adressen. MAPNAME=cacert /usr/local/hobbynet/bin/getip-http $MAPNAME /usr/local/hobbynet/bin/getip-ftp $MAPNAME
$MAPNAME geeft aan in welke directory de allow files staan in /usr/local/hobbynet/firewall
/usr/local/hobbynet/bin/getip-http
Dit script maakt van de allow_http allow_http.ip4 allow_http.ip6 een lijst van toegestane webservers
#!/bin/sh # # dit script zorgt er voor dat ip address zo wel IPv4 als IPv6 worden opgehaald voor dat de firewall wordt gestart of hestart # # HOSTS=/usr/local/hobbynet/firewall/$1/allow_http HOSTSIP4=/usr/local/hobbynet/firewall/$1/allow_http.ip4 HOSTSIP6=/usr/local/hobbynet/firewall/$1/allow_http.ip6 HOSTSV4RAW=/etc/hobby-firewall/allow_http.v4raw HOSTSV6RAW=/etc/hobby-firewall/allow_http.v6raw HOSTSV4=/etc/hobby-firewall/allow_http.v4 HOSTSV6=/etc/hobby-firewall/allow_http.v6 # check if $HOSTS exisists if [ ! -e $HOSTS ] ; then echo "$HOSTS ontbreekt geen nieuwe ip files gemaakt!!" exit 1 fi rm $HOSTSV4 $HOSTSV6 echo generating http IPv4 adres file and IPv6 adres file from $HOSTS for i in `cat $HOSTS` do server_ip=`host $i |grep address | grep -v IPv6|awk '{printf "%s\n",$4}'` echo $server_ip >> $HOSTSV4RAW server_ip=`host $i |grep address | grep IPv6|awk '{printf "%s\n",$5}'` echo $server_ip>> $HOSTSV6RAW # niet resolve bare namen weer geven # developers.facebook.com wordt wel gevonden maar geeft ook not found dus exclude van de weergave host $i| grep "not found:"| grep -v developers.facebook.com done # ip addressen lijst toevoegen aan de raw file cat $HOSTSIP4 >> $HOSTSV4RAW cat $HOSTSIP6 >> $HOSTSV6RAW # raw files strippen van lege regels en alle ip addressen op eigen regel zetten cat $HOSTSV4RAW | tr ' ' '\n'| sed '/^$/d' > $HOSTSV4 cat $HOSTSV6RAW | tr ' ' '\n'| sed '/^$/d' > $HOSTSV6 #raw files opruimen rm $HOSTSV4RAW $HOSTSV6RAW
/usr/local/hobbynet/bin/getip-ftp
Dit script maakt van de allow_ftp allow_ftp.ip4 allow_ftp.ip6 een lijst van toegestane
#!/bin/sh # # dit script zorgt er voor dat ip address zo wel IPv4 als IPv6 worden opgehaald voor dat de firewall wordt gestart of hestart # # HOSTS=/usr/local/hobbynet/firewall/$1/allow_ftp HOSTSIP4=/usr/local/hobbynet/firewall/$1/allow_ftp.ip4 HOSTSIP6=/usr/local/hobbynet/firewall/$1/allow_ftp.ip6 HOSTSV4RAW=/etc/hobby-firewall/allow_ftp.v4raw HOSTSV6RAW=/etc/hobby-firewall/allow_ftp.v6raw HOSTSV4=/etc/hobby-firewall/allow_ftp.v4 HOSTSV6=/etc/hobby-firewall/allow_ftp.v6 # check if $HOSTS exisists if [ ! -e $HOSTS ] ; then echo "$HOSTS ontbreekt geen nieuwe ip files gemaakt!!" exit 1 fi rm $HOSTSV4 $HOSTSV6 echo generating FTP IPv4 adres file and IPv6 adres file from $HOSTS for i in `cat $HOSTS` do server_ip=`host $i |grep address | grep -v IPv6|awk '{printf "%s\n",$4}'` echo $server_ip >> $HOSTSV4RAW server_ip=`host $i |grep address | grep IPv6|awk '{printf "%s\n",$5}'` echo $server_ip>> $HOSTSV6RAW # niet resolve bare namen weer geven # developers.facebook.com wordt wel gevonden maar geeft ook not found dus exclude van de weergave host $i| grep "not found:"| grep -v developers.facebook.com done # ip addressen lijst toevoegen aan de raw file cat $HOSTSIP4 >> $HOSTSV4RAW cat $HOSTSIP6 >> $HOSTSV6RAW # raw files strippen van lege regels en alle ip addressen op eigen regel zetten cat $HOSTSV4RAW | tr ' ' '\n'| sed '/^$/d' > $HOSTSV4 cat $HOSTSV6RAW | tr ' ' '\n'| sed '/^$/d' > $HOSTSV6 #raw files opruimen rm $HOSTSV4RAW $HOSTSV6RAW
instalatie nieuwe firewall
Zorg er voor dat volgende mount points er zijn /usr/local/hobbynet/firewall/general /usr/local/hobbynet/bin
Indien gebruik wordt gemaakt wordt van allow_http en ftp dan moet commentaar uit rules file worden verwijderd en moet er ook mount point zijn /usr/local/hobbynet/firewall/naamserver(groep)
indien er lokale /usr/local/hobbynet/bin directory is moeten daar volgende files naar toe gekopieerd worden getip_http, getip_ftp, get_ip4 en get_ip6
cp /usr/local/hobbynet/firewall/general/hobby-firewall /etc/init.d/hobby-firewall mkdir /etc/hobby-firewall cp /usr/local/hobbynet/firewall/general/rules /etc/hobby-firewall cp /usr/local/hobbynet/firewall/general/rules6 /etc/hobby-firewall chmod 600 /etc/hobby-firewall/*
pas hier na de rule files nog aan zodat ze geschikt zijn deze server