Running a home server connected to the internet is no small task.
A book like Linux and Unix System Administration Handbook will help you a lot! (https://www.amazon.com/UNIX-Linux-System-Administration-Handbook/dp/0134277554)
You’ll need, as a minimum:
A firewall to limit access to only the services you want to expose. SSH might be tempting to enable, but if you can, try to avoid exposing it, and if you must, consider exposing it through a VPN connection instead.
Good security on your server, with frequent software updates. Frequent means daily or more.
Strong passwords on everything. Use 2FA everywhere possible.
Consider using Docker or Snaps for container isolation. If using FreeBSD, jails are great. To fully use isolation, look into AppArmor, docker networks and cgroups. Only use containers when you understand how they work.
Use logwatch to get periodic emails about the state of your machine.
Use fail2ban to catch people trying to brute force their way in.
Sounds like a lot of work ? That’s because it is.
The absolutely best route would be to setup a VPN and expose services only on the internal network.
Hey man you've got to start somewhere! I'm disappointed your colleagues bust on you in what sounds like a negative way for not knowing your stuff--I'd still tell you "RTFM" on any and all Linux questions both because I want you to learn and I'm a terrible person...
All joking aside, you're definitely a sysadmin and you should be proud of your promotion even if you're a junior admin! Rather than dwelling on how awful and the work is, consider how much you're learning. Have you been working on developing any new skills since the boot camp? Are your coworkers all much older and/or more experienced?
For the Windows stuff, pick up PowerShell in a Month of Lunches, on the *nix side, the UNIX and Linux System Administration Handbook is great. But yeah it's totally normal you'd feel overwhelmed and even more normal to ask your coworkers things.
Yes. It's getting in touch with many different applications and services because you need them for some project. That's how you learn. Of course if you want to learn KVM virtualization you can read a book about it and do some project on that specific topic.
If you want to get an overview of Linux and Unix administration and many different pieces of software, you could look into this book:
(DM me on how to get it)
There almost certainly no configuration management system or orchestration system guides that are going to be useful without at least a base understanding of the systems you will be managing.
If you want some base knowledge maybe start with something like this
UNIX and Linux System Administration Handbook (5th Edition)
I can definitely recommend this book
I'm a big fan of:
Disclaimer: I know 2 of the authors, but the book is still solid.
From the level it sounds like you are at, for all intents and purposes (at this point anyhow) it is basically all the same, learn the Linux command line and that will set you up for a "UNIX" system.
These days most companies use Linux anyway, learn shell-scripting and system administration.
Buy this book
Ignore the GUI of a Linux system and learn to install Linux on an old PC and run services like a web-server, database etc remotely (over SSH) using a distribution like Debian (choose the server option).
Once you've mastered that then install Arch linux.
Once you've mastered all that then try the same with OpenBSD and FreeBSD.
Sounds like your off to a good start.
If you're the book type: UNIX and Linux System Administration Handbook is a great reference to always have near you, and a good book for experts and learners alike. It's basically the gold standard for all-around knowledge basics in this position.
That said, it's not imposter syndrome you're dealing with... at least not mostly.
You are aware of your ability to improve, and that's a good thing. Too many people think that because they have a homelab or have used linux for years on their machine makes them an expert.
it doesn't. You will deal with chalanges that you never run into in a small lab environment because now everything is 100 times bigger, and you have many people and services interacting with anything. The convoluted tangled mess of connections gets real, very quickly.
Understand that there are things you don't know. This will be the case for the rest of your career here. Always learning, always changing, always adapting to new ways of doing things. Just let it all wash over you for a while and take in what you can.
If something specific comes up, learn that. Just go with what comes at you and learn on the go. That's the real skill it takes to be a linux admin. you gotta be able to be handed something completely new to you, read up on what it does, and then work with it. Then you get handed another new thing.
Over time your experience in all these things all kind of blends together into a solid base of knowledge of how things work, as most of the time conventions transfer between different systems and different software. Over time you get better at guessing/expecting what something is and what it does.
If you feel like you're drowning in too much information, just accept it for a while, go get a cup of coffee, and try reading through it a little more. Eventually the dots get connected and you can press on further.
The linux world is MASSIVE and complex. You can never learn it all, and you shouldn't make that your goal.
Your goal should be to learn what you need to do things right now, and then move to the next task, only learning as much as you need to get the job done.
Also, make sure to take notes! sounds like you've already realized you can't keep it all in your head. your documentation will be your lifesaver, or your undoing depending on how useful it is to you later when you need to reflect on what you did a month or 5 years ago.
Sounds like you are doing well enough so far to jump in and start getting to know your new place. Don;t be afraid to ask a lot of questions, doing things right is much more important than simply looking like you know what youre doing.
This is one of the jobs that rewards you for learning a little bit every day, and if you like learning it's probably going to be motivating to do that too. You've got a lot to learn just stepping in the door, but it sounds like youre already aware of that and up to the task, so get ready and good luck!
UNIX and Linux System Administration Handbook
* The Go Programming Language
* Building Microservices
Plan to do next:
* Designing Data-Intensive Applications
* Designing Distributed Systems
* Unix and Linux System Administration 5th ed, but probably just gonna skip/read chapters of interest, i.e. I wanna get a better understanding of SystemD.
Read last month:
* Learning React
Good for a quick intro but I probably wouldn't read cover-to-cover again, some sections are old, but overall an OK book.
* React Design Patterns and Best Practices
Really liked this one, picked a tonne of new ideas and approaches that are hard to find otherwise for a newbie in JS scene. These two books, some time spent reading up on webpack and lots of github/practice code made me not scared of JS anymore and not feeling the fatigue. I mean, I was one of the people who dismissed everything frontend related, big node_modules, electron, complicated build systems etc. But now I sort of understand why and am on the different side of the fence.
* Flexbox in CSS
Wanted to understand what's the new flexbox layout is about since it's been a while when I've done some serious CSS work. Long story short I made it about half of this and dropped it - not any more useful than MDN docs and actually playing with someone's codepen gave me better understanding in 5 minutes than 3 hours spent with this book.
This one: https://toptalkedbooks.com/amzn/0134277554 ?
https://toptalkedbooks.com/amzn/0134277554 just my two cents
i can suggest this book. UNIX and Linux System Administration Handbook clear explanations