Shell?iptales防火墻設(shè)置的方法步驟
一.Linux 防火墻
1.Linux包過濾防火墻概述
- Linux 系統(tǒng)的防火墻: IP信息包過濾系統(tǒng),它實際上由兩個組件netfilter 和 iptables組成
- 主要工作在網(wǎng)絡(luò)層,針對IP數(shù)據(jù)包。體現(xiàn)在對包內(nèi)的IP地址、端口、協(xié)議等信息的處理上
netfilter/iptables 關(guān)系
- netfiter: 屬于“內(nèi)核態(tài)” (Kernel Space,又稱為內(nèi)核空間)的防火墻功能體系
- 是內(nèi)核的一部分,由一些數(shù)據(jù)包過濾表組成,這些表包含內(nèi)核用來控制數(shù)據(jù)包過濾處理的規(guī)則集。
位于Linux內(nèi)核中的包過濾功能體系,稱為Linux防火墻的“內(nèi)核態(tài)”
netfilter/iptables后期簡稱為iptables。iptables是基于內(nèi)核的防火墻,其中內(nèi)置了 raw、mangle、 nat 和 filter四個規(guī)則表。表中所有規(guī)則配置后,立即生效,不需要重啟服務(wù)。
2.四表五鏈
- 規(guī)則表的作用:容納各種規(guī)則鏈
- 規(guī)則鏈的作用:容納各種防火墻規(guī)則
- 表里有鏈,鏈里有規(guī)則
四表
- raw表:確定是否對該數(shù)據(jù)包進(jìn)行狀態(tài)跟蹤。包含兩個規(guī)則鏈,OUTPUT、PREROUTING
- mangle表:修改數(shù)據(jù)包內(nèi)容,用來做流量整形的,給數(shù)據(jù)包設(shè)置標(biāo)記。包含五個規(guī)則鏈,INPUT、OUTEPUT、FORWARD、PREROUTING、POSTROUTING
- nat表:負(fù)責(zé)網(wǎng)絡(luò)地址轉(zhuǎn)換,用來修改數(shù)據(jù)包中的源、目標(biāo)IP地址或端口。包含三個規(guī)則鏈,OUTPUT、REROUTING、POSTROUTING
- filter表:負(fù)責(zé)過濾數(shù)據(jù)包,確定是否放行該數(shù)據(jù)包 (過濾)。包含三個規(guī)則鏈,INPUT、FORMARD、OUTPUT。
在 iptables 的四個規(guī)則表中,mangle 表和 raw 表的應(yīng)用相對較少。
五鏈
- 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ù)包,用來修改目的地址,用來做DNAT。相當(dāng)于把內(nèi)網(wǎng)服務(wù)器的IP和端口映射到路由器的外網(wǎng)IP和端口上
- POSTROUTING:在進(jìn)行路出選擇后處理數(shù)據(jù)包,用來修改源地址,用來做SNAT。相當(dāng)于內(nèi)網(wǎng)通過路出器NAT轉(zhuǎn)換功能實現(xiàn)內(nèi)網(wǎng)主機(jī)通過一個公網(wǎng)IP地址上網(wǎng)
數(shù)據(jù)包到達(dá)防火墻時,規(guī)則表之間的優(yōu)先順序:
raw > mangle > nat > filter
3.規(guī)則鏈之間的匹配順序
主機(jī)型防火墻
入站數(shù)據(jù)(來自外界的數(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)過防火墻轉(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)策略為允許)
二.編寫防火墻規(guī)則
1.iptables防火墻的配置方法
- 使用iptables 命令行
- 使用system-config-firewal1
iptables 命令行配置方法:
ptables [-t 表名] 管理選項 [鏈名] [匹配條件] [-j 控制類型]
注意事項
- 不指定表名時,欺認(rèn)指flter表
- 不指定鏈名時,默認(rèn)指表內(nèi)的所有鏈
- 除非設(shè)置鏈的默認(rèn)策略,否則必須指定匹配條件
- 控制類型使用人寫字母,其余均為小寫
常用的控制類型
常用管理選項
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類型等條件
端口匹配: --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é)議類型> 使用
到此這篇關(guān)于Shell iptales防火墻設(shè)置的方法步驟的文章就介紹到這了,更多相關(guān)Shell iptales防火墻設(shè)置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
shell腳本內(nèi)調(diào)用另外一個shell腳本的幾種方法講解
在Linux開發(fā)中經(jīng)常會編寫shell腳本來執(zhí)行一些任務(wù),下面這篇文章主要給大家介紹了關(guān)于shell腳本內(nèi)調(diào)用另外一個shell腳本的幾種方法,需要的朋友可以參考下2023-06-06linux shell中 if else以及大于、小于、等于邏輯表達(dá)式介紹
在linux shell編程中,大多數(shù)情況下,可以使用測試命令來對條件進(jìn)行測試,這里簡單的介紹下,方便需要的朋友2013-02-02shell進(jìn)程監(jiān)控的實現(xiàn)(ps、sleep、kill)
本文主要介紹了shell進(jìn)程監(jiān)控的實現(xiàn)(ps、sleep、kill),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06關(guān)于Linux下動態(tài)查看實時日志的命令
這篇文章主要介紹了Linux下動態(tài)查看實時日志的命令,在Linux中實時顯示文件內(nèi)容的常用命令是tail命令,tail命令是實時顯示日志文件的最常用解決方案,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09