🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

3 total messages Started by jarson Thu, 08 Oct 2009 17:02
ftp + jail + pf
#21023
Author: jarson
Date: Thu, 08 Oct 2009 17:02
107 lines
4447 bytes
witam,
kilka dni temu zacząłem się bawić w mini hosting i pojawiły się
problemy. Otóż chodzi o wejście na ftp zamkniętym w jail. Problem w
tym, że ani połączenia active ani passive nie przechodzą. Siedzę
szukam dumam i nic nie przychodzi mi do głowy.
-------------------------------------------------------------
na początek:
# cat /fire.pf.conf

ext_if="fxp0"
int_if="em0"

set block-policy return
set loginterface $ext_if
scrub in all

nat-anchor "ftp-proxy/*"
rdr-anchor "ftp-proxy/*"

#ext_if to jeden adres 94.xxx.xxx.xxx
nat on $ext_if from $int_if:network to any -> $ext_if
antispoof for fxp0 inet

anchor "ftp-proxy/*"

block log on $ext_if from any to any
block log on $int_if from any to any

pass in on $ext_if inet proto tcp to $ext_if port 21 flags S/SA keep
state
#pass out on $int_if inet proto tcp to 192.168.1.4 port 21 user proxy
flags S/SA keep state

block drop in quick on $ext_if from $prv to any
block drop out quick on $ext_if from any to $prv

# ssh
pass in on $ext_if inet proto tcp from any to $ext_if port 2200 flags
S/SA keep state

pass in on $int_if from $int_if:network to any keep state
pass out on $int_if from any to $int_if:network keep state

pass out log on $ext_if proto tcp keep state flags S/SA
pass out log on $ext_if proto { udp,icmp } keep state
-----------------------------------------------------------------------------
na em0 czyli int_if jest kilka ip
192.168.1.1 - brama
192.168.1.4 - jail w którym zamknięty jest ftp

dodatkowo korzystam z ftp-proxy
i w rc.conf mam:

ftpproxy_enable="yes"
ftpproxy_flags="-vv -R 192.168.1.4 -p 21 -b 94.72.68.222"

lista nasłuchujących portów:
USER     COMMAND    PID   FD PROTO  LOCAL ADDRESS         FOREIGN
ADDRESS
proxy    ftp-proxy  10921 3  tcp4   94.xx.xx.xxx:21       *:*
root     vsftpd     10497 3  tcp4   192.168.1.4:21        *:*

#config vsftpd zamkniętego w jail: uruchamiany w trybie standalone //
wybrałem najistotniejsze linijki
pasv_max_port=65535
pasv_min_port=49152
pasv_enable=yes
port_enable=yes
listen=yes
listen_port=21
connect_from_port_20=YES

i jak się ktoś łączy do mnie na 21 total commanderem to wyskakuje mu:
w trybie actywnym:
port failed, try pasv mode!

a ja mam w pfct -ss:
all tcp 94.xx.xx.xxx:21 <- 95.50.xx.xx:50384
ESTABLISHED:ESTABLISHED
all tcp 95.50.xx.xx:1237 <- 192.168.1.4:63281 <- 192.168.1.4:20
CLOSED:SYN_SENT
all tcp 192.168.1.4:20 -> 94.72.xx.xx:53597 -> 95.50.xx.xx:1237
TIME_WAIT:TIME_WAIT

w passive
425 Security: Bad IP connecting

all tcp 94.72.xx.xx:21 <- 95.50.xx.xx:50384       TIME_WAIT:TIME_WAIT
all tcp 94.72.xx.xxx:21 <- 95.50.xx.xx:60688       TIME_WAIT:TIME_WAIT
all tcp 192.168.1.4:50139 <- 94.72.xx.xx:61580 <- 95.50.xx.xx:
55220       FIN_WAIT_2:FIN_WAIT_2

Przechodząc do puenty
chce mieć w jail uruchomiony server ftp na porcie 21 i żeby kazdy mógł
się połączyć z zewnątrz active/passive w ostateczności aby jeden tryb
działał

przejrzałem stosy dokumentacji i trochę grup dyskusyjnym ale jakoś nie
udało mi sie tego ruszyć
gdzie lezy błąd czy brakuje jakiś regułek ?? zaczyna mnie to już
powoli frustrować i nie wiem gdzie jest błąd, dodawałem różne regułki
i lipa

dodam, że korzystałem z tego ale coś mi umknęło skoro nie działa
http://www.openbsd.org/faq/pf/pl/ftp.html

pozd.
Re: ftp + jail + pf
#21024
Author: Emil Smolenski
Date: Wed, 14 Oct 2009 02:02
40 lines
2378 bytes
jarson <jarek.zareba@gmail.com> rzecze:
> kilka dni temu zacząłem się bawić w mini hosting i pojawiły się
> problemy. Otóż chodzi o wejście na ftp zamkniętym w jail.

 W FreeBSD nie ma w tej chwili pełnej wirtualizacji stosu TCP/IP. Przy
PF-ie proces w jailu należy traktować jak zwykły proces słuchający na
konkretnym adresie i porcie. Ta konfiguracja zadziała z niewielkimi
poprawkami dla prawdziwej maszyny ukrytej za firewallem. Jak ostatnio
sprawdzałem, w -CURRENT nie było wiele zrobione w temacie wirtualizacji
PF-a, ale od tego czasu mogło się coś zmienić.

> (...)
> anchor "ftp-proxy/*"
> block log on $ext_if from any to any
> block log on $int_if from any to any
> (...)
> block drop in quick on $ext_if from $prv to any
> block drop out quick on $ext_if from any to $prv

 Trochę nie ta kolejność. Proponuję najpierw spowodować, by to
zadziałało bez tych blocków a dopiero potem cokolwiek blokować.

> ftpproxy_enable="yes"
> ftpproxy_flags="-vv -R 192.168.1.4 -p 21 -b 94.72.68.222"

 Tu jest w porządku.

> (...)
> Przechodząc do puenty
> chce mieć w jail uruchomiony server ftp na porcie 21 i żeby kazdy mógł
> się połączyć z zewnątrz active/passive w ostateczności aby jeden tryb
> działał

 Proponuję rozwiązać to klasycznie: wyłączyć ftp-proxy, przekierować
port 21 oraz jakiś przedział wysokich portów z publicznego adresu na
adres IP jaila i tak skonfigurować serwer FTP, by z nich odpowiednio
korzystał.

-- 
am
Re: ftp + jail + pf
#21022
Author: Edward Tomasz Napierala
Date: Fri, 16 Oct 2009 18:50
16 lines
1684 bytes
Emil Smolenski <ameel@bezspamu.wp.pl.invalid> wrote:
>> kilka dni temu zacząłem się bawić w mini hosting i pojawiły się
>> problemy. Otóż chodzi o wejście na ftp zamkniętym w jail.
> 
> W FreeBSD nie ma w tej chwili pełnej wirtualizacji stosu TCP/IP. Przy
> PF-ie proces w jailu należy traktować jak zwykły proces słuchający na
> konkretnym adresie i porcie. Ta konfiguracja zadziała z niewielkimi
> poprawkami dla prawdziwej maszyny ukrytej za firewallem. Jak ostatnio
> sprawdzałem, w -CURRENT nie było wiele zrobione w temacie wirtualizacji
> PF-a, ale od tego czasu mogło się coś zmienić.

Port pf-a z OpenBSD 4.5 podobno jest juz dzialajacy; eri@ przy okazji
zrobil tez wirtualizacje.  Nie wiem, kiedy to trafi do CURRENT.

-- 
If you cut off my head, what would I say?  Me and my head, or me and my body?
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads