【隧道篇 / SSL】(7.4) ❀ 01. 只允许国内IP通过SSL VPN访问内网 ❀ FortiGate 防火墙

2024-01-19 15:52

本文主要是介绍【隧道篇 / SSL】(7.4) ❀ 01. 只允许国内IP通过SSL VPN访问内网 ❀ FortiGate 防火墙,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  【简介】SSL VPN可以让公司员工远程访问公司内网的服务器,发现有些国外IP也在尝试登录SSL VPN,领导要求,只允许国内IP可以登录SSL VPN,如何解决这个问题?


 SSL VPN配置条件

  要想成功的配置SSL VPN,首先需要有一条可以远程访问的宽带,然后是验证用的用户名和密码,以及需要访问的IP网段。

  ① 不管是ADSL宽带还是固定IP宽带,都需要有一个公网IP地址。并且该公网IP地址要能远程访问。测试是否通远程访问的方法很简单,就是在管理访问启用PING。

  ② 然后在外网PING该公网IP地址,如果能PING通,说明可以远程访问。有些拨号宽带得到的是100.64开头的IP地址,这些地址无法在公网上PING通,也就无法远程。

  ③ 如果是ADSL拨号宽带,且获得的公网IP可以远程,那么可以选择菜单【网络】-【DNS】,创建FortiGuard DDNS, 如果是固定IP,就不需要这个步骤。

  ④ FortiGuard DDNS允许设置一个固定的域名,将接口IP和域名绑定。只要访问域名,就会解析成绑定的IP地址。我们知道ADSL拨号宽带获得的公网IP会经常改变,每次公网IP改变后,FortiGuard会将最新的IP和域名重新绑定,这样只要对域名进行访问,即使公网IP改变也没有影响。

  ⑤ 登录SSL VPN时需要进行身份验证,建立用户组,可以将多个用户加入用户组中,对用户组进行权限分配。如果权限不同,也可以创建多个用户组。

  ⑥ 创建用户,用户可以是本地用户也可以是远程用户,将新建的用户加入用户组。

  ⑦ 将需要远程访问的IP网段创建地址对象。

  ⑧ 如果SSL VPN要访问的IP网段比较多,也可以创建地址组,将多个要访问的IP网段加入地址组。到目前为止,所有的准备工作就都完成了。

  SSL VPN门户

  当所有配置条件都OK后,就可以配置SSL VPN门户了。

  ① 选择菜单【VPN】-【SSL-VPN门户】,full-access包含隧道和Web两种模式,tunnel-access只包含隧道模式,由于Web模式不是很安全,推荐使用隧道模式。选择【tunnel-access】,点击【编辑】。

  ② 由于只允许访问内网的服务器,隧道分割选择【基于策略目标启用】,也就是说在防火墙策略的目标地址中,需要填写具体要访问的IP地址。隧道分离地址选择前面创建的地址组,也就是说,只允许地址组的这些IP通过SSL VPN隧道。源IP地址为默认的地址对象,内容是SSL VPN拨号后自动生成的IP的地址。地址对象内容可以修改。

  ③ 还用一种情况,就是SSL VPN拨号后,客户端所有流量都走SSL VPN隧道,包括上网流量。这样可以通过防火墙走防火墙上的宽带上网。这种情况门户里的隧道分割选择【禁用】,这也是默认选项。

  SSL VPN设置

  SSL VPN门户配置好后,就可以进行下一步了。

  ① 选择菜单【VPN】-【SSL-VPN设置】,选择宽带接口,可以同时选择多个宽带接口,分别通过多个宽带接口拨入。默认监听端口是443,会和防火墙的默认https端口冲突,建议修改,常见的有8443、10443。服务器证书选择默认内置证书。记住一定要选择,不然连接会报错。

  ② 限制访问选择【特定主机有限访问】,主机选择基于IP地理位置数据库的地理地址对象CHINA,关于地理地址对象参考其它文章。只样只有国内IP网段才可以拨入。如果要走SSL VPN隧道上网,而上网DNS与本地上网DNS不同,就需要配置DNS服务器。

  ③ 在认证/门户映射,将用新创建的用户组SSL_VPN_Users和修改的门户tunnel-access进行映射。其它用户组也和tunnel-access映射。这样设置就完成了

  SSL VPN访问策略

  SSL VPN门户和设置完成后,就可以配置访问策略了。

  ① 创建新的策略,SSL VPN配置完成后,在接口里会多出一个SSL-VPN tunnel interface (ssl.root) 虚拟接口。可以在策略的流入接口和流出接口引用。从SSL-VPN隧道进来的流量,需要访问防火墙时,必须同时经过自动生成的IP地址和用户验证。目标地址选择允许访问的内网服务器地址组,限制访问范围。

  ② 如果SSL VPN门户里隧道分割选择了【禁用】,那么客户端所有流量都会进入SSL VPN隧道,在客户端创建SSL VPN隧道访问宽带的策略,那么客户端就可以通过防火墙上的宽带上网了。

  FortiClient客户端

  SSL VPN在防火墙上的所有配置都完成了。下一步需要在客户端安装及配置FortiClient。

  ① 可以在 https://www.fortinet.com/support/product-downloads#vpn 网址下载FortiClient VPN客户端。 由于服务器在国外,下载速度会比较慢。

  ② 也可以在 https://support.fortinet.com 网站中下载,前提是需要有注册帐号,并注册了防火墙设备,且设备在服务期内。

  ③ FortiClient支持多种平台,也有多个版本,其中FortiClientVPN仅支持SSL VPN和IPsec VPN功能,如果我们只用于SSL VPN拨号,可以选择这个版本。x64表示支持64位的操作系统。

  ④ 这里以Mac平台为例,下载并安装启动FortiClient VPN,首页显示欢迎信息,钩选【我承认这个自由软件不附带任何产品支持。对于使用此免费软件时遇到的任何问题,我不会联系Fortinet技术支持。】,点击【我接受】。

  ⑤ 点击【配置VPN】。

  ⑥ 输入自定义的连接名,远程网关填写FortiGuard DDNS里配置的域名,如果是固定IP,直接填写IP地址。由于端口已经从443改为10443,这里钩选择【自定义端口】,将443改为10443,点击【保存】。注意这里一定要钩选【自定义端口】,不然直接改端口号是无效的。

  ⑦ 输入前面创建的用户和密码,点击【连接】。

  ⑧ 显示无效服务器证书提示,这里忽略,点击【Continue】。

  ⑨ 显示连接成功介面,这里客户端FortiClient获得的IP地址是由防火墙上的SSLVPN_TUNNEL_ADDR1地址对象分配的。

  ⑩ 因为防火墙上创建了SSL VPN虚拟接口访问Internal接口的策略,这里可以从客户端的电脑Ping通防火墙的Internal接口,也就能远程访问内网下的服务器了。

  ⑪ 如果客户端的外网IP不匹配地理地址对象CHINA,也就是非国内IP,那么同样的配置发起连接后,显示报错提示,无法连接成功。


