You are previewing VPNs Illustrated: Tunnels, VPNs, and IPsec.
O'Reilly logo
VPNs Illustrated: Tunnels, VPNs, and IPsec

Book Description

Virtual private networks (VPNs) based on the Internet instead of the traditional leased lines offer organizations of all sizes the promise of a low-cost, secure electronic network. However, using the Internet to carry sensitive information can present serious privacy and security problems. By explaining how VPNs actually work, networking expert Jon Snader shows software engineers and network administrators how to use tunneling, authentication, and encryption to create safe, effective VPNs for any environment.

Using an example-driven approach, VPNs Illustrated explores how tunnels and VPNs function by observing their behavior "on the wire." By learning to read and interpret various network traces, such as those produced by tcpdump, readers will be able to better understand and troubleshoot VPN and network behavior.

Specific topics covered include:

  • Block and stream symmetric ciphers, such as AES and RC4; and asymmetric ciphers, such as RSA and EIGamal

  • Message authentication codes, including HMACs

  • Tunneling technologies based on gtunnel

  • SSL protocol for building network-to-network VPNs

  • SSH protocols as drop-in replacements for telnet, ftp, and the BSD r-commands

  • Lightweight VPNs, including VTun, CIPE, tinc, and OpenVPN

  • IPsec, including its Authentication Header (AH) protocol, Encapsulating Security Payload (ESP), and IKE (the key management protocol)

  • Packed with details, the text can be used as a handbook describing the functions of the protocols and the message formats that they use. Source code is available for download, and an appendix covers publicly available software that can be used to build tunnels and analyze traffic flow.

    VPNs Illustrated gives you the knowledge of tunneling and VPN technology you need to understand existing VPN implementations and successfully create your own.



    Table of Contents

        1. 1.1 Purpose
        2. 1.2 Readers
        3. 1.3 Typographical Conventions
        4. 1.4 Source Code and Third-Party Programs
        5. 1.5 Testbed
        6. 1.6 Road Map
        7. 1.7 Summary
        1. 2.1 Introduction
        2. 2.2 Layering
        3. 2.3 Encapsulation
        4. 2.4 Addressing
        5. 2.5 IP
        6. 2.6 UDP
        7. 2.7 TCP
        8. 2.8 ICMP
        9. 2.9 NAT and Private IP Addresses
        10. 2.10 PPP
        11. 2.11 IPv6
        12. 2.12 Routing
        13. 2.13 Summary
        14. Exercises
        1. 3.1 Introduction
        2. 3.2 Symmetric Ciphers
        3. 3.3 Asymmetric Ciphers
        4. 3.4 Cryptographic Hash Functions, MACs, and HMACs
        5. 3.5 Digital Signatures
        6. 3.6 Certificates
        7. 3.7 Summary
        8. Exercises
        1. 4.1 Introduction
        2. 4.2 IP-in-IP Tunnels
        3. 4.3 PPPoE
        4. 4.4 GRE
        5. 4.5 PPTP
        6. 4.6 L2TP
        7. 4.7 MPLS
        8. 4.8 <code xmlns="http://www.w3.org/1999/xhtml" xmlns:epub="http://www.idpf.org/2007/ops" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:pls="http://www.w3.org/2005/01/pronunciation-lexicon" xmlns:ssml="http://www.w3.org/2001/10/synthesis" xmlns:svg="http://www.w3.org/2000/svg">gtunnel</code>
        9. 4.9 Summary
        10. Exercises
        1. 5.1 Introduction
        2. 5.2 PPTP
        3. 5.3 L2TP
        4. 5.4 Other VPNs
        5. 5.5 Summary
        6. Exercises
        1. 6.1 Introduction
        2. 6.2 Cipher Suites
        3. 6.3 The SSL Protocol
        4. 6.4 SSL on the Wire
        5. 6.5 OpenSSL
        6. 6.6 The <code xmlns="http://www.w3.org/1999/xhtml" xmlns:epub="http://www.idpf.org/2007/ops" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:pls="http://www.w3.org/2005/01/pronunciation-lexicon" xmlns:ssml="http://www.w3.org/2001/10/synthesis" xmlns:svg="http://www.w3.org/2000/svg">stunnel</code> Program Program
        7. 6.7 SSL Security
        8. 6.8 Summary
        9. Exercises
        1. 7.1 Introduction
        2. 7.2 The SSHv1 Protocol
        3. 7.3 The SSHv2 Protocol
        4. 7.4 Building VPNs with SSH
        5. 7.5 Summary
        6. Exercises
        1. 8.1 Introduction
        2. 8.2 VTun
        3. 8.3 CIPE
        4. 8.4 Tinc
        5. 8.5 OpenVPN
        6. 8.6 Summary
        7. Exercises
        1. 9.1 Introduction
        2. 9.2 An Overview of IPsec
        3. 9.3 Road Map for Part 3
        4. 9.4 Summary
        5. Exercises
        1. 10.1 Introduction
        2. 10.2 Protocols
        3. 10.3 IPsec Modes
        4. 10.4 Security Associations
        5. 10.5 Combining Security Associations
        6. 10.6 Policies
        7. 10.7 IPsec Processing
        8. 10.8 Summary
        9. Exercises
        1. 11.1 Introduction
        2. 11.2 The AH Header
        3. 11.3 Sequence Numbers
        4. 11.4 AH Processing
        5. 11.5 Transport Mode
        6. 11.6 Tunnel Mode
        7. 11.7 AH with IPv6
        8. 11.8 Summary
        9. Exercises
        1. 12.1 Introduction
        2. 12.2 The ESP Header
        3. 12.3 ESP Processing
        4. 12.4 Transport Mode
        5. 12.5 Tunnel Mode
        6. 12.6 ESP with IPv6
        7. 12.7 Summary
        8. Exercises
        1. 13.1 Introduction
        2. 13.2 ISAKMP
        3. 13.3 IKE
        4. 13.4 An Example Negotiation
        5. 13.5 Summary
        6. Exercises
        1. 14.1 Introduction
        2. 14.2 IPsec Architecture
        3. 14.3 AH
        4. 14.4 ESP
        5. 14.5 IKE
        6. 14.6 NAT Traversal
        7. 14.7 Summary
        8. Exercises
      1. A.1 Introduction
      2. A.2 Cryptographic Routines
      3. A.3 Library Code
      1. B.1 Netcat
      2. B.2 <code xmlns="http://www.w3.org/1999/xhtml" xmlns:epub="http://www.idpf.org/2007/ops" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:pls="http://www.w3.org/2005/01/pronunciation-lexicon" xmlns:ssml="http://www.w3.org/2001/10/synthesis" xmlns:svg="http://www.w3.org/2000/svg">tcpdump</code> and Other Packet Sniffers and Other Packet Sniffers
      3. B.3 <code xmlns="http://www.w3.org/1999/xhtml" xmlns:epub="http://www.idpf.org/2007/ops" xmlns:m="http://www.w3.org/1998/Math/MathML" xmlns:pls="http://www.w3.org/2005/01/pronunciation-lexicon" xmlns:ssml="http://www.w3.org/2001/10/synthesis" xmlns:svg="http://www.w3.org/2000/svg">ssldump</code>
      4. B.4 PPP