P
pep
Grünschnabel
Hallo Leute,
ich habe nen Problem, an dem ich heute schon 5h saß.
Und zwar habe ich hier ein Netzwerk mit einer Firewall/Gateway.
Über die Firewall/Gateway läuft Internet und Telefon.
Nur leider geht nur das Telefon, und alles, was mit dem 192.168.130.x Netz zu tun hat.
Alles von eth1 raus geht .
Eth0 = Internet --> 192.168.1.x Netz
Eth1 = LAN --> 192.168.0.x Netz
Wäre nett, wenn ihr euch mal meine IP Tables anschauen könnt.
Ps.: wenn ich die Yast Firewall nehme, anstatt das Script, geht zwar das Internet, aber die Verbindung in 192.168.130.x Netz bekomme ich net hin.
Wäre für Hilfe dankbar
ich habe nen Problem, an dem ich heute schon 5h saß.
Und zwar habe ich hier ein Netzwerk mit einer Firewall/Gateway.
Über die Firewall/Gateway läuft Internet und Telefon.
Nur leider geht nur das Telefon, und alles, was mit dem 192.168.130.x Netz zu tun hat.
Alles von eth1 raus geht .
Eth0 = Internet --> 192.168.1.x Netz
Eth1 = LAN --> 192.168.0.x Netz
Wäre nett, wenn ihr euch mal meine IP Tables anschauen könnt.
Code:
#!/bin/bash
case "$1" in
start)
echo "Starte IP-Paketfilter"
lan_ip="192.168.0.0/24"
extlan_ip="192.168.130.0/24"
# 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 leeren
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
# chain zur verzweigung von internet in und internet out
iptables -N transfer
# daten ins Internet, Chain erstellen
iptables -N internetout
# daten vom Internet, Chain erstellen
iptables -N internetin
# 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 ! ippp0 -m state --state NEW,ESTABLISHED,RELATED -j transfer
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j transfer
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# SSH
iptables -A INPUT -i eth0 -m state --state NEW -p tcp --dport 22 -j ACCEPT
# LAN-Zugriff auf eth0
iptables -A INPUT -m state --state NEW -i eth0 -j ACCEPT
# Default-Policies mit REJECT
iptables -A INPUT -j MY_REJECT
iptables -A OUTPUT -j MY_REJECT
iptables -A FORWARD -j MY_REJECT
# 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
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
# traffic ins und von Netz Stuttgart durchlassen
iptables -A transfer -d $extlan_ip -s $lan_ip -j ACCEPT
iptables -A transfer -d $lan_ip -s $extlan_ip -j ACCEPT
# restlichen traffic in die Internet Chain leiten
iptables -A transfer -i eth0 -d 0/0 -s $lan_ip -j internetout
iptables -A transfer -i eth1 -d $lan_ip -s 0/0 -j internetin
# iptables -A internetout -p icmp --icmp-type echo-request -j ACCEPT
# iptables -A internetout -p icmp --icmp-type echo-reply -j ACCEPT
iptables -A internetout -p tcp --dport 21 -j ACCEPT
iptables -A internetout -p tcp --dport 20 -j ACCEPT
iptables -A internetout -p tcp --dport 25 -j ACCEPT
iptables -A internetout -p tcp --dport 23 -j ACCEPT
iptables -A internetout -p udp --dport 53 -j ACCEPT
iptables -A internetout -p tcp --dport 80 -j ACCEPT
iptables -A internetout -p tcp --dport 5900 -j ACCEPT
iptables -A internetout -p udp --dport 123 -j ACCEPT
iptables -A internetout -p tcp --dport 137 -j ACCEPT
# iptables -A internetout -m state --state NEW -p tcp --sport 2083 -j ACCEPT
iptables -A internetout -p tcp --dport 110 -j ACCEPT
iptables -A internetout -p udp --dport 123 -j ACCEPT
iptables -A internetout -p tcp --dport 123 -j ACCEPT
iptables -A internetout -p tcp --dport 443 -j ACCEPT
iptables -A internetout -p tcp --dport 3048 -j ACCEPT
iptables -A internetout -p tcp --sport 1024:65535 --dport 1024:65535 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A internetout -j MY_REJECT
iptables -A internetin -p icmp --icmp-type echo-request -j ACCEPT
iptables -A internetin -p icmp --icmp-type echo-reply -j ACCEPT
iptables -A internetin -p icmp --icmp-type time-exceeded -j ACCEPT
iptables -A internetin -m state --state ESTABLISHED -p tcp --sport 21 -j ACCEPT
iptables -A internetin -m state --state ESTABLISHED,RELATED -p tcp --sport 20 -j ACCEPT
iptables -A internetin -m state --state ESTABLISHED -p tcp --sport 23 -j ACCEPT
iptables -A internetin -m state --state ESTABLISHED -p tcp --sport 25 -j ACCEPT
iptables -A internetin -m state --state ESTABLISHED -p udp --sport 53 -j ACCEPT
iptables -A internetin -m state --state ESTABLISHED -p tcp --sport 80 -j ACCEPT
iptables -A internetin -m state --state ESTABLISHED -p tcp --sport 110 -j ACCEPT
iptables -A internetin -m state --state ESTABLISHED -p udp --sport 123 -j ACCEPT
iptables -A internetin -m state --state ESTABLISHED -p tcp --sport 123 -j ACCEPT
iptables -A internetin -m state --state ESTABLISHED -p tcp --sport 443 -j ACCEPT
iptables -A internetin -m state --state ESTABLISHED -p tcp --sport 2000 -j ACCEPT
iptables -A internetin -m state --state ESTABLISHED -p tcp --sport 3048 -j ACCEPT
iptables -A internetin -m state --state ESTABLISHED -p tcp --sport 123 -j ACCEPT
iptables -A internetin -m state --state ESTABLISHED -p tcp --sport 137 -j ACCEPT
iptables -A internetin -p tcp --sport 1024:65535 --dport 1024:65535 -m state --state RELATED,ESTABLISHED -j ACCEPT
# iptables -A internetin -p tcp --dport 2083 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --sport 80 -j ACCEPT
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT --to 192.168.0.14
iptables -A FORWARD -i eth1 -p tcp --dport 80 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -s 192.168.0.14 -p tcp --sport 80 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A internetin -j MY_REJECT
# iptables -t nat -A POSROUTING -o eth1 -j MASQUERADE
;;
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
Ps.: wenn ich die Yast Firewall nehme, anstatt das Script, geht zwar das Internet, aber die Verbindung in 192.168.130.x Netz bekomme ich net hin.
Wäre für Hilfe dankbar