Как системный администратор, вам часто придется входить в удаленные системы для выполнения различных административных задач с использованием эмулятора терминала. Вы редко будете сидеть перед реальным (физическим) терминалом, поэтому вам нужно настроить способ удаленного входа на машины, которыми вам придется управлять.
Фактически, это может быть последнее, что вам придется сделать перед физическим терминалом. По соображениям безопасности использование 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. Каждый системный администратор должен хорошо знать следующие системно-широкие файлы конфигурации:
- Файл /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. В файле /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
В многоядерной машине значение является устройством шлюза, например, enp0s3.
5. Файлы находятся в /etc/sysconfig/network-scripts
(конфигурационные файлы сетевых адаптеров).
В упомянутой ранее директории вы найдете несколько обычных текстовых файлов с названиями.
ifcfg-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 для устранения неполадок.
Не стесняйтесь высказать свое мнение об этой статье, используя форму комментариев ниже. Вопросы также приветствуются. Мы с нетерпением ждем от вас обратной связи!
Source:
https://www.tecmint.com/rhcsa-series-secure-ssh-set-hostname-enable-network-services-in-rhel-7/