国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

實現一個網橋式防火墻

安全 網站安全
傳統防火墻和網橋式防火墻有什么區別呢?通常一個防火墻象一個路由器一樣工作:內部系統被設置為將防火墻看做是通向外部網絡的網關,并且外部的路由器被設置為將防火墻看做是連往內部被保護的網絡的網關。

傳統防火墻和網橋式防火墻有什么區別呢?通常一個防火墻象一個路由器一樣工作:內部系統被設置為將防火墻看做是通向外部網絡的網關,并且外部的路由器被設置為將防火墻看做是連往內部被保護的網絡的網關。一個網橋則是一個聯結一個或多個網段的設備,在各個網段之間轉發數據,而網絡中其他設備并不會感覺到存在一個網橋。

換句話說,一個路由器將兩個網絡連接在一起,在兩者之間傳輸數據;一個網橋則更象一段網線,將一個網絡的兩個部分連接在一起。一個網橋防火墻則象網橋一樣工作,而不被兩端設備發現,但是同樣具有過濾通過它的數據包的功能。

為什么會需要實現網橋式防火墻呢?一般有以下幾個原因

* 你可以在網絡中添加一個防火墻而不需要修改網絡中任何設備的參數。
* 你可能希望保護網絡的某一個部分而卻沒有權利控制外部路由的參數信息。

我遇到的問題

我的辦公室是一個ADSL連接到Demon互聯網,同時有16個IP地址的子網可供使用。因為英國ISP的特殊原因,線路和路由器是由英國電信公司安裝和擁有,因此我們有權利配置外部路由器來指定誰是內部網絡的網關,這樣我只有兩種選擇:

* 直接將每臺主機和ADSL路由器相連接,并且獨立地為每臺主機使用iptables來設置防火墻規則。
* 另外一種選擇是使用NAT功能的防火墻來帶動內部網絡訪問互聯網。

第一種方法是不可接受的,因為這樣將大大增加出錯和系統管理開銷。第二種方法也優缺點,雖然大多數應用都能被NAT方式支持,但是也有例外,例如視頻流和VPN等等。一個網橋防火墻則能解決這些問題,防火墻能架設在ADSL路由器和內部網絡之間來保護網絡,但同時不需要修改配置。最后一個障礙是在標準的Linux內核中完全旁路了iptables,因此你能使用網橋或者是iptables防火墻,但是不能同時使用該功能。

解決方案

幸運的是,有一個項目專門實現支持iptables的網橋,因此任何穿過網橋的數據包可以被遞交給iptables規則進行過濾處理。結果是防火墻可以是完全透明于網絡的,不需要特殊的路由功能。就互聯網而言,防火墻并不存在,除了特定的連接被阻塞。網橋軟件是一個內核補丁來支持已有的網橋代碼可以連同iptables一起工作。方便的是開發者已經制作了RPM形式的支持網橋防火墻的內核。但不方便的是相關文檔太少,因此該文章就是幫助那些希望實現網橋式防火墻的人們。

橋接和路由 - 是如何工作的

簡單的說,Linux網橋實現一般是在具有一個或多個網絡接口的設備上實現的,通過檢測多個網段的活動性,橋接代碼學習到哪個MAC地址從哪個接口可以到達,并且使用該信息來判斷是否要中繼一個數據包到另外一個網段。網橋接口本身是沒有分配IP地址的,但是整個網橋被配置作為防火墻的單個接口。

在橋接情況下目的地址為橋設備本身的數據需要經過filter表的INPUT規則鏈和mangle表的PREROUTING規則鏈;從橋設備自身發出的數據需要經過filter表的OUTPUT規則鏈和mangle表的PREROUTING規則鏈;而流經橋設備的數據則要分別經過mangle表的PREROUTING規則鏈和filter表的FORWARD規則鏈和mangle表的POSTROUTING規則鏈。

網絡拓樸

我分配得到的靜態IP地址范圍為xxx.xxx.xxx.48-63,也就是子網掩碼為255.255.255.240。我決定將整個IP分割為兩個網段:xx.xxx.xxx.48-56用于防火墻以外,這包括ADSL路由器自身的IP地址 (xxx.xxx.xxx.49);xxx.xxx.xxx.57-62用在防火墻之后部分。需要注意的是這并不是真正的子網劃分,因為它們是有網橋而不是路由器連接的。

防火墻規則

