FTP kasutamine OpenBSD paketifiltriga
Sisukord
Sissejuhatus
FTP on levinud andmevahetuse protokoll, mille üheks iseärasuseks on kahe töörežiimi kasutamine
- passiivne - tundub, et 2009 aastal kasutatakse reegline passiivset režiimi, nt brauserid kasutavad seda vaikimisi ning mõned käsureakliendid soovitavad kasutada passiivset režiimi
ftp> pass Passive mode off. ftp> ls 200 PORT command successful. Consider using PASV. 150 Here comes the directory listing. -rw-r--r-- 1 ftp ftp 25908 Oct 15 15:48 ANNOUNCEMENT -rw-r--r-- 1 ftp ftp 22386 Oct 07 01:04 ANNOUNCEMENT~ drwxr-xr-x 2 ftp ftp 4096 Oct 16 10:04 Changelogs -rw-r--r-- 1 ftp ftp 2279 Jul 28 14:31 HARDWARE ...
- aktiivne - nn legacy režiim, mida brauseritega ei saagi kasutada, kuid ftp kliendid saab lülitada käima ka aktiivses režiimis
Käesolev tekst kirjeldab OpenBSD paketifiltriga tulemüüri kasutamist selliselt, et seda ftp protokollile vastav andmevahetus läbida saaks. Praktiliselt on selleks kaks võimalust
- rakenduskihi vahendaja ftp-proxy kasutamine
- otse paketifiltri reeglite kasutamine
Tundub, et kokkuvõttes nö keskmise arvutikasutaja juhtumil on tark kasutada otse paketiltrit ftp serveri ees töötavas tulemüüris ning ftp-proxy vahendajat kliendi ees tulemüüris.
Tööpõhimõte
FTP protokoll on ajaloolisetel põhjustel erinev paljudest teistest klient-server protokollidest selles osas, et kliendi ja serveri vahelisel suhtlemisel kasutatakse üle tcp kahte suhtluskanalit
- juhtimiskanal - moodustatakse alati kliendi pöördumisel oma mitteprivilegeeritud pordilt serveri 21/tcp porti (vaikimisi)
- andmevahetuse kanal - moodustatakse aktiivsel juhul serveri pöördumisel klindi poole ja passiivsel juhul kliendi pöördumisel serveri poole
Andmevahetuse kanali moodustamiseks on kaks võimalust
- aktiivne ftp - peale kliendi pöördumist juhtimiskanalil pöördub server oma 20/tcp src pordilt kliendi näidatud kliendi arvuti /tcp pordi poole
- passiive ftp - peale kliendi pöördumist lepivad klient ja serveri kokku millise serveri /tcp pordi poole pöördub klienti andmevahetuseks
Passiivne ftp
klient server ___ ___ | |-------- internet ----------| | |___| |___| 41999/tcp (suvaline) -----> 21/tcp 42999/tcp (suvaline) -----> 21000/tcp (kokkulepitud)
- esmalt algatab klienti kontrollkanali ühenduse serveri 21/tcp porti, seda ühendust mööda liiguvad ftp käsud, ls, cd, pwd jt ning lepitakse kokku andmevahetuse kanali port
- seejärel algatab klient andmevahtuse pidamiseks ühenduse serveri 21000/tcp porti, mille kasutamine lepiti kontrollkanalil kokku (ftp serveri seadistuses saab tavaliselt fikseerida pordide vahemiku, millisest saab server kliendiga porte kokku leppida)
Aktiivne ftp
klient server ___ ___ | |-------- internet ----------| | |___| |___| 41999/tcp (suvaline) -----> 21/tcp 21000/tcp (kokkulepitud) <----- 20/tcp
- esmalt algatab klienti kontrollkanali ühenduse serveri 21/tcp porti, seda ühendust mööda liiguvad ftp käsud, ls, cd, pwd jt ning lepitakse kokku andmevahetuse kanali port
- seejärel algatab server pordilt 20/tcp andmevahtuse pidamiseks ühenduse kliendi 21000/tcp porti, mille kasutamine lepiti kontrollkanalil kokku
- nn legacy juhtumitel algatab aktiivsel juhtumil ftp server andmeühenduse oma 20/tcp pordilt, kuid see ei pea tingimata nii olema, ftp serverite seadistustes saab seda kontrollida tavaliselt; ftp-proxy programmil kontrollib seda -r võti
Skeem
Käesolevas tekstis käsitletakse nii ftp kliendi kui serveri poolse tulemüüri seadistamist ja kasutamist järgmise skeemi alusel
___ ftp klient ftp server ___ | | 192.168.111.114 192.168.111.162 | | |___| |___| | em0 em0 | --|------------|-- --|------ internet -------|-- --|------------|-- | ____ | | ____ | | em1 | | em0 | | em0 | | em1 | -|------| |------|- -|------| |------|- |____| |____| 192.168.111.113 10.0.22.254 10.0.21.254 192.168.111.161 kliendi tulemüür serveri tulemüür ftp-proxy ftp-proxy
kus
- 192.168.111.114 - ftp kliendi privaatne aadress
- 10.0.22.254 - ftp klienti tulemüüri avalik aadress
- 10.0.21.254 - ftp serveri avalik aadress
- 192.168.111.162 - ftp serveri privaatne aadress
Kuna erinevates punktides on oluline rõhtuada ainult osa skeemis, siis seda nii ka tehakse.
ftp-proxy kasutamisel tuleb arvestada selliste asjaoludega
- ftp-proxy kasutamisel serveri tulemüüris paistavad ftp serveri logis kõik ühendused lähtuvat tulemüüri sisemiselt aadressilt
- klientide ühendustele rakenduvaid piiranguid (nt kontrollühenduse timeout, maksimaalne samaaegsete ühenduste arv) kontrollib ftp-proxy ja mitte ftp teenuste pakkuv server ise
ftp kliendi tulemüür
Eesmärgiks on tulemüüri tagant privaatset aadressi kasutava ftp kliendi vahendamine avalikus võrgus töötavale ftp serverile.
Paketifiltri seadistusfailis sobib kasutada selliseid reegleid
if_ext=em0 if_int=em1 nat-anchor "ftp-proxy/*" rdr-anchor "ftp-proxy/*" rdr pass on $if_int proto tcp to port ftp -> 127.0.0.1 port 8021 # nat on $if_ext inet tagged VALJA -> 10.0.22.254 block log all anchor "ftp-proxy/*" pass out quick on $if_ext inet proto tcp from 10.0.22.254 to any port 21 user proxy # pass in quick on $if_int inet tag VALJA # pass out quick on $if_ext inet tagged VALJA
kus
- väljakommenteeritud ridade kasutamisel toimiks tulemüür nn generic nat tulemüürina
- esitatud reegleid on tarvis ühtviisi nii privaatset aadressi kui ka avalikku aadressi kasutava ftp kliendi vahendamiseks avalikus võrgus töötava ftp serveriga
Lisaks tuleb tulemüüris käivitada ftp-proxy protsess
# ftp-proxy -r
Passiivne režiim
ftp-proxy moodustab ftp-proxy ankru alla sellised reeglid
- nat/rdr
# pfctl -a ftp-proxy/21368.5 -vvvsn @0 nat inet proto tcp from 192.168.111.114 to 10.0.21.254 port = 64138 rtable 0 -> 10.0.22.254 [ Evaluations: 1 Packets: 122100 Bytes: 113323304 States: 1 ] [ Inserted: uid 71 pid 21368 State Creations: 1 ] @0 rdr inet proto tcp from 192.168.111.114 to 10.0.21.254 port = 56923 rtable 0 -> 10.0.21.254 port 64138 [ Evaluations: 1 Packets: 122100 Bytes: 113323304 States: 1 ] [ Inserted: uid 71 pid 21368 State Creations: 1 ]
- pass
# pfctl -a ftp-proxy/21368.5 -vvvsr @0 pass in quick inet proto tcp from 192.168.111.114 to 10.0.21.254 port = 64138 flags S/SA keep state (max 1) rtable 0 [ Evaluations: 2 Packets: 137647 Bytes: 127608332 States: 1 ] [ Inserted: uid 71 pid 21368 State Creations: 1 ] @1 pass out quick inet proto tcp from 10.0.22.254 to 10.0.21.254 port = 64138 flags S/SA keep state (max 1) rtable 0 [ Evaluations: 1 Packets: 137660 Bytes: 127624936 States: 1 ] [ Inserted: uid 71 pid 21368 State Creations: 1 ]
kus reegleid tuleks lugeda selliselt
- 'pfctl -vvvsA' esitab ankrute nimekirja
- 'pfctl -a ftp-proxy/* -vvvsA' esitab ftp-proxy all olevate ankrute nimekirja
- passiivse andmeühenduse algatab klient, ftp-proxy ankru reeglid töötavad ainult andmeühenduste jaoks
- kliendi algatuatud ühendusele rakenduvad reeglid sellises järjekorras: rdr, pass in, nat, pass out
- reeglid on 'Inserted: uid 71', mis tähendab, et need on sisestatud proxy kasutaja poolt, millena töötab ftp-proxy protsess
# ps aux | grep ftp-proxy proxy 21914 0.0 0.4 516 988 ?? Is 8:14PM 0:00.04 ftp-proxy -r
- reeglid on (max 1), mis tähendab, et reegel saab tekitada samaaegselt ainult ühe paketifiltri oleku
- rtable 0 - reeglid kasutavad vaike ruutingutabelit
- ftp-proxy tekitab quick reegleid
Aktiivne režiim
- nat/rdr reeglid
# pfctl -a ftp-proxy/21914.1 -vvvsn @0 nat inet proto tcp from 192.168.111.162 to 192.168.111.114 port = 57561 rtable 0 -> 192.168.111.162 [ Evaluations: 1 Packets: 135856 Bytes: 127214216 States: 1 ] [ Inserted: uid 71 pid 21914 State Creations: 1 ] @0 rdr inet proto tcp from 192.168.111.162 to 10.0.22.254 port = 52815 rtable 0 -> 192.168.111.114 port 57561 [ Evaluations: 1 Packets: 135872 Bytes: 127232424 States: 1 ] [ Inserted: uid 71 pid 21914 State Creations: 1 ]
- pass reeglid
# pfctl -a ftp-proxy/21914.1 -vvvsr @0 pass in quick inet proto tcp from 192.168.111.162 to 192.168.111.114 port = 57561 flags S/SA keep state (max 1) rtable 0 [ Evaluations: 2 Packets: 152045 Bytes: 142340564 States: 1 ] [ Inserted: uid 71 pid 21914 State Creations: 1 ] @1 pass out quick inet proto tcp from 192.168.111.162 to 192.168.111.114 port = 57561 flags S/SA keep state (max 1) rtable 0 [ Evaluations: 1 Packets: 152045 Bytes: 142340564 States: 1 ] [ Inserted: uid 71 pid 21914 State Creations: 1 ]
kus reegleid tuleks lugeda selliselt
- aktiivse andmeühenduse algatab server, ftp-proxy ankru reeglid töötavad ainult andmeühenduste jaoks
- kliendi algatuatud ühendusele rakenduvad reeglid sellises järjekorras: rdr, pass in, nat, pass out
ftp serveri tulemüür
Eesmärgiks on avalikust võrgust ftp kliendi vahendamine tulemüüri taga privaatset aadressi kasutavale ftp serverile.
Paketifiltri seadistusfailis sobib kasutada selliseid reegleid
if_ext=em0 if_int=em1 nat-anchor "ftp-proxy/*" rdr-anchor "ftp-proxy/*" # nat on $if_ext inet tagged VALJA -> 10.0.22.254 block log all anchor "ftp-proxy/*" pass in on $if_ext inet proto tcp to $if_ext port 21 pass out on $if_int inet proto tcp to 192.168.111.162 port 21 user proxy # pass in quick on $if_int inet tag VALJA # pass out quick on $if_ext inet tagged VALJA
kus
- väljakommenteeritud ridade kasutamisel toimiks tulemüür nn generic nat tulemüürina
- esitatud reegleid on tarvis ühtviisi nii privaatset aadressi kui ka avalikku aadressi kasutava ftp kliendi vahendamiseks avalikus võrgus töötava ftp serveriga
Lisaks tuleb tulemüüris käivitada ftp-proxy protsess
# ftp-proxy -R 192.168.111.162 -p 21 -b 10.0.21.254 -r
Passiivne režiim
Avalikust võrgust ftp kliendi vahendamist tulemüüri taga privaatset aadresse kasutavale ftp serverile kujutab selline skeem
- nat/rdr reeglid
# pfctl -a ftp-proxy/12063.1 -vvvsn @0 nat inet proto tcp from 10.0.22.254 to 192.168.111.162 port = 56540 rtable 0 -> 195.80.111.161 [ Evaluations: 1 Packets: 100620 Bytes: 93688160 States: 1 ] [ Inserted: uid 71 pid 12063 State Creations: 1 ] @0 rdr inet proto tcp from 10.0.22.254 to 10.0.21.254 port = 50016 rtable 0 -> 192.168.111.162 port 56540 [ Evaluations: 1 Packets: 100635 Bytes: 93704868 States: 1 ] [ Inserted: uid 71 pid 12063 State Creations: 1 ]
- pass reeglid
# pfctl -a ftp-proxy/12063.1 -vvvsr @0 pass in quick inet proto tcp from 10.0.22.254 to 192.168.111.162 port = 56540 flags S/SA keep state (max 1) rtable 0 [ Evaluations: 2 Packets: 55131 Bytes: 51392828 States: 1 ] [ Inserted: uid 71 pid 12063 State Creations: 1 ] @1 pass out quick inet proto tcp from 192.168.111.161 to 192.168.111.162 port = 56540 flags S/SA keep state (max 1) rtable 0 [ Evaluations: 1 Packets: 55138 Bytes: 51398984 States: 1 ] [ Inserted: uid 71 pid 12063 State Creations: 1 ]
Aktiivne režiim
Aktiivse andmevahetuse režiimi puhul toimuvad ftp protokolli seisukohalt põhimõtteliselt sellised sündmused
- nat/rdr reeglid
# pfctl -a ftp-proxy/12063.1 -vvvsn @0 nat inet proto tcp from 192.168.111.162 to 10.0.22.254 port = 62185 rtable 0 -> 10.0.21.254 port 20 [ Evaluations: 1 Packets: 96998 Bytes: 91169512 States: 1 ] [ Inserted: uid 71 pid 12063 State Creations: 1 ] @0 rdr inet proto tcp from 192.168.111.162 to 192.168.111.161 port = 56535 rtable 0 -> 10.0.22.254 port 62185 [ Evaluations: 1 Packets: 96998 Bytes: 91169512 States: 1 ] [ Inserted: uid 71 pid 12063 State Creations: 1 ]
- pass reeglid
# pfctl -a ftp-proxy/12063.1 -vvvsr @0 pass in quick inet proto tcp from 192.168.111.162 to 10.0.22.254 port = 62185 flags S/SA keep state (max 1) rtable 0 [ Evaluations: 2 Packets: 119761 Bytes: 112470356 States: 1 ] [ Inserted: uid 71 pid 12063 State Creations: 1 ] @1 pass out quick inet proto tcp from 10.0.21.254 to 10.0.22.254 port = 62185 flags S/SA keep state (max 1) rtable 0 [ Evaluations: 1 Packets: 119770 Bytes: 112483856 States: 1 ] [ Inserted: uid 71 pid 12063 State Creations: 1 ]
Liikluse prioritiseerimine
Olgu ülesandeks piirata ftp serveri tulemüüris ftp allalaadimine 2 MB/s kiirusele, selleks tuleb
- kirjeldada altq
altq on $if_ext cbq bandwidth 10000Kb queue { up_default, up_ftp } queue up_default bandwidth 8000Kb cbq(default, borrow) queue up_ftp bandwidth 2000Kb
- käivitada ftp-proxy deemon on võtme -T abil, mis lisab ftp-proxy tekitatud pass reeglitele näitatud sildi, lisaks eemaldatakse neilt reeglitelt quick
# ftp-proxy -R 192.168.111.162 -p 21 -b 10.0.21.254 -T FTP -r
- rakendada altq ftp liiklusele vahetult ankru järele kaks pass reeglit
anchor "ftp-proxy/*" pass in quick on $if_ext inet tagged FTP queue up_ftp pass out quick on $if_int inet tagged FTP
Seejuures kasutatakse asjaolu, et ftp-proxy pass reeglid ei ole quickid ja lisatud sildi abil piiratakse liiklust. Tundub, et altq iseloomu tõttu sobib queue lisada ka pass out reeglile, tulemus on praktiliselt sama.
Siltidega ja ilma quickita ftp-proxy reeglid on passiivse režiimi puhul nt sellised
# pfctl -a ftp-proxy/14329.2 -vvvsr @0 pass in inet proto tcp from 10.0.22.254 to 192.168.111.162 port = 52445 flags S/SA keep state (max 1) tag FTP rtable 0 [ Evaluations: 2 Packets: 0 Bytes: 0 States: 0 ] [ Inserted: uid 71 pid 14329 State Creations: 0 ] @1 pass out inet proto tcp from 192.168.111.161 to 192.168.111.162 port = 52445 flags S/SA keep state (max 1) tag FTP rtable 0 [ Evaluations: 2 Packets: 0 Bytes: 0 States: 0 ] [ Inserted: uid 71 pid 14329 State Creations: 0 ]
Mitme välisühendusega tulemüüri kasutamine
ftp-proxy reeglitele sildi lisamist saab kasutada lisaks liikluse prioritiseerimisele ka ftp liikluse korraldamisele läbi tulemüüri erinevate nö välisühenduste. Olgu ftp serveri ees selline tulemüür
isp 1 isp 2 | | _|_ _|_ | | | | 192.168.102.33 |___| |___| 192.168.102.65 | | | 192.168.102.35/29 192.168.102.66/29 | | em0 ___ em1 | '---------------------| |---------------------' |___| tulemüür em2 | | -------|--------------|--- | _|_ | | 10.0.5.100 |___| ftp server
kus
- 192.168.102.35/29 ja 192.168.102.66/29 on tulemüüri kaks avalike ip aadresside nö välisühendust, nt kahe erineva teenusepakkuja võrku
- 192.168.102.33 on tulemüüri vaikelüüs
- 192.168.102.65 on lüüs, mille kaudu toimub ühendus isp 2 võrku
- 10.0.5.100 on ftp serveri privaatne ip aadress
- isp 2 võrgust ftp serveri poole pöördumisel on ftp teenuse avalik aadress 192.168.102.66
Selleks, et isp 2 võrgust saaks pöörduda ftp serveri poole kasutades avalikku aadressi 192.168.102.66 sobib kasutada nt sellised reegleid paketifiltri seadistusfailis (muude vajalike reeglite hulgas)
if_ext_isp1="em0" if_ext_isp2="em1" if_int="em2" nat-anchor "ftp-proxy/*" rdr-anchor "ftp-proxy/*" anchor "ftp-proxy/*" label "A-ftp-proxy" # passiivsete yhenduste jaoks, mida klient algatab pass in quick on $if_ext_isp2 inet from { 192.168.51.222 } to 10.0.5.100 $tcpopts (tcp.established 1440) \ tagged ISP2 label "JSext_isp2 passive ftp" pass out quick on $if_int reply-to ( $if_ext_isp2 192.168.102.65 ) inet $tcpopts (tcp.established 1440) \ tagged ISP2 label "JVint isp2 passive ftp" # aktiivsete yhenduste jaoks, mida serveri algatab pass in quick on $if_int route-to ( $if_ext_isp2 192.168.102.65 ) inet from 10.0.5.100 to { 192.168.51.222 } \ $tcpopts (tcp.established 1440) tagged ISP2 label "JSint isp2 active ftp" pass out quick on $if_ext_isp2 inet $tcpopts (tcp.established 1440) tagged ISP2 label "JVext_isp2 active ftp" # ftp kontrollkanali liiklus pass in quick on $if_ext_isp2 reply-to ( $if_ext_isp2 192.168.102.65 ) inet proto tcp \ from any to 192.168.102.66 port 21 label "JSext_isp2 ftp kontrollkanal" pass out quick on $if_int inet proto tcp to 10.0.5.100 port 21 user proxy label "JVint isp2 ftp kontrollkanal"
kus
- nat ja rdr ankrud võiksid olla suhteliselt ees, need on täpseid reegleid sisaldavad ankrud ja ei ole ohtu, et nad muud liiklust eksitama hakkavad; pigem on oht, et kui nad asuvad teiste nat/rdr reeglite järel, siis eksitavad muud üldisemad nat/rdr reeglid ftp aadressteisendusi
- nat ja rdr reeglites silte ei kasutata vaatamata -T võtme kasutamisele
- tänu -T võtme kasutamisele ftp-proxy käsu juures anchor "ftp-proxy/*" reeglid ei sisalda quick direktiive ning sisaldavad silti ISP2; selle ankru järel on kasutatud täpsustavad quick direktiiviga reegleid, mis korraldavad sobivad pakettide ruutingu paketifiltri abil; seejuures kasutatakse ära asjaolu, et sildi sticky omadust - kuigi anchor reeglid ei rakendu iseenesest liiklusele, jääb nendega klappinud paketile silt külge ja seda silti saab järgnevates reeglites kasutada
Lisaks peab tulemüüris töötama selliselt käivitatud ftp-proxy protsess
# /usr/sbin/ftp-proxy -R 10.0.5.100 -p 21 -b 192.168.102.66 -T ISP2 -r
Peale reeglite käivitamist ja tasub teenuse kasutamisel veenduda, et lisaks asjaolule, et passiivne ja aktiivne ftp liiklus toimub tabavad liiklust õiged reeglid.
Ilma ftp-proxy kasutamiseta ftp serveri tulemüür
Kui soovitakse, et
- ftp serveri logis oleks näha klientide ip aadressid
- ftp klientide ühendusi kontrolliks ftp server (erinevad timeoutid)
siis on võimalik paketifilter seadistada käima ilma seejuures kasutamata ftp-proxy tarkvara. Seejuures võiks kasutada ftp serveri poolel järgnevaid abistavaid võtteid
- passiivne režiim - fikseerida, millisesse pordivahemikku kliendid ühenduvad andmeühendusteks, nt 20 000 - 50 000
- aktiivne režiim - näidata, et kõik serveri poolt algatatud ühendused lähtuvad pordilt 20/tcp
Sellisel juhul sobiks tulemüüris kasutada nt selliseid reegleid
nat on $if_ext inet tagged FROM_FTP -> 10.0.21.254 port 20 rdr on $if_ext inet proto tcp from any to 10.0.21.254 port { 21, 20000:50000 } tag TO_FTP -> 192.168.111.162 # kontrollkanali ja passiivsete ühenduste pääs kliendilt ftp serverisse pass in quick on $if_ext inet tagged TO_FTP $tcpopts (tcp.established 1440) pass out quick on $if_int inet tagged TO_FTP $tcpopts (tcp.established 1440) # aktiivsete ühenduste pääs ftp serverist kliendi poole pass in quick on $if_int inet proto tcp from 192.168.111.162 port 20 to any tag FROM_FTP $tcpopts (tcp.established 1440) pass out quick on $if_ext inet tagged FROM_FTP $tcpopts (tcp.established 1440)
kus
- on eeldatud, et ftp server kasutab passiivsete andmeühenduste teenindamiseks porte 20000 kuni 50000
- server on seadistatud algatama aktiivsed ühendusi pordilt 20/tcp ja nat reegliga see src port säilitatakse
OpenBSD v. 4.7 puhul sobib kasutada nt sellised reegleid
# kontrollkanal ja passiivsete klientide poordumised valjast sisse pass in log quick on $if_ext inet proto tcp from any to 10.0.21.254 port { 21, 20000:50000 } tag TO_INT rdr-to 192.168.111.162 # poordumised ftp serverist valja aktiivsete klientide poole pass in on $if_int inet proto tcp from 192.168.111.162 port 20 to any tag FROM_INT_FTP # paketid saavad vastavatelt seadmetelt välja pass out quick on $if_int inet tagged TO_INT pass out quick on $if_ext inet tagged FROM_INT_FTP nat-to 10.0.21.254 port 20
Märkused
- Kui tulemüür peab töötama samaaegselt nii kliendi kui serveri ees töötava tulemüürina, tuleb seadistada samaaegselt mõlemad funktsionaalsused, seejuures võib olla asjakohane käivitada mitu ftp-proxy eksemplari.
- lisaks muudele nö tavalistele seadistusfaili direktiividele tuleb nt vsftpd puhul parameeteriga pasv_address näidata ftp serveri avalik aadress selleks, et passiivset andmevahetuse režiimi kasutavad kliendid saaksid teada ftp serveri poole pöördumiseks korrektse ip aaddressi
pasv_address=10.0.21.254
- Selleks, et aktiivne ftp töötaks OpenBSD v. 4.7 puhul, tuleb ftp kliendi proxy puhul kasutada paketifiltris
anchor "ftp-proxy/*" pass in quick on $if_int proto tcp to port 21 rdr-to 127.0.0.1 port 8021
ja käivitada programm ftp-proxy
# ftp-proxy -r
Tulemusena tekitatakse aktiivselt ftp seansi puhul automaatselt sarnased reegleid
@0 pass in quick inet proto tcp from 192.168.32.82 to 172.16.96.138 port = 63020 flags S/SA keep state \ (max 1) rtable 0 rdr-to 192.168.10.10 port 43157 [ Evaluations: 32 Packets: 8 Bytes: 833 States: 1 ] [ Inserted: uid 71 pid 12441 State Creations: 1 ]
@1 pass out quick inet proto tcp from 192.168.32.82 to 192.168.10.10 port = 43157 flags S/SA keep state \
(max 1) rtable 0 nat-to 192.168.32.82 port 20 [ Evaluations: 25 Packets: 8 Bytes: 833 States: 1 ] [ Inserted: uid 71 pid 12441 State Creations: 1 ]
kus
- 192.168.32.82 - ftp server
- 172.16.96.138 - ftp kliendi tulemüüri väline ots
- 192.168.10.10 - ftp klient
Kasulikud lisamaterjalid
- FTP kliendi kasutamine
- Anonüümse ftp serveri kasutamine OpenBSDga
- Vsftpd kasutamine Debian Lennyga
- http://www.cyberciti.biz/faq/freebsd-opebsd-pf-firewall-ftp-configuration/ FreeBSD nativa tulemüüri seadistamine aktiivseid ühendusi tegema