rendered paste bodydebian:~# cat fw
#!/bin/bash
echo "Setting up firewall rules..."
IPTABLES=/sbin/iptables
EXTERNAL_IFACE0=ppp0
EXTERNAL_IP=`/sbin/ifconfig ppp0 | grep 'inet addr' | awk '{print $2}' | sed -e 's/.*://'`
echo "Loading required stateful/NAT kernel modules..."
/sbin/depmod -a
/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_conntrack_irc
/sbin/modprobe iptable_nat
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_nat_irc
echo " Enabling IP forwarding..."
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/ipv4/ip_dynaddr
echo " External interface: $EXTERNAL_IFACE0"
echo " External interface IP address is: $EXTERNAL_IP"
echo " Loading firewall server rules..."
UNIVERSE=" 0.0.0.0/0"
# Start with a tough policy.
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT ACCEPT
# clean up
$IPTABLES -F
$IPTABLES -X
$IPTABLES -Z
$IPTABLES -A INPUT -i lo -j ACCEPT
# remote interface, any source, going to permanent PPP address is valid
$IPTABLES -A INPUT -i $EXTERNAL_IFACE0 -s $UNIVERSE -d $EXTERNAL_IP -j ACCEPT
$IPTABLES -m state -A INPUT -i $EXTERNAL_IFACE0 --state ESTABLISHED,RELATED -j ACCEPT
# on ppp0, allow SSH,HTTP and torrent
$IPTABLES -A INPUT -p tcp -m tcp --dport 22 -i $EXTERNAL_IFACE0 -j ACCEPT
$IPTABLES -A INPUT -p tcp -m tcp --dport 80 -i $EXTERNAL_IFACE0 -j ACCEPT
$IPTABLES -A INPUT -p tcp -m tcp --dport 6890:6999 -i $EXTERNAL_IFACE0 -j ACCEPT
# everywhere, allow ping and traceroute
$IPTABLES -A INPUT -p icmp -m icmp --icmp-type 0 -j ACCEPT
$IPTABLES -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
$IPTABLES -A INPUT -p icmp -m icmp --icmp-type 3 -j ACCEPT
$IPTABLES -A INPUT -p icmp -m icmp --icmp-type 11 -j ACCEPT
$IPTABLES -A INPUT -p icmp -m icmp --icmp-type 30 -j ACCEPT
$IPTABLES -A INPUT -p udp -m state --state ESTABLISHED -j ACCEPT
$IPTABLES -A INPUT -p icmp -m state --state RELATED,ESTABLISHED -j ACCEPT
# limit the number of incoming connections on port 22 ( SSH ) to 3 attempts a minute
$IPTABLES -I INPUT -p tcp --dport 22 -i $EXTERNAL_IFACE0 -m state --state NEW -m recent --set
$IPTABLES -I INPUT -p tcp --dport 22 -i $EXTERNAL_IFACE0 -m state --state NEW -m recent --update --seconds 60 --hitcount 3 -j DROP
DATE=(date +"%F %r")
echo "$DATE REBOOT 1.1.1.1" >> /var/log/check_ppp0
echo -e " Firewall rules loading complete\n\n"
debian:~#