Linux Resources

This page lists some useful resources for a more in depth understanding on specific subjects. Assumed is that you have a basic understanding of Linux and Networking. If not, you might to start with one of the followings books

Networking

A good way to understand more about networking is two setup two computers: a server and a client. And the play around with the tools. The following tools and documentation are extremely useful.

Netcat

Simple tool to open or connect to TCP or UDP ports and output data through these channels. Build and test proxies. Powerful for debugging. Cryptcat is a similar tool, but with support for cryptography

Sendip

Create and send IP, TCP or UDP packages. You are able to edit any value within these packages.

Iptables

Although there is more abstract software to manage firewalls, like ufw on debian-based systems and firewall-cmd on redhat systems, Iptables will help you understand what actually happens during filtering, mangling or routing a package. https://www.frozentux.net/iptables-tutorial/iptables-tutorial.html has a structured approach in explaining what happends when a package hits the firewall. Pay extra attention to Network Address Translation. Here is another nice HOWTO: https://netfilter.org/documentation/HOWTO/NAT-HOWTO-5.html

Virtual Private Networks and Tunneling

Please have a look at ./tunneling.html:tunneling.html

Cheatsheets

Here are some good cheatsheets for commonly used tools