溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

防火墻(firewalld和iptables)

發(fā)布時(shí)間:2020-07-09 20:44:07 來源:網(wǎng)絡(luò) 閱讀:674 作者:無雙戰(zhàn)績(jī) 欄目:云計(jì)算
防火墻:
保證數(shù)據(jù)的安全性是繼數(shù)據(jù)可用性之后的最為重要的一項(xiàng)工作

防火墻作為公網(wǎng)和內(nèi)網(wǎng)之間的保護(hù)屏障

防火墻種類:
硬件防火墻:網(wǎng)關(guān)服務(wù)器
軟件防火墻:裝在操作系統(tǒng)中的軟件

防火墻管理工具
主要功能:依據(jù)策略對(duì)穿越防火墻的自身流量進(jìn)行過濾。

在centos和RHEL系統(tǒng)中:
firewalld:7版本以上(centos7.x,RHEL7.x)
iptables:6版本(centos6.x,RHEL6.x)

注:iptables和firewalld都不是真正的防火墻,他們都只是定義防火墻策略的防火墻管理工具而已,或者說,他們只是一種服務(wù)

firewalld和iptables的區(qū)別:
iptables服務(wù)會(huì)把配置好的防火墻策略交給內(nèi)核層的
netfilter網(wǎng)絡(luò)過濾器來處理

firewalld服務(wù)會(huì)把配置好的防火墻策略交給內(nèi)核層的nftables包過濾框架來處理
firewalld和iptables的區(qū)別:
firewalld iptables
配置文件 /usr/lib/firewalld/ 和 /etc/firewalld/ /etc/sysconfig/iptables
對(duì)規(guī)則的修改 不需要全部刷新策略,不丟失現(xiàn)行連接 需要全部刷新策略,丟失連接
防火墻類型 動(dòng)態(tài)防火墻 靜態(tài)防火墻
第一個(gè)防火墻管理工具——firewalld

centos1版本以上默認(rèn)使用的防火墻配置管理工具

擁有基于CLI(命令行界面)和GUI(圖形化用戶界面)兩種管理方式。

定義:基于firewalld服務(wù)的防火墻會(huì)查詢每個(gè)網(wǎng)絡(luò)數(shù)據(jù)包的頭部。
依據(jù)頭部中包含的信息,可以配置規(guī)則來過濾每個(gè)數(shù)據(jù)包。
通過網(wǎng)絡(luò)發(fā)送信息的過程:
信息在通過網(wǎng)絡(luò)發(fā)送之前,會(huì)被分解成更小的單元(稱為數(shù)據(jù)包)。
數(shù)據(jù)包:數(shù)據(jù)類型、源ip地址、目標(biāo)ip地址,還有源端口。
數(shù)據(jù)包通過網(wǎng)絡(luò)到達(dá)目的地,防火墻會(huì)檢查每一個(gè)數(shù)據(jù)包的頭部的字段,按照已配置好的規(guī)則,去采取以下動(dòng)作:
1、允許數(shù)據(jù)包進(jìn)入系統(tǒng)
2、如果當(dāng)前系統(tǒng)時(shí)網(wǎng)絡(luò)間的網(wǎng)關(guān)或者路由器,則將數(shù)據(jù)包轉(zhuǎn)發(fā)給其他系統(tǒng)
3、對(duì)數(shù)據(jù)包的傳輸速率進(jìn)行限制
4、拒絕數(shù)據(jù)包,并給原始ip地址發(fā)送一條消息
5、丟棄數(shù)據(jù)包,并且不發(fā)送任何類型的信息。

-----------------------以上都是有關(guān)firewalld的基本概念-------------------------------

相較于傳統(tǒng)的防火墻管理工具,firewalld支持動(dòng)態(tài)更新技術(shù),并加入了區(qū)域(zone)的概念

