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 * http://linux-training.be - PDFs about the fundamentals, gives an overview of the most common tools and how to use them. PDFs contains some nice exercises. * http://www.tldp.org - The Linux Documentation project. Look for the UNIX and Internet Fundamentals HOWTO. (Do you *really* know what happens when you turn on a PC?) * https://netfilter.org/documentation/HOWTO/networking-concepts-HOWTO.html - Elementary HOWTO about Networking. 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 Cheatsheets ------- Here are some good cheatsheets for commonly used tools * VI(M) - https://vim.rtorr.com *