Приветствую! В этой статье я расскажу про первоначальную настройку сервера Ubuntu 20.04. Эти мероприятия значительно повысят безопасность вашего сервера и заложат прочный фундамент для последующей работы. Итак, начнем!
У многих новичком в первую очередь возникает вопрос, где лучше арендовать сервер. Не буду долго останавливаться на этом пункте, выбрать надежного хостинг-провайдера можно в нашем рейтинге на главной странице сайта. Я же все действия буду выполнять на примере абузоустойчивого хостинга Zomro. О том, как приобрести и запустить сервер я уже писал в этой статье.
После того, как сервер был приобретен и были получены все данные для подключения (IP-адрес, имя пользователя, пароль), нам нужно подключиться к нему. Далее последовательность действий будет зависеть от используемой вами операционной системы.
Подключиться к серверу с данных операционных систем не составит никакого труда. Для этого нужно открыть терминал и ввести следующую команду:
ssh root@45.82.111.111
Разумеется, в эту команду нужно подставить свои данные (имя пользователя и IP-адрес). После ввода команды сервер запросит ввести пароль, после чего вы подключитесь к серверу.
Операционная система Windows не имеет встроенного SSH-клиента и подключаться придется с помощью программы puTTy. Об этом я уже подробно расписал здесь.
Однако, в Windows 10 есть другой, более удобный способ подключения по SSH. Для этого нужно в систему установить SSH-клиент. Обычно он установлен по умолчанию. Проверить это можно следующим образом. Щелкаем правой кнопкой мыши по значку Windows в левом нижнем углу экрана, в открывшемся меню выбираем пункт "Параметры". Далее переходим в раздел "Приложения":
В отрывшемся окне переходим по ссылке "Дополнительные компоненты" и проверяем, установлен ли клиент OpenSSH. Если он не установлен, то жмем "Добавить компонент", находим в списке "Клиент OpenSSH" и устанавливаем его:
После этого ищем на компьютере и запускаем программу Windows PowerShell и вводим команду (под своим пользователем и IP-адресом):
ssh root@45.82.111.111
Отлично, подключение к серверу выполнено. Теперь перейдем непосредственно к его настройке.
Дело в том, что практически все сервера после установки имеют одного стандартного пользователя с именем root, а это весьма небезопасно. Поэтому создадим нового пользователя командой:
sudo adduser hostgeek
Вводим и подтверждаем пароль для нашего нового пользователя. Остальные поля можно не заполнять:
Теперь этому пользователю нужно дать права администратора с помощью команды:
sudo usermod -aG sudo hostgeek
Авторизуемся под этим пользователем:
su hostgeek
Введем команду:
sudo whoami
В результате мы должны получить ответ "root". В таком случае все выполнено верно.
Отключимся от сервера и авторизуемся уже под нашим новым пользователем:
ssh hostgeek@45.82.111.111
Этот шаг не обязателен, но он значительно повысит безопасность сервера. Поэтому не рекомендую его пропускать. Для начала сгенерируем SSH ключ с помощью команды (не забудьте отключиться от сервера, команду запускаем не на сервере, а на локальной машине!):
ssh-keygen
Путь для расположения ключа оставляем стандартным. После этого придумываем и вводим passphrase (секретная фраза):
Теперь этот ключ нужно скопировать на сервер. На Linux (Debian, Ubuntu) и macOS это делается одной командой:
ssh-copy-id hostgeek@45.82.111.111
В Windows такой команды нет, поэтому ключ нужно скопировать вручную. Переходим в папку на компьютере, куда был сгенерирован ключ и с помощью любого текстового редактора открываем файл id_rsa.pub. Копируем весь текст из этого файла. Копируйте внимательно, без захвата пробелов в начале и в конце строки, иначе ничего работать не будет.
Далее подключаемся к серверу:
ssh hostgeek@45.82.111.111
В корневой директории созданного пользователя (/home/hostgeek) нужно создать папку .ssh. Наверняка вы уже находитесь в этой директории. Проверить это можно с помощью ввода команды:
pwd
Если выдает другую директорию, то перейдем в нужную с помощью команды:
cd /home/hostgeek
Теперь создадим папку .ssh в этой директории с помощью команды:
mkdir .ssh
Проверить создание папки можно просмотрев структуру текущей директории командой:
ls -la
Установим права для этой папки:
chmod 700 .ssh/
Перейдем в эту папку:
cd .ssh
Создадим файл authorized_keys в этой папке:
touch authorized_keys
Установим права для этого файла:
chmod 600 authorized_keys
Вводим команду:
cat >> authorized_keys << EOF
Вставляем ключ, который скопировали из файла id_rsa.pub и жмем Enter. Вводим команду:
EOF
И снова жмем Enter.
Отлично, мы скопировали и вставили наш ключ в файл authorized_keys. Можно проверить содержимое файла командой:
cat authorized_keys
Откроем для редактирования конфигурационный файл SSH:
sudo nano /etc/ssh/sshd_config
Находим строчку PermitRootLogin и выставляем ему значение no. Таким образом мы запретим авторизацию под root пользователем:
PermitRootLogin no
Находим строчку PubkeyAuthentication и раскомментируем ее, убрав знак решетки (#). Так мы активируем возможность авторизации с помощью SSH-ключа:
PubkeyAuthentication yes
Находим строчку PasswordAuthentication. Раскомментируем ее и выставим значение no, тем самым запретив авторизацию по паролю:
PasswordAuthentication no
В самом конце файла с новой строчки вставим следующую команду, тем самым разрешив авторизацию только указанным пользователям:
AllowUsers hostgeek
И сохраним файл. Перезапустим SSH:
sudo service ssh restart
Отключимся от сервера и снова авторизуемся:
ssh hostgeek@45.82.111.111
Сервер попросит ввести passphrase и после этого авторизация будет выполнена успешно. Если же теперь попытаться авторизоваться под root или каким-либо другим пользователем, то сервер выдаст ошибку доступа.
На этом настройка авторизации по SSH-ключу завершена.
Серверы на Ubuntu 20.04 могут использовать файрвол UFW для разрешения соединений избранных сервисов. Мы легко можем настроить этот базовый файрвол.
Различные приложения могут при установке зарегистрировать свой профиль в UFW. Такие профили позволяют UFW управлять этими приложениями по имени. OpenSSH (сервис, который позволяет подключаться к серверу) имеет свой профиль, зарегистрированный в UFW.
sudo ufw app list
Ответ сервера:
Available applications:
OpenSSH
Теперь нужно разрешить 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)
Если вы установили и настроили дополнительные сервисы, вам необходимо откорректировать настройки брандмауэра, чтобы он не блокировал трафик этих сервисов.
На этом начальная настройка сервера на Ubuntu 20.04 завершена, теперь он готов к дальнейшей работе. Если у вас возникли какие-либо вопросы по статье, то задавайте их в комментариях. Мы обязательно вам ответим.