簡(jiǎn)單來說,firewalld基于區(qū)域,區(qū)域就是firewalld預(yù)先準(zhǔn)備了幾套防火墻策略的結(jié)合(策略模板),用戶可以根據(jù)生產(chǎn)環(huán)境場(chǎng)景的不同選擇合適的策略集合
常見區(qū)域:
drop(丟棄) 任何接收的網(wǎng)絡(luò)數(shù)據(jù)包都被丟棄,沒有任何回復(fù)。僅能有發(fā)送出去的網(wǎng)絡(luò)連接
block(限制) 任何接收的網(wǎng)絡(luò)連接都被IPv4的icmp-host-prohibited信息和IPv6的icmp6-adm-prohited信息所拒絕
public(公共) 在公共區(qū)域內(nèi)使用,不能相信網(wǎng)絡(luò)的其他計(jì)算機(jī)不會(huì)對(duì)寧的計(jì)算機(jī)造成危害,只能接收經(jīng)過選取的連接
external(外部) 特別是為路由器啟用了偽裝功能的外部網(wǎng)。您不能信任來自網(wǎng)絡(luò)的其他計(jì)算,不能相信他們不會(huì)對(duì)您的計(jì)算機(jī)造成危害,只能接收經(jīng)過選擇的連接
dmz(非軍事區(qū)) 用于您的非軍事區(qū)內(nèi)的電腦,此區(qū)域內(nèi)可公開訪問,可以有限地進(jìn)入您的內(nèi)部網(wǎng)絡(luò),僅僅接收經(jīng)過選擇的連接
work(工作) 用于工作區(qū)。您可以基本相信網(wǎng)絡(luò)內(nèi)的其他電腦不會(huì)危害您的電腦。僅僅接收過選擇的連接
home(家庭) 用于家庭網(wǎng)絡(luò)。您可以基本信任網(wǎng)絡(luò)內(nèi)的其他計(jì)算機(jī)不會(huì)危害您的計(jì)算機(jī)。僅僅接收經(jīng)過選擇的連接
internal(內(nèi)部) 用于內(nèi)部網(wǎng)絡(luò)。您可以基本上信任網(wǎng)絡(luò)內(nèi)的其他計(jì)算機(jī)。僅僅接收經(jīng)過限制的連接
trusted(信任) 可接收所有的網(wǎng)絡(luò)連接
9大區(qū)域:trusted  home  internal  work  public  external  dmz  block  drop 
常見區(qū)域元素:
interfaces(接口)網(wǎng)卡 與區(qū)域相關(guān)的網(wǎng)絡(luò)接口
sources(源地址) 與區(qū)域相關(guān)的源ip地址
services(服務(wù)) 允許通過區(qū)域的入戰(zhàn)服務(wù)
ports(端口) 允許通過區(qū)域的目標(biāo)端口
protocols(協(xié)議) 目標(biāo)端口的協(xié)議,tcp、udp
masquerade(偽裝) 指定是否啟用源網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)
forward-ports(轉(zhuǎn)發(fā)端口) 端口轉(zhuǎn)發(fā)規(guī)則(將發(fā)送給本地端口的流量映射到同一臺(tái)或另一臺(tái)主機(jī)上的其他端口上)
source-ports(源端口)
icmp-blocks(ICMP堵塞) 用于堵塞ICMP信息
rich rules(福規(guī)則) 寫高級(jí)的防火墻規(guī)則
注:如果使用多個(gè)區(qū)域的話,必須有關(guān)聯(lián)源地址或接口
firewalld擁有兩種配置模式:
1、運(yùn)行時(shí)配置(runtime)  當(dāng)前生效模式,重啟會(huì)生效
2、永久配置模式(permanent) 不會(huì)立即生效,只會(huì)重新啟動(dòng)或者重加載才會(huì)生效。
firewalld配置方法:
1、firewall-cmd  命令行,終端管理工具
2、firewall-config  圖形化界面工具
3、/etc/firewalld中的配置文件
/etc/firewalld:用戶自定義配置文件存放目錄,可以在、/usr/lib/firewalld中拷貝模板,優(yōu)先讀取
/usr/bil/firewalld:默認(rèn)配置文件
firewalld操作:
查看:
firewall-cmd --get-區(qū)域元素名        //查看指定的元素有哪些
firewall-cmd --get-default-zone      //查看firewall默認(rèn)區(qū)域
firewall-cmd --set-default-zone=區(qū)域名     //設(shè)置firewalld默認(rèn)區(qū)域
firewalld默認(rèn)區(qū)域是public區(qū)域
firewall-cmd --get-zones          //列出所有fiewalld區(qū)域
注:firewall-cmd  是firewalld防火墻配置管理工具CLI版本使用的命令
永久生效:
firewall-cmd --set-default-zone=區(qū)域名 --permanent
firewall-cmd --get-active-zone      //查看當(dāng)前正在運(yùn)行的區(qū)域

網(wǎng)卡
firewall-cmd --zone=work --add-interface=網(wǎng)卡名稱      //添加一塊網(wǎng)卡到指定區(qū)域中

firewall-cmd --get-zone-of-interfce=網(wǎng)卡名稱                //查看指定網(wǎng)卡所在區(qū)域

firewall-cmd --zone=work --change-interface=網(wǎng)卡名稱    //為指定區(qū)域更改網(wǎng)卡

firewall-cmd --zone=work --remove-interface=網(wǎng)卡名稱    //為指定區(qū)域刪除某塊網(wǎng)卡

firewall-cmd --zone=區(qū)域名 --query-unterface=網(wǎng)卡名稱    //判斷指定區(qū)域中有沒有該網(wǎng)卡

