[BSD] ftp kliens PF mogott
Zahemszky Gábor
Gabor at Zahemszky.HU
2010. Sze. 21., K, 22:10:41 CEST
> Az ls parancsnál hasal el, a cd, pwd működik.
K rég volt, de az ftp bizony két csatornát használ, és ha jól tudom, a
cd és pwd a control csatornát használja, míg az ls-hez
(get-hez/put-hoz) a data csatornát. És ezzel meg is vagyunk szerintem,
ugyanis:
> A pf.conf fájl a következő (védekezésül:"ollóztam")
Én is, csak én a minket (szerintem) nem érintő sorokat ollóztam ki.
Tehát a maradék, ami miatt nem megy a dolog:
> ext_if="alc0"
>
> tcp_services = "{ssh, sftp, smtp, pop3, ftp, domain, ntp, www, https}"
> udp_services = "{domain, ntp}"
> block log all
> pass out on $ext_if proto tcp to any port $tcp_services
>
> # Finito
Ennyi gyakorlatilag ami a kimenő forgalomra vonatkozik, és biza te
kiengeded az ftp portra (21) menő forgalmat (ez ugye a control port),
de a dta channel-hez egy *másik* random portra csatlakozol rá.
(csatlakoznál, ha a pf nem fogná meg). Speciel az elején levő "block log
all" miatt akár még láthatnmád is a pf logjában, hogy amikor kiadod a
dir-t, abban a pillanatban blokkolódik egy kimenő kérés.
> Remélem, hasznos ismereteket merítek a reakciókból. Holnap este leszek
> megint e gépnél.
Aki használ pf-et, az majd elárulja, hogy hogyan kell az ftp-data
csatornát is kiengedni, de bizony a túlságosan szigorú szabályodhoz az
ftp csodálatosan tervezett) protokolja sajnos nem illeszkedk.
Zahy < Gabor at Zahemszky dot HU >
--
#!/bin/ksh
#
# See my GPG key at http://www.Zahemszky.HU
#
Z='21N16I25C25E30, 40M30E33E25T15U!';
IFS=' ABCDEFGHIJKLMNOPQRSTUVWXYZ ';
set -- $Z;for i;{ [[ $i = ? ]]&&print $i&&break;
[[ $i = ??? ]]&&j=$i&&i=${i%?};
typeset -i40 i=8#$i;print -n ${i#???};
[[ "$j" = ??? ]]&&print -n "${j#??} "&&j=;typeset +i i;};
IFS=' 0123456789 ';set -- $Z;for i;{ [[ $i = , ]]&&i=2;
[[ $i = ?? ]]||typeset -l i;j="$j $i";typeset +l i;};print "$j"
További információk a(z) BSD levelezőlistáról