개요
Fortigate 방화벽 장비를 활용하여 본사와 지사 간 IPSec VPN을 구축하는 방법에 대해 기록해보려고 한다.
실습 구성도
- Backbone 스위치와 Fortigate 간의 연결은 라우티드 모드로 설정
- 본사 Backbone 스위치와 Access Switch 간 VRRP 설정
- 본사 백본 스위치 간 인터링크는 LACP로 설정
사전 준비
IP 주소 계획
- 구성을 시작하기 전에 명확한 IP 주소 계획이 필요하다.
방화벽
지점 | 장비 | 포트 | IP 주소 |
---|---|---|---|
본사 | HQ(방화벽) | port1 |
<공인 IP> |
본사 | HQ(방화벽) | port2 |
10.0.0.1/30 |
본사 | HQ(방화벽) | port3 |
10.0.0.5/30 |
지사 | Branch(방화벽) | port1 |
<공인 IP> |
지사 | Branch(방화벽) | port2 |
10.0.1.1/27 |
백본
지점 | 장비 | 포트 | IP 주소 |
---|---|---|---|
본사 | HQ_BB1 | Gi0/0 |
10.0.0.2/30 |
본사 | HQ_BB1 | VLAN 2 |
10.0.0.9/30 |
본사 | HQ_BB1 | VLAN55 VIP |
10.0.0.33/27 |
본사 | HQ_BB1 | VLAN66 VIP |
10.0.0.65/27 |
본사 | HQ_BB1 | VLAN55 |
10.0.0.34/27 |
본사 | HQ_BB1 | VLAN66 |
10.0.0.66/27 |
본사 | HQ_BB2 | Gi0/0 |
10.0.0.6/30 |
본사 | HQ_BB2 | VLAN 2 |
10.0.0.10/30 |
본사 | HQ_BB2 | VLAN55 VIP |
10.0.0.33/27 |
본사 | HQ_BB2 | VLAN66 VIP |
10.0.0.65/27 |
본사 | HQ_BB2 | VLAN55 |
10.0.0.35/27 |
본사 | HQ_BB2 | VLAN66 |
10.0.0.67/27 |
VPN 설정 정보
- Pre-shared Key:
YourStrongPSK
(강력한 비밀번호로 변경 필요) - 암호화 알고리즘: AES256/SHA256
- Deffie-Hellman 그룹 (DH 그룹): 14
- IKE 버전: IKEv2
본사 Fortigate 설정
인터페이스 설정
1. HQ_BB1와 연결된 인터페이스 (port2)
HQ_BB1
와 포티게이트 간의 연결을 라우티드 모드로 설정하기 위해 port2에 IP 주소를 할당
config system interface
edit "port2"
set ip 10.0.0.1 255.255.255.252
set allowaccess ping https ssh
set alias "To_Backbone_SW1"
next
end
2. HQ_BB2와 연결된 인터페이스 (port3)
HQ_BB2
와 포티게이트 간의 연결을 라우티드 모드로 설정하기 위해 port3에 IP 주소를 할당
config system interface
edit "port3"
set ip 10.0.0.5 255.255.255.252
set allowaccess ping https ssh
set alias "To_Backbone_SW2"
next
end
3. WAN 인터페이스 (port1)
공인망과 연결되는 인터페이스 설정
config system interface
edit "port1"
set mode static
set ip 192.168.219.99 255.255.255.0
set allowaccess ping https ssh
set alias "WAN"
next
end
config router static
edit 1
set dst 0.0.0.0/0
set gateway 192.168.219.1
set device port1
주소 객체 설정
VPN 터널의 소스와 대상 네트워크를 정의하기 위해 주소 객체 설정
config firewall address
edit "HQ_Network"
set subnet 10.0.0.0 255.255.255.0
next
edit "Branch_Network"
set subnet 10.0.1.0 255.255.255.0
next
end
HQ_Network
: 본사 내부 네트워크 주소Branch_Network
: 지사 내부 네트워크 주소
IPSec VPN 설정
1. Phase 1 설정
VPN 터널의 Phase 1 설정 구성
config vpn ipsec phase1-interface
edit "HQ_to_Branch_P1"
set interface "port1"
set ike-version 2
set peertype any
set net-device enable
set proposal aes256-sha256
set dhgrp 14
set remote-gw 192.168.219.100
set psksecret YourStrongPSK
next
end
set interface
: VPN 터널이 사용할 물리적 인터페이스를 지정set ike-version
: IKE 버전을 설정 (여기서는 IKEv2)set proposal
: 암호화 및 인증 알고리즘을 지정set remote-gw
: VPN 터널의 원격 게이트웨이 IP를 설정set psksecret
: Pre-shared Key를 설정
2. Phase 2 설정
VPN 터널의 Phase 2 설정 구성
config vpn ipsec phase2-interface
edit "HQ_to_Branch_P2"
set phase1name "HQ_to_Branch_P1"
set proposal aes256-sha256
set pfs disable
set src-subnet 10.0.0.0 255.255.255.0
set dst-subnet 10.0.1.0 255.255.255.0
next
end
set phase1name
: 해당 Phase 2가 참조할 Phase 1 이름 지정set src-subnet
: 본사 쪽의 네트워크 서브넷 설정set dst-subnet
: 지사 쪽의 네트워크 서브넷 설정
라우팅 설정
지사 네트워크로의 트래픽이 VPN 터널을 통해 전달되도록 라우팅 설정
config router static
edit 1
set dst 10.0.1.0 255.255.255.0
set device "HQ_to_Branch_P1"
next
end
set dst
: 목적지 네트워크 설정set device
: 해당 트래픽이 전달될 인터페이스(VPN 터널)를 지정
방화벽 정책 설정
트래픽이 방화벽을 통과할 수 있도록 정책 설정
1. 본사 내부 -> 지사 네트워크
config firewall policy
edit 1
set name "HQ_to_Branch"
set srcintf "port2"
set dstintf "HQ_to_Branch_P1"
set srcaddr "HQ_Network"
set dstaddr "Branch_Network"
set action accept
set schedule "always"
set service "ALL"
next
end
config firewall policy
edit 2
set name "HQ_to_Branch"
set srcintf "port3"
set dstintf "HQ_to_Branch_P1"
set srcaddr "HQ_Network"
set dstaddr "Branch_Network"
set action accept
set schedule "always"
set service "ALL"
next
end
set srcintf
: 트래픽의 출발 인터페이스를 지정set dstintf
: 트래픽의 도착 인터페이스를 지정set action accept
: 트래픽을 허용
2. 지사 네트워크 -> 본사 내부
config firewall policy
edit 3
set name "Branch_to_HQ"
set srcintf "HQ_to_Branch_P1"
set dstintf "port2"
set srcaddr "Branch_Network"
set dstaddr "HQ_Network"
set action accept
set schedule "always"
set service "ALL"
next
end
config firewall policy
edit 4
set name "Branch_to_HQ"
set srcintf "HQ_to_Branch_P1"
set dstintf "port3"
set srcaddr "Branch_Network"
set dstaddr "HQ_Network"
set action accept
set schedule "always"
set service "ALL"
next
end
지사 Fortigate 설정
본사 Fortigate 설정과 거의 동일하지만, IP 주소와 인터페이스 명칭에 주의해야 한다.
인터페이스 설정
1. Branch-SW와 연결되는 인터페이스 설정 (port2)
config system interface
edit "port2"
set ip 10.0.1.01 255.255.255.0
set allowaccess ping https ssh
set alias "internal"
next
end
2. WAN 인터페이스 (port1)
공인망과 연결되는 인터페이스 설정
config system interface
edit "port1"
set ip 192.168.219.100 255.255.255.0
set allowaccess ping https ssh
set alias "WAN"
next
end
config router static
edit 1
set dst 0.0.0.0/0
set gateway 192.168.219.1
set device port1
주소 객체 설정
config firewall address
edit "Branch_Network"
set subnet 10.0.1.0 255.255.255.0
next
edit "HQ_Network"
set subnet 10.0.0.0 255.255.255.0
next
end
IPSec VPN 설정
1. Phase 1 설정
config vpn ipsec phase1-interface
edit "Branch_to_HQ_P1"
set interface "port1"
set ike-version 2
set peertype any
set net-device enable
set proposal aes256-sha256
set dhgrp 14
set remote-gw 192.168.219.99
set psksecret YourStrongPSK
next
end
2. Phase 2 설정
config vpn ipsec phases2-interface
edit "Branch_to_HQ_P2"
set phase1name "Branch_to_HQ_P1"
set proposal aes256-sha256
set pfs disable
set src-subnet 10.0.1.0 255.255.255.0
set dst-subnet 10.0.0.0 255.255.255.0
next
end
라우팅 설정
config router static
edit 1
set dst 10.0.0.0 255.255.255.0
set device "Branch_to_HQ_P1"
next
end
방화벽 정책 설정
1. 지사 내부 -> 본사 네트워크
config firewall policy
edit 1
set name "Branch_to_HQ"
set srcintf "port2"
set dstintf "Branch_to_HQ_P1"
set srcaddr "Branch_Network"
set dstaddr "HQ_Network"
set action accept
set schedule "always"
set service "ALL"
next
end
2. 본사 네트워크 -> 지사 내부
config firewall policy
edit 2
set name "HQ_to_Branch"
set srcintf "Branch_to_HQ_P1"
set dstintf "port2"
set srcaddr "HQ_Network"
set dstaddr "Branch_Network"
set action accept
set schedule "always"
set service "ALL"
next
end
백본 스위치 설정
HQ_BB1
1. STP Root Bridge 설정
# 빠른 연결을 위해 RSTP 모드로 변경
spanningtree mode rapid-pvst
# Bridge 선정을 위한 우선순위 낮추기
spanningtree vlan 10,20,30,40 priority 4096
2. VLAN 생성
VLAN 55
name Business
VLAN 66
name Sales
3. VLAN 인터페이스 생성
int vlan 55
no shut
ip add 10.0.0.34 255.255.255.224
vrrp 55 ip 10.0.0.33
vrrp 55 timers learn
vrrp 55 preempt delay minimum 10
vrrp 55 priority 200
int vlan 66
no shut
ip add 10.0.0.66 255.255.255.224
vrrp 66 ip 10.0.0.65
vrrp 66 timers learn
vrrp 66 preempt delay minimum 10
vrrp 66 priority 200
4. HQ_ASW 스위치 간 인터페이스 설정
int g1/0 # HQ_ASW-1
no shut
switchport mode trunk
switchport trunk allwed vlan 55,66
int g0/3 # HQ_ASW-2
no shut
switchport mode trunk
switchport trunk allwed vlan 55,66
5. 인터링크(Interlink) 설정: HQ_BB1 --- HQ_BB2
HQ_BB2 연결 구간은 LACP + 스태틱 라우팅으로 묶어주자.
먼저 HQ_BB2 간에 연결할 Connected IP를 VLAN으로 생성해주자.
vlan 2
name BB_LACP
int vlan 2
no shut
ip add 10.0.0.9 255.255.255.252
VLAN 2번의 경우 사용자 IP가 아닌 Connected IP로 사용되기에 VRRP 설정을 하지 않는다.
6. PortChannel 생성
int port-channel 1
switchport mode trunk
switchport trunk allowed vlan 1,2,55,66
int range g0/1-2 # HQ_BB1 - HQ_BB2 연결 포트
channel-group 1 mode active
channel-protocol lacp
exit
7. 디폴트 라우트 설정
ip route 0.0.0.0 0.0.0.0 <방화벽의 내부 인터페이스 IP>
HQ_BB2
1. STP Root Bridge 설정
# 빠른 연결을 위해 RSTP 모드로 변경
spanningtree mode rapid-pvst
# Bridge 선정을 위한 우선순위 낮추기
spanningtree vlan 10,20,30,40 priority 8192
2. VLAN 생성
VLAN 55
name Business
VLAN 66
name Sales
3. VLAN 인터페이스 생성
int vlan 55
no shut
ip add 10.0.0.35 255.255.255.224
vrrp 55 ip 10.0.0.33
vrrp 55 timers learn
int vlan 66
no shut
ip add 10.0.0.67 255.255.255.224
vrrp 66 ip 10.0.0.65
vrrp 66 timers learn
4. HQ_ASW 스위치 간 인터페이스 설정
int g1/0 # HQ_ASW-1
no shut
switchport mode trunk
switchport trunk allwed vlan 55,66
int g0/3 # HQ_ASW-2
no shut
switchport mode trunk
switchport trunk allwed vlan 55,66
5. 인터링크(Interlink) 설정: HQ_BB1 --- HQ_BB2
HQ_BB1 연결 구간은 LACP + 스태틱 라우팅으로 묶어주자.
먼저 HQ_BB1 간에 연결할 Connected IP를 VLAN으로 생성해주자.
vlan 2
name BB_LACP
int vlan 2
no shut
ip add 10.0.0.10 255.255.255.252
VLAN 2번의 경우 사용자 IP가 아닌 Connected IP로 사용되기에 VRRP 설정을 하지 않는다.
6. PortChannel 생성
int port-channel 1
switchport mode trunk
switchport trunk allowed vlan 1,2,55,66
int range g0/1-2 # HQ_BB1 - HQ_BB2 연결 포트
channel-group 1 mode active
channel-protocol lacp
exit
7. 디폴트 라우트 설정
ip route 0.0.0.0 0.0.0.0 <방화벽의 내부 인터페이스 IP>
최종 확인 및 테스트
1. VPN 터널 상태 확인
본사 Fortigate에서
get vpn ipsec tunnel summary
터널이 정상 설정되었는지 확인
지사 Fortigate에서
get vpn ipsec tunnel summary
2. 통신 테스트
본사 측 PC에서 지사 측 PC로 통신 테스트