Первоначальная настройка DigitalOcean-дроплета с ОС Ubuntu 16.04.2 x32

Настройка файрвола

Для начала настроим файрвол. Разрешим подключаться к серверу по SSH:
# ufw disable
# ufw reset
# ufw default deny incoming
# ufw default deny outgoing
# ufw allow in on eth0 from any to ##.###.##.### port 22 proto tcp
# ufw enable
# service ufw restart
# ufw status verbose
# ufw status numbered

How To Set Up a Firewall with UFW on Ubuntu 16.04
UFW Essentials: Common Firewall Rules and Commands

Создание нового пользователя

Далее нам нужно создать пользователя потому что работать под root-ом плохая практика.
Посмотрим список существующих пользователей:
# cut -d: -f1 /etc/passwd

A command to list all users? And how to add, delete, modify users?

# adduser username
# usermod -aG sudo username
# su - username
# sudo ls -la /root

How To Create a Sudo User on Ubuntu [Quickstart]

Настройка SSH

Я хочу передать ключ от root-a новому пользователю.
# cp -R ~/.ssh /home/username/
# chown username:username /home/username/.ssh -R

А root-у надо запретить вход по SSH. Для этого в файле /etc/ssh/sshd_config делаем следующие изменения:
Port ####
Protocol 2
PermitRootLogin no
AllowUsers username
PasswordAuthentication no

Порт надо выбирать случайно, потому что хакеры брутфорсят 22 и другие часто выбираемые порты, например 2222. Естественно при смене порта нужно предварительно и файрвол настроить.
# ufw disable
# ufw delete 1

Удаляем SSH-ключ для супер-пользователя и перезагружаем SSH-сервер:
# rm -rf .ssh/
# service ssh reload

Снова настраиваем файрвол:
# ufw allow in on eth0 from any to ##.###.##.### port #### proto tcp
# ufw enable
# service ufw restart
# ufw status verbose

Create a new SSH user on Ubuntu Server
Securing OpenSSH
Delete SSH Keys
SSH/OpenSSH/Keys
Need a random TCP port number for your Internet server application?

Установка веб-сервера Apache

Пока на время установки придется отключить файрвол, иначе репозиторий будет недоступен. Также нужно разрешить подключения на 80 порт, чтобы пользователи могли получать веб-страницы с сервера.
$ sudo ufw disable
$ sudo ufw allow in on eth0 from any to ##.###.##.### port 80 proto tcp
$ sudo apt-get install apache2
$ sudo ufw enable

Если зайти в браузере по IP-адресу сервера, то должная открыться страница по-умолчанию.


How To Install Linux, Apache, MySQL, PHP (LAMP) stack on Ubuntu