iptables--SNAT、DNAT实践

目录

iptables--SNAT、DNAT实践

1.1 SNAT代理内网上网-iptables. 3

1.1.1 环境说明... 3

1.1.2 部署过程... 3

1.2 DNAT-映射内网服务器-iptables-实现外网IP的端口映射到内网IP的端口    5

1.2.1 需求:... 5

1.2.2 实现命令... 5

1.2.3 验证... 5

1.1 SNAT代理内网上网-iptables

1.1.1 环境说明

主机A:(能上网)
ip:内172.16.1.7/24 外10.0.0.7/24 系统CentOS 6.9
主机B:(不能上网)
ip:内172.16.1.8/24 系统CentOS 6.9

SNAT: 改变数据包的源地址。主机A的防火墙将数据包的源地址替换为10.0.0.7/24。这样使网络内部主机能够与网络外部通信。

1.1.2 部署过程

1.1.1.1 主机A:开启内核转发功能

#永久
vim /etc/sysctl.conf
修改 net.ipv4.ip_forward = 1
sysctl -p

1.1.1.2 主机A:iptables添加SNAT规则

   映射多个外网IP上网

iptables -t nat -I POSTROUTING -s 172.16.1.0/24 -j SNAT --to 10.0.0.7
#验证成功后-优化
service iptables save #保存配置
chkconfig iptables on #开机自启

映射多个外网IP上网

方法1:
iptables -t nat -A POSTROUTING -s 10.0.1.0/255.255.240.0 -o eth0 -j SNAT --to-source 124.42.60.11-124.42.60.16
三层交换机或路由器,划分VLAN。 方法2:
iptables -t nat -A POSTROUTING -s 10.0.1.0/22 -o eth0 -j SNAT --to-source 124.42.60.11
iptables -t nat -A POSTROUTING -s 10.0.2.0/22 -o eth0 -j SNAT --to-source 124.42.60.12
扩大子网,增加广播风暴。

1.1.1.3 主机B : 添加默认路由并验证

[root@localhost B~]# route add default gw 10.0.0.1   #添加路由 (临时修改)
永久修改:修改网卡配置文件
[root@localhost B~]# route -n #查看路由
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
172.16.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1
0.0.0.0 172.16.1.6 0.0.0.0 UG 0 0 0 eth1
验证:
[root@localhost B~]# ping www.baidu.com
PING www.a.shifen.com (111.13.100.91) 56(84) bytes of data.
64 bytes from 111.13.100.91: icmp_seq=1 ttl=128 time=5.42 ms
64 bytes from 111.13.100.91: icmp_seq=2 ttl=128 time=5.34 ms

1.2 DNAT-映射内网服务器-iptables-实现外网IP的端口映射到内网IP的端口

1.2.1 需求:

将网关的IP和9000端口映射到内网服务器的22端口

   端口映射 10.0.0.7:9000 -->172.16.1.8:22

1.2.2 实现命令

1、需要开启内核转发功能

2、iptables -t nat -A PREROUTING -d 10.0.0.7 -p tcp --dport 9000 -i eth0 -j DNAT --to-destination 172.16.1.8:22

1.2.3 验证

[f:\~]$ ssh 10.0.0.7 9000

