亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

Linux防火墻之iptables防火墻

 

一、iptables防火墻

概述

  • linux系統(tǒng)的防火墻:IP信息包過濾系統(tǒng),它實(shí)際上由兩個(gè)組件.NETfilter 和 iptables 組成
  • 主要工作在網(wǎng)絡(luò)層,針對(duì)IP數(shù)據(jù)包。體現(xiàn)在對(duì)包內(nèi)的IP地址、端口等信息的處理上。

netfilter 和 iptables

Linux防火墻之iptables防火墻

 

netfilter

  • netfilter屬于“內(nèi)核態(tài)”(Kernel Space,又稱為內(nèi)核空間)的防火墻功能體系。
  • 是內(nèi)核的一部分,由一些數(shù)據(jù)包過濾表組成,這些表包含內(nèi)核用來控制數(shù)據(jù)包過濾處理的規(guī)則集。

iptables

  • iptables屬于“用戶態(tài)”(User Space,又稱為用戶空間)的防火墻管理體系。
  • 是一種用來管理Linux防火墻的命令程序,它使插入、修改和刪除數(shù)據(jù)包過濾表中的規(guī)則變得容易,通常位于/sbin/iptables目錄下。

netfilter/iptables

  • netfilter/iptables后期簡稱為iptables。
  • iptables是基于內(nèi)核的防火墻,其中內(nèi)置了raw、mangle、nat和 filter 四個(gè)規(guī)則表。表中所有規(guī)則配置后,立即生效,不需要重啟服務(wù)。

四表五鏈

  • 規(guī)則表的作用:容納各種規(guī)則鏈
  • 規(guī)則鏈的作用:容納各種防火墻規(guī)則
  • 總結(jié):表里有鏈,鏈里有規(guī)則
Linux防火墻之iptables防火墻

 

四表

  • raw表:確定是否對(duì)該數(shù)據(jù)包進(jìn)行狀態(tài)跟蹤。包含兩個(gè)規(guī)則鏈,OUTPUT、PREROUTING。
  • mangle表:修改數(shù)據(jù)包內(nèi)容,用來做流量整形的,給數(shù)據(jù)包設(shè)置標(biāo)記。包含五個(gè)規(guī)則鏈,INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING。
  • nat表:負(fù)責(zé)網(wǎng)絡(luò)地址轉(zhuǎn)換,用來修改數(shù)據(jù)包中的源、目標(biāo)IP地址或端口。包含三個(gè)規(guī)則鏈,OUTPUT、PREROUTING、POSTROUTING。
  • filter表:負(fù)責(zé)過濾數(shù)據(jù)包,確定是否放行該數(shù)據(jù)包(過濾)。包含三個(gè)規(guī)則鏈,INPUT、FORWARD、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ī)的數(shù)據(jù)包。
  • PREROUTING鏈:在進(jìn)行路由選擇前處理數(shù)據(jù)包,用來修改目的地址,用來做DNAT。相當(dāng)于把內(nèi)網(wǎng)中的80端口映射到路由器外網(wǎng)端口上。
  • POSTROUTING鏈:在進(jìn)行路由選擇后處理數(shù)據(jù)包,用來修改源地址,用來做SNAT。相當(dāng)于內(nèi)網(wǎng)通過路由器NAT轉(zhuǎn)換功能實(shí)現(xiàn)內(nèi)網(wǎng)主機(jī)通過一個(gè)公網(wǎng)IP地址上網(wǎng)。

規(guī)則表的匹配順序

raw > mangle > nat > filter

Linux防火墻之iptables防火墻

 

規(guī)則鏈之間的匹配順序

