寫到這RH124的內容已經過半了,雖然內容不多,但是還是不太好寫。因為簡單的命令不想寫,至于理解上也沒什么難度,不過還是要保證整體內容的都要講到。
這篇文章就把RH124剩下的內容都完結吧,主要還剩下配置和保護SSH、管理網絡、安裝和更新軟件包以及訪問Linux系統文件。
管理網絡要使用nmcli工具,至于安裝和更新軟件包則使用的dnf包管理器,訪問linux文件系統則是要學習mount掛載。內容也很重要,因為rhcsa認證考試會考。
配置和保護SSH
這里先講一講ssh和ssl的區別。ssh是secure shell的縮寫,而ssl則是secure sockets layer的縮寫,一個工作在應用層,一個工作在傳輸加密層。ssh通過比對服務器公鑰的md5值來驗證,而ssl則是通過ca證書來驗證對方。
[1]ssh配置文件
家目錄下會有一個.ssh目錄,下面放著known_hosts和config文件,前者用于存放已經遠程登錄的主機信息(下次不用比對md5值),后者用于遠程登錄的預設參數。
當然了還有公私鑰文件id_rsa和id_rsa.pub文件,以及作為服務端允許遠程登錄的authorized_keys,這個文件存放允許登錄的主機信息。
其實在/etc/ssh目錄下也存放著ssh_known_hosts和sshd_config文件,以及ssh_config文件,sshd_config表示服務端配置文件,ssh_config則表示客戶端配置文件(系統全局配置,會被覆蓋)。
[2]允許root遠程登錄
接下來主要是設置root是否允許遠程登錄,還有root是否允許密碼登錄,通過/etc/ssh/sshd_config文件來配置。分別修改的是/etc/sshd_config文件(服務端)中的PermitRootLogin還有PasswordAuthentication字段。
分別將這兩個字段設置為yes即可,不過還有補充的是,可以通過ssh-keygen生成本地的公私鑰,用于客戶端ssh連接。注意客戶端和服務端的公私鑰不是一起的,而是分開的。服務端的公私鑰和配置文件(除了authorized_keys文件)都放在/etc/ssh目錄下。
然后就是ssh-copy-id將本地公鑰上傳到遠程服務器(authorized_keys)中,第一次需要輸入密碼,并驗證md5值。
管理網絡
管理網絡的工具有很多,比如ifconfig(屬于net-tools工具),以及ip(iproute2工具集,替代ifconfig),當然還有nmcli工具(nmtui圖形化工具)。
前兩者都是臨時修改,對底層網絡進行配置,而nmcli則是通過修改配置文件永久修改。
網卡的命名規則:之前都使用ethn來命令網卡,但是后面使用以太網(有線)接口en來替代,無線局域網WLAN接口則用wl替代。
但有時候通過nmcli查看網卡狀態總是unmanaged,這時候就只能使用ip或者ifconfig來修改了(內核),具體情況我也不了解,也沒辦法。
[1]修改主機名
通過host命令可以查看當前主機的主機名,其實是保存在/etc/hostname文件里面的,可以使用hostname name來動態修改。
或者通過hostnamectl hostname name永久修改,最直接的方式就是編輯/etc/hostname文件來修改。不過不建議手動修改,因為/etc/hosts文件中可能有127.0.0.1 hostname這樣的條目,也就是本地dns解析。
如果手動修改/etc/hostname文件,會導致他們在之間的關聯出現問題,除非全部手動修改。補充一點就是/etc/hosts是本地域名解析文件,在/etc/resolv.conf文件中則保存著DNS服務器的IP地址,同時有domain、search字段。
[2]查看主機網絡
可以通過ifconfig命令來查看網絡,不過推薦使用ip。ip link show查看網卡的狀態,還有MTU值等,ip route show查看路由,ip addr show查看ipv4地址和子網掩碼。
如果網卡處于down的狀態可以使用ip link set ens-33 up 來啟用,當然ip link還能創建虛擬網卡。可以通過ip addr add? 192.168.241.141/24 dev ens-33來動態設置IP,注意一個網卡能夠有多個IP。
對應的使用該ip addr del來刪除指定的IP,還有就是通過ip route add default via 192.168.241.2 dev ens-33來指定下一跳網關IP,通過ip route del刪除。
除了設置IP外,可能需要查看端口的占用情況,可以使用netstate -tuln來查看網絡情況(only servers),netstate -ta查看所有的。不過在這個我覺得名稱并不合適,其實應該叫套接字情況統計,也就是socket statistics。
有個ss工具替代了netstate,使用ss -ta一樣能夠觀察到端口的占用情況。
[3]NetworkManager服務
前面輸了半天,總算講到重點內容了。也就是NetworkManager服務,服務配置文件(也就是網絡配置)保存在/etc/NetworkManager/system-connections目錄下,并使用nmcli工具來管理。
通過nmcli dev status來查看網卡的狀態,通過nmclli con show 則可以查看配置文件的狀態(是否啟用,--active看啟用的)。可以通過`nmcli con mod "配置文件名" 字段 值`來修改配置文件,然后通過nmcli con down 再up "配置文件名"來啟用。
或者通過`nmcli con add con-name "配置文件名" ifname ens-33 字段 值`來添加,然后再用nmcli con up "配置文件名"啟用。當然,這講的都是對配置文件的操作,也可以對網卡進行操作。
如使用nmcli dev disconnect ens-33?斷開連接,nmcli dev?connect ens-33來啟用連接。
接下來講一講所謂的字段有哪些,主要是ipv4.addresses,ipv4.dns,ipv4.gateway等,注意的是如果是手動配置,需要使用字段ipv4.method manual,否則會有問題。還可以設置connection.autoconnect yes讓配置文件自動啟用。
安裝和更新軟件包
這部分又是一堆內容,主要是講講包管理器的,從rpm包管理器,到yum包管理器,再到dnf包管理器,一代一代升級。在講包管理器之前,先理清楚兩個詞的概念,一個是下載,一個是安裝。
下載是將軟件包從遠程服務器或本地存儲(如U盤)??復制到當前主機,需要通過網絡或存儲介質進行數據傳輸。
而安裝則是系統集成,下載的軟件包里面有可執行文件,庫文件以及配置文件等等。安裝軟件包就是將已下載的軟件包?解壓、配置并集成到操作系統?中,使其可運行。主要包括文件部署以及環境配置,因為有些軟件包可能需要設置環境變量之類的。
[1]包管理器
rpm是本地包管理工具,不處理軟件包的依賴,只是將下載好的軟件包安裝到系統上。
rpm包管理工具并不管理倉庫,但是yum和dnf開始管理倉庫。yum和dnf能夠自動處軟件理依賴關系,對于本地沒有的軟件包則會從倉庫中尋找并下載安裝。
不過就拿dnf(yum升級版,主要是性能上提升,而不是功能上的擴展)來說,實際上是調用rpm包管理器來實現安裝的,但擴展了依賴管理功能以及倉庫管理功能。
[2]配置軟件倉庫
可以直接編寫/etc/yum.repos.d目錄下后綴名為.repo的倉庫文件,文件名倒是不重要,而是文件里面的倉庫id重要,使用[reponame]標明。
一個倉庫需要有name、baseurl、gpgcheck(gpgkey)、enabled等字段,name一般和倉庫id保持一致,如果gpgcheck=1,那么就需要指定gpgkey的路徑,一般將enabled設置為1。
使用dnf repolist all查看所有的倉庫,使用dnf makecache去驗證。還有dnf search、dnf list等等命令。dnf upgrade則是更新系統中所有的軟件,從軟件倉庫中尋找對應的軟件,并比較軟件版本。
訪問Linux系統文件
首先講講掛載,和掛載要素。使用mount掛載文件系統,掛載點需要是空目錄;使用unmount取消掛載,但是需要確保該掛載點沒有進程使用,可以使用lsof來查看該掛載點目錄否是有進程占用。
掛載要素指的是設備文件、掛載點、文件系統、掛載選項。設備文件如磁盤分區、U盤等,需要先建立文件系統,再使用mount掛載。使用mount是臨時掛載,如果要永久掛載,則需要編輯/etc/fstab文件。
比如/dev/vdb1 /mnt/data ext4 defaults 0 0,defaults是掛載選項,包含rw,suid,dev,exec,auto,nouser,async等默認選項。至于第一個0表示永不備份(禁用dump工具對該分區備份),第二個0表示系統啟動時不檢查該文件系統。
可以使用df -h查看文件系統的掛載情況,對于未掛載的設備文件,則可以通過lsblk查看(顯示掛載和未掛載的設備)。使用lsblk -fp則可以看到設備文件的UUID,現在一般用UUID來掛載而不是設備的路徑。
使用free -h則是查看內存的占用情況,包括交換分區的使用情況。要注意swap并不屬于文件系統,它既沒有目錄/文件結構,也不能通過路徑訪問。文件系統有ext4類型(通用文件系統,穩定),xfs文件系統(高性能),NTFS文件系統(兼容windows,雙系統共享分區)等。