iptables防火墙应用-地址转换

一 SNAT策略及应用

·SNAT策略概述

如图,在linux网关服务器上应用SNAT策略,即可让局域网内的主机共享网关的公网IP,从而接入互联网

3.2 iptables防火墙应用-地址转换_马向军

·SNAT策略的原理

源地址转换(Source Network Address Translation);修改数据包的源地址

1假如未作SNAT转换

如上图局域网PC机发送请求包(源地址192.168.1.234,目标地址58.63.236.45),网关服务器直接根据路由表进行转发, 192.168.1.234),于是乎私有地址是不能在互联网中使用的,所以通信失败

2进行SNAT转换

如上图局域网PC机发送请求包(源地址192.168.1.234,目标地址58.63.236.45),网关服务器根据SNAT记录将源IP改为自己公网接口IP,然后再转发出去;互联网中的web服务器接收到了请求包然后回复一个应答包(源地址58.63.236.45,目标地址218.29.30.31),网关服务器接收到数据包后将目标地址自动修改为192.168.1.234,然后发送给局域网PC机(第一被SNAT处理过的包,那么它的后续此类连接都会被SNAT自动处理)

·SNAT策略的应用

1前提条件:

局域网各主机正确设置IP地址/子网掩码

局域网各主机正确设置默认网关地址

Linux网关支持IP路由转发并有两块以上网卡

2打开linux网关的路由转发(默认是关闭的)

修改配置文件中的默认项为1,并重新读取配置

3.2 iptables防火墙应用-地址转换_snat_02

3共享静态IP上网的实现方法:编写SNAT转换规则

如果公司拥有自己的固定的公网IP

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 218.29.30.31

:先路由后处理,将源地址为192.168.1.0/24网段内的IP地址转换外接口网地址,然后通过外网卡eth0接口转发出去;其中-source可以省略

4共享动态IP上网的实现方法:编写SNAT转换规则:MASQUERADE —— 地址伪装

如果公司使用ADSL拨号上网,IP是不固定的;接口通常为 ppp0、ppp1

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE

MASQUERADE表示动态获取公网IP

5验证SNAT结果

在linux局域网主机上使用命令行访问互联网;Ctrl+c退出

3.2 iptables防火墙应用-地址转换_snat_03

在linux互联网web服务器上查看访问日志;访问的源地址只会是官网的外网地址

3.2 iptables防火墙应用-地址转换_防火墙规则_04

3.2 iptables防火墙应用-地址转换_snat_05

二 DNAT策略及应用

·DNAT策略概述

如图,在linux网关上设置DNAT防火墙策略,即可实现将内网服务器提供的服务发布到互联网,让外网的用户访问

3.2 iptables防火墙应用-地址转换_snat_06

·DNAT策略的工作原理

目标地址转换(Destination Network Address Translation );在Internet中发布位于企业局域网内的服务器;在网关防火墙上设置好策略后,internet中的客户机访问的数据包目标地址都会被转换为内网服务器的地址

·DNAT策略的应用

1前提条件

局域网的Web服务器能够访问Internet(配置SNAT)

网关的外网IP地址有正确的DNS解析记录

Linux网关支持IP路由转发

2实现方法

编写DNAT转换规则

3.2 iptables防火墙应用-地址转换_snat_07

:先处理后路由,将从网卡eth0入站的数据包目的地址从原来的外网地址修改为内网服务器地址,并且只能从指定端口访问;其中-destination可以省略

这里的指定端口如果是默认端口,则无需写出实际端口;若非指定端口,需要写出实际端口

iptables -t nat -A PREROUTING -i eth0 -d 218.29.30.31 -p tcp --dport 2346 -j DNAT --to-destination 192.168.1.6:22

访问时需指定端口2346

3验证SNAT结果

三实验

实验目的:让内网主机可以访问互联网;让外网主机可以访问内网服务器

实验环境:如图所示.其中内网web服务器由linux系统搭建,外网web服务器由windows系统搭建;按图配置好IP,搭建好环境

3.2 iptables防火墙应用-地址转换_防火墙规则_08

实验要求:

1配置内网web服务器防火墙策略,只提供web服务和远程连接服务且服务器能够ping通其他主机,但是其他主机却无法ping通服务器,拒绝其他所有服务

2配置SNAT策略,让局域网主机能够访问互联网

3配置DNAT策略,将内网web服务器发布到互联网中,让互联网主机能够访问内网网站

4发布网关服务器的远程连接和内网web服务器的远程连接,并要求使用非默认端口连接

实验步骤

要求1

1搭建内网web服务器(实验环境下只需安装服务,再开启服务,使用服务的默认站点)

3.2 iptables防火墙应用-地址转换_防火墙规则_09

3.2 iptables防火墙应用-地址转换_dnat_10

远程连接服务默认已存在,开启相应端口即可(22);但是开启后只能局域网内的主机连接,若需要互联网外的主机连接,还需要在网关服务器上编写DNAT策略

2编写防火墙策略

清空所有规则

3.2 iptables防火墙应用-地址转换_马向军_11

修改filter表中INPUT链的默认策略为拒绝所有

3.2 iptables防火墙应用-地址转换_静态地址转换_12

其中允许80、22端口的访问,并允许已建立连接的请求

3.2 iptables防火墙应用-地址转换_马向军_13

3在局域网客户机上进行测试(也可在配置完DNAT后在互联网PC上测试)

略(实际中测试成功)

要求2

1开启网关路由功能

Linux网关要有两块网卡

修改配置文件并重载

3.2 iptables防火墙应用-地址转换_马向军_14

2编写SNAT策略

清空所有规则

3.2 iptables防火墙应用-地址转换_dnat_15

将源地址转换为公网地址

3.2 iptables防火墙应用-地址转换_snat_16

3在局域网客户机访问外网测试

略(实际中测试成功)

要求3

1编写DNAT策略

将目的地址转换为内网服务器地址

3.2 iptables防火墙应用-地址转换_静态地址转换_17

2在互联网中的PC上访问内网服务器测试

略(实际中测试成功)

要求4

1发布web服务器的SSH((非默认端口)

编写DNAT策略

3.2 iptables防火墙应用-地址转换_静态地址转换_18

2发布网关的SSJ

网关直接暴露在互联网中,所以只需修改SSHD服务的监听端口号即可;(去掉注释)

3.2 iptables防火墙应用-地址转换_防火墙规则_19

重启服务

3测试

使用同一个IP,不同端口,就能远程连接不同服务器

注意事项:对于一些特殊的服务,为了保持网络连接的相关性,需要额外的加载一些内核模块才能正常使用;如发布FTP服务时,除了编写DNAT策略发布20、21端口号外,还需运行两个模块

3.2 iptables防火墙应用-地址转换_静态地址转换_20