#!/bin/bash
##
# Firewall
##
#fw_script=/etc/rc.firewall
fw_script=/Users/johnw/src/firewall/rc.firewall
. /etc/rc.common
StartService ()
{
if [ "${FIREWALL:=-NO-}" = "-YES-" ]
then
ConsoleMessage "Starting Firewall"
sleep 10
gwmac=$(arp $(netstat -f inet -nr | grep ^default | awk '{print $2}') | \
perl -ne 'print $1, "\n" if / at (.+?) on /;')
case "$gwmac" in
0:1c:10:bc:b4:46)
sh $fw_script --blackhole --trusted-tcp 6900,44176,44177 \
en0+mac::192.168.3.0/24 \
en1+mac::192.168.2.0/24 en1\{0,0\} \
vmnet8+win::192.168.36.0/24 \
tun0\{0,0\}::10.0.0.0/16 \
tap0\{0,0\}+win::10.9.19.0/24 \
tap0\{0,0\}+win::172.24.8.0/24
ConsoleMessage "Home Firewall started for Hermes"
echo "Home" > /var/run/firewall-type ;;
*)
sh $fw_script --blackhole --trusted-tcp 8140 \
en0 en1\{512Kbits/s,256Kbits/s\} \
vmnet8+win::192.168.36.0/24 \
tun0::10.8.0.0/24 tun0 \
tun1::10.9.0.0/24 tun1 \
tap0\{500Kbits/s,250Kbits/s\}+win::10.9.19.0/24 \
tap0\{500Kbits/s,250Kbits/s\}+win::172.24.8.0/24 tap0
ConsoleMessage "Remote Firewall started for Hermes"
echo "Automatic" > /var/run/firewall-type ;;
esac
fi
}
StopService ()
{
ConsoleMessage "Stopping Firewall"
/sbin/ipfw -f -q flush
}
RestartService ()
{
StopService
StartService
}
RunService "$1"