Hallo an alle,
ich habe ein kleines Problem, wo ich mittlerweile nicht mehr weiß wonach ich im Google suchen soll.
Ich habe hier eine Netzwerk das 2 Wohnungen miteinander verbindet.
Wohnung 1 darin ist ein Switch, an dem hängt ein Rechner mit der IP 192.168.68.1 und ein DSL-Modem
Wohnung 2 darin ist ein Switch, an dem hängt mein Server (Router, Firewall, Datenspeicher) mit _einer_ Netzwerkkarte und _zwei_ IP's (die erste ist die 192.168.92.11 für ein Wohnungsinternes Netzwerk und die zweite ist die 192.168.68.11 um den Rechner aus Wohnung 1 anzubinden) Dieser Rechner wählt sich auch mittels dem DSL-Modem in Wohnung 1 in die bunte weite Netzwelt ein.
Ich habe iptables (siehe Abschnitt unten "firewall") soweit konfiguriert, dass ich von Wohnung 2 aus auf alle Dienste des Servers (IMAP, SQUID, dnsmasq usw.) und auf das Internet zugreifen kann.
Jetzt möchte ich Wohnung 1 auch über den Server routen und (nur) das Internet und die dafür notwendigen Dienste zur Verfügung stellen. Ich scheitere aber schon mal daran, dass ich nicht mal einen Ping hinbekomme. Es kommt immer Netzwerk nicht erreichbar.
Kann mir jemand ein Tip geben, wo ich suchen muss?
Habe ich hier ein Problem mit der Serverkonfiguration oder evtl. den beiden Switchen? Die Switche sind der übliche Endkundenkram. Kabel einstecken ist alles was man bei den Dingern machen kann.
Danke für die Hilfe Andreas
Anhang: Abschnitt "firewall" (gekürzt) "interfaces"
Datei "firewall" (ungekürzt)
-------Datei "firewall"----------
case "$1" in start) echo "Starte IP-Paketfilter"
# iptables-Modul modprobe ip_tables # Connection-Tracking-Module modprobe ip_conntrack # Das Modul ip_conntrack_irc ist erst bei Kerneln >= 2.4.19 # verfuegbar modprobe ip_conntrack_irc modprobe ip_conntrack_ftp
# Tabelle flushen iptables -F iptables -t nat -F iptables -t mangle -F iptables -X iptables -t nat -X iptables -t mangle -X
# Default-Policies setzen iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP
# MY_REJECT-Chain iptables -N MY_REJECT
# MY_REJECT fuellen iptables -A MY_REJECT -p tcp -m limit --limit 7200/h -j LOG --log-prefix "REJECT TCP "
iptables -A MY_REJECT -p tcp -j REJECT --reject-with tcp-reset iptables -A MY_REJECT -p udp -m limit --limit 7200/h -j LOG --log-prefix "REJECT UDP "
iptables -A MY_REJECT -p udp -j REJECT --reject-with icmp-port-unreachable
iptables -A MY_REJECT -p icmp -m limit --limit 7200/h -j LOG --log-prefix "DROP ICMP "
iptables -A MY_REJECT -p icmp -j DROP iptables -A MY_REJECT -m limit --limit 7200/h -j LOG --log-prefix "REJECT OTHER "
iptables -A MY_REJECT -j REJECT --reject-with icmp-proto-unreachable
# MY_DROP-Chain iptables -N MY_DROP iptables -A MY_DROP -m limit --limit 7200/h -j LOG --log-prefix "PORTSCAN DROP "
iptables -A MY_DROP -j DROP
# Alle verworfenen Pakete protokollieren iptables -A INPUT -m state --state INVALID -m limit --limit 7200/h -j LOG --log-prefix "INPUT INVALID "
iptables -A OUTPUT -m state --state INVALID -m limit --limit 7200/h -j LOG --log-prefix "OUTPUT INVALID "
iptables -A FORWARD -m state --state INVALID -m limit --limit 7200/h -j LOG --log-prefix "FORWARD INVALID "
# Korrupte Pakete zurueckweisen iptables -A INPUT -m state --state INVALID -j DROP iptables -A OUTPUT -m state --state INVALID -j DROP iptables -A FORWARD -m state --state INVALID -j DROP
# Stealth Scans etc. DROPpen # Keine Flags gesetzt iptables -A INPUT -p tcp --tcp-flags ALL NONE -j MY_DROP iptables -A FORWARD -p tcp --tcp-flags ALL NONE -j MY_DROP
# SYN und FIN gesetzt iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j MY_DROP iptables -A FORWARD -p tcp --tcp-flags SYN,FIN SYN,FIN -j MY_DROP
# SYN und RST gleichzeitig gesetzt iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j MY_DROP iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN,RST -j MY_DROP
# FIN und RST gleichzeitig gesetzt iptables -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j MY_DROP iptables -A FORWARD -p tcp --tcp-flags FIN,RST FIN,RST -j MY_DROP
# FIN ohne ACK iptables -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j MY_DROP iptables -A FORWARD -p tcp --tcp-flags ACK,FIN FIN -j MY_DROP
# PSH ohne ACK iptables -A INPUT -p tcp --tcp-flags ACK,PSH PSH -j MY_DROP iptables -A FORWARD -p tcp --tcp-flags ACK,PSH PSH -j MY_DROP
# URG ohne ACK iptables -A INPUT -p tcp --tcp-flags ACK,URG URG -j MY_DROP iptables -A FORWARD -p tcp --tcp-flags ACK,URG URG -j MY_DROP
# Loopback-Netzwerk-Kommunikation zulassen iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT
# Maximum Segment Size (MSS) für das Forwarding an PMTU anpassen iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
# Connection-Tracking aktivieren iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
# iptables -A FORWARD -i ! ra0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i ! ppp0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# HTTP iptables -A INPUT -s 192.168.92.0/16 -m state --state NEW -p tcp --dport 3128 -j ACCEPT
iptables -A PREROUTING -t nat -s 192.168.92.0/16 -p tcp --dport 80 -j REDIRECT --to-ports 3128
# HTTPS iptables -A POSTROUTING -t nat -s 192.168.92.0/16 -m state --state NEW -p tcp --dport 443 -j MASQUERADE
# SMTP iptables -A POSTROUTING -t nat -s 192.168.92.0/16 -m state --state NEW -p tcp --dport 25 -j MASQUERADE
# SMTPS iptables -A POSTROUTING -t nat -s 192.168.92.0/16 -m state --state NEW -p tcp --dport 465 -j MASQUERADE
# IMAPS iptables -A INPUT -s 192.168.92.0/16 -m state --state NEW -p tcp --dport 993 -j ACCEPT iptables -A POSTROUTING -t nat -s 192.168.92.0/16 -m state --state NEW -p tcp --dport 993 -j MASQUERADE
# DNS iptables -A INPUT -s 192.168.92.0/16 -m state --state NEW -p tcp --dport 53 -j ACCEPT iptables -A INPUT -s 192.168.92.0/16 -m state --state NEW -p udp --dport 53 -j ACCEPT
# SMB/CIFS iptables -A INPUT -s 192.168.92.0/16 -m state --state NEW -p tcp --dport 137 -j ACCEPT iptables -A INPUT -s 192.168.92.0/16 -m state --state NEW -p tcp --dport 138 -j ACCEPT iptables -A INPUT -s 192.168.92.0/16 -m state --state NEW -p tcp --dport 139 -j ACCEPT iptables -A INPUT -s 192.168.92.0/16 -m state --state NEW -p tcp --dport 445 -j ACCEPT iptables -A INPUT -s 192.168.92.0/16 -m state --state NEW -p udp --dport 137 -j ACCEPT iptables -A INPUT -s 192.168.92.0/16 -m state --state NEW -p udp --dport 138 -j ACCEPT iptables -A INPUT -s 192.168.92.0/16 -m state --state NEW -p udp --dport 139 -j ACCEPT iptables -A INPUT -s 192.168.92.0/16 -m state --state NEW -p udp --dport 445 -j ACCEPT
# SSH iptables -A INPUT -s 192.168.92.0/16 -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 22 -j ACCEPT iptables -A OUTPUT -d 192.168.92.0/16 -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 22 -j ACCEPT
# DHCP iptables -A INPUT -s 192.168.92.0/16 -m state --state NEW -p udp --dport 67 -j ACCEPT iptables -A OUTPUT -d 192.168.92.0/16 -m state --state NEW -p udp --dport 67 -j ACCEPT
# NTP iptables -A INPUT -s 192.168.92.0/16 -m state --state NEW -p udp --dport 123 -j ACCEPT
# ICMP Echo-Request (ping) zulassen und beantworten iptables -A INPUT -m state --state NEW -p icmp --icmp-type echo-request -j ACCEPT
# Default-Policies mit REJECT iptables -A INPUT -j MY_REJECT iptables -A OUTPUT -j MY_REJECT iptables -A FORWARD -j MY_REJECT
# Forwarding/Routing echo "Aktiviere IP-Routing" echo 1 > /proc/sys/net/ipv4/ip_forward 2> /dev/null
# SYN-Cookies echo 1 > /proc/sys/net/ipv4/tcp_syncookies 2> /dev/null
# Stop Source-Routing for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/accept_source_route 2> /dev/null; done
# Stop Redirecting for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/accept_redirects 2> /dev/null; done
# Log Martians for i in /proc/sys/net/ipv4/conf/*; do echo 1 > $i/log_martians 2> /dev/null; done
# BOOTP-Relaying ausschalten for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/bootp_relay 2> /dev/null; done
# Proxy-ARP ausschalten for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/proxy_arp 2> /dev/null; done
# Ungültige ICMP-Antworten ignorieren echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses 2> /dev/null
# ICMP Echo-Broadcasts ignorieren echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts 2> /dev/null
# Max. 500/Sekunde (5/Jiffie) senden echo 5 > /proc/sys/net/ipv4/icmp_ratelimit
# Speicherallozierung und -timing für IP-De/-Fragmentierung echo 262144 > /proc/sys/net/ipv4/ipfrag_high_thresh echo 196608 > /proc/sys/net/ipv4/ipfrag_low_thresh echo 30 > /proc/sys/net/ipv4/ipfrag_time
# TCP-FIN-Timeout zum Schutz vor DoS-Attacken setzen echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
# Maximal 3 Antworten auf ein TCP-SYN echo 3 > /proc/sys/net/ipv4/tcp_retries1
# TCP-Pakete maximal 15x wiederholen echo 15 > /proc/sys/net/ipv4/tcp_retries2
;;
stop) echo "Stoppe IP-Paketfilter" # Tabelle flushen iptables -F iptables -t nat -F iptables -t mangle -F iptables -X iptables -t nat -X iptables -t mangle -X echo "Deaktiviere IP-Routing" echo 0 > /proc/sys/net/ipv4/ip_forward
# Default-Policies setzen iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT ;;
status) echo "Tabelle filter" iptables -L -vn echo "Tabelle nat" iptables -t nat -L -vn echo "Tabelle mangle" iptables -t mangle -L -vn ;;
*) echo "Fehlerhafter Aufruf" echo "Syntax: $0 {start|stop|status}" exit 1 ;;
esac
-------Datei "interfaces"--------
# The primary network interface allow-hotplug eth2 iface eth2 inet static address 192.168.92.11 netmask 255.255.255.0 network 192.168.92.0 broadcast 192.168.92.255 # dns-* options are implemented by the resolvconf package, if installed dns-nameservers 127.0.0.1 dns-search doham.de auto eth2
allow-hotplug eth2:0 iface eth2:0 inet static address 192.168.68.11 netmask 255.255.255.0 network 192.168.68.0 broadcast 192.168.68.255 # dns-* options are implemented by the resolvconf package, if installed dns-nameservers 127.0.0.1 dns-search doham.de auto eth2:0
auto dsl-provider iface dsl-provider inet ppp pre-up /sbin/ifconfig eth2 up # line maintained by pppoeconf provider dsl-provider
#!/bin/bash # --------------------------------------------------------------------- # Linux-iptables-Firewallskript, Copyright (c) 2007 under the GPL # Autogenerated by iptables Generator v1.22 (c) 2002-2007 by Harald Bertram # Please visit http://harry.homelinux.org for new versions of # the iptables Generator (c). # # This Script was generated by request from: # rc5.dresden@gmx.net on: 2007-10-25 22:16.50 MET. # # If you have questions about the iptables Generator or about # your Firewall-Skript feel free to take a look at out website or # send me an E-Mail to webmaster@harry.homelinux.org. # # My special thanks are going to Lutz Heinrich (trinitywork at hotmail dot com) # who made lots of Beta-Testing and gave me lots of well qualified # Feedback that made me able to improve the iptables Generator. # --------------------------------------------------------------------
case "$1" in start) echo "Starte IP-Paketfilter"
# iptables-Modul modprobe ip_tables # Connection-Tracking-Module modprobe ip_conntrack # Das Modul ip_conntrack_irc ist erst bei Kerneln >= 2.4.19 verfuegbar modprobe ip_conntrack_irc modprobe ip_conntrack_ftp
# Tabelle flushen iptables -F iptables -t nat -F iptables -t mangle -F iptables -X iptables -t nat -X iptables -t mangle -X
# Default-Policies setzen iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP
# MY_REJECT-Chain iptables -N MY_REJECT
# MY_REJECT fuellen iptables -A MY_REJECT -p tcp -m limit --limit 7200/h -j LOG --log-prefix "REJECT TCP " iptables -A MY_REJECT -p tcp -j REJECT --reject-with tcp-reset iptables -A MY_REJECT -p udp -m limit --limit 7200/h -j LOG --log-prefix "REJECT UDP " iptables -A MY_REJECT -p udp -j REJECT --reject-with icmp-port-unreachable iptables -A MY_REJECT -p icmp -m limit --limit 7200/h -j LOG --log-prefix "DROP ICMP " iptables -A MY_REJECT -p icmp -j DROP iptables -A MY_REJECT -m limit --limit 7200/h -j LOG --log-prefix "REJECT OTHER " iptables -A MY_REJECT -j REJECT --reject-with icmp-proto-unreachable
# MY_DROP-Chain iptables -N MY_DROP iptables -A MY_DROP -m limit --limit 7200/h -j LOG --log-prefix "PORTSCAN DROP " iptables -A MY_DROP -j DROP
# Alle verworfenen Pakete protokollieren iptables -A INPUT -m state --state INVALID -m limit --limit 7200/h -j LOG --log-prefix "INPUT INVALID " iptables -A OUTPUT -m state --state INVALID -m limit --limit 7200/h -j LOG --log-prefix "OUTPUT INVALID " iptables -A FORWARD -m state --state INVALID -m limit --limit 7200/h -j LOG --log-prefix "FORWARD INVALID "
# Korrupte Pakete zurueckweisen iptables -A INPUT -m state --state INVALID -j DROP iptables -A OUTPUT -m state --state INVALID -j DROP iptables -A FORWARD -m state --state INVALID -j DROP
# Stealth Scans etc. DROPpen # Keine Flags gesetzt iptables -A INPUT -p tcp --tcp-flags ALL NONE -j MY_DROP iptables -A FORWARD -p tcp --tcp-flags ALL NONE -j MY_DROP
# SYN und FIN gesetzt iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j MY_DROP iptables -A FORWARD -p tcp --tcp-flags SYN,FIN SYN,FIN -j MY_DROP
# SYN und RST gleichzeitig gesetzt iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j MY_DROP iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN,RST -j MY_DROP
# FIN und RST gleichzeitig gesetzt iptables -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j MY_DROP iptables -A FORWARD -p tcp --tcp-flags FIN,RST FIN,RST -j MY_DROP
# FIN ohne ACK iptables -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j MY_DROP iptables -A FORWARD -p tcp --tcp-flags ACK,FIN FIN -j MY_DROP
# PSH ohne ACK iptables -A INPUT -p tcp --tcp-flags ACK,PSH PSH -j MY_DROP iptables -A FORWARD -p tcp --tcp-flags ACK,PSH PSH -j MY_DROP
# URG ohne ACK iptables -A INPUT -p tcp --tcp-flags ACK,URG URG -j MY_DROP iptables -A FORWARD -p tcp --tcp-flags ACK,URG URG -j MY_DROP
# Loopback-Netzwerk-Kommunikation zulassen iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT
# Maximum Segment Size (MSS) für das Forwarding an PMTU anpassen iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
# Connection-Tracking aktivieren iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT # iptables -A FORWARD -i ! ra0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -i ! ppp0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# LAN-Zugriff auf die Netzwerkschnittstelle # iptables -A INPUT -m state --state NEW -i eth2 -j ACCEPT
# HTTP # iptables -A INPUT -i eth2 -m state --state NEW -p tcp --dport 3128 -j ACCEPT iptables -A INPUT -s 192.168.92.0/16 -m state --state NEW -p tcp --dport 3128 -j ACCEPT iptables -A PREROUTING -t nat -s 192.168.92.0/16 -p tcp --dport 80 -j REDIRECT --to-ports 3128
# HTTPS # iptables -A INPUT -i ra0 -m state --state NEW -p tcp --dport 443 -j ACCEPT # iptables -A INPUT -i eth2 -m state --state NEW -p tcp --dport 443 -j ACCEPT iptables -A POSTROUTING -t nat -s 192.168.92.0/16 -m state --state NEW -p tcp --dport 443 -j MASQUERADE
# SMTP # iptables -A INPUT -i eth2 -m state --state NEW -p tcp --dport 25 -j ACCEPT iptables -A POSTROUTING -t nat -s 192.168.92.0/16 -m state --state NEW -p tcp --dport 25 -j MASQUERADE
# SMTPS # iptables -A INPUT -i eth2 -m state --state NEW -p tcp --dport 465 -j ACCEPT iptables -A POSTROUTING -t nat -s 192.168.92.0/16 -m state --state NEW -p tcp --dport 465 -j MASQUERADE
# POP3 # iptables -A INPUT -i ra0 -m state --state NEW -p tcp --dport 110 -j ACCEPT
# POP3S # iptables -A INPUT -i ra0 -m state --state NEW -p tcp --dport 995 -j ACCEPT
# IMAP # iptables -A INPUT -i ra0 -m state --state NEW -p tcp --dport 143 -j ACCEPT
# IMAPS # iptables -A INPUT -i ra0 -m state --state NEW -p tcp --dport 993 -j ACCEPT # iptables -A INPUT -i eth2 -m state --state NEW -p tcp --dport 993 -j ACCEPT iptables -A INPUT -s 192.168.92.0/16 -m state --state NEW -p tcp --dport 993 -j ACCEPT iptables -A POSTROUTING -t nat -s 192.168.92.0/16 -m state --state NEW -p tcp --dport 993 -j MASQUERADE
# NNTP # iptables -A INPUT -i ra0 -m state --state NEW -p tcp --dport 119 -j ACCEPT # iptables -A INPUT -i eth2 -m state --state NEW -p tcp --dport 119 -j ACCEPT
# DNS # iptables -A INPUT -i eth2 -m state --state NEW -p tcp --dport 53 -j ACCEPT # iptables -A INPUT -i eth2 -m state --state NEW -p udp --dport 53 -j ACCEPT iptables -A INPUT -s 192.168.92.0/16 -m state --state NEW -p tcp --dport 53 -j ACCEPT iptables -A INPUT -s 192.168.92.0/16 -m state --state NEW -p udp --dport 53 -j ACCEPT
# FTP #iptables -A INPUT -i eth2 -m state --state NEW -p tcp --dport 21 -j ACCEPT #iptables -A OUTPUT -o ra0 -m state --state NEW -p tcp --dport 21 -j ACCEPT #iptables -A INPUT -i eth2 -m state --state NEW -p tcp --dport 21 -j ACCEPT #iptables -A OUTPUT -o ra0 -m state --state NEW -p tcp --dport 21 -j ACCEPT
# SMB/CIFS # iptables -A INPUT -i eth2 -m state --state NEW -p tcp --dport 137 -j ACCEPT # iptables -A INPUT -i eth2 -m state --state NEW -p tcp --dport 138 -j ACCEPT # iptables -A INPUT -i eth2 -m state --state NEW -p tcp --dport 139 -j ACCEPT # iptables -A INPUT -i eth2 -m state --state NEW -p tcp --dport 445 -j ACCEPT # iptables -A INPUT -i eth2 -m state --state NEW -p udp --dport 137 -j ACCEPT # iptables -A INPUT -i eth2 -m state --state NEW -p udp --dport 138 -j ACCEPT # iptables -A INPUT -i eth2 -m state --state NEW -p udp --dport 139 -j ACCEPT # iptables -A INPUT -i eth2 -m state --state NEW -p udp --dport 445 -j ACCEPT iptables -A INPUT -s 192.168.92.0/16 -m state --state NEW -p tcp --dport 137 -j ACCEPT iptables -A INPUT -s 192.168.92.0/16 -m state --state NEW -p tcp --dport 138 -j ACCEPT iptables -A INPUT -s 192.168.92.0/16 -m state --state NEW -p tcp --dport 139 -j ACCEPT iptables -A INPUT -s 192.168.92.0/16 -m state --state NEW -p tcp --dport 445 -j ACCEPT iptables -A INPUT -s 192.168.92.0/16 -m state --state NEW -p udp --dport 137 -j ACCEPT iptables -A INPUT -s 192.168.92.0/16 -m state --state NEW -p udp --dport 138 -j ACCEPT iptables -A INPUT -s 192.168.92.0/16 -m state --state NEW -p udp --dport 139 -j ACCEPT iptables -A INPUT -s 192.168.92.0/16 -m state --state NEW -p udp --dport 445 -j ACCEPT
# SSH # iptables -A INPUT -i ra0 -m state --state NEW -p tcp --dport 22 -j ACCEPT # iptables -A INPUT -i eth2 -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 22 -j ACCEPT # iptables -A OUTPUT -o eth2 -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 22 -j ACCEPT iptables -A INPUT -s 192.168.92.0/16 -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 22 -j ACCEPT iptables -A OUTPUT -d 192.168.92.0/16 -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 22 -j ACCEPT
# DHCP # iptables -A INPUT -i eth2 -m state --state NEW -p udp --dport 67 -j ACCEPT # iptables -A OUTPUT -o eth2 -m state --state NEW -p udp --dport 67 -j ACCEPT iptables -A INPUT -s 192.168.92.0/16 -m state --state NEW -p udp --dport 67 -j ACCEPT iptables -A OUTPUT -d 192.168.92.0/16 -m state --state NEW -p udp --dport 67 -j ACCEPT
# MYSQL # iptables -A INPUT -i ra0 -m state --state NEW -p tcp --dport 3306 -j ACCEPT
# NTP # iptables -A INPUT -i ra0 -m state --state NEW -p udp --dport 123 -j ACCEPT # iptables -A INPUT -i eth2 -m state --state NEW -p udp --dport 123 -j ACCEPT iptables -A INPUT -s 192.168.92.0/16 -m state --state NEW -p udp --dport 123 -j ACCEPT
# IRC # iptables -A INPUT -i ra0 -m state --state NEW -p tcp --dport 6667 -j ACCEPT
# EDONKEY # iptables -A INPUT -i ra0 -m state --state NEW -p tcp --dport 4661 -j ACCEPT # iptables -A INPUT -i ra0 -m state --state NEW -p tcp --dport 4662 -j ACCEPT # iptables -A INPUT -i ra0 -m state --state NEW -p tcp --dport 4663 -j ACCEPT # iptables -A INPUT -i ra0 -m state --state NEW -p udp --dport 4665 -j ACCEPT
# TELNET # iptables -A INPUT -i ra0 -m state --state NEW -p tcp --dport 23 -j ACCEPT
# BZFLAG # iptables -A INPUT -i ra0 -m state --state NEW -p tcp --dport 5155 -j ACCEPT # iptables -A INPUT -i ra0 -m state --state NEW -p udp --dport 5155 -j ACCEPT # iptables -A INPUT -i ra0 -m state --state NEW -p tcp --dport 5156 -j ACCEPT # iptables -A INPUT -i ra0 -m state --state NEW -p udp --dport 5156 -j ACCEPT
# HALF-LIFE # iptables -A INPUT -i ra0 -m state --state NEW -p tcp --dport 6000:6003 -j ACCEPT # iptables -A INPUT -i ra0 -m state --state NEW -p tcp --dport 7001:7002 -j ACCEPT # iptables -A INPUT -i ra0 -m state --state NEW -p udp --dport 27005 -j ACCEPT # iptables -A INPUT -i ra0 -m state --state NEW -p udp --dport 27010 -j ACCEPT # iptables -A INPUT -i ra0 -m state --state NEW -p udp --dport 27015:27016 -j ACCEPT
# IPSEC # iptables -A INPUT -i ra0 -p 50 -j ACCEPT # iptables -A INPUT -i ra0 -p 51 -j ACCEPT # iptables -A INPUT -i ra0 -m state --state NEW -p udp --dport 500 -j ACCEPT
# OPENVPN_V1 # iptables -A INPUT -i ra0 -m state --state NEW -p udp --dport 5000 -j ACCEPT
# OPENVPN_V2 # iptables -A INPUT -i ra0 -m state --state NEW -p udp --dport 1194 -j ACCEPT
# ICMP Echo-Request (ping) zulassen und beantworten iptables -A INPUT -m state --state NEW -p icmp --icmp-type echo-request -j ACCEPT
# IP-Adresse des LAN-Interfaces ermitteln # LAN_IP=$(ifconfig eth2 | head -n 2 | tail -n 1 | cut -d: -f2 | cut -d" " -f 1)
# NAT fuer HTTP # iptables -t nat -A PREROUTING -i ra0 -p tcp --dport 80 -j DNAT --to-destination # iptables -A FORWARD -i ra0 -m state --state NEW -p tcp -d --dport 80 -j ACCEPT
# Default-Policies mit REJECT iptables -A INPUT -j MY_REJECT iptables -A OUTPUT -j MY_REJECT iptables -A FORWARD -j MY_REJECT
# Forwarding/Routing echo "Aktiviere IP-Routing" echo 1 > /proc/sys/net/ipv4/ip_forward 2> /dev/null
# Masquerading # iptables -t nat -A POSTROUTING -o ra0 -j MASQUERADE # iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE
# SYN-Cookies echo 1 > /proc/sys/net/ipv4/tcp_syncookies 2> /dev/null
# Stop Source-Routing for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/accept_source_route 2> /dev/null; done
# Stop Redirecting for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/accept_redirects 2> /dev/null; done
# Reverse-Path-Filter # Auskommentiert, da IPSEC mit RP_Filter nicht funktioniert! # for i in /proc/sys/net/ipv4/conf/*; do echo 2 > $i/rp_filter 2> /dev/null; done
# Log Martians for i in /proc/sys/net/ipv4/conf/*; do echo 1 > $i/log_martians 2> /dev/null; done
# BOOTP-Relaying ausschalten for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/bootp_relay 2> /dev/null; done
# Proxy-ARP ausschalten for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/proxy_arp 2> /dev/null; done
# Ungültige ICMP-Antworten ignorieren echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses 2> /dev/null
# ICMP Echo-Broadcasts ignorieren echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts 2> /dev/null
# Max. 500/Sekunde (5/Jiffie) senden echo 5 > /proc/sys/net/ipv4/icmp_ratelimit
# Speicherallozierung und -timing für IP-De/-Fragmentierung echo 262144 > /proc/sys/net/ipv4/ipfrag_high_thresh echo 196608 > /proc/sys/net/ipv4/ipfrag_low_thresh echo 30 > /proc/sys/net/ipv4/ipfrag_time
# TCP-FIN-Timeout zum Schutz vor DoS-Attacken setzen echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
# Maximal 3 Antworten auf ein TCP-SYN echo 3 > /proc/sys/net/ipv4/tcp_retries1
# TCP-Pakete maximal 15x wiederholen echo 15 > /proc/sys/net/ipv4/tcp_retries2
;;
stop) echo "Stoppe IP-Paketfilter" # Tabelle flushen iptables -F iptables -t nat -F iptables -t mangle -F iptables -X iptables -t nat -X iptables -t mangle -X echo "Deaktiviere IP-Routing" echo 0 > /proc/sys/net/ipv4/ip_forward
# Default-Policies setzen iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT ;;
status) echo "Tabelle filter" iptables -L -vn echo "Tabelle nat" iptables -t nat -L -vn echo "Tabelle mangle" iptables -t mangle -L -vn ;;
*) echo "Fehlerhafter Aufruf" echo "Syntax: $0 {start|stop|status}" exit 1 ;;
esac
Hallo Andreas,
On Mon, Nov 30, 2009 at 00:40:13 +0100, Andreas Oettel wrote:
Wohnung 1 darin ist ein Switch, an dem haengt ein Rechner mit der IP 192.168.68.1 und ein DSL-Modem
Wohnung 2 darin ist ein Switch, an dem haengt mein Server (Router, Firewall, Datenspeicher) mit _einer_ Netzwerkkarte und _zwei_ IP's (die erste ist die 192.168.92.11 fuer ein Wohnungsinternes Netzwerk und die zweite ist die 192.168.68.11 um den Rechner aus Wohnung 1 anzubinden) Dieser Rechner waehlt sich auch mittels dem DSL-Modem in Wohnung 1 in die bunte weite Netzwelt ein.
[...]
Jetzt moechte ich Wohnung 1 auch ueber den Server routen und (nur) das Internet und die dafuer notwendigen Dienste zur Verfuegung stellen. Ich scheitere aber schon mal daran, dass ich nicht mal einen Ping hinbekomme. Es kommt immer Netzwerk nicht erreichbar.
Es fehlt die Interface- und Routingkonfiguration des Rechners in Wohnung 1. Ohne diese zu kennen, kommen wir nicht weiter. Die Meldung "network unreachable" laesst aber darauf schliessen, dass die Defaultroute ueber 192.168.68.11 fehlt. Im iptables-Regelwerk vermisse ich ausserdem Masquerading-Regeln fuer den Quelladressbereich 192.168.68.0/24. Ich mache Masquerading-Regeln stassdessen lieber am outgoing Interface fest: iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
Ansonsten: Fuer PPPoE sollte man ein dediziertes Interface verwenden, nicht eins, ueber das bereits IP laeuft.
Gruss, Chris
Christian Perle schrieb:
Es fehlt die Interface- und Routingkonfiguration des Rechners in Wohnung 1. Ohne diese zu kennen, kommen wir nicht weiter. Die Meldung "network unreachable" laesst aber darauf schliessen, dass die Defaultroute ueber 192.168.68.11 fehlt.
Ich musste heute feststellen, dass es nicht reicht beim INPUT nur "-s [IP-Adresse anzugeben]" sondern man muss auch -i [Netzwerkinterface] angeben. Sonst werden die Pakete sofort an der Haustür weggeworfen und gar nicht erst auf die Adresse und den Absender geschaut.
Nach dem Neustart heute morgen meines Rechners und des Servers, ging erst mal gar nichts mehr. Nur die Dienste starten und stoppen, wie ich es gestern praktiziert habe beendet nicht die Verbindungen und somit habe ich auf Basis eines nicht gewollten Systemzustandes und Verhaltens gestern an der Firewall rumgebastelt Ich habe bei der Fehlersuche noch einige Probleme und falsche Ansätze gefunden. Da gibt es noch einiges zu tun.
Im iptables-Regelwerk vermisse ich ausserdem Masquerading-Regeln fuer den Quelladressbereich 192.168.68.0/24. Ich mache Masquerading-Regeln stassdessen lieber am outgoing Interface fest: iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
Das möchte ich alles im Zusammenhang mit den Ports definieren. Das muss ich aber nach den Erfahrungen heute morgen auch erst mal neu anschauen.
Ansonsten: Fuer PPPoE sollte man ein dediziertes Interface verwenden, nicht eins, ueber das bereits IP laeuft.
Ich weiß, dass bedeutet aber, dass ich ein zusätzliches Kabel legen müsste. Dafür müsste ich teilweise die Löcher größer bohren (dh. erst mal altes Kabel raus) und das bei einem Haus, was nächstes Jahr verkauft werden soll.
Ehrlich gesagt, habe ich dazu keine Lust. Und da ich keine tiefgreifende Ahnung von dem ganzen Thema habe, ist der erhöhte Schwierigkeitsgrad gut zum Erfahrung sammeln.
Gruss, Chris
Danke erst mal für die Hilfe. Ich bastel erst mal weiter, habe ja eine Menge neuer Ansätze, und melde mich wieder, wenn ich nicht weiterkomme.
Andreas
Hi,
versuche es doch mal mit "systematischer Suche". Also:
1) DSL Kabel abziehen (von wegen Sicherheit) 2) alle Firewalls abschalten 3) per ping und traceroute probieren ob IP geht (Verbindung zwischen allen direkt verbundenen Hosts und dann über die Router), aufschreiben von wo die Fehler kommen! 4) wenn es nicht geht: Netzwekdiagramm malen, Routen einzeichnen 5) mit den reellen Routingtabellen vergleichen 6) wenn es dann irgendwann ohne FW, aber nicht mit FW geht: Firewall auf ein Minimum begrenzen und systematisch wieder aufbauen (was ich da im Anhang sah kam mir spontan zu groß vor) 7) wenn alles komplett, getestet und verifiziert ist: DSL KAbel wieder anschliessen
viel Spass, Konrad
Hallo an alle
Ich habe alle meine Problemchen gelöst und möchte der Vollständigkeit halber eine Zusammenfassung geben
Das Hauptproblem war die Windowsbüchse in Wohnung eins. Darin sind 2 Netzwerkkarten. Eine für das DSL-Modem und eine für das interne Netz. Der Netzwerkkarte für das DSL-Modem war keine IP zugeordnet (braucht ja auch nicht). Windows hat (aus Gründen, die ich nicht verstehe) immer alle Verbindungsversuche auf die Intranetkarte abgeblockt und wie ich feststellen musste, stattdessen versucht über die unkonfigurierte "Modemkarte" mit meinem Server zu kommunizieren. Erkennbar war nur, dass der Einwahldialog vom DSL aufpoppte. Erst nachdem ich dieser Karte eine IP zugewiesen habe, war ein Ping möglich.
Die Firewall habe ich jetzt richtig konfiguriert (ftp fehlt noch) und möchte auch hier das Ergebnis kurz anhängen: @Christian Das Masquerading schalte ich nur für den gewünschten Port frei und nicht für alle. Das macht mehr Arbeit verspricht aber einen höheren Schwierigkeitsgrad für Ausbrecher und nach Hause Telefonierer. Das gibt dann einen derartige Zeile:
iptables -A POSTROUTING -t nat -s 192.168.92.0/24 -m state --state NEW -p tcp --dport 443 -j MASQUERADE
Für alle Neugierigen habe ich noch die komplette Konfigurationsdatei der Firewall angehängt.
Als Quelle für Infos hat mir am besten geholfen: http://www.pro-linux.de/t_netzwerk/iptables.html http://www.pro-linux.de/t_netzwerk/routing.html
MfG Andreas
Andreas Oettel schrieb:
Hallo an alle,
ich habe ein kleines Problem, wo ich mittlerweile nicht mehr weiß wonach ich im Google suchen soll.
Ich habe hier eine Netzwerk das 2 Wohnungen miteinander verbindet.
Wohnung 1 darin ist ein Switch, an dem hängt ein Rechner mit der IP 192.168.68.1 und ein DSL-Modem
Wohnung 2 darin ist ein Switch, an dem hängt mein Server (Router, Firewall, Datenspeicher) mit _einer_ Netzwerkkarte und _zwei_ IP's (die erste ist die 192.168.92.11 für ein Wohnungsinternes Netzwerk und die zweite ist die 192.168.68.11 um den Rechner aus Wohnung 1 anzubinden) Dieser Rechner wählt sich auch mittels dem DSL-Modem in Wohnung 1 in die bunte weite Netzwelt ein.
Ich habe iptables (siehe Abschnitt unten "firewall") soweit konfiguriert, dass ich von Wohnung 2 aus auf alle Dienste des Servers (IMAP, SQUID, dnsmasq usw.) und auf das Internet zugreifen kann.
Jetzt möchte ich Wohnung 1 auch über den Server routen und (nur) das Internet und die dafür notwendigen Dienste zur Verfügung stellen. Ich scheitere aber schon mal daran, dass ich nicht mal einen Ping hinbekomme. Es kommt immer Netzwerk nicht erreichbar.
Kann mir jemand ein Tip geben, wo ich suchen muss?
Habe ich hier ein Problem mit der Serverkonfiguration oder evtl. den beiden Switchen? Die Switche sind der übliche Endkundenkram. Kabel einstecken ist alles was man bei den Dingern machen kann.
Danke für die Hilfe Andreas
Anhang: Abschnitt "firewall" (gekürzt) "interfaces"
Datei "firewall" (ungekürzt)
-------Datei "firewall"----------
case "$1" in start) echo "Starte IP-Paketfilter"
# iptables-Modul modprobe ip_tables # Connection-Tracking-Module modprobe ip_conntrack # Das Modul ip_conntrack_irc ist erst bei Kerneln >= 2.4.19 # verfuegbar modprobe ip_conntrack_irc modprobe ip_conntrack_ftp # Tabelle flushen iptables -F iptables -t nat -F iptables -t mangle -F iptables -X iptables -t nat -X iptables -t mangle -X # Default-Policies setzen iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP # MY_REJECT-Chain iptables -N MY_REJECT # MY_REJECT fuellen iptables -A MY_REJECT -p tcp -m limit --limit 7200/h -j LOG
--log-prefix "REJECT TCP "
iptables -A MY_REJECT -p tcp -j REJECT --reject-with tcp-reset iptables -A MY_REJECT -p udp -m limit --limit 7200/h -j LOG
--log-prefix "REJECT UDP "
iptables -A MY_REJECT -p udp -j REJECT --reject-with
icmp-port-unreachable
iptables -A MY_REJECT -p icmp -m limit --limit 7200/h -j LOG
--log-prefix "DROP ICMP "
iptables -A MY_REJECT -p icmp -j DROP iptables -A MY_REJECT -m limit --limit 7200/h -j LOG --log-prefix
"REJECT OTHER "
iptables -A MY_REJECT -j REJECT --reject-with icmp-proto-unreachable # MY_DROP-Chain iptables -N MY_DROP iptables -A MY_DROP -m limit --limit 7200/h -j LOG --log-prefix
"PORTSCAN DROP "
iptables -A MY_DROP -j DROP # Alle verworfenen Pakete protokollieren iptables -A INPUT -m state --state INVALID -m limit --limit 7200/h
-j LOG --log-prefix "INPUT INVALID "
iptables -A OUTPUT -m state --state INVALID -m limit --limit 7200/h
-j LOG --log-prefix "OUTPUT INVALID "
iptables -A FORWARD -m state --state INVALID -m limit --limit 7200/h
-j LOG --log-prefix "FORWARD INVALID "
# Korrupte Pakete zurueckweisen iptables -A INPUT -m state --state INVALID -j DROP iptables -A OUTPUT -m state --state INVALID -j DROP iptables -A FORWARD -m state --state INVALID -j DROP # Stealth Scans etc. DROPpen # Keine Flags gesetzt iptables -A INPUT -p tcp --tcp-flags ALL NONE -j MY_DROP iptables -A FORWARD -p tcp --tcp-flags ALL NONE -j MY_DROP # SYN und FIN gesetzt iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j MY_DROP iptables -A FORWARD -p tcp --tcp-flags SYN,FIN SYN,FIN -j MY_DROP # SYN und RST gleichzeitig gesetzt iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j MY_DROP iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN,RST -j MY_DROP # FIN und RST gleichzeitig gesetzt iptables -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j MY_DROP iptables -A FORWARD -p tcp --tcp-flags FIN,RST FIN,RST -j MY_DROP # FIN ohne ACK iptables -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j MY_DROP iptables -A FORWARD -p tcp --tcp-flags ACK,FIN FIN -j MY_DROP # PSH ohne ACK iptables -A INPUT -p tcp --tcp-flags ACK,PSH PSH -j MY_DROP iptables -A FORWARD -p tcp --tcp-flags ACK,PSH PSH -j MY_DROP # URG ohne ACK iptables -A INPUT -p tcp --tcp-flags ACK,URG URG -j MY_DROP iptables -A FORWARD -p tcp --tcp-flags ACK,URG URG -j MY_DROP # Loopback-Netzwerk-Kommunikation zulassen iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT # Maximum Segment Size (MSS) für das Forwarding an PMTU anpassen iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS
--clamp-mss-to-pmtu
# Connection-Tracking aktivieren iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT # iptables -A FORWARD -i ! ra0 -m state --state
NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i ! ppp0 -m state --state
NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # HTTP iptables -A INPUT -s 192.168.92.0/16 -m state --state NEW -p tcp
--dport 3128 -j ACCEPT
iptables -A PREROUTING -t nat -s 192.168.92.0/16 -p tcp --dport 80
-j REDIRECT --to-ports 3128
# HTTPS iptables -A POSTROUTING -t nat -s 192.168.92.0/16 -m state --state
NEW -p tcp --dport 443 -j MASQUERADE
# SMTP iptables -A POSTROUTING -t nat -s 192.168.92.0/16 -m state --state
NEW -p tcp --dport 25 -j MASQUERADE
# SMTPS iptables -A POSTROUTING -t nat -s 192.168.92.0/16 -m state --state
NEW -p tcp --dport 465 -j MASQUERADE
# IMAPS iptables -A INPUT -s 192.168.92.0/16 -m state --state NEW -p tcp
--dport 993 -j ACCEPT iptables -A POSTROUTING -t nat -s 192.168.92.0/16 -m state --state NEW -p tcp --dport 993 -j MASQUERADE
# DNS iptables -A INPUT -s 192.168.92.0/16 -m state --state NEW -p tcp
--dport 53 -j ACCEPT iptables -A INPUT -s 192.168.92.0/16 -m state --state NEW -p udp --dport 53 -j ACCEPT
# SMB/CIFS iptables -A INPUT -s 192.168.92.0/16 -m state --state NEW -p tcp
--dport 137 -j ACCEPT iptables -A INPUT -s 192.168.92.0/16 -m state --state NEW -p tcp --dport 138 -j ACCEPT iptables -A INPUT -s 192.168.92.0/16 -m state --state NEW -p tcp --dport 139 -j ACCEPT iptables -A INPUT -s 192.168.92.0/16 -m state --state NEW -p tcp --dport 445 -j ACCEPT iptables -A INPUT -s 192.168.92.0/16 -m state --state NEW -p udp --dport 137 -j ACCEPT iptables -A INPUT -s 192.168.92.0/16 -m state --state NEW -p udp --dport 138 -j ACCEPT iptables -A INPUT -s 192.168.92.0/16 -m state --state NEW -p udp --dport 139 -j ACCEPT iptables -A INPUT -s 192.168.92.0/16 -m state --state NEW -p udp --dport 445 -j ACCEPT
# SSH iptables -A INPUT -s 192.168.92.0/16 -m state --state
NEW,ESTABLISHED,RELATED -p tcp --dport 22 -j ACCEPT iptables -A OUTPUT -d 192.168.92.0/16 -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 22 -j ACCEPT
# DHCP iptables -A INPUT -s 192.168.92.0/16 -m state --state NEW -p udp
--dport 67 -j ACCEPT iptables -A OUTPUT -d 192.168.92.0/16 -m state --state NEW -p udp --dport 67 -j ACCEPT
# NTP iptables -A INPUT -s 192.168.92.0/16 -m state --state NEW -p udp
--dport 123 -j ACCEPT
# ICMP Echo-Request (ping) zulassen und beantworten iptables -A INPUT -m state --state NEW -p icmp --icmp-type
echo-request -j ACCEPT
# Default-Policies mit REJECT iptables -A INPUT -j MY_REJECT iptables -A OUTPUT -j MY_REJECT iptables -A FORWARD -j MY_REJECT # Forwarding/Routing echo "Aktiviere IP-Routing" echo 1 > /proc/sys/net/ipv4/ip_forward 2> /dev/null # SYN-Cookies echo 1 > /proc/sys/net/ipv4/tcp_syncookies 2> /dev/null # Stop Source-Routing for i in /proc/sys/net/ipv4/conf/*; do echo 0 >
$i/accept_source_route 2> /dev/null; done
# Stop Redirecting for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/accept_redirects
2> /dev/null; done
# Log Martians for i in /proc/sys/net/ipv4/conf/*; do echo 1 > $i/log_martians 2>
/dev/null; done
# BOOTP-Relaying ausschalten for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/bootp_relay 2>
/dev/null; done
# Proxy-ARP ausschalten for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/proxy_arp 2>
/dev/null; done
# Ungültige ICMP-Antworten ignorieren echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses 2>
/dev/null
# ICMP Echo-Broadcasts ignorieren echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts 2> /dev/null # Max. 500/Sekunde (5/Jiffie) senden echo 5 > /proc/sys/net/ipv4/icmp_ratelimit # Speicherallozierung und -timing für IP-De/-Fragmentierung echo 262144 > /proc/sys/net/ipv4/ipfrag_high_thresh echo 196608 > /proc/sys/net/ipv4/ipfrag_low_thresh echo 30 > /proc/sys/net/ipv4/ipfrag_time # TCP-FIN-Timeout zum Schutz vor DoS-Attacken setzen echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout # Maximal 3 Antworten auf ein TCP-SYN echo 3 > /proc/sys/net/ipv4/tcp_retries1 # TCP-Pakete maximal 15x wiederholen echo 15 > /proc/sys/net/ipv4/tcp_retries2 ;;
stop) echo "Stoppe IP-Paketfilter" # Tabelle flushen iptables -F iptables -t nat -F iptables -t mangle -F iptables -X iptables -t nat -X iptables -t mangle -X echo "Deaktiviere IP-Routing" echo 0 > /proc/sys/net/ipv4/ip_forward
# Default-Policies setzen iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT ;;
status) echo "Tabelle filter" iptables -L -vn echo "Tabelle nat" iptables -t nat -L -vn echo "Tabelle mangle" iptables -t mangle -L -vn ;;
*) echo "Fehlerhafter Aufruf" echo "Syntax: $0 {start|stop|status}" exit 1 ;;
esac
-------Datei "interfaces"--------
# The primary network interface allow-hotplug eth2 iface eth2 inet static address 192.168.92.11 netmask 255.255.255.0 network 192.168.92.0 broadcast 192.168.92.255 # dns-* options are implemented by the resolvconf package, if installed dns-nameservers 127.0.0.1 dns-search doham.de auto eth2
allow-hotplug eth2:0 iface eth2:0 inet static address 192.168.68.11 netmask 255.255.255.0 network 192.168.68.0 broadcast 192.168.68.255 # dns-* options are implemented by the resolvconf package, if installed dns-nameservers 127.0.0.1 dns-search doham.de auto eth2:0
auto dsl-provider iface dsl-provider inet ppp pre-up /sbin/ifconfig eth2 up # line maintained by pppoeconf provider dsl-provider
Lug-dd maillist - Lug-dd@mailman.schlittermann.de https://ssl.schlittermann.de/mailman/listinfo/lug-dd
#!/bin/bash # --------------------------------------------------------------------- # Linux-iptables-Firewallskript, Copyright (c) 2007 under the GPL # Autogenerated by iptables Generator v1.22 (c) 2002-2007 by Harald Bertram # Please visit http://harry.homelinux.org for new versions of # the iptables Generator (c). # # This Script was generated by request from: # rc5.dresden@gmx.net on: 2007-10-25 22:16.50 MET. # # If you have questions about the iptables Generator or about # your Firewall-Skript feel free to take a look at out website or # send me an E-Mail to webmaster@harry.homelinux.org. # # My special thanks are going to Lutz Heinrich (trinitywork at hotmail dot com) # who made lots of Beta-Testing and gave me lots of well qualified # Feedback that made me able to improve the iptables Generator. # --------------------------------------------------------------------
case "$1" in start) echo "Starte IP-Paketfilter"
# iptables-Modul modprobe ip_tables # Connection-Tracking-Module modprobe ip_conntrack # Das Modul ip_conntrack_irc ist erst bei Kerneln >= 2.4.19 verfuegbar modprobe ip_conntrack_irc modprobe ip_conntrack_ftp
# Tabelle flushen iptables -F iptables -t nat -F iptables -t mangle -F iptables -X iptables -t nat -X iptables -t mangle -X
# Default-Policies setzen iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP
# MY_REJECT-Chain iptables -N MY_REJECT
# MY_REJECT fuellen iptables -A MY_REJECT -p tcp -m limit --limit 7200/h -j LOG --log-prefix "REJECT TCP " iptables -A MY_REJECT -p tcp -j REJECT --reject-with tcp-reset iptables -A MY_REJECT -p udp -m limit --limit 7200/h -j LOG --log-prefix "REJECT UDP " iptables -A MY_REJECT -p udp -j REJECT --reject-with icmp-port-unreachable iptables -A MY_REJECT -p icmp -m limit --limit 7200/h -j LOG --log-prefix "DROP ICMP " iptables -A MY_REJECT -p icmp -j DROP iptables -A MY_REJECT -m limit --limit 7200/h -j LOG --log-prefix "REJECT OTHER " iptables -A MY_REJECT -j REJECT --reject-with icmp-proto-unreachable
# MY_DROP-Chain iptables -N MY_DROP iptables -A MY_DROP -m limit --limit 7200/h -j LOG --log-prefix "PORTSCAN DROP " iptables -A MY_DROP -j DROP
# Alle verworfenen Pakete protokollieren iptables -A INPUT -m state --state INVALID -m limit --limit 7200/h -j LOG --log-prefix "INPUT INVALID " iptables -A OUTPUT -m state --state INVALID -m limit --limit 7200/h -j LOG --log-prefix "OUTPUT INVALID " iptables -A FORWARD -m state --state INVALID -m limit --limit 7200/h -j LOG --log-prefix "FORWARD INVALID "
# Korrupte Pakete zurueckweisen iptables -A INPUT -m state --state INVALID -j DROP iptables -A OUTPUT -m state --state INVALID -j DROP iptables -A FORWARD -m state --state INVALID -j DROP
# Stealth Scans etc. DROPpen # Keine Flags gesetzt iptables -A INPUT -p tcp --tcp-flags ALL NONE -j MY_DROP iptables -A FORWARD -p tcp --tcp-flags ALL NONE -j MY_DROP
# SYN und FIN gesetzt iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j MY_DROP iptables -A FORWARD -p tcp --tcp-flags SYN,FIN SYN,FIN -j MY_DROP
# SYN und RST gleichzeitig gesetzt iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j MY_DROP iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN,RST -j MY_DROP
# FIN und RST gleichzeitig gesetzt iptables -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j MY_DROP iptables -A FORWARD -p tcp --tcp-flags FIN,RST FIN,RST -j MY_DROP
# FIN ohne ACK iptables -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j MY_DROP iptables -A FORWARD -p tcp --tcp-flags ACK,FIN FIN -j MY_DROP
# PSH ohne ACK iptables -A INPUT -p tcp --tcp-flags ACK,PSH PSH -j MY_DROP iptables -A FORWARD -p tcp --tcp-flags ACK,PSH PSH -j MY_DROP
# URG ohne ACK iptables -A INPUT -p tcp --tcp-flags ACK,URG URG -j MY_DROP iptables -A FORWARD -p tcp --tcp-flags ACK,URG URG -j MY_DROP
# Loopback-Netzwerk-Kommunikation zulassen iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT
# Maximum Segment Size (MSS) für das Forwarding an PMTU anpassen iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
# Connection-Tracking aktivieren iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -i ! ppp0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Protokolle freigeben # HTTP iptables -A INPUT -i eth2 -s 192.168.92.0/24 -m state --state NEW -p tcp --dport 3128 -j ACCEPT iptables -A INPUT -i eth2 -s 192.168.68.0/24 -m state --state NEW -p tcp --dport 3128 -j ACCEPT
# HTTPS iptables -A POSTROUTING -t nat -s 192.168.92.0/24 -m state --state NEW -p tcp --dport 443 -j MASQUERADE iptables -A POSTROUTING -t nat -s 192.168.68.0/24 -m state --state NEW -p tcp --dport 443 -j MASQUERADE
# SMTP iptables -A POSTROUTING -t nat -s 192.168.92.0/24 -m state --state NEW -p tcp --dport 25 -j MASQUERADE iptables -A POSTROUTING -t nat -s 192.168.68.0/24 -m state --state NEW -p tcp --dport 25 -j MASQUERADE
# SMTPS iptables -A POSTROUTING -t nat -s 192.168.92.0/24 -m state --state NEW -p tcp --dport 465 -j MASQUERADE iptables -A POSTROUTING -t nat -s 192.168.68.0/24 -m state --state NEW -p tcp --dport 465 -j MASQUERADE
# POP3 iptables -A POSTROUTING -t nat -s 192.168.68.0/24 -m state --state NEW -p tcp --dport 110 -j MASQUERADE
# POP3S iptables -A POSTROUTING -t nat -s 192.168.68.0/24 -m state --state NEW -p tcp --dport 995 -j MASQUERADE
# IMAPS iptables -A INPUT -i eth2 -s 192.168.92.0/24 -m state --state NEW -p tcp --dport 993 -j ACCEPT iptables -A POSTROUTING -t nat -s 192.168.92.0/24 -m state --state NEW -p tcp --dport 993 -j MASQUERADE
# DNS iptables -A INPUT -i eth2 -s 192.168.92.0/16 -m state --state NEW -p tcp --dport 53 -j ACCEPT iptables -A INPUT -i eth2 -s 192.168.92.0/16 -m state --state NEW -p udp --dport 53 -j ACCEPT
# SMB/CIFS iptables -A INPUT -i eth2 -s 192.168.92.0/24 -m state --state NEW -p tcp --dport 137 -j ACCEPT iptables -A INPUT -i eth2 -s 192.168.92.0/24 -m state --state NEW -p tcp --dport 138 -j ACCEPT iptables -A INPUT -i eth2 -s 192.168.92.0/24 -m state --state NEW -p tcp --dport 139 -j ACCEPT iptables -A INPUT -i eth2 -s 192.168.92.0/24 -m state --state NEW -p tcp --dport 445 -j ACCEPT iptables -A INPUT -i eth2 -s 192.168.92.0/24 -m state --state NEW -p udp --dport 137 -j ACCEPT iptables -A INPUT -i eth2 -s 192.168.92.0/24 -m state --state NEW -p udp --dport 138 -j ACCEPT iptables -A INPUT -i eth2 -s 192.168.92.0/24 -m state --state NEW -p udp --dport 139 -j ACCEPT iptables -A INPUT -i eth2 -s 192.168.92.0/24 -m state --state NEW -p udp --dport 445 -j ACCEPT
# SSH iptables -A INPUT -i eth2 -s 192.168.92.0/24 -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 22 -j ACCEPT iptables -A OUTPUT -o eth2 -d 192.168.92.0/24 -m state --state NEW,ESTABLISHED,RELATED -p tcp --dport 22 -j ACCEPT
# DHCP iptables -A INPUT -i eth2 -m state --state NEW -p udp --dport 67 -j ACCEPT iptables -A OUTPUT -o eth2 -m state --state NEW -p udp --dport 67 -j ACCEPT
# NTP iptables -A INPUT -i eth2 -s 192.168.92.0/24 -m state --state NEW -p udp --dport 123 -j ACCEPT
# ICMP Echo-Request (ping) zulassen und beantworten iptables -A INPUT -i eth2 -m state --state NEW -p icmp --icmp-type echo-request -j ACCEPT
# Default-Policies mit REJECT iptables -A INPUT -j MY_REJECT iptables -A OUTPUT -j MY_REJECT iptables -A FORWARD -j MY_REJECT
# Forwarding/Routing echo "Aktiviere IP-Routing" echo 1 > /proc/sys/net/ipv4/ip_forward 2> /dev/null
# SYN-Cookies echo 1 > /proc/sys/net/ipv4/tcp_syncookies 2> /dev/null
# Stop Source-Routing for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/accept_source_route 2> /dev/null; done
# Stop Redirecting for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/accept_redirects 2> /dev/null; done
# Reverse-Path-Filter # Auskommentiert, da IPSEC mit RP_Filter nicht funktioniert! # for i in /proc/sys/net/ipv4/conf/*; do echo 2 > $i/rp_filter 2> /dev/null; done
# Log Martians for i in /proc/sys/net/ipv4/conf/*; do echo 1 > $i/log_martians 2> /dev/null; done
# BOOTP-Relaying ausschalten for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/bootp_relay 2> /dev/null; done
# Proxy-ARP ausschalten for i in /proc/sys/net/ipv4/conf/*; do echo 0 > $i/proxy_arp 2> /dev/null; done
# Ungültige ICMP-Antworten ignorieren echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses 2> /dev/null
# ICMP Echo-Broadcasts ignorieren echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts 2> /dev/null
# Max. 500/Sekunde (5/Jiffie) senden echo 5 > /proc/sys/net/ipv4/icmp_ratelimit
# Speicherallozierung und -timing für IP-De/-Fragmentierung echo 262144 > /proc/sys/net/ipv4/ipfrag_high_thresh echo 196608 > /proc/sys/net/ipv4/ipfrag_low_thresh echo 30 > /proc/sys/net/ipv4/ipfrag_time
# TCP-FIN-Timeout zum Schutz vor DoS-Attacken setzen echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
# Maximal 3 Antworten auf ein TCP-SYN echo 3 > /proc/sys/net/ipv4/tcp_retries1
# TCP-Pakete maximal 15x wiederholen echo 15 > /proc/sys/net/ipv4/tcp_retries2
;;
stop) echo "Stoppe IP-Paketfilter" # Tabelle flushen iptables -F iptables -t nat -F iptables -t mangle -F iptables -X iptables -t nat -X iptables -t mangle -X echo "Deaktiviere IP-Routing" echo 0 > /proc/sys/net/ipv4/ip_forward
# Default-Policies setzen iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT ;;
status) echo "Tabelle filter" iptables -L -vn echo "Tabelle nat" iptables -t nat -L -vn echo "Tabelle mangle" iptables -t mangle -L -vn ;;
*) echo "Fehlerhafter Aufruf" echo "Syntax: $0 {start|stop|status}" exit 1 ;;
esac
lug-dd@mailman.schlittermann.de