bxm's IT Story
Easy_VPN (Final Version-Split tunnel) 본문
공통]
en
conf t
no ip domain lookup
line c 0
logg sy
exec-timeout 0
exit
line vty 0 4
pass cisco
exit
hostname ##
end
wr
## IP 넣기 ##
HQ]
conf t
int f0/0
no shut
ip add 10.10.10.254 255.255.255.0
exit
int f0/1
no shut
ip add 10.1.10.1 255.255.255.0
end
wr
HQ_VPN]
conf t
int f0/0
no shut
ip add 10.1.10.2 255.255.255.0
exit
int f0/1
no shut
ip add 1.1.100.1 255.255.255.252
end
wr
ISP]
conf t
int f0/0
no shut
ip add 1.1.100.2 255.255.255.252
ip nat inside
exit
int f0/1
no shut
ip add 2.2.2.254 255.255.255.0
ip nat inside
exit
int f1/0
no shut
mac-address 06ff.0010.06e8
ip add dhcp
ip nat outside
end
wr
## OSPF ##
HQ]
conf t
router ospf 1
router-id 1.1.1.1
network 10.10.10.254 0.0.0.0 area 0
network 10.1.10.1 0.0.0.0 area 0
end
show ip ospf nei
wr
HQ_VPN]
conf t
router ospf 1
router-id 2.2.2.2
network 10.1.10.2 0.0.0.0 area 0
default-information originate ## default가 있을 경우에는 always를 안해도 된다.
exit
ip route 0.0.0.0 0.0.0.0 f0/1 1.1.100.2
end
show ip ospf nei
wr
ISP]
conf t
access-list 10 permit 10.10.0.0 0.0.255.255
access-list 10 permit 2.2.2.0 0.0.0.255
ip nat inside source list 10 int f1/0 overload
## 도달성 체크...? ## ISP는 10.1.10.0/24 대역은 모르고, HQ의 아래쪽은 안다. 그래서 아래에서 Ping이 계속 안간것!
ip route 10.10.0.0 255.255.0.0 f0/0 1.1.100.1
ip route 0.0.0.0 0.0.0.0 f1/0 10.0.0.1
end
wr
HQ_VPN]
conf t
router ospf 1
redistribute static subnets
end
wr
HQ]
ping 1.1.100.2 (X)
ping 1.1.100.2 source f0/1 (O - 이렇게 Soruce Ping을 날려야한다.)
## HQ->HQ_VPN Default // HQ_VPN->ISP로 Default를 줬는데 왜 ISP->HQ로는 Ping이 가고,
HQ->ISP로는 Ping이 가지 않는 것일까?
A) ISP에서는 Routing Table에 10.10.10.0 대역이 있어서 일단 간 다음에, Default를 타고 HQ->HQ_VPN->ISP로
다시 돌아올 수 있는데, HQ에는 자체 Routing Table에 ISP의 1.1.100.0 대역이 없기 때문에 아예 가질 못함.
## Remote Access VPN ##
- 원격지에서 출장, 재택 근무 중인 직원이 회사 내부자원에 안전하게 접근하기 위한 용도로 많이 사용되는 VPN 방식.
- Remote Access VPN은 사용되는 Protocol에 따라 다음과 같이 구분이 가능하다.
1) IPSec VPN
2) SSL
3) PPTP
4) L2PT
## Easy VPN ##
- Cisco는 IPSec을 사용한 Remote Access VPN을 Easy VPN이라고 표현한다.
- Eay VPN은 다음과 같은 제한이 존재한다.
1) ESP만 지원되고, AH는 지원되지 않는다.
2) Tunnel만 지원되고, Transport 모드는 지원되지 않는다.
3) Diffie-Hellman에서 Group 2부터 지원된다. (Group 1 사용불가)
HQ_VPN]
conf t
crypto isakmp policy 1
authen pre-share
encryp aes
hash sha
group 2
exit
ip local pool EVPN_ADD 10.1.10.100 10.1.10.150
crypto isakmp client configuration group IT_SUPPORT
key cisco123
pool EVPN_ADD
dns 10.10.10.250 ## 이거 DNS Server 10.10.10.251인데 잘못쓴거임 ㅋㅋ 이따 수정하니까 걍 놔둠.
domain nbcycling.com
exit
--> IKE Phase 1.5에서 Xauth(사용자 인증)을 통과한 경우 위에서 설정한 내용들이 Client PC에게 할당된다.
(Mode Config)
crypto ipsec transform-set IPSEC_SA esp-aes esp-sha-hmac
mode tunnel
exit
--> Easy VPN의 경우 반드시 ESP와 Tunnel-mode를 사용해야 한다. 또한 crypto profile의 경우 Tunnel만
보호하기 때문에 사용이 불가하므로, Dynamic crypto_map을 사용해야 한다.
crypto dynamic-map DMAP 1
set transform-set IPSEC_SA
reverse-route
exit
## RRI를 재분배 ##
router ospf 1
redistribute static subnets
exit
--> RRI로 등록된 VPN Client의 경로 정보를 내부 OSPF로 재분배하여 VPN Client까지 도달성을 형성한다.
username user1 password cisco123
aaa new-model
aaa authentication login EVPN_XAUTH local
aaa authorization network EVPN_PRI local
crypto map VPN_T client authentication list EVPN_XAUTH
crypto map VPN_T isakmp authorization list EVPN_PRI
crypto map VPN_T client configuration address respond
crypto map VPN_T 1 ipsec-isakmp dynamic DMAP
## Dynamic과 일반 Crypto map을 묶는 역할을 수행함.
## 이제 적용.
int f0/1
crypto map VPN_T
end
wr
## 아까 통신이 되나 안되나만 체크하려고 임시로 허용해 둔 도달성 체크 날리기. 원래 있으면 안되는 것임!! ㅎㅎ
ISP]
conf t
no ip route 10.10.0.0 255.255.0.0 f0/0 1.1.100.1
end
wr
CentOS] - VMnet 4번
vi /etc/sysconfig/network-scripts/ifcfg-ens32
systemctl restart network
ping 10.10.10.254
ifconfig
Host PC] 에서 아래의 경로를 통해 Download받고, 외근자 Win701에 옮기기.
[shared] - [App]
Win701] - VMNet 2번
## 접속해보기
## Web Site 접속해보기
http://10.10.10.250
CentOS]
find / -name nbcycling.com.db
vi /etc/named.conf
rpm -qa | bind
## DNS Server 구축 ##
## Win2016으로 만들기.
Win2016] - VMNet 5번
Win701]
## DNS 수정
## VPN list 삭제 후 다시 만들기 (DNS Server를 10.10.10.250으로 알음)
HQ_VPN]
conf t
crypto isakmp client configuration group IT_SUPPORT
no dns 10.10.10.250
dns 10.10.10.251
end
wr
Win701]
HQ_VPN]
show crypto map
HQ]
show ip route
## 외근자는 아래와 같은 접속 환경을 가짐.
## 동작 원리 ##
- Web Server로의 접속 요청
New-IP | ESP | IP | TCP | HTTP |
S:2.2.2.1 | S:10.1.10.100 | |||
D:1.1.100.1 | D:10.10.10.251 |
## 외근자 PC (2.2.2.1)의 IP가 EVPN_ADD를 통해 만들어준 POOL의 10.1.10.100 ~ 10.1.10.150 사이로 둔갑이 되고,
VPN을 만들때 입력한 Host(1.1.100.1)가 IT_SUPPORT(10.10.10.251)과 매핑되어 DNS Server인 10.10.10.251으로 바뀜.
그리고 DNS Server(10.10.10.251)이 Web Server(10.10.10.250)을 가리킨다. 이 구조임.
- 답변
New-IP | ESP | IP | TCP | HTTP |
1.1.100.1 | 10.10.10.251 | |||
2.2.2.1 | 10.1.10.100 |
## VPN 연결 후 본사 내부의 사설망과 정상적으로 통신되는 것을 확인할 수 있다. 하지만 Internet 망으로 통신을
시도하게 되면 실패하는 것을 확인할 수 있다. ==> 이유는 VPN 연결 후 Client가 전송하는 모든 트래픽이 IPSec으로
처리되기 때문이다.
즉, 본사가 아닌 Internet 망으로 전송되는 트래픽도 ESP로 암호화되어 본사 VPN 장비에게 전달된다.
## HQ_VPN of configuration
1) isakmp client configuration
key cisco123
pool EVPN_ADD ## 10.1.10.100 ~ 150
domain nbcycling.com
2) Routing-Table : RRI에 의해 생성되어 OSPF로 재분배된다.
Static-Route
S:10.1.10.100 ==> 2.2.2.1
3) Crypto-map
peer ==> 2.2.2.1
ACL ==> S: any -> D: 10.1.10.100
IPSEC_SA ==> esp-aes esp-sha-hmac
- Client PC에서 [Route print] 명령어로 확인해 보면, VPN 연결 후 모든 트래픽의 경로(0.0.0.0/0)가 실제 NIC가
아닌 VPN 가상 NIC으로 전송되는 것을 확인할 수 있다.
[cmd] - [route print]
- 위와 같은 문제를 해결하기 위해서는 'Split-tunnel'을 추가적으로 설정해야 한다.
'Split-tunnel'은 VPN 처리 트래픽을 정의해야 해당 트래픽만 VPN 가상 NIC로 처리하고, 그 외 모든 트팩은 실제
물리적 NIC으로 처리하는 것이 가능하도록 한다.
## Split-tunnel ##
## 지정된 네트워크만 ESP Header를 달고 오갈 수 있게 만들어주는 Tunnel이다.
HQ_VPN]
conf t
ip access-list extended EVPN_ST
permit ip 10.10.10.0 0.0.0.255 any
permit ip 10.1.10.0 0.0.0.255 any
exit
crypto isakmp client configuration group IT_SUPPORT
acl EVPN_ST
end
wr
Win701]
## 2차 DNS 주기
## VPN Disconnect -> Connect
[cmd] - [route print]
내부에서 나가는 것은 암호화 되고, 외근자 PC에서 나가는 것은 암호화 되지 않고 바로 게이트웨이로 나간다!!
이게 'Split-tunnel'이다!!
다시 한번 설명을 해보면,
위의 사진처럼, 외근자 PC(2.2.2.1)은 (10.1.10.0/24) 대역으로 변경되어 내부로 들어오는데, 내부(10.10.10.0)와
서로 통신을 할때 암호화를 하여 통신함.
## 외근자 PC에서는 위에서 봤듯이 내부로도 들어가지고 외부와도 연결이 된다. 하지만 내부에서는?
CentOS]
NAVER로의 접속이 불가능함. 왜냐? 암호화 되었기 때문임!!
## 본사 내부 직원들도 인터넷 망과 통신이 가능하도록 HQ_VPN에서 PAT 설정하라 ##
HQ_VPN]
conf t
access-list 50 permit 10.0.0.0 0.255.255.255
ip nat inside source list 50 int f0/1 overload
int f0/0
ip nat inside
exit
int f0/1
ip nat outside
end
wr
ISP]
conf t
int f1/0
shut
mac-address 05ef.031e.1010
no shut
exit
no access-list 10
access-list 10 permit 10.10.0.0 0.0.255.255
access-list 10 permit 2.2.2.0 0.0.0.255
access-list 10 permit 1.1.100.0 0.0.0.3
end
wr
## HQ_VPN에서 NAT를 돌리는데, HQ_VPN의 오른쪽에 있는 1.1.100.0도 넣어줘야한다.
하.지.만

