AWS FortiGate FortiWeb三层架构配置方式及问题处理

作者:聚福 发表于:2025-01-18

拓扑图:

AWS FortiGate FortiWeb三层架构配置方式及问题处理_FortiWeb


AWS FortiGate FortiWeb三层架构配置方式及问题处理_FortiWeb_02


1.脚本自动化导入license​

先将license存在S3中

脚本链接:

​​https://support.fortinet.com.cn/uploadfile/2018/0118/20180118075328404.pdf​​


2.如何将FortiGate与FortiWeb连接起来?​

1.)在地址中新建一个FQDN地址

AWS FortiGate FortiWeb三层架构配置方式及问题处理_AWS_03


2.)FortiGate命令行配置:

config firewall vip

edit vip1

set type fqdn

set exip 1.1.1.1(Gate内网IP)

set extintf port1

set mapped-addr zone.secevery.com(FQDN名称)

show

en

然后在界面里配置端口80转发。

高级版本里可以直接在UI界面中配置,如下图所示:

AWS FortiGate FortiWeb三层架构配置方式及问题处理_AWS_04


3.)新建一条IPV4策略

AWS FortiGate FortiWeb三层架构配置方式及问题处理_FortiGate_05



3.开启双因子认证​

需要先配置Email服务。在“系统管理”——“设定”——“Email Service”里面。

AWS FortiGate FortiWeb三层架构配置方式及问题处理_FortiWeb_06


然后去“系统管理”——“管理员”中配置双因子认证

AWS FortiGate FortiWeb三层架构配置方式及问题处理_FortiWeb_07


AWS FortiGate FortiWeb三层架构配置方式及问题处理_负载均衡_08


AWS FortiGate FortiWeb三层架构配置方式及问题处理_FortiGate_09


然后会收到一封邮件,根据邮件提示在手机上安装FortiToken Mobile,苹果手机直接在APP Store搜索就能搜到这个软件,安装好了以后在FortiToken里输入邮件里的激活码就激活了,之后您再登录到Gate里面就需要输入手机里的认证码了

4.利用命令行关闭双因子认证​

SSH到Gate上后,依次输入以下命令:

config system admin

edit admin

show

unset two-factor

show

next

end


5.配置Radius远程认证管理员​

相关文档:

​​https://docs.fortinet.com/document/fortigate/6.4.3/administration-guide/766272/remote-authentication-for-administrators​​

步骤:

1)在“用户设备”中新建Radius服务器

AWS FortiGate FortiWeb三层架构配置方式及问题处理_FortiGate_10


2)新建远程用户组,类型选择“防火墙”,在远程组中添加Radius服务器,并指定Radius服务器中已有的成员组。

AWS FortiGate FortiWeb三层架构配置方式及问题处理_FortiWeb_11


3)创建一个新的管理员,类型选择“在远端服务器组中匹配一个用户”,远端用户组选择2)中指定的组(Radius服务器上存在的组)

AWS FortiGate FortiWeb三层架构配置方式及问题处理_负载均衡_12


6.修改管理界面端口​

AWS FortiGate FortiWeb三层架构配置方式及问题处理_FortiWeb_13


这里改完了,把AWS安全组对应的端口放开即可,之后登陆就得用新的端口了





7.创建虚拟服务器导入证书​


配置虚拟服务器,6.4.6在命令行配置

AWS FortiGate FortiWeb三层架构配置方式及问题处理_AWS_14



SSL卸载选择全部,之后选择证书

AWS FortiGate FortiWeb三层架构配置方式及问题处理_FortiWeb_15



1.多域名对应不同应用——HTTP内容路由的配置

无域名的网址如何配置内容路由?

1)新建虚拟机服务器

2)新建主机池——一个ELB对应一个主机池

3)新建HTTP内容路由——一条对应一个主机池

4)新建服务器策略——改为基于HTTP内容路由,将3)中新建的路由条目一一添加至策略中。

<注意>

创建完HTTP内容路由后,可能会遇到一个问题:WAF前端的ALB的健康检查状态始终为unhealthy。原因是ALB发出的请求没有匹配到任何一条内容路由,所以没有得到FortiWeb的响应。解决方案是将其中一条内容路由的“默认”开启,保证无法匹配每一条内容路由的流量走默认的规则。

2.单个网址的保护(IP+端口号模式)

例:​​http://52.81.6.167:8099/login.html​​这个网址对应的是客户的OA系统,后台仅一台EC2,客户要通过VPN连到内网中通过WAF访问OA。

操作流程:

1)新建主机池,IP是OA系统的内网IP,端口号是对应的8099

AWS FortiGate FortiWeb三层架构配置方式及问题处理_FortiWeb_16


AWS FortiGate FortiWeb三层架构配置方式及问题处理_AWS_17


2)新建虚拟服务器

AWS FortiGate FortiWeb三层架构配置方式及问题处理_负载均衡_18


