I have a brand new VPS server from OVH with Debian Stretch. Let’s configure it with some basic security and Docker. The server will be used as a test machine for my experiments. This machine is not for production.
Update
Check if new packages are available
ssh [email protected] -p 22
apt update && apt upgrade -y
# reboot if necessarySecuring root
Change the root password
ssh [email protected] -p 22
passwd rootCreate a new user
adduser gabrieleDisable root ssh access
nano /etc/ssh/sshd_config
# find the line: PermitRootLogin yes and change it to
PermitRootLogin no
# restart ssh
/etc/init.d/ssh restart
exitCheck that root cannot login
ssh [email protected] -p 22
# after using the password you should see this message
Permission denied, please try again.Login with another user
ssh [email protected] -p 22
su - rootSecure ssh
Change ssh port
nano /etc/ssh/sshd_config
# change the line Port 22 to something else
Port 2222
# close the ssh connection and connect using the new port
ssh [email protected] -p 2222Generate keys for ssh connection
On the local client machine
ssh-keygen -t ed25519 -C "$(whoami)@$(hostname)-$(date -I)"
# change the key name adding the server name
Enter file in which to save the key (/home/zap/.ssh/id_ed25519): /home/zap/.ssh/id_ed25519_servername
# put a nice passphrase
# copy the public key to the VPS
ssh-copy-id -i ~/.ssh/id_ed25519_servername -p 2222 [email protected]On the server check that the key was copied
cat ~/.ssh/authorized_keysTry a connection using the key
ssh [email protected] -p 2222 -i ~/.ssh/id_ed25519_servernameDisable password login
su -c nano /etc/ssh/sshd_config
# Change
PasswordAuthentication noAdd the key to ssh-agent
Optional
On a secure machine it is possible to add the key to the agent
ssh-add ~/.ssh/id_ed25519_servername
Enter passphrase for /home/zap/.ssh/id_ed25519_servername:
Identity added: /home/zap/.ssh/id_ed25519_servername (comment)Now to connect no password or passphrase is required
ssh [email protected] -p 2222Setup docker
Login as root
Add backport repository
vim /etc/apt/sources.list
# uncomment or add the following lines
# deb http://deb.debian.org/debian stretch-backports main contrib non-free
# deb-src http://deb.debian.org/debian stretch-backports main contrib non-free
wq
apt updateAdd support for https repository
apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg2 \
software-properties-commonAdd docker GPG key
curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -Verify that the key fingerprint is 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
apt-key fingerprint 0EBFCD88
pub rsa4096 2017-02-22 [SCEA]
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid [ unknown] Docker Release (CE deb) <[email protected]>
sub rsa4096 2017-02-22 [S]Add the stable docker repository
add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/debian \
$(lsb_release -cs) \
stable"Update and install docker-ce
apt update
apt install docker-ceTest that docker is working
docker run hello-worldEnable at startup
# check if it is not enabled
systemctl is-enabled docker.service
# eventually enable it
systemctl enable docker.service