实验篇(7.2) 04. 映射内网服务器到公网IP ❀ 远程访问

news2024/9/28 13:19:35

  【简介】由于服务器的IP是内网地址,所以无法从公网直接访问服务器。要想远程访问服务器,最简单的办法就是将服务器映射到公网IP,然后通过公网IP加端口号的方式进行访问。


  实验要求与环境

  OldMei集团深圳总部部署了一台服务器,用来对所有内网的设备进行管理。为了方便管理员在任何位置都能访问,启用了远程桌面功能。上班时间,管理员在公司内网可以通过远程桌面登录服务器。下班时间,管理员也希望能在家中电脑远程登录公司的服务器,进行应急管理。

  根据前面三篇文章的介绍,我们已经在桌面上创建了模拟远程访问平台。这里不再叙述。我们直接操作。

  管理员在家里将笔记本电脑配置为家中宽带上网。

  通过公网IP,远程登录深圳总部防火墙。

  映射前的准备工作

  大多数人一上来就开始进行映射操作,一旦不通就慌了手脚,不知道如何处理。其实,在映射之前,应该先确认防火墙到服务器之间,是否连通正常。

  选择菜单【网络】-【接口】,确认一下连接服务器的防火墙接口IP,这里是10.10.10.1,等一下要以这个IP为源,去Ping服务器的IP。

  点击右上角的【>_】命令标,进入命令输入窗口。

  通常我们会用Ping命令测试设备之间的物理连接。Ping命令在防火墙上也可以执行。执行Ping命令之前,需要定义源IP。

  输入命令execute ping-options source 10.10.10.1,表示从DMZ接口起Ping,【注意】定义的源IP地址,必须是防火墙的接口IP,不能其它IP。

  输入命令execute ping 10.10.10.254,从防火墙的DMZ口Ping服务器的IP,前面环境设置中,我们已经开放了服务器的Ping,这里显示Ping通信息,表示防火墙到服务器之间是物理连通的。

  虽然我们知道服务器没有关机,也没有断线,可以连通,但是,不能保证我们要访问的远程桌面是不是OK的,这里需要再确认一下,输入命令execute telnet 10.10.10.254 3389,显示Connected to 10.10.10.254, 表示端口连接成功。

  看到了成功的案例,我们再看看失败的案例,这里我们定义了一个想象的源IP,即使接下来的Ping命令没有错,服务器也工作正常,仍然会报Ping不通。所以,切记,要定义防火墙接口上存上的IP。

  那有人要抬杠了,那我定义内网或无线接口,而不是DMZ接口,会不会通的呢?这就要看是不是有访问策略允许了,前面我们建立了无线访问DMZ的策略,而没有建立内网接口访问DMZ的策略,所以定义无线接口IP可以Ping通,定义内网接口IP就不会Ping通。明白了吧。

  再看Telnet测试,如果服务器不在线,远程桌面功能关闭了,或者端口输入错误,都不会出现Connected提示。

  映射服务器到公网IP

  当我们确认防火墙到服务器之间的连接都是正常之后,就可以配置防火墙,将服务器的内网IP,映射到公网IP上了。

  首先我们需要创建公网IP和内网IP一一对应的虚拟IP。选择菜单【策略&对象】-【虚拟IP】,点击【新建】。

  为了让大家知道什么是对的,什么是错的,我们先建立一个标准配置,后期我们再来改成经常会弄错的配置。

  虚拟IP的名称其实很重要,很多人就随手一敲,等过后就经常想不起来到底是映射那哪个IP哪个端口。这里建议虚拟IP名称加入服务器IP和端口号。

  接口选项很多人会填成内网接口,连接服务器的接口。这里应该填的是宽带接口,特别是有多条宽带的时候,千万不能选择错误。

  端口转发很重要,为了安全起见,只有指定的端口可以映射到公网上。

  如果需要映射多台服务器,或者一台服务器的多个端口,就需要象这样建立多个虚拟IP。为了管理方便,可以创建虚拟IP组,按服务器分类。

  创建虚拟IP后,下一个操作就是创建允许访问的策略。选择菜单【策略&对象】-【防火墙策略】,点击【新建】。

  注意这个流入接口和流出接口,很多人会搞错。因为是允许从公网访问防火墙内部的服务器,所以流入接口应该是宽带接口。如果有多条宽带,接口要和虚拟IP里设定的公网IP对应上。

  如果对远程访问地址有要求,也可以加上,例如,只允许管理员从家里的宽带远程访问公司防火墙。这里我们不做限制,源地址选择all。

  目标地址,也是80%的人会选择错误,直接选择服务器的IP地址了。这里要选择的是我们刚刚建立的虚拟IP地址。

  通常服务选项都是选择all,但是为了缩小被攻击的空间,我们还是建议在服务选项里选择指定的服号,即端口号。防火墙内部有创建常用的服务。

  最后这个NAT选项,在大多数情况一下是不用启用的。只有在某些特殊情况下需要启用。例如,DMZ口是10.10.10.1,下面连接一台三层交换机,三层交换机划了多个VLAN,其中服务器IP网段,和DMZ口不是一个网段。这种情况下,就需要启用NAT了。点击【确认】,策略创建完成,下一步,就是看看是否能远程登录服务器的桌面了。

  刚才的防火墙配置,都是管理员在家里,通过远程访问公司防火墙操作的。现在再打开远程桌面连接,输入公司防火墙公网IP。点击【连接】。

  当出现输入凭据的时候,就可以判断前面所做的映射是成功的。输入服务器的帐号和密码,点击【确定】。

  出现证书提示,选择【不再询问我是否连接到此计算机】,点击【是】。

  恭喜你,你已经从家里或互联网的任何地方,登录OldMei深圳总部防火墙后面的AD服务器了。

  问题答疑

  即然是实验,我们不能只看到标准答案,也要看看其它的答案。下面来看看有哪些常见的问题会提出来。