Linux防火墻之iptables防火墻

 

  • 主機(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
  • 規(guī)則鏈內(nèi)的匹配順序
    • 自上向下按順序依次進(jìn)行檢查,找到相匹配的規(guī)則即停止(LOG策略例外,表示記錄相關(guān)日志)
    • 若在該鏈內(nèi)找不到相匹配的規(guī)則,則按該鏈的默認(rèn)策略處理(未修改的狀況下,默認(rèn)策略為允許)

iptables的安裝

  • centos 7默認(rèn)使用firewalld防火墻,沒有安裝 iptables,若想使用iptables防火墻。必須先關(guān)閉firewalld防火墻,再安裝 iptables
#關(guān)閉防火墻
systemctl stop firewalld.service
systemctl disable firewalld.service
#安裝并開啟iptables服務(wù)
yum -y install iptables iptables-services
systemctl start iptables.service

iptables防火墻的配置方法

命令行配置格式

Linux防火墻之iptables防火墻

 

注意事項(xiàng)

  • 不指定表名時(shí),默認(rèn)指filter表
  • 不指定鏈名時(shí),默認(rèn)指表內(nèi)的所有鏈
  • 除非設(shè)置鏈的默認(rèn)策略,否則必須指定匹配條件
  • 選項(xiàng)、鏈名、控制類型使用大寫字母,其余均為小寫

常用的控制類型

控制類型

作用

ACCEPT

允許數(shù)據(jù)包通過。

DROP

直接丟棄數(shù)據(jù)包,不給出任何回應(yīng)信息。

REJECT

拒絕數(shù)據(jù)包通過,會(huì)給數(shù)據(jù)發(fā)送端一個(gè)響應(yīng)信息。

SNAT

修改數(shù)據(jù)包的源地址。

DNAT

修改數(shù)據(jù)包的目的地址。

MASQUERADE

偽裝成一個(gè)非固定公網(wǎng)IP地址。

LOG

在/var/log/messages文件中記錄日志信息,然后將數(shù)據(jù)包傳遞給下一條規(guī)則。 LOG只是一種輔助動(dòng)作,并沒有真正處理數(shù)據(jù)包。

常用的管理選項(xiàng)

選項(xiàng)

說明

-A

在指定鏈的末尾追加(–Append)一條新的規(guī)則

-I

在指定鏈的開頭插入(–insert)一條新的規(guī)則,未指定序號(hào)時(shí)默認(rèn)作為第一條規(guī)則

-R

修改、替換(–replace)指定鏈中的某一條規(guī)則,可指定規(guī)則序號(hào)或具體內(nèi)容

-P

設(shè)置指定鏈的默認(rèn)策略(–policy)

-D

刪除(–delete)指定鏈中的某一條規(guī)則,可指定規(guī)則序號(hào)或具體內(nèi)容

-F

清空(–flush)指定鏈中的所有規(guī)則,若未指定鏈名,則清空表中的所有鏈

-L

列出(–list)指定鏈中所有的規(guī)則,若未指定鏈名,則列出表中的所有鏈

-n

使用數(shù)字形式(–numeric)顯示輸出結(jié)果,如顯示 IP 地址而不是主機(jī)名

-v

顯示詳細(xì)信息,包括每條規(guī)則的匹配包數(shù)量和匹配字節(jié)數(shù)

–line-numbers

查看規(guī)則時(shí),顯示規(guī)則的序號(hào)

匹配條件

匹配條件

說明

-p

指定要匹配的數(shù)據(jù)包的協(xié)議類型

-s

指定要匹配的數(shù)據(jù)包的源IP地址

-d

指定要匹配的數(shù)據(jù)包的目的IP地址

-i

指定數(shù)據(jù)包進(jìn)入本機(jī)的網(wǎng)絡(luò)接口

-o

指定數(shù)據(jù)包離開本機(jī)做使用的網(wǎng)絡(luò)接口

–sport

指定源端口號(hào)

–dport

指定目的端口號(hào)

  • 直接使用,不依賴于其他條件或擴(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 目的端口
#可以是個(gè)別端口、端口范圍
--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é)議類型> 使用
例:
iptables -A INPUT -p tcp --dport 20:21 -j ACCEPT
iptables -I FORWARD -d 192.168.80.0/24 -p tcp --dport 24500:24600 -j DROP
  • TCP標(biāo)記匹配
TCP標(biāo)記匹配:--tcp-flags TCP標(biāo)記
iptables -I INPUT -i ens33 -p tcp --tcp-flags SYN,RST,ACK SYN -j ACCEPT
#丟棄SYN請(qǐng)求包,放行其他包
  • ICMP類型匹配
ICMP類型匹配:--icmp-type ICMP類型		
#可以是字符串、數(shù)字代碼、、目標(biāo)不可達(dá)
“Echo-Request”(代碼為 8)表示 請(qǐng)求
“Echo-Reply”(代碼為 0)表示 回顯
“Destination-Unreachable”(代碼為 3)表示 目標(biāo)不可達(dá)
關(guān)于其它可用的 ICMP 協(xié)議類型,可以執(zhí)行“iptables -p icmp -h”命令,查看幫助信息
  • 要求以“-m 擴(kuò)展模塊”的形式明確指出類型,包括多端口、mac地址、IP范圍、數(shù)據(jù)包狀態(tài)等條件。
  • 多端口匹配
多端口匹配:-m multiport --sports 源端口列表
-m multiport --dports 目的端口列表
例:
iptables -A INPUT -p tcp -m multiport --dport 80,22,21,20,53 -j ACCEPT
iptables -A INPUT -p udp -m multiport --dport 53 -j ACCEPT
  • IP范圍匹配
IP范圍匹配:-m iprange --src-range IP范圍
iptables -A FORWARD -p udp -m iprange --src-range 192.168.80.100-192.168.80.200 -j DROP			
#禁止轉(zhuǎn)發(fā)源地址位于192.168.80.100-192.168.80.200的udp數(shù)據(jù)包
  • 狀態(tài)匹配
狀態(tài)匹配:-m state --state 連接狀態(tài)
常見的連接狀態(tài):
NEW :與任何連接無關(guān)的,還沒開始連接
ESTABLISHED :響應(yīng)請(qǐng)求或者已建立連接的,連接態(tài)
RELATED :與已有連接有相關(guān)性的(如FTP 主被動(dòng)模式的數(shù)據(jù)連接),衍生態(tài),一般與ESTABLISHED 配合使用
INVALID :不能被識(shí)別屬于哪個(gè)連接或沒有任何狀態(tài)
iptables -A FORWARD -m state --state NEW -p tcp ! --syn -j DROP
#禁止轉(zhuǎn)發(fā)與正常 TCP 連接無關(guān)的非--syn 請(qǐng)求數(shù)據(jù)包(如偽造的網(wǎng)絡(luò)攻擊數(shù)據(jù)包)

SNAT原理與應(yīng)用

SNAT應(yīng)用環(huán)境

  • 局域網(wǎng)主機(jī)共享單個(gè)公網(wǎng)IP地址接入Internet(私有IP不能在Internet中正常路由)

SNAT原理

  • 修改數(shù)據(jù)包的源地址。

SNAT轉(zhuǎn)換前提條件

  • 局域網(wǎng)各主機(jī)已正確設(shè)置IP地址、子網(wǎng)掩碼、默認(rèn)網(wǎng)關(guān)地址
  • Linux網(wǎng)關(guān)開啟IP路由轉(zhuǎn)發(fā)

路由轉(zhuǎn)發(fā)開啟方式

臨時(shí)打開:
echo 1 > /proc/sys/net/ipv4/ip_forward
或
sysctl -w net.ipv4.ip_forward=1

永久打開:
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1 	#將此行寫入配置文件

sysctl -p 		#讀取修改后的配置

SNAT轉(zhuǎn)換

SNAT轉(zhuǎn)換1:固定的公網(wǎng)IP地址:
iptables -t nat -A POSTROUTING -s 192.168.80.0/24 -o ens33 -j SNAT --to 12.0.0.1
或
iptables -t nat -A POSTROUTING -s 192.168.80.0/24 -o ens33 -j SNAT --to-source 12.0.0.1-12.0.0.10
									內(nèi)網(wǎng)IP	      出站 外網(wǎng)網(wǎng)卡                   外網(wǎng)IP或地址池		

SNAT轉(zhuǎn)換2:非固定的公網(wǎng)IP地址(共享動(dòng)態(tài)IP地址):
iptables -t nat -A POSTROUTING -s 192.168.80.0/24 -o ens33 -j MASQUERADE

知識(shí)擴(kuò)展

  • 一個(gè)IP地址做SNAT轉(zhuǎn)換,一般可以讓內(nèi)網(wǎng) 100到200 臺(tái)主機(jī)實(shí)現(xiàn)上網(wǎng)。

DNAT原理與應(yīng)用

DNAT 應(yīng)用環(huán)境

在Internet中發(fā)布位于局域網(wǎng)內(nèi)的服務(wù)器

DNAT原理

修改數(shù)據(jù)包的目的地址。

DNAT轉(zhuǎn)換前提條件

  • 局域網(wǎng)的服務(wù)器能夠訪問Internet
  • 網(wǎng)關(guān)的外網(wǎng)地址有正確的DNS解析記錄
  • Linux網(wǎng)關(guān)開啟IP路由轉(zhuǎn)發(fā)

DNAT轉(zhuǎn)換

1、發(fā)布內(nèi)網(wǎng)的Web服務(wù)
#把從ens33進(jìn)來的要訪問web服務(wù)的數(shù)據(jù)包目的地址轉(zhuǎn)換為 192.168.80.11
iptables -t nat -A PREROUTING -i ens33 -d 12.0.0.1 -p tcp --dport 80 -j DNAT --to 192.168.80.11
或
iptables -t nat -A PREROUTING -i ens33 -d 12.0.0.1 -p tcp --dport 80 -j DNAT --to-destination 192.168.80.11
                             入站 外網(wǎng)網(wǎng)卡  外網(wǎng)IP											   內(nèi)網(wǎng)服務(wù)器IP
 
iptables -t nat -A PREROUTING -i ens33 -p tcp --dport 80 -j DNAT --to 192.168.80.11-192.168.80.20
-------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------	
	
2、發(fā)布時(shí)修改目標(biāo)端口			
#發(fā)布局域網(wǎng)內(nèi)部的OpenSSH服務(wù)器,外網(wǎng)主機(jī)需使用250端口進(jìn)行連接
iptables -t nat -A PREROUTING -i ens33 -d 12.0.0.1 -p tcp --dport 250 -j DNAT --to 192.168.80.11:22

#在外網(wǎng)環(huán)境中使用SSH測(cè)試
ssh -p 250 [email protected]

yum -y install net-tools 		#若沒有 ifconfig 命令可提前使用 yum 進(jìn)行安裝
ifconfig ens33

知識(shí)擴(kuò)展

  • 主機(jī)型防火墻:主要使用 INPUT、OUTPUT 鏈,設(shè)置規(guī)則時(shí)一般要詳細(xì)的指定到端口
  • 網(wǎng)絡(luò)型防火墻:主要使用 FORWARD 鏈,設(shè)置規(guī)則時(shí)很少去指定到端口,一般指定到IP地址或者到網(wǎng)段即可

防火墻規(guī)則的備份和還原

導(dǎo)出(備份)所有表的規(guī)則

iptables-save > /opt/ipt.txt

導(dǎo)入(還原)規(guī)則

iptables-restore < /opt/ipt.txt

將iptables規(guī)則文件保存在 /etc/sysconfig/iptables 中,iptables服務(wù)啟動(dòng)時(shí)會(huì)自動(dòng)還原規(guī)則
iptables-save > /etc/sysconfig/iptables
systemctl stop iptables			#停止iptables服務(wù)會(huì)清空掉所有表的規(guī)則
systemctl start iptables			#啟動(dòng)iptables服務(wù)會(huì)自動(dòng)還原/etc/sysconfig/iptables 中的規(guī)則

分享到:
標(biāo)簽:iptables
用戶無頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績?cè)u(píng)定