firewall & webserver

Locked
Message
Author
rajko bock

firewall & webserver

#1 Post by rajko bock »

hey leute,

auf meinem suse6.4-server habe ich das firewall-script von pro-linux laufen.
verhindert diese script, das ich von aussen auf meinen server (http,ftp,telnet bzw. ssh)zugreifen kann ?
wenn ja, was muss ich ändern ?
wenn nicht, wo könnte dann der fehler liegen ?
auf einen ping, sowie ein traceroute reagiert er.

vielen dank
rajko bock

odauter
Posts: 460
Joined: 17. Apr 2000 20:05
Location: Hamburg
Contact:

Re: firewall & webserver

#2 Post by odauter »

Was für ein Firewall-Script? Poste das mal hier und wir schauen uns das gerne an.

> auf einen ping, sowie ein traceroute reagiert er.
Schon Mist. <img src="http://www.pl-forum.de/UltraBoard/Images/Wilk.gif" border="0" align="middle"> Sollte man blocken...
Last edited by odauter on 25. Aug 2000 12:01, edited 1 time in total.
bye.olli
--
"Where's Oswald when we need him.."

rajko bock

Re: firewall & webserver

#3 Post by rajko bock »

________________________________________________

#!/bin/sh
# Starting up the firewall
echo
echo Stand by while starting up the firewall...
echo
# Starting IP forwarding
echo Starting IP forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
# IP Forward muß vorher aktiviert werden.
# Unter SuSE sollte der Befehl in der rc.config aktiviert werden.
# Bei Masquerading muß zusätzlich noch IP_DYNIP in der
# rc.config aktiviert sein.
echo Start RP filter for anti spoofing shield
echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
# Anti Spoofing Schutz wird aktiviert.

# Deleting all chains
echo Deleting all existing chains...
ipchains -F
# Alle existierenden Regeln werden gelöscht

# Default policy
echo Setting up default policy...
ipchains -P input DENY
ipchains -P forward DENY
ipchains -P output DENY
# Die Default Policy wird auf DENY gesetzt
# Somit haben Sie jetzt eine ultimative Firewall

# Variables
echo Setting up all defined variables...
DEV_LNET=eth0
IP_LNET=192.168.100.5
DEV_INET=ippp0
LNET=192.168.100.0/24
GLOBAL=0.0.0.0/0
# Alle nötigen Variabeln werden jetzt definiert

# Loopback
echo Setting up loopback interface...
ipchains -A input -i lo -j ACCEPT
ipchains -A output -i lo -j ACCEPT
# Zugriff auf den Loopback Device

# Intranet connections
echo Setting up intranet connections...
ipchains -A input -i eth0 -s $LNET -j ACCEPT
ipchains -A output -i eth0 -d $LNET -j ACCEPT
# Das maskierte Netz hat Zugriff auf das Netzwerk Device ETH0

# Internet connections
echo Setting up internet syn connections...
ipchains -A input -s $LNET 1024: -p tcp -i $DEV_LNET -j ACCEPT
# Alles was aus dem LAN über dem Port 1023 auf ETH0 ankommt
# und TCP verwendet wird akzeptiert und an die forward chain übergeben
ipchains -A forward -s $LNET 1024: -p tcp -i $DEV_INET -j MASQ
# Alles was aus dem LAN über dem Port 1023 und TCP verwendet
# wird maskiert, an das IPPP0 weitergeleitet (geroutet)
# und somit an die output chain übergeben
ipchains -A output -s $GLOBAL 1024: -p tcp -i $DEV_INET -j ACCEPT
# Alles was von überall ($GLOBAL) über das IPPP0 Device nach
# draußen möchte und TCP verwendet wird akzeptiert.
# Jetzt folgt nochmal genau das selbe nur mit dem UDP Protokoll.
# Dieses ist zum Beispiel notwendig für Nameserveranfragen.
ipchains -A input -s $LNET 1024: -p udp -i $DEV_LNET -j ACCEPT
ipchains -A forward -s $LNET 1024: -p udp -i $DEV_INET -j MASQ
ipchains -A output -s $GLOBAL 1024: -p udp -i $DEV_INET -j ACCEPT

# Internet answers
echo Setting up internet ack connections...
ipchains -A input --sport 20 -d $GLOBAL 1024: -p tcp -i $DEV_INET -j ACCEPT
ipchains -A output --sport 20 -d $LNET 1024: -p tcp -i $DEV_LNET -j ACCEPT
# Diese beiden Regeln sind dafür zuständig, daß aktives FTP funktioniert.
# Ich erlaube also einen Zugriff auf einen privilegierten Port (Gerät IPPP0).
# Allerdings kann niemand auf den Port eine Verbindung aufbauen da
# er dafür den Kontrollport 21 braucht, der allerdings von außen gesperrt ist.
ipchains -A input -d $GLOBAL 1024: -p tcp -i $DEV_INET -j ACCEPT ! -y
# Alles was über dem Port 1023 mit dem Protokoll TCP auf dem IPPP0 Device
# ankommt wird akzeptiert, wenn keine Verbindung zu ihm aufgebaut wurde.
ipchains -A output -d $LNET 1024: -p tcp -i $DEV_LNET -j ACCEPT ! -y
# Alles über dem Port 1023 mit dem Protokoll TCP und dem LAN als
# Ziel wird akzeptiert, wenn keine Verbindung zu ihm aufgebaut wurde.
ipchains -A input -d $GLOBAL 1024: -p udp -i $DEV_INET -j ACCEPT
ipchains -A output -d $LNET 1024: -p udp -i $DEV_LNET -j ACCEPT