【我的服务器要映射的端口太多,甚至我都不知道存在哪些端口,这个要怎么办?】

  这种情况只能是一个公网IP映射一个内网IP,所有的端口都映射。但是这种情况下,你需要有多个公网IP才行,如果只有一个公网接口IP,就会把远程防火墙要用到的端口都覆盖了。这样就无法再远程登录防火墙。

  通常固定IP宽带,运营商都会给你多个公网IP,而防火墙的Wan接口上只配置了一个,那其它几个就可以用来映射服务器了。选择菜单【网络】-【接口】,选择wan1口,点击【编辑】。

  默认附加IP地址是禁用的,这里启用它,弹出窗口点击【新建】。

  输入这么宽带可用的其它IP地址,注册子网掩码不要输错。启用【PING】,点击【确认】。

  这样,在一个接口上,就有两个IP了,接口IP用来上网及远程登录防火墙,附加IP用于映射服务器。可以加入多个可用公网IP。

  编辑虚拟IP,外部IP修改成为wan1接口的附加IP地址。关闭【端口转发】,这样,10.10.10.254的所有端口,都映射成218.253.83.147了。

  从家里分别Ping总部防火墙的Wan1接口IP和附加IP,都可以Ping通。

  用telnet测试修改后的映射端口。

  可以telnet成功,也就是说,即使关闭了【端口转发】,10.10.10.254的3389的端口,仍然是映射到了218.253.83.147上。其实不光是3389,所有的端口都映射了。

  再用远程桌面连接,输入的是附加IP地址。

  一样的可以远程桌面登录。

  在很多大型IDC会有这种情况,一个公网IP映射一台服务。这样虽然方便,但在公网上开通这么多端口,很容易被黑客找到漏洞而发起攻击。需要做好服务器的安全工作。

