Listing 1. trillian.fw
#!/bin/sh
#
# Firewall Builder fwb_ipt v1.0.8-3
#
# Generated Tue Mar 11 08:01:21 2003 CST
log() {
if test -x "$LOGGER"; then
logger -p info "$1"
fi
}
MODPROBE="/sbin/modprobe"
IPTABLES="/sbin/iptables"
IP="/sbin/ip"
LOGGER="/usr/bin/logger"
cd /etc || exit 1
log "Activating firewall script..."
va_num=1
FWD='cat /proc/sys/net/ipv4/ip_forward'
echo "0" > /proc/sys/net/ipv4/ip_forward
echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
echo 1800 > /proc/sys/net/ipv4/tcp_keepalive_intvl
$IP -4 neigh flush dev eth0
$IP -4 addr flush dev eth0 label "eth0:FWB*"
$IPTABLES -P OUTPUT DROP
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
cat /proc/net/ip_tables_names | while read table; do
$IPTABLES -t $table -L -n | \
while read c chain rest; do
if test "X$c" = "XChain" ; then
$IPTABLES -t $table -F $chain
fi
done
$IPTABLES -t $table -X
done
$IPTABLES -A INPUT -m state \
--state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A OUTPUT -m state \
--state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -m state \
--state ESTABLISHED,RELATED -j ACCEPT
# Rule 0(lo): Outbound from loopback
$IPTABLES -A OUTPUT -o lo -j ACCEPT
# Rule 1(lo): Inbound from loopback
$IPTABLES -A INPUT -i lo -j ACCEPT
# Rule 0(global)
$IPTABLES -A INPUT -p tcp -m multiport \
--destination-port 80,443 -m state \
--state NEW -j ACCEPT
# Rule 1(global)
$IPTABLES -A OUTPUT -p tcp --destination-port 53 \
-m state --state NEW -j ACCEPT
$IPTABLES -A OUTPUT -p udp --destination-port 53 \
-m state --state NEW -j ACCEPT
# Rule 2(global)
$IPTABLES -A INPUT -p tcp -s 192.168.111.0/24 \
--destination-port 22 -m state --state NEW \
-j ACCEPT
# Rule 3(global)
$IPTABLES -N RULE_3
$IPTABLES -A FORWARD -j RULE_3
$IPTABLES -A RULE_3 -j LOG --log-level warning \
--log-prefix "RULE 3 -- DROP " --log-ip-options
$IPTABLES -A RULE_3 -j DROP
echo 0 > /proc/sys/net/ipv4/ip_forward