這篇文章主要介紹了linux下軟件防火墻iptables的示例分析,具有一定借鑒價(jià)值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
創(chuàng)新互聯(lián)從2013年成立,先為晉江等服務(wù)建站,晉江等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢(xún)服務(wù)。為晉江企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
防火墻是用戶限制某些ip或用戶對(duì)其主機(jī)的訪問(wèn)。防火墻從種類(lèi)上分為兩大類(lèi),硬件防火墻以及軟件防火墻。軟件防火墻主要是對(duì)數(shù)據(jù)包進(jìn)行過(guò)濾,硬件防火墻主要用來(lái)對(duì)惡意攻擊的防護(hù)以及數(shù)據(jù)包的過(guò)濾,比如DDOS攻擊。這里,我們來(lái)講解linux下的軟件防火墻——iptables。
iptables與firewalld
在centOS6下,默認(rèn)的軟件防火墻是iptables,而到了centos7,則是firewalld。它們之間有什么聯(lián)系了,其實(shí)firewalld就是在原iptables上新封裝成的一個(gè)軟件。
學(xué)習(xí)iptables時(shí),建議先關(guān)閉firewalld,并開(kāi)啟iptables
yum install iptables-services systemctl stop firewalld systemctl start iptables
iptables的表和鏈
iptables的不同的表代表著不同的功能,默認(rèn)有4個(gè)表
filter(過(guò)濾器) nat(地址轉(zhuǎn)換) mangle raw
不同的表下面,有著自己的規(guī)則鏈:
filter(INPUT/OUTPUT/FORWARD)
nat(prerouting/output/postouting)
這些鏈代表的意義如下:
INPUT鏈——進(jìn)來(lái)的數(shù)據(jù)包應(yīng)用此規(guī)則鏈中的規(guī)則
OUTPUT鏈——外出的數(shù)據(jù)包應(yīng)用此規(guī)則鏈中的規(guī)則
FORWARD鏈——轉(zhuǎn)發(fā)數(shù)據(jù)包時(shí)應(yīng)用此規(guī)則鏈中的規(guī)則
PREROUTING鏈——對(duì)數(shù)據(jù)包作路由選擇前應(yīng)用此鏈中的規(guī)則
POSTROUTING鏈——對(duì)數(shù)據(jù)包作路由選擇后應(yīng)用此鏈中的規(guī)則
iptables的規(guī)則查看與清除
規(guī)則查看
用法示例:iptables [-t tables] -L [-nv]
選項(xiàng)與參數(shù):
-t后接表類(lèi)型,省略該選項(xiàng),則默認(rèn)為filter表。
-L列出當(dāng)前表的規(guī)則
-n 不進(jìn)行域名與ip反查
-v 顯示更多信息
# 查看filter表的規(guī)則 # iptables -nvL Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 67 4444 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 0 0 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 2 286 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT 38 packets, 4664 bytes) pkts bytes target prot opt in out source destination # 查看nat表的規(guī)則 iptables -t nat -L -nv
鏈下的規(guī)則選項(xiàng)的含義如下:
target:代表進(jìn)行的操作,ACCEPT放行、drop丟棄、reject拒絕
prot:代表使用的數(shù)據(jù)包協(xié)議,有tcp、udp以及icmp
opt:說(shuō)明信息
source:對(duì)某來(lái)源主機(jī)進(jìn)行限制
destination:對(duì)某目標(biāo)主機(jī)進(jìn)行限制
上面顯示的INPUT鏈的5條規(guī)則含義如下:
只要數(shù)據(jù)包的狀態(tài)為RELATED,ESTABLISHED,都接受
只要是icmp包都接受
只要是本地回環(huán)網(wǎng)卡,所有數(shù)據(jù)都接受
只要是發(fā)送給22端口的主動(dòng)式連接的TCP數(shù)據(jù)包都接受。
拒絕所有的數(shù)據(jù)包
清楚iptables的規(guī)則
默認(rèn)安裝centOS7后,系統(tǒng)就已經(jīng)有許多iptables的規(guī)則,這里教大家如何去清除這些規(guī)則。
用法示例:iptables [-t tables] [-FXZ]
選項(xiàng)與參數(shù):
-F 清理所有已定制的規(guī)則
-X 清理所有用戶自定義的規(guī)則
-Z 將所有的統(tǒng)計(jì)計(jì)數(shù)置零
# iptables -F # iptables -X # iptables -Z
查看具體的規(guī)則
使用iptables-save可以查看具體的規(guī)則
用法:iptables-save [-t tables]
# iptables-save -t filter # Generated by iptables-save v1.4.21 on Sat Nov 14 21:51:56 2020 *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [56:7196] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited # Completed on Sat Nov 14 21:51:56 2020
定義默認(rèn)策略
當(dāng)我們清楚完規(guī)則后,就只剩下默認(rèn)的策略了。什么是默認(rèn)的策略,就是當(dāng)不滿足我們?nèi)魏我粭l規(guī)則時(shí),就采用默認(rèn)規(guī)則。默認(rèn)的策略有ACCEPT(接受數(shù)據(jù)包)和DROP(丟棄數(shù)據(jù)包)
用法:iptables [-t tables] -P [INPUT|OUTPUT|FORWARD……] [ACCEPT|DROP]
現(xiàn)在,我們嘗試將filter的INPUT鏈的默認(rèn)修改為DROP、OUTPUT及FORWARD鏈修改為ACCETP
iptables -t filter -P INPUT DROP # 注意,該命令敲完后,你的終端就可能會(huì)斷開(kāi)連接了 iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享linux下軟件防火墻iptables的示例分析內(nèi)容對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,遇到問(wèn)題就找創(chuàng)新互聯(lián),詳細(xì)的解決方法等著你來(lái)學(xué)習(xí)!