Hallo!
Ich habe ein "kleines" Problem. Bei dem Script habe ich mit sicherheit ein Denfehler, weil die Verbindung ins Internet einfach nicht klappt. Ich verwende DSL (gerät dsl0 über die Netzwerkkarte eth1) und möchte eigentlich, daß die Geräte die im Lokalen Netz vorhanden sind sich einwählen können, aber nur WWW,ICQ, MESSENGER, MAIL usw. sollen erlaubt sein.. von Aussen nach Innen gar nichts.... die Wählverbindung funktioniert aber irgendwie nicht. es werden keine Pakete weitergeleitet
Kann sich bitte jemand mein Script durchlesen und den/die Fehler korrigieren???
Vielen Dank!
#!/bin/bash
### BEGIN INIT INFO
# Provides: IP-Paketfilter
# Required-Start: $network $local_fs
# Required-Stop: $local_fs
# Default-Start: 3 5
# Default-Stop: 0 1 2 4 6
### END INIT INFO
#
case "$1" in
start)
echo "Starte IP-Paketfilter"
# Alle Regeln loeschen
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X
/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_conntrack_irc
/sbin/modprobe iptable_nat
/sbin/modprobe ip_nat_ftp
# Logs
iptables -N LOGONLY
iptables -A LOGONLY -j LOG --log-prefix "IPTABLES packet log : " --log-tcp-options --log-tcp-sequence
--log-ip-options --log-level info
iptables -A LOGONLY -j ACCEPT
iptables -N LOGDROP
iptables -A LOGDROP -j LOG --log-prefix "IPTABLES packet kill: " --log-tcp-options --log-tcp-sequence
--log-ip-options --log-level info
iptables -A LOGDROP -j DROP
iptables -N UNKNOWNINPUT
iptables -A UNKNOWNINPUT -j LOG --log-prefix "IPTABLES unknown input: " --log-tcp-options
--log-tcp-sequence --log-ip-options --log-level info
iptables -A UNKNOWNINPUT -j DROP
iptables -N UNKNOWNFORWARD
iptables -A UNKNOWNFORWARD -j LOG --log-prefix "IPTABLES unknown forward: " --log-tcp-options
--log-tcp-sequence --log-ip-options --log-level info
iptables -A UNKNOWNFORWARD -j DROP
# Standard
# Pakete an lokale Prozesse
# Policy (Standardverhalten): Paket ververfen
iptables -P INPUT DROP
# Eingehende Pakete nur von innen oder wenn zu einer bestehenden verbindung
iptables -A INPUT -s 192.168.0.0/24 -j ACCEPT
iptables -A INPUT -s 192.168.10.0/24 -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Korrupte Pakete zurueckweisen
iptables -A INPUT -m state --state INVALID -j DROP
# MY_REJECT-Chain
iptables -N MY_REJECT
# MY_REJECT fuellen
iptables -A MY_REJECT -p tcp -j REJECT --reject-with tcp-reset
iptables -A MY_REJECT -p udp -j REJECT --reject-with icmp-port-unreachable
iptables -A MY_REJECT -p icmp -j DROP
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
# 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
# Maximum Segment Size (MSS) fr das Forwarding an PMTU anpassen
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
# Syn-Flood-Schutz
iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
# Stealthscans ignorieren
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
iptables -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j DROP
iptables -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j DROP
iptables -A INPUT -p tcp --tcp-flags ACK,PSH PSH -j DROP
iptables -A INPUT -p tcp --tcp-flags ACK,URG URG -j DROP
# Pakete die geroutet werden loeschen
iptables -P FORWARD DROP
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# Korrupte Pakete zurueckweisen
iptables -A FORWARD -m state --state INVALID -j DROP
# Nur HTTP, HTTPS, POP3, DNS und SMTP forwarden
# DNS FORWARD
iptables -A FORWARD -m udp -p udp --dport 53 -m state --state NEW -j ACCEPT
iptables -A FORWARD -m tcp -p tcp --dport 53 -m state --state NEW -j ACCEPT
# HTTP FORWARD
iptables -A FORWARD -m tcp -p tcp --dport 80 -m state --state NEW -j ACCEPT
# MESSENGER,ICQ USW. FORWARD
iptables -A FORWARD -m tcp -p tcp --dport 569 -m state --state NEW -j ACCEPT
iptables -A FORWARD -m udp -p udp --dport 1863 -m state --state NEW -j ACCEPT
iptables -A FORWARD -m tcp -p tcp --dport 1863 -m state --state NEW -j ACCEPT
iptables -A FORWARD -m tcp -p tcp --dport 5050 -m state --state NEW -j ACCEPT
iptables -A FORWARD -m tcp -p tcp --dport 5010 -m state --state NEW -j ACCEPT
iptables -A FORWARD -m tcp -p tcp --dport 4000 -m state --state NEW -j ACCEPT
#PORT 8080
iptables -A FORWARD -m tcp -p tcp --dport 8080 -m state --state NEW -j ACCEPT
# HTTPS FORWARD
iptables -A FORWARD -m tcp -p tcp --dport 443 -m state --state NEW -j ACCEPT
# POP3 FORWARD
iptables -A FORWARD -m tcp -p tcp --dport 110 -m state --state NEW -j ACCEPT
# SMTP FORWARD
iptables -A FORWARD -m tcp -p tcp --dport 25 -m state --state NEW -j ACCEPT
# SQUID FORWARD und Transparent Proxy
iptables -t nat -A PREROUTING -p tcp -s 192.168.10.2/255.255.255.0 --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -p tcp -s 192.168.0.0/24 --dport 80 -j REDIRECT --to-port 3128
iptables -A FORWARD -m tcp -p tcp --dport 3128 -m state --state NEW -j ACCEPT
# FTP FORWARD
iptables -A FORWARD -m tcp -p tcp --dport 20:21 -m state --state NEW -j ACCEPT
#ICMP FORWARD erlauben
iptables -A FORWARD -m state --state NEW -p icmp -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# Paketweiterleitung
iptables -A POSTROUTING -t nat -s 192.168.0.0/24 -j MASQUERADE
iptables -A POSTROUTING -t nat -s 192.168.10.0/24 -j MASQUERADE
# Pakete von lokalen Prozessen
iptables -P OUTPUT ACCEPT
# Korrupte Pakete zurueckweisen
iptables -A OUTPUT -m state --state INVALID -j DROP
# Forwarding/Routing
echo 1 > /proc/sys/net/ipv4/ip_forward
# 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
# Ungltige 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 fr 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
Lesezeichen