labunix's blog

labunixのラボUnix

FortigateのDNATでCiscoのSYSLOG転送、NTP参照とSNMPエージェント、トラップ通信ルールを作成してみる。

■FortigateのDNATでCiscoのSYSLOG転送、NTP参照と
 SNMPエージェント、トラップ通信ルールを作成してみる。

 ※SNMPはエージェント、マネージャ、トラップの方向によって目指すIPが異なる。

■Cisco892JのWAN側GE0とFrtigateのDMZを接続
 FortigateのDMZ IPにSyslog転送

 これはDMZ->Internal方向のSYSLOG_DNATルール。

#configure terminal 
 logging source-interface GigabitEthernet 0
 logging 192.168.102.250
 end

■DNZで受けたSyslogはInternal側のDebianサーバにDNAT。

# show | grep -f SYSLOG_DNAT
config firewall vip
    edit "SYSLOG_DNAT" <---
        set extip 192.168.102.250
        set extintf "dmz"
        set mappedip "172.31.31.254"
    next
end
config firewall policy
    edit 4
        set srcintf "dmz"
        set dstintf "internal"
        set srcaddr "Cisco892J"
        set dstaddr "SYSLOG_DNAT" <---
        set action accept
        set schedule "always"
        set service "SYSLOG" "NTP" "SNMP"
        set utm-status enable
        set av-profile "default"
        set spamfilter-profile "default"
        set ips-sensor "default"
        set profile-protocol-options "default"
        set nat enable
    next
end

■Debian側のrsyslog設定

$ grep -A 1 172.31.31.250 /etc/rsyslog.conf
:fromhost-ip, isequal, "172.31.31.250" /var/log/Cisco892J.log
& ~

■出力されたSYSLOG

$ sudo tail -f /var/log/Cisco892J.log | sed s/"%SYS.*: "/"&\n\t"/g
Jul  7 23:22:15 172.31.31.250 826: .Jul  7 14:22:14.998: %SYS-6-LOGGINGHOST_STARTSTOP: 
	Logging to host 192.168.102.250 port 514 started - CLI initiated
Jul  7 23:36:36 172.31.31.250 830: .Jul  7 14:36:36.052: %SYS-5-CONFIG_I: 
	Configured from console by labunix on vty1 (192.168.102.250)

■DebianのNTPサーバの参照許可設定
 私の環境では各IP単位で許可しているので、
 NAT変換後のIPを許可ルールに追加。

 これもDMZ->Internal方向のSYSLOG_DNATルール。

$ grep 172.31.31.250 /etc/ntp.conf 
restrict -4 172.31.31.250 kod notrap

■CiscoのNTP参照設定

#configure terminal
 ntp peer 192.168.102.250
 end

#show ntp information 
Ntp Software Name   	:  Cisco-ntpv4 
Ntp Software Version	:  Cisco-ntpv4-1.0 
Ntp Software Vendor 	:  CISCO 
Ntp System Type     	:  Cisco IOS / MPC8300 

#show ntp associations 

  address         ref clock       st   when   poll reach  delay  offset   disp
*~192.168.102.250 133.243.238.164  2     18     64     3  1.458   0.084 63.380
 * sys.peer, # selected, + candidate, - outlyer, x falseticker, ~ configured

#show ntp status 
Clock is synchronized, stratum 3, reference is 192.168.102.250
nominal freq is 250.0000 Hz, actual freq is 250.0000 Hz, precision is 2**19
ntp uptime is 6800 (1/100 of seconds), resolution is 4000
reference time is D94674C3.313907D0 (15:54:43.192 UTC Tue Jul 7 2015)
clock offset is 0.0843 msec, root delay is 9.12 msec
root dispersion is 3948.97 msec, peer dispersion is 187.57 msec
loopfilter state is 'CTRL' (Normal Controlled Loop), drift is 0.000000000 s/s
system poll interval is 64, last update was 63 sec ago.

#show ntp packets 
Ntp In packets	   		:  9 
Ntp Out packets           	:  9 
Ntp bad version packets   	:  0 
Ntp protocol error packets	:  0 

■Debian側のSNMPマネージャの設定

 これはInternal->DMZ方向のVDMZ_DNATルール

$ sudo grep community.*public /etc/snmp/snmpd.conf  | grep -v ^#
rocommunity public  localhost
rocommunity public  default    -V systemonly

■CiscoのSNMPエージェント設定

#configure terminal 
 snmp-server community public ro
 end

■Debianからバージョンを取得してみる。

$ snmpwalk -c public -v 1 172.31.31.250 sysdescr 2>/dev/null | sed -e 's/,/\n\t/g'
SNMPv2-MIB::sysDescr.0 = STRING: Cisco IOS Software
	 C890 Software (C890-UNIVERSALK9-M)
	 Version 15.3(3)M1
	 RELEASE SOFTWARE (fc1)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2013 by Cisco Systems
	 Inc.
Compiled Tue 22-Oct-13 06:26 by prod_rel_team

■Fortigateのコンフィグで見るVDMZ_DNAT。

# show | grep -f VDMZ_DNAT
config firewall vip
    edit "VDMZ_DNAT" <---
        set extip 172.31.31.250
        set extintf "internal"
        set mappedip "192.168.102.254"
    next
end
config firewall policy
    edit 3
        set srcintf "internal"
        set dstintf "dmz"
        set srcaddr "all"
        set dstaddr "VDMZ_DNAT" <---
        set action accept
        set schedule "always"
        set service "ALL_TCP" "SNMP"
        set utm-status enable
        set logtraffic all
        set av-profile "default"
        set ips-sensor "default"
        set profile-protocol-options "default"
        set nat enable
    next
end

■Debian側のSNMPトラップ受信設定
 普通のpublic/v1で受信すると、システムユーザ宛にメール通知される。

 これはDMZ->Internal方向のSYSLOG_DNATルール。

$ sudo grep -v "^\$\|^#" /etc/snmp/snmptrapd.conf 
authCommunity log,execute,net public
traphandle default /usr/bin/mail -s "SNMP Trap Mail" root@`hostname -f`

■CiscoのSNMP通知の設定

#configure terminal
 snmp-server trap-source GigabitEthernet0
 snmp-server enable traps config
 snmp-server host 192.168.102.254 version 1 public
 end

■SNMPTRAPDでメール通知されたログを確認

$ tail -12 /var/spool/mail/labunix 

172.31.31.250
UDP: [172.31.31.250]:65133->[172.31.31.254]
iso.3.6.1.2.1.1.3.0 37:0:39:21.77
iso.3.6.1.6.3.1.1.4.1.0 iso.3.6.1.4.1.9.9.43.2.0.1
iso.3.6.1.4.1.9.9.43.1.1.6.1.3.208 1
iso.3.6.1.4.1.9.9.43.1.1.6.1.4.208 2
iso.3.6.1.4.1.9.9.43.1.1.6.1.5.208 3
iso.3.6.1.6.3.18.1.3.0 192.168.102.254
iso.3.6.1.6.3.18.1.4.0 "public"
iso.3.6.1.6.3.1.1.4.3.0 iso.3.6.1.4.1.9.9.43.2