rendered paste bodydepend() {
before net
need logger
}
start() {
ebegin "Starting Firewall"
#Needed Variables
INTERFACEINT="ppp0"
INTERFACELAN="eth0"
IPSTOGATEWAY="192.168.0.25"
#protection against syn-flooding
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
for f in /proc/sys/net/ipv4/conf/*/rp_filter; do
echo 1 > $f
done
#in case this hasnt been done by some distrosettings...
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo "0" > /proc/sys/net/ipv4/conf/all/accept_source_route
echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
echo "1" > /proc/sys/net/ipv4/ip_forward
#flush the rulez...
iptables -F
iptables -X
iptables -Z
#defaultpolicies (not realy needed :) )
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -N logncrunch
#-----------POSTROUTING----------
iptables -t nat -A PREROUTING -p udp --dport 28004 -j DNAT --to-destination 192.168.0.25:28004 #q4
iptables -t nat -A POSTROUTING -o ppp0 -s $IPSTOGATEWAY/255.255.255.0 -j MASQUERADE
#-----------INPUT-----------
#sort the incoming stuff into the chains
iptables -A INPUT -i lo -j ACCEPT #loopback will be allowed
iptables -A INPUT -i $INTERFACEINT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i $INTERFACELAN -m state --state ESTABLISHED,RELATED -j ACCEPT
#services to the internet
iptables -A INPUT -i $INTERFACEINT -p TCP --destination-port 42042 -j ACCEPT #ssh
iptables -A INPUT -i $INTERFACEINT -p TCP --destination-port 8010 -s 84.173.6.77 -j ACCEPT
iptables -A INPUT -i $INTERFACEINT -p UDP --destination-port 3000 -s 83.236.220.30 -j ACCEPT #ts3server
#iptables -A INPUT -i $INTERFACEINT -p TCP --destination-port 5900 -j ACCEPT #vnc
#iptables -A INPUT -i $INTERFACEINT -p TCP --destination-port 8010 -s 134.155.26.73 -j ACCEPT #psi file trans
iptables -A INPUT -i $INTERFACEINT -p TCP --destination-port 8010 -s 82.193.229.150 -j ACCEPT #psi file trans
#services to the lan
iptables -A INPUT -i $INTERFACELAN -p TCP --destination-port 42042 -j ACCEPT #ssh
iptables -A INPUT -i $INTERFACELAN -p TCP --destination-port 1235 -j ACCEPT #netcat
iptables -A INPUT -j logncrunch
#-----------FORWARD------------------
iptables -A FORWARD -m state --state INVALID -j logncrunch
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
iptables -A FORWARD -i $INTERFACELAN -o $INTERFACEINT -s $IPSTOGATEWAY -j ACCEPT
iptables -A FORWARD -i $INTERFACEINT -o $INTERFACELAN -d $IPSTOGATEWAY -j ACCEPT
iptables -A FORWARD -j logncrunch
#-------------OUTPUT---------
iptables -A OUTPUT -o lo -j ACCEPT #loopback will be allowed
iptables -A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -j logncrunch
#--------logncrunch----------------
iptables -A logncrunch -m limit --limit 1/minute -j LOG
iptables -A logncrunch -j DROP
eend 0;
}
restart() {
svc_stop
svc_start
eend 0;
}
stop() {
#flush the rulez...
iptables -F
iptables -X
iptables -Z
#defaultpolicies (not realy needed :) )
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
eend 0;
}
opts="${opts} strip"
strip() {
#open ourselves up
iptables -F
iptables -X
iptables -Z
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
eend 0;
}