ports
Active Member
Ok, jetzt habe ich _keine_ Idee mehr.
Mein Ziel ist es, dass ein User aus dem Internet einen FTP-Server in
meiner DMZ nutzen kann. Allerdings funktioniert das weder ueber diesen
klasse ftp-proxy, noch "roh".
Wichtigen sind ja hier zu sehen.
Wie man sieht, mache ich fuer FTP _aus_ dem LAN ein Redirect auf den
ftp-proxy. Gerne haette ich den ftp-proxy auch von aussen benutzt. Aber
das scheint nicht zu funktionieren. Es erscheinen einige Eintraege in
/var/log/daemon, als wuerde der User sich verbinden. Zum Schluss sieht
man 'cannot connect to MY_EXT_IP:21 (Address already in use)' und das
war es. Fuer ausgehende Verbindungen klappt alles, nur nicht fuer
eingehende. Naja, also _ohne_ ftp-proxy. Allerdings klappt auch das
nicht wie es soll.
Ich habe auf dem Server in der DMZ porthifirst=50000 & porthilast=57000
eingetragen. Mit tcpdump sehe ich auch, dass der Client sich auf den
ftp-server verbindet und der ftp-server eine Verbindung aufbauen will.
Aber eben diese Verbindung (Datenkanal) kommt nicht durch.
Ich hatte eine Regel
der korrekten IP-Adresse, aber das war es auch.
Irgendjemand eine Idee, einen Hint, einen Tip oder etwas anderes was
mir den Tag rettet?
ports
Mein Ziel ist es, dass ein User aus dem Internet einen FTP-Server in
meiner DMZ nutzen kann. Allerdings funktioniert das weder ueber diesen
klasse ftp-proxy, noch "roh".
Natuerlich haengen hinten noch ein paar weiter Rules, aber die wirklich# define variables [on]
loop = "lo0" # loopback
IntIf = "ne3" # int. interface
ExtIf = "tun0" # ext. interface (dsl)
DmzIf = "xl0" # dmz interface
IntIp = "192.168.0.3/32" # int . IP (ne3)
DmzIp = "192.168.100.1/32" # dms IP
IntNet = "192.168.0.0/24" # int. network
DmzNet = "192.168.100.0/24" # dmz network
include = "192.168.0.10/32" # my machine
bugfiles= "192.168.100.10/32" # bugf.homeip.net
admins = "{192.168.0.10/32}" # admins
ftpd = "20" # ftp data
ftpc = "21" # ftp command
ssh = "22" # secure telnet
services= "{80, 443, 25, 110, 8766}"# allowed
# define variables [off]
set loginterface $ExtIf
set block-policy return
# clean fragmented and abnormal pakets [on]
scrub in all
# clean fragmented and abnormal pakets [off]
# NAT $ RDR $IntNet -> $ExtIf [on]
nat on $ExtIf from $IntNet to any -> $ExtIf
rdr on $IntIf proto tcp from $include to !$DmzNet port $ftpc -> 127.0.0.1 port 8021
# NAT $IntIf -> $ExtIf [off]
# NAT & RDR $IntNet -> DmzNet [on]
nat on $DmzIf from $IntNet to $DmzNet -> $DmzIf
rdr on $IntIf proto tcp from $include to $bugfiles port $ftpc -> 127.0.0.1 port 8021
rdr on $IntIf proto tcp from $include to $bugfiles port $ssh -> $bugfiles port $ssh
rdr on $IntIf proto tcp from $include to $bugfiles port $http -> $bugfiles port $http
# NAT & RDR $IntNet -> DmzNet [off]
# RDR $ExtNet -> DmzNet [on]
rdr on $ExtIf proto tcp from any to any port $ftpc -> $bugfiles port $ftpc
rdr on $ExtIf proto tcp from any to $ExtIf port $ssh -> $bugfiles port $ssh
rdr on $ExtIf proto tcp from any to $ExtIf port $http -> $bugfiles port $http
# RDR $ExtNet -> DmzNet [off]
# block all on $IntIf & $DmzIf and block in on $ExtIf [on]
block on $IntIf all
block on $DmzIf all
block in on $ExtIf all
# block all on $InfIf & $DmzIf and block in on $ExtIf [off]
# allow access from $IntNet & $ExtNet to ftp-proxy [on}
pass in quick on $IntIf proto tcp from $admins to $loop port 8021 keep state
pass out quick on $DmzIf proto tcp from $DmzIp to $bugfiles port 21 keep state
pass in quick on $DmzIf proto tcp from $bugfiles to $DmzIp port 55000 >< 57000 keep state
pass out quick on $IntIf proto tcp from $IntIp port 55000 >< 57000 to $admins keep state
pass in quick on $ExtIf proto tcp from any to any port $ftpc keep state
pass out quick on $DmzIf proto tcp from any to any port $ftpc keep state
# allow access from $IntNet & ExtNet to ftp-proxy [off]
Wichtigen sind ja hier zu sehen.
Wie man sieht, mache ich fuer FTP _aus_ dem LAN ein Redirect auf den
ftp-proxy. Gerne haette ich den ftp-proxy auch von aussen benutzt. Aber
das scheint nicht zu funktionieren. Es erscheinen einige Eintraege in
/var/log/daemon, als wuerde der User sich verbinden. Zum Schluss sieht
man 'cannot connect to MY_EXT_IP:21 (Address already in use)' und das
war es. Fuer ausgehende Verbindungen klappt alles, nur nicht fuer
eingehende. Naja, also _ohne_ ftp-proxy. Allerdings klappt auch das
nicht wie es soll.
Ich habe auf dem Server in der DMZ porthifirst=50000 & porthilast=57000
eingetragen. Mit tcpdump sehe ich auch, dass der Client sich auf den
ftp-server verbindet und der ftp-server eine Verbindung aufbauen will.
Aber eben diese Verbindung (Datenkanal) kommt nicht durch.
Ich hatte eine Regel
aber die kommt nicht raus. Er "adressiert" zwar den externen Client mitpass in quick on $DmzIf proto tcp from any to any port 50000 >< 5700 keep state
der korrekten IP-Adresse, aber das war es auch.
Irgendjemand eine Idee, einen Hint, einen Tip oder etwas anderes was
mir den Tag rettet?
ports