防火墻規則定義如下:

#!/bin/sh
#
# rc.firewall - Initial SIMPLE IP Firewall test script for 2.4.x
#
# Author: David Whitmarsh
# (c) 2001, 2002 Sparkle Computer Co ltd.
# based on rc.firewall by Oskar Andreasson
# parts (c) of BoingWorld.com, use at your own risk,
# do whatever you please with
# it as long as you don't distribute this without due credits to
# BoingWorld.com and Sparkle Computer Co Ltd
#

###########
# Configuration options, these will speed you up getting this script to
# work with your own setup.

#
# your LAN's IP range and localhost IP. /24 means to only use the first 24
# bits of the 32 bit IP adress. the same as netmask 255.255.255.0
#
# BR_IP is used to access the firewall accross the network
# For maxium security don't set one up - but then you must do
# everything directly on the firewall.

BR_IP="xxx.xxx.xxx.57"
BR_IFACE=br0

LAN_BCAST_ADDRESS="xxx.xxx.xxx.63"
INTERNAL_ADDRESS_RANGE="xxx.xxx.xxx.56/29"

INET_IFACE="eth1"
LAN_IFACE="eth0"

LO_IFACE="lo"
LO_IP="127.0.0.1"

IPTABLES="/sbin/iptables"

#########
# Load all required IPTables modules
#

#
# Needed to initially load modules
#
/sbin/depmod -a

#
# Adds some iptables targets like LOG, REJECT
#
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_REJECT

#
# Support for connection tracking of FTP and IRC.
#
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_conntrack_irc

#
# Take down the interfaces before setting up the bridge
#

ifdown $INET_IFACE
ifdown $LAN_IFACE
ifconfig $INET_IFACE 0.0.0.0
ifconfig $LAN_IFACE 0.0.0.0

# Clean up for a restart

$IPTABLES -F
$IPTABLES -X
#
# Set default policies for the INPUT, FORWARD and OUTPUT chains
#

$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD DROP

# Our interfaces don't have IP addresses so we have to start with the mangle
# PREROUTING table

$IPTABLES -t mangle -P PREROUTING DROP

# Now we are pretty secure, let's start the bridge
# This will create a new interface

brctl addbr $BR_IFACE

# and add the interfaces to it
brctl addif $BR_IFACE $INET_IFACE
brctl addif $BR_IFACE $LAN_IFACE

# make us visible to the network again (optional)
if [ "$BR_IP" != "" ] ; then
ifconfig $BR_IFACE $BR_IP
else
# otherwise we must at least bring the interface up for the bridge to work.
ifconfig $BR_IFACE up
fi

# Block obvious spoofs

$IPTABLES -t mangle -A PREROUTING -s 192.168.0.0/16 -j DROP
$IPTABLES -t mangle -A PREROUTING -s 10.0.0.0/8 -j DROP
$IPTABLES -t mangle -A PREROUTING -s 172.16.0.0/12 -j DROP

# Accept internal packets on the internal i/f
$IPTABLES -t mangle -A PREROUTING -i $LAN_IFACE -s $INTERNAL_ADDRESS_RANGE -j ACCEPT

# Accept external packets on the external i/f

$IPTABLES -t mangle -A PREROUTING -i $INET_IFACE ! -s $INTERNAL_ADDRESS_RANGE -j ACCEPT

#
# Accept the packets we actually want to forward
#

$IPTABLES -A FORWARD -p ALL -s $INTERNAL_ADDRESS_RANGE -j ACCEPT
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level 7 --log-prefix "IPT FORWARD packet died: "

#
# Create separate chains for ICMP, TCP and UDP to traverse
#

$IPTABLES -N icmp_packets
#
# ICMP rules
#

$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 0 -j ACCEPT # echo reply
$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 3 -j ACCEPT # dest unreachable
$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 5 -j ACCEPT # redirect
$IPTABLES -A icmp_packets -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT # time exceeded
$IPTABLES -A FORWARD -p ICMP -j icmp_packets

#
# UDP ports
#
$IPTABLES -N udpincoming_packets

$IPTABLES -A udpincoming_packets -p UDP -s 0/0 --source-port 53 -j ACCEPT # DNS
$IPTABLES -A udpincoming_packets -p UDP -s 0/0 --source-port 123 -j ACCEPT # ntp
#$IPTABLES -A udpincoming_packets -p UDP -s 0/0 --source-port 2074 -j ACCEPT # speakfreely
#$IPTABLES -A udpincoming_packets -p UDP -s 0/0 --source-port 4000 -j ACCEPT #icq

