Shell?iptales防火墻設(shè)置的方法步驟
一.Linux 防火墻
1.Linux包過(guò)濾防火墻概述
- Linux 系統(tǒng)的防火墻: IP信息包過(guò)濾系統(tǒng),它實(shí)際上由兩個(gè)組件netfilter 和 iptables組成
- 主要工作在網(wǎng)絡(luò)層,針對(duì)IP數(shù)據(jù)包。體現(xiàn)在對(duì)包內(nèi)的IP地址、端口、協(xié)議等信息的處理上
netfilter/iptables 關(guān)系
- netfiter: 屬于“內(nèi)核態(tài)” (Kernel Space,又稱為內(nèi)核空間)的防火墻功能體系
- 是內(nèi)核的一部分,由一些數(shù)據(jù)包過(guò)濾表組成,這些表包含內(nèi)核用來(lái)控制數(shù)據(jù)包過(guò)濾處理的規(guī)則集。
位于Linux內(nèi)核中的包過(guò)濾功能體系,稱為L(zhǎng)inux防火墻的“內(nèi)核態(tài)”
netfilter/iptables后期簡(jiǎn)稱為iptables。iptables是基于內(nèi)核的防火墻,其中內(nèi)置了 raw、mangle、 nat 和 filter四個(gè)規(guī)則表。表中所有規(guī)則配置后,立即生效,不需要重啟服務(wù)。
2.四表五鏈
- 規(guī)則表的作用:容納各種規(guī)則鏈
- 規(guī)則鏈的作用:容納各種防火墻規(guī)則
- 表里有鏈,鏈里有規(guī)則

四表
- raw表:確定是否對(duì)該數(shù)據(jù)包進(jìn)行狀態(tài)跟蹤。包含兩個(gè)規(guī)則鏈,OUTPUT、PREROUTING
- mangle表:修改數(shù)據(jù)包內(nèi)容,用來(lái)做流量整形的,給數(shù)據(jù)包設(shè)置標(biāo)記。包含五個(gè)規(guī)則鏈,INPUT、OUTEPUT、FORWARD、PREROUTING、POSTROUTING
- nat表:負(fù)責(zé)網(wǎng)絡(luò)地址轉(zhuǎn)換,用來(lái)修改數(shù)據(jù)包中的源、目標(biāo)IP地址或端口。包含三個(gè)規(guī)則鏈,OUTPUT、REROUTING、POSTROUTING
- filter表:負(fù)責(zé)過(guò)濾數(shù)據(jù)包,確定是否放行該數(shù)據(jù)包 (過(guò)濾)。包含三個(gè)規(guī)則鏈,INPUT、FORMARD、OUTPUT。
在 iptables 的四個(gè)規(guī)則表中,mangle 表和 raw 表的應(yīng)用相對(duì)較少。
五鏈
- INPUT:處理入站數(shù)據(jù)包,匹配目標(biāo)IP為本機(jī)的數(shù)據(jù)包
- OUTPUT:處理出數(shù)據(jù)包,一般不在此鏈上做配置
- FORWARD:處理轉(zhuǎn)發(fā)數(shù)據(jù)包,匹配流經(jīng)本機(jī)機(jī)的數(shù)據(jù)包
- PREROUTING:在進(jìn)行路由選擇前處理數(shù)據(jù)包,用來(lái)修改目的地址,用來(lái)做DNAT。相當(dāng)于把內(nèi)網(wǎng)服務(wù)器的IP和端口映射到路由器的外網(wǎng)IP和端口上
- POSTROUTING:在進(jìn)行路出選擇后處理數(shù)據(jù)包,用來(lái)修改源地址,用來(lái)做SNAT。相當(dāng)于內(nèi)網(wǎng)通過(guò)路出器NAT轉(zhuǎn)換功能實(shí)現(xiàn)內(nèi)網(wǎng)主機(jī)通過(guò)一個(gè)公網(wǎng)IP地址上網(wǎng)
數(shù)據(jù)包到達(dá)防火墻時(shí),規(guī)則表之間的優(yōu)先順序:
raw > mangle > nat > filter
3.規(guī)則鏈之間的匹配順序

主機(jī)型防火墻
入站數(shù)據(jù)(來(lái)自外界的數(shù)據(jù)包,且目標(biāo)地址是防火墻本機(jī)):
PREROUTING --> INPUT --> 本機(jī)的應(yīng)用程序
出站數(shù)據(jù)(從防火墻本機(jī)向外部地址發(fā)送的數(shù)據(jù)包):
本機(jī)的應(yīng)用程序 --> OUTPUT --> POSTROUTING
網(wǎng)絡(luò)型防火墻
轉(zhuǎn)發(fā)數(shù)據(jù)(需要經(jīng)過(guò)防火墻轉(zhuǎn)發(fā)的數(shù)據(jù)包) :
PREROUTING --> FORWARD -->POSTROUTING
4.規(guī)則鏈內(nèi)的匹配順序
自上向下按順序依次進(jìn)行檢查,找到相匹配的規(guī)則即停上 (LOG策略例外,表示記求相關(guān)日志)
若在該鏈內(nèi)找不到相匹配的規(guī)則,則按該鏈的默認(rèn)策略處理(未修改的狀況下,默認(rèn)策略為允許)
二.編寫(xiě)防火墻規(guī)則
1.iptables防火墻的配置方法
- 使用iptables 命令行
- 使用system-config-firewal1
iptables 命令行配置方法:
ptables [-t 表名] 管理選項(xiàng) [鏈名] [匹配條件] [-j 控制類(lèi)型]
注意事項(xiàng)
- 不指定表名時(shí),欺認(rèn)指flter表
- 不指定鏈名時(shí),默認(rèn)指表內(nèi)的所有鏈
- 除非設(shè)置鏈的默認(rèn)策略,否則必須指定匹配條件
- 控制類(lèi)型使用人寫(xiě)字母,其余均為小寫(xiě)
常用的控制類(lèi)型