【我不想让我真实服务器端口暴露在公网,这个要怎么办?】

  直接将服务器映射到公网上,很容易受到针对性的攻击,特别是常用的端口,为了隐藏服务器的真实端口,通常我们可以在虚拟IP设置外部服务器端口时,设置过其它端口,端口号只要不冲突就行。

  象这样有一真一假两个端口的情况,在策略里是要放行哪个呢?策略里放行的是服务器的真实端口。

  再次用远程桌面连接,这次要将公网地址加上端口号,可以正常连接。

  除了我们演示的3389端口,象80、443等端口,宽带运营商是封闭的,同样需要用其它端口代替,才能远程访问。注意:防火墙本身也会用到80、443端口。

【我的宽带是ADSL拨号宽带,得到的IP可以远程访问,但是IP经常会变,可以映射服务器吗?】

  如果宽带是ADSL,动态获取公网IP,虚拟IP的外问IP地址可以为0.0.0.0。非ADSL则必须指定公网IP。

  通过FortiGate防火墙DDNS功能,可以将域名捆绑接口IP,即使IP变更,用域名仍然可以解析出当前公网IP,这样就可以用域名进行远程访问了。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/586977.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微服务实战项目-学成在线-内容管理模块(有项目实战实现)

内容管理模块 1 模块需求分析 1.1 什么是需求分析 在百度百科中对需求分析的定义如下: 需求分析也称为软件需求分析、系统需求分析或需求分析工程等,是开发人员经过深入细致的调研和分析,准确理解用户和项目的功能、性能、可靠性等具体要…

Golang每日一练(leetDay0081) 基本计算器I\II Basic Calculator

目录 224. 基本计算器 Basic Calculator 🌟🌟🌟 227. 基本计算器 II Basic Calculator 🌟🌟 🌟 每日一练刷题专栏 🌟 Rust每日一练 专栏 Golang每日一练 专栏 Python每日一练 专栏 C/C…

OpenAI API最新速查表;轻松制作数字分身;8个ChatGPT「作弊」策略;微软提示工程官方教程 | ShowMeAI日报

👀日报&周刊合集 | 🎡生产力工具与行业应用大全 | 🧡 点赞关注评论拜托啦! 🤖 The OpenAI API in Python 最新速查表 ShowMeAI知识星球资源编码:R102 大语言模型的发展,正在推动 OpenAI API…

chatgpt赋能python:Python中的宏定义及其使用

Python中的宏定义及其使用 Python是一种高级编程语言,其灵活性和可读性深受程序员的喜爱。Python中的宏定义是一种强大且实用的编程特性,在编写复杂程序时可以提高程序的可重用性和可扩展性。 什么是宏? 在计算机编程中,宏是一…

chatgpt赋能python:Python中怎么安装包:完整指南

Python中怎么安装包:完整指南 Python是一种高级编程语言,被广泛应用于数据科学、Web开发、自动化、AI和机器学习等领域。Python的强大功能得益于它的包管理系统,这意味着开发者可以在自己的项目中使用已经编写好的代码。在本文中&#xff0c…

IaaS、PaaS、SaaS、DaaS的区别

IasS - 基础设施即服务 IaaS是Infrastructure as a server的缩写,意思是基础设施即服务。云端公司把IT环境的基础设施建设好,然后直接对外出租硬件服务器或者虚拟机。消费者可以利用所有计算基础设施,包括处理CPU、内存、存储、网络和其它基…

电容笔哪个牌子好用?苹果平板笔推荐

随着国内消费水平的上升,大家开始注重环保。开始使用起了无纸化书写,而无纸化的书写最离不开电容笔。但市面上的电容笔品牌大同小异,而每个人的使用体验都不同。所以今天给大家科普一下挑选电容笔的注意事项和推荐几款市面上好用的电容笔&…

116.移除指定元素 removeSpecifyElement

文章目录 题目描述解题思路代码详解运行截图 题目描述 题目链接 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输…

Rust每日一练(Leetday0015) 字符串相乘、通配符匹配、跳跃游戏II

目录 43. 字符串相乘 Multiply Strings 🌟🌟 44. 通配符匹配 Wildcard Matching 🌟🌟🌟 45. 跳跃游戏 II Jump Game II 🌟🌟 🌟 每日一练刷题专栏 🌟 Rust每日一…

