iptables 概述 表鏈 規則 增刪改查

從邏輯上講。防火墻可以大體分為主機防火墻和網絡防火墻。

主機防火墻:針對于單個主機進行防護。

網絡防火墻:往往處于網絡入口或邊緣,針對于網絡入口進行防護,服務于防火墻背后的本地局域網。

網絡防火墻和主機防火墻并不沖突,可以理解為,網絡防火墻主外(集體), 主機防火墻主內(個人)。

從物理上講,防火墻可以分為硬件防火墻和軟件防火墻。

硬件防火墻:在硬件級別實現部分防火墻功能,另一部分功能基于軟件實現,性能高,成本高。

軟件防火墻:應用軟件處理邏輯運行于通用硬件平臺之上的防火墻,性能低,成本低。

iptables其實不是真正的防火墻,我們可以把它理解成一個客戶端代理,用戶通過iptables這個代理,將用戶的安全設定執行到對應的"安全框架"中,這個"安全框架"才是真正的防火墻,這個框架的名字叫netfilter

Netfilter是Linux操作系統核心層內部的一個數據包處理模塊,它具有如下功能:
網絡地址轉換(Network Address Translate)
數據包內容修改
以及數據包過濾的防火墻功能


iptables_概念.png

所以說,雖然我們使用service iptables start啟動iptables"服務",但是其實準確的來說,iptables并沒有一個守護進程,所以并不能算是真正意義上的服務,而應該算是內核提供的功能。

iptables基礎

我們知道iptables是按照規則來辦事的,我們就來說說規則(rules),規則其實就是網絡管理員預定義的條件,規則一般的定義為"如果數據包頭符合這樣的條件,就這樣處理這個數據包"。規則存儲在內核空間的信息包過濾表中,這些規則分別指定了源地址、目的地址、傳輸協議(如TCP、UDP、ICMP)和服務類型(如HTTP、FTP和SMTP)等。當數據包與規則匹配時,iptables就根據規則所定義的方法來處理這些數據包,如放行(accept)、拒絕(reject)和丟棄(drop)等。配置防火墻的主要工作就是添加、修改和刪除這些規則。

當客戶端訪問服務器的web服務時,客戶端發送報文到網卡,而tcp/ip協議棧是屬于內核的一部分,所以,客戶端的信息會通過內核的TCP協議傳輸到用戶空間中的web服務中,而此時,客戶端報文的目標終點為web服務所監聽的套接字(IP:Port)上,當web服務需要響應客戶端請求時,web服務發出的響應報文的目標終點則為客戶端,這個時候,web服務所監聽的IP與端口反而變成了原點,我們說過,netfilter才是真正的防火墻,它是內核的一部分,所以,如果我們想要防火墻能夠達到"防火"的目的,則需要在內核中設置關卡,所有進出的報文都要通過這些關卡,經過檢查后,符合放行條件的才能放行,符合阻攔條件的則需要被阻止,于是,就出現了input關卡和output關卡,而這些關卡在iptables中不被稱為"關卡",而被稱為"鏈"。

