asg
push it, don´t hype
Moin,
Kunde hat ein "tolles" Programm mit dem man auf seinen Server via aktiven FTP connectet.
Client -> GW -> NAT-Server -> FW -> Internet -> Kunde
Verbindung zu "kunde" wird hergestellt aber FTP-DATA geht nicht.
Also beim "NAT-Server" Regeln aufgenommen:
in /etc/inetd.conf:
Dies alles laut http://www.openbsd.org/faq/pf/ftp.html
Soweit so gut. Die Verbindung zum aktiven FTP von "Kunde" funktioniert von "Client" aus.
Nun kommt das Problem.
Kunden können auf unseren FTP Server noch zugreifen, ABER, von intern kommt man nicht mehr auf unseren FTP-Server, der auf dem "NAT-Server" läuft, nicht mehr drauf.
deaktiviere ich die obigen Regeln geht dies wieder, dafür kommt kann der Client aber keine FTP-Data connection mehr zu "Kunde" aufbauen. Scheisse am dampfen.
Hier noch die ganze /etc/pf.conf vom "NAT-Server":
So, wie nun die dusselige Regel für den aktiven FTP, FTP-Proxy, schreiben das wir von innen noch auf den FTP-Server kommen ("NAT-Server") und das der "Client" (10.4.1.26) auch eine ftp data connection zum "Kunde" aufbauen kann?
Kunde hat ein "tolles" Programm mit dem man auf seinen Server via aktiven FTP connectet.
Client -> GW -> NAT-Server -> FW -> Internet -> Kunde
Verbindung zu "kunde" wird hergestellt aber FTP-DATA geht nicht.
Also beim "NAT-Server" Regeln aufgenommen:
rdr on $int_if proto tcp from 10.4.1.26 to any port 21 -> 127.0.0.1 port 8021
pass in on $ext_if inet proto tcp from port 20 to $ext_if user proxy flags S/SA keep state
in /etc/inetd.conf:
127.0.0.1:8021 stream tcp nowait root /usr/libexec/ftp-proxy ftp-proxy -n
Dies alles laut http://www.openbsd.org/faq/pf/ftp.html
Soweit so gut. Die Verbindung zum aktiven FTP von "Kunde" funktioniert von "Client" aus.
Nun kommt das Problem.
Kunden können auf unseren FTP Server noch zugreifen, ABER, von intern kommt man nicht mehr auf unseren FTP-Server, der auf dem "NAT-Server" läuft, nicht mehr drauf.
deaktiviere ich die obigen Regeln geht dies wieder, dafür kommt kann der Client aber keine FTP-Data connection mehr zu "Kunde" aufbauen. Scheisse am dampfen.
Hier noch die ganze /etc/pf.conf vom "NAT-Server":
# Variablen
ext_if = "xl0"
int_if = "xl1"
clu_if = "xl2"
int_ip = "212.202.224.248/29"
blu_ip = "192.168.233.254"
ext_ip = "212.202.xxx.aae"
sfwd_ip = "{ 212.202.xxx.aaa, 212.202.xxx.aab, 212.202.xxx.aac, 212.202.xxx.aad, 212.202.xxx.aae }"
spar_server = "213.150.2.xxx"
spar_client = "{ 10.4.1.24, 10.4.1.26, 10.4.1.50, 10.4.1.235 }"
spar_port = "3048"
ausnahme = "{ 192.168.155.56, 192.168.233.4 }"
set loginterface $ext_if
set loginterface $int_if
# asg
# packet normalizer gegen hackversuche durch ueberlange pakete
scrub in all
# NAT
nat on $ext_if from $int_if:network to $ausnahme -> $blu_ip
nat on $ext_if from 10.3.1.0/24 to $ausnahme -> $blu_ip
nat on $ext_if from 10.2.1.0/24 to $ausnahme -> $blu_ip
nat on $ext_if from 10.1.1.0/24 to $ausnahme -> $blu_ip
nat on $ext_if from $int_if:network to ! (192.168.155.56) -> $ext_ip
nat on $ext_if from $int_if:network to ! (192.168.233.4) -> $ext_ip
nat on $ext_if from 10.3.1.0/24 to ! (192.168.155.56) -> $ext_ip
nat on $ext_if from 10.3.1.0/24 to ! (192.168.233.4) -> $ext_ip
nat on $ext_if from 10.2.1.0/24 to ! (192.168.155.56) -> $ext_ip
nat on $ext_if from 10.2.1.0/24 to ! (192.168.233.4) -> $ext_ip
nat on $ext_if from 10.1.1.0/24 to ! (192.168.155.56) -> $ext_ip
nat on $ext_if from 10.1.1.0/24 to ! (192.168.233.4) -> $ext_ip
# Redirect Spar
rdr on $ext_if proto udp from $spar_server to any port $spar_port -> $spar_client port $spar_port
rdr on $int_if proto udp from $spar_client to any port $spar_port -> $spar_server port $spar_port
rdr on $int_if proto tcp from any to any port 21 -> 127.0.0.1 port 8021
block log all
pass out log from any to any keep state
pass in log from any to any keep state
pass in on $ext_if inet proto tcp from port 20 to $ext_if user proxy flags S/SA keep state
So, wie nun die dusselige Regel für den aktiven FTP, FTP-Proxy, schreiben das wir von innen noch auf den FTP-Server kommen ("NAT-Server") und das der "Client" (10.4.1.26) auch eine ftp data connection zum "Kunde" aufbauen kann?