Securely Setup Ubuntu 14.04 Server
Learn how to securely setup a Ubuntu 14.04 server for application deployment. I cover patching the system, using public key authentication, using an account other than root, disabling root access and setting up a firewall.
This tutorial is the first in a three part series on how to deploy a Ruby on Rails application to your own server.
This tutorial assumes you already have a ssh key pair setup. If you don't, you can see how to create one in our git and github video.
On your workstation:
# copy your SSH key to your hosting providers keys
cat .ssh/id_rsa.pub
# create server and use the ip address to log in (replace 0.0.0.0)
ssh root@0.0.0.0
On your server:
# reset root password if it is set
passwd
# Update packages
aptitude update
aptitude safe-upgrade
# add another user
adduser creston
# add user to group sudo so that user can sudo all commands
usermod -a -G sudo creston
# reboot system in case any installed patches require it
sudo reboot
On your workstation:
# copy your LOCAL public key to the creston user on the server
ssh-copy-id 0.0.0.0
# logon as creston
ssh 0.0.0.0
On your server:
# update sshd config
sudo nano /etc/ssh/sshd_config
# Edit or add the following configuration to sshd_config
PermitRootLogin no
PasswordAuthentication no
X11Forwarding no
AllowUsers creston deploy
# reload the sshd config
sudo service ssh reload
# configure ufw
sudo ufw logging on
sudo ufw allow ssh
sudo ufw allow www
sudo ufw enable
sudo ufw status
# disconnect from the server
exit
On your workstation:
# check connections, root login should fail
ssh root@0.0.0.0
ssh 0.0.0.0
Please go ahead and leave a comment below if you have any questions about this tutorial.