Im looking for free entry-level materials about self hosting and network architecture in general. I know that some professors put presentations for free on their websites. im looking for: e-books,lectures,tutorials,videos.
Thanks in advance. -kapx132
So first, what is your objective? What do you want to learn? Self-hosting is extremely open ended.
Now if you’re wanting an avenue into learning entry-level networking, you can try finding Network+ study materials. Unfortunately I haven’t touched this in over 14 years so I don’t have any direct links, but literally any study book or guide, even if its a few years old, should help get you started.
my first goal is to learn how networks work, and then once i learn the basics i want to host my own matrix server.
how networks work
http://tcpipguide.com/free/index.htm and lookup terms/protocols on wikipedia as you go.
But as others said, I think you would learn faster if you pick a specific project and try to implement it from scratch. A matrix server is a nice project, but it will have you dig into matrix-specific configuration which is not particularly relevant if you’re just trying to learn system administration and networking.
I would start with a more “basic” project and ensure you got the fundamentals right, and document or automate (shell scripts, ansible…) all steps:
- install a virtualization platform (hypervisor)
- create a VM and install Debian inside it, using LVM for disk management, and a static IP address
- practice with creating/restoring snapshots, add/remove hardware and resources (vCPUs, RAM, disk storage) from the VM
- set up an SSH server and client using SSH keys
- setup a firewall with some basic rules (e.g.
only accept SSH connections from a specific IP address and DROP all other SSH connections
,forward all HTTPS connections to another IP address
…) - setup monitoring with a few basic rules (alert if the SSH server is down, alert if disk space or free memory is low…)
- automate security updates
- …
Then you can work your way up to more complex services, lookup security hardening measures on your existing setup (as always, document or automate all steps). To give you some ideas, you can find ansible roles I wrote for these tasks here. The common role implements most of what I listed above. The monitoring role implements the monitoring part. There are a few other roles for middleware/infrastructure services (web server/reverse proxy, DNS server, database services, VPN…) and a few more for applications (matrix+element, gitea, jellyfin, mumble…). Start at
tasks/main.yml
for each role, follow theimport_tasks
statements from there, and read at least thename:
for each task to get a good overview of what needs to be done, and implement it yourself from a shell in the first time. If you break your setup, restore the initial VM snapshot and start again (at this point you’ve automated or documented everything, so it should not take more than a few minutes, right?) .Each of these tasks will require you to research available software and decide for yourself which is best for your requirements (which hypervisor? which firewall frontend? which monitoring solution? etc)
I suggest you reverse that order. If first you learn how to host your own matrix server, you’ll have a better idea of what part of “how networks work” you wan to learn.
Or maybe you decide you want a full graduation course on how network works so you can learn all of the basics. But either way, that first half is a large endeavor.
Agreed, networking knowledge can be pretty ephemeral if you don’t have a way to put it into practice and solidify that knowledge in your brain.
My suggestion would be to learn basic Linux and get a server up. Then learn firewall on that server and then how to configure and use a vpn on it - as a client AND a server. Then move on to switching and finally basic routing. At that point you’ll have enough general knowledge to know what you want to do next.
You can take a look at MIT courseware if there is something for you
Matrix server?
they just want to enslave humanity by trapping it in a realistic simulation and harvesting their body heat for energy production.
You know… the usual.
An open chat server: Website, Wikipedia page
Learning the fundamentals first (such as networking) is a good way forward. You will propably need to learn many other subjects along the way, such as how system services are handled, permissions in linux, linux system administration in general and so on.
If you just want the fundamentals of networking, these resources are pretty good:
- https://www.digitalocean.com/community/tutorials/an-introduction-to-networking-terminology-interfaces-and-protocols
- https://www.digitalocean.com/community/tutorials/understanding-ip-addresses-subnets-and-cidr-notation-for-networking
- https://learn.microsoft.com/en-us/troubleshoot/windows-client/networking/tcpip-addressing-and-subnetting
And my favorite:
Feel free posting to this community with questions or try finding someone who can be your ballplank. Getting started can be very challenging before you’ve grasped the basics.
Here is an alternative Piped link(s):
https://www.piped.video/watch?v=6hPMdpk9qA4&list=PLTk5ZYSbd9Mi_ya5tVFD8NFfU1YZOyml1&index=1
Piped is a privacy-respecting open-source alternative frontend to YouTube.
I’m open-source; check me out at GitHub.
DigitalOcean’s guides in general are pretty good for all sorts of things, whether it’s a generic discussion of a concept like the ones you’ve posted, or a step-by-step guide for installing and configuring specific systems or software. Even if you’re not using DO as a host, much of what they suggest is still very useful.
Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I’ve seen in this thread:
Fewer Letters More Letters DNS Domain Name Service/System HTTP Hypertext Transfer Protocol, the Web HTTPS HTTP over SSL IP Internet Protocol SSH Secure Shell for remote terminal access SSL Secure Sockets Layer, for transparent encryption TCP Transmission Control Protocol, most often over IP VPN Virtual Private Network
[Thread #219 for this sub, first seen 16th Oct 2023, 20:15] [FAQ] [Full list] [Contact] [Source code]
FWIW Coursera will generally let you take courses for free if you apply for their financial aid. It’s annoying the first time because you have to write a couple short essays but I’ve just written them once and use the same ones over and over without issue
TCP/IP Illustrated.
https://www.isi.edu/~hussain/TEACH/Spring2014/notes/Steven00a.pdf
Not free, but there are courses in udemy starting from 15€ for new customers. But be warned, these “basic” courses are between 15 and 25 hours of video. Network is not a topic you can teach yourself in one day.
I learned everything by experimenting with it. Back in the days, that was running my own local Apache for development on Ubuntu 7.10. And then I slowly started toying with different services, eventually got my own VPS, learned to firewall and lock things down. Eventually I got into VMs which got me to learn networking and how bridges work. Later on, I played with VPNs and as my needs grew the network and routing grew as well.
You can learn from tutorials but the real learning is the hands on experience.
VMs are free and cheap to run these days, make a VM, play with it, mess it up however you want, try to fix it, reinstall it as necessary. Try to find ways a bad actor could get to it and how to prevent it.