firewall-cmd --list-all-zones        //查看所有區(qū)域里面的詳細(xì)信息

firewall-cmd --zone=區(qū)域 --list-all   //   查看指定區(qū)域的詳細(xì)信息

firewall-cmd --list-all     當(dāng)沒有 --zone的選項(xiàng),查看的是默認(rèn)區(qū)域中詳細(xì)信息

源ip地址:
firewall-cmd --zone=work --add-source=源ip地址     為指定區(qū)域添加源ip地址
firewall-cmd --zone=work --remove-source=源ip地址       為指定區(qū)域刪除ip地址
寫一個(gè)富規(guī)則,規(guī)則內(nèi)容為:將來自192.168.80.0/24的訪問流量,從端口的80端口轉(zhuǎn)發(fā)到本地的25端口。
firewall-cmd  --add-rich-rule='rule family=ipv4 source address=192.168.80.0/24 forward-port port=80 protocol=tcp to-port=25' --permanent

firewalld防火墻富規(guī)則,規(guī)則內(nèi)容為:將來自192.168.10.0/24的訪問流量,從端口的8080端口轉(zhuǎn)發(fā)到本地的5423端口
firewall-cmd --add-rich-rule=’rule family=ipv4 source address=192.168.10.0/24 forward-port port=8080 protocol=tcp toport=5423’ --permanent

firewalld防火墻富規(guī)則,規(guī)則內(nèi)容為:允許來自192.168.80.0/24的流量訪問http服務(wù)
firewall-cmd --add-rich-rule=’rule family=ipv4 source address=192.168.80.0/24 service name=http ACCEPT’

firewalld防火墻富規(guī)則,規(guī)則內(nèi)容為:拒絕來自192.168.90.0/24的流量訪問端口3260.
firewall-cmd --add-rich-rule=’rule family=ipv4 source address=192.168.90.0/24 port port=3260 protocol=tcp drop’

防火墻firewalld,將80端口,轉(zhuǎn)換為2000端口:
firewall-cmd  --add-forward-port=port=80:proto=tcp:to-port=2000  --permanent
在同一臺(tái)服務(wù)器中端口轉(zhuǎn)發(fā):
firewall-cmd --add-forward-port=port=源端口:proto=協(xié)議:toport=目的端口

firewall-cmd --add-forward-port=port=8000:proto=tcp:toport=80

在不同服務(wù)器上端口轉(zhuǎn)發(fā):
firewall-cmd --add-forward-port=port=源端口:proto=協(xié)議:toport=目的端口:toaddr=目標(biāo)服務(wù)器IP地址

192.168.80.101:8000相當(dāng)于訪問192.168.80.101:80

例子:
192.168.80.105
firewall-cmd --add-forward-port=port=8000:proto=tcp:toport=80:toaddr=192.168.80.100
永久打開轉(zhuǎn)發(fā)功能:
方法一:(centos6和7)
echo 1 > /proc/sys/net/ipv4/ip_forward
方法二:(centos7)
vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p //生效
iptables防火墻富規(guī)則:
1、讓內(nèi)網(wǎng)通過外網(wǎng)卡上網(wǎng)
方法一:
iptables -t nat -A POSTROUTING -s 192.168.80.0/24 -o ens37 -j SNAT --to 192.168.90.100
方法二:
iptables -t nat -A POSTROUTING -s 192.168.80.100 -o ens37 -j SNAT --to 192.168.90.100

注:192.168.80.100是內(nèi)網(wǎng)卡ip地址
       192.168.90.100是外網(wǎng)卡ip地址
客戶端和內(nèi)網(wǎng)服務(wù)器必須都要指定網(wǎng)關(guān),否則無效
2、當(dāng)外部客戶端訪問外部地址(90.100)時(shí),服務(wù)器將請(qǐng)求轉(zhuǎn)發(fā)給內(nèi)網(wǎng)服務(wù)器(80.102)
iptables -t nat -A PREROUTING -i ens33 -d 192.168.90.100 -p tcp --dport 80 -j DNAT --to 192.168.80.102

注:同樣客戶端和內(nèi)網(wǎng)服務(wù)器都需要網(wǎng)關(guān)
iptables策略,訪問192.168.90.100的時(shí)候,訪問的是192.168.80.101

iptables -t nat -A PREROUTING -i ens32 -d 192.168.90.100 -j DNAT --to-destination 192.168.80.101
備份保存:iptables-save > /opt/a.txt
還原:iptables-restore < /opt/a.txt
iptables -nL --line              //查看 iptables 當(dāng)前所有規(guī)則的命令
請(qǐng)求或禁止來自 10.0.0.188 ip 地址訪問 80 端口的請(qǐng)求
iptables -A INPUT -s 10.0.0.188 -p tcp --dport 80 -j DROP/ACCEPT

