I've just signed up for a linux VPS to host a website I've been creating and I need some advice on the best approach to secure it.
I've previously been hosting it off a VM in the house, but I want to get rid of that. So security has been handled by the fact that I'm NAT'd and only certain ports opened/forwarded to the machine.
Now I find myself in a situation where the machine is essentially completely open to the internet, so I'm thinking that I need to start doing something with IP tables? This is something completely new to me.
I was thinking that there might be a more elegant solution, involving connecting it to my vpn on a separate interface to connect through that, but not sure where to get started with that.
I need:
- SSH access from anywhere (using a non-standard port that is already configured)
- Postgres Access from a single location
- Web (http/https) access from anywhere
- FTP access from a single location
Questions:
- What is the best practice for securing a linux machine like this? is it iptables?
- Can you point me in the direction of resources (decent ones) to learn how do this.
My linux level is fairly high, I can write/debug bash scripts, edit configs from scratch, etc, and I understand a fair bit about the architecture, but I'm no guru.