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

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

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

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

passwd 8host

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

3: Предоставление административных привилегий

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

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

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

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

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 Tue 2022-09-13 18:26:19 UTC; 1 day 2h ago
       Docs: man:firewalld(1)
   Main PID: 15060 (firewalld)
      Tasks: 4 (limit: 10938)
     Memory: 28.1M
        CPU: 6.127s
     CGroup: /system.slice/firewalld.service
             └─15060 /usr/bin/python3 -s /usr/sbin/firewalld --nofork --nopid

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

Теперь, когда брандмауэр запущен и работает, мы можем использовать утилиту 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: Включение удалённого доступа

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

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

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

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

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

ssh 8host@your_server_ip

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

sudo command_to_run

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

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

Аутентификация 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 в сеансе (и иногда в течении работы) вам будет предложено ввести пароль вашего обычного пользователя.

Подводим итоги

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

Читайте также: Установка Docker в Rocky Linux 9

Tags: ,

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