chatgpt赋能python:Python中如何创建矩阵

Python中如何创建矩阵 矩阵(matrix)是线性代数中的重要概念,它在数学、物理、计算机科学等领域中都有着广泛应用。在Python编程中,我们也经常需要创建矩阵来进行各种数学计算,例如矩阵乘法、逆矩阵求解等。那么&#…

chatgpt赋能python:Python中如何去掉重复项

Python中如何去掉重复项 在Python的编程中,常常会遇到需要去掉重复项的情况。重复项的存在会极大地影响程序的效率和准确性。在本篇文章中,我们将讨论Python中如何去掉重复项,包括使用set()函数、使用列表推导式和使用字典的方法。这些方法都…

chatgpt赋能python:Python中怎么分段?

#Python中怎么分段? ##介绍 Python是一种高级编程语言,它被广泛用于各种任务,包括数据分析、Web开发、人工智能、游戏开发等等。对于Python的初学者来说,其中有一个重要的问题是如何正确地分段。在这篇文章中,我们将…

夜深人静学32系列16——RTC实时时钟

RTC时钟 RTC什么是RTC?RTC结构框图CubeMX配置RTC代码配置 实战——简易时钟任务要求代码实现实验结果 补充唤醒功能配置代码如下: RTC 什么是RTC? RTC(Real Time Clock):实时时钟 RTC是个独立的定时器。RTC模块拥有一个连续计数…

chatgpt赋能python:Python中如何清屏

Python中如何清屏 在Python编程中,有时候我们需要清除屏幕以方便我们查看输出,或者在一些UI开发中,需要在用户交互后清除屏幕并重新渲染界面。本文将介绍Python中如何清屏。 使用os模块的system函数 os模块提供了执行操作系统命令的接口&a…

Struts2 012 漏洞分析

0x00 前言 之前的003,005,009都是基于参数本身的ONGL注入,012则是基于参数值的ONGL注入 0x01 环境 还是建议使用vulhub poc: 无回显 %{(#context[xwork.MethodAccessor.denyMethodExecution]false)(#_memberAccess[allowStaticMethodAccess]true)(java.lang.R…

chatgpt赋能python:Python中如何停止运行程序

Python中如何停止运行程序 Python 是一种功能丰富、灵活的编程语言,但有时候你需要停止运行你的程序,无论是因为出现了错误,或者因为完成了你想要的任务。在本文中,我们将介绍 Python 中停止运行程序的几种方法,以及对…

Angular学习笔记:动画

本文是自己的学习笔记,主要参考资料如下。 - Angular官方文档:https://angular.io/guide/animations 1、前置工作1.1、导入依赖 2、代码部分2.1、有关的imports2.2、定义触发条件(trigger)2.3、定义状态(state&#…

chatgpt赋能python:Python中如何排序

Python中如何排序 Python是一门功能强大的编程语言,拥有丰富的库和模块来满足各种需求。在Python中,排序是一项常见的任务,它可以帮助我们对数据进行整理和分析。本文将介绍Python中如何排序,包括排序算法和相关的库函数。 排序…

SysInfo(电脑系统信息)0.0.0.1beta2

文件说明符 : D:\masm32\wmi\sysInfo\sysInfo0.0.0.1beta2.exe 属性 : A--- 数字签名:否 PE文件:是 语言 : 中文(简体,中国) 文件版本 : 0.0.0001 beta2 说明 : 电脑系统信息 版权 : PurpleEndurer 产品版本 : 0.0.0001 beta2 产品名称 : 电脑系统信息 公司名称 : P…

oracle--常用维护语句

1、sqlpus 连接 [rootdb-server ~]$su - oracle ##切换oracle用户 [oracledb-server ~]$ sqlplus /nolog ##启动客户端进程 SQL>conn zyl/zyl2022 ##普通用户登录 SQL>conn / as sysdba ##管理员登录 Connected. SQL> 2、启动或关闭数据库 SQL>startup…