June 23

первичная настройка сервера linux (ubuntu)

Основное

Первичные настройки безопасности

Выполнен вход через root, первое что нужно сделать это создать пользователя и добавить его в группу sudo

adduser <username>

После ввода пароля и данных для нового юзера, выполняем

adduser <username> sudo

Тут можно убедиться, что мы можем успешно залогинится из под нового юзера и не забыли пароль, потому что после следующих действий вход из под root будет невозможен


Далее нужно отключить вход для root юзера по паролю, для этого отредактируем файл `sshd_config`

sudo vim /etc/ssh/sshd_config

Установим здесь 'PermitRootLogin' в 'no'

Чтобы изменения вступили в силу, необходимо перезапустить ssh демон на сервере

sudo systemctl restart ssh

Теперь можно вообще отключить пароль от root

sudo passwd root -ld


Теперь нужно закинуть публичный ключ на сервер и затем отключить вход по паролю в целом. Выходим с сервера в терминал и копируем ключ

ssh-copy-id -i ~/.ssh/mypublickey user@host

Ключ настроен, однако пока это лишь дополнительный способ входа, при желании всё ещё можно входить по паролю, например так

ssh user@host -o PubkeyAuthentication=no

Чтобы это исправить, опять идём в конфиги ssh и убираем 'PasswordAuthentication' в 'no'

sudo vim /etc/ssh/sshd_config

И ещё раз перезагружаем ssh демон

sudo systemctl restart ssh



Пока мы вышли с сервака, можно проверить что нет логина по руту, а так же нет логина по паролю юзера

ssh user@host -o PubkeyAuthentication=no

>>> Permission denied (publickey).

ssh [email protected]

>>> Permission denied (publickey).
Теперь заодно настроим удобный вход на сервер, с localhost, откроем конфиг ssh

vim ~/.ssh/config
Конфиг может выглядеть как-то так

Host myserver HostName 195.32.32.123 User username

Теперь вход по ssh можно выполнять следующим образом

ssh myserver >>> Enter passphrase for key ...



Что ещё

Меняю порт для доступа по ssh, стандартный порт - 22. Так же ставлю фаервол, чтобы удобно контролировать порты

Для начала обновим пакеты и репо на сервере

sudo apt udate

sudo apt upgrade

Установим фаервол если он ещё не установлен

sudo apt install ufw

Далее некоторые демоны могут потребовать ребута, можно сразу и ребутнуть

sudo reboot now



После входа на сервер захожу опять в конфиг ssh

sudo vim /etc/ssh/sshd_config

и меняю порт (нужно раскомментировать 'Port') инфу по забинженым портам можно взять отсюда, после чего опять же ребут ssh демона

sudo systemctl restart ssh

Обновляю конфигурацию на localhost, добавляю туда новый порт

vim ~/.ssh/config Host myserver HostName 195.32.32.123 Port 1234 User username


Теперь добавляю в фаервол правило на доступ по порту

sudo ufw allow 1234/tcp

Тут дальше нужно аккуратно, лучше проверить что правило стоит и что это точно то что нам нужно, прежде чем включать фаервол

sudo ufw show added

>>> Added user rules (see 'ufw status' for running firewall): ufw allow 1234/tcp
Теперь включаю, это внутренняя настройка

sudo ufw enable

Чек статуса самого демона

sudo systemctl status ufw

Он может быть не активен, но скорее всего точно установлен на запуск системы (enabled)

небольшая сноска
- enabled - демон включен на автозапуск при старте системы
- active - демон запущен и работает прямо сейчас

sudo systemctl start ufw

В конце ещё раз выхожу с сервера и проверяю что фаервол пускает по моему порту.


author: @thisizmyusername