# vppn: Virtual Potentially Private Network ## TO DO * Double buffering in IFReader and ConnReader ? ## Hub Server Configuration ``` # Create user. adduser user # Enable ssh. cp -r ~/.ssh /home/user/ chown -R user:user /home/user/.ssh ``` Upload `hub` executable: ``` scp hub user@:~/ ``` Create systemd file in `/etc/systemd/system/hub.service ``` [Service] AmbientCapabilities=CAP_NET_BIND_SERVICE Type=simple User=user WorkingDirectory=/home/user/ ExecStart=/home/user/hub -listen :https -root-dir=/home/user Restart=always RestartSec=8 [Install] WantedBy=default.target ``` Add and start the hub server: ``` systemctl daemon-reload systemctl enable hub systemctl start hub ``` Get initial password from logs: ``` journalctl -f -u hub -n 100 ``` Sign-in and configure. ## Peer Configuration Install the binary somewhere, for example `~/bin/vppn`. Create systemd file in `/etc/systemd/system/vppn.service`. ``` [Service] AmbientCapabilities=CAP_NET_BIND_SERVICE CAP_NET_ADMIN Type=simple User=user WorkingDirectory=/home/user/ ExecStart=/home/user/vppn -name mynetwork -hub-address https://my.hub -api-key 1234567890 Restart=always RestartSec=8 [Install] WantedBy=multi-user.target ``` Add and start the service: ``` systemctl daemon-reload systemctl enable vppn systemctl start vppn ```