iptables透明模式

/*
一般而言,防火墙的两个网络接口应分属两个不同的网络,根据系统管理员定义的访问规则在两个接口之间转发数据包,或者拒绝、丢弃数据包。实际上,防火墙不单单是访问控制的功能,而且还充当了路由器的角色。当然,这并非有什么不妥当的地方,但是当你企图把你配置好的防火墙放入运行网络,来保护现有系统安全的时候,你不得不重新考虑和更改你的网络架构。另外一个可能的麻烦是,当防火墙发生意外时,如果没有防火墙的硬件备份的话,那么你将面临巨大的心理压力,因为防火墙的故障,整个网络瘫痪了。假如你把防火墙配置成透明模式(可称为伪网桥),就无需更改网络架构,即使是防火墙不能工作了,要做的仅仅是拔出网线,把网线直接插在路由器的内部接口就可以让网络正常工作,然后你就有时间慢慢恢复发生故障的防火墙。
为了实现高效的防火墙和网络检测,系统CPU必须足够的强大和快速。系统需要三块网卡,其中两块网卡支持网桥的实现,另外一块用来实现对防火墙的管理。(至少2块网卡,可以把管理IP配置在桥接设备上)。
*/
#!/bin/bash
# BY kerryhu
# QQ:263205768
# MAIL:king_819@163.com
# BLOG:http://kerry.blog.51cto.com
#要让Linux实现网桥功能除了编译支持网桥的内核之外(802.1d Ethernet Bridging),还需要应用软件的支持, 这个软件就是bridge-utils
cd /opt
wget 
http://ncu.dl.sourceforge.net/project/bridge/bridge/bridge-utils-1.4/bridge-utils-1.4.tar.gz
tar zxvf bridge-utils-1.4.tar.gz
cd bridge-utils-1.4
./configure --prefix=/usr
make;make install
#brctl该命令的帮助
#1.创建网桥设备:
brctl addbr br0
#2.向br0中添加网卡eth0和eth1
brctl addif eth0
brctl addif eth1
#3.从网桥中删除网卡eth0 和eth1
brctl delif eth0
brctl delif eth1
#4.删除网桥br0
brctl delbr br0
#网关:
172.16.16.254
#Web服务器(80、443)
172.16.16.172
#ftp服务器(21、20)
172.16.16.173
#MySQL服务器(3306)
172.16.16.174
#配置网桥接口
ifconfig br0 172.16.16.171 netmask 255.255.255.0 broadcast 172.16.16.255
#配置防火墙策略
# Create the interface br0
/usr/sbin/brctl addbr br0
# Add the Ethernet interface to use with the bridge
/usr/sbin/brctl addif br0 eth0
/usr/sbin/brctl addif br0 eth1
# Start up the Ethernet interface
/sbin/ifconfig eth0 0.0.0.0
/sbin/ifconfig eth1 0.0.0.0
# Configure the bridge ethernet
/sbin/ifconfig br0 172.16.16.171 netmask 255.255.252.0 broadcast 172.16.16.255
# I have added this internal IP to create my NAT
# ip addr add 192.168.0.1/24 dev br0
/sbin/route add default gw 172.16.16.254
iptables -F FORWARD
iptables -P FORWARD DROP
iptables -A FORWARD -s 0.0.0.0/0.0.0.0 -d 0.0.0.0/0.0.0.0 -m state --state INVALID -j DROP
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# Limit ICMP
iptables -A FORWARD -p icmp -m limit --limit 4/s -j ACCEPT
# Match string, a good simple method to block some VIRUS very quickly
#iptables -I FORWARD -j DROP -p tcp -s 0.0.0.0/0 -m string --string "cmd.exe"
# Allow the 222.11.22.33 connection MySQL server
iptables -A FORWARD -p tcp -s 222.11.22.33 -d 172.16.16.174 --dport 3306 -j ACCEPT
# Allow HTTP ( 80 ) connections with the WWW server
iptables -A FORWARD -p tcp -s 0.0.0.0/0 -d 172.16.16.172 --dport 80 -j ACCEPT
# Allow HTTPS ( 443 ) connections with the WWW server
iptables -A FORWARD -p tcp -s 0.0.0.0/0 -d 172.16.16.172 --dport 443 -j ACCEPT
# Allow the WWW server to go out
iptables -A FORWARD -s 172.16.16.172 -d 0/0 -j ACCEPT
# ftp Server Rules
iptables -A FORWARD -p tcp -s 0/0 -d 172.16.16.173 --dport 21 -j ACCEPT
iptables -A FORWARD -p tcp -s 0/0 -d 172.16.16.173 --dport 20 -j ACCEPT
# Allow the NTP server to go out
iptables -A FORWARD -s 172.16.16.173 -d 0/0 -j ACCEPT
#关于内核2.6,2.6的内核默认已经打上了bridge-nf,我已经在2.6.12上测试通过,任何使用2.6内核的发行版应该都支持bridge-nf
 


本文转自king_819 51CTO博客,原文链接:http://blog.51cto.com/kerry/290017,如需转载请自行联系原作者
优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/410929

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Mario,低调大师唯一一个Java游戏作品

Mario,低调大师唯一一个Java游戏作品

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。