3)新建“服务器对象”——>“服务”——>"自定义",创建客户需要的8099端口。

AWS FortiGate FortiWeb三层架构配置方式及问题处理_AWS_19


4)新建一条“服务器策略”

AWS FortiGate FortiWeb三层架构配置方式及问题处理_FortiWeb_20


AWS FortiGate FortiWeb三层架构配置方式及问题处理_AWS_21


5)打开EC2安全组中对应端口、协议等。

3.HTTPS流量的证书卸载

建议在架构最前面的ELB上做证书卸载。


4.WAF不同型号所能承受的流量

AWS FortiGate FortiWeb三层架构配置方式及问题处理_FortiGate_22



5.在WAF上做多域名多证书的对应

1)系统——证书——服务器名称指示(SNI)

AWS FortiGate FortiWeb三层架构配置方式及问题处理_AWS_23


2)新建,编辑名称

AWS FortiGate FortiWeb三层架构配置方式及问题处理_负载均衡_24


3)下方新建

AWS FortiGate FortiWeb三层架构配置方式及问题处理_FortiWeb_25


4)打开服务器策略,打开原先制定好的策略,在HTTPS服务里选择HTTPS,勾选“启用多证书”

AWS FortiGate FortiWeb三层架构配置方式及问题处理_AWS_26


5)打开“高级SSL设置”,启用SNI,并引用刚才新建的SNI策略

AWS FortiGate FortiWeb三层架构配置方式及问题处理_FortiWeb_27


6)确认,完成。不同域名都有对应的SSL证书。


4.利用命令行修改管理员密码

Gate和Web几乎一致:

config system admin

edit “admin” //“”里填写要修改密码的对应的管理员

set password “P@ssw0rd”

next

end

Web命令行指导:

​​https://docs.fortinet.com/document/fortiweb/6.3.7/cli-reference/810797/system-admin​​

Gate命令行指导:

​​https://docs.fortinet.com/document/fortigate/6.2.5/cli-reference/15620/system-admin​​

5.修改管理界面端口

AWS FortiGate FortiWeb三层架构配置方式及问题处理_FortiWeb_28


这里改完了,把AWS安全组对应的端口放开即可,之后登陆就得用新的端口了.

6.无法获取客户端真实IP

说明:ALB可以自动添加Xff头,NLB不会,所以最前面使用ALB,WAF开启读取Xff功能,直接读取最右侧的头获得客户端IP

1)将Gate前面的负载均衡换成ALB

2)将WAF前面的负载均衡换成NLB

3)打开WAF的X-forwarded-for支持,选择“右”

AWS FortiGate FortiWeb三层架构配置方式及问题处理_FortiGate_29


7.配置HA

HA端口:6055;6056;6010

<注>1.“主设备抢占”功能或者都选或者都不选,这是配置文件的一部分,只有配置文件完全一致,HA才能彼此找到对端

2.IP地址选择私网IP即可


AWS FortiGate FortiWeb三层架构配置方式及问题处理_负载均衡_30


8.重定向次数太多

说明:重定向次数太多:https流量经由最前端的负载均衡器做了证书卸载,转化成了http流量通过WAF传到后端应用(或应用前端的ALB),但后端应用(或应用前端的ALB)做了重定向,将http流量重新定向到https流量,重定向后的流量又去访问最前端的负载均衡,整个过程形成循环

AWS FortiGate FortiWeb三层架构配置方式及问题处理_FortiWeb_31

在WAF上的解决方案:开启SSL,将接收到的HTTP流量重新转化为HTTPS



AWS FortiGate FortiWeb三层架构配置方式及问题处理_负载均衡_32



9.后端服务器拒绝响应


可能是由于后端服务器收到的请求是显示的主机池定义的域名,而服务器不认这个域名所以直接拒绝。

可以在主机池配置里面勾选SNI Forward,使得请求中的域名就是请求的域名本身即可。

AWS FortiGate FortiWeb三层架构配置方式及问题处理_FortiWeb_33


10.WAF配置缓存和压缩


策略里引用网络缓存

AWS FortiGate FortiWeb三层架构配置方式及问题处理_FortiWeb_34



创建缓存规则

AWS FortiGate FortiWeb三层架构配置方式及问题处理_AWS_35



创建压缩规则

AWS FortiGate FortiWeb三层架构配置方式及问题处理_负载均衡_36



Web保护规范引用压缩规则

AWS FortiGate FortiWeb三层架构配置方式及问题处理_AWS_37



11.导入本地证书


本地证书上传

AWS FortiGate FortiWeb三层架构配置方式及问题处理_负载均衡_38



SNI配置域名并对应本地证书

AWS FortiGate FortiWeb三层架构配置方式及问题处理_负载均衡_39



服务器策略启用SNI并引用SNI策略

AWS FortiGate FortiWeb三层架构配置方式及问题处理_FortiWeb_40


版权声明

本文系作者发表,未经许可,不得转载