-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Linux Networking & Security Course
Networking & Security Course Overview
Below you can find the ordered content of the topic, in a linear progression
The linear progression of content aims to cover all content, course by course, workout by workout as follows:
- first course is the only core one, denoted by its manifest
- the next course is denoted by the first item of the next array in each course manifest
- each course has its order of workouts designated by the sections field in the same aforementioned manifest
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | what-is-a-network-interface | ✅ | 👶 introduction 💪 workout |
❌ | ✅ | ✅ | ❌ | ❌ |
2 | the-loopback-network-interface-lo | ✅ | 👶 introduction 💪 workout |
❌ | ✅ | ✅ | ❌ | ❌ |
3 | using-curl-to-make-http-requests | ✅ | 👶 introduction 💪 workout |
❌ | ❌ | ✅ | ❌ | ❌ |
4 | using-ping-to-measure-network-latency | ✅ | 👶 introduction 💪 workout |
❌ | ✅ | ✅ | ❌ | ❌ |
5 | diagnosing-network-problems-with-traceroute | ✅ | 👶 introduction 💪 workout |
❌ | ✅ | ✅ | ❌ | ❌ |
Exercises:
Game:
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | what-is-ssh | ✅ | 👶 introduction | ❌ | ✅ | ✅ | ❌ | ❌ |
2 | aliasing-ssh-connections | ✅ | 💪 workout 🔮 obscura |
❌ | ✅ | ✅ | ❌ | ❌ |
3 | staying-connected-remotely-via-ssh-without-an-interactive-shell | ✅ | 👶 introduction 🔮 obscura |
❌ | ❌ | ✅ | ❌ | ❌ |
4 | ssh-tunneling-made-easy | ✅ | 👶 introduction 💪 workout |
❌ | ✅ | ✅ | ❌ | ❌ |
5 | breaking-out-of-a-terminal-when-ssh-locks | ✅ | 💪 workout 🔮 obscura |
❌ | ❌ | ✅ | ❌ | ❌ |
Exercises:
Game:
3. ssh-maintain
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | setting-up-password-free-authentication | ✅ | 💪 workout | ❌ | ✅ | ✅ | ❌ | ❌ |
2 | extracting-the-public-key-from-the-private-key | ✅ | 💪 workout 🔮 obscura |
❌ | ❌ | ✅ | ❌ | ❌ |
3 | track-ssh-log-in-attempts | ✅ | 🦑 deep 🔮 obscura |
❌ | ❌ | ✅ | ❌ | ❌ |
4 | ssh-pipes | ✅ | 💪 workout | ❌ | ❌ | ✅ | ❌ | ❌ |
5 | debugging-ssh-client-issues | ✅ | 💪 workout | ❌ | ❌ | ❌ | ❌ | ❌ |
Exercises:
Game:
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | bandwidth-monitoring-tools | ✅ | 💪 workout | ❌ | ❌ | ✅ | ❌ | ❌ |
2 | get-real-network-statistics-with-slurm | ✅ | 💪 workout | ❌ | ❌ | ✅ | ❌ | ❌ |
3 | make-use-of-ss | ✅ | 💪 workout | ❌ | ✅ | ✅ | ❌ | ❌ |
4 | nettop-and-jnettop | ✅ | 💪 workout | ❌ | ✅ | ✅ | ❌ | ❌ |
5 | use-tcpdump-to-listen-to-network-interface-traffic | ✅ | 💪 workout 🦑 deep |
❌ | ❌ | ✅ | ❌ | ❌ |
Exercises:
Game:
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | intro-to-iptables | ✅ | 🦑 deep | ❌ | ✅ | ✅ | ❌ | ❌ |
2 | check-iptables-firewall-status | ✅ | 🦑 deep | ❌ | ✅ | ✅ | ❌ | ❌ |
3 | how-to-clear-iptables-rules | ✅ | 🔮 obscura 🦑 deep |
❌ | ❌ | ✅ | ❌ | ❌ |
4 | logging-dropped-firewall-packets | ✅ | 🔮 obscura | ❌ | ❌ | ✅ | ❌ | ❌ |
5 | firewall-as-a-service | ✅ | 🦑 deep | ❌ | ✅ | ✅ | ❌ | ❌ |
Exercises:
Game:
6. ssh-remote
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | run-local-scripts-remotely | ✅ | 💪 workout | ❌ | ❌ | ✅ | ❌ | ❌ |
2 | find-services-running-on-your-host | ✅ | 💪 workout | ❌ | ❌ | ✅ | ❌ | ❌ |
3 | proxifying-ssh-connections | ✅ | 💪 workout 🔮 obscura |
❌ | ❌ | ✅ | ❌ | ❌ |
4 | play-sounds-remotely | ✅ | 🔮 obscura | ❌ | ❌ | ✅ | ❌ | ❌ |
5 | block-ips-using-fail2ban | ✅ | 🦑 deep 🔮 obscura |
❌ | ❌ | ✅ | ❌ | ❌ |
Exercises:
Game:
7. webscraping
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | short-introduction-to-wget | ✅ | 👶 introduction | ❌ | ❌ | ✅ | ❌ | ❌ |
2 | limit-the-wget-download-rate | ✅ | 💪 workout | ❌ | ❌ | ✅ | ❌ | ❌ |
3 | getting-the-connection-speed-from-the-terminal | ✅ | 🔮 obscura | ❌ | ❌ | ✅ | ❌ | ❌ |
4 | intro-to-sed | ✅ | 👶 introduction | ❌ | ✅ | ✅ | ❌ | ❌ |
5 | monitor-the-progress-of-data-through-a-pipe-with-pv | ✅ | 💪 workout | ❌ | ❌ | ✅ | ❌ | ❌ |
Exercises:
Game:
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | multiple-ip-address-with-aliasing | ✅ | 🔮 obscura | ❌ | ❌ | ✅ | ❌ | ❌ |
2 | quick-port-test-with-netcat | ✅ | 🔮 obscura | ❌ | ❌ | ✅ | ❌ | ❌ |
3 | sending-emails-from-terminal-scripts | ✅ | 🔮 obscura | ❌ | ❌ | ❌ | ❌ | ❌ |
4 | stress-testing-with-ab | ✅ | 🦑 deep | ❌ | ❌ | ✅ | ❌ | ❌ |
5 | useful-ssh-client-optimizations | ✅ | 🔮 obscura 🦑 deep |
❌ | ✅ | ✅ | ❌ | ❌ |
6 | list-your-ipv6-configuration | ✅ | 🔮 obscura | ❌ | ✅ | ✅ | ❌ | ❌ |
Exercises:
Game:
9. security
Insights:
no | name | content | aspects | standards | PQ | RQ | Quiz | done |
---|---|---|---|---|---|---|---|---|
1 | selinux-modes | ✅ | 🦑 deep | ❌ | ✅ | ✅ | ❌ | ❌ |
2 | lockdown-cronjobs | ✅ | 🦑 deep | ❌ | ✅ | ✅ | ❌ | ❌ |
3 | private-key-encryption-with-openssl | ✅ | 🦑 deep | ❌ | ✅ | ✅ | ❌ | ❌ |
4 | disabling-usb-storage-devices | ✅ | 🔮 obscura 🦑 deep |
❌ | ✅ | ✅ | ❌ | ❌ |
5 | security-news-delivered-via-dns | ✅ | 💪 workout | ❌ | ❌ | ✅ | ❌ | ❌ |
Exercises:
Game:
✅ - At least one insight covers this
❌ - Nothing covers this
🛠️ - This standard has no objectives yet
- ❌ Use netstat to monitor traffic by network protocol
- ❌ Use ss to monitor and manage sockets
- ❌ Use tcpdump to monitor all TCP traffic
- ❌ Use SFTP to securely transfer files over an insecure network
- ❌ Recognize the steps of the SSH Handshake Protocol
- ❌ Generate cryptographic keys for the SSH Handshake using algorithms not yet reported as compromised
- ❌ Use the ssh software to securely connect a shell to another unix system over an insecure network
- ❌ Distinguish secure from insecure network protocols
- ❌ Monitor the suitability of cryptographic algorithms for encrypting communications against being intercepted and unencrypted
- ❌ Generate and store cryptographic keys for cryptographic handshake protocols
- ❌ Monitor the suitability of cryptographic algorithms for encrypting communications to sign or verify their authenticity
- ❌ Monitor the suitability of certificate issuing authorities for verification of identity
- ❌ Sign communications using a certificate from a certificate issuing authority to verify the authenticity of the source of the communications (SSL)
Given the insights are tagged with aspects, we can filter over the linear content progression and create learning sub-paths.
These sub-path progressions will most likely not cover all content, but they will ensure and enforce an unified learning experience, tailor for the user wish.
For example, a user might be interested in new additions and updates of a language, rather than introduction lessions. Note that these sub-paths don't take games into consideration
If you are being introduced to the topic for the first time
Insights:
- what-is-a-network-interface
- the-loopback-network-interface-lo
- using-curl-to-make-http-requests
- using-ping-to-measure-network-latency
- diagnosing-network-problems-with-traceroute
- what-is-ssh
- staying-connected-remotely-via-ssh-without-an-interactive-shell
- ssh-tunneling-made-easy
- short-introduction-to-wget
- intro-to-sed
Theory put into practice/that’s how you achieve X points
Insights:
- what-is-a-network-interface
- the-loopback-network-interface-lo
- using-curl-to-make-http-requests
- using-ping-to-measure-network-latency
- diagnosing-network-problems-with-traceroute
- aliasing-ssh-connections
- ssh-tunneling-made-easy
- breaking-out-of-a-terminal-when-ssh-locks
- setting-up-password-free-authentication
- extracting-the-public-key-from-the-private-key
- ssh-pipes
- debugging-ssh-client-issues
- bandwidth-monitoring-tools
- get-real-network-statistics-with-slurm
- make-use-of-ss
- nettop-and-jnettop
- use-tcpdump-to-listen-to-network-interface-traffic
- run-local-scripts-remotely
- find-services-running-on-your-host
- proxifying-ssh-connections
- limit-the-wget-download-rate
- monitor-the-progress-of-data-through-a-pipe-with-pv
- security-news-delivered-via-dns
Prerequisite knowledge consisting of 2 or more 👶/💪 workouts
Insights:
- track-ssh-log-in-attempts
- use-tcpdump-to-listen-to-network-interface-traffic
- intro-to-iptables
- check-iptables-firewall-status
- how-to-clear-iptables-rules
- firewall-as-a-service
- block-ips-using-fail2ban
- stress-testing-with-ab
- useful-ssh-client-optimizations
- selinux-modes
- lockdown-cronjobs
- private-key-encryption-with-openssl
- disabling-usb-storage-devices
Recently added/gained traction feature
Stories, obscure details that don’t specifically relate to a learning objective
Insights:
- aliasing-ssh-connections
- staying-connected-remotely-via-ssh-without-an-interactive-shell
- breaking-out-of-a-terminal-when-ssh-locks
- extracting-the-public-key-from-the-private-key
- track-ssh-log-in-attempts
- how-to-clear-iptables-rules
- logging-dropped-firewall-packets
- proxifying-ssh-connections
- play-sounds-remotely
- block-ips-using-fail2ban
- getting-the-connection-speed-from-the-terminal
- multiple-ip-address-with-aliasing
- quick-port-test-with-netcat
- sending-emails-from-terminal-scripts
- useful-ssh-client-optimizations
- list-your-ipv6-configuration
- disabling-usb-storage-devices
✅ All content has been tagged with aspects.
Want to contribute to this wiki? Go right ahead! If it has to do with how the Enki software ecosystem works, or editorial guidelines for how to write, let us handle that. Anything else, edit away!
Curriculum Format:
- Topic Documentation
- Course Documentation
- Workout Documentation
- Insight Documentation
- Glossary Documentation
Contributor Resources:
Curriculum overview:
Topic pages: