1. SSH 遠端管理
- SSH是一種安全通道協定,主要用來實作字元界面的遠端登入、遠端複制等功能;
- 對通信雙方的資料傳輸進行加密處理,其中包括使用者登入時輸入的使用者密碼;
- 與早期的Telnet(遠端登入)、rsh(遠端執行指令)、rcp(遠端檔案控制)等相比,SSH協定提供了更好的安全性。
-
1.1 配置Open SSH 服務端
- SSH服務端的配置檔案:/etc/ssh/sshd_config
- 服務監聽選項:端口(預設Tcp的22号端口)、位址、協定版本和DNS反向解析等
-
1 vim /etc/ssh/sshd_config #服務端配置檔案 2 #Port 22 #監聽端口為 22 3 #AddressFamily any #監聽位址為任意網卡,也可以指定 Openssh 伺服器的具體 ip 4 #LoginGraceTime 2m #登入驗證時間為2分鐘 5 #PermitRootLogin yes #禁止 root 使用者登入 6 #MaxAuthTries 6 #最大重試次數為 6 7 #PermitEmptyPasswords no #禁止空密碼使用者登入 8 #UseDNS no #禁用 DNS 反向解析,以提高伺服器的響應速度 9 ---------------------------------------------------------------------------------- 10 配置允許和禁止使用者登入:加@表示限制ip,注意允許和禁止不要同時使用!! 11 AllowUsers zhangsan #允許 zhangsan 登入 12 AllowUsers [email protected] #隻允許 zhangsan 通過 192.168.80.80 登入 13 DenyUsers lisi #禁止 lisi 登入
- 例:隻允許zhangsang、lisi、wangwu使用者登入,且其中lisi使用者僅能夠從IP位址為192.168.80.80的主機遠端登入。
1 vim /etc/ssh/sshd_config #修改服務端配置檔案 2 ------------------------------------------------------- 3 AllowUsers zhangsan [email protected] wangwu #這裡為添加的配置 4 ------------------------------------------------------- 5 systemctl reload sshd #修改完記得重新加載
-
1.2 sshd 支援的登陸驗證方式
sshd服務支援登入驗證方式有:密碼驗證和密鑰對驗證,可以設定隻使用其中一種,也可以都啟用。- 密碼驗證:
- 密鑰對驗證:
- 公鑰和私鑰是成對生成的,這兩個密鑰互不相同,可以互相加密和解密;
- 不能根據一個密碼來推算出另一個密鑰;
- 公鑰對外公開,私鑰隻有私鑰的持有人才知道。
- 公鑰和私鑰要配對使用,如果用公鑰對資料進行加密,隻有用相對應的私鑰才能解密;如果用私鑰對資料進行加密,那麼隻有對應的公鑰才能解密。
- 當密碼驗證、密鑰對驗證都啟用時,伺服器将優先使用密鑰對驗證。對于安全性要求較高的伺服器,建議将密碼驗證方式禁用,隻允許啟用密碼對驗證方式;若沒有特殊要求,則兩種方式都可以。
-
1.3 使用 SSH 用戶端程式
- SSH用戶端的配置檔案:/etc/ssh/ssh_config
- 通過 ssh 指令可以遠端登入 sshd 服務,為使用者提供一個安全的 Shell 環境,以便于對伺服器進行管理和維護。
- 指令行格式:
-
1 ssh [選項] [email protected] #指定登入使用者、目标主機位址作為參數 2 ssh -p 20 [email protected] #-p為指定端口
-
- 當使用者第一次登入 SSH 伺服器時,必須接受伺服器發來的 RSA 密鑰(需要根據提示輸入:yes)後才能繼續驗證,接受的密鑰資訊将儲存到 ~/.ssh/known_hosts 檔案中,密碼驗證成功以後,就登入到目标伺服器的指令行環境中了。如下:
1 The authenticity of host '192.168.80.77 (192.168.80.77)' can't be established. 2 ECDSA key fingerprint is SHA256:sRKz60ZIwaIjOXejXaNdZp69M/aygMdkunCMR7a3u+4. 3 ECDSA key fingerprint is MD5:be:42:dd:a7:be:d9:96:f3:9d:8a:0c:20:b6:65:c9:2e. 4 Are you sure you want to continue connecting (yes/no)? yes #接受密鑰 5 [email protected]'s password: #輸入密碼
-
- 如果 sshd 伺服器使用了非預設的端口号(如:1234),則在登入時必須通過 -p 選項指定端口号:
1 ssh -p 1234 [email protected] #指定端口 2 [email protected]'s password: #輸入密碼
-
2. 密鑰對驗證的 SSH 體系
2.1 配置密鑰對驗證的步驟
① 在用戶端建立密鑰對:
② 将公鑰檔案上傳至伺服器:
③ 在伺服器中導入公鑰文本:
④ 在服務端驗證并設定ssh 代理功能,實作免互動登入:
3. TCP Wrapper 通路控制
3.1 TCP Wrapper 概述
- TCP Wrappers (TCP封套)
- 将 TCP 服務程式“包裹”起來,代為監聽 TCP 服務程式的端口,增加了一個安全檢測過程,外來的連接配接請求必須先通過這層安全檢測,獲得許可後才能通路真正的服務程式。
- 大多數 Linux 發行版,TCP Wrappers 是預設提供的功能。rpm -q tcp_ wrappers 檢視是否安裝程式。
- TCP Wrappers 機制的保護對象為各種網絡服務程式,針對通路服務的用戶端位址進行通路控制。
- 對應的兩個政策檔案為 /etc/hosts.allow 和 /etc/hosts.deny,分别用來設定允許和拒絕的政策。
3.2 TCP Wrapper 保護機制
TCP Wrappers保護機制的兩種實作方式:
- 直接使用tcpd程式對其他服務程式進行保護,需要運作tcpd程式。
- 由其他網絡服務程式調用libwrap.so. 連結庫,不需要運作tcpd程式。此方式的應用更加廣泛,也更有效率。
- 使用ldd指令可以檢視程式的libwrap.so. 連結庫;
- 指令:ldd $ (which ssh)
3.3 TCP Wrapper 配置格式
(1)指令行格式:<服務程式清單> : <用戶端位址清單>
(2)服務程式清單:
- ALL:代表所有的服務。
- 單個服務程式:如“vsftpd"。
- 多個服務程式組成的清單:如“vsftpd, sshd”。
- ALL:代表任何用戶端位址。
- LOCAL:代表本機位址。
- 多個位址以逗号分隔。
- 允許使用通配符 “*” 和 "?” ,前者代表任意長度字元,後者僅代表一個字元。
- 網段位址,如"192. 168.80.”或者192. 168.80.0/255.255.255.0。
- 區域位址,如". benet . com"比對benet.com 域中的所有主機。
3.4 TCP Wrapper 通路機制
(1)檢視政策:- 首先檢查 /etc/hosts.allow 檔案,如果找到相比對的政策,則允許通路;
- 否則繼續檢查 /etc/hosts.deny 檔案, 如果找到相比對的政策,則拒絕通路;
- 如果檢查上述兩個檔案都找不到相比對的政策,則允許通路。
- 隻需在 /etc/hosts.deny 檔案中添加相應的拒絕政策。
- 除了在 /etc/hosts.allow 中添加允許政策之外,還需要在 /etc/hosts.deny 檔案中設定 "ALL : ALL" 的拒絕政策。
3.5 TCP Wrapper 配置步驟
例:隻希望從IP位址為192.168.80.80的主機通路sshd服務,其他位址被拒絕。
① 主機1(192.168.80.77)的/etc/ hosts.allow配置檔案内增加192.168.80.80主機2的ip;
② 主機1(192.168.80.77)的/etc/ hosts.deny配置檔案内增加拒絕所有的配置;
③ 主機2(192.168.80.80)可以正常遠端登入到主機1上;
④ 主機2(192.168.80.78)被拒絕登入到主機1上。
4. YUM
4.1 YUM 概述
- 基于 RPM 包建構的軟體更新機制
- 可以自動解決依賴關系
- 所有軟體包由集中的 YUM 軟體倉庫提供
4.2 準備安裝源
(1)軟體倉庫的提供方式:
- FTP 服務:ftp://......
- HTTP 服務:http://......
- 本地目錄:file://......
- CentOS 釋出的 RPM 包集合
- 第三方組織釋出的 RPM 包集合
- 使用者自定義的 RPM 包集合
- RPM 包來自 CentOS 7 DVD CD光牒
- 通過 FTP 方式提供給客戶機
(4)在軟體倉庫中加入非官方 RPM 包組1 [root@localhost~]# mkdir -p /var/ftp/centos7 2 [root@localhost~]# cp -rf /media/cdrom/* /var/ftp/centos7 3 [root@localhost~]# rpm -ivh /madia/cdrom/Packages/vsftpd-3.0.2.21.el7.x86_64.rpm 4 [root@localhost~]# systemctl start vsftpd 5 [root@localhost~]# systemctl enable vsftpd
- 包括存在以來關系的所有 RPM 包
- 使用 createrepo 工具建立倉庫資料檔案
1 [root@localhost~]# mkdir /var/ftp/other 2 [root@localhost~]# cd /var/ftp/other # 非官方的 RPM 檔案要先放入此目錄中 3 [root@localhost other]# createrepo -g /media/cdrom/repodata/repomd.xml ./
4.3 YUM 倉庫
(1)通路 YUM 倉庫:- 為客戶機指定 YUM 倉庫位置:
- 配置檔案:/etc/yum.repos.d/centos7.repo
- 直接以 CentOS 7 CD光牒作軟體倉庫:
- 将 CentOS 7 CD光牒放入光驅
- 挂載鏡像到倉庫位置,URL 位址為 file:///media/cdrom
4.4 YUM 工具概述
(1)關于 YUM 指令
- 由軟體包 yum-3.4.3-150.el7.centos.noarch 提供
- 基本設定:/etc/yum.conf
- 倉庫設定:/etc/yum.repos.d/*.repo
- 日志檔案:/var/log/yum.log
- 存放下載下傳的軟體包、倉庫資訊等資料
- 位于 /var/cache/yum/$basearch/$releasever
- 清除 YUM 緩存指令:yum clean all
4.5 YUM 的一些指令格式
(1)查詢軟體包
- yum list [軟體名]
- yum info [軟體名]
- yum search <關鍵詞>
- yum whatprovides <關鍵詞>
- yum grouplist [包組名]
- yum groupinfo <包組名>
- yum install [軟體名]
- yum groupinstall <包組名>
- yum update
- yum groupupdate
- yum remove <軟體名>
- yum groupremove <包組名>