Linux 15.027 Themen, 107.036 Beiträge

Problem Masquarading

kmanni / 3 Antworten / Flachansicht Nickles

Hallo!!

Also,ich möchte gerne mit meinen ICQ auch Daten empfangen,das Problem ist das mein Rechner hinter einen Suse 8.2 Server läuft.
Auf diesen habe ich Firewall Skript laufen(welches ich auch nur bekommen habe,von einen Linuxkenner und ich es nur an meine Programme angpasst habe).Es benutzt iptables und ip_nat_ftp.
Alles funktioniert wunderbar,ich kann sogar mit ICQ Dateien an andere Nutzer schicken.Nur der Datenempfang geht nicht.
Was ist eurer Meinung nach die beste Lösung???
Alles andere soll aber so bleiben,da auch noch andere Sachen auf dem Server laufen.

Hier ist mal mein fw Skript:

#!/bin/bash
#Setting up global variables
PROG=/usr/sbin/iptables
INT_DEV=eth1
EXT_DEV=eth0

case "$1" in
start)
echo "Starting Firewall"

#Flush and delete all Cains
$PROG -F
$PROG -t nat -F
$PROG -X

#Insert modules
/sbin/insmod ip_conntrack_ftp
/sbin/insmod ip_nat_ftp

#Setting Default Policy to DROP everything
$PROG -P INPUT DROP
$PROG -P OUTPUT DROP
$PROG -P FORWARD DROP

#Open loopback device
$PROG -A OUTPUT -o lo -j ACCEPT
$PROG -A INPUT -i lo -j ACCEPT

#Accept Connections from internal network
$PROG -A INPUT -i $INT_DEV -j ACCEPT
$PROG -A OUTPUT -o $INT_DEV -j ACCEPT

#FTP Server
$PROG -A INPUT -i $EXT_DEV -p tcp --dport 21 -j ACCEPT
$PROG -A OUTPUT -o $EXT_DEV -p tcp --sport 21 -j ACCEPT

#Wolfenstein TCP
$PROG -A INPUT -i $EXT_DEV -p tcp --dport 27960 -j ACCEPT
$PROG -A OUTPUT -o $EXT_DEV -p tcp --sport 27960 -j ACCEPT
$PROG -A INPUT -i $EXT_DEV -p tcp --dport 27952 -j ACCEPT
$PROG -A OUTPUT -o $EXT_DEV -p tcp --sport 27952 -j ACCEPT

#Battlefield 1942 UDP
$PROG -A INPUT -i $EXT_DEV -p udp --dport 14567 -j ACCEPT
$PROG -A OUTPUT -o $EXT_DEV -p udp --sport 14567 -j ACCEPT

$PROG -A INPUT -i $EXT_DEV -p tcp --dport 14567 -j ACCEPT
$PROG -A OUTPUT -o $EXT_DEV -p tcp --sport 14567 -j ACCEPT


#ICQ
$PROG -A INPUT -i $EXT_DEV -p tcp --dport 1024:27020 -j ACCEPT
$PROG -A OUTPUT -o $EXT_DEV -p tcp --sport 1024:27020 -j ACCEPT
$PROG -A INPUT -i $EXT_DEV -p udp --dport 3000 -j ACCEPT
$PROG -A OUTPUT -o $EXT_DEV -p udp --sport 3000 -j ACCEPT
$PROG -A INPUT -i $EXT_DEV -p tcp --dport 3834 -j ACCEPT
$PROG -A OUTPUT -o $EXT_DEV -p tcp --sport 3834 -j ACCEPT
$PROG -A INPUT -i $EXT_DEV -p udp --dport 3834 -j ACCEPT
$PROG -A OUTPUT -o $EXT_DEV -p udp --sport 3834 -j ACCEPT

#Dante Proxy
$PROG -A INPUT -i $EXT_DEV -p tcp --dport 3001 -j ACCEPT
$PROG -A OUTPUT -o $EXT_DEV -p udp --sport 3001 -j ACCEPT
$PROG -A INPUT -i $EXT_DEV -p tcp --dport 3001 -j ACCEPT
$PROG -A OUTPUT -o $EXT_DEV -p udp --sport 3001 -j ACCEPT

#Wolfenstein UDP
$PROG -A INPUT -i $EXT_DEV -p udp --dport 27960 -j ACCEPT
$PROG -A OUTPUT -o $EXT_DEV -p udp --sport 27960 -j ACCEPT
$PROG -A INPUT -i $EXT_DEV -p udp --dport 27952 -j ACCEPT
$PROG -A OUTPUT -o $EXT_DEV -p udp --sport 27952 -j ACCEPT

#Counter TCP
$PROG -A INPUT -i $EXT_DEV -p tcp --dport 27015 -j ACCEPT
$PROG -A OUTPUT -o $EXT_DEV -p tcp --sport 27015 -j ACCEPT
$PROG -A INPUT -i $EXT_DEV -p tcp --dport 27005 -j ACCEPT
$PROG -A OUTPUT -o $EXT_DEV -p tcp --sport 27005 -j ACCEPT