这篇关于【隧道篇 / SSL】(7.4) ❀ 01. 只允许国内IP通过SSL VPN访问内网 ❀ FortiGate 防火墙的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/622913

相关文章

SpringBoot服务获取Pod当前IP的两种方案

《SpringBoot服务获取Pod当前IP的两种方案》在Kubernetes集群中,SpringBoot服务获取Pod当前IP的方案主要有两种,通过环境变量注入或通过Java代码动态获取网络接口IP... 目录方案一:通过 Kubernetes Downward API 注入环境变量原理步骤方案二:通过

如何搭建并配置HTTPD文件服务及访问权限控制

《如何搭建并配置HTTPD文件服务及访问权限控制》:本文主要介绍如何搭建并配置HTTPD文件服务及访问权限控制的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、安装HTTPD服务二、HTTPD服务目录结构三、配置修改四、服务启动五、基于用户访问权限控制六、

NGINX 配置内网访问的实现步骤

《NGINX配置内网访问的实现步骤》本文主要介绍了NGINX配置内网访问的实现步骤,Nginx的geo模块限制域名访问权限,仅允许内网/办公室IP访问,具有一定的参考价值,感兴趣的可以了解一下... 目录需求1. geo 模块配置2. 访问控制判断3. 错误页面配置4. 一个完整的配置参考文档需求我们有一

C#实现访问远程硬盘的图文教程

《C#实现访问远程硬盘的图文教程》在现实场景中,我们经常用到远程桌面功能,而在某些场景下,我们需要使用类似的远程硬盘功能,这样能非常方便地操作对方电脑磁盘的目录、以及传送文件,这次我们将给出一个完整的... 目录引言一. 远程硬盘功能展示二. 远程硬盘代码实现1. 底层业务通信实现2. UI 实现三. De

python通过curl实现访问deepseek的API

《python通过curl实现访问deepseek的API》这篇文章主要为大家详细介绍了python如何通过curl实现访问deepseek的API,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编... API申请和充值下面是deepeek的API网站https://platform.deepsee

Nginx 访问 /root/下 403 Forbidden问题解决

《Nginx访问/root/下403Forbidden问题解决》在使用Nginx作为Web服务器时,可能会遇到403Forbidden错误,文中通过示例代码介绍的非常详细,对大家的学习或者工作... 目录解决 Nginx 访问 /root/test/1.html 403 Forbidden 问题问题复现Ng

Gradle在国内配置镜像加速的实现步骤

《Gradle在国内配置镜像加速的实现步骤》在国内使用Gradle构建项目时,最大的痛点就是依赖下载贼慢,甚至卡死,下面教你如何配置国内镜像加速Gradle下载依赖,主要是通过改写repositori... 目录引言一、修改 build.gradle 或 settings.gradle 的 reposito

Java根据IP地址实现归属地获取

《Java根据IP地址实现归属地获取》Ip2region是一个离线IP地址定位库和IP定位数据管理框架,这篇文章主要为大家详细介绍了Java如何使用Ip2region实现根据IP地址获取归属地,感兴趣... 目录一、使用Ip2region离线获取1、Ip2region简介2、导包3、下编程载xdb文件4、J

使用Python实现IP地址和端口状态检测与监控

《使用Python实现IP地址和端口状态检测与监控》在网络运维和服务器管理中,IP地址和端口的可用性监控是保障业务连续性的基础需求,本文将带你用Python从零打造一个高可用IP监控系统,感兴趣的小伙... 目录概述:为什么需要IP监控系统使用步骤说明1. 环境准备2. 系统部署3. 核心功能配置系统效果展

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服