linux 透明防火墙
原创:Lover 七亦
有时候,我们不想改动原本的网络环境,来经常网络安全管理,这时候我们就可以用到透明防火墙了,这时候我们就用到网桥的模块,当然它属于第二层的那一层了。
以下是本人实验环境:
server -----------firewall--------------client
server ip address: 192.168.1.100
client ip address: 192.168.1.200
firewall ip address :192.168.1.1
需求:
只允许server可以通过网上邻居讲文件传输到client(这个过程是单向的),server与client可以相互通过icmp echo request 来确认彼此的间联通(这个过程是双向的 )
步骤:
1.绑定张网卡合成一个网桥接口(bridge interface)
firewall至少要有两张网卡,然后将它们绑定起来,firewall可以成网桥了,首先需要安装bridge-utils与bridge-utils-devel这个两组件,这两个组件就将eth0与eth1绑定成一个网桥设备,符合我们的要求。我的环境是rhcl 4.4假设定,这两个组件在光盘里就有的
#rpm-ivh bridge-util-×
接着将eth0与eth1 绑定成bri0 interface
#ifconfig eth0 0.0.0.0
#ifconfig eth1 0.0.0.0
#brctl addbr bri0
#brctl addif bri0 eth0
#brctl addif bri1 eth1
使用brctl show 确认一下:
#brctl show
birdge name bridge id STP enable interface
bri0 8000.000347305b3 no eth0
eth1
这里问题
到了这里,既然bri0 interface 已经建立好了,那么是否在上面写入ip地址呢?答案是肯定的,
有了ip地址我们就可以做到远程控制了,设置方法有两种,一种是手工写入,第二种通过dhcp server 获取
手工写入:
#ifconfig bri0 192.168.1.1 netmask 255.255.255.0 up
dhcp client
# dhclient bri0
以上可以写shell脚本,每次开机自动的执行,我用的是rhel 4.4 放在/etc/rc.local中
2. 设置firewall转发功能
#vi /etc/systcl.conf
#Controls ip packet forwarding
net.ipv4.ip_forwarding = 1
#sysctl -p
可以测试一下,目前server与client的网络连通xing
3.设置策略
至于策略那就是玩iptables了,基础部分我就不讲了相信大家理解的比我深刻,因为今天是休息天啊手写都发酸了。
进入主题:
为了安全考虑先把forward default policy设置为drop 只放行smb 协议和icmp ech0 request
# iptables -P FORWARD DROP
这时server与client目前肯定是连不通的
设置允许n个数据包通过:
# iptables —A FORWARD -m state -state RELATED,ESTABLISHED -j ACCPT
允许icmp ech0 request:
#iptables -A -FORWARD -s 192.168.1.0/24 -p icmp -icmp-type 8 -j ACCPT
设置只有server可以通过网上邻居将文件送到client
#iptables -A FORWARD -s 192.168.1.100/24 -d 192.168.1.200/24 -p tcp -dport 139 -j ACCPT
#iptables -A FORWARD -s 192.168.1.100、24 -d 192.168.1.200/24 -p tcp -dport 445 -j
ACCPT
这样一就ko了。