GTelnet / Bitel adsl Internet Firewall iptables

Stefan Pump lug at pumpnet.de
Sun Feb 15 23:53:42 CET 2004


>> Wo ich mich am Kopf kratze ist folgendes:
>> Das System soll per DSL eingebunden sein, aber ich kann kein ppp0
>> finden.
>>
>
>Die machen das intern. Einfach dhcp auf das betreffende Interface und
fertig!
>
> Kann es sein, das GTelnet es seinen Kunden ermöglicht direkt per
DHCP


Das klärt ja schon einen Teil meines Problems. Danke.

Was bleibt, ist das die Firewall mich einfach nach einer bestimmten
Zeit nicht mehr ran läßt.

Jetzt mal meine Theorie zur Diskussion ;-)

Ich schätze es hat mit dem dhclient zu tun. Wenn ich es recht in
Erinnerung habe, überprüft dieser alle 5 Minuten, ob er eine IP hat
und wenn ja, welche.

Wahrscheinlich erlaubt die Firewall nicht, dass diese Abfrage
stattfindet :-(
Infolge dessen fordert der Rechner, weil er ja keine Antwort bekommt,
eine neue IP-Adresse.
Der DHCP-Server liefert ihm eine neue IP, die alte ist nicht mehr
gültig und alle Firewall-Regeln, die eine IP-Adresse benutzen laufen
ins Leere, dh die IP-Adresse, die ihm zugewiesen wurde ist nicht mehr
die, die er denkt zu besitzen. Und alles läuft schief.

Nun ja, vielleicht kann das hier jemand anhand des firewall-scripts
bestätigen oder verwerfen, dann muss ich an einer anderen Stelle
wieter suchen (bloß an welcher?).
Ganz so flüssig lese ich iptables-rules noch nicht, aber ich glaube
hier fehlt die von dhclient benötige Regel.




Danke,
    Stefan

<script firewall-an>
#!/bin/sh
echo "Starting firewalling... "

#---------------------------------------------------------------------
--
# Variablen
LAN_INT="eth0"                          # Internes Interface
WAN_INT="eth1"    # Externes Interface # war eth1
LAN_NET="192.168.0.0/16"  # lokales Netz

#IPADDR=$(/sbin/ifconfig $WAN_INT | /bin/grep inet | /usr/bin/cut -c
21-38 | /usr/bin/awk '{print $1}' )

IPADDR="$(/sbin/ifconfig ppp0 | grep 'inet addr:' | sed 's/.*inet
addr:\([0-9.]*\).*/\1/g')"


DNS1="193.189.244.197"   # Erster DNS GTelnet
DNS2="194.25.2.129"   # Zweiter DNS Telekom
DNS3="193.189.250.35"                   # Orthanc

POP1="pop3.t-online.de"
POP2="pop.kundenserver.de"
POP3="pop.profimailer.de"


SMTP1="smtp.t-online.de"
SMTP2="auth.smtp.kundenserver.de"
SMTP3="auth.smtp.profimailer.de"

NTP1="ntp0.mediaways.net"

UNPRIVPORTS="1024:65535"                # unprivileged port range
SSH_LOC="522:65535"   # port range for local clients
SSH_REM="513:65535"   # port range for remote clients
TRACE_OUT="32769:65535"
TRACE_IN="33434:33523"

MEINE_FESTE_IP-ADRESSE = irgendwas

#---------------------------------------------------------------------
---------
for IF in $LAN_INT $WAN_INT ; do
echo "1" > /proc/sys/net/ipv4/conf/$IF/rp_filter
echo "0" > /proc/sys/net/ipv4/conf/$IF/accept_redirects
echo "0" > /proc/sys/net/ipv4/conf/$IF/accept_source_route
echo "0" > /proc/sys/net/ipv4/conf/$IF/bootp_relay
echo "1" > /proc/sys/net/ipv4/conf/$IF/log_martians
done
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses

#---------------------------------------------------------------------
---------
# zurücksetzten aller Regeln
iptables -F -t filter
iptables -F -t nat
iptables -F -t mangle
iptables -X

