日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

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

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

所謂防火墻也稱之為防護(hù)墻,它是一種位于內(nèi)部網(wǎng)絡(luò)與外部網(wǎng)絡(luò)之間的網(wǎng)絡(luò)安全系統(tǒng)。一項(xiàng)信息安全的防護(hù)系統(tǒng)。按照給定的規(guī)則,允許或者限制網(wǎng)絡(luò)報(bào)文通過(guò)。

  • 硬件防?墻:通過(guò)硬件和軟件的組合,基于硬件的防?墻保護(hù)整個(gè)內(nèi)部網(wǎng)絡(luò)安全。(例如 華為E9000)
  • 軟件防?墻:通過(guò)純軟件,單獨(dú)使?軟件系統(tǒng)來(lái)完成防?墻功能,保護(hù)安裝它的系統(tǒng)。

大型公司都是以硬件防火墻為主,軟件防火墻為輔。軟件防火墻根據(jù)情況來(lái)決定是否開(kāi)啟,如果服務(wù)器性能不夠,可能會(huì)關(guān)閉軟件防火墻。

1 iptables防火墻概述

linux系統(tǒng)自帶的軟件防火墻:

  • iptables:centos 5/6 系統(tǒng)默認(rèn)防火墻
  • firewalld:Centos 7/8 系統(tǒng)默認(rèn)防火墻

1.1 iptables概述

iptables是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é)議等信息的處理上。屬于典型的包過(guò)濾防火墻(或稱為網(wǎng)絡(luò)層防火墻)。

netfilter和iptables的關(guān)系:

netfilter

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

iptables

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

 

1.2 iptables的四表五鏈

netfilter/iptables后期簡(jiǎn)稱為iptables。iptables是基于內(nèi)核的防火墻,其中內(nèi)置了raw、mangle、 nat和filter四個(gè)規(guī)則表。

表中所有規(guī)則配置后,立即生效,不需要重啟服務(wù)。

四表五鏈:

規(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、 OUTPUT、 FORWARD、 PREROUTING、 POSTROUTING

nat

負(fù)責(zé)網(wǎng)絡(luò)地址轉(zhuǎn)換,用來(lái)修改數(shù)據(jù)包中的源、目標(biāo)IP地址或端口。包含三個(gè)規(guī)則鏈,OUTPUT、 PREROUTING、 POSTROUTING

filter

負(fù)責(zé)過(guò)濾數(shù)據(jù)包,確定是否放行該數(shù)據(jù)包(過(guò)濾)。包含三個(gè)規(guī)則鏈,INPUT、 FORWARD、 OUTPUT

在iptables的四個(gè)規(guī)則表中, mangle表和raw表的應(yīng)用相對(duì)較少。

filter表是防火墻的默認(rèn)表。

五鏈:

鏈名

作用

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ù)包,用來(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)。

1.3 數(shù)據(jù)包控制的匹配流程

1.3.1 規(guī)則表之間的優(yōu)先順序:

數(shù)據(jù)包到達(dá)防火墻時(shí),規(guī)則表之間的優(yōu)先順序:raw >mangle > nat > filter

Linux之iptables防火墻

 

1.3.2 規(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
Linux之iptables防火墻

 

注:標(biāo)紅的表示該鏈的規(guī)則通常在這個(gè)表上配置。

1.3.3 規(guī)則鏈內(nèi)部的匹配順序:

  • 自上向下按順序依次進(jìn)行檢查,找到相匹配的規(guī)則即停止(LOG策略例外,表示記錄相關(guān)日志)
  • 若在該鏈內(nèi)找不到相匹配的規(guī)則,則按該鏈的默認(rèn)策略處理(未修改的狀況下,默認(rèn)策略為允許)
 #例1:
 filter表 input鏈:
 1、放通 目的地址為192.168.80.0/24的
 2、放通 目的地址為192.168.100.0/24的
 此時(shí)192.168.100.0/24的IP數(shù)據(jù)包能夠放行。
 
 #例2:
 filter表 input鏈:
 1、拒絕 源地址為100.100.100.0/24的
 2、放通 目的地址為192.168.80.0/24的
 3、放通 目的地址為192.168.100.0/24的
 此時(shí)192.168.100.0/24的IP數(shù)據(jù)包會(huì)被拒絕,因?yàn)槭亲陨舷蛳掳错樞蛞来芜M(jìn)行檢查,第一條規(guī)則已匹配到,就不會(huì)再向下匹配。
