image

Автор: dcontm 25 февраля 2020

Теги: Django Production Руководство

Первоначальная настройка сервера Ubuntu 18.04

 

Предисловие

 

Сегодня я продемонстрирую, как выполнить первоначальную настройку сервера. Предполагается, что у вас есть чистый сервер Ubuntu 18.04 с базовыми настройками и root доступом. Мы настроим доступ к удаленному серверу, установим и настроим Brandmauer.

  1. Настройка удаленного доступа к серверу.
  2. Настройка Brandmauer.

Настройка удаленного доступа к серверу

    Для начала установим соединение с вашим сервером, используя его IP-адрес:

$ ssh root@<IP вашего сервера>

Примите предупреждение о подлинности хоста, если оно появится. На предложение "ввести пароль", введем пароль, полученный от поставщика услуг. 

После установки соединения нам нужно создать нового пользователя, так как работа под root крайне небезопасна:

# adduser <my_user>

Вам будет задано несколько вопросов, первый из которых о пароле пользователя - введите надежный пароль. На некоторые из вопросов вы можете не отвечать - для пропуска нажмите клавишу Enter.

Следующим шагом будем выделение прав суперпользователя нашему новому пользователю. Это поможет нашему обычному пользователю выполнить некоторые команды с правами администратора при помощи программы системного администрирования sudo, помещая слово sudo перед командой:

# usermod -aG sudo <my_user>

На данном этапе самое подходящее время заняться настройкой доступа с помощью SSH ключей. Для начала выйдите из системы:

# logout

На вашем локальном компьютере (предполагаю, что у вас также установлен Linux) сгенерируйте SSH ключи (если вы ранее генерировали ключи, пропустите этот шаг):

$ ssh keygen -t rsa

Вам будет предложено выбрать место, куда сохранить ваши ключи (можно нажать Enter и они по умолчанию сохранятся в  /home/<user>/.ssh/id_rsa). Так же будет предложено дополнительно защитить их паролем (этот шаг можно пропустить, по вашему усмотрению). В результате этих действий мы создали 2 файла id_rsa и id_rsa.pub, которые и являются SSH ключами. Наша задача переправить ключ id_rsa.pub на наш удаленный сервер (разрешение .pub говорит о том, что он публичный, ключ без всякого разрешения является приватным, не сообщайте его никому).

Чтобы добавить ваш приватный ключ на удаленный сервер, мы воспользуемся утилитой ssh-copy-id, для начала установим её на ваш локальный компьютер:

$ sudo apt-get install ssh-copy-id

Затем для копирования ключа используем следующую команду:

$ ssh-copy-id  -i ~/.ssh/id_rsa.pub <my_user>@<IP вашего сервера>

войдите в систему под именем созданного нами нового пользователя:

$ ssh <my_user>@<IP вашего сервера>

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

На следующем этапе мы отключим возможность входа в систему с помощью пароля. Обратите внимание, что это довольно ответственный шаг, так как если вы каким-то образом удалите свой публичный ключ с вашего удаленного сервера или обновите ключи на локальном компьютере, то потеряете доступ (поэтому я рекомендую сохранить копию ваших ключей в безопасном месте). Также вы не сможете войти в систему как root, единственным способом при утере ключей восстановить доступ будет обращение к поставщику услуг (будьте готовы подтвердить свою личность). В тоже время доступ по SSH ключу является очень безопасным способом доступа, так же вам не придется каждый раз вводить пароль, что действительно удобно. Убедитесь, что в настоящее время подлючение с использованием SSH ключей не вызывает проблем. Следующая команда откроет файл конфигурации демона sshd - это настройки сревера OpenSSH:

$ sudo nano /etc/ssh/sshd_config

После открытия файла найдите следующую строку:

PasswordAuthentication no

Измените yes на no и сохраните файл. Если данная строка была закомментирована (в начале строки символ #), раскомментируйте её. Не забудьте перезапустить сервер sshd, чтобы изменения вступили в силу:

$ sudo systemctl reload sshd

Теперь вы закрыли возможность входа системы по паролю.

Первоначальная настройка Brandmauer

 

При настройке брандмауера будем отталкиваться от следующего - запретим все, а потом разрешим доступ только к необходимым портам. Для управления будем использовать утилиту UFW (Uncomplicated Firewall), если в вашей системе она не установлена, самое время сделать это:

$ sudo apt-get install ufw

    Нам необходимо убедиться, что файрвол разрешает SSH-соединения и мы сможем зайти на сервер в следующий раз. Мы можем разрешить SSH-соединения следующей командой:

$ sudo ufw allow OpenSSH

Следующей командой включим файрвол:

$ sudo ufw enable

Убедимся, что SSH-соединения разрешены:

$ sudo ufw status

Вы должны получить следующий вывод:

Status: active

To                         Action      From

--                         ------      ----

OpenSSH                    ALLOW       Anywhere

OpenSSH (v6)               ALLOW       Anywhere (v6)

Резюме

 

В итоге мы получили систему с возможностью доступа только с помощью SSH ключей, закрыв доступ по паролю даже для пользователя root. Нами был создан новый пользователь, которого мы наделили привелегиями суперпользователя при использовании программы sudo. Также настроили брандмауэр, закрыв возможность подлючения извне ко всем портам системы кроме 22-го, который необходим для OpenSSH.  

0  0  696 

Только авторизированные пользователи могут оставлять комментарии
Войти через VK

Коментарии 0