# alles default droppen
iptables -P INPUT   DROP
iptables -P FORWARD DROP
iptables -P OUTPUT  DROP

# Erweiterter Schutz gegen Scanner
iptables -A INPUT   -p tcp --tcp-flags ALL ALL -j DROP
iptables -A FORWARD -p tcp --tcp-flags ALL ALL -j DROP
iptables -A INPUT   -p tcp --tcp-flags ALL NONE -j DROP
iptables -A FORWARD -p tcp --tcp-flags ALL NONE -j DROP

#---------------------------------------------------------------------
---------
# Logging
iptables -N devnull
iptables -A devnull -p TCP ! --dport 4662 -j LOG --log-prefix "tcp "
iptables -A devnull -p UDP -j LOG --log-prefix "udp "
iptables -A devnull -p ICMP -j LOG --log-prefix "icmp "
iptables -A devnull -p TCP -j DROP
iptables -A devnull -p UDP -j DROP

#---------------------------------------------------------------------
---------
# Loopback unlimited
iptables -A INPUT  -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

#---------------------------------------------------------------------
---------
# Internal Network unlimited
iptables -A INPUT  -i $LAN_INT -s $LAN_NET -j ACCEPT
iptables -A OUTPUT -o $LAN_INT -d $LAN_NET -j ACCEPT

#---------------------------------------------------------------------
---------
# Masquerading aus dem LAN nach aussen
echo "1" > /proc/sys/net/ipv4/ip_dynaddr
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o $WAN_INT -s $LAN_NET -j MASQUERADE



#---------------------------------------------------------------------
---------
# Initialisierung von statefull firewalling
iptables -A FORWARD -i $LAN_INT -o $WAN_INT -m state --state
ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $WAN_INT -o $LAN_INT -m state --state
ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $WAN_INT -o $LAN_INT -m state --state
NEW,INVALID -j devnull

iptables -A INPUT  -i $WAN_INT -m state --state ESTABLISHED,RELATED -j
ACCEPT
iptables -A OUTPUT -o $WAN_INT -m state --state ESTABLISHED,RELATED -j
ACCEPT

#---------------------------------------------------------------------
---------
# Spoofing protection
iptables -A INPUT -s $IPADDR -j DROP

#---------------------------------------------------------------------
---------
# ping nach draussen
iptables -A OUTPUT -o $WAN_INT -p ICMP -s $IPADDR --icmp-type
echo-request -j ACCEPT
iptables -A FORWARD -i $LAN_INT -o $WAN_INT -p ICMP --icmp-type
echo-request -j ACCEPT

#---------------------------------------------------------------------
---------
# ping von aussen zulassen
iptables -A INPUT -i $WAN_INT -p ICMP --icmp-type echo-request -j
ACCEPT

#---------------------------------------------------------------------
---------
# traceroute nach draussen erlauben
iptables -A FORWARD -i $LAN_INT -o $WAN_INT -p udp \
         --sport $TRACE_OUT --dport $TRACE_IN -j ACCEPT

#---------------------------------------------------------------------
---------
# whois nach drausser erlauben
iptables -A FORWARD -i $LAN_INT -o $WAN_INT -p tcp \
         --sport $UNPRIVPORTS --dport 43 -j ACCEPT

#---------------------------------------------------------------------
---------
# DNS aktivieren
iptables -A OUTPUT -o $WAN_INT -p udp -s $IPADDR --sport $UNPRIVPORTS
\
   --dport 53 -d $DNS1 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -o $WAN_INT -p udp -s $IPADDR --sport $UNPRIVPORTS
\
   --dport 53 -d $DNS2 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -o $WAN_INT -p udp -s $IPADDR --sport $UNPRIVPORTS
\
   --dport 53 -d $DNS3 -m state --state NEW -j ACCEPT
iptables -A FORWARD -o $WAN_INT -p udp --sport $UNPRIVPORTS \
   --dport 53 -d $DNS1 -m state --state NEW -j ACCEPT
