Linux運維周作業(yè)五(7.8-7.14)

1. 總結openssh服務安全加固和總結openssh免密認證原理,及免認證實現(xiàn)過程。

openssh服務安全加固:

1.使用強密碼策略

2.使用公鑰認證

3.修改SSH默認端口

openssh免密認證原理:

1. 客戶端發(fā)起ssh請求,服務器會把自己的公鑰發(fā)送給用戶

2. 用戶會根據(jù)服務器發(fā)來的公鑰對密碼進行加密

3. 加密后的信息回傳給服務器,服務器用自己的私鑰解密,如果密碼正確,則用戶登錄成功

免認證實現(xiàn)過程:

1. 首先在客戶端生成一對密鑰(ssh-keygen)

2. 并將客戶端的公鑰ssh-copy-id 拷貝到服務端

3. 當客戶端再次發(fā)送一個連接請求,包括ip、用戶名

4. 服務端得到客戶端的請求后,會到authorized_keys中查找,如果有響應的IP和用戶,就會隨機生成一個字符串,例如:magedu

5. 服務端將使用客戶端拷貝過來的公鑰進行加密,然后發(fā)送給客戶端

6. 得到服務端發(fā)來的消息后,客戶端會使用私鑰進行解密,然后將解密后的字符串發(fā)送給服務端

7. 服務端接受到客戶端發(fā)來的字符串后,跟之前的字符串進行對比,如果一致,就允許免密碼登錄

2. 總結sudo配置文件格式,總結相關示例。

授權規(guī)則配置文件:

/etc/sudoers

/etc/sudoers.d

安全編輯授權規(guī)則文件和語法檢查工具

/usr/sbin/visudo

sudoers授權規(guī)則格式:

用戶? ? 登入主機=(代表用戶)命令

user host=(runas)? ?command

范例:

[root@rocky8 ~]# vim /etc/sudoers

root ALL=(ALL) ALL

3. 總結PAM架構及工作原理

PAM架構:

