飞塔防火墙SSL VPN单点登录
本文最后更新于15 天前,其中的信息可能已经过时,如有错误请发送邮件到1979007616@qq.com

前言

公司使用微软的AD域,现在需要和飞塔VPN进行连接,其主要目的是为AD用户提供单一登录(SSO)访问权限。

反过来看整体的设置是比较简单的,主要是记录设置的过程以及排错方法,最主要还是它的拓展性,微软AD域不仅仅能连接飞塔防火墙的单点登录,其他系统的认证也能进行关联,例如OpenVpn;飞塔防火墙的单点登录应该也能连接Windows AD域。

域服务器设置

配置 Microsoft Entra SSO

ADFS(Active Directory 联合身份验证服务是一项需要单独安装在 AD 服务器上的功能)可以配合FortiGate实现SAML认证。Windows AD域安装ADFS的方法:防火墙用户与SSL VPN SAML认证(Windows ADFS) · FortiGate产品实施一本通FortiOS 7

由于我用的是微软的AD域,需要登录到Microsoft Entra 管理中心配置 Microsoft Entra SSO,具体看官方文档:

基本SMAL配置:

  • Identifierhttps://<FortiGate IP or FQDN address>:<Custom SSL VPN port>/remote/saml/metadata
  • Reply URLhttps://<FortiGate IP or FQDN address>:<Custom SSL VPN port>/remote/saml/login
  • Sign on URLhttps://<FortiGate IP or FQDN address>:<Custom SSL VPN port>/remote/saml/login
  • Logout URLhttps://<FortiGate IP or FQDN address>:<Custom SSL VPN port><FQDN>/remote/saml/logout

其中<FortiGate IP or FQDN address>:<Custom SSL VPN port>需要和飞塔防火墙的SSL-VPN设置保持一致,当然用域名是最好的,可以申请SSL证书,我使用的IP+端口,客户端连接VPN会报错,需要连两次才能成功,虽然不影响使用,操作上还是不符合常理的。

附加 SAML 属性:

保存信息,还要设置用户组权限,这里不做讲解,因为没有后台管理权限。

导出证书

在“使用 SAML 设置单点登录”页面的“SAML 签名证书”部分中,选择“证书 (Base64)”旁边的“下载”链接以下载证书并将其保存在您的计算机上。

最后将以下idp配置URL复制下来:

  • idp-Login URLhttps://login.microsoftonline.com/88c3e3b5-abdd-4476-b47a-f563a26aae98/saml2
  • idp-Microsoft Entra ID Identifierhttps://sts.windows.net/88c3e3b5-abdd-4476-b47a-f563a26aae98/
  • idp-Logout URLhttps://login.microsoftonline.com/88c3e3b5-abdd-4476-b47a-f563a26aae98/saml2

飞塔防火墙设置

导入证书

将上面保存的证书文件导入到防火墙中,类型选远程证书:

新建SSO连接

根据Microsoft Entra SSO的设置参数,新建SSO连接,参数对应关系(参考配置图)AD——SSO:

  • Identifier——-entity-id
  • Reply URL——-single-sign-on-url
  • Logout URL——-single-logout-url
  • idp-Microsoft Entra ID Identifier——-idp-entity-id
  • idp-Login URL——-idp-single-sign-on-url
  • idp-Logout URL——-idp-single-logout-url
  • Base64 SAML 证书名称 (REMOTE_Cert_N)——-idp-cert

为了避免混淆,建议参照官方的属性对照表:

还有一个点需要注意,新建SSO连接时,Service Provider Configuration这里的配置默认是无法修改的,可以看到这和官方文档的参数是不同的,可能是防火墙版本的原因,如果要修改,需要进入命令行界面。

config user saml
       edit SSO名称

域名访问

上面设置VPN连接时使用的是IP地址,所以导致客户端连接时会提示连接不安全,IP地址是没有办法申请SSL证书的,所以就需要使用域名进行访问。

首先在腾讯云或阿里云添加一条解析记录,vpn.example.com指向VPN的IP地址,然后申请一个90天的免费证书(有很多那种可以自签证书的系统,到期会自动续签,我暂时还没有接触过),把证书下载下来。方式有很多种,我选择的是其他。

解压出来如下图:

将证书导入到防火墙,防火墙版本不一样导入方式可能会有差异:

在SSL-VPN设置里面修改服务器证书,选择域名证书。

将单点登录的设置也改成域名

最后修改一下微软域的Microsoft Entra SSO设置,将IP替换成域名,SSO证书不用重新下载导入也可以,浏览器访问验证通过。

故障排查

我觉得认真查看官方文档进行设置是没什么太大难度的,最重要的是要对报错日志的排查,记录一下排查的一些命令。

按照官方文档,单点登录连接域用户需要网络是通的,我不太确定域IP要和VPN公网IP连通,还是和防火墙管理地址连通,以下是ping测的命令:

FortiGate 的 execute ping 默认用“出接口的地址”作源 IP。对路由指向 IPsec 接口时,这个“接口”一般是个虚拟口(无 IP),于是 FortiGate 会选别的源地址(比如 WAN 口或某个系统地址),不是 172.16.73.1。

指定源地址再 ping:
execute ping-options source 172.16.73.1
execute ping 10.220.127.39

测试完毕后重置 ping-options(否则后续 ping 会一直带指定源)
execute ping-options reset

防火墙日志采集命令:

diagnose debug reset
# SAML 报错、Token 验证、跳转异常
diagnose debug application samld -1
# 登录、断线、IP 分配、重定向问题
diagnose debug application sslvpn -1
# 用户密码错误/连接 AD 失败
diagnose debug application fnbamd -1
diagnose debug enable

其他命令:

# 查看VPN在线用户信息
execute vpn sslvpn list

# 查看saml配置
show user saml saml名称
小提示:您可以通过RSS订阅本站文章更新,订阅地址:https://blog.xmhweb.cn/feed
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