關于Linux防火墻iptables的介紹
在我們應用電腦時經(jīng)常會看到計算機的防火墻,如果你應用的是Linux操作系統(tǒng),你對Linux防火墻了解么?本文為你講解Linux防火墻iptables的知識,希望你能熟練掌握Linux防火墻iptables的知識。
要在網(wǎng)上傳輸?shù)臄?shù)據(jù)會被分成許多小的數(shù)據(jù)包,我們一旦接通了網(wǎng)絡,會有很多數(shù)據(jù)包進入,離開,或者經(jīng)過我們的計算機。首先我們要弄明白,防火墻將怎么對待這些數(shù)據(jù)包。
這些數(shù)據(jù)包會經(jīng)過一些相應的規(guī)則鏈,比如要進入你的計算機的數(shù)據(jù)包會首先進入INPUT鏈,從我們的計算機發(fā)出的數(shù)據(jù)包會經(jīng)過OUTPUT鏈,如果一臺計算機做一個網(wǎng)絡的網(wǎng)關(處于內網(wǎng)和外網(wǎng)兩個網(wǎng)絡連接的兩臺計算機,這兩臺計算機之間相互通訊的數(shù)據(jù)包會經(jīng)過這臺計算機,這臺計算機即相當于一個路由器),可能會有很多數(shù)據(jù)經(jīng)過這臺計算機,那么這些數(shù)據(jù)包必經(jīng)FORWARD鏈,F(xiàn)ORWARD鏈即數(shù)據(jù)轉發(fā)鏈。明白了這些“鏈”的概念我們才能進一步學習使用iptables。
現(xiàn)在我們再來分析一下iptables規(guī)則是如何工作的,假如我們要訪問網(wǎng)站www.yahoo.com,我們要對www.yahoo.com發(fā)出請求,這些數(shù)據(jù)包要經(jīng)過OUTPUT鏈,在請求發(fā)出前,Linux的內核會在OUTPUT鏈中檢查有沒有相應的規(guī)則適合這個數(shù)據(jù)包,如果沒有相應的規(guī)則,OUTPUT鏈還會有默認的規(guī)則,或者允許,或者不允許(事實上,不允許有兩種,一種是把請求拒絕,告訴發(fā)出請示的程序被拒絕;還有一種是丟棄,讓請求發(fā)出者傻等,直到超時)。如果得到允許,請求就發(fā)出了,而www.yahoo.com服務器返回的數(shù)據(jù)包會經(jīng)過INPUT鏈,當然,INPUT鏈中也會有相應的規(guī)則等著它。
下面我們介紹幾個iptable的命令
iptables -L [-t filter]
這條命令是顯示當前有什么已經(jīng)設置好的防火墻規(guī)則,可能的顯示結果如下:
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
從這里我們可以看出,iptables 有三個鏈分別是 INPUT OUTPUT 和FORWARD.其中
INPUT 是外部數(shù)據(jù)要進過我們主機的第一外關卡(當然你前面也可以再加硬件防火墻).
OUTPUT 是你的主機的數(shù)據(jù)送出時要做的過綠卡
FORWARD 是轉發(fā) 你在NAT時才會用到
要設置iptables 主要是對這三條鏈進行設置,當然也包括-nat的另外三個鏈,我們以后再說你要用iptables 你就得啟到它,啟動命令
service iptables restart
iptables的默認設置為 三條鏈都是ACCEPT 如下:
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
以上信息你可以用 iptables -L看到
總體來說iptables可以有二種設置
1.默認允許,拒絕特別的
2.默認拒絕,允許特別的
二者都有自己有特點,從安全角度看 個人偏向于第二種,就是默認拒絕,允許特別的.但iptalbes 默認是第一種 默認允許,拒絕特別的,你可以用命令改變默認值來達到我們的要求 命令如下
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
你再用iptables -L查看一下就會覺得默認值以改了
先來談炎幾個參數(shù)XZFL
-F 清除規(guī)則
-X 清除鏈
-Z 將鏈的記數(shù)的流量清零
一般來說 再創(chuàng)建訪問規(guī)則時 都會將原有的規(guī)則清零 這是一個比較好的習慣,因為某些規(guī)則的存在會影響你建的規(guī)則.
基本語法:
iptables [-t filter] [-AI INPUT,OUTPUT,FORWARD] [-io interface]
[-p tcp,udp.icmp,all] [-s ip/nerwork] [--sport ports]
[-d ip/netword] [--dport ports] [-j ACCEPT DROP]
以上是iptables的基本語法
A 是添加的意思
I 是播入的意思
io 指的是數(shù)據(jù)要進入或出去所要經(jīng)過的端口 如eth1 eth0 pppoe等
p 你所要指定的協(xié)議
-s 指源地址 可是單個IP如192.168.2.6 也可以是一個網(wǎng)絡 192.168.2.0/24 還可以 是一個域名 如163.com 如果你填寫的域名系統(tǒng)會自動解析出他的IP并在iptables里 顯示
--sport 來源端口
-d 同-s相似 只不過他指的是目標地址 也可以是IP 域名 和網(wǎng)絡
--dport 目標端口
-j 執(zhí)行參數(shù) ACCEPT DROP
注意:如果以有參數(shù)存在 則說明全部接受
1 如我要來自己l0接口的數(shù)據(jù)全部接受,我們可以寫成這樣:
iptables -A INPUT -i lo -j ACCEPT
2 如果我們想接受192.168.2.6這個IP地址傳來的數(shù)據(jù)我們可以這樣寫
iptablse -A INPUT -i eth1 -p tcp -s 192.168.2.6 -j ACCEPT
3 如果我們要拒絕來自己192.168.2.0/24這個網(wǎng)的telnet連接
iptablse -A INPUT -i eth1 -p udp -s 192.168.2.0/24
--sport 23 -j DROP
以上就是對Linux防火墻iptables的知識的介紹。
【編輯推薦】





















