Hallo! Mein Server (Suse7.3/SuSEFirewall2/iptables) dient als InternetGateway(via TDSL) für mein lokales Lan 192.168.1.1/24. Läuft alles hervorragend :) Nun habe ich in meinem lokalen Netz einen FTP-Server stehen der von Außen/Internet über meinen SuSE-InternerGatway zu erreichen sein soll. Ich möchte das Ganze über die iptables realisieren. Also habe ich fogendes getestet: iptables -A PREROUTING -t nat -p tcp -i ppp0 --dport 21 -j DNAT --to 192.168.1.1:21 und iptables -A PREROUTING -t nat -p tcp -i ppp0 --dport 20 -j DNAT --to 192.168.1.1:20 (ftp braucht wohl Port 20 und 21 ?!?) die beiden Zeilen gebe ich, nachdem ich die SuSEfirewall2 gestartet habe, ein. In meinem firewall-log finde ich nach einem Versuch zu connecten folgenden Zeilen: Apr 18 12:34:50 linuxsrv kernel: SuSE-FW-DROP-DEFAULT IN=ppp0 OUT=eth1 SRC=217.230.58.54 DST=192.168.1.1 LEN=60 TOS=0x00 PREC=0x00 TTL=62 ID=50500 DF PROTO=TCP SPT=34336 DPT=21 WINDOW=5808 RES=0x00 SYN URGP=0 OPT (020405840000080A058FFC1B0000000001030301) Apr 18 12:34:53 linuxsrv kernel: SuSE-FW-DROP-DEFAULT IN=ppp0 OUT=eth1 SRC=217.230.58.54 DST=192.168.1.1 LEN=60 TOS=0x00 PREC=0x00 TTL=62 ID=50501 DF PROTO=TCP SPT=34336 DPT=21 WINDOW=5808 RES=0x00 SYN URGP=0 OPT (020405840000080A058FFD470000000001030301) Irgendwo habe ich gelesen das ich evtl. den Kernel neu basteln muss? Ist das so? Was muss in den Kernel genau rein? Vielen Dank für die Hilfe im voraus! Alex
Am Don, 2002-04-18 um 13.20 schrieb Alex:
Hallo!
Moin!
iptables -A PREROUTING -t nat -p tcp -i ppp0 --dport 21 -j DNAT --to 192.168.1.1:21 und iptables -A PREROUTING -t nat -p tcp -i ppp0 --dport 20 -j DNAT --to 192.168.1.1:20 (ftp braucht wohl Port 20 und 21 ?!?)
Apr 18 12:34:50 linuxsrv kernel: SuSE-FW-DROP-DEFAULT IN=ppp0 OUT=eth1 SRC=217.230.58.54 DST=192.168.1.1 LEN=60 TOS=0x00 PREC=0x00 TTL=62 ID=50500 DF PROTO=TCP SPT=34336 DPT=21 WINDOW=5808 RES=0x00 SYN URGP=0 OPT (020405840000080A058FFC1B0000000001030301)
Bevor Du am Kernel rumschraubst könntest Du mal auf www.little-idiot.de vorbeigehen und Dir das Firewallhandbuch, Kapitel FTP (http://www.little-idiot.de/firewall/zusammen-109.html) anschauen (die Doamin heißt wirklich so ;-)) Für den Datentransfer brauchst Du noch "Highports" (>1024) und für aktives FTP muß der Server auch den Client connecten können (was für ein Sprachwirrwar). Gruß, Uli
hi alex, probier es mal so: iptables -t nat -A PREROUTING -i $ExternalNetworkDevice \ -p $Forward_Protokoll --dport $Forward_Dienst -j DNAT --to $Forward_Host iptables -I FORWARD -i $ExternalNetworkDevice -o $InternalNetworkDevice \ -p $Forward_Protokoll --dport $Forward_Dienst --sport $HighPorts \ -d $Forward_Host -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT $ExternalNetworkDevice = externe Netzwerkkarte, beispielsweise ppp0 $InternalNetworkDevice = eth0 oder so $Forward_Protokoll = udp oder icmp $Forward_Dienst = 21 für FTP $HighPorts = 1024:65535 $Forward_Host = interner Rechner, an den weitergeleitet werden soll alles klar? du mußtest nicht nur die daten umleiten, der datenfluß zwischen extern und dem internen client mußt du (siehe zweite regel) auch erlauben! gruß sebastian www.wolfgarten.com
Hallo !
Vielen Dank für die schnelle Antwort!
Ich habe folgende Zeilen ausprobiert:
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 21 -j DNAT --to
192.168.1.1
iptables -I FORWARD -i ppp0 -o eth1 -p tcp --dport 21 --sport 1024:65535 -d
192.168.1.1 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
Leider bekomme ich immer noch keine Connection :(
Eine Meldung ins log gibts auch nicht mehr.
Vielleicht muss ich doch den Kernel umbasteln?!?
Viele Grüße
Alex
----- Original Message -----
From: "Sebastian Wolfgarten"
hi alex,
probier es mal so:
iptables -t nat -A PREROUTING -i $ExternalNetworkDevice \ -p $Forward_Protokoll --dport $Forward_Dienst -j DNAT --to $Forward_Host
iptables -I FORWARD -i $ExternalNetworkDevice -o $InternalNetworkDevice \ -p $Forward_Protokoll --dport $Forward_Dienst --sport $HighPorts \ -d $Forward_Host -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$ExternalNetworkDevice = externe Netzwerkkarte, beispielsweise ppp0 $InternalNetworkDevice = eth0 oder so $Forward_Protokoll = udp oder icmp $Forward_Dienst = 21 für FTP $HighPorts = 1024:65535 $Forward_Host = interner Rechner, an den weitergeleitet werden soll
alles klar? du mußtest nicht nur die daten umleiten, der datenfluß zwischen extern und dem internen client mußt du (siehe zweite regel) auch erlauben!
gruß sebastian www.wolfgarten.com
Hallo,
hier meine SuSEfirewall2 config, vielleicht hilfts:
FW_DEV_EXT="ppp0"
FW_DEV_INT="eth1"
FW_DEV_DMZ=""
FW_ROUTE="yes"
FW_MASQUERADE="yes"
FW_MASQ_DEV="$FW_DEV_EXT"
FW_MASQ_NETS="192.168.1.1/24"
FW_PROTECT_FROM_INTERNAL="no"
FW_AUTOPROTECT_SERVICES="yes"
FW_SERVICES_EXT_TCP="21 22 25 110"
FW_SERVICES_EXT_IP=""
FW_SERVICES_DMZ_TCP=""
FW_SERVICES_DMZ_UDP=""
FW_SERVICES_DMZ_IP=""
FW_SERVICES_INT_TCP=""
FW_SERVICES_INT_UDP=""
FW_SERVICES_INT_IP=""
FW_TRUSTED_NETS=""
FW_ALLOW_INCOMING_HIGHPORTS_UDP="yes"
FW_SERVICE_AUTODETECT="yes"
FW_SERVICE_DNS="yes"
FW_SERVICE_DHCLIENT="no"
FW_SERVICE_DHCPD="no"
FW_SERVICE_SQUID="no"
FW_SERVICE_SAMBA="no"
FW_FORWARD=""
FW_FORWARD_MASQ=""
FW_REDIRECT=""
FW_LOG_DROP_CRIT="yes"
FW_LOG_DROP_ALL="no"
FW_LOG_ACCEPT_CRIT="yes"
FW_LOG_ACCEPT_ALL="no"
FW_LOG="--log-level warning --log-tcp-options --log-ip-option --log-prefix
SuSE-FW"
FW_KERNEL_SECURITY="no"
FW_STOP_KEEP_ROUTING_STATE="no"
FW_ALLOW_PING_FW="yes"
FW_ALLOW_PING_DMZ="no"
FW_ALLOW_PING_EXT="no"
FW_ALLOW_FW_TRACEROUTE="yes"
FW_ALLOW_FW_SOURCEQUENCH="yes"
FW_ALLOW_FW_BROADCAST="no"
FW_IGNORE_FW_BROADCAST="yes"
FW_ALLOW_CLASS_ROUTING="no"
Viele Grüße
Alex
----- Original Message -----
From: "Sebastian Wolfgarten"
hi alex,
probier es mal so:
iptables -t nat -A PREROUTING -i $ExternalNetworkDevice \ -p $Forward_Protokoll --dport $Forward_Dienst -j DNAT --to $Forward_Host
iptables -I FORWARD -i $ExternalNetworkDevice -o $InternalNetworkDevice \ -p $Forward_Protokoll --dport $Forward_Dienst --sport $HighPorts \ -d $Forward_Host -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$ExternalNetworkDevice = externe Netzwerkkarte, beispielsweise ppp0 $InternalNetworkDevice = eth0 oder so $Forward_Protokoll = udp oder icmp $Forward_Dienst = 21 für FTP $HighPorts = 1024:65535 $Forward_Host = interner Rechner, an den weitergeleitet werden soll
alles klar? du mußtest nicht nur die daten umleiten, der datenfluß zwischen extern und dem internen client mußt du (siehe zweite regel) auch erlauben!
gruß sebastian www.wolfgarten.com
-- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfügbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
Hi
sein soll. Ich möchte das Ganze über die iptables realisieren. Also habe ich fogendes getestet:
iptables -A PREROUTING -t nat -p tcp -i ppp0 --dport 21 -j DNAT --to 192.168.1.1:21 und iptables -A PREROUTING -t nat -p tcp -i ppp0 --dport 20 -j DNAT --to 192.168.1.1:20 (ftp braucht wohl Port 20 und 21 ?!?)
die beiden Zeilen gebe ich, nachdem ich die SuSEfirewall2 gestartet habe, ein. In meinem firewall-log finde ich nach einem Versuch zu connecten folgenden Zeilen: Da du hier postest, nehme ich mal an, daß es noch nicht geht :-) Du wirst noch ne accept-Regel in die forward-chain einfügen müssen. Ohne es 100%ig zu wissen, behaupte ich mal, daß die SuSE firewall sowas in der forward chain filtert. Der Tip von Sebastian Wolfgarten hört sich eigentlich ganz gut an, nur halte ich die Regel für etwas zu umfangreich (ist auch geschmackssache). Es gibt aber auch in dem firewall-setup Parameter fürs Forwarding. Ich würde erstmal damit anfangen, bevor ich Regeln aus nem vorgefertigten Skript ergänzen.
.....
Irgendwo habe ich gelesen das ich evtl. den Kernel neu basteln muss? Ist das so? Was muss in den Kernel genau rein?
Neu compilieren mußt du eigentlich nicht. Solange er nicht meckert Module nicht zu kennen braucht man das nicht. Wenn du doch einen neuen baust, dann muß der ganze Netfilterkram rein. Bei Verwendung des SuSE-Skriptes würde ich erstmal die Kernelkonfiguration von SuSE übernehmen und den Netfilterteil so lassen. Axel
participants (4)
-
Alex
-
Axel Heinrici
-
Sebastian Wolfgarten
-
Ulrich Klenk