Erinevus lehekülje "FTP kasutamine OpenBSD paketifiltriga" redaktsioonide vahel

Allikas: Kuutõrvaja
(ftp kliendi tulemüür)
36. rida: 36. rida:
 
* seejärel algatab server pordilt 20/tcp andmevahtuse pidamiseks ühenduse kliendi 21000/tcp porti, mille kasutamine lepiti kontrollkanalil kokku
 
* seejärel algatab server pordilt 20/tcp andmevahtuse pidamiseks ühenduse kliendi 21000/tcp porti, mille kasutamine lepiti kontrollkanalil kokku
  
===ftp kliendi tulemüür===
+
====Skeem====
  
Eesmärgiks on tulemüüri tagant privaatset aadressi kasutava ftp kliendi vahendamine avalikus võrgus töötavale ftp serverile, käesoleva punkti seisukohast on oluline pöörata tähelepanu toodud skeemi vaid kliendile, kliendi tulemüürile ja serverile
+
Käesolevas tekstis käsitletakse nii ftp kliendi kui serveri poolse tulemüüri seadistamist ja kasutamist järgmise skeemi alusel
  
 
         ___  ftp klient                                                            ftp server  ___
 
         ___  ftp klient                                                            ftp server  ___
53. rida: 53. rida:
 
                           kliendi tulemüür                            serveri tulemüür
 
                           kliendi tulemüür                            serveri tulemüür
 
                             ftp-proxy                                    ftp-proxy
 
                             ftp-proxy                                    ftp-proxy
 +
 +
Kuna erinevates punktides on oluline rõhtuada ainult osa skeemis, siis seda nii ka tehakse.
 +
 +
===ftp kliendi tulemüür===
 +
 +
Eesmärgiks on tulemüüri tagant privaatset aadressi kasutava ftp kliendi vahendamine avalikus võrgus töötavale ftp serverile, käesoleva punkti seisukohast on oluline pöörata tähelepanu toodud skeemi vaid kliendile, kliendi tulemüürile ja serverile
 +
  
 
Paketifiltri seadistusfailis sobib kasutada selliseid reegleid
 
Paketifiltri seadistusfailis sobib kasutada selliseid reegleid

Redaktsioon: 19. detsember 2009, kell 20:00

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
  • 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.

Tööpõhimõte

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

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 |   |
       |___|                                                                                   |___|
         |                                                                                       |
       --|------------|--              --|------ internet -------|--              --|------------|--
                      |       ____       |                       |       ____       |
                      |      |    |      |                       |      |    |      |
                     -|------|    |------|-                     -|------|    |------|-
                             |____|                                     |____|
      
                              
                         kliendi tulemüür                            serveri tulemüür
                            ftp-proxy                                    ftp-proxy

Kuna erinevates punktides on oluline rõhtuada ainult osa skeemis, siis seda nii ka tehakse.

ftp kliendi tulemüür

Eesmärgiks on tulemüüri tagant privaatset aadressi kasutava ftp kliendi vahendamine avalikus võrgus töötavale ftp serverile, käesoleva punkti seisukohast on oluline pöörata tähelepanu toodud skeemi vaid kliendile, kliendi tulemüürile ja serverile


Paketifiltri seadistusfailis sobib kasutada selliseid reegleid

 nat-anchor "ftp-proxy/*"
 rdr-anchor "ftp-proxy/*"
 rdr pass on em1 proto tcp to port ftp -> 127.0.0.1 port 8021
 
 # nat on em2 inet tagged VALJA -> 10.0.22.254
 
 block log all
 
 anchor "ftp-proxy/*"
 pass out quick on em2 inet proto tcp from 10.0.22.254 to any port 21 user proxy
 # pass in quick on em1 inet tag VALJA
 # pass out quick on em2 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

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 192.168.111.162 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 192.168.111.162 port = 56923 rtable 0 -> 192.168.111.162 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 192.168.111.162 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 192.168.111.162 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

  • 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

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

Avalikust võrgust ftp kliendi vahendamine tulemüüri taga privaatset aadressi kasutavale ftp serverile

Passive režiim

Avalikust võrgust ftp kliendi vahendamist tulemüüri taga privaatset aadresse kasutavale ftp serverile kujutab selline skeem

    ___  ftp klient
   |   |  
   |___|
     |
   --|------------|--
                  |
                 _|_
                |   | 
                |___|
                  |
                  |
                --|---------------|--
                                 _|_
                                |   |  ftp server
                                |___|

Aktiive režiim

Aktiivse andmevahetuse režiimi puhul toimuvad ftp protokolli seisukohalt põhimõtteliselt sellised sündmused

  • ftp klient loob oma suvaliselt pordilt ühenduse serveri 21/tcp pordile ja ütleb muu seas serverile, millisel pordil ta ootab serveri poolt pöördumist
  • serveri pöördub andmevahetuseks kokkulepitud kliendi pordile

Tulemüüri kasutamisel lisandub kliendi ja serveri vahele rakenduskihi vahendaja (ingl. k. proxy)

        ___  ftp klient
       |   |  192.168.51.222
       |___|
         |
       --|-- ... -----|--
                      |
                     _|_
 192.168.109.132:21 |   | ftp-proxy, tulemüür
                    |___|
                      |  10.0.6.1
                      |
                    --|---------------|--
                                     _|_
                                    |   |  ftp server
                                    |___|  10.0.6.9

ftp liikluse vahendamisel toimuvad sellised sündmused

  • ftp-proxy on käivitatud kuulama avalikul ip aadressil 192.168.109.132 ja 21/tcp pordil näidates lisaks reaalse ftp serveri ip aadressi 10.0.6.9
 /usr/sbin/ftp-proxy -R 10.0.6.9 -p 21 -b 192.168.109.132
  • kliendi pöördumisel tekitatase sellise sisuga ankur
 # pfctl -a ftp-proxy/4741.110 -vvvsr
 @0 pass in inet proto tcp from 10.0.6.9 to 192.168.51.222 port = 57908 flags S/SA keep state (max 1) rtable 0
 @1 pass out inet proto tcp from 192.168.109.132 to 192.168.51.222 port = 57908 flags S/SA keep state (max 1) rtable 0
 
 # pfctl -a ftp-proxy/4741.110 -vvvsn 
 @0 nat inet proto tcp from 10.0.6.9 to 192.168.51.222 port = 57908 rtable 0 -> 192.168.109.132
   [ Evaluations: 4212      Packets: 470896    Bytes: 444415756   States: 1     ]
   [ Inserted: uid 71 pid 4741 State Creations: 1     ]
 @0 rdr inet proto tcp from 10.0.6.9 to 10.0.6.1 port = 65269 rtable 0 -> 192.168.51.222 port 57908
   [ Evaluations: 7267      Packets: 470896    Bytes: 444415756   States: 1     ]
   [ Inserted: uid 71 pid 4741 State Creations: 1     ]

Liikluse prioritiseerimine

TODO

Kasulikud lisamaterjalid