免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 5033 | 回复: 24
打印 上一主题 下一主题

[网络管理] linux如何实现透明的防火墙? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-08-30 17:12 |只看该作者 |倒序浏览
我想将linux直接放在我的出口处,用IPTABLES来进行FORWARD的网络访问控制,但不想改变我的网络中的任何配置,请问大家如何才能实现这种透明式的防火墙配置,谢谢。

论坛徽章:
0
2 [报告]
发表于 2005-08-30 17:43 |只看该作者

linux如何实现透明的防火墙?

看看
www.shorewall.net
有讲bridge防火墙的,配置也比较简单。

论坛徽章:
0
3 [报告]
发表于 2005-08-30 17:44 |只看该作者

linux如何实现透明的防火墙?

但配置bridge还是蛮麻烦的。

论坛徽章:
0
4 [报告]
发表于 2005-08-30 17:57 |只看该作者

linux如何实现透明的防火墙?

[quote]原帖由 "5day"]但配置bridge还是蛮麻烦的。[/quote 发表:

麻烦在哪里?

论坛徽章:
0
5 [报告]
发表于 2005-08-30 19:03 |只看该作者

linux如何实现透明的防火墙?

ebtables

论坛徽章:
0
6 [报告]
发表于 2005-08-30 19:07 |只看该作者

linux如何实现透明的防火墙?

这是在2.4下打ebtables补丁的一篇文章,我写的

今天终于把这个弄好了,前几天搞不好可能是RedHat9自带的Linux-2.4.20-8这个内核可能有问题。我现在用的是2.4.28的内核。好了,下面就来说下具体的做法。
       先来说说用2.4.20这个内核的情况。几天前我用2.4.20-8这个RedHat自带内核,2.4.20内核支持netfilter网桥需要以下几个补丁:
1)ebtables-v2.0.6.tar.gz
2)bridge-nf-0.0.10-against-2.4.20.diff.gz
3)ebtables-v2.0.003_vs_2.4.20.diff.gz
其中1)为用户进程,2)为bridge支持netfilter的补丁,3)ebtables的内核补丁。关于ebtables资料,请看这里。
1)的安装:
gunzip ebtables-v2.0.6.tar.gz
tar vxf ebtables-v2.0.6.tar
cd ebtables-v2.0.6
make
make install
2)和3)要先打3)的补丁,先打2)会出错:
解压后
cd /usr/src/linux-2.4
patch -p1 /.../ebtables-v2.0.003_vs_2.4.20.diff
patch -p1 /.../bridge-nf-0.0.10-against-2.4.20.diff
好了,接下来就是编译内核,具体不说了,内核中选上如下选项:
Code maturity level options
  • Prompt for development and/or incomplete code/drivers
    Loadable module support
  • Enable loadable module support   
  • Set version information on all module symbols
  • Kernel module loader
    Networking options
  • Network packet filtering (replaces ipchains)
  • Network packet filtering debugging
    IP: Netfilter Configuration (其下所有选项都设为M)
  • 802.1d Ethernet Bridging
  • ebtables(NEW)(把有关ebtables的全选中)
    好了,编译生成内核后重起进入新内核。
    建立网桥(Linux内核2.2以上都支持网桥,并有其配置工具brctl):
    brctl addbr br0
    brctl addif br0 eth0
    brctl addif br0 eth1
    ifconfig br0 up
    照理说内核应该支持netfilter了,但我试了一下:
    ebtables -A FORWARD -p IPv4 --ip-src 172.16.1.4 -s ! 00:11:22:33:44:55 -j DROP
    提示竟然是内核不支持ebtables,晕啊!我编译内核了好几次都是这样。
    去网上找找,发现MAIL-LIST上也有人用这个内核出现过错误,不过有的人说从kernel.org上下的2.4.20内核可以用(不知道谁试过没有,还有不知道有没老兄用RedHat自带内核成功的),反正要下载内核了,我就下了个新一点的内核:2.4.28。因为2.4.29ebtables还不支持。至于2.6,虽然不用打补丁和安装程序,但以前编译内核后进不了系统(只编译了一次,懒的试了,呵呵),况且怕它的网络部分代码与2.4不同,会给以后编程带来麻烦。
           好了,2.4.21以上的补丁都只需要一个补丁,下载支持2.4.28的:
    ebtables-brnf-8-3_vs_2.4.28.diff.gz
    当然了,用户程序还是要的:
    ebtables-v2.0.6.tar.gz
    然后照上面所说的打补丁,编译内核,具体细节不说了(我第一次编译,竟然忘了让内核支持我的网卡,呵呵)。
    当内核启动成功后,再试:
    ebtables -A FORWARD -p IPv4 --ip-src 172.16.1.4 -s ! 00:11:22:33:44:55 -j DROP
    就通过了。
    你试着用三台电脑测试一下,怎么样,成功了吧!具体的一些配置和man手册,这里都可以找到:ebtables.sourceforge.net
  • 论坛徽章:
    0
    7 [报告]
    发表于 2005-08-30 19:37 |只看该作者

    linux如何实现透明的防火墙?

    2.4 的内核不打 ebtables 也支持 bridge,make menuconfig 也可以看到 [  ]802.1d Ethernet Bridging 的选项

    ebtables 只是一个基于数据链路层的包过滤装置而已,不过我一般都用 iptables

    论坛徽章:
    0
    8 [报告]
    发表于 2005-08-30 20:01 |只看该作者

    linux如何实现透明的防火墙?

    bridge是支持
    但iptables应该不支持二层过滤的吧?

    论坛徽章:
    0
    9 [报告]
    发表于 2005-08-30 20:19 |只看该作者

    linux如何实现透明的防火墙?

    没测试过不 patch 的时候

    论坛徽章:
    0
    10 [报告]
    发表于 2005-08-31 18:26 |只看该作者

    linux如何实现透明的防火墙?

    在as3,update 3上的内核,2.4.21-15EL上
    当bridge不打patch时
    用make modules SUBDIRS=net/bridge,可以正常的编译bridge的相关模块。
    但只要加上patch后,在执行make modules SUBDIRS=net/bridge时就报以下错误:
    make[1]: *** [br.o] Error 1
    make[1]: Leaving directory `/usr/src/linux-2.4.21-20.EL/net/bridge'
    make: *** [_mod_net/bridge] Error 2
    现在的情况下只能做透明网桥,IPTABLES规则完全不能起作用,不知有没有在AS上试过在PATCH的情况下可以编译成功的?或知道如何解决?
    谢谢大家。

    btw,根据
    http://bbs.chinaunix.net/forum/viewtopic.php?t=570895&highlight=透明防火墙
    的方法,也做了试验,发现内部的机器只能与原来的网关连通,而不能出到外网。
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则 发表回复

      

    北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
    未成年举报专区
    中国互联网协会会员  联系我们:huangweiwei@itpub.net
    感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP