VPN HOWTO

Matthew D. Wilson

Dec 1999

Revision History
Revision 2.02002-05-30tab
Updated to Docbook 4.1 and applied GFDL per Matthew Wilson
Revision 1.01999-12-01mdw
Initial release

Abstract

This HOWTO describes how to set up a Virtual Private Network with Linux.


Table of Contents

1. Introduction
1. Why I wrote this HOWTO
2. Acknowledgements and Thanks
3. Format of this document
4. Legal Information
4.1. Copyright
4.2. Disclaimer
4.3. GNU Free Documentation License
4.4. PREAMBLE
4.5. APPLICABILITY AND DEFINITIONS
4.6. VERBATIM COPYING
4.7. COPYING IN QUANTITY
4.8. MODIFICATIONS
4.9. COMBINING DOCUMENTS
4.10. COLLECTIONS OF DOCUMENTS
4.11. AGGREGATION WITH INDEPENDENT WORKS
4.12. TRANSLATION
4.13. TERMINATION
4.14. FUTURE REVISIONS OF THIS LICENSE
4.15. How to use this License for your documents
5. Document History
6. Related Documents
2. Theory
1. What is a VPN?
2. But really, what IS a VPN?
3. So how does it work?
4. SSH and PPP
5. Alternative VPN Systems
5.1. PPTP
5.2. IP Sec
5.3. CIPE
3. Server
1. Security - keeping people out
1.1. Trim your daemons
1.2. Don't allow passwords
2. User Access - letting people in
2.1. Configuring sshd
3. Restricting Users
3.1. sudo or not sudo
4. Networking
4.1. The Kernel
4.2. Filter Rules
4.3. Routing
4. Client
1. The Kernel
2. Bring up the link
3. Scripting
4. LRP - Linux Router Project
5. Implementation
1. Planning
2. Gather the tools
2.1. For the Server:
2.2. For the Client:
3. Server: Build the kernel
4. Server: Configure Networking
4.1. Configuring the interfaces
4.2. Setting routes
4.3. Making filter rules
4.4. Routing
5. Server: Configure pppd
5.1. /etc/ppp/
5.2. /etc/ppp/options
5.3. Avoiding conflicts
6. Server: Configure sshd
7. Server: Set up user accounts
8. Add vpn-users group
9. create the vpn-users home directory
10. The .ssh directory
11. Adding users
12. Server: Administration
13. Client: Build the kernel
14. Client: Configure Networking
14.1. Interface
14.2. Filter rules
14.3. Routing
15. Client: Configure pppd
16. Client: Configure ssh
17. Client: Bring up the connection
18. Client: Set the routes
19. Client: Scripting
19.1. Keeping it running
6. Addenda
1. Pitfalls
1.1. read: I/O error
1.2. SIOCADDRT: Network is unreachable
1.3. IPv4 Forwarding and 2.2 kernels
1.4. Routing
2. Hardware and Software Requirements
2.1. Minimum Hardware Requirements
2.2. Software Requirements