開發(fā)環(huán)境:
主機:Ubuntu12.04
開發(fā)板:RT5350
Openwrt:Openwrt15.05
1 OpenWrt 內(nèi)置防火墻介紹
Openwrt 是一個 GNU/Linux 的發(fā)行版, 和其他大多數(shù)的發(fā)行版一樣,Openwrt 的防火墻同樣也是基于 iptables。 在 OpenWRT 下防火墻的默認行為已經(jīng)可以滿足路由器的需要,一般情況下也無需修改。
OpenWrt 關(guān)于 NAT、 DMZ、防火墻規(guī)則等等都是由配置文件 /etc/config/firewall 文件進行控制的,有關(guān)于什么是 NAT 或者 DMZ 等內(nèi)容,下文會講到。對于防火墻的修改工作,我們采用 vi 進行直接的文件編輯完成。
防火墻文件總會在/etc/init.d/firewall 啟動的時候由 UCI 進行解碼并且生成 iptables規(guī)則生效。因此使用者不需要了解 iptables 即可通過配置文件實現(xiàn)防火墻控制。防火墻的修改生效,需要重啟防火墻執(zhí)行以下指令:
#/etc/init.d/firewall reload
或執(zhí)行:
#/etc/init.d/firewall restart
查看當前 iptables 的已啟用策略語法為:
#iptables -L
2 防火墻文件內(nèi)容分析
我們打開防火墻文件查看一下:
#vi /etc/config/firewall
- 我們可以看到第一部分的內(nèi)容(默認參數(shù)表):
這里是防火墻默認的參數(shù)表,其內(nèi)容和相應的動作可以有如下選擇:
防火墻文件這方面的內(nèi)容為:
syn_flood 1 表示: 是否啟用防洪水攻擊。可選值: 0 關(guān)閉,1 啟用。
input ACCEPT 表示: 設(shè)置 INPUT 鏈(chain)的過濾策略,可選值: ACCEPT 允許, REJECT拒絕。
output ACCEPT 表示: 設(shè)置 OUTPUT 鏈(chain)的過濾策略,可選值: ACCEPT 允許,REJECT 拒絕。
forward REJECT 是 設(shè)置 FORWARD 鏈(chain)的過濾策略,可選值: ACCEPT 允許,REJECT 拒絕。
disable_ipv6 1 表示: 設(shè)置關(guān)閉掉 IPv6 的防火墻策略,可選值: 0 忽略,1 關(guān)閉
這部分參考值既是系統(tǒng)默認的即可,無需修改:
- 防火墻的第二個內(nèi)容(域):
config 后面是表示配置項的名稱,這里”zone”為域的意思。
name 表示域的名字,必須是唯一值,可選值: wan, lan
network 表示網(wǎng)絡列表,用來指示哪些接口被捆綁到這個域中,可選接口的名稱,比如: lan,
wan, wan6
input ACCEP 允許 INPUT 鏈(chain)的過濾策略
output ACCEPT 允許 OUTPUT 鏈(chain)的過濾策略
forward ACCEPT 允許 FORWARD 鏈(chain)的過濾策略
masq 1 表示: 設(shè)置傳輸偽裝,如果是 WAN 口必須為 1
mtu_fix 1 表示: 設(shè)置 MTU 的 MSS 鉗制,如果是 WAN 口請為 1
簡單來說:
mtu 是網(wǎng)絡傳輸最大報文包。
mss 是網(wǎng)絡傳輸數(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ā)來源
dest wan 是 設(shè)置轉(zhuǎn)發(fā)目標
這部分作用描述如下:
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ī)則):
這里只是羅列出了幾個防火墻的規(guī)則,其實防火墻規(guī)則在/etc/config/firewall 中可以有任意數(shù)量的規(guī)則,這些規(guī)則定義了數(shù)據(jù)傳輸?shù)膭幼骱托袨槭潜辉试S還是拒絕。
對于防火墻規(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.
我們再解釋一下防火墻規(guī)則的相應選項的意思:
name 表示:設(shè)置當前這個 rule 的名稱
target 表示:設(shè)置防火墻動作,可選值: ACCEPT 許可, REJECT 拒絕, DROP 拋棄
src 表示: 數(shù)據(jù)源的 zone 域是哪個。可選值: wan / lan
src_ip 表示:數(shù)據(jù)源的 IP 地址是哪個。
src_mac 表示:數(shù)據(jù)源的 MAC 地址是哪個。
src_port 表示:數(shù)據(jù)源的端口,可以是一個端口,或一個端口范圍,但是必須同時指定了協(xié)議類型
proto 表示: 數(shù)據(jù)源的協(xié)議類型, 可選值: tcp, udp, tcpudp, udplit, icmp, esp, ah, sctp,
或 all 表示全部
dest 表示:數(shù)據(jù)目標的 zone 域是哪個。可選值: wan / lan
dest_ip 表示:數(shù)據(jù)目標的 IP 地址。
dest_port 表示:數(shù)據(jù)目標的端口,可以是一個端口,或一個端口范圍,但是必須同時指定了協(xié)議類型
family 表示:數(shù)據(jù)的協(xié)議族,可選值: ipv4, ipv6, any
rule 規(guī)則設(shè)置可以靈活,比如允許來自 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 防火墻允許使用者通過 WAN 口訪問特定的端口重定向給局域網(wǎng)的一臺電腦設(shè)備(比如 WAN 口訪問 80 端口(HTTP)將重定向給局域網(wǎng)某臺網(wǎng)站服務器)。 端口重定向是在防火墻配置/etc/config/firewall 中定義 redirect 段策略實現(xiàn)的。所有匹配的來源數(shù)據(jù)將根據(jù)目標設(shè)置轉(zhuǎn)發(fā)到目標主機上。 firewall 配置中可以有多個 redirect 策略,默認是沒有開放任何重定向的,如果你需要重定向請使用 vi 或 UCI 進行配置。
name 表示:設(shè)置當前這個 redirect 的名稱
src 表示:轉(zhuǎn)發(fā)源的 zone 域,一般轉(zhuǎn)發(fā)都是轉(zhuǎn)發(fā)從 wan 過來的訪問
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ā)目標的 zone 域
dest_ip 表示:轉(zhuǎn)發(fā)目標的 IP 地址指定
dest_mac 表示:轉(zhuǎn)發(fā)目標的 MAC 地址指定
dest_port 表示:轉(zhuǎn)發(fā)目標的端口指定
端口重定向的可配置性很靈活。比如我們將 9020 這個端口轉(zhuǎn)發(fā)給內(nèi)網(wǎng)一臺服務器的 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)絡不能訪問內(nèi)部網(wǎng)絡服務器的問題,而設(shè)立的一個非安全系統(tǒng)與安全系統(tǒng)之間的緩沖區(qū),這個緩沖區(qū)位于企業(yè)內(nèi)部網(wǎng)絡和外部網(wǎng)絡之間的小網(wǎng)絡區(qū)域內(nèi),在這個小網(wǎng)絡區(qū)域內(nèi)可以放置一些必須公開的服務器設(shè)施,如企業(yè) Web 服務器、FTP 服務器和論壇等。另一方面,通過這樣一個 DMZ 區(qū)域,更加有效地保護了內(nèi)部網(wǎng)絡,因為這種網(wǎng)絡部署,比起一般的防火墻方案,對攻擊者來說又多了一道關(guān)卡。端口映射與 DMZ 的區(qū)別在于:端口映射只是映射指定的端口,DMZ 相當于映射所有的端口,并且直接把主機暴露在網(wǎng)關(guān)中,比端口映射方便但是不安全。
下面是關(guān)于 dmz 的一個示意圖:
好的,結(jié)合之前簡單的規(guī)則部分,這里我們給出一個將電腦 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文章
429瀏覽量
36057 -
主機
+關(guān)注
關(guān)注
0文章
1032瀏覽量
35792 -
開發(fā)板
+關(guān)注
關(guān)注
25文章
5483瀏覽量
101932 -
開發(fā)環(huán)境
+關(guān)注
關(guān)注
1文章
238瀏覽量
17017 -
OpenWrt
+關(guān)注
關(guān)注
10文章
131瀏覽量
40064
發(fā)布評論請先 登錄
Openwrt開發(fā)指南 第1章 OpenWrt入門
Openwrt開發(fā)指南 第2章 OpenWrt開發(fā)環(huán)境搭建
Openwrt開發(fā)指南 第3章 OpenWrt下載及配置
Openwrt開發(fā)指南 第12章 添加OpenWrt軟件包
Openwrt開發(fā)指南 第13章 OpenWrt啟動流程
Openwrt開發(fā)指南 第22章 Openwrt串口的使用2
發(fā)現(xiàn) STM32 防火墻的安全配置
防火墻原理
NetScreen防火墻策略與冗余配置指南
openwrt路由器防火墻配置方法

評論