Linux防火墻配置及iptables與firewalld的使用解讀
更新時間:2025年01月13日 10:18:29 作者:火苗06
防火墻是一種網(wǎng)絡安全設備,通過規(guī)則控制進出網(wǎng)絡的訪問行為,它分為硬件防火墻和軟件防火墻兩大類,iptables是Linux系統(tǒng)中用于配置防火墻的工具,具有4個表和5個鏈,firewall命令用于配置和管理防火墻,有drop、block、public、external、dmz等不同的區(qū)域配置
1 防火墻定義
- 防火墻是一種高級訪問控制設備,置于不同網(wǎng)絡安全域之間,他通過相關的安全策略來控制(允許,拒絕,監(jiān)視,記錄)進出網(wǎng)絡的訪問行為。
- 防火墻是一組規(guī)則,當數(shù)據(jù)包進出受保護的網(wǎng)絡區(qū)域時,進出內(nèi)容(特別是關于其來源、目標和使用的協(xié)議等信息)會根據(jù)防火墻規(guī)則進行檢測,以確定是否允許其通過。
2 防火墻分類
- 硬件防火墻
- 軟件防火墻
- 主機防火墻
- 網(wǎng)絡防火墻
3 iptables
3.1 iptables 四表五鏈
3.1.1 功能(表)
filter
:防火墻過濾數(shù)據(jù)包,默認表nat
:網(wǎng)絡地址轉(zhuǎn)換(network address translation)mangle
:拆分,做出修改raw
:關閉nat表上啟用的連接追蹤功能
3.1.2 鏈
PREROUTING (previous routing路由前) INPUT OUTPUT FORWARD POSTROUTING (postpone routing路由后)
3.1.3 功能(表)中的鏈
filter:INPUT,FORWARD,OUTPUT nat:PREROUT(DNAT),INPUT,OUTPUT,POSTROUTING(SNAT) mangle:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING raw:PREROUTING,OUTPUT
3.2 優(yōu)先級
策略應用優(yōu)先級:raw,mangle,nat,filter 策略常用優(yōu)先級:filter,nat,mangle,raw
3.3 iptables 命令的使用
iptables工具: -t:指定表 -L:查看規(guī)則 -n:以數(shù)字形式查看 -F:清空所有規(guī)則 -X:清除自定義鏈 -P:指定鏈的默認規(guī)則 -j:指定要執(zhí)行的動作 ACCEPT:接受 DROP:丟棄 REJECT:拒絕 DNAT:目標地址轉(zhuǎn)換 SNAT:源地址轉(zhuǎn)換 -A:append追加策略 -s:source源ip(網(wǎng)段) -d:destination目標ip(網(wǎng)段) -I:insert插入策略 -p:protocol指定協(xié)議 --dport:指定目標端口 --sport:指定源端口 --line-num:顯示規(guī)則行號 -D:按照行號刪除某鏈中的規(guī)則 -i:指定網(wǎng)卡
3.3.1 filter表
清空所有策略: iptables -F 清空自定義鏈: iptables -X 自定義一個鏈 iptables -N old_forward 修改自定義鏈的名字 iptables -E old_forward new_forward 把filter中forward鏈的默認策略打成drop iptables -P FORWARD DROP 查看filter表中的策略并且顯示行數(shù): iptables -L -n --line-number 刪除filter表中forward鏈中的第9條策略: iptables -t filter -D FORWARD 9 #限制所有主機(0.0.0.0)拒絕ping本主機 iptables -t filter -A INPUT -s 0.0.0.0 -d 192.168.254.24 -p icmp -j REJECT #顯示所有主機(0.0.0.0)拒絕通過ens33網(wǎng)卡ping本主機 iptables -t filter -A INPUT -d 192.168.254.24 -i ens33 -p icmp -j REJECT #只允許10.159.32.65訪問本地80端口 iptables -I INPUT -p TCP --dport 80 -j DROP //拒絕所有機器訪問 iptables -I INPUT -s 10.159.32.65-p TCP --dport 80 -j ACCEPT //對某個ip放行 或 iptables -P INPUT -j DROP //設置INPUT鏈的默認規(guī)則 iptables -I INPUT -s 10.159.32.65-p TCP --dport 80 -j ACCEPT //對某個ip放行
3.3.2 nat表
##開啟轉(zhuǎn)發(fā)模式 ╭─root@localhost.localdomain ~ ╰─? cat /proc/sys/net/ipv4/ip_forward 0 ╭─root@localhost.localdomain ~ ╰─? echo 1 > /proc/sys/net/ipv4/ip_forward 或者 # vim /etc/sysctl.conf ... net.ipv4.ip_forward = 1 ... # sysctl -p
#源地址為192.168.250.0網(wǎng)段的ip地址經(jīng)過防火墻都轉(zhuǎn)換成192.168.31.100這個ip地址(SNAT:源地址轉(zhuǎn)換) iptables -t nat -A POSTROUTING -s 192.168.250.0/24 -d 192.168.250.0/24 -j SNAT --to-source 192.168.31.100 ------------------------------------------------------- #訪問目標地址為192.168.31.200這個機器并且是tcp協(xié)議80號端口的都轉(zhuǎn)發(fā)給192.168.250.1(DNAT目標地址轉(zhuǎn)換) iptables -t nat -A PREROUTING -d 192.168.31.200 -p tcp --dport 80 -j DNAT --to-destination 192.168.250.1:80 ------------------------------------------------------- #訪問目標地址為192.168.31.200這個機器并且是tcp協(xié)議80號端口的都轉(zhuǎn)發(fā)給192.168.31.100的9999號端口(DNAT目標端口地址轉(zhuǎn)換) iptables -t nat -A PREROUTING -d 192.168.31.200 -p tcp --dport 80 -j DNAT --to-destination 192.168.31.100:9999
4 firewall相關配置使用
firewall-cmd --state #查看狀態(tài) firewall-cmd --list-all #查看過濾的列表信息 firewall-cmd --add-port=80/tcp --permanent #永久添加一個80端口(重啟生效) firewall-cmd --remove-port=4444/tcp #移除4444/tcp端口 firewall-cmd --reload #重新加載firewall
firewall 有zone的概念
[root@node1 ~]# firewall-cmd --get-zones work drop internal external trusted home dmz public block
drop
(丟棄) 任何接收到的網(wǎng)絡數(shù)據(jù)都被丟棄,沒有任何回復,公有發(fā)送出去的網(wǎng)絡連接block
(限制)任何接收的網(wǎng)絡連接都被IPV4 的icmp-host-prohibited信息和IPV6的icmp6-adm-prohibited信息所拒絕public
(公共) 在公共區(qū)域內(nèi)使用,不能相信網(wǎng)絡內(nèi)的其它計算機不會對你的計算機造成危害,只接收經(jīng)過選取的連接external
(外部)特別是為路由器啟用了偽裝功能的外部網(wǎng)。你不能信任來自網(wǎng)絡的其它計算,不能信任它們不會對你的計算機造成危害,只能接收經(jīng)過選擇的連接。dmz
(非軍事區(qū)) 用于你的非軍事區(qū)的電腦 ,此區(qū)域內(nèi)可公開訪問,可以有限的進入你的內(nèi)部網(wǎng)絡,僅接收經(jīng)過選擇的連接。work
(工作) 可以基本信任網(wǎng)絡內(nèi)的其它計算機不會危害你的計算機,僅接收經(jīng)過選擇的連接。home
(家庭) 用于家庭網(wǎng)絡,可以基本信任網(wǎng)絡內(nèi)的其它計算機不會危害你的計算機,僅接收經(jīng)過選擇的連接。internal
(內(nèi)部)用于內(nèi)部網(wǎng)絡,可以基本信任網(wǎng)絡內(nèi)的其它計算機不會危害你的計算機,僅接收經(jīng)過選擇的連接trusted
(信任) 可接收所有的網(wǎng)
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Linux加入windows ad域步驟詳解(winbindsamba方案)
本文主要實驗centos加入windows AD的方法,大家參考使用2013-12-12Apache?Flink?如何保證?Exactly-Once?語義(其原理分析示例)
Apache?Flink?是一個流處理和批處理的開源平臺,它提供了豐富的語義保證,其中之一就是?Exactly-Once?語義,本文將深入探討?Flink?是如何保證?Exactly-Once?語義的,包括其原理分析和相關示例,感興趣的朋友跟隨小編一起看看吧2024-06-06