復(fù)制代碼

1.3.4 內(nèi)核中數(shù)據(jù)包的傳輸過(guò)程

  1. 當(dāng)一個(gè)數(shù)據(jù)包進(jìn)入網(wǎng)卡時(shí),數(shù)據(jù)包首先進(jìn)入PREROUTING鏈,內(nèi)核根據(jù)數(shù)據(jù)包目的IP判斷是否需要轉(zhuǎn)送出去。
  1. 如果數(shù)據(jù)包是進(jìn)入本機(jī)的,數(shù)據(jù)包就會(huì)到達(dá)INPUT鏈。數(shù)據(jù)包到達(dá)INPUT鏈后, 任何進(jìn)程都會(huì)收到它。本機(jī)上運(yùn)行的程序可以發(fā)送數(shù)據(jù)包,這些數(shù)據(jù)包經(jīng)過(guò)OUTPUT鏈,然后返回給發(fā)送方。
  1. 如果數(shù)據(jù)包是要轉(zhuǎn)發(fā)出去的,且內(nèi)核允許轉(zhuǎn)發(fā),數(shù)據(jù)包就會(huì)經(jīng)過(guò)FORWARD鏈,然后到達(dá)POSTROUTING鏈輸出。

2 iptables的安裝和規(guī)則配置

2.1 iptables的安裝

Centos 7默認(rèn)使用firewalld防火墻,沒(méi)有安裝iptables, 若想使用iptables防火墻。必須先關(guān)閉firewalld防火墻,再安裝iptables 。

 #步驟1、關(guān)閉firewalld
 [root@yuji ~]# systemctl disable --now firewalld   //設(shè)置firwalld開(kāi)機(jī)不自啟,且現(xiàn)在就關(guān)閉
 Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
 Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
 
 #步驟2、安裝iptables 和 iptables-services
 [root@yuji ~]# yum install -y iptables iptables-services
 
 #安裝完后啟動(dòng)服務(wù)
 [root@yuji ~]# systemctl start iptables
復(fù)制代碼
Linux之iptables防火墻

 


Linux之iptables防火墻

 

2.2 iptables的配置方法

  1. 使用iptables命令行。
  2. 使用圖形化管理工具system- config- firewall

2.3 使用iptables命令行配置規(guī)則

命令格式:

 iptables  [-t 表名]  管理選項(xiàng)  [鏈名]  [匹配條件] [-j 控制類型]
復(fù)制代碼

注意事項(xiàng):

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

 

常用控制類型:

控制類型

作用

ACCEPT

允許數(shù)據(jù)包通過(guò)(默認(rèn))

DROP

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

REJECT

拒絕數(shù)據(jù)包通過(guò),會(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)作,并沒(méi)有真正處理數(shù)據(jù)包

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

管理選項(xiàng)

作用

-A

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

-I(大寫i)

在指定鏈的開(kā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)

匹配條件:

匹配條件

說(shuō)明

-p

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

-s

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

-d

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

-i

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

-o

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

–sport

指定源端口號(hào)

–dport

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

2.4 規(guī)則配置示例

示例1:查看規(guī)則 -nL

 [root@yuji ~]# iptables -L      //查看filter表中所有規(guī)則
 [root@yuji ~]# iptables -nL     //以數(shù)字形式顯示
 ?
 [root@yuji ~]# iptables -nL -t nat    //查看nat表ACCEPT
 [root@yuji ~]# iptables -nL --line-numbers   //顯示規(guī)則序號(hào)
 ?
 [root@yuji ~]#iptables -t filter -F  //清空 filter表內(nèi)所有規(guī)則
復(fù)制代碼

示例:

1、 iptables -L,列出表中所有鏈。不指定表名則默認(rèn)查看filter表。

Linux之iptables防火墻

 

2、 iptables -L -n,以數(shù)字形式顯示輸出結(jié)果。-L -n 合在一起寫時(shí),必須n在前,要寫成 -nL。

