первичная настройка сервера 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
Теперь можно вообще отключить пароль от rootsudo 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).
>>> Permission denied (publickey).
Теперь заодно настроим удобный вход на сервер, с localhost, откроем конфиг sshvim ~/.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 install ufw
Далее некоторые демоны могут потребовать ребута, можно сразу и ребутнутьsudo reboot now
После входа на сервер захожу опять в конфиг sshsudo 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