PAM提供了對所有服務進行認證的中央機制,適用于本地登錄,遠程登錄,如:telnet,rlogin,fsh,ftp,點對點協(xié)議PPP,su等應用程序中,系統(tǒng)管理員通過PAM配置文件來制定不同應用程序的不同認證策略;應用程序開發(fā)者通過在服務程序中使用PAM API(pam_xxxx( ))來實現(xiàn)對認證方法的調用;而PAM服務模塊的開發(fā)者則利用PAM SPI來編寫模塊(主要調用函數(shù)pam_sm_xxxx( )供PAM接口庫調用,將不同的認證機制加入到系統(tǒng)中;PAM接口庫(libpam)則讀取配置文件,將應用程序和相應的PAM服務模塊聯(lián)系起來

PAM工作原理:

PAM認證一般遵循這樣的順序:Service(服務)→PAM(配置文件)→pam_*.so

PAM認證首先要確定那一項服務,然后加載相應的PAM的配置文件(位于/etc/pam.d下),最后調用認證文件(位于/lib64/security下)進行安全認證

1.使用者執(zhí)行/usr/bin/passwd 程序,并輸入密碼

2.passwd開始調用PAM模塊,PAM模塊會搜尋passwd程序的PAM相關設置文件,這個設置文件一般是在/etc/pam.d/里邊的與程序同名的文件,即PAM會搜尋/etc/pam.d/passwd此設置文件

3.經由/etc/pam.d/passwd設定文件的數(shù)據(jù),取用PAM所提供的相關模塊來進行驗證

4.將驗證結果回傳給passwd這個程序,而passwd這個程序會根據(jù)PAM回傳的結果決定下一個動作(重新輸入密碼或者通過驗證)

4. 總結PAM配置文件格式,總結相關示例, nologin.so, limits,等模塊的使用。

PAM配置文件格式:

專用配置文件/etc/pam.d/格式

type:指模塊類型,即功能

control :PAM庫該如何處理與該服務相關的PAM模塊的成功或失敗情況,一個關健詞實現(xiàn)

module-path: 用來指明本模塊對應的程序文件的路徑名

Arguments: 用來傳遞給該模塊的參數(shù)

總結相關示例:

nologin.so
limits.so

5. 實現(xiàn)私有時間服務器

服務端配置:

[root@rocky8 ~]# yum -y install chrony

[root@rocky8 ~]# vim /etc/chrony.conf?

[root@rocky8 ~]# systemctl restart chronyd.service

服務啟動后會打開udp123端口

客戶端配置

[root@rocky8-1 ~]# vim /etc/chrony.conf

[root@rocky8-1 ~]# systemctl restart chronyd.service

確認同步成功

6. 總結DNS域名三級結構

1、頂級域名(Top-Level Domain,TLD):頂級域名是一個域名的最高層次,通常表示一個國家、地區(qū)或組織類型。例如,.com表示商業(yè)組織,.org表示非贏利組織,.edu表示教育機構,.cn表示中國等。頂級域名還可以分為兩種類型:國家頂級域名(Country-Code Top-Level Domain,ccTLD)和通用頂級域名(Generic Top-Level Domain,gTLD)。

2、二級域名(Second-Level Domain,SLD):二級域名是緊接在頂級域名后面的域名部分,用于區(qū)分不同的組織或實體。例如,在“.com”頂級域名下,“baidu”就是一個二級域名,“baidu.com”就是一個完整的域名。

3、三級域名(Third-Level Domain):三級域名是緊接在二級域名后面的域名部分,通常用于進一步區(qū)分不同的部門、區(qū)域或主機名。例如,在“baidu.com”二級域名下,“www”可以是一個三級域名,“www.baidu.com”就是一個完整的域名。

7. 總結DNS服務工作原理,涉及遞歸和迭代查詢原理

1、用戶在瀏覽器中輸入域名,如www.baidu.com。

2、瀏覽器向本地DNS服務器發(fā)送DNS查詢請求。

3、如果本地DNS服務器已經緩存了該域名對應的IP地址,則直接返回給瀏覽器。

4、如果本地DNS服務器沒有緩存該域名對應的IP地址,則向根域名服務器發(fā)送遞歸查詢請求。

5、根域名服務器返回給本地DNS服務器該域名對應的頂級域名服務器的IP地址。

6、本地DNS服務器向頂級域名服務器發(fā)送迭代查詢請求。

7、頂級域名服務器返回給本地DNS服務器該域名對應的二級域名服務器的IP地址。

8、本地DNS服務器向二級域名服務器發(fā)送迭代查詢請求。

9、二級域名服務器返回給本地DNS服務器該域名對應的主機名的IP地址。

10、本地DNS服務器將IP地址返回給瀏覽器,并將該域名和IP地址緩存起來。

遞歸查詢? 指DNS服務器在收到用戶發(fā)起的請求時,必須向用戶返回一個準確的查詢結果

迭代查詢? ? 不直接回復查詢結果,而是告訴另一臺DNS服務器地址,用戶這樣依次反復查詢

8. 實現(xiàn)私有DNS, 供本地網絡主機作DNS遞歸查詢。

[root@rocky8 ~]# yum -y install bind

[root@rocky8 ~]# systemctl enable --now named

[root@rocky8 ~]# vim /etc/named.conf

[root@rocky8 ~]# rndc reload

用另一臺服務器做客戶端,填DNS:10.0.0.8驗證結果

[root@rocky8-1 ~]# yum -y install bind-utils

[root@rocky8-1 ~]# dig www.baidu.com

9. 總結DNS服務器類型,解析答案,正反解析域,資源記錄定義。

DNS服務器類型:

主DNS服務器

從DNS服務器

緩存DNS服務器(轉發(fā)器)

解析答案:

肯定答案:存在對應的查詢結果

否定答案:請求的條目不存在等原因導致無法返回結果

權威答案:直接由存有此查詢結果的DNS服務器(權威服務器)返回的答案

非權威答案:由其它非權威服務器返回的查詢答案

正反解析域:

正向:FQDN-->IP

反向:IP-->FQDN

資源記錄定義:

name? ? [TTL]? ? IN? ? rr_type? ? ?value

注意:

1.TTL可從全局繼承

2.使用“@”符號可用于引用當前區(qū)域的域名

3.同一個名字可以通過多條記錄定義多個不同的值;此時DNS服務器會以輪詢方式響應

4.同一個值也可能有多個不同的定義名字;通過多個不同的名字指向同一個值進行定義,此僅表示通過多個不同的名字可以找到同一個主機

10. 實現(xiàn)DNS主從同步

主DNS服務器配置:

[root@rocky8 ~]# yum -y install bind

[root@rocky8 ~]# vim /etc/named.conf

[root@rocky8 ~]# vim /etc/named.rfc1912.zones

[root@rocky8 ~]# vim /var/named/wang.org.zone

[root@rocky8 ~]# chmod 640 /var/named/wang.org.zone

[root@rocky8 ~]# chgrp named /var/named/wang.org.zone

[root@rocky8 ~]# ll /var/named/wang.org.zone

-rw-r----- 1 root named 152 Jul 14 07:43 /var/named/wang.org.zone

[root@rocky8 named]# yum -y install bind-utils

[root@rocky8 ~]# cd /var/named/

[root@rocky8 named]# named-checkzone wang.org wang.org.zone

[root@rocky8 named]# rndc reload

從服務器配置:

[root@rocky8-1 ~]# yum -y install bind bind-utils

[root@rocky8-1 ~]# vim /etc/named.conf

[root@rocky8-1 ~]# vim /etc/named.conf

[root@rocky8-1 ~]# named-checkconf

[root@rocky8-1 ~]# vim /etc/named.rfc1912.zones?

從服務器會自動從主服務器上把/var/named/wang.org.zone拷貝到從服務器上/var/named/slaves/wang.org.slave.zone上,以下是操作

[root@rocky8 named]# systemctl start named? ? ? ? ? ?主服務器啟動服務

[root@rocky8-1 ~]# systemctl enable --now named? ? ? ? 從服務器上啟動服務

[root@rocky8 ~]# vim /var/named/wang.org.zone

新增解析服務器,版本號要比原來大

[root@rocky8 ~]# rndc reload

從服務器上可以看到時間改變,已經實現(xiàn)主從同步
測試主DNS服務器解析正常
測試從DNS服務器解析正常

11. 實現(xiàn)DNS子域授權

主域DNS服務器:

[root@rocky8 ~]# yum -y install bind bind-utils

[root@rocky8 ~]# vim /etc/named.conf?

[root@rocky8 ~]# vim /etc/named.rfc1912.zones

[root@rocky8 ~]# vim /var/named/wang.org.zone

[root@rocky8 ~]# chgrp named /var/named/wang.org.zone

[root@rocky8 ~]# systemctl start named

[root@rocky8 ~]# named-checkzone wang.org /var/named/wang.org.zone

實現(xiàn)子域DNS服務器:

[root@rocky8-1 ~]# yum -y install bind bind-utils

[root@rocky8-1 ~]# vim /etc/named.conf

[root@rocky8-1 ~]# vim /etc/named.rfc1912.zones

[root@rocky8-1 ~]# cp -p /var/named/named.localhost /var/named/shanghai.wang.org.zone

[root@rocky8-1 ~]# systemctl start named

客戶端進行測試:

[root@rocky8-2 ~]# yum -y install bind-utils

12. 基于acl實現(xiàn)智能DNS

配置兩塊網卡

[root@zhao ~]# yum install bind -y

[root@zhao ~]# vim /etc/named.conf

[root@zhao ~]# vim /etc/named.rfc1912.zones.bj

[root@zhao ~]# vim /etc/named.rfc1912.zones.sh

[root@zhao ~]# vim /etc/named.rfc1912.zones.other

[root@zhao ~]# chgrp named /etc/named.rfc1912.zones.bj

[root@zhao ~]# chgrp named /etc/named.rfc1912.zones.sh

[root@zhao ~]# chgrp named /etc/named.rfc1912.zones.other

[root@zhao ~]# vim /var/named/wang.org.zone.bj

[root@zhao ~]# vim /var/named/wang.org.zone.sh

[root@zhao ~]# vim /var/named/wang.org.zone.other

[root@zhao ~]# chgrp named /var/named/wang.org.zone.bj

[root@zhao ~]# chgrp named /var/named/wang.org.zone.sh

[root@zhao ~]# chgrp named /var/named/wang.org.zone.other

systemctl start named #第一次啟動服務

rndc reload #不是第一次啟動服務

#在web服務器1:10.0.0.8/24實現(xiàn)

yum install httpd

echo www.magedu.org in Other > /var/www/html/index.html

systemctl start httpd

#在web服務器2:10.0.0.7/16

echo www.magedu.org in Beijing > /var/www/html/index.html

systemctl start httpd

#在web服務器3:172.16.0.7/16

yum install httpd

echo www.magedu.org in Shanghai > /var/www/html/index.html

systemctl start httpd

客戶端測試

#分別在三臺主機上訪問

#DNS客戶端1:10.0.0.6/24?實現(xiàn),確保DNS指向10.0.0.8

curl www.magedu.org

www.magedu.org in Beijing

#DNS客戶端2:172.16.0.6/16?實現(xiàn),確保DNS指向172.16.0.8

curl www.magedu.org

www.magedu.org in Shanghai


#DNS客戶端3:10.0.0.8?實現(xiàn),,確保DNS指向127.0.0.1

curl www.magedu.org

www.magedu.org in Other

13. 總結防火墻分類

按保護范圍劃分:

主機防火墻:服務范圍為當前一臺主機

網絡防火墻:服務范圍為防火墻一側的局域網

按實現(xiàn)方式劃分:

硬件防火墻:在專用硬件級別實現(xiàn)部分功能的防火墻;另一個部分功能基于軟件實現(xiàn),如:華為,山石hillstone,天融信,啟明星辰,綠盟,深信服, PaloAlto , fortinet飛塔, Cisco, Checkpoint,NetScreen(2004年被 Juniper 用40億美元收購)等

軟件防火墻:運行于通用硬件平臺之上的防火墻的應用軟件,Windows 防火墻 ISA --> Forefront TMG

按網絡協(xié)議劃分:

網絡層防火墻:OSI模型下四層,又稱為包過濾防火墻

應用層防火墻/代理服務器:proxy 代理網關,OSI模型七層

14. 總結iptable 5表5鏈, 基本使用,擴展模塊。

iptables的五表五鏈是Linux防火墻管理的重要概念,它允許用戶根據(jù)不同的需求定制防火墻規(guī)則。這五張表和五條鏈分別是:

五表

raw表:確定是否對該數(shù)據(jù)包進行狀態(tài)跟蹤。

mangle表:修改IP數(shù)據(jù)包頭(如TTL值),同時也用于為數(shù)據(jù)包設置標記。

nat表:處理網絡地址轉換,以及修改數(shù)據(jù)包中的源、目標IP地址或端口等。

filter表:過濾數(shù)據(jù),確定是否放行該數(shù)據(jù)包。

security表:需要和SELinux結合使用,內置規(guī)則比較復雜,通常都會被關閉。

五鏈

INPUT鏈:處理入站數(shù)據(jù)包。

OUTPUT鏈:處理出站數(shù)據(jù)包。

FORWARD鏈:處理轉發(fā)數(shù)據(jù)包。

PREROUTING鏈:在進行路由選擇前處理數(shù)據(jù)包。

POSTROUTING鏈:在進行路由選擇后處理數(shù)據(jù)包。

規(guī)則表與規(guī)則鏈的關系:規(guī)則鏈位于規(guī)則表中,規(guī)則表是規(guī)則鏈的集合。默認情況下,有四個規(guī)則表和五種規(guī)則鏈。規(guī)則表間的優(yōu)先順序依次為raw、mangle、nat、filter。規(guī)則鏈間的匹配順序遵循入站數(shù)據(jù)(PREROUTING、INPUT)、出站數(shù)據(jù)(OUTPUT、POSTROUTING)、轉發(fā)數(shù)據(jù)(PREROUTING、FORWARD、POSTROUTING)的順序。

filter表主要涉及INPUT、FORWARD、OUTPUT三條鏈,是iptables命令默認操縱的表,用于數(shù)據(jù)包過濾功能。

nat表主要涉及PREROUTING、OUTPUT、POSTROUTING三條鏈,用于地址轉換功能,如NAT轉換。

mangle表允許在每條鏈上進行修改操作,如修改報文元數(shù)據(jù)或為數(shù)據(jù)包設置防火墻標記等。

raw表提供快速通道功能,優(yōu)先級最高,符合raw表規(guī)則的數(shù)據(jù)包會跳過一些檢查。

security表需要與SELinux結合使用,通常都會被關閉,除非有特定的安全需求。

通過iptables的這些功能,可以靈活地控制網絡流量,實現(xiàn)訪問控制、端口轉發(fā)、地址轉換等多種網絡安全策略

[root@rocky8 ~]# iptables -t nat -vnL? ? ? -t接表

iptables [-t table] {-A|-C|-D} chain rule-specification? ? ? -A接鏈

擴展模塊分為隱式擴展和顯示擴展

隱式擴展:

iptables 在使用-p選項指明了特定的協(xié)議時,無需再用-m選項指明擴展模塊的擴展機制,不需要手動加載擴展模塊

tcp 協(xié)議的擴展選項

REJECT:--reject-with:icmp-port-unreachable默認

RETURN:返回調用鏈

REDIRECT:端口重定向

LOG:記錄日志,dmesg

MARK:做防火墻標記

DNAT:目標地址轉換

SNAT:源地址轉換

MASQUERADE:地址偽裝

顯示擴展:

顯示擴展即必須使用-m選項指明要調用的擴展模塊名稱,需要手動加載擴展模塊

[-m matchname [per-match-options]]

范例:[root@rocky8 ~]# iptables -A INPUT -s 172.16.0.0/16 -d 172.16.100.10 -p tcp -m multiport --dports 22,80 -j ACCEPT

[root@rocky8 ~]# iptables -F? ? ?清楚規(guī)則(默認清楚filter表規(guī)則)

15. 總結iptables規(guī)則優(yōu)化實踐,規(guī)則保存和恢復。

iptables規(guī)則優(yōu)化實踐

1. 安全放行所有入站和出站的狀態(tài)為ESTABLISHED狀態(tài)連接,建議放在第一條,效率更高

2. 謹慎放行入站的新請求

3. 有特殊目的限制訪問功能,要在放行規(guī)則之前加以拒絕

4. 同類規(guī)則(訪問同一應用,比如:http ),匹配范圍小的放在前面,用于特殊處理

5. 不同類的規(guī)則(訪問不同應用,一個是http,另一個是mysql ),匹配范圍大的放在前面,效率更高

6. 應該將那些可由一條規(guī)則能夠描述的多個規(guī)則合并為一條,減少規(guī)則數(shù)量,提高檢查效率

7. 設置默認策略,建議白名單(只放行特定連接)

iptables -P,不建議,容易出現(xiàn)“自殺現(xiàn)象”

規(guī)則的最后定義規(guī)則做為默認策略,推薦使用,放在最后一條

規(guī)則保存:

[root@rocky8 ~]# mkdir /data/backup

[root@rocky8 ~]# iptables-save > /data/backup/rules.bak

規(guī)則恢復:

[root@rocky8 ~]# iptables-restore < /data/backup/rules.bak?

16. 總結NAT轉換原理, DNAT/SDNAT原理,并自行設計架構實現(xiàn)DNAT/SNAT。

NAT、DNAT、SNAT轉換原理:

NAT: network address translation,支持PREROUTING,INPUT,OUTPUT,POSTROUTING四個鏈

請求報文:修改源/目標IP,由定義如何修改

響應報文:修改源/目標IP,根據(jù)跟蹤機制自動實現(xiàn)

NAT的實現(xiàn)分為下面類型:

SNAT:source NAT ,支持POSTROUTING, INPUT,讓本地網絡中的主機通過某一特定地址訪問外部網絡,實現(xiàn)地址偽裝,請求報文:修改源IP

DNAT:destination NAT 支持PREROUTING , OUTPUT,把本地網絡中的主機上的某服務開放給外部網絡訪問(發(fā)布服務和端口映射),但隱藏真實IP,請求報文:修改目標IP

PNAT: port nat,端口和IP都進行修改

自行設計架構實現(xiàn)SNAT:

啟用路由轉發(fā)功能:

[root@rocky8 ~]# sysctl -a |grep ip_forward

net.ipv4.ip_forward = 0

[root@rocky8 ~]# vim /etc/sysctl.conf

net.ipv4.ip_forward=1

[root@rocky8 ~]# sysctl -p

net.ipv4.ip_forward = 1

[root@rocky8 ~]# hostname -I

10.0.0.8 192.168.10.131

[root@lan-host ~]# hostname -I

192.168.10.132

[root@rocky8 ~]# iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j SNAT --to-source 10.0.0.8

SNAT實現(xiàn)

自行設計架構實現(xiàn)DNAT:
[root@lan-host ~]# yum -y install httpd

[root@lan-host ~]# systemctl enable --now httpd

[root@lan-host ~]# hostname -I > /var/www/html/index.html

[root@rocky8 ~]# iptables -t nat -A PREROUTING -d 10.0.0.8 -p tcp --dport 80 -j DNAT --to-destination 192.168.10.132:80

用另一臺機器訪問,發(fā)現(xiàn)DNAT已經生效

17. 使用REDIRECT將90端口重定向80,并可以訪問到80端口的服務

[root@rocky8 ~]# yum -y install httpd

[root@rocky8 ~]# systemctl enable --now httpd

[root@rocky8 ~]# hostname -I > /var/www/html/index.html

[root@rocky8 ~]# iptables -t nat -A PREROUTING -d 10.0.0.8 -p tcp --dport 90 -j REDIRECT --to-ports 80

18. firewalld常見區(qū)域總結。

drop區(qū)域:任何進入此區(qū)域的包都會被直接丟棄,沒有任何回應。

block區(qū)域:任何進入此區(qū)域的流量都會被拒絕,并返回一個ICMP錯誤消息。

public區(qū)域:用于公共區(qū)域,僅接受那些被選擇的連接。

external區(qū)域:專門用于路由器等具有獨立外部網絡的設備。

dmz區(qū)域:用于放置受限的內部網絡區(qū)域,如企業(yè)的非安全區(qū)域。

work區(qū)域:用于工作區(qū),可以接受選定的傳入連接。

home區(qū)域:用于家庭網絡,可以接受選定的傳入連接。

internal區(qū)域:用于內部網絡,可以接受選定的傳入連接。

trusted區(qū)域:所有進入此區(qū)域的包都會被接受,沒有任何限制。

19. 通過ntftable來實現(xiàn)暴露本機80/443/ssh服務端口給指定網絡訪問"


?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容