#!/bin/sh #Das WLAN-Interface ist bis auf Port 1723 gesperrt, also nur #mittels pptp nutzbar. #Aus dem Internet darf man auf pptp, ssh, http und imaps zugreifen #Ausserdem werden ICQ-Dateiuebertragungen an den Rechner mit ICQ_IP #weitergeleitet ebenso wie Netzwerkverkehr von Need For Speed Underground DEV_EXT=ppp0 DEV_INT=eth1 DEV_WLAN=eth0 LOCALNETWORK="192.168.1.0/24" ICQ_IP=192.168.1.1 modprobe ip_tables modprobe ip_conntrack modprobe ip_conntrack_ftp modprobe ip_conntrack_irc modprobe ip_nat_irc modprobe ip_nat_ftp #limits schaffen, um DoS zu erschweren und masquerading einschalten echo "1" > /proc/sys/net/ipv4/ip_forward echo "1" > /proc/sys/net/ipv4/tcp_syncookies echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter echo "0" > /proc/sys/net/ipv4/conf/all/accept_redirects echo "0" > /proc/sys/net/ipv4/conf/all/accept_source_route echo "0" > /proc/sys/net/ipv4/conf/all/bootp_relay echo "1" > /proc/sys/net/ipv4/conf/all/log_martians # default-policies festlegen iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT # loeschen aller alten evtl noch vorhandenen rules iptables -F iptables -t nat -F iptables -X # loopback muss lokal offen sein iptables -A OUTPUT -o lo -j ACCEPT iptables -A INPUT -i lo -j ACCEPT # ICQ iptables -A INPUT -p tcp --sport 1024:65535 --dport 20000:20020 -j ACCEPT iptables -A OUTPUT -p tcp ! --syn --sport 20000:20020 --dport 1024:65535 -j ACCEPT iptables -A FORWARD -p tcp -s $ICQ_IP --sport 20000:20020 --dport 1024:65535 -j ACCEPT iptables -A FORWARD -p tcp -d $ICQ_IP --sport 20000:20020 --dport 1024:65535 -j ACCEPT iptables -t nat -A PREROUTING -p tcp -i $DEV_EXT --dport 20000:20020 -j DNAT --to $ICQ_IP # nfsu # Leitet alle fuer Need for Speed Underground relevanten Ports an einen # bestimmten Rechner (ICQ_IP) iptables -A INPUT -p tcp --sport 1024:65535 --dport 10900:10999 -j ACCEPT iptables -A OUTPUT -p tcp ! --syn --sport 10900:10999 --dport 1024:65535 -j ACCEPT iptables -A FORWARD -p tcp -s $ICQ_IP --sport 10900:10999 --dport 1024:65535 -j ACCEPT iptables -A FORWARD -p tcp -d $ICQ_IP --sport 10900:10999 --dport 1024:65535 -j ACCEPT iptables -t nat -A PREROUTING -p tcp -i $DEV_EXT --dport 10900:10999 -j DNAT --to $ICQ_IP iptables -A INPUT -p udp --sport 1024:65535 --dport 3658:3659 -j ACCEPT iptables -A OUTPUT -p udp --sport 3658:3659 --dport 1024:65535 -j ACCEPT iptables -A FORWARD -p udp -s $ICQ_IP --sport 3658:3659 --dport 1024:65535 -j ACCEPT iptables -A FORWARD -p udp -d $ICQ_IP --sport 3658:3659 --dport 1024:65535 -j ACCEPT iptables -t nat -A PREROUTING -p udp -i $DEV_EXT --dport 3658:3659 -j DNAT --to $ICQ_IP # masquerading einschalten iptables -t nat -A POSTROUTING -o $DEV_EXT -j MASQUERADE # pakete die zu bestehenden verbindungen gehoeren (established) # und solche die dazugehoeren (related) duerfen rein iptables -A INPUT -m state --state ESTABLISHED,RELATED -i "$DEV_EXT" -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -i "$DEV_INT" -j ACCEPT # LAN reinlassen, ggf ans LAN anpassen iptables -A INPUT -s "$LOCALNETWORK" -i "$DEV_INT" -j ACCEPT # 4662 tcp und 4666 udp fuer Edonkey2k darf rein iptables -A INPUT -i $DEV_EXT --protocol tcp --dport 4662 -j ACCEPT iptables -A INPUT -i $DEV_EXT --protocol udp --dport 4666 -j ACCEPT #Port 1723 fuers pptp an WLAN und Extern iptables -A INPUT -i $DEV_WLAN --protocol tcp --dport 1723 -j ACCEPT iptables -A INPUT -i $DEV_EXT --protocol tcp --dport 1723 -j ACCEPT #Port 993 fuer imaps an Extern iptables -A INPUT -i $DEV_EXT --protocol tcp --dport 993 -j ACCEPT #Port 80 fuer http an Extern iptables -A INPUT -i $DEV_EXT --protocol tcp --dport 80 -j ACCEPT #Port 22 fuer ssh an Extern iptables -A INPUT -i $DEV_EXT --protocol tcp --dport 22 -j ACCEPT # ident-anfragen rejecten iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED -i "$DEV_EXT" -p TCP --dport auth -j REJECT iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED -i "$DEV_EXT" -p UDP --dport auth -j REJECT iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED -i "$DEV_WLAN" -p TCP --dport auth -j REJECT iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED -i "$DEV_WLAN" -p UDP --dport auth -j REJECT iptables -A FORWARD -i $DEV_INT -s $LOCALNETWORK -j ACCEPT iptables -A FORWARD -i $DEV_INT -d $LOCALNETWORK -j ACCEPT #pptp Interfaces durchlassen iptables -A INPUT -i ppp+ -s $LOCALNETWORK -d $LOCALNETWORK -j ACCEPT iptables -A OUTPUT -o ppp+ -s $LOCALNETWORK -d $LOCALNETWORK -j ACCEPT #und ggf NATen iptables -A FORWARD -m state --state ESTABLISHED,RELATED -i "$DEV_EXT" -p TCP --dport auth --syn -j ACCEPT #Alles andere an WLAN und Extern ablehnen iptables -A INPUT -m state --state NEW -i $DEV_EXT -j DROP iptables -A INPUT -m state --state NEW -i $DEV_WLAN -j DROP