FTP kasutamine OpenBSD paketifiltriga

Allikas: Kuutõrvaja
Redaktsioon seisuga 19. detsember 2009, kell 14:56 kasutajalt Imre (arutelu | kaastöö) (Sissejuhatus)

Sissejuhatus

TODO

Tööpõhimõte

Passiivne ftp

      klient                           server
        ___                              ___
       |   |-------- internet ----------|   |
       |___|                            |___|
  41234/tcp (suvaline)      ----->     21/tcp
  24043/tcp (suvaline)      ----->     34000/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
  • andmevahtuse pidamiseks algatab klient ühenduse serveri 34000/tcp porti, mille kasutamine lepiti kontrollkanalil kokku

Aktiivne ftp

TODO

ftp kliendi tulemüür

Tulemüüri tagant privaatset aadressi kasutava ftp kliendi vahendamine avalikus võrgus töötavale ftp serverile

Passiivne režiim

        ___  ftp klient
       |   | 10.0.22.254
       |___|
         |
       --|-- ... -----|--
                      |  
                     _|_  10.0.22.190  
         ftp-proxy  |   |            
         tulemüür   |___|
                      |   10.0.21.190
                      |
                    --|---- ..
                             .... 
                             internet  
                                     ..
                                     --|--
                                      _|_
                                     |   |  ftp server
                                     |___|    192.168.109.132:21

Aktiivne režiim

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