代理内网上网-iptables的更多相关文章

  1. iptables之NAT代理-内网访问外网

    1.前言 本文使用NAT功能:内网服务器,想上网又不想被攻击. 工作原理:内网主机向公网发送数据包时,由于目的主机跟源主机不在同一网段,所以数据包暂时发往内网默认网关处理,而本网段的主机对此数据包不做 ...

  2. CentOS下OpenVPN实现公网IP映射到内网(iptables转发功能)(转)

    说明:这种方案的实现前提是必须要有一台拥有公网IP的电脑,OpenVPN搭建过程很普通,关键技术在于iptables的转发.搭建教程可能有点旧了,可以只看iptables的关键点技术. 方案背景: 公 ...

  3. [原创]K8飞刀20150725 支持SOCKS5代理(内网渗透)

    工具: K8飞刀编译: 自己查壳组织: K8搞基大队[K8team]作者: K8拉登哥哥博客: http://qqhack8.blog.163.com发布: 2015/7/26 3:41:11 简介: ...

  4. Mysql-proxy代理内网数据库

    Mysql-proxy 参考:https://segmentfault.com/q/1010000000394160 情景分析:首先您需要正在使用UCloud云主机(uhoust)以及云数据库(udb ...

  5. CentOS squid代理内网主机上网 openVpn配置

  6. 典型案例收集-使用OpenVPN连通多个机房内网(iptables+静态路由)

    说明: 1.这个方案是我最初实现的方案,目的在于OpenVPN连通后使其能访问各自的子网,实现互通. 2.主要以iptables为主,这个是关键点,并且这种方式配置iptables十分复杂,最后加入了 ...

  7. IDC 内网机器 通 过 iptables SNAT上网的配置方法

    有三台机器, A .B .C,其中A机器有外网和内网IP,B和C只有内网,我们配置B和C二台机器通过A机器来上外网. 假设A机器 外网IP为: 60.12.13.14  内网IP为: 192.168. ...

  8. Nginx代理实现内网主机访问公网服务

    通过Nginx代理实现内网主机访问公网和接口服务 1.需求: m2.test.com为公司测试环境的微信测试域名,因为要调用微信服务接口需要访问外网,现通过Nginx代理现实此功能. 2.环境如下: ...

  9. Nginx反向代理访问内网服务器

    Nginx反向代理访问内网服务器 问题描述 ​ 公司给配的台式机太垃圾了,不能访问外部网络就算了,还没有maven私服.近期项目不光得使用maven还得使用内网中的数据库之类,台式机太卡只能用自己的笔 ...

随机推荐

  1. 【转载】JAVA中综合接口和抽象类实现的一种“抽象接口”

    Muscleape个人总结:(这里的抽象接口是指:使用一个抽象类实现一个接口,是两部分结构) 使用一个抽象类直接实现接口,将接口中的方法区分为实现类必须要实现的和选择性实现的,其他需要实现接口的类型通 ...

  2. 自学Zabbix3.8.3-可视化Visualisation-Screens

    自学Zabbix3.8.3-可视化Visualisation-Screens 在Zabbix屏幕上,您可以将来自不同来源的信息分组,以快速浏览单个屏幕.构建屏幕非常简单直观.本质上,屏幕是一个表.您可 ...

  3. Python爬虫Scrapy(二)_入门案例

    本章将从案例开始介绍python scrapy框架,更多内容请参考:python学习指南 入门案例 学习目标 创建一个Scrapy项目 定义提取的结构化数据(Item) 编写爬取网站的Spider并提 ...

  4. JavaScript 数组最大值

    JavaScript 数组最大值 在js中可以使用Math.max()获取最大值. 如: console.log(Math.max("1","11"," ...

  5. shell编写mysql抽取数据脚本

    #!/bin/bash DT=`date +%Y%m%d` #当前日期YESTERDAY=`date -d "yesterday" +%Y-%m-%d` #昨天,用于处理数据的日期 ...

  6. MongoDB的CURD命令

    1.启动客户端 在MongDB服务成功启动的情况下,打开cmd,在MongDB的bin文件目录下执行MongDB命令 可以看到MongDB版本号3.0.7与默认连接的数据库test.test数据库是系 ...

  7. 指针变量的*p,p以及&p的区别

    23/7/2017  决定夯实基础,回顾指针的知识点,该博文转载于CSDN博主百家晓东,小部分修改,外加编译图引证 正文如下: 以下面的情况说明: int a = 5; int* p = &a ...

  8. JavaWeb框架_Struts2_(八)----->Struts2的国际化

    这一篇博文拖了蛮久了,现在先把它完成,结束struts2这个版块,当然这只是最基础的部分,做项目还需要更深的理解.下一个web后端的版块准备做Spring框架的学习-嗯,加油! 1. Struts2的 ...

  9. 深入学习rollup来进行打包

    深入学习rollup来进行打包 阅读目录 一:什么是Rollup? 二:如何使用Rollup来处理并打包JS文件? 三:设置Babel来使旧浏览器也支持ES6的代码 四:添加一个debug包来记录日志 ...

  10. 新手了解.Nat

    1.Net平台 -->.Net平台 -->.Net FrameWrok框架 2.C#编程语言 -->编程语言:计算机能听懂的语言 -->使用.Net平台  C#是在.NEt平台 ...