Table of Contents

Other Project: Toobz

Terrific, time tested tools, tricks, and techniques that are tried and true for tough, temporary, transient, and tenacious tunnelling over trecherous telecommunications transmissions, without the tremendous, tedious, and tiresome task of tactically taking out two-timing trickers.

Objectives

Setup, explore, and test various VPN implementations and tunneling protocols.

Prerequisites

In order to successfully accomplish/perform this project, the listed resources/experiences need to be consulted/achieved:

Background

State the idea or purpose of the project. What are you attempting to pursue?

Upon approval, you'll want to fill this section out with more detailed background information. DO NOT JUST PROVIDE A LINK.

Providing any links to original source material, such as from a project page, is a good idea.

You'll want to give a general overview of what is going to be accomplished (for example, if your project is about installing a web server, do a little write-up on web servers. What is it, why do we need one, how does it work, etc.)

Scope

Give a general overview of your anticipated implementation of the project. Address any areas where you are making upfront assumptions or curtailing potential detail. State the focus you will be taking in implementation.

Attributes

State and justify the attributes you'd like to receive upon successful approval and completion of this project.

Procedure

GRE: Generic Routing Encapsulation

IPIP: IP in IPv4/IPv6

IPSec: Internet Protocol Security

L2TP: Layer 2 Tunneling Protocol

L2TPv3 Ethernet “pseudowire” setup with UDP encapsulation

Netcat

OpenVPN: Openvpn Tunneling Protocol

PPTP: Point-to-Point Tunneling Protocol

SIT: IPv6 in IPv4/IPv6

SSH: Secure Shell

Forwarding a local TCP port to a remote TCP port:

$ ssh -L 127.0.0.1:2022:10.150.35.74:22 tunneluser@remotehost.example.com
$ ssh -L 8080:localhost:80 tunneluser@remotehost.example.com
$ ssh -L 192.168.3.45:8080:web01.example.com:80 tunneluser@remotehost.example.com

Forwarding a remote TCP port to a local TCP port:

$ ssh -R localhost:2022:localhost:22 tunneluser@bastionhost.example.com
$ sudo ssh -R web99.example.com:80:localhost:80 root@web99.example.com

Establishing a Layer-2 SSH VPN using “tap” devices:

Establishing a Layer-3 SSH VPN using “tun” devices:

SSTP: Secure Socket Tunneling Protocol

VXLAN: Virtual Extensible Local Area Network

WireGuard

WireGuard is an extremely simple yet fast and modern VPN that utilizes state-of-the-art cryptography. It aims to be faster, simpler, leaner, and more useful than IPSec, while avoiding the massive headache. It intends to be considerably more performant than OpenVPN.

Code

Upon completion of the project, if there is an applicable collection of created code, place a copy of your finished code within <code> </code> blocks here.

/*
 * hello.c - A sample "Hello, World!" program
 * 
 * written by NAME for COURSE on DATE
 *
 * compile with:
 *   gcc -o hello hello.c
 *
 * execute with:
 *   ./hello
 */
 
#include <stdio.h>
 
int main()
{
    printf("Hello, World!\n");    // Output message to STDOUT
    return(0);
}

Execution

Again, if there is associated code with the project, and you haven't already indicated how to run it, provide a sample run of your code:

lab46:~/src/cprog$ ./hello
Hello, World!
lab46:~/src/cprog$ 

Reflection

Comments/thoughts generated through performing the project, observations made, analysis rendered, conclusions wrought. What did you learn from doing this project?

References

In performing this project, the following resources were referenced:

Back to my Portfolio
Back to my Opus