Personal Guide to VPS
This will be my go-to guide for whenever I need to setup a VPS instance, so that I don’t have to memorize it by heart.
Creating a new user
adduser lashoun # user-friendly version of useradd
usermod -aG sudo lashoun # add to sudoers group
The next commands will be issued as the lashoun
user.
Updating packages
sudo apt update
sudo apt upgrade
ssh
First, to avoid getting locked out, copy the contents of /root/.ssh/authorized_keys
to /home/lashoun/.ssh/authorized_keys
. Then,
sudo vim /etc/ssh/sshd_config
Once inside sshd_config
, uncomment and set those lines with those values:
Port CUSTOM_PORT # changing port helps avoiding script kiddies
PermitRootLogin no
PasswordAuthentication no # only allow key authentication
systemctl restart ssh
Now, let’s put a trap for people knocking on port 22. We’ll use endlessh:
sudo apt install git gcc make build-essentials
cd ~; mkdir utilities; cd utilities
git clone https://github.com/skeeto/endlessh.git
make
sudo ./endlessh -p 22 & # launches the trap for port 22
Yunohost
If you don’t feel like tinkering with the system, Docker, and proxies — which I can understand — or if you need only basic selfhosted systems (cloud, calendar, pastebin, etc.), just install Yunohost as root!
curl https://install.yunohost.org | bash