Начальная настройка сервера Rocky Linux 8

При первом запуске нового сервера Rocky Linux 8 следует провести его базовую настойку – как правило, она включает в себя несколько простых шагов, которые вы должны выполнить на ранней стадии. Начальная настройка сервера повысит безопасность и удобство работы, а также даст вам прочную основу для последующих действий.

1: Вход в систему и пользователь root

Чтобы войти на свой сервер, вам необходимо знать общедоступный IP-адрес вашего сервера. Вам также понадобится пароль (или, если вы установили аутентификацию по SSH-ключам, то закрытый ключ) учетной записи пользователя root.

Если вы еще не подключены к серверу, войдите в систему как пользователь root, используя следующую команду (замените your_server_ip публичным IP-адресом вашего сервера):

ssh root@your_server_ip

Примите предупреждение о подлинности хоста, если оно появится. Если вы используете парольную аутентификацию, укажите root- пароль для входа в систему. Если вы используете SSH-ключ, защищенный парольной фразой, система может предлагать вам ввести парольную фразу при первом использовании ключа в каждом сеансе. Если вы впервые входите на сервер по root паролю, система также может предложить вам изменить его.

Что такое root?

Пользователь root является администратором в среде Linux и имеет самые широкие привилегии. Именно из-за повышенных привилегий учетную запись root не рекомендуется использовать на регулярной основе: пользователь root способен вносить очень серьезные изменения в систему, часть из которых может оказаться разрушительной для вашей системы.

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

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

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

В этом примере новый пользователь называется 8host, но вы можете присвоить ему любое другое имя, которое захотите:

adduser 8host

Затем установите надежный пароль:

passwd 8host

Пароль нужно будет ввести дважды. После этого вы сможете использовать новую учетную запись для работы. Но сперва новому пользователю нужно передать дополнительные привилегии. Для этого нужно дать ему доступ к команде sudo.

3: Доступ к sudo

Теперь у вас есть новая учетная запись пользователя с обычными привилегиями. Однако иногда в работе вам может потребоваться право на выполнение административных задач.

Чтобы избежать необходимости выходить из системы и снова входить как root, мы можем передать нашему обычному пользователю так называемые «суперпользовательские» привилегии (или привилегии root). Это позволит обычному пользователю запускать команды с правами администратора при помощи команды sudo (ее нужно писать перед каждой командой, для выполнения которой нужны повышенные привилиегии).

Чтобы расширить привилегии пользователя, нужно добавить его в группу wheel. По умолчанию в системе Rocky Linux 8 всем пользователям, входящим в группу wheel, разрешено использовать команду sudo.

От имени пользователя root выполните эту команду, чтобы добавить нашего нового пользователя в группу wheel (укажите в команде правильное имя вашего пользователя):

usermod -aG wheel 8host

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

4: Настройка брандмауэра

Брандмауэры обеспечивают базовый уровень безопасности вашего сервера. Эти приложения блокируют трафик на каждый порт сервера, за исключением тех портов и сервисов, которые вы одобрили (проще говоря, они закрывают доступ ко всем неиспользуемым портам). В Rocky Linux есть сервис firewalld, он выполняет функции брандмауэра. Для настройки политик firewalld используется инструмент firewall-cmd.

Для начала установите firewalld:

dnf install firewalld -y

Конфигурация firewalld поддерживает ssh-соединения по умолчанию, поэтому мы можем сразу включить брандмауэр:

systemctl start firewalld

Проверьте состояние сервиса, чтобы убедиться, что он работает:

systemctl status firewalld

Вы получите такой вывод:

firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2020-02-06 16:39:40 UTC; 3s ago
     Docs: man:firewalld(1)
 Main PID: 13180 (firewalld)
    Tasks: 2 (limit: 5059)
   Memory: 22.4M
   CGroup: /system.slice/firewalld.service
           └─13180 /usr/libexec/platform-python -s /usr/sbin/firewalld --nofork –nopid

Обратите внимание, что статус сервиса – одновременно active и enabled, это значит, что он будет запускаться по умолчанию при перезагрузке сервера.

