home | articles | links | fun | about
Up to: CS432 Information Security

VPN and Firewalls - 11/21/02

Perimeter defense

Dividing inside from outside

Easy case: use network topology

                       |
        A              |
          \            |
     B -[ LAN ] - [Router] -- { Internet }
          /            |
        C              |
               Boundary: single point

Hard cases: multiple branches or mobile employees.

Example VPN

                              encrypted tunnel through inet             
        A                /============   
          \             /             \
     B -[ LAN ]-[Router] -{  Inet  }   [router] - [LAN]
          /                   ========/
        C                    /
                             
                        employee

One way to do this: SSH between routers (bytestream). Run PPP on top (routes packets over bytestreams). Used in modern bytestrem dialups.

        [ PPP  ]     [ Proprietary  ]
        [ over ]     [    VPN       ]
        [ SSH  ]     [  Product     ]

Can snip insecure links to internet, and have only one point of entry to inet.

Firewalls

Put at boundary between inside and outsidee. Can see and filter all incoming/outgoing packets.

Purposes

Can buy many firewall products
Can use built-in firewall support (Linux, Windows)

$1000-$2000 is only 1-2 weeks of an employee's time... it is worth it to have a PC be a firewall, for added security.

Does router have its own IP addr? I guess... to advertise network

Simple firewall case

Assume: small group of client PC's, no server.

Policy: allow outgoing TCP connections, disallow incoming connections and all other traffic. Streaming media uses incoming TCP SYN... but this is OK policy.

Implementation

Administration

Network Address Translation (NAT)

        A              
          \            
     B -[ LAN ] - [Firewall] -- { Internet }
          /            
        C              

If just router, machines have IP addresses; this is information for adversary. May get through firewall.

So far, each machine has own IP addr.

NAT: inside machines don't have real IP addresses (only firewall has real IP addresses). All traffic goes through one IP.

Advantages:

Use fictitious addresses: range of IP addr declaed "not valid" on open net

Example: address C (both IP and port) is fictitious

        [client C] -----------> [Firewall F]---------------> [Server S]
            ^    (1) [From: C]    /       \  (2) [From: F]      |
            |        [To:   S]   /         \     [To:   S]      |
            |                   /           \                   |                          
            |                  /             ====================
            ==================/                       (3) [From: S]
               (4) [From: S]                              [To:   F]
                   [To:   C]

                               inside | outside
                               ----------------
                                    C | F (IP and Port)
                                      |

Number of ports limits number of connections (16-bit) per IP. 32k, so should not be problem.

Adversary: coudl try to find out F... send data to that (but needs to know sequence number). Send fake packets.

Running Servers

Approaches

Diagram

                            [Server]
                A              |
                B -[LAN]-[F2]-----[F1]--{Inet}
                C              ^
                               |_____ DMZ (demilitarized zone)

Different rules of insider/outsider

email: have dropbox... then siphone process (runs inside, makes connection out, grabs email, pulls it inside). Send email by connecting to mail server.

Remaining issues

DNS

FTP

Streaming media and other challenging protocols (UDP packets)

FWs... harder to prevent stupid actions, lots of programs allow http tunneling.

FW violates network modularity (looks at IP packet, then type... "oh, it's a streaming media packet" ... then apply policy)

Performance: make the common case fast.