Sascha Andres wrote at Tuesday, January 01, 2002 1:18 AM Hallo
hi, On Tue, Jan 01, 2002 at 12:25:00AM +0100, Alexander Sommer wrote:
ja, iptables -A INPUT -d 255.255.255.255 -j DROP iptables -A INPUT -j -j LOG --log-prefix "INPUT Packet DENY :" okay. so wies aussieht scheint das script den vorletzten schritt einer http verbindung zu blocken. dabei kommt es auf die tcp flags an (ACK SYN FIN PSH).
bei einer http verbindung die geloggt sieht das so aus:
aufbau state NEW antwort ACK SYN datentransfer ACK datenende ACK FIN PSH bestaetigung ACK bestaetigung ACK
datenende wird bei dir geblockt.
wenn das nicht weiterhilft, kannst du mir gerne mal per pm dein script zuschicken. ich schau's mir dann mal an.
Leider bin ich soweit noch nicht eingestiegen, da? ich mit den Flags gro?artig umgehen kann und deshalb verstehe ich leider auch Deine Erklarung nicht. Aus diesem Grund hange ich das Skript einfach mal an. Besten Dank im fur Deine Hilfe Gru? Alex Firewall Skript: #! /bin/sh # # Masquerading Firewall Version 0.02 # # # Iptables / Netfilter Paketfilter # # fuer Kernel-Version 2.4.x # # einzelne Verbindungen vom internen Netzwerk zulassen # # Absichern und Logging # # Dynamische Paket Filterung internal_device="eth0" internal_netaddress="192.168.1.0/24" internal_netaddress1="192.168.10.0/24" external_device="ppp0" . /etc/rc.config # Wie wurde ich aufgrufen, direkt oder aus einem Runlevel-Link # # 1. kompletter Filename # 2. fuehrendes S/K 00-99 entfernen base=${0#*/} link=${base#*[SK][0-9][0-9]} # Wenn ich direkt aufgerufen wurde dann starte mich immer, # ansonsten check erst die Start-Variable /etc/rc.config/ START_MSQ_FIREWALL # test $link = $base && START_MSQ_FIREWALL="yes" test "$START_MSQ_FIREWALL" = yes || exit 0 case "$1" in start) echo -n "Starteng Firewall Services." echo # regeln flushen iptables -F # benutzerdefinierte Regeln entfernen iptables -X iptables -t nat -F # default policy iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT DROP # Schutzmasnahmen # siehe dazu auch: /usr/src/linux/Documentation/networking/ip-sysctl.txt # Schutz gegen IP-Spoofing if [ -e /proc/sys/net/ipv4/conf/all/rp_filter ]; then for i in /proc/sys/net/ipv4/conf/*/rp_filter; do echo 1 > $i done fi # SYN-FLOOD-Protection if [ -e /proc/sys/net/ipv4/tcp_syncookies ]; then echo 1 > /proc/sys/net/ipv4/tcp_syncookies fi # Source Route Quench Protection for i in /proc/sys/net/ipv4/conf/*/accept_source_route; do echo 0 > $i done # IP_Forwarding einschalten echo "1" > /proc/sys/net/ipv4/ip_forward # DYN_IP fuer ppp und dhcp clients echo "1" > /proc/sys/net/ipv4/ip_dynaddr # Loopback-Device freischalten iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT # Proxy, HTTP, POP, SMTP und Ping fur's Lan (192.168.1.x) freischalten iptables -A INPUT -p tcp --dport 3128 -i $internal_device -s $internal_netaddress -m state --state NEW -j ACCEPT iptables -A INPUT -p tcp --dport 110 -i $internal_device -s $internal_netaddress -m state --state NEW -j ACCEPT iptables -A INPUT -p tcp --dport 25 -i $internal_device -s $internal_netaddress -m state --state NEW -j ACCEPT iptables -A INPUT -p udp --dport 37 -i $internal_device -s $internal_netaddress -m state --state NEW -j ACCEPT iptables -A INPUT -p tcp --dport 22 -i $internal_device -s $internal_netaddress -m state --state NEW -j ACCEPT iptables -A INPUT -p icmp -i $internal_device -s $internal_netaddress -m state --state NEW -j ACCEPT # Proxy, POP, SMTP und Ping fur's Lan (192.168.10.x) freischalten iptables -A INPUT -p icmp -i $internal_device -s $internal_netaddress1 -m state --state NEW -j ACCEPT iptables -A INPUT -p tcp --dport 25 -i $internal_device -s $internal_netaddress1 -m state --state NEW -j ACCEPT iptables -A INPUT -p tcp --dport 110 -i $internal_device -s $internal_netaddress1 -m state --state NEW -j ACCEPT iptables -A INPUT -p tcp --dport 3128 -i $internal_device -s $internal_netaddress1 -m state --state NEW -j ACCEPT # FTP freischalten iptables -A INPUT -p tcp --dport 113 -j REJECT iptables -A INPUT -p tcp --sport 20 -j ACCEPT # Ping, HTTP, DNS, FTP, POP3, SMTP, SSL, SSH nach au?en lassen iptables -A OUTPUT -p icmp -m state --state NEW -j ACCEPT iptables -A OUTPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT iptables -A OUTPUT -p udp --dport 53 -j ACCEPT iptables -A OUTPUT -p tcp --dport 21 -m state --state NEW -j ACCEPT iptables -A OUTPUT -p tcp --dport 110 -m state --state NEW -j ACCEPT iptables -A OUTPUT -p tcp --dport 25 -m state --state NEW -j ACCEPT iptables -A OUTPUT -p tcp --dport 443 -m state --state NEW -j ACCEPT iptables -A OUTPUT -p udp --dport 37 -m state --state NEW -j ACCEPT # Vorhandene Verbindungen zulassen iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT # Forward-Chain zur Vorselektierung # ICMP iptables -A FORWARD -p icmp -i $internal_device -s $internal_netaddress -m state --state NEW -j ACCEPT # DNS iptables -A FORWARD -p udp --dport 53 -i $internal_device -s $internal_netaddress -m state --state NEW -j ACCEPT # HTTP iptables -A FORWARD -p tcp --dport 80 -i $internal_device -s $internal_netaddress -m state --state NEW -j ACCEPT # FTP-Command iptables -A FORWARD -p tcp --dport 21 -i $internal_device -s $internal_netaddress -m state --state NEW -j ACCEPT # FTP-Data passiv iptables -A FORWARD -p tcp --dport 1024 -i $internal_device -s $internal_netaddress -m state --state NEW -j ACCEPT # SSH iptables -A FORWARD -p tcp --dport 22 -i $internal_device -s $internal_netaddress -m state --state NEW -j ACCEPT # Forwarding Rules definieren # alle bestehenden Verbindungen zulassen iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT # nicht zugelassene Verbindungen protokollieren iptables -A FORWARD -d 255.255.255.255 -j DROP iptables -A FORWARD -j LOG --log-prefix "FORWARD Packet DENY :" # Postrouting und Maskieren iptables -t nat -A POSTROUTING -o $external_device -j MASQUERADE # Logging von externen Verbindungsversuchen iptables -A INPUT -d 255.255.255.255 -j DROP iptables -A INPUT -j LOG --log-prefix "INPUT Packet DENY :" ;; stop) echo -n "Shutting down Masquerding Services." echo # regeln flushen iptables -F # IP_Forwarding ausschalten echo "0" > /proc/sys/net/ipv4/ip_forward ;; *) echo "Usage: $0 {start|stop}" esac