Теперь, когда брандмауэр работает, мы можем использовать служебную программу firewall-cmd, чтобы узнать все о текущей политике и обновить ее. Сначала давайте запросим список серверов, которые уже разрешены:

firewall-cmd --permanent --list-all

Команда вернет:

public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0 eth1
  sources:
  services: cockpit dhcpv6-client ssh
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

Чтобы узнать, какие еще сервисы можно включить по имени, введите:

firewall-cmd --get-services

Чтобы разрешить трафик определенного сервиса, используйте флаг –add-service:

firewall-cmd --permanent --add-service=http

Эта команда добавит сервис http и разрешит входящий TCP-трафик на порт 80. Конфигурация обновится после перезагрузки брандмауэра, которая выполняется с помощью команды:

firewall-cmd --reload

Помните, что вам нужно будет явно открыть в брандмауэре любой сервис или порт, которые вы хотите использовать в работе (вы можете сделать это позже).

5: Включение удаленного SSH-доступа

Теперь, когда у нас есть обычный пользователь без привилегий root, нам нужно убедиться, что мы можем использовать его для создания SSH-подключений к серверу.

Примечание: До тех пор, пока вы не убедитесь, что вы можете войти в систему и использовать sudo как новый пользователь, мы рекомендуем оставаться в системе как root. Таким образом, если у вас возникнут проблемы, вы сможете устранить их.

Процесс настройки доступа SSH зависит от типа аутентификации вашего пользователя root: по паролю или по ключи SSH.

Парольная аутентификация пользователя root

Если вы вошли в свою учетную запись root с помощью пароля, тогда для SSH также будет включена аутентификация по паролю. Вы можете использовать SSH в своей новой учетной записи, открыв новый сеанс терминала и используя SSH с именем нового пользователя:

ssh 8host@your_server_ip

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

sudo command_to_run

При первом использовании sudo в сеансе (и периодически в течение работы) вам будет предложено ввести пароль обычного пользователя.

Чтобы повысить безопасность вашего сервера, мы настоятельно рекомендуем настроить ключи SSH вместо парольной аутентификации.

Читайте также: Как настроить SSH-ключи на Rocky Linux 8

Аутентификация root по SSH-ключам

Если вы вошли в свою учетную запись root с помощью ключей SSH, то парольная аутентификация для SSH отключена. Вам нужно добавить копию вашего открытого ключа в файл ~/.ssh/authorized_keys нового пользователя, чтобы он мог входить в систему.

Поскольку ваш открытый ключ уже находится в файле ~/.ssh/authorized_keys корневой учетной записи, мы можем просто скопировать этот файл и структуру каталогов в новую учетную запись.

Самый простой способ скопировать необходимые файлы с правильным владельцем и правами доступа – использовать команду rsync. Она скопирует каталог .ssh пользователя root, сохранит права доступа и соответствующим образом скорректирует владельцев файлов – все это можно сделать с помощью одной команды. Обязательно укажите в приведенной ниже команде правильное имя вашего обычного пользователя:

rsync --archive --chown=8host:8host ~/.ssh /home/8host

Примечание: Команда rsync обрабатывает исходные и целевые каталоги со слешем в конце иначе, чем без него. При использовании rsync убедитесь, что исходный каталог (~/.ssh) не содержит слеша (то есть, выглядит не так: ~/.ssh/).

Если вы случайно добавите слеш в конец имени каталога, команда rsync скопирует содержимое каталога ~/.ssh пользователя root в домашний каталог пользователя sudo вместо того, чтобы скопировать всю структуру каталогов ~/.ssh. Файлы будут находиться в неправильном месте, и SSH не сможет найти и использовать их.

Вернувшись в новый терминал на вашем локальном компьютере, откройте новый сеанс SSH для пользователя без привилегий root:

ssh 8host@your_server_ip

Вы должны войти в систему без использования пароля. Помните, что если вам нужно запустить команду с правами администратора, перед этим нужно ввести sudo:

sudo command_to_run

При первом использовании sudo в сеансе (и периодически в течение работы) вам будет предложено ввести пароль вашего обычного пользователя.

Заключение

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

Tags: ,

Добавить комментарий