$IPTABLES -A FORWARD -p UDP -j udpincoming_packets

#

$IPTABLES -N tcp_packets

#
# The allowed chain for TCP connections
#

$IPTABLES -N allowed
$IPTABLES -A allowed -p TCP --syn -j ACCEPT
$IPTABLES -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A allowed -p TCP -j DROP

# TCP rules
#

#
# Bad TCP packets we don't want
#

$IPTABLES -A tcp_packets -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "New not syn:"
$IPTABLES -A tcp_packets -p tcp ! --syn -m state --state NEW -j DROP

$IPTABLES -A tcp_packets -p TCP -s 0/0 -d springfield.sparkle-cc.co.uk --dport 80 -j allowed # smtp
$IPTABLES -A tcp_packets -p TCP -s 0/0 -d lisa.sparkle-cc.co.uk --dport 6346 -j allowed # gnutella
$IPTABLES -A tcp_packets -p TCP -s 0/0 -d springfield.sparkle-cc.co.uk --dport 25 -j allowed # smtp

$IPTABLES -A FORWARD -p TCP -j tcp_packets

#
# Input to the firewall itself. Leave these out if you don't want the firewall
# to be visible on the network at all.
# Note that the PREROUTING restrictions above mean that only packets form inside
# the firewall can fulfill the source condition. So the firewall machine should not be
# visible to the internet.
#

$IPTABLES -A INPUT -p ALL -i $BR_IFACE -s $INTERNAL_ADDRESS_RANGE -d $LAN_BCAST_ADDRESS -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $BR_IFACE -s $INTERNAL_ADDRESS_RANGE -d $BR_IP -j ACCEPT

# But you *will* need this

$IPTABLES -A INPUT -p ALL -i $LO_IFACE -d $LO_IP -j ACCEPT

$IPTABLES -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level 7 --log-prefix "IPT INPUT packet died: "

#
# OUTPUT chain
#

$IPTABLES -A OUTPUT -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "New not syn:"
$IPTABLES -A OUTPUT -p tcp ! --syn -m state --state NEW -j DROP

$IPTABLES -A OUTPUT -p ALL -s $LO_IP -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -s $BR_IP -j ACCEPT
$IPTABLES -A OUTPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level 7 --log-prefix "IPT OUTPUT packet died: "

這里的樣本防火墻腳本類似于傳統的防火墻設置,摘抄于Oskar Andreasson's iptables tutorial

基本的防火墻策略為:

1.阻止不可能的IP地址的數據包。
2.允許所有防火墻內部到外連的連接。
3.允許屬于內部到外部的連接的反向數據進入內部網絡。
4.允許外部連接到特定的主機的特定端口。

變量定義

為了保證清晰性和可維護性,定義一些接口名和IP地址作為變量是很不錯的想法。例子中使用了下面這些數據:

BR_IP="xxx.xxx.xxx.57"
BR_IFACE=br0

LAN_BCAST_ADDRESS="xxx.xxx.xxx.63"
INTERNAL_ADDRESS_RANGE="xxx.xxx.xxx.56/29"

INET_IFACE="eth1"
LAN_IFACE="eth0"

LO_IFACE="lo"
LO_IP="127.0.0.1"

"xxx.xxx.xxx"表示網絡IP的前三個字段。$INTERNAL_ADDRESS_RANGE表示內部網絡的IP范圍。

設置一個橋接設備

為了設置一個網橋,我們需要做以下一些工作。首先我們需要關閉網絡接口并將其IP設置去除:

ifdown $INET_IFACE
ifdown $LAN_IFACE
ifconfig $INET_IFACE 0.0.0.0
ifconfig $LAN_IFACE 0.0.0.0

如果你僅僅是通過telnet或ssh會話執行了這些命令,那是不行的而應該到主機的控制臺來進行操作。下一步我們創建一個橋設備,并為其指定以太接口:

brctl addbr $BR_IFACE
brctl addif $BR_IFACE $INET_IFACE
brctl addif $BR_IFACE $LAN_IFACE

現在我們就可以啟動橋接設備作為一個內部接口:

ifconfig $BR_IFACE $BR_IP

阻止偽裝