Linux之iptables防火墻

 

3、iptables -nL -t nat,查看nat表。

Linux之iptables防火墻

 

4、iptables -t filter -F,清空 filter表內(nèi)所有規(guī)則。

Linux之iptables防火墻

 

示例2:添加規(guī)則 -A -I

-A,在末尾追加規(guī)則。

-I,在指定位置前插入規(guī)則。如果不指定,則在首行插入。

 #在INPUT鏈末尾追加規(guī)則
 [root@yuji ~]# iptables -t filter -A INPUT -p icmp -j REJECT
 [root@yuji ~]# iptables -nL 
 ?
 #在INPUT鏈第二行出入規(guī)則
 [root@yuji ~]# iptables -I INPUT 2 -p tcp --dport 22 -j ACCEPT
 [root@yuji ~]# iptables -nL --line-numbers
復(fù)制代碼

示例:

1、拒絕icmp協(xié)議的數(shù)據(jù)包, 即不允許其他主機(jī)ping本機(jī) 。REJECT

Linux之iptables防火墻

 

使用其他的主機(jī)ping不通本機(jī),reject拒絕后會(huì)回應(yīng)一條消息。

Linux之iptables防火墻

 

2、丟棄icmp協(xié)議的數(shù)據(jù)包。DROP。

Linux之iptables防火墻

 

使用其他的主機(jī)ping本機(jī),drop丟棄數(shù)據(jù)包,不給出任何回應(yīng)信息。

Linux之iptables防火墻

 

3、-I,在指定位置前插入。如果不指定,則在首行插入。

iptables -nL --line-numbers,可以查看每條規(guī)則的序號(hào)。

Linux之iptables防火墻

 

示例3:刪除規(guī)則 -D

1、按序號(hào)刪除,比較準(zhǔn)確。

2、按內(nèi)容刪除,如果有2條相同內(nèi)容,會(huì)刪除序號(hào)小的那個(gè)。

注意:

  • 刪除規(guī)則前,先想清楚會(huì)不會(huì)導(dǎo)致ssh斷連。
  • 如果鏈的默認(rèn)規(guī)則是DROP,在使用iptables -F之前一定要慎重,可能會(huì)導(dǎo)致自己斷連,斷連后只能去機(jī)房解決。
 #先查看鏈中的規(guī)則
 [root@yuji ~]# iptables -nL --line-numbers   //顯示規(guī)則的序號(hào)
 Chain INPUT (policy ACCEPT)
 num  target     prot opt source               destination
 1    DROP       icmp --  0.0.0.0/0            0.0.0.0/0
 2    DROP       icmp --  0.0.0.0/0            0.0.0.0/0
 3    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0
 ?
 Chain FORWARD (policy ACCEPT)
 num  target     prot opt source               destination
 ?
 Chain OUTPUT (policy ACCEPT)
 num  target     prot opt source               destination
 ?
 #按序號(hào)刪除
 [root@yuji ~]# iptables -D INPUT 2  //刪除INPUT鏈中的第2條規(guī)則
 [root@yuji ~]# iptables -nL --line-numbers
 Chain INPUT (policy ACCEPT)
 num  target     prot opt source               destination
 1    DROP       icmp --  0.0.0.0/0            0.0.0.0/0
 2    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0
 ?
 Chain FORWARD (policy ACCEPT)
 num  target     prot opt source               destination
 ?
 Chain OUTPUT (policy ACCEPT)
 ?
 #按內(nèi)容刪除
 [root@yuji ~]# iptables -D INPUT -p tcp -j ACCEPT  //刪除INPUT鏈中tcp協(xié)議ACCEPT的規(guī)則
 [root@yuji ~]# iptables -nL --line-numbers
 Chain INPUT (policy ACCEPT)
 num  target     prot opt source               destination
 1    DROP       icmp --  0.0.0.0/0            0.0.0.0/0
 ?
 Chain FORWARD (policy ACCEPT)
 num  target     prot opt source               destination
 ?
 Chain OUTPUT (policy ACCEPT)
 num  target     prot opt source               destination
復(fù)制代碼
Linux之iptables防火墻

 


Linux之iptables防火墻

 

