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