iptables防火墙

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iptables防火墙相关的知识,希望对你有一定的参考价值。

前言:通过上一章的学习,我们认识了Linux防火墙的表、链结构,并学会了编写简单的防火墙规则,

Linux防火墙在很多时候承担着连接企业内、外网的重任,除了提供数据包过滤功能以外,还提供一些

基本的网关应用。

    并使用NAT功能共享上网以及发布服务器,和以前学过的nat原理完全一样,本章学习SNAT和DNAT策略,

分别掌握两个典型的应用:局域网共享一个公网IP地址接入inter;向inter发布位于内网的应用服务器。

 

一、SNAT策略

SNAT和路由器上的PAT是一样的,源地址转换,其作用是根据指定条件修改数据包的源IP地址。

共享固定IP地址上网

1、实验环境:


技术分享图片

在虚拟机上做实验简化为下图:

技术分享图片

2、在网站服务器上搭建网站

网站http服务已搭好,详情请参考http://blog.51cto.com/13557682/2056366

网站服务器如图:

技术分享图片

internet测试机上搭建同样的网站如图:

技术分享图片

3、在网关服务器上添加两块网卡,分别是eth0:192.168.1.1eth1173.16.16.1,然后开启路由转发功能:

[[email protected] ~]# vim /etc/sysctl.conf 
# Kernel sysctl configuration file for Red Hat Linux
#
# For binary values, 0 is disabled, 1 is enabled.  See sysctl(8) and
# sysctl.conf(5) for more details.
# Controls IP packet forwarding
net.ipv4.ip_forward = 1              //将0修改为1,启动路由转发功能                    
[[email protected] ~]# echo 1 > /proc/sys/net/ipv4/ip_forward

5、在网关服务器上配置SNAT策略

[[email protected] ~]# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j SNAT --to-source 173.16.16.1

6、在内部网站服务器上访问http://173.16.16.16即可


二、DNAT策略

DNAT策略与我们之前学习过的静态nat是一样的,可以一对一,也可以端口映射,主要目的是为了发布服务器。

[[email protected] ~]# iptables -t nat -I PREROUTING -i eth1 -d 173.16.16.1 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.7

3、在internet测试机上访问:http://173.16.16.1,打开的网站是192.168.1.7

四、规则的导入、导出

前言:备份可以把配置过的防火墙规则存储到一个位置,当更换防火墙或者规则出错的情况下,可以迅速恢复。

1、执行iptables-save命令导出linux防火墙规则。

例如:

1)在网站服务器上查看防火墙规则

[[email protected] ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22 
REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

  

2)执行备份防火墙

[[email protected] ~]# iptables-save > /opt/iprules_all.txt

3)把网站服务器上的规则全部删除

[[email protected] ~]# iptables -F

4)执行iptables-resore命令恢复

[[email protected] ~]# iptables-restore < /opt/iprules_all.txt

五、使用防火墙脚本

使用脚本可以快速部署防火墙规则,当需要配置多台防火墙的时候,使用脚本可以快速生成规则,提高工作效率。

例如:将output链中的默认策略设置为允许,不添加其他规则,将input链的默认策略设置为拒绝,只放行对个别服务的访问,以及响应本机访问请求的数据包。

[[email protected] ~]# vim /opt/myipfw.hostonly

技术分享图片

2)执行脚本

技术分享图片

3)查看规则

技术分享图片

现在基本上用不着Linux做路由转发,路由器做路由转发比较专业

以上是关于iptables防火墙的主要内容,如果未能解决你的问题,请参考以下文章

CentOS中iptables防火墙 开放80端口方法

iptables防火墙

iptables防火墙

iptables防火墙网路安全实践配置

Linux中iptables防火墙指定端口范围

Iptables 网络安全