#Counter UDP
$PROG -A INPUT -i $EXT_DEV -p udp --dport 27015 -j ACCEPT
$PROG -A OUTPUT -o $EXT_DEV -p udp --sport 27015 -j ACCEPT
$PROG -A INPUT -i $EXT_DEV -p udp --dport 27005 -j ACCEPT
$PROG -A OUTPUT -o $EXT_DEV -p udp --sport 27005 -j ACCEPT

#HTTP Server
$PROG -A INPUT -i $EXT_DEV -p tcp --dport 80 -j ACCEPT
#$PROG -A OUTPUT -o $EXT_DEV -p tcp --sport 80 -j ACCEPT

#Forward to EXT_DEV
$PROG -A OUTPUT -o $EXT_DEV -j ACCEPT
$PROG -A FORWARD -o $EXT_DEV -j ACCEPT

#Forward to internal Net if Paket is Related
$PROG -A INPUT -i $EXT_DEV -m state --state ESTABLISHED,RELATED -j ACCEPT
$PROG -A FORWARD -i $EXT_DEV -m state --state ESTABLISHED,RELATED -j ACCEPT

#Switch on IP-FORWARDING
echo 1 > /proc/sys/net/ipv4/ip_forward

#Enable IP Masquerading
$PROG -t nat -A POSTROUTING -o $EXT_DEV -j MASQUERADE
;;

stop)
echo "Shutting down Firewall"
#Flush and delete all Cains
$PROG -F
$PROG -t nat -F
$PROG -X

#Setting Default Policy to DROP everything
$PROG -P INPUT ACCEPT
$PROG -P OUTPUT ACCEPT
$PROG -P FORWARD ACCEPT

#Remove modules
/sbin/rmmod ip_conntrack_ftp
/sbin/rmmod ip_nat_ftp

#Open loopback device
$PROG -A OUTPUT -o lo -j ACCEPT
$PROG -A INPUT -i lo -j ACCEPT

#Accept local pings on eth0
$PROG -A INPUT -i $INT_DEV -p ICMP -j ACCEPT
$PROG -A OUTPUT -o $INT_DEV -p ICMP -j ACCEPT

#Accept Connections to SSH Server from internal network
#$PROG -A INPUT -i $INT_DEV -p TCP --dport 65 -j ACCEPT
#$PROG -A OUTPUT -o $INT_DEV -p TCP --sport 65 -j ACCEPT
$PROG -A FORWARD -p TCP --sport 22 -j DROP

#Disabling IP-FORWARDING
echo 0 > /proc/sys/net/ipv4/ip_dynaddr
echo 0 > /proc/sys/net/ipv4/ip_forward
;;

esac
echo

#/root/dyn


Vielleicht hat ja einer von euch einen Vorschlag,wie ich am besten alle ICQ-Incomming-Files direkt zu meinen 2ten Rechner weiterleiten kann.

Danke im Vorraus

mfg Manfred

bei Antwort benachrichtigen
Klaus_T kmanni „Hallo! Danke für die schnelle Antwort.Leider habe ich kein ISDN und auch kein...“
Optionen

Jo, wenn du eine Standleitung hast, ist eth0 natuerlich richtig.
Meine beiden Zeilen, die ich geschrieben habe, bedeuten nur, dass du etwas rausschicken kannst, aber keiner von ausserhalb auf deinen Rechner zugreifen kann, ausser dem, was du vorher freigegeben hast.
Und mit dem stateful: Ich dachte, du haettest das Script da selbst geschrieben und kennst dich damit aus. Wenn du natuerlich keinen Plan hast von iptables, ist das schlecht. Das einzigste, was ich dir raten kann:
Beschaeftige dich mit iptables. Am besten erstmal hier lesen einschliesslich der ganzen Links.
Bei mir ist das so: Meine Tochter hat auch ICQ und ich habe auf meinem Server den Squid-Proxy laufen. ICQ darf nur ueber den Squid gehen und es klappt hervorragend. Als Filterregel auf meinem Router sind nur die Zeilen von dort oben angegeben und natuerlich das forwarding.
Von Dante habe ich schon mal gehoert, ist glaube ich auch ein Proxy, oder? Leider kenne ich den nicht.
An deiner Stelle wuerde ich mich mit iptables beschaeftigen, vor allem da du ja einen HTTP-Server laufen hast. Allerdings tragen ICQ und die ganzen Spiele, die du freigegeben hast, nicht gerade zur Sicherheit bei.
Versuch erst einmal, bei den ICQ-Einstellungen die Ports zu aendern, also von 1024:27020 auf 1024:65535. Wie gesagt, ist auch nicht viel unsicherer als deine Sache. Und wenn du das hast, kannst du fast dein ganzes Script knicken, da du dort ja einige Sachen auf einen bestimmten Port beschraenkt hast, die dann natuerlich obsolet sind, da ja eh alles freigegeben ist. Uberdenke die ganze Sache noch einmal und ueberlege, ob du es nicht besser ueber einen Proxy machen willst.
Wenn du in English nicht so firm bist, kannst du auch hier lesen. Da gibt es einiges in deutsch ueber den Squid. Die englische Seite ist natuerlich besser und ausfuerhlicher.

Bye, Klaus

bei Antwort benachrichtigen