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,又稱(chēng)為內(nèi)核空間)的防火墻功能體系
- 是內(nèi)核的一部分,由一些數(shù)據(jù)包過(guò)濾表組成,這些表包含內(nèi)核用來(lái)控制數(shù)據(jù)包過(guò)濾處理的規(guī)則集。
位于Linux內(nèi)核中的包過(guò)濾功能體系,稱(chēng)為L(zhǎng)inux防火墻的“內(nèi)核態(tài)”
netfilter/iptables后期簡(jiǎn)稱(chēng)為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ī)則的匹配
通用匹配:可以直接使用,不依賴(lài)于其他條件或擴(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)文章
shell腳本內(nèi)調(diào)用另外一個(gè)shell腳本的幾種方法講解
在Linux開(kāi)發(fā)中經(jīng)常會(huì)編寫(xiě)shell腳本來(lái)執(zhí)行一些任務(wù),下面這篇文章主要給大家介紹了關(guān)于shell腳本內(nèi)調(diào)用另外一個(gè)shell腳本的幾種方法,需要的朋友可以參考下2023-06-06linux shell中 if else以及大于、小于、等于邏輯表達(dá)式介紹
在linux shell編程中,大多數(shù)情況下,可以使用測(cè)試命令來(lái)對(duì)條件進(jìn)行測(cè)試,這里簡(jiǎn)單的介紹下,方便需要的朋友2013-02-02如何編寫(xiě)健壯的Bash腳本(經(jīng)驗(yàn)分享)
本文介紹下,編寫(xiě)出健壯的bash shell腳本的方法,感興趣的朋友參考學(xué)習(xí)下2013-11-11shell進(jìn)程監(jiān)控的實(shí)現(xiàn)(ps、sleep、kill)
本文主要介紹了shell進(jìn)程監(jiān)控的實(shí)現(xiàn)(ps、sleep、kill),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06關(guān)于Linux下動(dòng)態(tài)查看實(shí)時(shí)日志的命令
這篇文章主要介紹了Linux下動(dòng)態(tài)查看實(shí)時(shí)日志的命令,在Linux中實(shí)時(shí)顯示文件內(nèi)容的常用命令是tail命令,tail命令是實(shí)時(shí)顯示日志文件的最常用解決方案,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09awk中NR和FNR的區(qū)別小結(jié)和實(shí)例演示
這篇文章主要介紹了awk中NR和FNR的區(qū)別小結(jié)和實(shí)例演示,著重介紹NR和FNR不同的地方,需要的朋友可以參考下2014-07-07linux中nohup和后臺(tái)運(yùn)行進(jìn)程查看及終止
今天給大家介紹linux中nohup和后臺(tái)運(yùn)行進(jìn)程查看及終止的操作命令,大家都知道nohup用于不掛斷地運(yùn)行命令,語(yǔ)法也很簡(jiǎn)單,需要的朋友可以參考下本文吧2021-06-06使用crontab每隔1分鐘執(zhí)行一個(gè)命令行腳本
這篇文章主要介紹了使用crontab每隔1分鐘執(zhí)行一個(gè)命令行腳本,文末介紹了crontab中如何設(shè)置每30秒執(zhí)行一次任務(wù),本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-07-07