開發(fā)環(huán)境:
主機(jī):Ubuntu12.04
開發(fā)板:RT5350
Openwrt:Openwrt15.05
1 OpenWrt 內(nèi)置防火墻介紹
Openwrt 是一個(gè) GNU/Linux 的發(fā)行版, 和其他大多數(shù)的發(fā)行版一樣,Openwrt 的防火墻同樣也是基于 iptables。 在 OpenWRT 下防火墻的默認(rèn)行為已經(jīng)可以滿足路由器的需要,一般情況下也無(wú)需修改。
OpenWrt 關(guān)于 NAT、 DMZ、防火墻規(guī)則等等都是由配置文件 /etc/config/firewall 文件進(jìn)行控制的,有關(guān)于什么是 NAT 或者 DMZ 等內(nèi)容,下文會(huì)講到。對(duì)于防火墻的修改工作,我們采用 vi 進(jìn)行直接的文件編輯完成。
防火墻文件總會(huì)在/etc/init.d/firewall 啟動(dòng)的時(shí)候由 UCI 進(jìn)行解碼并且生成 iptables規(guī)則生效。因此使用者不需要了解 iptables 即可通過(guò)配置文件實(shí)現(xiàn)防火墻控制。防火墻的修改生效,需要重啟防火墻執(zhí)行以下指令:
#/etc/init.d/firewall reload
或執(zhí)行:
#/etc/init.d/firewall restart
查看當(dāng)前 iptables 的已啟用策略語(yǔ)法為:
#iptables -L
2 防火墻文件內(nèi)容分析
我們打開防火墻文件查看一下:
#vi /etc/config/firewall
- 我們可以看到第一部分的內(nèi)容(默認(rèn)參數(shù)表):
這里是防火墻默認(rèn)的參數(shù)表,其內(nèi)容和相應(yīng)的動(dòng)作可以有如下選擇:
防火墻文件這方面的內(nèi)容為:
syn_flood 1 表示: 是否啟用防洪水攻擊??蛇x值: 0 關(guān)閉,1 啟用。
input ACCEPT 表示: 設(shè)置 INPUT 鏈(chain)的過(guò)濾策略,可選值: ACCEPT 允許, REJECT拒絕。
output ACCEPT 表示: 設(shè)置 OUTPUT 鏈(chain)的過(guò)濾策略,可選值: ACCEPT 允許,REJECT 拒絕。
forward REJECT 是 設(shè)置 FORWARD 鏈(chain)的過(guò)濾策略,可選值: ACCEPT 允許,REJECT 拒絕。
disable_ipv6 1 表示: 設(shè)置關(guān)閉掉 IPv6 的防火墻策略,可選值: 0 忽略,1 關(guān)閉
這部分參考值既是系統(tǒng)默認(rèn)的即可,無(wú)需修改:
- 防火墻的第二個(gè)內(nèi)容(域):
config 后面是表示配置項(xiàng)的名稱,這里”zone”為域的意思。
name 表示域的名字,必須是唯一值,可選值: wan, lan
network 表示網(wǎng)絡(luò)列表,用來(lái)指示哪些接口被捆綁到這個(gè)域中,可選接口的名稱,比如: lan,
wan, wan6
input ACCEP 允許 INPUT 鏈(chain)的過(guò)濾策略
output ACCEPT 允許 OUTPUT 鏈(chain)的過(guò)濾策略
forward ACCEPT 允許 FORWARD 鏈(chain)的過(guò)濾策略
masq 1 表示: 設(shè)置傳輸偽裝,如果是 WAN 口必須為 1
mtu_fix 1 表示: 設(shè)置 MTU 的 MSS 鉗制,如果是 WAN 口請(qǐng)為 1
簡(jiǎn)單來(lái)說(shuō):
mtu 是網(wǎng)絡(luò)傳輸最大報(bào)文包。
mss 是網(wǎng)絡(luò)傳輸數(shù)據(jù)最大值。
mss 加包頭數(shù)據(jù)就等于 mtu.
這部分的設(shè)置作用如下:
A zone section groups one more interfaces and serves as a source or destination for forwardings, rules and redirects. Masquerading (NAT) of outgoing traffic is controlled on a per-zone basis.
- 防火墻的第三部分內(nèi)容(轉(zhuǎn)發(fā)) :
src lan 是 設(shè)置轉(zhuǎn)發(fā)來(lái)源
dest wan 是 設(shè)置轉(zhuǎn)發(fā)目標(biāo)
這部分作用描述如下:
The forwarding sections control the traffic flow between zones and may enable MSS clamping for specific directions. Only one direction is covered by a forwarding rule. To allow bidirectional traffic flows between two zones, two forwardings are required, with src and dest reversed in each.
- 防火墻的第四部分內(nèi)容(規(guī)則):
這里只是羅列出了幾個(gè)防火墻的規(guī)則,其實(shí)防火墻規(guī)則在/etc/config/firewall 中可以有任意數(shù)量的規(guī)則,這些規(guī)則定義了數(shù)據(jù)傳輸?shù)膭?dòng)作和行為是被允許還是拒絕。
對(duì)于防火墻規(guī)則的作用描述如下:
Sections of the type rule can be used to define basic accept or reject rules to allow or restrict access to specific ports or hosts. Like redirects the rules are tied to the given source zone and match incoming traffic occuring there.
我們?cè)俳忉屢幌路阑饓σ?guī)則的相應(yīng)選項(xiàng)的意思:
name 表示:設(shè)置當(dāng)前這個(gè) rule 的名稱
target 表示:設(shè)置防火墻動(dòng)作,可選值: ACCEPT 許可, REJECT 拒絕, DROP 拋棄
src 表示: 數(shù)據(jù)源的 zone 域是哪個(gè)??蛇x值: wan / lan
src_ip 表示:數(shù)據(jù)源的 IP 地址是哪個(gè)。
src_mac 表示:數(shù)據(jù)源的 MAC 地址是哪個(gè)。
src_port 表示:數(shù)據(jù)源的端口,可以是一個(gè)端口,或一個(gè)端口范圍,但是必須同時(shí)指定了協(xié)議類型
proto 表示: 數(shù)據(jù)源的協(xié)議類型, 可選值: tcp, udp, tcpudp, udplit, icmp, esp, ah, sctp,
或 all 表示全部
dest 表示:數(shù)據(jù)目標(biāo)的 zone 域是哪個(gè)??蛇x值: wan / lan
dest_ip 表示:數(shù)據(jù)目標(biāo)的 IP 地址。
dest_port 表示:數(shù)據(jù)目標(biāo)的端口,可以是一個(gè)端口,或一個(gè)端口范圍,但是必須同時(shí)指定了協(xié)議類型
family 表示:數(shù)據(jù)的協(xié)議族,可選值: ipv4, ipv6, any
rule 規(guī)則設(shè)置可以靈活,比如允許來(lái)自 WAN 口的 ping,例:
config rule
option name Allow-Ping
option src wan
option proto icmp
option icmp_type echo-request
option family ipv4
option target ACCEPT
- 防火墻的第五部分內(nèi)容
OpenWrt 防火墻允許使用者通過(guò) WAN 口訪問特定的端口重定向給局域網(wǎng)的一臺(tái)電腦設(shè)備(比如 WAN 口訪問 80 端口(HTTP)將重定向給局域網(wǎng)某臺(tái)網(wǎng)站服務(wù)器)。 端口重定向是在防火墻配置/etc/config/firewall 中定義 redirect 段策略實(shí)現(xiàn)的。所有匹配的來(lái)源數(shù)據(jù)將根據(jù)目標(biāo)設(shè)置轉(zhuǎn)發(fā)到目標(biāo)主機(jī)上。 firewall 配置中可以有多個(gè) redirect 策略,默認(rèn)是沒有開放任何重定向的,如果你需要重定向請(qǐng)使用 vi 或 UCI 進(jìn)行配置。
name 表示:設(shè)置當(dāng)前這個(gè) redirect 的名稱
src 表示:轉(zhuǎn)發(fā)源的 zone 域,一般轉(zhuǎn)發(fā)都是轉(zhuǎn)發(fā)從 wan 過(guò)來(lái)的訪問
src_ip 表示:轉(zhuǎn)發(fā)源的 IP 地址指定
src_mac 表示:轉(zhuǎn)發(fā)源的 MAC 地址指定
src_port 表示:轉(zhuǎn)發(fā)源的端口指定
proto 表示: 轉(zhuǎn)發(fā)源的協(xié)議類型, 可選值: tcp, udp, tcpudp, udplit, icmp, esp, ah, sctp, 或
all 表示全部
dest 表示:轉(zhuǎn)發(fā)目標(biāo)的 zone 域
dest_ip 表示:轉(zhuǎn)發(fā)目標(biāo)的 IP 地址指定
dest_mac 表示:轉(zhuǎn)發(fā)目標(biāo)的 MAC 地址指定
dest_port 表示:轉(zhuǎn)發(fā)目標(biāo)的端口指定
端口重定向的可配置性很靈活。比如我們將 9020 這個(gè)端口轉(zhuǎn)發(fā)給內(nèi)網(wǎng)一臺(tái)服務(wù)器的 80 端口,如下:
config redirect
option name '9020-80'
option proto 'tcp'
option src 'wan'
option src_dport '9020'
option dest 'lan'
option dest_ip '192.168.1.100'
option dest_port '80'
3 DMZ 介紹
DMZ 是英文“ demilitarized zone”的縮寫,中文名稱為“隔離區(qū)”,也稱“非軍事化區(qū)”。它是為了解決安裝防火墻后外部網(wǎng)絡(luò)不能訪問內(nèi)部網(wǎng)絡(luò)服務(wù)器的問題,而設(shè)立的一個(gè)非安全系統(tǒng)與安全系統(tǒng)之間的緩沖區(qū),這個(gè)緩沖區(qū)位于企業(yè)內(nèi)部網(wǎng)絡(luò)和外部網(wǎng)絡(luò)之間的小網(wǎng)絡(luò)區(qū)域內(nèi),在這個(gè)小網(wǎng)絡(luò)區(qū)域內(nèi)可以放置一些必須公開的服務(wù)器設(shè)施,如企業(yè) Web 服務(wù)器、FTP 服務(wù)器和論壇等。另一方面,通過(guò)這樣一個(gè) DMZ 區(qū)域,更加有效地保護(hù)了內(nèi)部網(wǎng)絡(luò),因?yàn)檫@種網(wǎng)絡(luò)部署,比起一般的防火墻方案,對(duì)攻擊者來(lái)說(shuō)又多了一道關(guān)卡。端口映射與 DMZ 的區(qū)別在于:端口映射只是映射指定的端口,DMZ 相當(dāng)于映射所有的端口,并且直接把主機(jī)暴露在網(wǎng)關(guān)中,比端口映射方便但是不安全。
下面是關(guān)于 dmz 的一個(gè)示意圖:
好的,結(jié)合之前簡(jiǎn)單的規(guī)則部分,這里我們給出一個(gè)將電腦 192.168.1.2 設(shè)置 DMZ 隔離區(qū)的例子:
Simple DMZ rule
The following rule redirects all WAN ports for all protocols to the internal host
192.168.1.2.
config redirect
option src wan
option proto all
option dest_ip 192.168.1.2
審核編輯:湯梓紅
-
防火墻
+關(guān)注
關(guān)注
0文章
417瀏覽量
35608 -
主機(jī)
+關(guān)注
關(guān)注
0文章
993瀏覽量
35114 -
開發(fā)板
+關(guān)注
關(guān)注
25文章
5032瀏覽量
97371 -
開發(fā)環(huán)境
+關(guān)注
關(guān)注
1文章
225瀏覽量
16609 -
OpenWrt
+關(guān)注
關(guān)注
10文章
130瀏覽量
39296
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論