![iptables詳解(1):
iptables_簡圖.png

也就是其他"鏈",他們就是 "路由前"、"轉發"、"路由后",他們的英文名是

PREROUTING、FORWARD、POSTROUTING

也就是說,當我們啟用了防火墻功能時,報文需要經過如下關卡,也就是說,根據實際情況的不同,報文經過"鏈"可能不同。如果報文需要轉發,那么報文則不會經過input鏈發往用戶空間,而是直接在內核空間中經過forward鏈和postrouting鏈轉發出去的。

![iptables詳解(1):
iptables_概念圖2.png

所以,根據上圖,我們能夠想象出某些常用場景中,報文的流向:

到本機某進程的報文:PREROUTING --> INPUT

由本機轉發的報文:PREROUTING --> FORWARD --> POSTROUTING

由本機的某進程發出報文(通常為響應報文):OUTPUT --> POSTROUTING

鏈的概念

現在,我們想象一下,這些"關卡"在iptables中為什么被稱作"鏈"呢?我們知道,防火墻的作用就在于對經過的報文匹配"規則",然后執行對應的"動作",所以,當報文經過這些關卡的時候,則必須匹配這個關卡上的規則,但是,這個關卡上可能不止有一條規則,而是有很多條規則,當我們把這些規則串到一個鏈條上的時候,就形成了"鏈",所以,我們把每一個"關卡"想象成如下圖中的模樣 ,這樣來說,把他們稱為"鏈"更為合適,每個經過這個"關卡"的報文,都要將這條"鏈"上的所有規則匹配一遍,如果有符合條件的規則,則執行規則對應的動作。
iptables_表.png

表的概念

我們再想想另外一個問題,我們對每個"鏈"上都放置了一串規則,但是這些規則有些很相似,比如,A類規則都是對IP或者端口的過濾,B類規則是修改報文,那么這個時候,我們是不是能把實現相同功能的規則放在一起呢,必須能的。

我們把具有相同功能的規則的集合叫做"表",所以說,不同功能的規則,我們可以放置在不同的表中進行管理,而iptables已經為我們定義了4種表,每種表對應了不同的功能,而我們定義的規則也都逃脫不了這4種功能的范圍,所以,學習iptables之前,我們必須先搞明白每種表 的作用。

iptables為我們提供了如下規則的分類,或者說,iptables為我們提供了如下"表"

filter表:負責過濾功能,防火墻;內核模塊:iptables_filter

nat表:network address translation,網絡地址轉換功能;內核模塊:iptable_nat

mangle表:拆解報文,做出修改,并重新封裝 的功能;iptable_mangle

raw表:關閉nat表上啟用的連接追蹤機制;iptable_raw

也就是說,我們自定義的所有規則,都是這四種分類中的規則,或者說,所有規則都存在于這4張"表"中。

表鏈關系

但是我們需要注意的是,某些"鏈"中注定不會包含"某類規則",就像某些"關卡"天生就不具備某些功能一樣,比如,A"關卡"只負責打擊陸地敵人,沒有防空能力,B"關卡"只負責打擊空中敵人,沒有防御步兵的能力,C"關卡"可能比較NB,既能防空,也能防御陸地敵人,D"關卡"最屌,海陸空都能防。
nat 表中的規則可以被哪些鏈使用:PREROUTING,OUTPUT,POSTROUTING(centos7中還有INPUT,centos6中沒有)

filter 表中的規則可以被哪些鏈使用:INPUT,FORWARD,OUTPUT


iptables_流程圖.png

我們在寫Iptables規則的時候,要時刻牢記這張路由次序圖,靈活配置規則。

規則的概念

說了一圈又說回來了,在上述描述中我們一直在提規則,可是沒有細說,現在說說它。

先說說規則的概念,然后再通俗的解釋它。

規則:根據指定的匹配條件來嘗試匹配每個流經此處的報文,一旦匹配成功,則由規則后面指定的處理動作進行處理;

那么我們來通俗的解釋一下什么是iptables的規則,之前打過一個比方,每條"鏈"都是一個"關卡",每個通過這個"關卡"的報文都要匹配這個關卡上的規則,如果匹配,則對報文進行對應的處理,比如說,你我二人此刻就好像兩個"報文",你我二人此刻都要入關,可是城主有命,只有器宇軒昂的人才能入關,不符合此條件的人不能入關,于是守關將士按照城主制定的"規則",開始打量你我二人,最終,你順利入關了,而我已被拒之門外,因為你符合"器宇軒昂"的標準,所以把你"放行"了,而我不符合標準,所以沒有被放行,其實,"器宇軒昂"就是一種"匹配條件","放行"就是一種"動作","匹配條件"與"動作"組成了規則。

了解了規則的概念,那我們來聊聊規則的組成部分,此處只是大概的將規則的結構列出,后面的文章中會單獨對規則進行總結。

規則由匹配條件和處理動作組成。

匹配條件
匹配條件分為基本匹配條件與擴展匹配條件

基本匹配條件:

源地址Source IP,目標地址 Destination IP

上述內容都可以作為基本匹配條件。

擴展匹配條件:

除了上述的條件可以用于匹配,還有很多其他的條件可以用于匹配,這些條件泛稱為擴展條件,這些擴展條件其實也是netfilter中的一部分,只是以模塊的形式存在,如果想要使用這些條件,則需要依賴對應的擴展模塊。

源端口Source Port, 目標端口Destination Port

上述內容都可以作為擴展匹配條件

處理動作

處理動作在iptables中被稱為target(這樣說并不準確,我們暫且這樣稱呼),動作也可以分為基本動作和擴展動作。

此處列出一些常用的動作,之后的文章會對它們進行詳細的示例與總結:

ACCEPT:允許數據包通過。

DROP:直接丟棄數據包,不給任何回應信息,這時候客戶端會感覺自己的請求泥牛入海了,過了超時時間才會有反應。

REJECT:拒絕數據包通過,必要時會給數據發送端一個響應的信息,客戶端剛請求就會收到拒絕的信息。

SNAT:源地址轉換,解決內網用戶用同一個公網地址上網的問題。

MASQUERADE:是SNAT的一種特殊形式,適用于動態的、臨時會變的ip上。

DNAT:目標地址轉換。

REDIRECT:在本機做端口映射。

LOG:在/var/log/messages文件中記錄日志信息,然后將數據包傳遞給下一條規則,也就是說除了記錄以外不對數據包做任何其他操作,仍然讓下一條規則去匹配。

filter表

iptables為我們預定義了4張表,它們分別是raw表、mangle表、nat表、filter表,不同的表擁有不同的功能。

filter負責過濾功能,比如允許哪些IP地址訪問,拒絕哪些IP地址訪問,允許訪問哪些端口,禁止訪問哪些端口,filter表會根據我們定義的規則進行過濾,filter表應該是我們最常用到的表了,所以此處,我們以filter表為例,開始學習怎樣實際操作iptables。

怎樣查看filter表中的規則呢?使用如下命令即可查看。

[root@lb01 ~]# iptables -t filter -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

filter是默認表也可以不指定

[root@lb01 ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination    

我們使用-t選項,指定要操作的表,使用-L選項,查看-t選項對應的表的規則,-L選項的意思是,列出規則,所以,上述命令的含義為列出filter表的所有規則,上圖中,顯示出了3條鏈,INPUT鏈、FORWARD鏈、OUTPUT鏈,每條鏈中都有自己的規則,前文中,我們打過一個比方,把"鏈"比作"關卡",不同的"關卡"擁有不同的能力,所以,從上圖中可以看出,INPUT鏈、FORWARD鏈、OUTPUT鏈都擁有"過濾"的能力,所以,當我們要定義某條"過濾"的規則時,我們會在filter表中定義,但是具體在哪條"鏈"上定義規則呢?這取決于我們的工作場景。比如,我們需要禁止某個IP地址訪問我們的主機,我們則需要在INPUT鏈上定義規則。因為,我們在理論總結中已經提到過,報文發往本機時,會經過PREROUTING鏈與INPUT鏈(如果你沒有明白,請回顧前文),所以,如果我們想要禁止某些報文發往本機,我們只能在PREROUTING鏈和INPUT鏈中定義規則,但是PREROUTING鏈并不存在于filter表中,換句話說就是,PREROUTING關卡天生就沒有過濾的能力,所以,我們只能在INPUT鏈中定義,當然,如果是其他工作場景,可能需要在FORWARD鏈或者OUTPUT鏈中定義過濾規則。
我們可以使用iptables -t filter -L命令列出filter表中的所有規則,那么舉一反三,我們也可以查看其它表中的規則,示例如下。

iptables -t raw -L

iptables -t mangle -L

iptables -t nat -L

其實,我們可以省略-t filter,當沒有使用-t選項指定表時,默認為操作filter表,即iptables -L表示列出filter表中的所有規則。
我們還可以只查看指定表中的指定鏈的規則,比如,我們只查看filter表中INPUT鏈的規則

上圖中只顯示了filter表中INPUT鏈中的規則(省略-t選項默認為filter表),當然,你也可以指定只查看其他鏈,其實,我們查看到的信息還不是最詳細的信息,我們可以使用-v選項,查看出更多的、更詳細的信息.

[root@lb01 ~]# iptables -t filter -I INPUT -p tcp -s 10.0.0.0/24 --dport 9999 -j DROP
[root@lb01 ~]# iptables -nvL
Chain INPUT (policy ACCEPT 6 packets, 428 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DROP       tcp  --  *      *       10.0.0.0/24          0.0.0.0/0            tcp dpt:9999
    0     0 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:9999

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 4 packets, 560 bytes)
 pkts bytes target     prot opt in     out     source               destination         

可以看到,使用-v選項后,iptables為我們展示的信息更多了,那么,這些字段都是什么意思呢?我們來總結一下,看不懂沒關系,等到實際使用的時候,自然會明白,此處大概了解一下即可。

其實,這些字段就是規則對應的屬性,說白了就是規則的各種信息,那么我們來總結一下這些字段的含義。

pkts:對應規則匹配到的報文的個數。

bytes:對應匹配到的報文包的大小總和。

target:規則對應的target,往往表示規則對應的"動作",即規則匹配成功后需要采取的措施。

prot:表示規則對應的協議,是否只針對某些協議應用此規則。

opt:表示規則對應的選項。

in:表示數據包由哪個接口(網卡)流入,我們可以設置通過哪塊網卡流入的報文需要匹配當前規則。

out:表示數據包由哪個接口(網卡)流出,我們可以設置通過哪塊網卡流出的報文需要匹配當前規則。

source:表示規則對應的源頭地址,可以是一個IP,也可以是一個網段。

destination:表示規則對應的目標地址。可以是一個IP,也可以是一個網段。

[root@lb01 ~]# iptables -vL
Chain INPUT (policy ACCEPT 21 packets, 1596 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DROP       tcp  --  any    any     10.0.0.0/24          anywhere             tcp dpt:distinct
    0     0 DROP       tcp  --  any    any     anywhere             anywhere             tcp dpt:distinct

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 16 packets, 2056 bytes)
 pkts bytes target     prot opt in     out     source               destination         

細心如你一定發現了,上圖中的源地址與目標地址都為anywhere,看來,iptables默認為我們進行了名稱解析,但是在規則非常多的情況下如果進行名稱解析,效率會比較低,所以,在沒有此需求的情況下,我們可以使用-n選項,表示不對IP地址進行名稱反解,直接顯示IP地址
如果你習慣了查看有序號的列表,你在查看iptables表中的規則時肯定會很不爽,沒有關系,滿足你,使用--line-numbers即可顯示規則的編號,示例如下。

[root@lb01 ~]# iptables -nvL --line
Chain INPUT (policy ACCEPT 48 packets, 3588 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1        0     0 DROP       tcp  --  *      *       10.0.0.0/24          0.0.0.0/0            tcp dpt:9999
2        0     0 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:9999

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 34 packets, 4355 bytes)
num   pkts bytes target     prot opt in     out     source               destination         

--line-numbers選項并沒有對應的短選項,不過我們縮寫成--line時,centos中的iptables也可以識別。
上圖中INPUT鏈后面的括號中包含policy ACCEPT ,0 packets,0bytes 三部分。

policy表示當前鏈的默認策略,policy ACCEPT表示上圖中INPUT的鏈的默認動作為ACCEPT,換句話說就是,默認接受通過INPUT關卡的所有請求,所以我們在配置INPUT鏈的具體規則時,應該將需要拒絕的請求配置到規則中,說白了就是"黑名單"機制,默認所有人都能通過,只有指定的人不能通過,當我們把INPUT鏈默認動作設置為接受(ACCEPT),就表示所有人都能通過這個關卡,此時就應該在具體的規則中指定需要拒絕的請求,就表示只有指定的人不能通過這個關卡,這就是黑名單機制,但是,你一定發現了,上圖中所顯示出的規則,大部分都是接受請求(ACCEPT),并不是想象中的拒絕請求(DROP或者REJECT),這與我們所描述的黑名單機制不符啊,按照道理來說,默認動作為接受,就應該在具體的規則中配置需要拒絕的人,但是上圖中并不是這樣的,之所以出現上圖中的情況,是因為IPTABLES的工作機制導致到,上例其實是利用了這些"機制",完成了所謂的"白名單"機制,并不是我們所描述的"黑名單"機制,我們此處暫時不用關注這一點,之后會進行詳細的舉例并解釋,此處我們只要明白policy對應的動作為鏈的默認動作即可,或者換句話說,我們只要理解,policy為鏈的默認策略即可。

packets表示當前鏈(上例為INPUT鏈)默認策略匹配到的包的數量,0 packets表示默認策略匹配到0個包。

bytes表示當前鏈默認策略匹配到的所有包的大小總和。

其實,我們可以把packets與bytes稱作"計數器",上圖中的計數器記錄了默認策略匹配到的報文數量與總大小,"計數器"只會在使用-v選項時,才會顯示出來。

命令小節

好了,我們已經會使用命令簡單的查看iptables表的規則了,為了方便以后回顧,我們將上文中的相關命令總結一下。

iptables -t 表名 -L

查看對應表的所有規則,-t選項指定要操作的表,省略"-t 表名"時,默認表示操作filter表,-L表示列出規則,即查看規則。

iptables -t 表名 -L 鏈名

查看指定表的指定鏈中的規則。

 iptables -t 表名 -v -L

查看指定表的所有規則,并且顯示更詳細的信息(更多字段),-v表示verbose,表示詳細的,冗長的,當使用-v選項時,會顯示出"計數器"的信息,由于上例中使用的選項都是短選項,所以一般簡寫為iptables -t 表名 -vL

 iptables -t 表名 -n -L

表示查看表的所有規則,并且在顯示規則時,不對規則中的IP或者端口進行名稱反解,-n選項表示不解析IP地址。

 iptables --line-numbers -t 表名 -L

表示查看表的所有規則,并且顯示規則的序號,--line-numbers選項表示顯示規則的序號,注意,此選項為長選項,不能與其他短選項合并,不過此選項可以簡寫為--line,注意,簡寫后仍然是兩條橫杠,仍然是長選項。

 iptables -t 表名 -v -x -L

表示查看表中的所有規則,并且顯示更詳細的信息(-v選項),不過,計數器中的信息顯示為精確的計數值,而不是顯示為經過可讀優化的計數值,-x選項表示顯示計數器的精確值。

實際使用中,為了方便,往往會將短選項進行合并,所以,如果將上述選項都糅合在一起,可以寫成如下命令,此處以filter表為例。

iptables --line -t filter -nvxL

當然,也可以只查看某張表中的某條鏈,此處以filter表的INPUT鏈為例

iptables --line -t filter -nvxL INPUT

添加規則

注意點:添加規則時,規則的順序非常重要

在指定表的指定鏈的尾部添加一條規則,-A選項表示在對應鏈的末尾添加規則,省略-t選項時,表示默認操作filter表中的規則

命令語法:iptables -t 表名 -A 鏈名 匹配條件 -j 動作
示例:

iptables -t filter -A INPUT -s 192.168.1.146 -j DROP

在指定表的指定鏈的首部添加一條規則,-I選型表示在對應鏈的開頭添加規則

iptables -t 表名 -I 鏈名 匹配條件 -j 動作
示例:

iptables -t filter -I INPUT -s 192.168.1.146 -j ACCEPT

命令語法:iptables -t 表名 -I 鏈名 匹配條件 -j 動作
示例:

iptables -t filter -I INPUT -s 192.168.1.146 -j ACCEPT

在指定表的指定鏈的指定位置添加一條規則

命令語法:iptables -t 表名 -I 鏈名 規則序號 匹配條件 -j 動作
示例:

iptables -t filter -I INPUT 5 -s 192.168.1.146 -j REJECT

命令語法:iptables -t 表名 -I 鏈名 規則序號 匹配條件 -j 動作
示例:

iptables -t filter -I INPUT 5 -s 192.168.1.146 -j REJECT

設置指定表的指定鏈的默認策略(默認動作),并非添加規則。

命令語法:iptables -t 表名 -P 鏈名 動作
示例:

iptables -t filter -P FORWARD ACCEPT

命令語法:iptables -t 表名 -P 鏈名 動作
示例:

iptables -t filter -P FORWARD ACCEPT

上例表示將filter表中FORWARD鏈的默認策略設置為ACCEPT

刪除規則

注意點:如果沒有保存規則,刪除規則時請慎重

按照規則序號刪除規則,刪除指定表的指定鏈的指定規則,-D選項表示刪除對應鏈中的規則。

[root@lb01 ~]# iptables -nL --line
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
2    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
3    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
4    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0    

命令語法:iptables -t 表名 -D 鏈名 規則序號
示例:

iptables -t filter -D INPUT 3

表示刪除filter表中INPUT鏈中序號為3的規則。

按照具體的匹配條件與動作刪除規則,刪除指定表的指定鏈的指定規則。

命令語法:iptables -t 表名 -D 鏈名 匹配條件 -j 動作
示例:

iptables -t filter -D INPUT -s 192.168.1.146 -j DROP

表示刪除filter表中INPUT鏈中源地址為192.168.1.146并且動作為DROP的規則。

刪除指定表的指定鏈中的所有規則,-F選項表示清空對應鏈中的規則,執行時需三思。

命令語法:iptables -t 表名 -F 鏈名
示例:

iptables -t filter -F INPUT

刪除指定表中的所有規則,執行時需三思。

命令語法:iptables -t 表名 -F
示例:

iptables -t filter -F

修改規則

注意點:如果使用-R選項修改規則中的動作,那么必須指明原規則中的原匹配條件,例如源IP,目標IP等。

修改指定表中指定鏈的指定規則,-R選項表示修改對應鏈中的規則,使用-R選項時要同時指定對應的鏈以及規則對應的序號,并且規則中原本的匹配條件不可省略。

命令語法:iptables -t 表名 -R 鏈名 規則序號 規則原本的匹配條件 -j 動作
示例:

iptables -t filter -R INPUT 3 -s 192.168.1.146 -j ACCEPT

上述示例表示修改filter表中INPUT鏈的第3條規則,將這條規則的動作修改為ACCEPT, -s 192.168.1.146為這條規則中原本的匹配條件,如果省略此匹配條件,修改后的規則中的源地址可能會變為0.0.0.0/0。

其他修改規則的方法:先通過編號刪除規則,再在原編號位置添加一條規則。

修改指定表的指定鏈的默認策略(默認動作),并非修改規則,可以使用如下命令。

命令語法:iptables -t 表名 -P 鏈名 動作
示例:

iptables -t filter -P FORWARD ACCEPT

上例表示將filter表中FORWARD鏈的默認策略修改為ACCEPT

保存規則

保存規則命令如下,表示將iptables規則保存至/etc/sysconfig/iptables文件中,如果對應的操作沒有保存,那么當重啟iptables服務以后

service iptables save
注意點:centos7中使用默認使用firewalld,如果想要使用上述命令保存規則,需要安裝iptables-services,具體配置過程請回顧上文。

或者使用如下方法保存規則

iptables-save > /etc/sysconfig/iptables

可以使用如下命令從指定的文件載入規則,注意:重載規則時,文件中的規則將會覆蓋現有規則。

iptables-restore < /etc/sysconfig/iptables
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,119評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,382評論 3 415
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,038評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,853評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,616評論 6 408
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,112評論 1 323
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,192評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,355評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,869評論 1 334
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,727評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,928評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,467評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,165評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,570評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,813評論 1 282
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,585評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,892評論 2 372

推薦閱讀更多精彩內容

  • 1.安全技術 (1)入侵檢測與管理系統(Intrusion Detection Systems): 特點是不阻斷任...
    尛尛大尹閱讀 2,482評論 0 2
  • (本文源于轉載或摘抄整理) 一:前言 防火墻,其實說白了講,就是用于實現Linux下訪問控制的功能的,它分為硬件的...
    JackyTsuuuy閱讀 8,979評論 1 6
  • 一. 什么是防火墻 防火墻,就是用于實現Linux下訪問控制的功能的,它分為硬件的或者軟件的防火墻兩種。無論是在哪...
    InnocenceYWQ閱讀 1,066評論 0 3
  • iptables俗稱防火墻,或許我們已經不在陌生,但是作為openstack基礎,這里還是對其做一些補充,了解更多...
    ximitc閱讀 1,801評論 0 8
  • 今天早上起床,還沒睜開惺忪的雙眼,朦朧中看到閨蜜捧著一杯水進來,她每天在起早貪黑地工作與考公,真的很拼,親眼目睹她...
    書鎂閱讀 88評論 0 0