#!/bin/sh #ytti@iki.fi, toimii mulla, ei välttämättä sulla, avh. # editoinut laiti (at) iki.fi ipv6-kuntoon, toimii myös mulla # jotkut toiminnot saattavat vaatia usagi-patchin kerneliin. Lisätietoa # osoitteessa http://www.linux-ipv6.org/ PATH='/usr/sbin:/sbin:/usr/bin:/bin' #modprobe ip6t_REJECT #modprobe ip6_conntrack_ftp #modprobe ip6t_state # ipv6-verkkolaitteen nimi int="sics" # paikallisverkkoon juttelevan ipv6-laitteen nimi lint="eth0" case "$1" in start) echo -n "Starting firewall: " mie="`ifconfig $lint |grep 'inet6 addr:'|grep ' Scope:Global'|head -1|sed -e 's/.*inet6 addr:\ \([a-f0-9\:]\+\/[0-9]\+\).*/\1/'`" # tiputetan kaikki ip6tables -F ip6tables -P INPUT DROP ip6tables -P OUTPUT DROP ip6tables -P FORWARD DROP # luodaan loggaava tiputusketju ip6tables -N droplog ip6tables -F droplog ip6tables -A droplog -j LOG --log-level debug ip6tables -A droplog -j DROP # sallitaan localhostissa liikenne molempiin suuntiin ip6tables -A INPUT -i lo -j ACCEPT ip6tables -A OUTPUT -o lo -j ACCEPT # sallitaan lähiverkon liikenne if [ $lint ]; then ip6tables -A INPUT -d $mie -i $lint -j ACCEPT ip6tables -A OUTPUT -s $mie -o $lint -j ACCEPT fi # sallitaan yhteydet ulospäin ip6tables -A OUTPUT -s $mie -o $int -j ACCEPT # sallitaan muodostetut yhteydet tilatietoisesti sisään - vaatii usagi-patsin ip6tables -A INPUT -m state --state ESTABLISHED,RELATED -d $mie -i $int -j ACCEPT # sallitaan sisältä avatut yhteydet sekä ftp-data ja dns-pyynnöt sisään, ei vaadi usagia #ip6tables -A INPUT -p tcp -d $mie ! --syn -i $int -j ACCEPT #ip6tables -A INPUT -p tcp -d $mie --sport ftp-data -i $int -j ACCEPT #ip6tables -A INPUT -p udp -d $mie --sport domain -i $int -j ACCEPT # sallitaan ICMP-viestit sisään ip6tables -A INPUT -p ipv6-icmp -m limit --limit 1/second -d $mie -i $int -j ACCEPT # sallitaan ssh sisään ip6tables -A INPUT -p tcp -d $mie --dport ssh -i $int -j ACCEPT # sallitaan irkiltä ident-pyynnöt ip6tables -A INPUT -p tcp -s irc.cc.tut.fi -d $mie --dport auth -i $int -j ACCEPT ip6tables -A INPUT -p tcp -s eu.irc6.net -d $mie --dport auth -i $int -j ACCEPT ip6tables -A INPUT -p tcp -s linz.irc.at -d $mie --dport auth -i $int -j ACCEPT ip6tables -A INPUT -p tcp -s irc.ipv6.xs4all.nl -d $mie --dport auth -i $int -j ACCEPT # hylätään ident ja socks, eikä logata - reject vaatii usagin ip6tables -A INPUT -p tcp -m multiport -d $mie --dport auth,socks -i $int -j REJECT # sallitaan portit 65100-65400 ip6tables -A INPUT -p tcp -d $mie --dport 65100:65400 -i $int -j ACCEPT ip6tables -A INPUT -p udp -d $mie --dport 65100:65400 -i $int -j ACCEPT # logataan tiputetut ip6tables -A INPUT -j droplog echo "ytti6." ;; stop) echo -n "Stopping firewall: " ip6tables -F ip6tables -P INPUT ACCEPT ip6tables -P OUTPUT ACCEPT ip6tables -P FORWARD ACCEPT ip6tables -F droplog ip6tables -X droplog echo "ytti6." ;; restart) $0 stop ; $0 start ;; reload) $0 start ;; Pre-Up) ip6tables -F ip6tables -P INPUT DROP ip6tables -P OUTPUT DROP ip6tables -P FORWARD DROP ;; *) echo "Usage: $0 {start|stop|restart|reload}" >&2 exit 1 ;; esac exit 0