Linux防火墙下的简单路由配置与端口映射 - Linux - 懒人的世界

来源:百度文库 编辑:神马文学网 时间:2024/05/15 22:49:25
Linux防火墙下的简单路由配置与端口映射
实验室的windows03服务器总是被端口扫描,又装不了其他的杀毒软件,6年前证明瑞星靠不住,6年后还是靠不住。在实验室找了台没用的机子,做一个简单的防火墙。具体步骤如下: 一台能跑得动你将要安装的LInux的机器 Linux系统安装盘,发行版随意,内核2.6 该机器需要有两块网卡
系统安装完成后,分别给两块网卡设置IP地址,一个为内网IP,一个为外网IP。这里假设eht0为外网地址:201.114.0.156 , eth1为内网地址:192.168.0.1 。
首先检查IP转发是否开启:
[root@RHEL ~]# cat /proc/sys/net/ipv4/ip_forward
0
如果输出为0,那么可以通过将ip_forward至1来临时的实现IP转发,命令如下:
[root@RHEL ~]# echo 1 >> /proc/sys/net/ipv4/ip_forward
[root@RHEL ~]# cat /proc/sys/net/ipv4/ip_forward
1
 
也可以通过修改系统配置文件来永久启用IP转发。打开/etc/sysctl.conf , 将"net.ipv4.ip_forward“的值由 “0” 修改成“1”:
# Controls IP packet forwarding
#net.ipv4.ip_forward = 0
net.ipv4.ip_forward = 1
保存后退出,重启网络服务:
[root@RHEL ~]# /etc/init.d/network restart
接下来通过iptables命令来设置防火墙的转发规则。这里给出一个示例:
# 清空现有规则
iptables -F
# 对于外网(WAN)到内网(LAN)的封包,至允许那些回应包
iptables -A FORWARD -i eth0 -o eht1 -m state --state ESTABLISHED,RELATED -j ACCEPT
# 对于所有内网(LAN)到外网(WAN)的封包都予以放行
iptables -A FORWARD -i eht0 -o eth1 -j ACCEPT
#启用转发日志
iptables -A FORWARD -j LOG
# 启用IP伪装,使得内网中所有转发出去的封包都是Linux服务器一台机子发出的
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
# 启用地址转换(NAT)将内网的Web服务映射到外网的特定端口上
iptables -A PREROUTING -t nat -p tcp --dport 8080 -j DNAT --to-destination 192.168.0.2:8080
如果想要每次系统启动后自动启用相关的规则,可以直接将命令添加到“/etc/rc.local”中。重启iptables , 然后运行“rc.local”脚本。
[root@RHEL ~]# /etc/init.d/iptables restart
[root@RHEL ~]# sh /etc/rc.local
iptables还包含了更丰富的转发过滤规则,这里只是涉及到很简单隔离内外网的功能。更强大的功能可以参考iptables的命令手册。
内网的机器可以使用内部地址,然后将网关设为Linux服务器的内网地址,DNS设定为外网的DNS。如果条件允许,可以在Linux服务器上面部署一个DNS缓冲服务,这样内网机器可以直接将Linux服务器设置为DNS。
这里需要注意的是,Linux服务器上链接内网的网卡只需要设置IP地址和子网掩码,不要设定默认网关。只需要将链接外网的网卡设置好网关,避免内网的包转发到无法到达的网关地址,而没有跳转到外网接口。