RHCSA 系列(八): 加固 SSH,設定主機名及啟用網路服務
作為一名系統管理員,你將經常使用一個終端模擬器來登入到一個遠端的系統中,執行一系列的管理任務。你將很少有機會坐在一個真實的(物理)終端前,所以你需要設定好一種方法來使得你可以登入到你需要去管理的那臺遠端主機上。
事實上,當你必須坐在一臺物理終端前的時候,就可能是你登入到該主機的最後一種方法了。基於安全原因,使用 Telnet 來達到以上目的並不是一個好主意,因為穿行線上纜上的流量並沒有被加密,它們以明文方式在傳送。
另外,在這篇文章中,我們也將複習如何配置網路服務來使得它在開機時被自動開啟,並學習如何設定網路和靜態或動態地解析主機名。
RHCSA: 安全 SSH 和開啟網路服務 – Part 8
安裝並確保 SSH 通訊安全
對於你來說,要能夠使用 SSH 遠端登入到一個 RHEL 7 機子,你必須安裝 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 沒有返回任何資訊,則你可以安全地為 sshd 使用埠 2500,並且你應該在上面的配置檔案中更改埠的設定,具體如下:
Port 2500
2、 只允許協議 2(LCTT 譯註:SSHv1 已經被證明不安全,預設情況下 SSHv1 和 SSHv2 都支援,所以應該顯示去掉如下配置行的註釋,並只支援 SSHv2。):
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
特別指定 DNS 伺服器的 IP 地址和搜尋域,它被用來在沒有提供域名字尾時,將一個給定的查詢名稱對應為一個全稱域名。
在正常情況下,你不必編輯這個檔案,因為它是由系統管理的。然而,若你非要改變 DNS 伺服器的 IP 地址,建議你在該檔案的每一行中,都應該遵循下面的結構:
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
其中的 value 應該是全稱域名。
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 ### 網路卡的 MAC 地址
TYPE=Ethernet ### 連線型別
BOOTPROTO=static ### 這代表著該網路卡指定了一個靜態地址。
### 如果這個值指定為 dhcp,這個網路卡會從 DHCP 伺服器獲取 IP 地址,並且就不應該出現以下兩行。
IPADDR=192.168.0.18
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
NM_CONTROLLED=no ### 應該給乙太網卡設定,以便可以讓 NetworkManager 可以修改這個檔案。
NAME=enp0s3
UUID=14033805-98ef-4049-bc7b-d4bea76ed2eb
ONBOOT=yes ### 作業系統會在啟動時開啟這個網路卡。
設定主機名
在 RHEL 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
使用 nmcli 命令來設定主機名
在開機時開啟網路服務
作為本文的最後部分,就讓我們看看如何確保網路服務在開機時被自動開啟。簡單來說,這個可通過建立符號連結到某些由服務的配置檔案中的 [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
來進行排錯。
請隨意使用下面的評論框來讓我們知曉你對本文的看法。提問也同樣歡迎。我們期待著你的反饋!
via: http://www.tecmint.com/rhcsa-series-secure-ssh-set-hostname-enable-network-services-in-rhel-7/
作者:Gabriel Cánepa 譯者:FSSlc 校對:wxy
相關文章
- centos7 系統必要的配置(設定網路服務自啟,修改主機名)CentOS
- IP_別名、路徑_別名、路徑_wwid及開機啟動設定
- centos 服務開機啟動設定CentOS
- Centos 7.1安裝後修改主機名及網路配置CentOS
- Ubuntu開啟ssh服務及允許root登入Ubuntu
- 虛擬機器NAT模式網路連線設定ssh虛擬機模式
- Linux Redis 服務設定開機自啟動LinuxRedis
- Linux MySQL 服務設定開機自啟動LinuxMySql
- WAS修改了主機名的設定方法
- RHCSA 系列(十一): 使用 firewalld 和 iptables 來控制網路流量
- windows開啟ssh服務教程Windows
- CentOS 7的網路配置以及設定主機名和繫結IP的問題CentOS
- 主機可以訪問虛擬機器的網路設定虛擬機
- 在Ubuntu上開啟SSH服務Ubuntu
- pycharm設定及啟用碼PyCharm
- 【linux環境配置】設定linux通過主機名訪問區域網主機Linux
- linux下重啟網路服務Linux
- LINUX如何手工配置網路和主機名Linux
- 如何修改mac 下主機名、電腦名、區域網主機名Mac
- 動態主機配置協議DHCP及代理服務協議
- 設定修改linux主機名遇到的問題Linux
- 修改主機名後DB2的設定方法DB2
- Linux7修改主機IP及主機名Linux
- Linux網路服務 ------------------ 瞭解網路設定與學習相關操作命令Linux
- Ubuntu關閉(重啟)網路服務命令Ubuntu
- CentOS 7.3 minimal 開啟網路服務CentOS
- Ubuntu開啟ssh服務遠端登入Ubuntu
- Linux伺服器---設定服務啟動Linux伺服器
- 工控主機加固解決方案
- RAC中通過設定服務名實現業務分割
- [SSH服務]——SSH埠轉發
- Learn Forge 系列:Forge 雲端自動化設計服務 - 網路app部分APP
- 如何在 Linux 中顯示和設定主機名?Linux
- spring cloud系列教程第八篇-修改服務名稱及獲取註冊中心註冊者的資訊SpringCloud
- centos7配置網路及sshCentOS
- 流程管理主頁設計及為管理提供的服務
- Linux修改主機名(靜態主機名、臨時主機名)Linux
- 虛擬機器網路啟用虛擬機