iptables -A FORWARD -o $WAN_INT -p udp --sport $UNPRIVPORTS \
   --dport 53 -d $DNS2 -m state --state NEW -j ACCEPT
iptables -A FORWARD -o $WAN_INT -p udp --sport $UNPRIVPORTS \
   --dport 53 -d $DNS3 -m state --state NEW -j ACCEPT

#---------------------------------------------------------------------
---------
# HTTP und HTTPS nach draussen
iptables -A OUTPUT -o $WAN_INT -p tcp -s $IPADDR --sport $UNPRIVPORTS
\
   --dport 80 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -o $WAN_INT -p tcp -s $IPADDR --sport $UNPRIVPORTS
\
   --dport 443 -m state --state NEW -j ACCEPT
iptables -A FORWARD -o $WAN_INT -p tcp --sport $UNPRIVPORTS \
   --dport 80 -m state --state NEW -j ACCEPT
iptables -A FORWARD -o $WAN_INT -p tcp --sport $UNPRIVPORTS \
  --dport 443 -m state --state NEW -j ACCEPT
#---------------------------------------------------------------------
---------
# Sparkassenprogramm
iptables -A FORWARD -o $WAN_INT -p tcp --sport $UNPRIVPORTS \
   --dport 866 -m state --state NEW -j ACCEPT

#---------------------------------------------------------------------
---------
# FTP aktiv nach draussen
iptables -A OUTPUT -o $WAN_INT -p tcp -s $IPADDR --sport $UNPRIVPORTS
\
   --dport 21 -m state --state NEW -j ACCEPT
iptables -A FORWARD -o $WAN_INT -p tcp --sport $UNPRIVPORTS \
   --dport 21 -m state --state NEW -j ACCEPT

#---------------------------------------------------------------------
---------
# POP3 nach aussen erlauben
iptables -A FORWARD -o $WAN_INT -p tcp --sport $UNPRIVPORTS \
   -d $POP1 --dport 110 -m state --state NEW -j ACCEPT
iptables -A FORWARD -o $WAN_INT -p tcp --sport $UNPRIVPORTS \
   -d $POP2 --dport 110 -m state --state NEW -j ACCEPT
iptables -A FORWARD -o $WAN_INT -p tcp --sport $UNPRIVPORTS \
   -d $POP3 --dport 110 -m state --state NEW -j ACCEPT

#---------------------------------------------------------------------
---------
# IMAP nach draussen
#iptables -A FORWARD -o $WAN_INT -p tcp --sport $UNPRIVPORTS \
#   -d $IMAP1 --dport 143 -m state --state NEW -j ACCEPT
#iptables -A FORWARD -o $WAN_INT -p tcp --sport $UNPRIVPORTS \
#   -d $IMAP1 --dport 993 -m state --state NEW -j ACCEPT

#---------------------------------------------------------------------
---------
# SMTP nach draussen erlauben
iptables -A FORWARD -o $WAN_INT -p tcp --sport $UNPRIVPORTS \
   -d $SMTP1 --dport 25 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -o $WAN_INT -p tcp --sport $UNPRIVPORTS \
   -d $SMTP1 --dport 25 -m state --state NEW -j ACCEPT

#---------------------------------------------------------------------
---------
# SSH nach draussen
iptables -A OUTPUT -o $WAN_INT -p tcp -s $IPADDR --sport $UNPRIVPORTS
\
   --dport 22 -m state --state NEW -j ACCEPT
iptables -A FORWARD -o $WAN_INT -p tcp --sport $UNPRIVPORTS \
   --dport 22 -m state --state NEW -j ACCEPT

#---------------------------------------------------------------------
---------
# TELNET nach draussen.....besser ist das
iptables -A FORWARD  -o $WAN_INT -p tcp  --sport $UNPRIVPORTS \
   --dport 23 -m state --state NEW -j ACCEPT

