Firewall + ssh && scp || transparent proxiing

Post Reply
Message
Author
pwk.linuxfan

Firewall + ssh && scp || transparent proxiing

#1 Post by pwk.linuxfan »

Dies ist meine Firewall:

#########################################firewall##################
#!/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.0.97
DEV_INET=ppp0
LNET=192.168.0.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.

#wwwoffle proxy
#echo Doing the proxy redirection
#alles was an den 80 Port kommt und tcp ist, wird an wwwoffle(port 8080) geleitet
#ipchains -A input -s $LNET 1024: --destination-port 80 -p tcp -i $DEV_LNET -j REDIRECT 8080
#ipchains -A output --source-port 80 -d $LNET 1024: -p tcp -i $DEV_LNET -j ACCEPT ! -y


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

Wenn ich mit ssh in einen Rechner auf dem Internet einloggen will, gehts nicht ! auch scp geht nicht ! Ohne firewall klappt beides.

Auch Transparent proxiing (die beiden auskommentierten Zeilen) haben nicht funktioniert.(Kernel kanns)

Welche Regeln brauche ich um diese beiden Dinge zu aktivieren

User avatar
hjb
Pro-Linux
Posts: 3264
Joined: 15. Aug 1999 16:59
Location: Bruchsal
Contact:

Re: Firewall + ssh && scp || transparent proxiing

#2 Post by hjb »

Hi,

diese "Firewall" ist löchrig wie ein Sieb <img src="http://www.pl-forum.de/UltraBoard/Images/Sad.gif" border="0" align="middle"> Wenn man alle Ports oberhalb 1023 pauschal freigibt, kann man sie genausogut wegschmeißen.

Was fehlt, ist eine Freigabe für Port 22, das ist SSH.

Vor alle Ausrufezeichen sollte man einen Backslash schreiben, denn das Ausrufezeichen ist ein Shell-Metazeichen, ich habe Bedenken, daß das Kommando so tut wie es soll.

Gruß,
hjb
Pro-Linux - warum durch Fenster steigen, wenn es eine Tür gibt?

pwk.linuxfan

Re: Firewall + ssh && scp || transparent proxiing

#3 Post by pwk.linuxfan »

Ich habe diese firewall aus eurem Artikel, sie ist nur angepasst(Die Variablen). Also sollten die Ausrufezeichen schon korrekt sein.
Warum ist sie löchrig ? Warum steht darüber nichts in eurem Firewall Artikel ?

Und was ist mit dem transparent proxiing? Keine Idee?

User avatar
hjb
Pro-Linux
Posts: 3264
Joined: 15. Aug 1999 16:59
Location: Bruchsal
Contact:

Re: Firewall + ssh && scp || transparent proxiing

#4 Post by hjb »

Hi,

OK, ganz so schlimm ist es nicht, wie ich auf den 2. Blick feststelle.

Lediglich mit UDP sehe ich ein ernsthaftes Problem: es gibt keinen Grund, einen anderen UDP-Port als 53 freizugeben, und auch das nur für den Remote Port 53. Denn 53 ist DNS, das braucht man normalerweise... Alles andere ist ein ernsthaftes Sicherheitsrisiko, da NFS, rsh und SNMP über UDP gehen, und keines dieser Protokolle nennenswerte Sicherheitsmechanismen hat.

Über den Transparent Proxy weiß ich nichts, habe ich auch noch nie selbst gemacht. Bemühe eine Suchmaschine.

Gruß,
hjb
Pro-Linux - warum durch Fenster steigen, wenn es eine Tür gibt?

nafets

Re: Firewall + ssh && scp || transparent proxiing

#5 Post by nafets »

da kann ich mal wieder nur auf die adresse http://packetfilter.dynip.com/doit verweisen. lass die da 'n script generieren. dort findest du auch infos zum portforwarding (in deinem fall transparent proxy für squid). so long

nafets

Post Reply