# icmp-acc
echo Setting up icmp defined restrictions...
ipchains -N icmp-acc
# Benutzerdefinierte Chain wird erstellt.
ipchains -A icmp-acc -p icmp --icmp-type echo-reply -j ACCEPT
ipchains -A icmp-acc -p icmp --icmp-type echo-request -j ACCEPT
ipchains -A icmp-acc -p icmp --icmp-type destination-unreachable -j ACCEPT
ipchains -A icmp-acc -p icmp --icmp-type source-quench -j ACCEPT
ipchains -A icmp-acc -p icmp --icmp-type time-exceeded -j ACCEPT
ipchains -A icmp-acc -p icmp --icmp-type parameter-problem -j ACCEPT
# ICMP Pakete (echo-reply, echo-request , destination-unreachable, source-quench
# time-exceeded, parameter-problem) werden akzeptiert.

# icmp
echo Setting up icmp major restrictions...
ipchains -A input -p icmp -j icmp-acc
# Alle eingehenden Pakete werden an die benutzerdefinierte Regel icmp-acc weitergeleitet.
ipchains -A forward -p icmp -j MASQ
# Alle Pakete die zwischen den Netzwerk Devices geroutet und maskiert.
ipchains -A output -p icmp -j icmp-acc
# Alle ausgehende Pakete werden an die benutzerdefinierte Regel icmp-acc weitergeleitet.

# Masquerading
echo Loading modules for masquerading...
# Module für Masquerading werden geladen
insmod /lib/modules/2.2.10/ipv4/ip_masq_ftp.o
insmod /lib/modules/2.2.10/ipv4/ip_masq_irc.o
insmod /lib/modules/2.2.10/ipv4/ip_masq_quake.o
insmod /lib/modules/2.2.10/ipv4/ip_masq_raudio.o
insmod /lib/modules/2.2.10/ipv4/ip_masq_vdolive.o
insmod /lib/modules/2.2.10/ipv4/ip_masq_cuseeme.o
echo
echo Firewall active
echo
________________________________________________


meine kernelversion ist 2.2.17

odauter
Posts: 460
Joined: 17. Apr 2000 20:05
Location: Hamburg
Contact:

Re: firewall & webserver

#4 Post by odauter »

> verhindert diese script, das ich von aussen auf meinen server (http,ftp,telnet bzw. ssh)zugreifen kann ?
Ja. Die hier verwendeten Regeln erlauben Zugriffe von außen nach innen nur, wenn kein SYN.Bit mitkommt - dh. wenn das Packet keine Antwort einer Anfrage von Innen ist, sondern die Session von Außen nach Innen aufgebaut werden soll.

> wenn ja, was muss ich ändern ?

Damit sollte zB. der HTTP-Zugriff von außen gehen:

ipchains -A input -i $DEV_INET -s $GLOBAL 1023: -d $GLOBAL 80 -p tcp -j ACCEPT
ipchains -A output -i $DEV_INET -s $GLOBAL 80 -d $GLOBAL 1023: -p tcp -j ACCEPT ! -y

> auf einen ping, sowie ein traceroute reagiert er.

Das wäre das einzige, wo ich mir nochmal Gedanken drüber machen würde. Ich würde das nicht wollen. Hier kannst Du das ändern, indem Du vor dem jeweiligem ICMP-Typen ACCEPT durch DENY ersetzt:

> ipchains -A icmp-acc -p icmp --icmp-type echo-reply -j ACCEPT
> ipchains -A icmp-acc -p icmp --icmp-type echo-request -j ACCEPT
> ipchains -A icmp-acc -p icmp --icmp-type destination-unreachable -j ACCEPT
> ipchains -A icmp-acc -p icmp --icmp-type source-quench -j ACCEPT
> ipchains -A icmp-acc -p icmp --icmp-type time-exceeded -j ACCEPT
> ipchains -A icmp-acc -p icmp --icmp-type parameter-problem -j ACCEPT
> # ICMP Pakete (echo-reply, echo-request , destination-unreachable, source-quench
> # time-exceeded, parameter-problem) werden akzeptiert.
bye.olli
--
"Where's Oswald when we need him.."

rajko bock

Re: firewall & webserver

#5 Post by rajko bock »

vielen dank erstmal <img src="http://www.pl-forum.de/UltraBoard/Images/Wilk.gif" border="0" align="middle">
werde gleich am wochenende testen ob es funzt.


rajko bock

User avatar
max
Posts: 806
Joined: 14. May 2000 12:55
Location: Ruhrpott

Re: firewall & webserver

#6 Post by max »

zu beachten ist noch das die Rules für http vor der Rule mit dem SYN Bit setzt.
Da die Reihenfolge wichtig.

Locked