#---------------------------------------------------------------------
---------
# NTP zulassen
iptables -A OUTPUT -o $WAN_INT -p udp --sport $UNPRIVPORTS \
   -d $NTP1 --dport 123 -m state --state NEW -j ACCEPT
iptables -A FORWARD -o $WAN_INT -p udp --sport $UNPRIVPORTS \
   -d $NTP1 --dport 123 -m state --state NEW -j ACCEPT

#---------------------------------------------------------------------
---------
# PPTPD zulassen

#iptables -A INPUT -i $WAN_INT -p tcp -d $IPADDR --dport 1723 -j
ACCEPT
#iptables -A OUTPUT -o $WAN_INT -p tcp -s $IPADDR --sport 1723 -j
ACCEPT

#iptables -A INPUT -p gre -j ACCEPT
#iptables -A OUTPUT -p gre -j ACCEPT


#---------------------------------------------------------------------
---------
# LDAP Zugriff nach draussen
#iptables -A FORWARD -o $WAN_INT -p tcp --sport $UNPRIVPORTS \
#   -d $LDAP --dport 389 -m state --state NEW -j ACCEPT

#---------------------------------------------------------------------
---------
# Messenger und Chat
iptables -A FORWARD -o $WAN_INT -p tcp --sport $UNPRIVPORTS \
   --dport 5190 -m state --state NEW -j ACCEPT
iptables -A FORWARD -o $WAN_INT -p tcp --sport $UNPRIVPORTS \
   --dport 9898 -m state --state NEW -j ACCEPT
iptables -A FORWARD -o $WAN_INT -p tcp --sport $UNPRIVPORTS \
   --dport 6667 -m state --state NEW -j ACCEPT

iptables -A FORWARD -o $WAN_INT -p tcp --sport $UNPRIVPORTS \
   --dport 1863 -m state --state NEW -j ACCEPT

#---------------------------------------------------------------------
---------
# Downloader
#iptables -A FORWARD -o $WAN_INT -p tcp --sport $UNPRIVPORTS \
#   --dport 1214 -m state --state NEW -j ACCEPT


#---------------------------------------------------------------------
---------
# AB HIER SERVER DIENSTE
#---------------------------------------------------------------------
---------
# SSH server
iptables -A INPUT -i $WAN_INT -p tcp --sport $SSH_REM \
         -d $IPADDR --dport 22 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -o $WAN_INT -p tcp --sport $SSH_REM \
         -d $IPADDR --dport 22 -m state --state
NEW,ESTABLISHED,RELATED -j ACCEPT


#---------------------------------------------------------------------
---------
# Alles für Fernzugriff öffnen von meinem PC
iptables -A INPUT -i $WAN_INT -p tcp -s $MEINE_FESTE_IP-ADRESSE \
         -d $IPADDR --dport 23 -m state --state NEW -j ACCEPT
iptables -A OUTPUT  -p tcp -s %IPADDR \
         -d $MEINE_FESTE_IP-ADRESSE -m state --state
NEW,ESTABLISHED,RELATED  -j ACCEPT


#---------------------------------------------------------------------
---------
# Alles was jetzt nicht rennt wird geloggt

#iptables -A INPUT   -j devnull
#iptables -A OUTPUT  -j devnull
#iptables -A FORWARD -j devnull


# the remainder:

iptables -A OUTPUT -o $WAN_INT -j LOG --log-level info --log-prefix
out_
iptables -A INPUT  -i $WAN_INT -j LOG --log-level info --log-prefix
in_
iptables -A FORWARD  -i $WAN_INT -j LOG --log-level info --log-prefix
for_




#---------------------------------------------------------------------
---------
# Erweiterter Schutz gegen Scanner
iptables -A INPUT   -p tcp --tcp-flags ALL ALL -j DROP
iptables -A FORWARD -p tcp --tcp-flags ALL ALL -j DROP
iptables -A INPUT   -p tcp --tcp-flags ALL NONE -j DROP
iptables -A FORWARD -p tcp --tcp-flags ALL NONE -j DROP

#---------------------------------------------------------------------
---------

echo "... up!"








More information about the Linux mailing list