moin!! wir verwenden SuSE 7.3 als gateway (tdsl) für unser netzwerk. es läuft so weit auch alles zufriedenstellend, jedoch funktioniert der zugang mittels ssh nicht. wir können zwar aus dem internen netz nach draußen aber weder von innen noch von außen auf das gateway per ssh zugreifen. wäre nett, wenn uns jemand helfen könnte. gruß markus brettschneider - - - - - - - - - ruleset - - - - - - - - - - #!/bin/bash #=====================================# # global # #=====================================# IPTABLES=/usr/sbin/iptables EXTERN=ppp0 INTERN=eth0 INTERN2=eth1 p_high=1024:65535 p_ssh=1000:1023 DNS=(217.5.115.77 194.25.2.129) #tonline SMTP=(217.72.192.157) #web.de IMAP=(217.72.192.135) #web.de POP3=(217.72.192.134) #web.de ICQ=(64.12.162.57) IRC=(209.9.44.200) #=====================================# # und los... # #=====================================# echo -n "" echo "" echo -n "bitoxin: Starte Firewall... " echo "" modprobe ip_conntrack #=======================================# # default-policies # #=======================================# echo -n "bitoxin: Setze 'default policies'... " $IPTABLES -F $IPTABLES -t nat -F $IPTABLES -X $IPTABLES -Z $IPTABLES -P INPUT DROP $IPTABLES -P FORWARD DROP $IPTABLES -P OUTPUT DROP echo "OK" #=======================================# # spoofing # #=======================================# echo -n "bitoxin: Setze Kernel-Parameter... " echo "1" > /proc/sys/net/ipv4/tcp_syncookies echo "1" > /proc/sys/net/ipv4/conf/all/log_martians echo "0" > /proc/sys/net/ipv4/conf/all/accept_redirects echo "0" > /proc/sys/net/ipv4/conf/all/accept_source_route echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts echo "OK" #=======================================# # scan # #=======================================# echo -n "bitoxin: Starte 'Scan Protection'... " $IPTABLES -A INPUT -p icmp --icmp-type echo-request\ -m limit --limit 5/minute -j LOG\ --log-prefix '#### Ping Scan ####' $IPTABLES -A INPUT -p tcp --tcp-flags SYN,ACK,FIN,RST RST\ -m limit --limit 1/s --limit-burst 5 -j LOG\ --log-level info\ --log-prefix '#### Stealth Scan ####' $IPTABLES -A INPUT -p tcp --tcp-flags ALL FIN,URG,PSH\ -m limit --limit 5/m -j LOG\ --log-level info\ --log-prefix '#### XMAS Scan ####' $IPTABLES -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST\ -m limit --limit 5/m -j LOG\ --log-level info\ --log-prefix '#### SYN/RST Scan ####' $IPTABLES -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN\ -m limit --limit 5/m -j LOG\ --log-level info\ --log-prefix '#### SYN/FIN Scan ####' echo "OK" #=======================================# # flooding etc. # #=======================================# echo -n "bitoxin: Starte flood-, fragment-, etc. protection ... " # we allow 4 TCP connects per second, no more $IPTABLES -N syn-flood $IPTABLES -A INPUT -p tcp --syn -j syn-flood $IPTABLES -A syn-flood -m limit --limit 1/s --limit-burst 4 -j RETURN $IPTABLES -A syn-flood -j DROP # new connections that have no syn set are most probably evil $IPTABLES -A INPUT -p tcp ! --syn -m state --state NEW -j DROP # invalid packets $IPTABLES -A INPUT -p tcp -m state --state INVALID\ -m limit --limit 10/m -j LOG\ --log-level info\ --log-prefix "### Invalid Packet ###" $IPTABLES -A INPUT -p tcp --tcp-option 64 -m limit\ --limit 5/m -j LOG --log-level info\ --log-prefix "### Bad TCP FLAG(64) ###" $IPTABLES -A INPUT -p tcp --tcp-option 128 -m limit\ --limit 5/m -j LOG --log-level info\ --log-prefix "### Bad TCP FLAG(128) ###" echo "OK" #=====================================# # masquerading # #=====================================# echo -n "bitoxin: Starte MASQUERADING... " $IPTABLES -t nat -A POSTROUTING -o $EXTERN -j MASQUERADE echo "1" > /proc/sys/net/ipv4/ip_forward echo "1" > /proc/sys/net/ipv4/ip_dynaddr echo "OK" #=====================================# # verbindungen erhalten # #=====================================# echo -n "bitoxin: Offene Verbindungen erlauben... " $IPTABLES -A OUTPUT -m state --state ESTABLISHED,RELATED\ -j ACCEPT $IPTABLES -A FORWARD -i $INTERN -o $EXTERN -m state\ --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED\ -j ACCEPT $IPTABLES -A INPUT -m state --state NEW,INVALID -j DROP $IPTABLES -A FORWARD -i $EXTERN -o $INTERN -m state\ --state ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A FORWARD -i $EXTERN -o $INTERN -m state\ --state NEW,INVALID -j DROP echo "OK" #=======================================# # PING # #=======================================# echo -n "bitoxin: ICMP (in) verbieten... " echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all $IPTABLES -A INPUT -p ICMP --icmp-type echo-request -j DROP echo "OK" echo -n "bitoxin: ICMP (out) erlauben... " $IPTABLES -A OUTPUT -p ICMP --icmp-type echo-request -j ACCEPT $IPTABLES -A FORWARD -p ICMP --icmp-type echo-request -j ACCEPT echo "OK" #=======================================# # loopback # #=======================================# echo -n "bitoxin: Loopback zulassen... " $IPTABLES -A OUTPUT -o lo -j ACCEPT $IPTABLES -A INPUT -i lo -j ACCEPT echo "OK" echo -n "bitoxin: Erlaube Services..." echo "" #=======================================# # DNS # #=======================================# echo -n " dns(out)... " $IPTABLES -A OUTPUT -m state --state NEW -p UDP\ --sport $p_high -d $DNS --dport domain -j ACCEPT $IPTABLES -A OUTPUT -m state --state NEW -p TCP\ --sport $p_high -d $DNS --dport domain -j ACCEPT $IPTABLES -A FORWARD -o $EXTERN -m state --state NEW\ -p UDP --sport $p_high -d $DNS --dport domain -j ACCEPT $IPTABLES -A FORWARD -o $EXTERN -m state --state NEW\ -p UDP --sport $p_high -d $DNS --dport domain -j ACCEPT echo "OK" #=======================================# # HTTP / HTTPS # #=======================================# echo -n " http(out)... " $IPTABLES -A OUTPUT -o $EXTERN -m state --state NEW -p TCP\ --sport $p_high --dport http -j ACCEPT $IPTABLES -A FORWARD -o $EXTERN -m state --state NEW -p TCP\ --sport $p_high --dport http -j ACCEPT echo "OK" echo -n " https(out)... " $IPTABLES -A FORWARD -o $EXTERN -m state --state NEW -p TCP\ --sport $p_high --dport https -j ACCEPT echo "OK" #=======================================# # MAIL # #=======================================# echo -n " smtp(out)... " $IPTABLES -A FORWARD -o $EXTERN -m state --state NEW -p TCP\ --sport $p_high -d $SMTP --dport smtp -j ACCEPT echo "OK" echo -n " imap(out)... " $IPTABLES -A FORWARD -o $EXTERN -m state --state NEW -p TCP\ --sport $p_high -d $IMAP --dport imap -j ACCEPT echo "OK" echo -n " pop3(out)..." $IPTABLES -A FORWARD -o $EXTERN -m state --state NEW -p TCP\ --sport $p_high -d $POP3 --dport pop3 -j ACCEPT echo "OK" #=======================================# # SSH # #=======================================# echo -n " ssh(out)... " $IPTABLES -A FORWARD -o $EXTERN -m state --state NEW \ -p TCP --sport $p_high --dport ssh \ -j ACCEPT $IPTABLES -A INPUT -i $INTERN -p TCP --sport $p_high --dport ssh \ -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT $IPTABLES -A OUTPUT -o $INTERN -p TCP --dport $p_high --sport ssh \ -m state --state ESTABLISHED,RELATED -j ACCEPT # $IPTABLES -A INPUT -p TCP --dport ssh -j ACCEPT # $IPTABLES -A INPUT -p TCP --sport ssh -j ACCEPT # $IPTABLES -A OUTPUT -p TCP --dport ssh -j ACCEPT # $IPTABLES -A OUTPUT -p TCP --sport ssh -j ACCEPT # $IPTABLES -A INPUT -p UDP --dport ssh -j ACCEPT # $IPTABLES -A INPUT -p UDP --sport ssh -j ACCEPT # $IPTABLES -A OUTPUT -p UDP --dport ssh -j ACCEPT # $IPTABLES -A OUTPUT -p UDP --sport ssh -j ACCEPT echo "OK" #=======================================# # telnet # #=======================================# $IPTABLES -A FORWARD -o $EXTERN -m state --state NEW \ -p TCP --sport $p_high --dport telnet \ -j ACCEPT #=======================================# # FTP # #=======================================# echo -n " ftp(out)... " $IPTABLES -A FORWARD -o $EXTERN -p TCP --dport ftp\ --sport $p_high -m state --state NEW -j ACCEPT $IPTABLES -A FORWARD -o $EXTERN -p TCP --dport $p_high\ --sport $p_high -m state --state NEW -j ACCEPT $IPTABLES -A OUTPUT -p TCP --dport ftp \ --sport $p_high -m state --state NEW -j ACCEPT $IPTABLES -A INPUT -p TCP --dport $p_high\ --sport $p_high -m state --state NEW -j ACCEPT echo "OK" #=======================================# # ICQ # #=======================================# echo -n " icq(out)... " $IPTABLES -A FORWARD -p TCP -d $ICQ\ --dport 5190 -j ACCEPT $IPTABLES -A FORWARD -p TCP --dport 5190 -j ACCEPT echo "OK" #=======================================# # IRC # #=======================================# echo -n " irc(out)... " $IPTABLES -A FORWARD -p TCP -d $IRC\ --dport 6667 -j ACCEPT echo "OK" #=======================================# # realaudio # #=======================================# echo -n " realaudio... " $IPTABLES -A FORWARD -o $EXTERN -p TCP --sport 1024:65535 --dport 554 -j ACCEPT $IPTABLES -A FORWARD -o $EXTERN -p tcp --sport 1024:65535 --dport 7070 -j ACCEPT $IPTABLES -A FORWARD -o $EXTERN -p UDP --sport 1024:65535 --dport 6970:7170 -j ACCEPT echo "OK" echo -n "bitoxin: Firewall bereit." echo "" echo -n "" echo "" exit 0