VPN with C Language
C, Ubuntu, Network, VPN, , 2018
A command line based VPN application.
- Virtual network kernel with TUN/TAP
- Creating virtual network device using TUN/TAP
- Routing data stream to the virtual NIC card by modifying routing table
- Re-packeting data and then send to VPN server
- Encrypted tunnel using SSL based on PKI
- Data between clients and server are encrypted by SSL tunnel
- Clients can verify the server
- Client login mechanism
- Clients need to login to continue to use the VPN application
- User names and passwords are store in a encrypted file
- Server can verify the Clients
- Multiple clients supported
- A mother process is listening to connection requests
- Using fork() to create a new process for a new connected clients
- Clients can terminate or reconnect the connection by commands