This repository contains code for the final project in the course IK2206 Internet Security and Privacy.
A Virtual Private Network (VPN) is used for creating a private scope of computer communications or pro- viding a secure extension of a private network into an insecure network such as the Internet. VPN is a widely used security technology. VPN can be built upon IPSec or Transport Layer Security (TLS) / Secure Socket Layer (SSL). IPsec and TLS/SSL are two fundamentally different approaches for building VPNs. In this project, the primary focus is on the SSL-based VPNs where you will carry out your own SSL-VPN implementation. In the IPSec section of the project, you are expected to perform practical installation and configuration of an already existing VPN implementation for fulfilling given company requirements.
The learning objective of this project is for students to master the network and security technologies underlying SSL VPNs and have a fair insight on IPSec VPNs. The design and implementation of SSL VPNs exemplify a number of security principles and technologies, including crypto, integrity, authentication, key management, key exchange, and Public-Key Infrastructure (PKI). To achieve this goal, you will implement a simple SSL VPN for Ubuntu.