초기 네트워크 구성
IP 구성
본사 내부
Client PC (Win_ClientA / 10.1.1.1)
DNS 서버 (Win_serverA / 10.1.1.250)
Web 서버 (Win_serverB / 10.1.1.251)
ACS 서버 (Win_serverC / 10.1.1.252)
본사 외부
Client PC (Win_ClientA / 2.2.2.1)
- DNS 서버(10.1.1.250)에 Web서버(10.1.1.251) 정보를 등록하였다.
- HQ Client PC에서 정상적으로 웹페이지에 접근이 가능하다.
- 외부망 Client(Win_ClientB)에서 본사로 Remote Access VPN 연결을 하려고 한다.
- HQ 내부에서 Internet 망과 통신되는 것을 확인 후 VPN 연결을 위해서 ISP 라우터에서 Static Routing 경로를 삭제한다.
<ISP> conf t no ip route 10.1.100.0 255.255.255.0 fa 0/0 1.1.100.1 |
Remote Access VPN 이란?
- 출장 혹은 재택근무 중인 직원이 원격지에서 본사 내부 자원에 접근하려는 경우 안전하게 접근하기 위한 목적으로 구성되는 VPN 서비스를 Remote Access VPN이라고 한다.
Remote Access Protocol 구성
1. IPSec VPN
2. SSL VPN
3. PPTP
4. L2TP
- 이중 IPSec VPN을 구성하려고 한다.
IPSec Remote Access VPN (Easy VPN)
- Cisco 라우터에서는 IPSec을 사용한 Remote Access VPN을 Easy VPN이라고 표현한다.
- IPSec을 사용하는 Remote Access VPN의 경우 사용자 장비에 반드시 VPN Client Software가 설치되어 있어야 한다.
Site-to-Site IPSec VPN과의 차이점
1. AH(암호화 X) 방식은 불가능하고 ESP(암호화 O) 방식만 사용이 가능하다.
2. Transport 모드는 사용이 불가능하고 Tunnel 모드만 사용이 가능하다.
(Gre로 구성 후 ESP앞에 IP 패킷을 붙이지 않기 위해서 IPSec을 transport 모드로 설정했었다.)
3. Diffie-Hellman 협상 과정에서 Group 1(768bit)은 지원이 안되고, Group 2(1024bit)부터 사용이 가능하다. (Group 번호가 높을수록 키의 길이가 길어져서 더욱 안전하다.)
IKE (Internet Key Exchange) 인증과정
- Point-to-Point IKE인증과정은 Phase 1, 2만 진행하지만 Remote일 경우 아래와 같이 3단계로 진행한다.
Phase 1
Authentication thr Peers
Negotiate a abidrectiinal SA
Aggressive mode
Phase 1.5
Xauth: 사용자 인증
Mode Config: 인증된 사용자(VPN Client)에게 VPN IP, DNS 주소(System Parameter) 할당
Phase 2
IPsec SAs/SPIs
Quick mode
HQ_VPN 라우터 Easy VPN 정책 설정
group 2
Easy VPN은 DH Group을 2 이상으로 등록해야 한다.
ip local pool EVPN_IP 10.1.100.129 10.1.100.254
인증이 통과된 사용자들에서 VPN NIC에 129~254 네트워크 대역에 해당하는 IP 할당
crypto isakmp client configuration group IT_SUPPORT
인증된 사용자에게 VPN 정보를 할당하기 위한 isakmp client 그룹 이름을 설정한다.
mode tunnel
Easy VPN은 tunnel 모드를 사용해야 한다.
<HQ_VPN> conf t crypto isakmp policy 1 authentication pre-share encryption aes group 2 exit ip local pool EVPN_IP 10.1.100.129 10.1.100.254 crypto isakmp client configuration group IT_SUPPORT key ictsec123 pool EVPN_IP dns 10.1.1.250 domain test.com exit crypto ipsec transform-set ICTSEC_VPN esp-aes esp-sha-hmac mode tunnel exit |
- 출장지에서 사용하게 될 공인 IP주소를 알 수 없기 때문에 보호 대상 지정 ACL와 정적인 Crypto map을 설정할 수 없다. (set peer x.x.x.x 명령어를 사용할 수 없다.)
- Crypto IPSec Profile의 경우 Tunnel 인터페이스에서만 사용이 가능하기 때문에 현재는 사용이 불가능하다. 때문에 Dynamic Crypto Map을 사용해야 한다.
HQ_VPN 라우터 Easy VPN Dynamic Crypto Map 구성
- 외부망 실제 IP 주소는 2.2.2.1이고 HQ_VPN 라우터를 통해서 인증을 받고 10.1.100.129 IP를 할당받는다.
- 할당받은 VPN IP주소를 통해서 내부망으로 들어가서 서버는 패킷을 수신할 수 있지만 서버에서 응답 패킷을 보낼 때 목적지 IP 주소가 10.1.100.129로 설정이 되어있어서 서버는 10.1.100.128/24 네트워크 대역을 알지 못하므로 응답 패킷을 외부망으로 보낼 수 없게 된다.
- Xauth(사용자 인증) 완료 후 VPN Client 장치에 할당된 Internal IP 주소로 응답 트래픽을 전송하기 위해 RRI를 설정 후 OSPF 재분배를 수행해야 한다.
<HQ_VPN> crypto dynamic-map D_MAP 1 set transform-set ICTSEC_VPN reverse-route ! router ospf 1 redistribute static subnets ! |
HQ_VPN 라우터 외부 장비 인증 설정
aaa authentication loing XAUTH local
인증 시 XAUTH에 따라서 인증 수행
aaa authorization network EVPN_Policy local
인증이 완료되면 승인 정책인 EVPN_Policy 정책 수행
crypto map HQ_VPN client authentication list XAUTH
IPSec으로 client를 인증할때 인증방식을 Xauth로 사용한다.
crypto map HQ_VPN isakp authorization list IT_Policy
Xauth방식으로 인증이 완료되면 VPN IP을 할당하기 위해 IT_SUPPORT를 실행한다.
crypto map HQ_VPN client configuration address respond
VPN IP 할당을 받기 위해서 respond를 설정한다 설정하지 않으면 IP가 할당되지 않는다.
crypto map HQ_VPN 1 ipsec-isakmp dynamic D_MAP
HQ_VPN crypto map에 dynamic D_MAP(ICTSEC_VPN, RRI)적용
cypto map HQ_VPN
f 0/1 포트에 HQ_VPN cypto map 적용
<HQ_VPN> conf t username user1 password cisco123 aaa new-model aaa authentication login XAUTH local aaa authorization network EVPN_Policy local
crypto map HQ_VPN client authentication list XAUTH crypto map HQ_VPN isakmp authorization list IT_Policy crypto map HQ_VPN client configuration address respond crypto map HQ_VPN 1 ipsec-isakmp dynamic D_MAP
int fa 0/1 crypto map HQ_VPN exit |
외부 클라이언트 연결 설정
1. NIC 카드 정보 확인
- 로컬 영역 연결 3은 실제 NIC이다.
- 로컬 영역 연결 5는 VPN Sofeware를 설치하면 생성되는 VPN NIC이다.
2. IP 주소 변경
- 실제 NIC의 DNS 주소를 KT, Google로 설정한다.
- 설정 후 외부망으로 접근이 되는지 확인한다.
3. VPN Client Software new Connection 설정
- Connection Entry는 crpto map이름인 HQ_VPN를 입력한다.
- Host는 VPN IP 주소를 입력한다.
- Name은 설정한 그룹 이름인 IT_SUPPORT를 입력한다.
- Password는 peer 인증키 ictsec123을 입력한다.
4. VPN Client Software Connection 연결
- 설정이 완료되면 Connect 버튼을 클릭한다.
- aaa에서 설정한 Username Password를 입력한다.
5. Wireshark 패킷 확인
- HQ_VPN ↔ ISP 사이의 패킷을 확인한다.
- Agreesive → Information → Transaction (Config Mode) → Quick Mode순으로 연결이 설정된다.
- VPN NIC정보가 자동으로 등록된것을 확인할 수 있다. (IP오류로 10단위로 수정함)
외부 Client 확인
- nslookup을 통해 본사 내부의 웹서버의 IP주소를 알아올 수 있다.
- 웹서버로도 정상적으로 접근이 가능하다.
- 전송되는 패킷은 모두 ESP로 암호화하여 전송되므로 중간 사용자가 어떤 패킷이 이동하는지 확인할 수 없다.
show crypto map
- Peer 정보가 2.2.2.1(외부 Client), ACL에 외부 VPN IP 정보가 동적으로 설정되었다.
VPN 연결 후 외부 네트워크 통신
- Client PC에서 VPN연결 후 내부 사설은 정상적으로 접속Client PC에서 VPN 연결 후 내부 사설 네트워크와 암호화 통신이 가능하지만 Internet 망과 통신이 불가능하다.
- VPN 연결 후 VPN Client가 전송하는 모든 트래픽은 IPSec VPN으로 처리하기 때문이다.
- VPN Client가 본사 내부 네트워크가 아닌 인터넷 망으로 전송한 트래픽도 ESP로 암호화되어 본사 VPN 장치에 전송되고, 이를 수신한 본사 VPN 장치가 해당 패킷을 복호화 후 인터넷 망으로 중계하지만 출발지 IP 주소가 VPN Adapter 주소(사설 IP)이기 때문에 응답을 수신하는 것이 불가능하다.
- 위와 같은 문제를 해결하기 위해서는 VPN Client PC에서 인터넷 망으로 전송하는 트래픽과 VPN 트래픽을 분리해서 처리할 수 있도록 Split-Tunnel을 구성해야 한다.
- Split-Tunnel을 구성하게 되면 본사 내부 네트워크로 향하는 트래픽만 VPN Adapter로 전송하고, 그 외 나머지 모든 트래픽을 실제 물리적인 NIC로 처리하는 것이 가능하다.
HQ_VPN 라우터 Split Tunnel 설정
<HQ_VPN> conf t ip access-list extended EVPN_ST permit ip 10.1.0.0 0.0.255.255 any ! crypto isakmp client configuration group IT_SUPPORT acl EVPN_ST exit |
- Split-Tunnel 설정 후 VPN Client에서 재연결을 수행해야만 변경된 정책을 받아오는 것이 가능하다.
show ip route
- 0.0.0.0 대역과 10.10.0.0 대역의 목적지가 다르게 설정되었다.
ping 테스트
- 정상적으로 외부망으로 ICMP 패킷이 나가는것을 확인할 수 있다.
HQ_VPN 라우터 PAT 설정
<HQ_VPN> conf t access-list 1 permit 10.1.0.0 0.0.255.255 ip nat inside source list 1 int fa 0/1 overload int fa 0/0 ip nat inside ! int fa 0/1 ip nat outside !
<ISP> conf t access-list 1 permit host 1.1.100.1 |
내부 Client Ping 테스트
- 내부망에서 외부망이 PAT통신을 통해서 통신이 되지만 이젠 외부망에서 내부망으로 통신을 할 경우 ESP패킷은 정상적으로 오가지만 내부망으로는 다시 Ping 통신이되지 않는다.
- HQ_VPN 장치에서 PAT 처리를 수행하면 VPN Client에게 전송할 응답 패킷의 출발지 IP 주소를 1.1.100.1로 변경한다.
- 이를 수신한 VPN Clien는 자신이 요청한 목적지 장치의 IP주소가 아니기 때문에 해당 응답 패킷을 처리하지 않는다.
- IPSec과 NAT를 동시에 사용하는 경우에는 IPSec과 NAT에 의해서 IP 주소가 변경되지 않도록 주의해야 한다.
HQ_VPN 라우터 PAT 수정
access-list 100 deny ip 10.10.0.0 0.0.255.255 10.10.100.128 0.0.0.127
VPN Client로 가는 IP대역은 차단하고 나머지만 허용한다는 명령어이다.
conf t no ip nat inside source list 1 int fa 0/1 overload yes no access-list 1 access-list 100 deny ip 10.10.0.0 0.0.255.255 10.10.100.128 0.0.0.127 access-list 100 permit ip 10.10.0.0 0.0.255.255 any ip nat inside source list 100 int fa 0/1 overload |
- 외부망에서 내부망으로 정상적으로 통신이 되는것을 확인할 수 있다.
'Network > Router' 카테고리의 다른 글
[Router] BGP(Border Gateway Protocol) 개념 및 설정 (1 / 2) (1) | 2019.12.24 |
---|---|
[Router] Floating Static Routing + IP SLA (0) | 2019.12.24 |
[Router] DMVPN (Dynamic Multipoint VPN) 개념, 설정 (0) | 2019.12.10 |
[Router] GRE over IPSEC VPN (1) | 2019.12.09 |
[Router] GRE Tunnel (0) | 2019.12.05 |
공부&일상 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요! 질문은 언제나 환영입니다😊