示例4:修改規(guī)則

1、-R 直接修改。但一般不用這種形式。

2、可以先添加一條新規(guī)則,之后再刪除舊規(guī)則。這樣比較保險(xiǎn)。

 #方法1:使用-R直接修改
 [root@yuji ~]# iptables -A INPUT -p icmp -j DROP  //原先設(shè)置的規(guī)則
 [root@yuji ~]# iptables -R INPUT -p icmp -j ACCEPT  //將DROP修改成ACCEPT
 ?
 #方法2:先-A添加一條規(guī)則,之后再-D刪除舊規(guī)則
 [root@yuji ~]# iptables -A INPUT -p icmp -j ACCEPT  //添加一條新規(guī)則
 [root@yuji ~]# iptables -D INPUT -p icmp -j DROP   //刪除舊規(guī)則
復(fù)制代碼

示例5:設(shè)置默認(rèn)策略 -P

未修改的狀況下,默認(rèn)策略為ACCEPT(允許)。

注意:

將默認(rèn)策略修改為DROP前,一定要檢查清楚鏈內(nèi)是否設(shè)置了允許tcp協(xié)議22端口進(jìn)行連接的規(guī)則。否則一旦修改為DROP,會(huì)導(dǎo)致ssh斷連。

 [root@yuji ~]# iptables -P INPUT DROP  //將默認(rèn)策略修改為DROP
復(fù)制代碼
Linux之iptables防火墻

 

3 匹配條件

3.1 通用匹配

