rendered paste body#!/bin/sh
# Variables
INTIF="br0"
EXTIF="ppp0"
MASQUNET="192.168.8.0/24"
IPT="/sbin/iptables"
dmesg -n2
start() {
echo -n "Starting Firewall: "
# erst mal alles lschen
$IPT -F
$IPT -X
$IPT -t nat -F
#default policies
$IPT -P INPUT DROP
$IPT -P FORWARD DROP
$IPT -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
#$IPT -A INPUT -s 00:03:0D:1D:18:07 -j LOG
#$IPT -A INPUT -s 00:03:0D:1D:18:07 -j DROP
#Masquerading
$IPT -t nat -A POSTROUTING -s $MASQUNET -o $EXTIF -j MASQUERADE
echo 1 >> /proc/sys/net/ipv4/ip_forward
# Create chain which blocks new connections, except if coming from inside
$IPT -N block
#$IPT -A block -o $EXTIF -j LOG
$IPT -A block -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A block -m state --state NEW -i ! $EXTIF -j ACCEPT
$IPT -A block -j LOG
$IPT -A block -j DROP
#Create chain that blocks incoming traffic from outside, if it comes from a local IP
$IPT -N inet
# disable local nets incomming from outside
$IPT -A inet -s $MASQUNET -j LOG
$IPT -A inet -s $MASQUNET -j DROP
$IPT -A inet -s 192.168.0.0/16 -j LOG
$IPT -A inet -s 192.168.0.0/16 -j DROP
$IPT -A inet -s 10.0.0.0/8 -j LOG
$IPT -A inet -s 10.0.0.0/8 -j DROP
$IPT -A inet -s 172.16.1.0/16 -j LOG
$IPT -A inet -s 172.16.1.0/16 -j DROP
# allow ssh
$IPT -A inet -p tcp --dport 22 -j ACCEPT
#allow smtp
#$IPT -A inet -p tcp --dport 25 -j ACCEPT
#allow openvpn 5000
#$IPT -A inet -p tcp --dport 80 -j ACCEPT
#$IPT -A inet -p udp --dport 5000 -j ACCEPT
#allow openvpn 5000
#$IPT -A inet -p udp --dport 5001 -j ACCEPT
#allow openvpn 5000
#$IPT -A inet -p udp --dport 5002 -j ACCEPT
#$IPT -A inet -p udp --dport 5003 -j ACCEPT
#$IPT -A inet -p udp --dport 5004 -j ACCEPT
# allow http
$IPT -A inet -p tcp --dport 80 -j ACCEPT
# allow TS2
#$IPT -A inet -p udp --dport 8767 -j ACCEPT
#allow mangos
$IPT -A inet -p tcp --dport 3724 -j ACCEPT
$IPT -t nat -A PREROUTING -i $EXTIF -p tcp -m tcp --dport 3724 -j DNAT --to-destination 192.168.8.2
$IPT -A FORWARD -i $EXTIF -o $INTIF -p tcp -d 192.168.8.2 --dport 3724 -j ACCEPT
$IPT -A inet -p tcp --dport 8085 -j ACCEPT
$IPT -t nat -A PREROUTING -i $EXTIF -p tcp -m tcp --dport 8085 -j DNAT --to-destination 192.168.8.2
$IPT -A FORWARD -i $EXTIF -o $INTIF -p tcp -d 192.168.8.2 --dport 8085 -j ACCEPT
#bittorent
$IPT -A inet -p tcp --dport 53924 -j ACCEPT
$IPT -t nat -A PREROUTING -i $EXTIF -p tcp -m tcp --dport 53924 -j DNAT --to-destination 192.168.8.18
$IPT -A FORWARD -i $EXTIF -o $INTIF -p tcp -d 192.168.8.18 --dport 53924 -j ACCEPT
# allow https
# $IPT -A inet -p tcp --dport 443 -j ACCEPT
#allow neverwinther nights
#$IPT -A inet -p udp --dport 5121 -j ACCEPT
#$IPT -t nat -A PREROUTING -i $EXTIF -p udp -m udp --dport 5121 -j DNAT --to-destination 192.168.8.2
#$IPT -A FORWARD -i $EXTIF -o $INTIF -p udp -d 192.168.8.2 --dport 5121 -j ACCEPT
#allow mysql
# $IPT -A inet -p tcp --dport 3306 -j ACCEPT
#allow apache
#$IPT -A inet -p tcp --dport 80 -j ACCEPT
#allow https
# $IPT -A inet -p tcp --dport 443 -j ACCEPT
#allow POP3 from outside
#IPT -A inet -p tcp --dport 110 -j ACCEPT
#allow bittorrent
$IPT -A inet -p tcp --dport 3724 -j ACCEPT
$IPT -t nat -A PREROUTING -i $EXTIF -p tcp -m tcp --dport 3724 -j DNAT --to-destination 192.168.8.11
$IPT -A FORWARD -i $EXTIF -o $INTIF -p tcp -d 192.168.8.11 --dport 3742 -j ACCEPT
$IPT -A inet -p tcp --dport 6881:6999 -j ACCEPT
$IPT -t nat -A PREROUTING -i $EXTIF -p tcp -m tcp --dport 6881:6999 -j DNAT --to-destination 192.168.8.11
$IPT -A FORWARD -i $EXTIF -o $INTIF -p tcp -d 192.168.8.11 --dport 6881:6999 -j ACCEPT
$IPT -A inet -p tcp --dport 6112 -j ACCEPT
$IPT -t nat -A PREROUTING -i $EXTIF -p tcp -m tcp --dport 6112 -j DNAT --to-destination 192.168.8.11
$IPT -A FORWARD -i $EXTIF -o $INTIF -p tcp -d 192.168.8.11 --dport 6112 -j ACCEPT
#allow JediServer
#$IPT -A inet -p udp --dport 29070 -j ACCEPT
#$IPT -t nat -A PREROUTING -i $EXTIF -p udp -m udp --dport 29070 -j DNAT --to-destination 192.168.8.2
#$IPT -A FORWARD -i $EXTIF -o $INTIF -p udp -d 192.168.8.2 --dport 29070 -j ACCEPT
#civilisation (dx8)
$IPT -A inet -p udp --dport 2302:2400 -j ACCEPT
$IPT -t nat -A PREROUTING -i $EXTIF -p udp -m udp --dport 2302 -j DNAT --to-destination 192.168.8.18
$IPT -A FORWARD -i $EXTIF -o $INTIF -p udp -d 192.168.8.18 --dport 2302:2400 -j ACCEPT
#allow empire earth
#$IPT -A inet -p tcp --dport 33335 -j ACCEPT
#$IPT -A inet -p tcp --dport 33336 -j ACCEPT
#$IPT -A inet -p udp --dport 33334 -j ACCEPT
#$IPT -t nat -A PREROUTING -i $EXTIF -p tcp -m tcp --dport 33335 -j DNAT --to-destination 192.168.9.18
#$IPT -t nat -A PREROUTING -i $EXTIF -p tcp -m tcp --dport 33336 -j DNAT --to-destination 192.168.9.18
#$IPT -t nat -A PREROUTING -i $EXTIF -p udp -m udp --dport 33334 -j DNAT --to-destination 192.168.9.18
#$IPT -A FORWARD -i $EXTIF -o $INTIF -p tcp -d 192.168.9.18 --dport 33335 -j ACCEPT
#$IPT -A FORWARD -i $EXTIF -o $INTIF -p tcp -d 192.168.9.18 --dport 33336 -j ACCEPT
#$IPT -A FORWARD -i $EXTIF -o $INTIF -p udp -d 192.168.9.18 --dport 33334 -j ACCEPT
#allow edonkey
#$IPT -A inet -p tcp --dport 4661 -j ACCEPT
#$IPT -A inet -p tcp --dport 4662 -j ACCEPT
#$IPT -A inet -p udp --dport 3271 -j ACCEPT
#$IPT -A inet -p udp --dport 4665 -j ACCEPT
#port forwarding edonkey
#$IPT -t nat -A PREROUTING -i $EXTIF -p tcp -m tcp --dport 4662 -j DNAT --to-destination 192.168.8.2
#$IPT -A FORWARD -i $EXTIF -o $INTIF -p tcp -d 192.168.8.2 --dport 4662 -j ACCEPT
#$IPT -t nat -A PREROUTING -i $EXTIF -p udp -m udp --dport 3271 -j DNAT --to-destination 192.168.8.2
#$IPT -A FORWARD -i $EXTIF -o $INTIF -p udp -d 192.168.8.2 --dport 3271 -j ACCEPT
#allow Jedi Academy Server
#$IPT -A inet -p udp --dport 29070 -j ACCEPT
#port forwarding Jedi Academy Server
#$IPT -t nat -A PREROUTING -i $EXTIF -p udp -m udp --dport 29070 -j DNAT --to-destination 192.168.11.2
#$IPT -A FORWARD -i $EXTIF -o $INTIF -p udp -d 192.168.11.2 --dport 29070 -j ACCEPT
#allow Siedler 4
#$IPT -A inet -p tcp --dport 3000 -j ACCEPT
#$IPT -t nat -A PREROUTING -i $EXTIF -p tcp -m tcp --dport 3000 -j DNAT --to-destination 192.168.11.15
#$IPT -A FORWARD -i $EXTIF -o $INTIF -p tcp -d 192.168.11.15 --dport 3000 -j ACCEPT
#$IPT -A inet -p tcp --dport 3105 -j ACCEPT
#$IPT -t nat -A PREROUTING -i $EXTIF -p tcp -m tcp --dport 3105 -j DNAT --to-destination 192.168.11.15
#$IPT -A FORWARD -i $EXTIF -o $INTIF -p tcp -d 192.168.11.15 --dport 3105 -j ACCEPT
#$IPT -A inet -p udp --dport 3000 -j ACCEPT
#$IPT -t nat -A PREROUTING -i $EXTIF -p udp -m udp --dport 3000 -j DNAT --to-destination 192.168.11.15
#$IPT -A FORWARD -i $EXTIF -o $INTIF -p udp -d 192.168.11.15 --dport 3000 -j ACCEPT
#$IPT -A inet -p udp --dport 3105 -j ACCEPT
#$IPT -t nat -A PREROUTING -i $EXTIF -p udp -m udp --dport 3105 -j DNAT --to-destination 192.168.11.15
#$IPT -A FORWARD -i $EXTIF -o $INTIF -p udp -d 192.168.11.15 --dport 3105 -j ACCEPT
#killfucking
$IPT -A INPUT -d 87.248.104.123 -j LOG
$IPT -A INPUT -d 87.248.104.123 -j DROP
#Other
# Jump to that chain from INPUT and FORWARD chains
$IPT -A INPUT -i $EXTIF -j inet
$IPT -A INPUT -j block
$IPT -A FORWARD -j block
#$IPT -A INPUT -i $INTIF -j LOG
#$IPT -A OUTPUT -o $EXTIF -j LOG
$IPT -A OUTPUT -o $EXTIF -d $MASQUNET -j LOG
$IPT -A OUTPUT -o $EXTIF -d $MASQUNET -j DROP
#$IPT -A OUTPUT -o $EXTIF -d $172.16.1.0/24 -j LOG
#$IPT -A OUTPUT -o $EXTIF -d $172.16.1.0/24 -j DROP
touch /var/lock/subsys/iptables
echo "done"
}
stop() {
echo -n stopping firewall...
$IPT -F
$IPT -X
$IPT -P INPUT ACCEPT
$IPT -P OUTPUT ACCEPT
$IPT -P FORWARD ACCEPT
echo done.
rm -f /var/lock/subsys/iptables
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
# "restart" is really just "start" as this isn't a daemon,
# and "start" clears any pre-defined rules anyway.
# This is really only here to make those who expect it happy
start
;;
condrestart)
[ -e /var/lock/subsys/iptables ] && start
;;
status)
echo $"Table: filter"
$IPT --list -n -v
echo
echo $"Table: nat"
$IPT -t nat --list -n -v
echo
echo $"Table: mangle"
$IPT -t mangle --list -n -v
;;
panic)
echo -n $"Changing target policies to DROP: "
$IPT -P INPUT DROP && \
$IPT -P FORWARD DROP && \
$IPT -P OUTPUT DROP && \
$IPT -t nat -P PREROUTING DROP && \
$IPT -t nat -P POSTROUTING DROP && \
$IPT -t nat -P OUTPUT DROP && \
$IPT -t mangle -P PREROUTING DROP && \
$IPT -t mangle -P OUTPUT DROP && \
success $"Changing target policies to DROP" || \
failure $"Changing target policies to DROP"
echo
$IPT -F INPUT && \
$IPT -F FORWARD && \
$IPT -F OUTPUT && \
$IPT -t nat -F PREROUTING && \
$IPT -t nat -F POSTROUTING && \
$IPT -t nat -F OUTPUT && \
$IPT -t mangle -F PREROUTING && \
$IPT -t mangle -F OUTPUT && \
success $"Flushing all chains:" || \
failure $"Flushing all chains:"
$IPT -X INPUT && \
$IPT -X FORWARD && \
$IPT -X OUTPUT && \
$IPT -t nat -X PREROUTING && \
$IPT -t nat -X POSTROUTING && \
$IPT -t nat -X OUTPUT && \
$IPT -t mangle -X PREROUTING && \
$IPT -t mangle -X OUTPUT && \
success $"Removing user defined chains:" || \
failure $"Removing user defined chains:"
;;
*)
echo $"Usage: $0 {start|stop|restart|condrestart|status|panic|save}"
exit 1
esac
exit 0