我們可以在mangel PREROUTING規則鏈中阻塞偽造的數據包。通過在這里阻塞,我們同時可以抓獲流入和被轉發的數據包。我們使用mangle PREROUTING,而不是nat PREROUTING是因為在NAT表中只有第一個數據包被檢查。

下面的內容確保只有具有河岸得分內部地址的數據包被內部接口所接受:

$IPTABLES -t mangle -A PREROUTING -i $LAN_IFACE -s $INTERNAL_ADDRESS_RANGE -j ACCEPT

下面命令阻止網橋外部接口接收具有內部地址的數據包:

$IPTABLES -t mangle -A PREROUTING -i $INET_IFACE ! -s $INTERNAL_ADDRESS_RANGE -j ACCEPT

從內部網絡中訪問防火墻

也許你希望你的防火墻對于網絡是完全透明的,或者你也可能為了方便允許從內部網絡直接連接網橋防火墻,下面的命令將只允許內部網絡到防火墻的連接。當然根據自己的實際情況對是否允許訪問網橋防火墻的要求是不一樣的:

$IPTABLES -A INPUT -p ALL -i $BR_IFACE -s $INTERNAL_ADDRESS_RANGE -d $LAN_BCAST_ADDRESS -j ACCEPT
$IPTABLES -A INPUT -p ALL -i $BR_IFACE -s $INTERNAL_ADDRESS_RANGE -d $BR_IP -j ACCEPT

前面我們已經阻止了具有和接收接口不匹配的IP地址的數據包了。

責任編輯:Oo小孩兒 來源: linuxeden.com
相關推薦

2010-06-21 12:33:42

2011-03-11 16:02:05

2011-06-27 13:31:21

2010-12-21 18:04:26

2018-12-13 11:10:21

OpenSnitchLinux防火墻

2013-09-11 20:09:08

下一代防火墻NGFW

2010-09-29 11:01:46

2010-12-08 09:29:27

下一代防火墻

2010-09-14 13:08:52

2010-08-17 16:54:45

2011-06-24 09:33:23

2021-06-25 18:31:37

云防火墻

2010-05-24 17:49:56

2010-07-01 10:29:08

2021-04-03 21:40:51

硬件防火墻家庭實驗室

2009-09-24 13:53:53

2011-03-25 11:18:51

2010-09-09 17:22:36

2013-07-04 10:16:24

2010-09-13 17:12:45

點贊
收藏

51CTO技術棧公眾號

