目錄
一、服務(wù)的啟動(dòng)與關(guān)閉命令
二、iptables介紹
1、防火墻分類
2、iptables的啟動(dòng)
①?在開機(jī)時(shí)禁用firewalld服務(wù):
?②安裝iptables-services
③將它設(shè)置為開機(jī)自啟
3、iptables 四表五鏈詳解
鏈
表
?表和鏈的關(guān)系?編輯
?不是所有的表都附著在同一條鏈上?編輯
4、iptables基本用法
匹配條件?
?處理動(dòng)作
?iptables常用的選項(xiàng)?編輯
?iptables常用規(guī)則匹配?編輯
iptables配置
基本匹配條件總結(jié)
擴(kuò)展匹配條件總結(jié)
(補(bǔ)充)selinux
1、工作模式
2、如何禁用
一、服務(wù)的啟動(dòng)與關(guān)閉命令
|
二、iptables介紹
1、防火墻分類
①?gòu)倪壿嬌?img src="https://imgs.yssmx.com/Uploads/2023/05/447547-1.png" alt="【Linux安全管理】iptables配置與iptables基本用法" referrerpolicy="no-referrer" />
??②從物理上
????????iptables 并不是真正意義上的防火墻,我們可以理解為一個(gè)客戶端工具,用戶通過(guò) ipatbles 這個(gè)客戶端,將用戶的安全設(shè)定執(zhí)行到對(duì)應(yīng)的"安全框架”中,這個(gè)"安全框架"才是真正的防火墻,這個(gè)框架的名字叫 netfilter .iptables 是一個(gè)命令行工具,位于用戶空間,通過(guò)這個(gè)命令行工具來(lái)操作 netfilter 。
?????????netfilter 才是防火墻真正的安全框架, netfilter 位于內(nèi)核空間。?????????netfilter / iptables (簡(jiǎn)稱為 iptables )組成 Linux 平臺(tái)下的包過(guò)濾防火墻,與大多數(shù)的 Linux 軟件一樣,這個(gè)包過(guò)濾防火墻是免費(fèi)的,它可以代替昂貴的商業(yè)防火墻解決方案,完成封包過(guò)濾、封包重定向和網(wǎng)絡(luò)地址轉(zhuǎn)換( NAT )等功能。
2、iptables的啟動(dòng)
①?在開機(jī)時(shí)禁用firewalld服務(wù):
[root@localhost ~]# systemctl disable firewalld
?②安裝iptables-services
[root@localhost ~]# yum install iptables-services -y
③將它設(shè)置為開機(jī)自啟
安裝以后查看服務(wù)狀態(tài)顯示未啟動(dòng),可以將它設(shè)置為開機(jī)自啟
[root@localhost ~]# systemctl enable iptables
3、iptables 四表五鏈詳解
????????防火墻是按照規(guī)則辦事的,我們就來(lái)說(shuō)說(shuō)規(guī)則( rules ),規(guī)則其實(shí)就是網(wǎng)絡(luò)管理員預(yù)定義的條件,規(guī)則一般的定義為"如果數(shù)據(jù)包頭符合這樣的條件,就這樣處理這個(gè)數(shù)據(jù)包"。規(guī)則存儲(chǔ)在內(nèi)核空間的信息包過(guò)濾表中,這些規(guī)則分別指定了源地址、目的地址、傳輸協(xié)議(如 TCP 、 UDP 、 ICMP )和服務(wù)類型(如 HTTP 、 FTP 和 SMTP )等。當(dāng)數(shù)據(jù)包與規(guī)則匹配時(shí), iptables 就根據(jù)規(guī)則所定義的方法來(lái)處理這些數(shù)據(jù)包,如放行( accept )、拒絕( reject )和丟棄( drop )等。配置防火墻的主要工作就是加、修改和刪除這些規(guī)則。
????????當(dāng)客戶端訪問(wèn)服務(wù)器的 web 服務(wù)時(shí),客戶端發(fā)送報(bào)文到網(wǎng)卡,而 tcp / ip 協(xié)議棧是屬于內(nèi)核的一部分,所以,客戶端的信息會(huì)通過(guò)內(nèi)核的 TCP 協(xié)議傳輸?shù)接脩艨臻g中的 web 服務(wù)中,而此時(shí),客戶端報(bào)文的目標(biāo)終點(diǎn)為 web 服務(wù)所監(jiān)聽的套接字( IP : Port )上,當(dāng) web 服務(wù)需要響應(yīng)客戶端請(qǐng)求時(shí), web 服務(wù)發(fā)出的響應(yīng)報(bào)文的目標(biāo)終點(diǎn)則為客戶端,這個(gè)時(shí)候, web 服務(wù)所監(jiān)聽的 IP 與端口反而變成了原點(diǎn),我們說(shuō)過(guò), netfilter 才是真正的防火墻,它是內(nèi)核的一部分,所以,如果我們想要防火墻能夠達(dá)到"防火"的目的,則需要在內(nèi)核中設(shè)置關(guān)卡,所有進(jìn)出的報(bào)文都要通過(guò)這些關(guān)卡,經(jīng)過(guò)檢查后,符合放行條件的才能放行,符合阻攔條件的則需要被阻止,于是,就出現(xiàn)了 input 關(guān)卡和 output 關(guān)卡,而這些關(guān)卡在 iptables 中不被稱為"關(guān)卡”,而被稱為“鏈”。? ?
????????這只是一個(gè)簡(jiǎn)單的描述,除過(guò)這兩個(gè)關(guān)卡以外,我們還有其他關(guān)卡,也就是其他鏈,他們就是“路由前"、“轉(zhuǎn)發(fā)”、“路由后”,對(duì)應(yīng)英文表示為 PREROUTING 、 FORWARD 、POSTROUTING .?
報(bào)文的流向:
- 到本機(jī)某進(jìn)程的報(bào)文: PREROUTING > INPUT
- 由本機(jī)轉(zhuǎn)發(fā)的報(bào)文: PREROUTING > FORWARD > POSTROUTING
- 由本機(jī)的某進(jìn)程發(fā)出報(bào)文(通常為響應(yīng)報(bào)文): OUTPUT > POSTROUTING?
鏈
????????防火墻的作用就在于對(duì)經(jīng)過(guò)的報(bào)文匹配”規(guī)則",然后執(zhí)行對(duì)應(yīng)的”動(dòng)作",所以,當(dāng)報(bào)文經(jīng)過(guò)這些關(guān)卡的時(shí)候,則必須匹配這個(gè)關(guān)卡上的規(guī)則,但是,這個(gè)關(guān)卡上可能不止有一條規(guī)則,而是有很多條規(guī)則,當(dāng)我們把這些規(guī)則串到一個(gè)鏈條上的時(shí)候,就形成了“鏈”,所以,我們把每一個(gè)"關(guān)卡”想象成如下圖中的模樣,這樣來(lái)說(shuō),把他們稱為“鏈”更為合適,每個(gè)經(jīng)過(guò)這個(gè)"關(guān)卡”的報(bào)文,都要將這條”鏈”上的所有規(guī)則匹配一遍,如果有符合條件的規(guī)則,則執(zhí)行規(guī)則對(duì)應(yīng)的動(dòng)作。
表
????????我們把具有相同功能的規(guī)則的集合叫做"表”,不同的規(guī)則放置于不同的表中工作,在 iptables 中定義了四種表,每種表對(duì)應(yīng)不同的功能。
?表和鏈的關(guān)系
![]()
?不是所有的表都附著在同一條鏈上
![]()
?iptables 為我們定義了4張”表",當(dāng)他們處于同一條”鏈”時(shí),執(zhí)行的優(yōu)先級(jí)如下。
優(yōu)先級(jí)次序(由高而低): raw -> mangle -> nat --> filter?
來(lái)看一個(gè)完整的圖來(lái)了解在數(shù)據(jù)傳輸過(guò)程中,防火墻的表和鏈的功能體現(xiàn)
4、iptables基本用法
????????在上述描述中我們一直在提規(guī)則,可是沒(méi)有細(xì)說(shuō),現(xiàn)在說(shuō)說(shuō)它。先說(shuō)說(shuō)規(guī)則的概念,然后再通俗的解釋它
????????規(guī)則:根據(jù)指定的匹配條件來(lái)嘗試匹配每個(gè)流經(jīng)此處的報(bào)文,一旦匹配成功,則由規(guī)則后面指定的處理動(dòng)作進(jìn)行處理。
????????在這里我們提到了兩個(gè)概念,第一個(gè)匹配條件,第二個(gè)處理動(dòng)作,我們通過(guò)這兩個(gè)概念來(lái)解釋一下什么是iptables的規(guī)則。
????????在上面講解中我們提到了每一條”鏈"都是一個(gè)關(guān)卡,凡是要通過(guò)這個(gè)關(guān)卡就需要匹配這個(gè)關(guān)卡上面的規(guī)則,根據(jù)配規(guī)則來(lái)決定處理動(dòng)作。
????????舉個(gè)例子:大家都玩游戲,有一些關(guān)卡類游戲,就需要你完成了一些相應(yīng)的任務(wù),在通過(guò)關(guān)卡的時(shí)候才會(huì)通過(guò),到下一個(gè)關(guān)卡,否則不能到下一個(gè)關(guān)卡。那么要想通過(guò)關(guān)卡就需要滿足完成任務(wù)的"規(guī)則”,"完成任務(wù)就是一個(gè)匹配條件,完成之后就可以通過(guò)到下一個(gè)關(guān)卡,"通過(guò)"就是一個(gè)處理動(dòng)作,匹配條件加上處理動(dòng)作共同組成了規(guī)則。
匹配條件?
?處理動(dòng)作
?iptables常用的選項(xiàng)
![]()
? ? ? ? ?-t? ? ? ?????????指定表
? ? ? ? ?-j? ? ? ? ? ? ? ? 處理動(dòng)作 指定處理動(dòng)作
? ? ? ? ?--line-numbers? ?顯示規(guī)則的序號(hào)
? ? ? ? ? -v? ? ? ? ? ? ? ?顯示詳細(xì)信息
?iptables常用規(guī)則匹配
![]()
iptables配置
清理原有規(guī)則: # iptables -F(臨時(shí)清除) # iptables -nvL 增加規(guī)則 ?# iptables -t filter -I INPUT -s 192.168.100.134 -j DROP 修改(替換)規(guī)則 # iptables -t filter -R INPUT 1 -s 192.168.100.134 -j ACCEPT (替換規(guī)則一定要指明是第幾條規(guī)則,替換規(guī)則未指定唯一地址) 刪除規(guī)則 第一種 # iptables -D INPUT 1 (按照規(guī)則號(hào)刪除) 第二種 # iptables -D INPU -s 192.168.100.134 -j ACCEPT (按照匹配規(guī)則刪除) 保存規(guī)則 centos6 或者是7上禁用firewalld 安裝iptables-services后 # service iptables save 保存的文件 /etc/sysconfig/iptables # iptables-save > /etc/sysconfig/iptables (這個(gè)命令保存規(guī)則到其他文件(除了/etc/sysconfig/iptables)可以通過(guò)iptables-restore恢復(fù)回來(lái)) 恢復(fù)規(guī)則 # iptables-restore < /etc/sysconfig/iptables 修改鏈的默認(rèn)策略 慎重使用 可以采用別的方式實(shí)現(xiàn)白名單 # iptables -P INPUT DROP (設(shè)置了DROP后ssh就不能連接了)
? ? ? ?iptables執(zhí)行規(guī)則時(shí),是從從規(guī)則表中從上至下順序執(zhí)行的,如果沒(méi)遇到匹配的規(guī)則,就一條一條往下執(zhí)行,如果遇到匹配的規(guī)則后,那么就執(zhí)行本規(guī)則,執(zhí)行后根據(jù)本規(guī)則的動(dòng)作 (accept, reject, log等),決定下一步執(zhí)行的情況。
????????先規(guī)定表(-t)再用選項(xiàng)給哪一條鏈制定規(guī)則,再用-s/-d匹配源地址/目標(biāo)地址,再用選項(xiàng)設(shè)置處理動(dòng)作。
????????我們?cè)谔砑觟ptables規(guī)則的時(shí)候,一般會(huì)同時(shí)使用協(xié)議類型(-p)和端口號(hào)(-dport/sport)。只有這樣添加的規(guī)則,iptables才會(huì)知道,我們要對(duì)哪個(gè)應(yīng)用程序的通訊進(jìn)行放行或者禁行的操作。
????????如果不指定協(xié)議,則默認(rèn)為所有協(xié)議。
基本匹配條件總結(jié)
#匹配源地址 # iptables -t filter -I INPUT -s 192.168.100.142 -j REJECT # iptables -t filter -I INPUT -s 192.168.100.142,192.168.100.143 -j DROP (指定多個(gè)地址源時(shí)每個(gè)IP用逗號(hào)隔開) # iptables -t filter -I INPUT -s 192.168.100.0/24 -j DROP (指定一個(gè)網(wǎng)段) # iptables -t filter -I INPUT ! -s 192.168.100.0/24 -j DROP (指定除了這個(gè)網(wǎng)段的數(shù)據(jù)包,其他IP的數(shù)據(jù)包均丟棄) #匹配目標(biāo)地址 # iptables -t filter -I OUTPUT -d 192.168.100.142 -j REJECT # iptables -t filter -I INPUT -d 192.168.100.142,192.168.100.143 -j DROP # iptables -t filter -I INPUT -d 192.168.100.0/24 -j DROP # iptables -t filter -I INPUT ! -d 192.168.100.0/24 -j DROP #匹配協(xié)議 # iptables -t filter -I INPUT -p tcp -d 192.168.100.142 -j REJECT # iptables -t filter -I INPUT -p udp -d 192.168.100.142,192.168.100.143 -j DROP # iptables -t filter -I INPUT -p tcmp -d 192.168.100.0/24 -j DROP (匹配端口時(shí)一定要加協(xié)議) #匹配入口網(wǎng)卡 # iptables -t filter -I INPUT -p tcp -i ens33 -j REJECT # iptables -t filter -I INPUT -p tcp -i eth0 -j REJECT
擴(kuò)展匹配條件總結(jié)
(-p指定協(xié)議 -m表明它是是擴(kuò)展協(xié)議) -p tcp -m tcp --sport 可以指定一個(gè),或者用冒號(hào)指定連續(xù)端口 -p tcp -m tcp --dport 可以指定一個(gè),或者用冒號(hào)指定連續(xù)端口 -p tcp -m multiport --sport 可以指定離散端口,用逗號(hào)分隔 -p tcp -m multiport --dport 可以指定離散端口,用逗號(hào)分隔
# iptables -t filter -I INPUT -s 192.168.100.142 -p tcp -m tcp --dport 22 -j REJECT # iptables -t filter -I INPUT -d 192.168.100.142 -p tcp -m tcp --sport 22:80 -j REJECT (拒絕連續(xù)端口) # iptables -t filter -I INPUT -d 192.168.100.142 -p tcp -m tcp --sport 22: -j REJECT (指定從22開始的連續(xù)端口) # iptables -t filter -I INPUT -d 192.168.100.142 -p tcp -m tcp --sport :80 -j REJECT (指定到80結(jié)束的連續(xù)端口) # iptables -t filter -I INPUT -d 192.168.100.142 -p tcp -m tcp ! --sport 22:80 -j REJECT # iptables -t filter -I INPUT -s 192.168.100.142 -p tcp -m multiport --dport 22,80 -j REJECT (拒絕離散端口) # iptables -t filter -I INPUT -d 192.168.100.142 -p tcp -m multiport --sport 22,80 -j REJECT
(補(bǔ)充)selinux
SELinux誕生的初衷是防止權(quán)限和資源的濫用
1、工作模式
SELinux 有三種工作模式,分別是:
- enforcing:強(qiáng)制模式。違反 SELinux 規(guī)則的行為將被阻止并記錄到日志中。
- permissive:寬容模式。違反 SELinux 規(guī)則的行為只會(huì)記錄到日志中。一般為調(diào)試用。
- disabled:關(guān)閉 SELinux。
????????SELinux 工作模式可以在 /etc/sysconfig/selinux 中設(shè)定。
????????如果想從 disabled 切換到 enforcing 或者 permissive 的話,需要重啟系統(tǒng)。反過(guò)來(lái)也一樣。
????????enforcing 和 permissive 模式可以通過(guò) setenforce 1|0 命令快速切換。
????????需要注意的是,如果系統(tǒng)已經(jīng)在關(guān)閉 SELinux 的狀態(tài)下運(yùn)行了一段時(shí)間,在打開 SELinux 之后的第一次重啟速度可能會(huì)比較慢。因?yàn)橄到y(tǒng)必須為磁盤中的文件創(chuàng)建安全上下文。
????????一般會(huì)禁用selinux,因?yàn)榭赡艹霈F(xiàn)莫名其妙的報(bào)錯(cuò)
2、如何禁用
1、編寫?/etc/sysconfig/selinux文件
[root@localhost ~]# vi /etc/sysconfig/selinux
將高亮顯示改為disabled
2、重啟虛擬機(jī),查看現(xiàn)在的狀態(tài)
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-447547.html
?
?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-447547.html
到了這里,關(guān)于【Linux安全管理】iptables配置與iptables基本用法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!