■FortigateのVirtual IPのSNAT動作を確認するついでにCisco892JのACLを編集する。
FortigateのバーチャルIPを使用すると、SNAT用にIPプールを使用する必要が無い。
FortigateのInternal->DMZのDNATを試してみる。
http://labunix.hateblo.jp/entry/20150624/1435073124
■バージョン情報
Cisco 892 (MPC8300) processor (revision 1.0) with 498688K/25600K bytes of memory.
Version: FortiGate-60C v5.2.3,build0670,150318 (GA)
■FortigateのCiscoへのtelnetアクセス方法は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"
set nat enable
next
end
■CiscoのACLの確認
interface GigabitEthernet0
ip address 192.168.102.254 255.255.255.0
ip access-group 199 in
ip access-group 199 out
duplex auto
speed auto
Extended IP access list 199
10 permit tcp any any eq telnet log (53 matches) (tag = telnet_log)
20 permit tcp any eq telnet any log (tag = telnet_log)
Extended IP access list 199
10 permit tcp any any eq telnet log (90 matches) (tag = telnet_log)
20 permit tcp any eq telnet any log (tag = telnet_log)
■コンソールには以下のようなログが出る。
.Jul 4 16:54:57.019: %SEC-6-IPACCESSLOGP: list 199 permitted tcp \
192.168.102.250(40509) -> 192.168.102.254(23), 1 packet [telnet_log]
■ソースIPはFortigateのDMZ IPでは無く、バーチャルIPの「mappedip」。
「NAT有効」を「ON」にして、「送信インタフェースのアドレスを使用」を選択している。
config firewall vip
edit "VDMZ_DNAT"
set extip 172.31.31.250
set extintf "internal"
set mappedip "192.168.102.254"
next
end
config system interface
edit "dmz"
set vdom "root"
set ip 192.168.102.252 255.255.255.0
set allowaccess ping
set type physical
set snmp-index 1
next
end
■以下のようにIPプールでVDMZ_SNATを作成しても、
送信元インターフェイスIPではなく、VIPのmappedipを使う。
VIPを使う場合、NAT有効にするだけでIPプールの設定は不要です。
.Jul 4 17:13:56.155: %SEC-6-IPACCESSLOGP: list 199 permitted \
tcp 192.168.102.250(40514) -> 192.168.102.254(23), 1 packet [telnet_log]
config firewall ippool
edit "VDMZ_SNAT" <---
set startip 192.168.102.250
set endip 192.168.102.250
next
end
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"
set nat enable
set ippool enable
set poolname "VDMZ_SNAT" <---
next
end
■Cisco側のACLでは以下の最終行だけ気にすれば良い。
[VIPのみ]
172.31.31.254[Client] -> 172.31.31.252[internal]
-> 172.31.31.250[VIP extip] -> 192.168.102.252[DMZ]
-> 192.168.102.250[SNAT(mappedip)] -> 192.168.102.254[VIP/Cisco]
[VIP+IPプール]
172.31.31.254[Client] -> 172.31.31.252[internal]
-> 172.31.31.250[VIP extip] -> 192.168.102.252[DMZ]
-> 192.168.102.250[SNAT(ippool)] -> 192.168.102.254[VIP/Cisco]
■Cisco ACLの編集
入力方向だけなら「10」だけで良い。
コンフィグモードで「show」コマンドを使うには「do」を使う。
挿入なら例えば「10」と「20」の間の「15」などの番号を使う。
(config)#do show access-lists 199
Extended IP access list 199
10 permit tcp any any eq telnet log (1151 matches) (tag = telnet_log)
20 permit tcp any eq telnet any log (tag = telnet_log)
(config)#ip access-list extended 199
(config-ext-nacl)#no 20
Extended IP access list 199
10 permit tcp any any eq telnet log (1192 matches) (tag = telnet_log)
(config-ext-nacl)#no 10
(config-ext-nacl)#do show ip access-lists 199
(config-ext-nacl)#10 permit tcp any any eq telnet
Extended IP access list 199
10 permit tcp any any eq telnet
(config-ext-nacl)#end
Extended IP access list 199
10 permit tcp any any eq telnet (33 matches)