国产一二三四区在线观看| 九九热免费精品视频| 欧美69wwwcom| 91九色综合久久| 红杏一区二区三区| 精品国内产的精品视频在线观看| 日本综合字幕| 欧美精品videossex88| 久久久久久爱| 国产成人免费av| 成人羞羞网站入口| 91干在线观看| 国产欧美日本| 艳母动漫在线免费观看| 久久久国际精品| 欧美日韩日本视频| 色中色在线视频| 欧美日韩夫妻久久| 久久久久黄色| 99电影网电视剧在线观看| 久久精品二区亚洲w码| 久久久久久久午夜| 亚洲精品老司机| 性欧美18xxxhd| 91久久精品在线| av成人老司机| av天在线观看| 欧美肥臀大乳一区二区免费视频| 免费看成人吃奶视频在线| 在线国产精品网| 亚洲一区二区三区中文字幕在线 | 亚洲一区二区三区中文字幕 | 91精品国产综合久久久蜜臀粉嫩 | 91精品在线观看入口| 日韩免费在线电影| 99三级在线| 国产精品久久久久天堂| 亚洲区欧洲区| 久久久久久尹人网香蕉| 国产一区二区美女| 美女三级99| 亚洲经典视频| 亚洲第一av| 9色精品在线| 国产精品电影网站| 国产一区二区精品久久91| 久久久久亚洲精品| 一区二区三区性视频| 99精品黄色片免费大全| 国产91|九色| 成人免费高清在线| 日韩精品专区| 一区二区免费电影| 91精品国产综合久久久久久久 | 日韩精品一级二级 | 视频一区在线免费看| 国产精品久久激情| 久久综合狠狠综合| 欧美动物xxx| 一区不卡字幕| 欧美一级爆毛片| 今天的高清视频免费播放成人| 国产.com| 欧美精品久久久久a| 粉嫩高潮美女一区二区三区| 色一区二区三区| 日本久久久网站| 一区二区三区高清国产| 国产精品日产欧美久久久久| 在线欧美成人| 成人av蜜桃| 姬川优奈av一区二区在线电影| 国产日韩亚洲欧美| 成人高清电影网站| 成人高清视频免费观看| 国产一级特黄a大片免费| 久久精品日韩一区二区三区| 日本老太婆做爰视频| 一色桃子久久精品亚洲| 嫩草研究院在线观看| 一区二区三区不卡视频| 日日噜噜噜夜夜爽爽狠狠视频| 亚洲色图20p| 国语对白在线视频| 中文字幕在线日韩 | 特级西西444www大精品视频| 色悠悠久久综合| 99久久久成人国产精品| 亚洲va国产天堂va久久en| 蜜臀久久精品| **亚洲第一综合导航网站| 国产成人精品一区二区三区网站观看| 天海翼一区二区三区四区在线观看 | 亚洲欧美另类图片| 日韩最新在线视频| 欧美日韩日本国产亚洲在线 | 在线视频日韩| a视频免费看| 亚洲精品国产美女| 欧美成人一品| 五十度飞在线播放| 久久久亚洲欧洲日产国码aⅴ| 久久国产婷婷国产香蕉| eeuss影院www在线播放| 日本在线观看天堂男亚洲| 成人av免费网站| 在线天堂资源| 色噜噜狠狠一区二区三区| 欧美性xxxxxx| 国产精品视频一区二区三区四蜜臂| 国产美女无遮挡网站| 亚洲免费视频一区二区| 免费高清在线一区| 国产区在线观看| 狠狠色综合色区| 欧美色道久久88综合亚洲精品| jizz亚洲大全| 成人疯狂猛交xxx| 精品国产乱码久久久久久樱花| 91免费网站视频| 亚洲乱码一区av黑人高潮| 欧美性xxx| 亚洲xxxxx性| 天天做天天摸天天爽国产一区| 自拍一区在线观看| 日本一区二区三区视频在线观看| 日韩精品在线看片z| 久久福利一区| 国产视频一区二区| 婷婷四房综合激情五月| 在线视频你懂得一区二区三区| 欧美做受高潮电影o| 国产一区二区免费看| av观看在线| 91精品久久香蕉国产线看观看 | 俄罗斯精品一区二区三区| 亚洲午夜私人影院| 亚洲精品国模| 日本激情视频网| 国产精品丝袜久久久久久高清 | 中文字幕亚洲精品乱码| 一级视频在线观看视频在线啦啦| 欧美成人dvd在线视频| 亚洲一区视频在线观看视频| 女人抽搐喷水高潮国产精品| 日本 片 成人 在线| 欧美综合国产精品久久丁香| 亚洲图片欧美视频| 亚洲性感美女99在线| 牛牛精品视频在线| 欧美一级视频在线播放| 国模精品系列视频| 狠狠躁夜夜躁久久躁别揉| 午夜一级久久| 日本午夜免费一区二区| 成年人羞羞的网站| 国产高清自拍一区| 亚洲深夜视频| 激情六月丁香婷婷| 国产精品中文字幕在线观看| 欧美一级高清大全免费观看| 成人永久免费视频| 久久综合影院| 91蜜桃在线视频| 无码精品a∨在线观看中文| 国产成人综合av| 欧美一区二区视频观看视频| 成人av中文字幕| 日本一区二区高清不卡| 曰本三级在线| 99re免费99re在线视频手机版| 99视频免费观看| 国产一区二区三区三区在线观看| 国产精品国产三级国产普通话99| 亚洲xxx拳头交| 色婷婷综合久久久中字幕精品久久 | 日韩电影在线免费| 精品久久国产一区| 精品资源在线看| 蜜桃视频一区二区在线观看| 97视频在线观看亚洲| 欧美群妇大交群的观看方式| 99久久久久久| 欧美激情麻豆| 2020国产精品小视频| 欧美一区二区视频| av高清在线免费观看| 国产精品欧美日韩一区二区| 亚洲国产欧美精品| 亚洲国产另类av| 国产一区二区精品在线观看| 国产伦精品一区二区三区千人斩 | 一区二区在线观看视频在线观看| 裸体素人女欧美日韩| 国产高清av在线播放| 69久久夜色精品国产69| 日韩一区二区精品在线观看| 中文字幕不卡三区| 奇米一区二区三区av| 欧美日一区二区|