网络防火墙和NAT地址转换
网络防火墙
(1) 请求-响应报文均会经由FORWARD链,要注意规则的方向性
(2) 如果要启用conntrack机制,建议将双方向的状态为ESTABLISHED的报文直接放行

假设:172.17.252.162 互联网上的主机(只有桥接,断掉仅主机)
两个网卡192.168.10.200和172.17.253.132 防火墙主机
192.168.10.187 内部网络主机(只有仅主机,断掉桥接)
实验目的:允许内网主机访问互联网上主机,不允许互联网上主机访问内网主机
(1)添加网关,让172.17.252.0/16网段的主机和192.168.10.0/24网段的主机能够互相ping通
route add default gw 172.17.253.132
route add default gw 192.168.10.200



(2)在防火墙主机上添加策略,使内网的主机能访问互联网上的主机,而互联网上的主机不能访问内网的主机
iptables -A FORWARD -s 192.168.10.0/24 -d 172.17.252.0/16 -m state --state NEW -j ACCEPT 在FORWARD链上允许源地址为192.168.10.0/24网段目标地址为172.17.252.0/16网段
iptables -I FORWARD -m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -j REJECT 拒绝其他转发


实验:NAT: network address translation 网络地址转换
上一个实验可以实现内网主机访问互联网主机,不允许互联网主机访问内网主机,但是有一个巨大的问题,就是内网主机地址必须是公有地址,成本太高,还不安全

假设:192.168.6.52 互联网上的主机 ,只有一块网卡,桥接(公网ip)
192.168.66.128(仅主机)和192.168.6.143(桥接,公网ip) 防火墙主机,两块网卡,一块桥接,一块仅主机
192.168.66.177 内网的主机 ,一块网卡,仅主机(内网ip)
实验目的:现在要通过防火墙做源地址转换,将192.168.66.177转换为192.168.6.143,从而实现访问互联网上的主机
(1)在内网主机(192.168.66.177)上,将网关指向192.168.66.128
route add default gw 192.168.66.177
(2)在防火墙主机上做源地址转换,将内网的整个网段都替换成公网地址
iptables -t nat -A POSTROUTING -s 192.168.66.0/24 -j SNAT --to-source 192.168.6.143
(3)测试
在192.168.6.52互联网上的主机上开一个web服务,然后用内网的主机192.168.66.177去访问,如果能访问到,说明实验成功
systemctl start httpd 开启httpd服务
2.在192.168.66.177主机上用curl命令去访问

用ping也能通


2.DNAT目标网络地址转换
假如说公司内部有一个人出差了,在互联网上想访问公司内部一个服务器,这要怎么做呢?如图:
当互联网上的主机访问192.168.6.143的80端口时,就给他转到192.168.66.177的80端口

假设:192.168.6.52 互联网上的主机,一块网卡,桥接
192.168.6.143和192.168.66.128 防火墙主机,两块网卡,一块桥接,一块仅主机
192.168.66.177 内网的主机 ,一块网卡,仅主机
实验目的:实现互联网上的主机能够访问内网主机开启的httpd服务
(1)在内网主机(192.168.66.177)上,将网关指向192.168.66.128
route add default gw 192.168.66.177
(2)在防火墙主机上做目标地址转换,将目标地址192.168.6.143转换为192.168.66.177
iptables -t nat -A PREROUTING -d 192.168.6.143 -p tcp --dport 80 -j DNAT --to-destination 192.168.66.177:80
(3)在内网主机(192.168.66.177)开启httpd服务
echo hello world > /var/www/html/index.html
在互联网上的主机上用curl命令访问192.168.10.143


3.转发
实现其他人访问我本机的一个端口(如:80),给他转发到本机的另一个端口(如:8080)上
vim /etc/httpd/conf/httpd.conf

(2)在内网主机(192.168.66.177)上设置转发策略,如果访问本机的80端口就给转发到本机的8080端口
iptables -t nat -A PREROUTING -d 192.168.66.177 -p tcp --dport 80 -j REDIRECT --to-ports 8080
在互联网主机(192.168.6.52)上用curl来访问防火墙主机192.168.6.143

