Поиск по сайту:

Первоначальная настройка и конфигурация сервера на RHEL 7


В этом руководстве мы обсудим первые шаги по настройке, которые необходимо выполнить после новой установки Red Hat Enterprise Linux 7 на «голом» сервере или на виртуальном частном сервере.

Требования

  1. Минимальная установка RHEL 7

Важно! Пользователи CentOS 7 могут следовать этой статье, чтобы выполнить первоначальную настройку сервера в CentOS 7.

Обновление системы RHEL 7

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

yum check-update
yum update

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

yum clean all

Установите системные утилиты на RHEL 7

Следующие утилиты могут оказаться полезными для повседневного системного администрирования: nano (текстовый редактор вместо редактора vi), wget, curl (утилиты, используемые для загрузки пакетов в основном по сети) net-tools, lsof (утилиты для управления локальной сетью) и bash-completion (автозаполнение командной строки).

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


yum install nano wget curl net-tools lsof bash-completion

Настройка сети в RHEL 7

RHEL 7 имеет широкий спектр инструментов, которые можно использовать для настройки сети и управления ею: от ручного редактирования файла конфигурации сети до использования таких команд, как ip, ifconfig, nmtui, nmcli или маршрут.

Самая простая утилита, которую новичок может использовать для управления и изменения конфигураций сети, — это графическая командная строка nmtui.

Чтобы изменить имя хоста системы с помощью утилиты nmtui, выполните команду nmtui-hostname, задайте имя хоста вашего компьютера и нажмите OK для завершения, как показано на рисунке. на скриншоте ниже.


nmtui-hostname

Чтобы управлять сетевым интерфейсом, выполните команду nmtui-edit, выберите интерфейс, который вы хотите редактировать, и выберите «Редактировать» в правом меню, как показано на снимке экрана ниже.

Перейдя в графический интерфейс утилиты nmtui, вы можете настроить параметры IP сетевого интерфейса, как показано на снимке экрана ниже. Когда вы закончите, перейдите к ОК с помощью клавиши [tab], чтобы сохранить конфигурацию и выйти.

Чтобы применить новую конфигурацию сетевого интерфейса, выполните команду nmtui-connect, выберите интерфейс, которым вы хотите управлять, и нажмите кнопку Деактивировать/Активировать для вывода из эксплуатации и возобновления работы. интерфейс с настройками IP, как представлено на скриншотах ниже.


nmtui-connect

Чтобы просмотреть настройки сетевого интерфейса, вы можете просмотреть содержимое файла интерфейса или выполнить следующие команды.


ifconfig enp0s3
ip a
ping -c2 google.com

Другими полезными утилитами, которые можно использовать для управления скоростью, состоянием соединения или получения информации о сетевых интерфейсах машины, являются ethtool и mii-tool.


ethtool enp0s3
mii-tool enp0s3

Создать новую учетную запись пользователя

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

adduser tecmint_user

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

passwd tecmint_user

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

chage -d0 tecmint_user

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

Чтобы избежать использования учетной записи root для выполнения административных привилегий, предоставьте этому новому пользователю административные привилегии, добавив его в системную группу «wheel».

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

Например, чтобы добавить пользователя «tecmint_user» в группу «wheel», выполните приведенную ниже команду.

usermod -aG wheel tecmint_user

После этого войдите в систему под новым пользователем и попробуйте обновить систему с помощью команды «sudo yum update», чтобы проверить, предоставлены ли пользователю права root.

su - tecmint_user
sudo yum update

Настройка аутентификации с открытым ключом SSH на RHEL 7

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

su - tecmint_user
ssh-keygen -t RSA

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

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

ssh-copy-id [email 

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

ssh [email 

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

cat ~/.ssh/id_rsa

Безопасный SSH на RHEL 7

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

sudo vi /etc/ssh/sshd_config

Найдите строку #PermitRootLogin yes, раскомментируйте ее, удалив знак # (хэштег) из начала строки, и измените строку, чтобы она выглядела так, как показано ниже. отрывок.

PermitRootLogin no

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

sudo systemctl restart sshd

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

Чтобы включить эту функцию для всей системы, выполните приведенную ниже команду, которая добавляет переменную bash TMOUT в основной файл bashrc и принудительно отключает или удаляет каждое SSH-соединение: отключается после 5 минут бездействия.

su -c 'echo "TMOUT=300" >> /etc/bashrc'

Запустите команду Tail, чтобы проверить, правильно ли добавлена переменная в конец файла /etc/bashrc. С этого момента все последующие SSH-соединения будут автоматически закрываться через 5 минут бездействия.

tail /etc/bashrc

На снимке экрана ниже удаленный сеанс SSH с компьютера Drupal на сервер RHEL автоматически завершился через 5 минут.

Настройка брандмауэра на RHEL 7

На следующем этапе настройте брандмауэр для дальнейшей защиты системы на сетевом уровне. RHEL 7 поставляется с приложением Firewalld для управления правилами iptables на сервере.

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

sudo systemctl status firewalld
sudo systemctl start firewalld
sudo systemctl enable firewalld

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

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

sudo firewall-cmd --add-service=ssh --permanent
sudo firewall-cmd --reload

Чтобы добавить правило брандмауэра «на лету», не применяя правило при следующем запуске сервера, используйте приведенный ниже синтаксис команды.

sudo firewall-cmd --add-service=sshd

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

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --permanent --add-service=smtp

Чтобы просмотреть все правила брандмауэра, выполните команду ниже.

sudo firewall-cmd --permanent --list-all

Удалите ненужные службы в RHEL 7

Чтобы получить список всех сетевых служб (TCP и UDP), запущенных на вашем сервере RHEL по умолчанию, введите команду ss, как показано в примере ниже.

sudo ss -tulpn

Команда ss покажет некоторые интересные службы, которые запускаются и работают в вашей системе по умолчанию, такие как главная служба Postfix и сервер, отвечающий за протокол NTP.

Если вы не планируете настраивать этот сервер в качестве почтового сервера, вам следует остановить, отключить и удалить демон Postfix, выполнив следующие команды.

sudo systemctl stop postfix.service 
sudo yum remove postfix

Недавно сообщалось о некоторых неприятных DDOS-атаках по протоколу NTP. Если вы не планируете настраивать свой сервер RHEL для работы в качестве NTP-сервера, чтобы внутренние клиенты могли синхронизировать время с этим сервером, вам следует полностью отключить и удалить демон Chrony, выполнив приведенные ниже команды.

sudo systemctl stop chronyd.service 
sudo yum remove chrony

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

sudo ss -tulpn

Чтобы обеспечить точное время для вашего сервера и синхронизировать время с сервером верхнего уровня, вы можете установить утилиту ntpdate и синхронизировать время с общедоступным сервером NTP, выполнив приведенные ниже команды.

sudo yum install ntpdate
sudo ntpdate 0.uk.pool.ntp.org

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

sudo crontab -e

Выдержка из файла Crontab:

@daily /usr/sbin/ntpdate 0.uk.pool.ntp.org

Вот и все! Теперь ваш сервер RHEL готов к установке дополнительного программного обеспечения, необходимого для пользовательских сетевых служб или приложений, таких как установка и настройка веб-сервера, сервера базы данных, службы общего доступа к файлам или других конкретных приложений.

Чтобы еще больше защитить и усилить сервер RHEL 7, ознакомьтесь со следующими статьями.

  1. Мега-руководство по усилению и обеспечению безопасности RHEL 7 – Часть 1
  2. Мега-руководство по усилению и обеспечению безопасности RHEL 7 – Часть 2

Если вы планируете развертывать веб-сайты в этой системе RHEL 7, узнайте, как установить и настроить стек LAMP или стек LEMP.