可直接使用, 不依賴于其他條件或擴(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 INPUT ! -p icmp -j ACCEPT
 #沒(méi)有-t指定表,就是指默認(rèn)表filter表
 # !代表?xiàng)l件取反,不是icmp的都放通
  
 iptables -A INPUT -s 192.168.72.10 -j REJECT
 #拒絕從哪個(gè)主機(jī)發(fā)數(shù)據(jù)包過(guò)來(lái)(-s指定了源地址)
  
 iptables -I INPUT -i ens33 -s 192.168.80.0/24 -j DROP
 #在行首插入規(guī)則,丟棄該網(wǎng)段從ens33網(wǎng)卡進(jìn)來(lái)的數(shù)據(jù)包
復(fù)制代碼

示例1:

! 取反時(shí)需要注意。

例如設(shè)置“不是icmp的都放通”,即放通的協(xié)議中不包括icmp,這條規(guī)則沒(méi)有針對(duì)icmp。那么icmp協(xié)議會(huì)向下查找匹配,如果匹配不到規(guī)則,那么就會(huì)取默認(rèn)策略ACCEPT,則此時(shí)其他主機(jī)可以ping通本機(jī)。

Linux之iptables防火墻

 

使用其他主機(jī)ping本機(jī),可以ping通。

Linux之iptables防火墻

 

示例2:

拒絕192.168.72.10發(fā)來(lái)的數(shù)據(jù)包。

Linux之iptables防火墻

 

使用192.168.72.10這臺(tái)機(jī)器ping本機(jī),ping不通。REJECT拒絕后,會(huì)顯示回應(yīng)信息。

Linux之iptables防火墻

 

3.2 隱含匹配

要求以特定的協(xié)議匹配作為前提,包括端口、TCP標(biāo)記、ICMP類 型等條件。

3.2.1 端口匹配

端口匹配:--sport 源端口、--dport 目的端口。

可以是個(gè)別端口或者端口范圍。

格式

含義

--sport 1000

匹配源端口是1000的數(shù)據(jù)包

--sport 1000:3000

匹配源端口是1000-3000的數(shù)據(jù)包

--sport 1000:

匹配源端口是1000及以上的數(shù)據(jù)包

--sport :3000

匹配源端口是3000及以下的數(shù)據(jù)包

注意: --sport 和 --dport 必須配合 -p <協(xié)議類型> 使用

Linux之iptables防火墻

 

3.2.2 TCP標(biāo)記匹配

--tcp-flags TCP標(biāo)記

 #TCP三次握手時(shí)的第一次握手,放行SYN為1的報(bào)文,拒絕其他包。
 iptables -I INPUT -P tcp --dport 22 --tcp-flags SYN,ACK,FIN,RST,URG,PSH  SYN  -j  REJECT
 ?
 #第二次握手放行SYN、ACK為1的報(bào)文,拒絕其他包。
 iptables -I OUTPUT -P tcp --dport 22 --tcp-flags SYN,ACK,FIN,RST,URG,PSH  SYN,ACK  -j  REJECT
復(fù)制代碼

3.2.3 ICMP類型匹配

--icmp-type ICMP類型

ICMP類型可以是字符串、數(shù)字代碼:

ICMP類型

含義

Echo-Request (代碼為8)

表示請(qǐng)求

Echo- -Reply (代碼為0)

表示回顯

Dest ination-Unreachable (代碼為3)

表示目標(biāo)不可達(dá)

注: 其他可用的icmp協(xié)議類型,可以執(zhí)行iptables -p icmp -h 查看幫助信息。

 --icmp-type 8   //表示請(qǐng)求(ping),即其他主機(jī)向本機(jī)請(qǐng)求(ping本機(jī))
 --icmp-type 0   //表示回顯(pong),即本機(jī)向其他主機(jī)發(fā)數(shù)據(jù)包(本機(jī)ping其他主機(jī))
 --icmp-type 3   //當(dāng)本機(jī)ping不通其他主機(jī)時(shí),提示目標(biāo)不可達(dá)。
 ?
 例子:
 #丟棄icmp的包,別人ping不通本機(jī),本機(jī)也ping不通別人
 iptables -A INPUT -p icmp -j DROP
 ?
 #丟棄icmp的請(qǐng)求,禁止其他主機(jī)ping本機(jī),但本機(jī)可以ping其他主機(jī)
 iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT 
 ?
 #當(dāng)本機(jī)ping不通其它主機(jī)時(shí)提示目標(biāo)不可達(dá),此時(shí)其它主機(jī)需要配置關(guān)于icmp協(xié)議的控制類型為REJECT
 iptables -A INPUT -p icmp --icmp-type 3 -j ACCEPT
復(fù)制代碼

示例:

丟棄icmp協(xié)議的請(qǐng)求,禁止其他主機(jī)ping本機(jī),但本機(jī)可以ping其他主機(jī)。

Linux之iptables防火墻

 


Linux之iptables防火墻

 

3.3 顯示匹配

要求以“-m擴(kuò)展模塊”的形式明確指出類型,包括多端口、mac地址、IP范圍、數(shù)據(jù)包狀態(tài)等條件

3.3.1 多端口匹配

  • -m multiport --sport 源端口列表
  • -m multiport --dport 目的端口列表
 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
復(fù)制代碼

3.3.2 IP范圍匹配

  • -m iprange --src-range 源IP范圍
  • -m iprange --dst-range 目的IP范圍
 iptables -A FORWARD -p udp -m iprange --src-range 192.168.72.100-192.168.72.200 -j DROP
 # 禁止轉(zhuǎn)發(fā)源地址位于192.168.72.100——192.168.72.200的udp數(shù)據(jù)包
復(fù)制代碼

3.3.3 MAC地址匹配

格式:

 -m mac -- -mac- source MAC地址 
復(fù)制代碼

示例:

 iptables -A FORWARD -m mac --mac-source xx:xx:xx:xx:xx:xx -j DROP
 #禁止來(lái)自某MAC地址的數(shù)據(jù)包通過(guò)本機(jī)轉(zhuǎn)發(fā)
復(fù)制代碼

3.3.4 狀態(tài)匹配

格式:

 -m state --state連接狀態(tài)
復(fù)制代碼

常見(jiàn)的連接狀態(tài):

狀態(tài)

含義

NEW

主機(jī)連接目標(biāo)主機(jī),在目標(biāo)主機(jī)上看到的第一個(gè)想要連接的包

ESTABLISHED

主機(jī)已與目標(biāo)主機(jī)進(jìn)行通信,判斷標(biāo)準(zhǔn)只要目標(biāo)主機(jī)回應(yīng)了第一個(gè)包,就進(jìn)入該狀態(tài)

RELATED

主機(jī)已與目標(biāo)主機(jī)進(jìn)行通信,目標(biāo)主機(jī)發(fā)起新的鏈接方式,一般與ESTABLISHED配合使用

INVALID

無(wú)效的封包,例如數(shù)據(jù)破損的封包狀態(tài)

示例:

 iptables -I INPUT -M state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
 #第一個(gè)包我只看22端口的包
 #-p tcp是隱含匹配,可以省略-m tcp
  
 iptables -A INPUT -p tcp -m multiport --dport 443,80,22,21,20,53 -j ACCEPT
 #允許放通tcp的這些端口號(hào)
 #-m multiport加載多個(gè)端口模塊
  
 iptables -A INPUT -p udp --dport 53 -j ACCEPT
 #放通UDP的53端口進(jìn)來(lái)的包(DNS服務(wù)器返回信息時(shí)默認(rèn)使用UDP的53端口)
 ?
 iptables -A INPUT -p tcp -m state --state ESTABLISHED ,RELATED -j ACCEPT
 #對(duì)進(jìn)來(lái)的包的狀態(tài)進(jìn)行檢測(cè)。已經(jīng)建立tcp連接的包以及該連接相關(guān)的包允許通過(guò)。簡(jiǎn)單來(lái)說(shuō)就是只允許所有自己發(fā)出去的包進(jìn)來(lái)。
 #比如我和你做生意,我們談成了生意,到了支付的時(shí)候,就可以直接調(diào)用與這筆生意相關(guān)的支付功能。
  
 iptables -P INPUT DROP
 #默認(rèn)關(guān)閉,將以上的設(shè)置設(shè)為白名單
復(fù)制代碼

4 總結(jié)

1、Linux防火墻的兩個(gè)組件:

  • 內(nèi)核態(tài) netilter(保存包過(guò)濾處理的規(guī)則集)
  • 用戶態(tài) iptables(防火墻規(guī)則管理工具)

2、數(shù)據(jù)包五要素:

源IP,目的IP,源端口,目的端口 ,協(xié)議UDP/TCP


3、四表:

  • raw 對(duì)數(shù)據(jù)包進(jìn)行狀態(tài)跟蹤
  • mangle 修改數(shù)據(jù)包內(nèi)容,給數(shù)據(jù)包設(shè)置標(biāo)記
  • nat 地址轉(zhuǎn)換,轉(zhuǎn)換源/目的IP或者端口
  • fileter 過(guò)濾數(shù)據(jù)包 放行 丟棄

4、五鏈:

  • INPUT 入站
  • OUTPUT 出站
  • FORWARD 轉(zhuǎn)發(fā)
  • PREROUTING 路由前修改目的地址
  • POSTROUTING 路由后修改源IP

5、匹配順序

1)數(shù)據(jù)包到達(dá)防火墻時(shí),規(guī)則表之間的優(yōu)先順序:raw >mangle > nat > filter。

2)規(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

3)鏈中的規(guī)則集:從上往下一次匹配,匹配到規(guī)則即停止,若都沒(méi)有匹配到則按默認(rèn)策略處理


6、管理選項(xiàng)

iptables [-t 表名] 管理選項(xiàng) [鏈名] [匹配條件] [-j 控制類型]

  • 增:-A 在末尾添加,-I 在指定位置插入
  • 刪:-D 刪除指定規(guī)則,-F 清空所有規(guī)則
  • 改:-R,或者-A 添加后 -D 刪除
  • 查:-nL 以數(shù)字形式顯示,--line-numbers 顯示規(guī)則的序號(hào)
  • 設(shè)置默認(rèn)規(guī)則:-P

注意:

刪除規(guī)則前,以及將默認(rèn)規(guī)則修改為DROP之前,一定要先想清楚會(huì)不會(huì)導(dǎo)致ssh斷連。


7、 匹配條件

  • -p tcp|udp|icmp
  • -s 源IP
  • -d 目的IP
  • -i 入站網(wǎng)卡
  • -o 出站網(wǎng)卡


作者:聶魯達(dá)的郵差
鏈接:
https://juejin.cn/post/7093477215983124494

分享到:
標(biāo)簽:防火墻
用戶無(wú)頭像

網(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

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

全階人生考試2018-06-03

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

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

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

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

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

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

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