VPN 이해 / GRE 터널 + IPSec
VPN
- Virtual Private Network
eve-ng에서 3725 사용하기
- 서울에 본사가 있고, 대구에 자사가 있는 경우 이 두 곳의 통신을 안전하게 하려면 ISP를 통한 Leased 회선을 이용하는 방법이 있다.
- 이렇게 하면 1:1로 직접 연결된 것과 같은 효과가 있어서 보안성은 매우 우수하지만 비용이 비싸다는 단점이 있다.
하지만 VPN을 이용하면 비용이 저렴한 일반 회선을 이용하고도 안전하게 통신할 수 있다.
여러 사람들이 사용하는 Public 네트워크를 Private 네트워크처럼 사용하는 기술
GRE 터널 + IPSec
기본 구성
방법
- R1)
interface Tunnel 0
ip address 19.1.1.1 255.255.255.0
tunnel source 1.1.12.1
tunnel destination 1.1.23.3
router eigrp 100
network 10.1.1.1 0.0.0.0
network 192.168.1.254 0.0.0.0
- R3)
interface Tunnel 0
ip address 10.1.1.2 255.255.255.0
tunnel source 1.1.23.3
tunnel destination 1.1.12.1
router eigrp 100
network 10.1.1.2 0.0.0.0
network 192.168.2.254 0.0.0.0
결과
Telnet 접속이 잘 된다.
Wireshark 분석해 보면 telnet 사용자, 패스워드가 잡힌다.
Tunnel 의 ip 주소도 잘 나오는 것을 확인할 수 있다.
사설 주소는 들어오지 않는다.
암호화 수행
- 원래의 사용자 패킷의 내용을 감추기 위해 암호화를 수행
- IPSec은
IP Security
의 줄임말로 VPN 사용자가 보낸 IP 패킷에 보안을 적용 - IPSec은
비밀성, 무결성, 인증
을 그 목적으로 함.
비밀성
- Confidentiality
- 최악의 경우 사용자 패킷에 담겨 있는 정보가 유출되더라도 그 정보를 알아볼 수 없게 만드는 것이다.
- 암호화와 복호화에 어떤 키(key)가 사용되는지에 따라
대칭형 키(Symmetrical Key)
와비대칭형 키(Asymmetrical Key)
로 구분할 수 있음.
대칭형 키(Symmetrial Key)
- 대칭형 키는 암호화와 복호화에 동일한 키가 사용된다. (집 열쇠)
비대칭형 키(Asymmetrical Key)
- = 공개 키 암호화(PKI : Public Key Infrastrucutre)
- 비대칭형 키는 암호화(공개키)와 복호화(개인키 : 자신PC만 존재)에 다른 키가 사용됨.
무결성
- Integrity
- 사용자가 보낸 정보가 전송 중에 가로채여진 후 조작되었는지 여부를 확인하기 위함.
- 해시 정보가 다르면 폐기됨.
- 해시 값까지 변경되면 조작 여부를 판단할 수 없다.
- 해시 기반 메시지 인증 코드(HMAC)
- HMAC : 해시 정보를 암호화하는 것을 해시 기반 메시지 인증 코드(HMAC)라고 한다.
- 해커가 조작한 정보에 대한 새로운 해시 값을 계산하더라도 해시 암호화를 위한 키 정보를 모르기 때문에 해시 값을 변경할 수 없다.
인증
- Authentication
- IPSec은 자신과 정보를 공유하는 VPN Peer를 인증함으로써 VPN 통신을 위한 세션을 시작한다.
- IPSec Peer의 인증은 `사전에 공유된 키 정보(PSK, Pre=Shared Key), 전자서명(Digital Signature), 인증서(Digital Certicate)등으로 이루어짐.
IPSec 설정 4단계
- Step1 : IKE Phase 1(ISAKMP) 정책 설정
- Step2 : IKE Phase 2(IPSec) 정책 설정
- Step3 : Phase1 + Phase2 정책 조합
- Step4 : 인터페이스에 IPSec VPN 적용(활성화)
Step 1 : IKE Phase 1 (ISAKMP) 정책 설정
- ① VPN 장비간 인증(Authentication) 키 설정
- pre-shared : 미리 설정한 대칭 키 사용
- rsa-encr : RSA(Rivest, Shamir, Adleman) 방식으로 미리 만든 비대칭 키 사용
rsa-sig : RSA 방식으로 만들 비대칭 키 사용
- ② 암호화(Confidentiality) 방식 지정 : encryption
- AES(Advanced Encryption Standard)
- 3DES(Triple DES)
DES(Data Encryption Standard)
- ③ 키 교환 방식
- Diffie-Hellman Group 1, 2, 5
④ 무결성(Integrity) 확인 방식 설정
- md5(Message Digest 5)
sha(Secure Hash Standard)
- ⑤ 현재의 보안 정책 사용시간 : Lifetime 설정
Step 2 : IKE Phase 2 (IPSec) 정책 설정
- ① VPN으로 보호해야 할 트래픽 지정
- ② 트래픽 보호용으로 사용할 보안 방식 결정 : Transform set
- AH, ESP : 하나의 패킷내에서 보호되는 데이터의 범위 및 방식
- DES, 3DES, AES : 데이터 암호화 방식
- 무결성 확인(데이터가 중간에 변조되지 않았음을 확인) : MD5, SHA
※ 참고
IKE : 인터넷이라는 Public에서 안전하게 키를 주고 받을 수 있을지에 대한 이슈 VPN에서 필수적으로 암호화를 하기 위해 필요한 것이 ‘키’인데, 그 키를 주고 받아야만 같은 키를 갖고 서로 데이터를 암/복호화 할 수 있다. 그 키를 어떻게 안전하게 주고 받을 수 있을 지에 대한 것을 정의
ESP : IPsec 헤더. 무결성과 기밀성을 제공한다.
AH : 기밀성을 제공하지는 않지만, 무결성과 재생방지를 제공한다.
※ ESP 혹은 AH만 사용할 수 도 있고 두개의 헤더를 같이 사용할 수 도 있다
Ex.
R1)
- VPN 장비 간 인증에 사용되는 정책 구성
- Step 01. IKE Phase 1에서 사용할 정책 설정
crypto isakmp policy 1
encryption 3des
hash md5
authentication pre-share
group 2
- 여기까지는 암호화 할 때 사용할 키에 대한 설정 -
crypto isakmp key 7 fz007 address 1.1.23.3
- 여기까지는 Peer 간 ISAKMP 인증을 위한 암호를 지정 -
- 보호할 트래픽에 사용되는 정책 구성
- Step 02. IKE Phase 2에서 사용할 정책 설정
ip access-list extended R13
permit ip host 192.618.1.1 host 192.168.2.1
- 여기까지는 보호할 트래픽을 (GRE 터널) 지정한 것
crypto ipsec transform-set IKE13 esp-3des esp-sha-hmac
- 여기까지는 IKE13 라는 Transform Set을 지정한 것 -
- Step 03. 두 정책을 연결
crypto map VPN13 10 ipsec-isakmp
match address R13
set peer 1.1.23.3
set transform-set IKE13
- VPN13이라는 Crypto Map 생성 -
- R3)
crypto isakmp policy 1
encryption 3des
hash md5
authentication pre-share
group 2
crypto isakmp key 6 fz007 address 1.1.12.1
ip access-list extended R13
permit ip host 192.168.2.1 host 192.168.1.1
crypto ipsec transform-set IKE13 esp-3des esp-sha-hmac
crypto map VPN13 10 ipsec-isakmp
match address R13
set peer 1.1.12.1
set transform-set IKE13
interface tunnel 0
crypto map VPN13
- 결과)
암호화가 되었다.