常用管理選項(xiàng)

2.規(guī)則的匹配
通用匹配:可以直接使用,不依賴于其他條件或擴(kuò)展,包括網(wǎng)絡(luò)協(xié)議、IP地址、網(wǎng)絡(luò)接口等條件。
- 協(xié)議匹配: -p 協(xié)議名
- 地址匹配:-s 源地址,-d 目的地址 //可以是ip,網(wǎng)段,域名,空(任何地址)
- 接口匹配:-i 入站網(wǎng)卡, -o 出站網(wǎng)卡
命令格式
iptables -A FORWARD ! -p icmp -j ACCEPT iptables -A INPUT -s 192.168.80.11 -j DROP iptables -I INPUT -i ens33 -s 192.168.80.0/24 -j DROP
隱含匹配
要求以特定的協(xié)議匹配作為前提,包括端口,tcp標(biāo)記,icmp類(lèi)型等條件
端口匹配: --sport 源端口 , --dport 目的端口
命令格式
--sport 1000 //匹配源端口是1000的數(shù)據(jù)包 --sport 1000:3000 //匹配源端口是1000-3000的數(shù)據(jù)包 --sport :3000 //匹配源端口是3000及以下的數(shù)據(jù)包 --sport 1000: //匹配源端口是1000及以上的數(shù)據(jù)包
注意: --sport 和 --dport 必須配合 -p<協(xié)議類(lèi)型> 使用
到此這篇關(guān)于Shell iptales防火墻設(shè)置的方法步驟的文章就介紹到這了,更多相關(guān)Shell iptales防火墻設(shè)置內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
用來(lái)查看linux內(nèi)存使用情況的shell腳本
本文為大家提供的這個(gè)腳本,通過(guò)查看status文件中VmRSS的字段來(lái)查看系統(tǒng)或進(jìn)程使用的內(nèi)存情況,有需要的朋友不妨參考下2013-02-02
linux 下實(shí)現(xiàn)sleep詳解及簡(jiǎn)單實(shí)例
這篇文章主要介紹了linux 下實(shí)現(xiàn)sleep詳解及簡(jiǎn)單實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-06-06
shell腳本定時(shí)備份MySQL數(shù)據(jù)庫(kù)數(shù)據(jù)并保留指定時(shí)間
這篇文章主要介紹了shell腳本定時(shí)備份MySQL數(shù)據(jù)庫(kù)數(shù)據(jù)并保留指定時(shí)間,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
Linux使用pgrep命令按名稱查找進(jìn)程 PID的高效方法詳解
pgrep是Linux系統(tǒng)中用于根據(jù)進(jìn)程名或?qū)傩圆檎疫M(jìn)程PID的高效工具,相比ps aux | grep的組合方式,它避免了grep自身進(jìn)程的干擾,輸出更干凈,本文詳細(xì)介紹了pgrep的核心參數(shù)并提供了與pkill配合使用、底層原理分析以及多個(gè)實(shí)戰(zhàn)腳本示例,需要的朋友可以參考下2026-06-06
淺析使用?Auditbeat?模塊監(jiān)控?shell?命令的問(wèn)題
Auditbeat Audited 模塊可以用來(lái)監(jiān)控所有用戶在系統(tǒng)上執(zhí)行的 shell 命令,在終端用戶偶爾才會(huì)登錄的服務(wù)器上,通常需要進(jìn)行監(jiān)控,本文給大家介紹使用?Auditbeat?模塊監(jiān)控?shell?命令的相關(guān)知識(shí),感興趣的朋友一起看看吧2022-02-02
linux?shell中Grep命令查找多個(gè)字符串(grep同時(shí)匹配多個(gè)關(guān)鍵字或任意關(guān)鍵字)
grep是一種強(qiáng)大的文本搜索工具,它能使用正則表達(dá)式搜索文本,并把匹配的行打印出來(lái),下面這篇文章主要給大家介紹了關(guān)于linux?shell中Grep命令查找多個(gè)字符串(grep同時(shí)匹配多個(gè)關(guān)鍵字或任意關(guān)鍵字)的相關(guān)資料,需要的朋友可以參考下2022-08-08
shell實(shí)現(xiàn)SSH自動(dòng)登陸的方法示例
這篇文章主要介紹了shell實(shí)現(xiàn)SSH自動(dòng)登陸的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05

