-- How to host both a web server and VPN on port 80
Figure 1. Pictogram of a server responding differently on the same port depending on IP address
Recently, I had to configure one of my servers to handle requests coming from a specific IP differently from the rest of the Internet. Specifically, I wanted port 80 to usually return my website, but for one specific client (based on the IP address), I wanted it to instead forward to request to another server running SSH. (Yes, that's kind of stupid, but drastic firewalls require drastic measures.)
In the following, I will show how to configure iptables to change the backend service handling a connection based on the source IP address. I'll give a quick example using a simple HTTP server using Python and one socat TCP endpoint serving the current date and time over raw TCP. I am intentionally choosing two incompatible protocols here to show that this method allows this.
Figure 1. Thank you for 2018! 2018 is coming to an end, and so it's time to tend to things that didn't get done over the year.
For me, I've been wanting to talk about many of my old projects for quite a while now, but never got around to it.
So this December (or tbh, many were shot during November), I pulled together and made videos for 25 of my projects. They date from very recent (November 2018) back to my school days (2007), so there's quite some variation to the style and type of project. I hope that you will enjoy (at least some of) them.
-- Let's pretend FlightGear is a model airplane simulator
Figure 1. FlightGear controlled using the FlySky FS-i6
In this post, I will explain how to use the FlySky FS-i6 RC remote control as a game controller / joystick on Linux.
This post covers how to connect the FS-iA6B receiver to a computer and how to compile the driver and support software.
Figure 1. The Orange Pi PC single board computer
This post will explain how to build an Arch Linux system with the latest mainline Linux kernel for the Orange Pi PC by Xunlong from scratch. The target system is intended for server use only. Graphical features, while they may work, have not been tested and are not the focus of this post. The tutorial starts with a completely blank SD card, which means the following steps need to be accomplished in order to reach the goal: