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

Серия RHCSA: Защита SSH, настройка имени хоста и включение сетевых служб. Часть 8


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

Фактически, это может быть последнее, что вам придется сделать перед физическим терминалом. По соображениям безопасности использование Telnet для этой цели не является хорошей идеей, поскольку весь трафик проходит по сети в виде незашифрованного обычного текста.

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

Установка и защита SSH-связи

Чтобы иметь возможность удаленно входить в систему RHEL 7 с помощью SSH, вам необходимо установить openssh, openssh -clients и openssh-servers. Следующая команда установит не только программу удаленного входа в систему, но также инструмент безопасной передачи файлов, а также утилиту удаленного копирования файлов:


yum update && yum install openssh openssh-clients openssh-servers

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

После установки вам необходимо принять во внимание несколько основных вещей, если вы хотите защитить удаленный доступ к вашему SSH-серверу. Следующие настройки должны присутствовать в файле /etc/ssh/sshd_config.

1. Измените порт, который будет прослушивать демон sshd, с 22 (значение по умолчанию) на высокий порт (2000 или выше), но сначала убедитесь, что выбранный порт не используется.

Например, предположим, что вы выбрали порт 2500. Используйте netstat, чтобы проверить, используется ли выбранный порт или нет:


netstat -npltu | grep 2500

Если netstat ничего не возвращает, вы можете безопасно использовать порт 2500 для sshd и изменить настройку порта в файле конфигурации следующим образом:


Port 2500

2. Разрешить только протокол 2:


Protocol 2

3. Настройте время ожидания аутентификации на 2 минуты, не разрешайте вход в систему с правами root и ограничьте до минимума список пользователей, которым разрешен вход в систему через ssh:


LoginGraceTime 2m
PermitRootLogin no
AllowUsers gacanepa

4. Если возможно, используйте аутентификацию на основе ключа вместо пароля:


PasswordAuthentication no
RSAAuthentication yes
PubkeyAuthentication yes

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

  1. Включить вход без пароля по SSH

Настройка сети и разрешения имен

1. Каждый системный администратор должен быть хорошо знаком со следующими общесистемными файлами конфигурации:

  1. /etc/hosts используется для разрешения имен <---> IP-адресов в небольших сетях.

Каждая строка в файле /etc/hosts имеет следующую структуру:


IP address - Hostname - FQDN

Например,


192.168.0.10	laptop	laptop.gabrielcanepa.com.ar

2. /etc/resolv.conf указывает IP-адреса DNS-серверов и домен поиска, который используется для завершения заданного имени запроса до полного доменного имени, когда суффикс домена не указан.

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


nameserver - IP address

Например,


nameserver 8.8.8.8

3. 3. /etc/host.conf определяет методы и порядок разрешения имен хостов в сети. Другими словами, сообщает преобразователю имен, какие службы использовать и в каком порядке.

Хотя этот файл имеет несколько параметров, наиболее распространенная и базовая настройка включает следующую строку:


order bind,hosts

Это указывает на то, что преобразователь должен сначала просмотреть серверы имен, указанные в resolv.conf, а затем файл /etc/hosts для разрешения имен.

4. /etc/sysconfig/network содержит информацию о маршрутизации и глобальном хосте для всех сетевых интерфейсов. Могут использоваться следующие значения:


NETWORKING=yes|no
HOSTNAME=value

Где значение должно быть полным доменным именем (FQDN).


GATEWAY=XXX.XXX.XXX.XXX

Где XXX.XXX.XXX.XXX — IP-адрес сетевого шлюза.


GATEWAYDEV=value

На машине с несколькими сетевыми адаптерами value — это устройство шлюза, например enp0s3.

5. Файлы внутри /etc/sysconfig/network-scripts (файлы конфигурации сетевых адаптеров).

Внутри упомянутого ранее каталога вы найдете несколько текстовых файлов с именами.


ifcfg-name

Где name — это имя сетевого адаптера, возвращаемое функцией ip link show:

Например:

За исключением интерфейса loopback, вы можете рассчитывать на аналогичную конфигурацию для своих сетевых карт. Обратите внимание, что некоторые переменные, если они установлены, переопределяют те, которые присутствуют в /etc/sysconfig/network для этого конкретного интерфейса. В этой статье каждая строка прокомментирована для пояснения, но в самом файле комментариев следует избегать:


HWADDR=08:00:27:4E:59:37 # The MAC address of the NIC
TYPE=Ethernet # Type of connection
BOOTPROTO=static # This indicates that this NIC has been assigned a static IP. If this variable was set to dhcp, the NIC will be assigned an IP address by a DHCP server and thus the next two lines should not be present in that case.
IPADDR=192.168.0.18
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
NM_CONTROLLED=no # Should be added to the Ethernet interface to prevent NetworkManager from changing the file.
NAME=enp0s3
UUID=14033805-98ef-4049-bc7b-d4bea76ed2eb
ONBOOT=yes # The operating system should bring up this NIC during boot

Установка имен хостов

В Red Hat Enterprise Linux 7 команда hostnamectl используется как для запроса, так и для установки имени хоста системы.

Чтобы отобразить текущее имя хоста, введите:


hostnamectl status

Чтобы изменить имя хоста, используйте


hostnamectl set-hostname [new hostname]

Например,


hostnamectl set-hostname cinderella

Чтобы изменения вступили в силу, вам необходимо перезапустить демон hostnamed (таким образом вам не придется выходить из системы и снова входить в систему, чтобы применить изменения):


systemctl restart systemd-hostnamed

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


nmcli general hostname

и изменить его:


nmcli general hostname [new hostname]

Например,


nmcli general hostname rhel7

Запуск сетевых служб при загрузке

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

В случае firewalld (/usr/lib/systemd/system/firewalld.service):


[Install]
WantedBy=basic.target
Alias=dbus-org.fedoraproject.FirewallD1.service

Чтобы включить услугу:


systemctl enable firewalld

С другой стороны, отключение firewalld дает право на удаление символических ссылок:


systemctl disable firewalld

Заключение

В этой статье мы кратко описали, как установить и защитить подключения через SSH к серверу RHEL, как изменить его имя и, наконец, как обеспечить запуск сетевых служб. ботинок. Если вы заметили, что определенная служба не запустилась должным образом, вы можете использовать systemctl status -l [service] и journalctl -xn для устранения неполадок.

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