rendered paste bodygeo@time:~/ticpu.mech$ cat /etc/init.d/natfire
#!/bin/sh
start() {
# Enable forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
# Reset iptables
# Empty the chains
iptables -t filter -F
iptables -t nat -F
# Remove user added chains
iptables -t filter -X
iptables -t nat -X
# Default to deny all inbound
iptables -P INPUT DROP # To your computer
iptables -P FORWARD ACCEPT # From and To your network
iptables -P OUTPUT ACCEPT # From your computer
# Enable connection tracking for
# active FTP and IRC/DCC
# Load the modules
modprobe ip_nat_ftp
modprobe ip_nat_irc
# Allow ports in relation with the modules
iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Allow SSH!
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# Share the whole thing
iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o ppp0 -j MASQUERADE
# Allow some pings to get thru
iptables -A INPUT -p icmp --icmp-type echo-request \
-m limit --limit 6/minute -j ACCEPT
# Port forwarding
# 10.10.10.2 [whatever]
iptables -t nat -A PREROUTING -i ppp0 -m multiport \
-p tcp --dport 21,3389 -j DNAT --to 10.10.10.2
# UDP example
#iptables -t nat -A PREROUTING -i ppp0 -m multiport \
#-p udp --dport 53,14000:14500 -j DNAT --to 10.10.10.2
# RDP #2 example
#iptables -t nat -A PREROUTING -i ppp0 \
#-p tcp --dport 3389 -j DNAT --to 10.10.10.3:3390
}
stop() {
# Disable forwarding
echo 0 > /proc/sys/net/ipv4/ip_forward
# Disable connection tracking
rmmod ip_nat_ftp
rmmod ip_nat_irc
# Reset iptables
# Empty the chains
iptables -t filter -F
iptables -t nat -F
# Remove user added chains
iptables -t filter -X
iptables -t nat -X
# Default to deny all
iptables -P INPUT DROP # To your computer
iptables -P FORWARD DROP # From and To your network
iptables -P OUTPUT DROP # From your computer
# Always allow SSH, VNC...
iptables -A INPUT -p tcp -m multiport \
--dport 22,5901 -j ACCEPT
iptables -A OUTPUT -p tcp -m multiport \
--sport 22,5901 -j ACCEPT
# ...and DNS
iptables -A INPUT -p udp \
--dport 53 -j ACCEPT
iptables -A OUTPUT -p udp \
--sport 53 -j ACCEPT
}
# See how we were called.
case "$1" in
start)
start
RETVAL=$?
;;
stop)
stop
RETVAL=$?
;;
restart)
stop
start
RETVAL=$?
;;
force-reload)
stop
start
RETVAL=$?
;;
*)
echo "Usage: firestarter {start|stop|restart|force-reload|lock|status}"
exit 1
esac
exit 0
geo@time:~/ticpu.mech$