RHCSA 系列:保護 SSH、設定主機名稱及啟用網絡服務 – 第8部分

作为系统管理员,您经常需要登录到远程系统,使用终端仿真器执行各种管理任务。您很少会坐在一个真正的(物理的)终端前,所以您需要设置一种远程登录到您将被要求管理的机器的方式。

事实上,那可能是您在物理终端前需要做的最后一件事情。出于安全原因,使用Telnet进行此目的不是一个好主意,因为所有流量都是以未加密的纯文本通过线传输。

此外,在本文中,我们还将审查如何配置网络服务以在引导时自动启动,并学习如何静态或动态地设置网络和主机名解析。

RHCSA: Secure SSH and Enable Network Services – Part 8

安装和保护SSH通信

为了让您能够使用SSH远程登录到RHEL 7盒子,您需要安装opensshopenssh-clientsopenssh-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設置更改如下:

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 指定 DNS 伺服器的 IP 地址和搜索域,當未提供域名後綴時,用於將給定的查詢名稱完成為完全限定域名。

在正常情況下,您無需編輯此文件,因為系統會管理它。但是,如果您想更改 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

在具有多個網卡的機器中,value是網關設備,例如enp0s3

5.位於/etc/sysconfig/network-scripts內的文件(網絡適配器配置文件)。

在前面提到的目錄中,您將找到幾個以純文本文件命名的文件。

ifcfg-name

其中名稱是由ip link show返回的網卡名稱:

Check Network Link Status

例如:

Network Files

除了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
Check System Hostname

要更改主機名,請使用

# hostnamectl set-hostname [new hostname]

例如:

# hostnamectl set-hostname cinderella

要使更改生效,您需要重新啟動hostnamed守護程序(這樣您就不必登出並再次登錄以應用更改):

# systemctl restart systemd-hostnamed
Set System Hostname

此外,RHEL 7還包括可用於相同目的的nmcli實用程序。要顯示主機名,運行:

# nmcli general hostname

並更改它:

# nmcli general hostname [new hostname]

例如:

# nmcli general hostname rhel7
Set Hostname Using nmcli Command

在啟動時啟動網絡服務

總結一下,讓我們看看如何確保網絡服務在啟動時自動啟動。簡單來說,這是通過在服務配置文件的[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
Enable Service at System Boot

結論

在本文中,我們總結了如何通過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/