實(shí)現(xiàn)把訪問 10.0.0.8:80 的請(qǐng)求轉(zhuǎn)到 172.16.1.17:80
iptables -t nat -A PREROUTING -i ens32 -d 10.0.0.8 -p tcp --dport 80 -j DNAT --to-destination 172.16.1.17:80

實(shí)現(xiàn) 192.168.80.0/24 段所有主機(jī)通過 10.0.0.8 外網(wǎng) IP 共享上網(wǎng)。
iptables -t nat -A POSTROUTING -s 192.168.80.0/24 -o ens32 -j SNAT --to 10.0.0.8

禁止ping本機(jī),但是本機(jī)可以ping通其它主機(jī)
iptables -A INPUT -p icmp --icmp-type 8 -j DROP
iptables -A INPUT -p icmp --icmp-type 0 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type 3 -j ACCEPT
iptables -A INPUT -p icmp -j DROP

iptables防火墻規(guī)則:當(dāng)一個(gè)公網(wǎng)主機(jī)去訪問 服務(wù)器的外網(wǎng)口公網(wǎng)地址(80.182)的時(shí)候,服務(wù)器把請(qǐng)求轉(zhuǎn)發(fā)給內(nèi)網(wǎng)真正提供服務(wù)的內(nèi)網(wǎng)服務(wù)器(90.181)。
iptables -t nat -A PREROUTING -i ens33 -d 192.168.80.182 -j DNAT --to 192.168.90.181 

實(shí)現(xiàn)172.16.1.0/24段所有主機(jī)通過124.32.54.26外網(wǎng)IP共享上網(wǎng)。
iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -o ens32 -j SNAT --to 124.32.54.26

將來自192.168.10.0/24的數(shù)據(jù),其源地址轉(zhuǎn)換為192.168.90.100
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o ens34 -j SNAT --to-source 192.168.90.100

iptables策略,訪問192.168.90.100的時(shí)候,訪問的是192.168.80.101
iptables -t nat -A PREROUTING -i ens32 -d 192.168.90.100 -j DNAT --to-destination 192.168.80.101

iptables防火墻規(guī)則: 拒絕轉(zhuǎn)發(fā)源地址是80網(wǎng)段的,目的地址是192.168.90.100,且協(xié)議是TCP21端口的數(shù)據(jù)包。
iptables -A INPUT -s 192.168.80.0/24 -d 192.168.90.100 -p tcp --dport 21 -j REJECT

拒絕192.168.0.0/24網(wǎng)段的1024-65534的源端口訪問SSH
iptables -A INPUT -p tcp -s 192.168.0.0/24 --sport 1024-65534 --dport ssh -j REJECT

寫一個(gè)防火墻配置腳本,只允許遠(yuǎn)程主機(jī)訪問本機(jī)的80端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -P INPUT DROP

拒絕源地址是80網(wǎng)段的,目的地址是90網(wǎng)段的,且協(xié)議是TCP的21端口的數(shù)據(jù)包。
iptables -I FORWARD -s 192.168.80.0/24 -d 192.168.90.0/24 -p tcp --dport 21 -j DROP/REJECT

禁止轉(zhuǎn)發(fā)源IP地址位于192.168.80.21與192.168.80.28之間的TCP數(shù)據(jù)包。
iptables -A FORWARD -m iprange --src-range 192.168.80.21-192.168.80.28 -p tcp -j DROP/REJECT

允許192.168.80.20到192.168.80.100的ip地址主機(jī)的ICMP流量能夠訪問本服務(wù)器
iptables -A INPUT -p icmp -m iprange --src-range 192.168.80.20-192.168.80.100 -j ACCEPT 
iptables的匹配類型:
通用匹配:協(xié)議-p,-s,-d,-i,-o
隱含匹配:--sport,--dport,TCP協(xié)議標(biāo)記,icmp類型
顯式匹配:多端口,mac地址,ip地址范圍,數(shù)據(jù)包狀態(tài)

iptables控制類型有哪些:
ACCEPT  允許
REJECT  拒絕
DROP    丟棄
LOG     記錄日志

iptables中規(guī)則、規(guī)則鏈、規(guī)則表的關(guān)系:
多條規(guī)則組成規(guī)則鏈,規(guī)則鏈在規(guī)則表中,規(guī)則鏈中設(shè)置默認(rèn)策略。
將nat的默認(rèn)策略設(shè)置為drop:
iptables -t nat -P INPUT DROP

刪除nat表OUTPUT鏈中的第5條策略:
iptables -t nat -D OUTPUT 5
iptables -t nat -F OUTPUT
向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI