2018-06-11 第十四課(iptables)

目錄

  1. 防火墻簡介
  2. iptables 與 firewalld
  3. iptables 基礎(chǔ)
    3.1 鏈的概念
    3.2 表的概念
    3.3 鏈與表的關(guān)系
    3.4 數(shù)據(jù)通過的流程
  4. iptables 語法
  5. iptables nat表的應(yīng)用

1. 防火墻簡介

防火墻是一種應(yīng)用于網(wǎng)絡(luò)上的過濾機(jī)制闷盔,從保護(hù)對象上可分為:主機(jī)防火墻、網(wǎng)絡(luò)防火墻秒啦,從物理上可分為:硬件防火墻肌幽、軟件防火墻

  • 保護(hù)對象上的分類:

    • 主機(jī)防火墻:針對于單個(gè)主機(jī)進(jìn)行防護(hù)
    • 網(wǎng)絡(luò)防火墻:往往部署于網(wǎng)絡(luò)邊界靴跛,對流入以及流出的流量進(jìn)行過濾
  • 物理上的分類:

    • 硬件防火墻:擁有經(jīng)過特別設(shè)計(jì)的硬件及芯片,性能高逢净、成本高
    • 軟件防火墻:應(yīng)用軟件處理邏輯運(yùn)行于通用硬件平臺之上的防火墻,性能低智嚷、成本低

2. firewalld 與 iptables

2.1 異同點(diǎn)

  • 相同點(diǎn):firewalld 與 iptables 都是 Linux 中防火墻的管理程序,但其實(shí)其角色主要為對于防火墻策略的管理纺且,真正的防火墻執(zhí)行者是位于內(nèi)核中的 Netfilter盏道。

  • 不同點(diǎn):

    • iptables 僅能通過命令行進(jìn)行配置;而 firewalld提供了圖形接口载碌,類似windows防火墻的操作方式
    • iptables 每一個(gè)單獨(dú)更改意味著清除所有舊的規(guī)則猜嘱,并從 /etc/sysconfig/iptables 中讀取所有新的規(guī)則;而 firewalld 在有規(guī)則變動(dòng)后嫁艇,可以僅僅運(yùn)行規(guī)則中的不同之處朗伶,即在 firewalld 運(yùn)行時(shí)間內(nèi),改變設(shè)置時(shí)可以不丟失現(xiàn)行鏈接
    • iptables 的配置文件在 /etc/sysconfig/iptables 中步咪;而 firewalld 的配置文件在 /usr/lib/firewalld/ 和 /etc/firewalld/ 中的各種 XML 文件中
    • iptables 沒有守護(hù)進(jìn)程论皆,并不能算是真正意義上的服務(wù);而 firewalld 有守護(hù)進(jìn)程

2.2 關(guān)閉 firewalld猾漫,開啟 iptables

2.2.1 關(guān)閉 firewalld
  • 關(guān)閉 firewalld 服務(wù):syctemctl stop firewalld
  • 禁用 firewalld 服務(wù):systemctl disable firewalld
2.2.2 開啟 iptables
  • 安裝 iptables:yum -y install iptables-services
  • 啟用 iptables:systemctl enable iptables
  • 開啟 iptables:systemctl start iptables

3. iptables 基礎(chǔ)

iptables 準(zhǔn)確來講并不是防火墻点晴,真正的防火墻是運(yùn)行于系統(tǒng)內(nèi)核中的 netfilter,而 iptables 僅僅是 netfilter 的代言人悯周,其所負(fù)責(zé)的主要功能便是與用戶交互粒督,獲取到用戶的要求,并轉(zhuǎn)化成 netfilter 可以接受的信息禽翼。

  • 防火墻的實(shí)現(xiàn)機(jī)制
    防火墻的核心處理機(jī)制是過濾屠橄,而說到過濾,就必須具有“條件 & 動(dòng)作”這兩個(gè)關(guān)鍵要素捐康,而在 iptables 中仇矾,這兩種要素分別叫做“rule & target”,可以理解成符合 rule 的流量將會(huì)去往 target解总。

  • 匹配規(guī)則的要素
    防火墻的處理對象是網(wǎng)絡(luò)流量,而對于網(wǎng)絡(luò)流量來講姐仅,標(biāo)識流量的最重要的信息便是五元組花枫,包括:S_IP, S_PORT, D_IP, DI_PORT, TCP/UDP,iptables 常用的也往往是根據(jù)五元組中的某個(gè)或某些要素進(jìn)行過濾

舉個(gè)栗子
防火墻的主要功能是過濾掏膏,那我們不妨把防火墻看成是個(gè)社區(qū)的廢水處理廠劳翰,負(fù)責(zé)將社區(qū)的生活廢水收集起來,經(jīng)過多道工序的處理后馒疹,返還給社區(qū)佳簸。
:既然是要處理廢水,那我們首先要在廢水處理的個(gè)別關(guān)鍵環(huán)節(jié)上設(shè)置集中處理的“處理鏈”,在“處理鏈”中放置各種不同的過濾網(wǎng)生均、膜以及化學(xué)配方听想。

:即便是不同的處理鏈中,可能會(huì)用到一些相同的處理技術(shù)马胧,比如粗濾膜汉买、細(xì)濾膜,為了方便這些技術(shù)的復(fù)用佩脊,廢水處理廠將功能類似的處理技術(shù)封裝成集合蛙粘,這樣能夠更加方便地使用

3.1 鏈的概念

3.1.1 什么是鏈?

就是從報(bào)文進(jìn)入到報(bào)文離開這整個(gè)期間威彰,計(jì)算機(jī)處理報(bào)文的關(guān)鍵環(huán)節(jié)出牧。
就好比污水處理廠,污水進(jìn)入前得處理一下歇盼,進(jìn)入后得沉淀一下崔列,送回時(shí)又得進(jìn)行一些處理,那么這3個(gè)節(jié)點(diǎn)就是關(guān)鍵環(huán)節(jié)旺遮。

3.1.2 為何叫做鏈赵讯?

因?yàn)榉阑饓κ菍?bào)文進(jìn)行規(guī)則匹配,然后執(zhí)行相應(yīng)動(dòng)作耿眉。但在關(guān)鍵環(huán)節(jié)上边翼,往往不止一條規(guī)則,而是有大量的規(guī)則鸣剪,而且這些規(guī)則都是按順序排列的组底,待匹配的報(bào)文需要按順序一個(gè)一個(gè)規(guī)則的進(jìn)行匹配,直到匹配到一條規(guī)則為止筐骇,所以在每個(gè)關(guān)鍵環(huán)節(jié)上的匹配過程债鸡,就像是一條有順序的鏈。
好比污水處理廠铛纬,必須在個(gè)別關(guān)鍵環(huán)節(jié)部署處理措施厌均,比如在進(jìn)入廢水廠時(shí),先進(jìn)行一批處理告唆。處理可能包括粗濾棺弊、細(xì)濾等各種方式,而且各種方式不能隨意排列擒悬,必定是按照一定的順序依次進(jìn)行模她,比如先粗濾,再細(xì)濾懂牧。

3.1.3 iptables 有哪些鏈侈净?

記住,鏈其實(shí)就是報(bào)文處理的重要環(huán)節(jié),所以很容易就得出有以下兩個(gè)重要環(huán)節(jié):

  • INPUT:進(jìn)入主機(jī)
  • OUTPUT:離開主機(jī)

但還有一種復(fù)雜的情況畜侦,就是報(bào)文的目標(biāo)并不是本主機(jī)元扔,而只是借道本主機(jī),希望通過本主機(jī)去往下一臺主機(jī)夏伊。
就好比我們的這個(gè)污水處理廠只處理生活污水摇展,并不具備能力可以完全處理工業(yè)污水,但是政府又要求我們要對工業(yè)污水進(jìn)行一下簡單的處理溺忧,之后再傳送給工業(yè)污水處理廠咏连。那么就容易得出以下兩個(gè)重要環(huán)節(jié)(鏈):

  • PREROUTING:路有前
  • FORWARD:轉(zhuǎn)發(fā)
  • POSTROUTING:路由后

3.2 表的概念

3.2.1 什么是表?

在每個(gè)鏈上都有一堆規(guī)則鲁森,但是部分規(guī)則是相似的祟滴,那我們把一些實(shí)現(xiàn)相同功能的規(guī)則放在一起,就能輕松的完成復(fù)用了歌溉。
好比污水處理廠垄懂,粗濾、細(xì)濾基本上是好多關(guān)鍵環(huán)節(jié)都要用到的痛垛,那何不將粗濾網(wǎng)與細(xì)濾網(wǎng)直接封裝到一根管子里草慧,要用的時(shí)候,直接整根管子接上去就能一次實(shí)現(xiàn)兩個(gè)功能匙头,豈不方便漫谷?

3.2.2 iptables 提供了哪些表?
  • filter:負(fù)責(zé)過濾功能蹂析,內(nèi)核模塊 iptables_filter
  • nat:負(fù)責(zé)進(jìn)行網(wǎng)絡(luò)地址轉(zhuǎn)換舔示,內(nèi)核模塊 iptable_nat
  • mangle:拆解報(bào)文,進(jìn)行修改电抚,重新封裝惕稻,內(nèi)核模塊 iptable_mangle
  • raw:關(guān)閉 nat 表上啟用的連接追蹤機(jī)制,內(nèi)核模塊 iptable_raw
  • security:安全相關(guān)蝙叛?CentOS 7 里新增的表俺祠,暫且不介紹

ps. 運(yùn)維中常用的為 filter、nat

3.3 鏈與表的關(guān)系

現(xiàn)在應(yīng)該清楚:鏈?zhǔn)菆?bào)文流轉(zhuǎn)過程中的關(guān)鍵處理環(huán)節(jié)甥温,表是某一些相似規(guī)則的集合

3.3.1 鏈中的表

但是由于處理環(huán)節(jié)的分工不同锻煌,每個(gè)處理環(huán)節(jié)可能具有不同的表,讓我們看看5個(gè)環(huán)節(jié)中姻蚓,每個(gè)環(huán)節(jié)都有哪些表

3.3.2 表對應(yīng)的鏈

但是,實(shí)際使用中匣沼,往往是以“表”作為操作入口來對規(guī)則進(jìn)行定義的狰挡,所以比起知道某個(gè)鏈中存在哪些表,不如明確每種表能夠應(yīng)用于哪些鏈中,這樣能方便實(shí)際的使用加叁。

3.3.3 表的優(yōu)先級

由上可知倦沧,每個(gè)鏈中包含多個(gè)表。
但是還記得規(guī)則是有順序的嗎它匕?那問題來了展融,同一條鏈中,到底哪個(gè)表被先執(zhí)行呢豫柬?

表的優(yōu)先級

3.4 規(guī)則的概念

之前已經(jīng)講過告希,規(guī)則主要包含兩部分,即“條件 & 動(dòng)作”

3.4.1 匹配條件

iptables 主要是通過網(wǎng)絡(luò)流量的五元組(某個(gè)或某些)來進(jìn)行匹配烧给,包括:

  • S_IP:源 IP
  • S_PORT:源端口
  • D_IP:目的 IP
  • D_PORT:目的端口
  • TCP/UDP:四層協(xié)議
3.4.2 處理動(dòng)作

iptables 中稱為 target

  • ACCEPT:允許數(shù)據(jù)包通過燕偶。
  • DROP:直接丟棄數(shù)據(jù)包。不回應(yīng)任何信息础嫡,客戶端只有當(dāng)該鏈接超時(shí)后才會(huì)有反應(yīng)指么。
  • REJECT:拒絕數(shù)據(jù)包。會(huì)給客戶端發(fā)送一個(gè)響應(yīng)的信息 榴鼎。
  • SNAT:源 NAT伯诬,解決私網(wǎng)用戶用同一個(gè)公網(wǎng) IP 上網(wǎng)的問題。
  • MASQUERADE:是 SNAT 的一種特殊形式巫财,適用于動(dòng)態(tài)的盗似、臨時(shí)會(huì)變的 IP 上。
  • DNAT:目的 NAT翁涤,解決私網(wǎng)服務(wù)端桥言,接收公網(wǎng)請求的問題。
  • REDIRECT:在本機(jī)做端口映射葵礼。
  • LOG:在 /etc/log/messages 中留下記錄号阿,但并不對數(shù)據(jù)包進(jìn)行任何操作。

4. iptables 常用語法

使用 iptables 時(shí)鸳粉,最常用的就是對規(guī)則扔涧、表進(jìn)行“增刪改查”

4.1 查詢

4.1.1 Options
  • -L:負(fù)責(zé)查詢的主要選項(xiàng)
  • -n:不進(jìn)行IP地址翻譯
  • -v:顯示詳細(xì)信息,包括:命中規(guī)則的包數(shù)&字節(jié)數(shù)届谈、缺省策略的包數(shù)&字節(jié)數(shù)枯夜、入向接口,
  • -t <TABLE>:指定需要查看的表艰山,若不加該選項(xiàng)湖雹,默認(rèn)查詢 filter
  • --line:顯示各鏈的規(guī)則行號
4.1.2 簡單查看

$ iptables -L

$ iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     icmp --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:ssh
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination    
  • Chain:所屬的鏈
  • (policy ACCEPT):該鏈的缺省規(guī)則
  • target:對應(yīng)的處理動(dòng)作
  • prot:對應(yīng)的協(xié)議
  • opt:規(guī)則對應(yīng)的選項(xiàng)
  • source:對應(yīng)的源 IP 地址或網(wǎng)段
  • destination:對應(yīng)的目的 IP 地址或網(wǎng)段
4.1.3 查看命中數(shù):-v

iptables -vL

$ iptables -vL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
 1305  102K ACCEPT     all  --  any    any     anywhere             anywhere             state RELATED,ESTABLISHED
    0     0 ACCEPT     icmp --  any    any     anywhere             anywhere            
    0     0 ACCEPT     all  --  lo     any     anywhere             anywhere            
    1    52 ACCEPT     tcp  --  any    any     anywhere             anywhere             state NEW tcp dpt:ssh
    7  1150 REJECT     all  --  any    any     anywhere             anywhere             reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 REJECT     all  --  any    any     anywhere             anywhere             reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT 964 packets, 134K bytes)
 pkts bytes target     prot opt in     out     source               destination   
  • pkts:命中規(guī)則的報(bào)文個(gè)數(shù)
  • bytes:命中規(guī)則的報(bào)文大總和
  • in:規(guī)則對應(yīng)的入向接口
  • out:規(guī)則對應(yīng)的出向接口
4.1.4 查看特定的表:-t <TABLE>

$ iptables -t filter -L
竟然發(fā)現(xiàn)跟 -L 顯示的一模一樣?
翻到前面曙搬,看看 filter 表可以在哪些鏈中使用摔吏?是不是正好就是 INPUT鸽嫂、FORWARD、OUTPUT 這三條鏈罢鹘病据某!

$ iptables -t filter -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     icmp --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:ssh
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination   
4.1.5 查看特定的鏈

iptables -L <CHAIN>

$ iptables -nvL INPUT
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target  prot opt in  out     source          destination         
 1256 98520 ACCEPT  all  --  *   *    0.0.0.0/0       0.0.0.0/0       state RELATED,ESTABLISHED
    0     0 ACCEPT  icmp --  *   *    0.0.0.0/0       0.0.0.0/0           
    0     0 ACCEPT  all  --  lo  *    0.0.0.0/0       0.0.0.0/0           
    1    52 ACCEPT  tcp  --  *   *    0.0.0.0/0       0.0.0.0/0       state NEW tcp dpt:22
    6   921 REJECT  all  --  *   *    0.0.0.0/0       0.0.0.0/0       reject-with icmp-host-prohibited
4.1.6 顯示規(guī)則行號:--line
$ iptables -t filter -nvL --line-number
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1     1542  121K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
2        0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           
3        0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
4        1    52 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:22
5       11  1613 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT 1142 packets, 153K bytes)
num   pkts bytes target     prot opt in     out     source               destination   

4.2 增加

4.2.1 Options
  • -I <CHAIN>:insert,插入诗箍,排序在指定鏈的規(guī)則的首位
  • -I <CHAIN> #:插入到指定鏈的第 # 號規(guī)則的位置
  • -A <CHAIN>:append癣籽,追加,排序在指定鏈的規(guī)則的末尾
  • -s <S_IP>:指定源 IP
  • -j <ACTION>:指定執(zhí)行的動(dòng)作滤祖,具體動(dòng)作類型見 3.4.2
4.2.2 插入規(guī)則到首位
$ iptables -nvL INPUT
Chain INPUT (policy ACCEPT 102 packets, 8892 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  *      *       12.12.12.12          0.0.0.0/0           
    0     0 LOG        all  --  *      *       11.11.11.11          0.0.0.0/0            LOG flags 0 level 4
    0     0 DROP       all  --  *      *       10.10.10.10          0.0.0.0/0           
$ iptables -t filter -I INPUT -s 1.1.1.1 -j DROP
$ iptables -nvL INPUT
Chain INPUT (policy ACCEPT 43 packets, 3020 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DROP       all  --  *      *       1.1.1.1              0.0.0.0/0           
    0     0 ACCEPT     all  --  *      *       12.12.12.12          0.0.0.0/0           
    0     0 LOG        all  --  *      *       11.11.11.11          0.0.0.0/0            LOG flags 0 level 4
    0     0 DROP       all  --  *      *       10.10.10.10          0.0.0.0/0           
4.2.3 插入規(guī)則到指定號碼
Chain INPUT (policy ACCEPT 279 packets, 21604 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 DROP       all  --  *      *       1.1.1.1              0.0.0.0/0           
2        0     0 ACCEPT     all  --  *      *       12.12.12.12          0.0.0.0/0           
3        0     0 LOG        all  --  *      *       11.11.11.11          0.0.0.0/0            LOG flags 0 level 4
4        0     0 DROP       all  --  *      *       10.10.10.10          0.0.0.0/0           
$ 
$ 
$ iptables -I INPUT 3 -s 3.3.3.3 -j ACCEPT
$ iptables -nvL INPUT --line
Chain INPUT (policy ACCEPT 5 packets, 388 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 DROP       all  --  *      *       1.1.1.1              0.0.0.0/0           
2        0     0 ACCEPT     all  --  *      *       12.12.12.12          0.0.0.0/0           
3        0     0 ACCEPT     all  --  *      *       3.3.3.3              0.0.0.0/0           
4        0     0 LOG        all  --  *      *       11.11.11.11          0.0.0.0/0            LOG flags 0 level 4
5        0     0 DROP       all  --  *      *       10.10.10.10          0.0.0.0/0    
4.2.4 追加到末位
$ iptables -nvL INPUT
Chain INPUT (policy ACCEPT 50 packets, 3592 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DROP       all  --  *      *       1.1.1.1              0.0.0.0/0           
    0     0 ACCEPT     all  --  *      *       12.12.12.12          0.0.0.0/0           
    0     0 ACCEPT     all  --  *      *       3.3.3.3              0.0.0.0/0           
    0     0 LOG        all  --  *      *       11.11.11.11          0.0.0.0/0            LOG flags 0 level 4
    0     0 DROP       all  --  *      *       10.10.10.10          0.0.0.0/0           
$ iptables -A INPUT -s 255.255.255.255 -j ACCEPT
$ iptables -nvL INPUT
Chain INPUT (policy ACCEPT 36 packets, 2600 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DROP       all  --  *      *       1.1.1.1              0.0.0.0/0           
    0     0 ACCEPT     all  --  *      *       12.12.12.12          0.0.0.0/0           
    0     0 ACCEPT     all  --  *      *       3.3.3.3              0.0.0.0/0           
    0     0 LOG        all  --  *      *       11.11.11.11          0.0.0.0/0            LOG flags 0 level 4
    0     0 DROP       all  --  *      *       10.10.10.10          0.0.0.0/0           
    0     0 ACCEPT     all  --  *      *       255.255.255.255      0.0.0.0/0  

4.3 刪除

4.3.1 Options
  • -D <CHAIN> <DETAILS>:根據(jù)規(guī)則的具體匹配條件與動(dòng)作進(jìn)行刪除
  • -D <CHAIN> #:根據(jù)規(guī)則的編號進(jìn)行刪除
  • -F <CHAIN>:清空指定鏈上的所有規(guī)則
  • -t <TABLE> -F:清空某種表在所有鏈上的規(guī)則
4.3.2 根據(jù)規(guī)則的具體情況進(jìn)行刪除

跟添加時(shí)的命令幾乎一模一樣

$ iptables -nvL INPUT
Chain INPUT (policy ACCEPT 78 packets, 5684 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DROP       all  --  *      *       1.1.1.1              0.0.0.0/0           
    0     0 ACCEPT     all  --  *      *       12.12.12.12          0.0.0.0/0           
    0     0 ACCEPT     all  --  *      *       3.3.3.3              0.0.0.0/0           
    0     0 LOG        all  --  *      *       11.11.11.11          0.0.0.0/0            LOG flags 0 level 4
    0     0 DROP       all  --  *      *       10.10.10.10          0.0.0.0/0           
    0     0 ACCEPT     all  --  *      *       255.255.255.255      0.0.0.0/0           
$ iptables -D INPUT -s 1.1.1.1 -j DROP
$ iptables -nvL INPUT
Chain INPUT (policy ACCEPT 5 packets, 388 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  *      *       12.12.12.12          0.0.0.0/0           
    0     0 ACCEPT     all  --  *      *       3.3.3.3              0.0.0.0/0           
    0     0 LOG        all  --  *      *       11.11.11.11          0.0.0.0/0            LOG flags 0 level 4
    0     0 DROP       all  --  *      *       10.10.10.10          0.0.0.0/0           
    0     0 ACCEPT     all  --  *      *       255.255.255.255      0.0.0.0/0       
4.3.3 根據(jù)規(guī)則編號進(jìn)行刪除
$ iptables -nvL INPUT --line
Chain INPUT (policy ACCEPT 32 packets, 2417 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 ACCEPT     all  --  *      *       12.12.12.12          0.0.0.0/0           
2        0     0 ACCEPT     all  --  *      *       3.3.3.3              0.0.0.0/0           
3        0     0 LOG        all  --  *      *       11.11.11.11          0.0.0.0/0            LOG flags 0 level 4
4        0     0 DROP       all  --  *      *       10.10.10.10          0.0.0.0/0           
5        0     0 ACCEPT     all  --  *      *       255.255.255.255      0.0.0.0/0           
$ iptables -D INPUT 5
$ iptables -nvL INPUT --line
Chain INPUT (policy ACCEPT 35 packets, 2784 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 ACCEPT     all  --  *      *       12.12.12.12          0.0.0.0/0           
2        0     0 ACCEPT     all  --  *      *       3.3.3.3              0.0.0.0/0           
3        0     0 LOG        all  --  *      *       11.11.11.11          0.0.0.0/0            LOG flags 0 level 4
4        0     0 DROP       all  --  *      *       10.10.10.10          0.0.0.0/0       
4.3.4 清空

iptables -F <CHAIN> # 清空鏈下的所有規(guī)則
iptables -t <TABLE> -F # 清空某個(gè)表中筷狼、所有鏈上的規(guī)則

4.4 修改

說是修改,可能本以為只要在命令中輸入所需修改部分的內(nèi)容即可氨距,但其實(shí)不然桑逝。想要修改,必須要像添加時(shí)一樣輸全了匹配規(guī)則俏让,只是修改的部分進(jìn)行更改楞遏,所以也是麻煩,有時(shí)不如刪掉再寫一條來得干凈首昔。

4.4.1 Options
  • -R <CHAIN> #:修改指定鏈中指定序號的規(guī)則
4.4.2 修改指定鏈中指定序號的規(guī)則
  • 看一下當(dāng)前 INPUT 鏈的規(guī)則
$ iptables -nvL INPUT --line
Chain INPUT (policy ACCEPT 106 packets, 8413 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 ACCEPT     all  --  *      *       12.12.12.12          0.0.0.0/0           
2        0     0 ACCEPT     all  --  *      *       3.3.3.3              0.0.0.0/0           
3        0     0 LOG        all  --  *      *       11.11.11.11          0.0.0.0/0            LOG flags 0 level 4
4        0     0 DROP       all  --  *      *       10.10.10.10          0.0.0.0/0   
  • 將 3號規(guī)則改為 REJECT(僅鍵入待修改部分)
    怎么剛一設(shè)置完就斷了寡喝?
$ iptables -R INPUT 3 -j REJECT
$ 
Socket error Event: 32 Error: 10053.
Connection closing...Socket close.

Connection closed by foreign host.

Disconnected from remote host(CentOS_7_1804_x64) at 17:23:56.

Type `help' to learn how to use Xshell prompt.
[E:\~]$ 

我們進(jìn) tty 看一下到底是怎么回事。怎么源 IP 變成 0.0.0.0 (相當(dāng)于 all)了勒奇,當(dāng)SSH 當(dāng)然就斷了预鬓!


這就是本節(jié)開始時(shí)所講的,并不是僅鍵入待修改的那部分信息即可赊颠,而需要完整的輸入整條規(guī)則格二,看看下面這個(gè)例子。

  • 將 3 號規(guī)則改回原樣(全面輸入)
    這回終于可以了


4.5 修改鏈的缺省動(dòng)作

4.5.1 Options
  • -P <CHAIN> <ACTION>:修改指定鏈的缺省動(dòng)作
4.5.2 示例
  • 看看當(dāng)前 INPUT 鏈的缺省動(dòng)作
$ iptables -nvL INPUT
Chain INPUT (policy ACCEPT 104 packets, 9184 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  *      *       12.12.12.12          0.0.0.0/0           
    0     0 ACCEPT     all  --  *      *       3.3.3.3              0.0.0.0/0           
    0     0 ACCEPT     all  --  *      *       11.11.11.11          0.0.0.0/0           
    0     0 DROP       all  --  *      *       10.10.10.10          0.0.0.0/0           
  • 改為 DROP(又得掉線了)
    $ iptables -P INPUT DROP

  • 上 tty 去看一眼竣蹦,果然改成 DROP 了


5. iptables nat表的應(yīng)用

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末顶猜,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子痘括,更是在濱河造成了極大的恐慌长窄,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件纲菌,死亡現(xiàn)場離奇詭異挠日,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)翰舌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進(jìn)店門嚣潜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人椅贱,你說我怎么就攤上這事郑原“拢” “怎么了夜涕?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵犯犁,是天一觀的道長。 經(jīng)常有香客問我女器,道長酸役,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任驾胆,我火速辦了婚禮涣澡,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘丧诺。我一直安慰自己入桂,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布驳阎。 她就那樣靜靜地躺著抗愁,像睡著了一般。 火紅的嫁衣襯著肌膚如雪呵晚。 梳的紋絲不亂的頭發(fā)上蜘腌,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天,我揣著相機(jī)與錄音饵隙,去河邊找鬼撮珠。 笑死,一個(gè)胖子當(dāng)著我的面吹牛金矛,可吹牛的內(nèi)容都是我干的芯急。 我是一名探鬼主播,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼驶俊,長吁一口氣:“原來是場噩夢啊……” “哼娶耍!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起废睦,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤伺绽,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后嗜湃,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體奈应,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年购披,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了杖挣。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,605評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡刚陡,死狀恐怖惩妇,靈堂內(nèi)的尸體忽然破棺而出株汉,到底是詐尸還是另有隱情,我是刑警寧澤歌殃,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布乔妈,位于F島的核電站,受9級特大地震影響氓皱,放射性物質(zhì)發(fā)生泄漏路召。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一波材、第九天 我趴在偏房一處隱蔽的房頂上張望股淡。 院中可真熱鬧,春花似錦廷区、人聲如沸唯灵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽埠帕。三九已至,卻和暖如春大脉,著一層夾襖步出監(jiān)牢的瞬間搞监,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工镰矿, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留琐驴,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓秤标,卻偏偏與公主長得像绝淡,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子苍姜,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評論 2 348

推薦閱讀更多精彩內(nèi)容