- [HQ_VPN] 장비에서 PAT 설정 후 VPN Client에서 본사 VPN 통신이 정상적으로 동작하지 않는다.
이유는 VPN과 NAT를 동시에 사용하는 경우 NAT가 VPN 동작에 영향을 미치는지 확인해야 한다.
- [HQ_VPN] 장비가 본사에서 전송하는 응답 트래픽의 출발지 IP주소를 [1.1.100.1]로 변경하기에, VPN Client PC는
응답 트래픽을 수신하지만 자신이 요청한 Server의 IP 주소가 아니기 때문에 해당 Packet을 처리하지 않는다.
- 이러한 문제를 해결하기 위해서는 IPSec과 NAT를 동시에 사용하는 장비에서 VPN 응답 트래픽에 대해서는 NAT가
동작하지 않도록 설정해야 한다. 우선 내부단 DNS 서버의 캐시를 비운다.
ISP]
conf t
no access-list 10
access-list 10 permit host 1.1.100.1
access-list 10 permit 2.2.2.0 0.0.0.255
end
wr
HQ_VPN]
conf t
no ip nat inside source list 50 int f0/1 overload
no access-list 50
no ip nat inside source list 50 int f0/1 over
access-list 100 deny ip any 10.1.10.0 0.0.0.255
access-list 100 permit ip 10.0.0.0 0.255.255.255 any
ip nat inside source list 100 int f0/1 overload
end
wr
## 이제 내부에서도 인터넷 & VPN이 다 되는 상황이 만들어진다!!
Win701가 VPN이 동작하는 곳이 10.1.10.0/24인데 그 곳을 'deny ip any 10.1.10.0 0.0.0.255'를 통해서 NAT에서 배제!!
그래서 인터넷도 되고 VPN도 동작하는 것이다.
Win701]



VPN 끝 ....
VPN 끝 ....
VPN 끝 ....
VPN 끝 ....
VPN 끝 ....
VPN 끝 ....
VPN 끝 ....
VPN 끝 ....
VPN 끝 ....
VPN 끝 ....
VPN 끝 ....
VPN 끝 ....
VPN 끝 ....
VPN 끝 ....
VPN 끝 ....
'Network > VPN (KEDU)' 카테고리의 다른 글
VPN (DMVPN_Dynamic Multipoint VPN) - 기본, Crypto profile, 이중화 (1) | 2021.08.20 |
---|---|
VPN (GRE over IPSec) (2) | 2021.08.19 |
VPN 이중화 (0) | 2021.08.18 |
VPN (Virtual Private Network, 가상 사설망) - Static VPN, Dynamic VPN (0) | 2021.08.18 |