SNMP 与管理员可信主机
SNMP 与管理员可信主机
网络需求
通过管理 PC 通过 FortiGate 的 lan 口访问 SNMP,同时 FortiGate 配置了管理员可信主机。
网络拓扑

配置步骤
在 FortiGate 的 lan 接口上开启 SNMP 的允许访问。

config system interface edit "lan" append allowaccess snmp next end开启 SNMP 代理的总开关,并填写代理信息。新建并配置 SNMP v1 和 v2 的属性,例如配置 SNMP 团体名称为 Fortinet123#,建议不要使用通用的 public,容易被探测和攻击。配置 SNMP 主机为 192.168.100.177/32。


config system snmp sysinfo set status enable set description "Fortinet_Beijing_LAB" set contact-info "bbai@fortinet.com" set location "Beijing" end config system snmp community edit 2 set name "Fortinet123#" config hosts edit 1 set ip 192.168.100.177 255.255.255.255 next end next end
结果验证
使用客户端 PC 192.168.100.177 对 FortiGate 进行 SNMP 读取,在没有配置管理员信任主机之前,SNMP 可以正常读取。
~ > ifconfig en7 ... inet 192.168.100.177 netmask 0xffffff00 broadcast 192.168.100.255 ... ~ > snmpwalk -v2c -c Fortinet123# 192.168.100.99 .1.3.6.1.4.1.12356.101.4.1.1.0 SNMPv2-SMI::enterprises.12356.101.4.1.1.0 = STRING: "v7.0.11,build0489,230314 (GA.M)" ~ > snmpwalk -v2c -c Fortinet123# 192.168.100.99 1.3.6.1.2.1.1.3.0 DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (11060652) 1 day, 6:43:26.52 ~ > snmpwalk -v2c -c Fortinet123# 192.168.100.99 .1.3.6.1.4.1.12356.100.1.1.1.0 SNMPv2-SMI::enterprises.12356.100.1.1.1.0 = STRING: "FG101FTK20007637"配置管理员信任主机为 192.168.100.178/32,不包含 192.168.100.177/32。


config system admin edit "admin" set trusthost1 192.168.100.178 255.255.255.255 next end再次使用客户端 PC 192.168.100.177 对 FortiGate 进行 SNMP 读取,全部超时失败。
~ > ifconfig en7 ... inet 192.168.100.177 netmask 0xffffff00 broadcast 192.168.100.255 ... ~ > snmpwalk -v2c -c Fortinet123# 192.168.100.99 .1.3.6.1.4.1.12356.101.4.1.1.0 Timeout: No Response from 192.168.100.99 ✘ ~ > snmpwalk -v2c -c Fortinet123# 192.168.100.99 1.3.6.1.2.1.1.3.0 Timeout: No Response from 192.168.100.99 ✘ ~ > snmpwalk -v2c -c Fortinet123# 192.168.100.99 .1.3.6.1.4.1.12356.100.1.1.1.0 Timeout: No Response from 192.168.100.99开启管理员可信主机后要解决这个问题,需要将 SNMP 管理主机的 IP 地址也加入到管理员的可信任主机中,这样 SNMP 才可以正常获取信息。

config system admin edit "admin" set trusthost1 192.168.100.178 255.255.255.255 set trusthost2 192.168.100.179 255.255.255.255 next end再次使用客户端 PC 192.168.100.177 对 FortiGate 进行 SNMP 读取,读取成功。
~ > ifconfig en7 ... inet 192.168.100.177 netmask 0xffffff00 broadcast 192.168.100.255 ... ~ > snmpwalk -v2c -c Fortinet123# 192.168.100.99 .1.3.6.1.4.1.12356.101.4.1.1.0 SNMPv2-SMI::enterprises.12356.101.4.1.1.0 = STRING: "v7.0.11,build0489,230314 (GA.M)" ~ > snmpwalk -v2c -c Fortinet123# 192.168.100.99 1.3.6.1.2.1.1.3.0 DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (11060652) 1 day, 6:43:26.52 ~ > snmpwalk -v2c -c Fortinet123# 192.168.100.99 .1.3.6.1.4.1.12356.100.1.1.1.0 SNMPv2-SMI::enterprises.12356.100.1.1.1.0 = STRING: "FG101FTK20007637"
注意事项
以上情况中,FortiGate 只存在一个管理员账户 admin,所以当配置了管理员可信主机后,即使接口下开启了管理协议,可信主机外的 IP 也无法正常访问接口下的管理协议(除了 PING)。
但如果存在多个管理员账户,而其中有管理员配置了可信主机,但有管理员没有配置可信主机(如下图所示),且接口下开启了各种管理协议。那么对于像 SNMP 这种不需要 FortiGate 管理员认证的协议,则可以通过可信主机外的 IP 正常访问。

~ > ifconfig en7 ... inet 192.168.100.179 netmask 0xffffff00 broadcast 192.168.100.255 ... ~ > snmpwalk -v2c -c Fortinet123# 192.168.100.99 .1.3.6.1.4.1.12356.101.4.1.1.0 SNMPv2-SMI::enterprises.12356.101.4.1.1.0 = STRING: "v7.0.11,build0489,230314 (GA.M)" ~ > snmpwalk -v2c -c Fortinet123# 192.168.100.99 1.3.6.1.2.1.1.3.0 DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (11060652) 1 day, 6:43:26.52 ~ > snmpwalk -v2c -c Fortinet123# 192.168.100.99 .1.3.6.1.4.1.12356.100.1.1.1.0 SNMPv2-SMI::enterprises.12356.100.1.1.1.0 = STRING: "FG101FTK20007637"对于 HTTPS、SSH、Telnet 这类需要认证 FortiGate 管理员账号的协议来说:
- 当只有一个管理员并且配置了可信主机后,非可信主机访问 HTTPS、SSH、Telnet 服务会被直接拒绝(无法打开 HTTPS 登录页面和 SSH/Telnet 连接)。
- 当像 2 中那样配置了多个管理员,有的管理员配置了可信主机,有的管理员没有配置可信主机,那么使用非可信主机访问 HTTPS 的登录页面是可以正常打开登录页面的,SSH/Telnet 登录信息也是可以显示的,会在登陆时检查是否为对应管理员的可信主机。