网络防火墙和NAT地址转换的更多相关文章
- 【原创】锐捷实现OSPF路由协议和NAT地址转换协议
路由网络设计与实施 [锐捷设备实现OSPF路由协议与NAT地址转换] 说明: 本文是在多VLAN双星型交换网络的基础之上发展的.关于组建多VLAN双星型交换网络,请参阅: <思科和锐捷组建多 ...
- 华为eNSP上的NAT地址转换配置
NAT是将IP数据报文报头中的IP地址转换为另一个IP地址的过程,主要用于实现内部网络(私有IP地址)访问外部网络(公有IP地址)的功能. 1.实验拓扑 地址表: 1.完成各个接口基本配置之后使用pi ...
- 清除路由器NAT地址转换
首先当你的NAT网络地址转换成功搭建起来,并且测试过网络通信时,此时NAT地址转换表上面是存在转换信息的,你可以通过在特权模式下输入命令"show ip nat translation&qu ...
- 手把手系列:实现Nat地址转换
1.实验目的: 掌握内网中的主机C1连接到Internet时,通过NAT实现私有全局地址转换. 2.实验拓扑: 3.实验步骤: 步骤一:给主机C1和C2配置IP地址.子网掩码和网关.如图: C1: ...
- 神州数码NAT地址转换配置
实验要求:熟练掌握NAT地址转换的配置方法 拓扑如下 R1 enable 进入特权模式 config 进入全局模式 hostname R1 修改名称 interface s0/1 进入端口 ip ad ...
- NAT地址转换
2017年1月12日, 星期四 NAT地址转换 SNAT:源地址转换 DNAT:目标地址转换 null
- CISCO实验记录九:NAT地址转换
1.静态NAT地址转换 #ip nat inside source static 192.168.12.1 192.168.23.4 //将12.1转为23.4 必须精确到主机IP 而不能是某个网段 ...
- NAT地址转换原理全攻略
NAT转换方式及原理 在NAT的应用中,可以仅需要转换内部地址(就是“内部本地址”转换成“内部全局地址”),这是最典型的应用,如内部网络用户通过NAT转换共享上网:也可以是仅需要转换外部地址(就是“外 ...
- Linux之iptables(四、网络防火墙及NAT)
网络防火墙 iptables/netfilter网络防火墙: (1) 充当网关 (2) 使用filter表的FORWARD链 注意的问题: (1) 请求-响应报文均会经由FORWARD链,要注意规则的 ...
随机推荐
- CentOS 7 使用iptables防火墙
# 停止firewalld服务 systemctl stop firewalld systemctl mask firewalld # 安装iptables-services yum install ...
- Chrome Stylist 插件 (CSS备份)
Stylist 插件还是很好用的,可以给网站自定义CSS样式,(还有个插件叫"油猴子",可以给网页加载自定义JS): 不过麻烦的是,现在的最新版360浏览器不能显示这个插件(这个浏 ...
- 高可用的MongoDB集群
1.序言 MongoDB 是一个可扩展的高性能,开源,模式自由,面向文档的数据库. 它使用 C++编写.MongoDB 包含一下特点: l 面向集合的存储:适合存储对象及JSON形式的数据. l ...
- 论 Java 中的内存分配
Java内存分配主要包括以下几个区域: 1. 寄存器:我们在程序中无法控制 2. 栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中 3. 堆:存放用new产生的数据 4. 静 ...
- HashMap原理阅读
前言 还是需要从头阅读下HashMap的源码.目标在于更好的理解HashMap的用法,学习更精炼的编码规范,以及应对面试. 它根据键的hashCode值存储数据,大多数情况下可以直接定位到它的值,因而 ...
- javaWeb页面实现下载
jsp页面发送请求,后台实现指定路径下的文件,在浏览器上完成下载功能.@RequestMapping(value = "downloadFile")public void down ...
- JavaScript面向对象入门
什么是JavaScript? 我们可以从几个方面去说JavaScript是什么: 基于对象 javaScript中内置了许多对象供我们使用[String.Date.Array]等等 javaScrip ...
- Ubuntu忘记root密码怎么办?
http://www.linuxidc.com/Linux/2016-05/131256.htm
- Egret学习笔记 (Egret打飞机-5.实现子弹对象)
上一章把飞机添加到屏幕上,但是飞机要发射子弹对吧?那么这一章我们就来实现一下发射子弹,并实现一个简单的子弹对象池 先来捋一捋思路 1.创建一个子弹对象 2.然后添加一个bitmap,显示子弹贴图 3. ...
- UVA 816 bfs
算法入门经典上面的题.题目链接 uva816 大致题意 有一个最多包含9*9个交叉点的迷宫.输入起点.离开起点时的朝向和终点,求一条最短路(多解时任意输出一个即可).详细题意请看原题 思路 其实就是b ...