가상 사설 네트워크 -> Tunneling + Encrytion
Public Network를 Priavte Network처럼 사용하기 위한 기술
본사/지사(or 외부) 각각의 Network를 연결하여 하나의 전용선처럼 연결
Tunneling을 통해 논리적인 연결을 생성 인증/암호화/접근제어 등을 통해 보안성을 높임
VPN용으로 제작된 전용 H/W를 이용하여 구축
Router(Access Server)에서 지원하는 VPN 기능을 이용하여 구축
Firewall에 지원하는 VPN 기능을 이용하여 구축
물리적으로 떨어진 특정 장소들을 논리적으로 하나로 연결하는 기술
Protocol이 호환되지 않는 Network를 통해 Data를 전달
ex) IPX는 IP망에서 통신이 불가(Routing X)
Packet 암호화
GRE (Generic Routing Encapsulation)
hostname
R0 - ISP / R1 - HQ / R2 - BR
HQ(config)#ip route 0.0.0.0 0.0.0.0 1.1.1.2
BR(config)#ip route 0.0.0.0 0.0.0.0 2.2.2.2ISP(config)#ip route 192.168.53.0 255.255.255.0 1.1.1.1
ISP(config)#ip route 172.16.0.0 255.255.0.0 2.2.2.3

HQ(config)#interface tunnel 0
HQ(config-if)#tunnel mode gre ip
HQ(config-if)#tunnel source g0/0
HQ(config-if)#tunnel destination 2.2.2.3
HQ(config-if)#ip address 10.0.0.1 255.0.0.0
BR(config)#interface tunnel 0
BR(config-if)#tunnel mode gre ip
BR(config-if)#tunnel source g0/0
BR(config-if)#tunnel destination 1.1.1.1
BR(config-if)#ip address 10.0.0.2 255.0.0.0
Tunnel로 Routing
HQ(config)#ip route 172.16.0.0 255.255.0.0 10.0.0.2
BR(config)#ip route 192.168.53.0 255.255.255.0 10.0.0.1




TTL 값이 변경된것을 볼 수 있습니다
Network Layer에서 동작하는 IP망에서 사용하는 표준 보안 Protocol
secpol.msc
IP 보안 정책 > IP 보안 정책 만들기
> IP 보안 정책 이름 : IPSec ICMP
> 보안 통신 요청 : 기본 응답 규칙 활성화 체크 해제된 상태로 진행
> IP 보안 정책 마법사 완료
IP 보안 정책 > IPSec ICMP 우클릭 > 속성
> 추가 마법사 사용 체크 해제 > 추가
> IP 필터 목록 > 추가 > 추가 마법사 시용 체크 해제 > 추가 > 새 IP 필터 목록 체크
> 원본/대상 주소 : 모든 주소, 프로토콜 : ICMP > 확인 > 확인
> 필터 동작 > 추가 마법사 사용 체크 해제 > 추가
> 보안 방법 > 보안 협상 > 추가 > 무결성 및 암호화 > 확인 > 적용 > 확인 > 새 필터 동작 체크
> 인증 방법 > 편집 > 이 문자열 사용 : ipsec@<<원하는번호>>
> 확인 > 적용 > 확인
> 적용 > 확인
> IPSec ICMP 우클릭 > 할당
wireshark icmp || esp || isakmp 로 필터 걸고 새로 패킷 잡기
다시 ping 보내서 패킷 확인


- window server 2022 - 00
- vmnet0 : 10.x.0.100
- vmnet1 : 192.168.x.1
- window server 2022 - 01
- vmnet0 : 10.x.0.200
- vmnet1 : 192.168.x+50.1
- window 10 - 00
- vmnet1 : 192.168.x.100
- window 10 - 01
- vmnet1 : 192.168.x+50.100
규칙 종류: 터널
터널 종류 : 사용자 지정 구성
요구사항 : 인바운드및 아웃바운드에 대한 인증 필요
터널 끝점
끝점 1에 있는 컴퓨터~~ : 추가 > 작업중인 서버의 vmnet1에 설정한 대역
끝점 1 가장 가까운 끝점 : 편집 > 작업중인 서버의 vmnet0에 설정한 IP
끝점 2 가장 가까운 끝점 : 편집 > 연결할 서버의 vmnet0에 설정한 IP
끝점 2에 있는 컴퓨터~~ : 추가 > 연결할 서버의 vmnet1에 설정한 대역
인증 방식
고급 > 사용자 지정 > 첫번째 인증 방법 추가 > 미리 공유한 키(PSK) : ipsec@<<원하는번호>> > 확인
이름 : IPSec Tunnel Mode
> 마침
관리도구 > 서버 관리자 > 역할 및 기능 추가 > 역할 또는 기능 기반 설치 > 서버풀에서 서버 선택
> 원격 액세스 체크 > 기능 : 그대로 >
원격 액세스
> 역할 서비스 라우팅 체크 , DirectAccess 도 같이 체크됨
> 필요한 경우 다시 시작 체크 후 설치
관리 도구
> 라우팅 및 원격액세스 >> 라우팅 및 원격 액세스 구성 및 사용
구성 : 사용자 지정 구성
사용자 지정 구성 : LAN Routing 선택



win2022(Gateway), win10(Host) → G to H (Remote Access VPN)
win2022 - vmnet0(10.x.0.150), vmnet1(192.168.x.1)
win10 - vmnet0(10.x.1.150)
관리도구 > 서버 관리자 > 역할 및 기능 추가 > 역할 또는 기능 기반 설치 > 서버풀에서 서버 선택
> 원격 액세스 체크 > 기능 : 그대로 >
원격 액세스
> 역할 서비스 라우팅 체크 , DirectAccess 도 같이 체크됨
> 필요한 경우 다시 시작 체크 후 설치
관리도구 > 서버 관리자 > 도구 > 라우팅 및 액세스 설정 > 2022-00(로컬) 우클릭 > 라우팅 및 원격 액세스 구성 및 사용
> VPN 액세스 및 NAT 선택 > VPN 연결 Ethernet0 선택
> IP 주소 할당: 지정한 주소 범위에서 > 주소 범위 할당: 192.168.x.1 ~ 192.168.x.50
> 이름 및 주소 변환 서비스 : 나중에 설치
> 다중 원격 액세스 서버 관리 : 아니요,~~ 선택
> DHCP 릴레이 에이전트 속성 ~~ : 확인
> 마침
> 2022-00(로컬) 우클릭 > 속성 > 보안 > 인증 방법 > MS-CHAP v2만 남기고 확인
win+r > lusrmgr.msc > 사용자 > 사용자 추가
> 이름 : vpnuser / 암호 : P@ssw0rd / 암호 변경 체크 해제, 기간 만료 없음 체크
> vpnuser 우클릭 속성 > 전화 접속 로그인 > 액세스 허용
관리도구 > 서버 관리자 > 역할 및 기능 추가 > 역할 또는 기능 기반 설치 > 서버풀에서 서버 선택
> 원격 액세스 체크 > 기능 : 그대로 >
원격 액세스
> 역할 서비스 라우팅 체크 , DirectAccess 도 같이 체크됨
> 필요한 경우 다시 시작 체크 후 설치
관리도구 > 서버 관리자 > 도구 > 라우팅 및 액세스 설정 > 2022-00(로컬) 우클릭 > 라우팅 및 원격 액세스 구성 및 사용
> VPN 액세스 및 NAT 선택 > VPN 연결 Ethernet0 선택
> IP 주소 할당: 지정한 주소 범위에서 > 주소 범위 할당: 192.168.x.1 ~ 192.168.x.50
> 이름 및 주소 변환 서비스 : 나중에 설치
> 다중 원격 액세스 서버 관리 : 아니요,~~ 선택
> DHCP 릴레이 에이전트 속성 ~~ : 확인
> 마침
> 2022-00(로컬) 우클릭 > 속성 > 보안 > 인증 방법 > MS-CHAP v2만 남기고 확인
win+r > lusrmgr.msc > 사용자 > 사용자 추가
> 이름 : vpnuser / 암호 : P@ssw0rd / 암호 변경 체크 해제, 기간 만료 없음 체크
> vpnuser 우클릭 속성 > 전화 접속 로그인 > 액세스 허용


관리도구 > 서버 관리자 > 도구 > 라우팅 및 액세스 설정
> 2022-00(로컬) 우클릭 > 속성 > 보안 > L2TP/IKEv2 ~~ 체크 > 미리 공유한 키: ipsec@<<원하는번호>>
설정 > 네트워크 및 인터넷 > VPN > VPN 연결 > 고급 설정
> 편집 > VPN 종류 : L2TP~~ 미리 공유한키 > 미리 공유한 키 : ipsec@<<원하는번호>>
> 사용자 이름: vpnuser / 암호 : P@ssw0rd > 저장
설정 > 네트워크 및 인터넷 > VPN > VPN 연결 > 연결
ubuntu22.04(Gateway), win10(Host) → G to H (Remote Access VPN)
ubuntu22.04 - vmnet0(10.x.0.150), vmnet1(192.168.x.1)
win10 - vmnet0(10.x.1.150)
# Routing 관련 패키지 설치
apt update
apt install -y iptables-persistent
# pptp 설치
apt install -y pptpd
# pptpd 설정
vi /etc/pptpd.conf
localip 192.168.x+50.1
remoteip 192.168.x+50.100-200
vi /etc/ppp/chap-secrets
vpnuser * P@ssw0rd *
cp /etc/ppp/pptpd-options /etc/ppp/pptpd-options.bak
vi /etc/ppp/pptpd-options
name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
ms-dns 8.8.8.8
ms-dns 8.8.4.4
proxyarp
lock
nobsdcomp
# pptpd 실행
systemctl start pptpd
설정 > 네트워크 및 인터넷 > 네트워크 및 공유 센터
> 새 연결 또는 네트워크 설정
> 회사에 연결 > 내 인터넷 연결 사용
> 인터넷 주소 : ub2204의 IP > 만들기
ncpa.cpl
vpn 연결 우클릭 > 속성 > 보안
> VPN 종류 : PPTP / 인증 - 다음 프로토콜 허용 : MS-CHAP만 선택 > 확인
설정 > 네트워크 및 인터넷 > VPN > VPN 연결 > 고급 설정
> 편집 > 사용자 이름: vpnuser / 암호 : P@ssw0rd > 저장
설정 > 네트워크 및 인터넷 > VPN > VPN 연결 > 연결
cmd
ipconfig > ppp 어뎁터 확인
ping 8.8.8.8 로 외부 통신 확인
tracert 8.8.8.8로 어느 환경에서 통신하는지 확
# PPTPD 중지
systemctl stop pptpd
# 패키지 설치
apt install -y strongswan xl2tpd ppp lsof
# IPSec 설정
cp /etc/ipsec.conf /etc/ipsec.conf.bak
vi /etc/ipsec.conf
config setup
charondebug="ike 2, knl 2, cfg 2, net 2, esp 2, dmn 2, mgr 2"
conn L2TP-PSK
keyexchange=ikev1
type=transport
authby=secret
ike=aes256-sha1-modp1024
esp=aes256-sha1
left=10.x.0.150
leftid=10.x.0.150
leftprotoport=17/1701
right=%any
rightprotoport=17/%any
auto=add
# IPSec PSK 설정
vi /etc/ipsec.secrets
%any %any : PSK "ipsec@출석번호"
# L2TP 설정
cp /etc/xl2tpd/xl2tpd.conf /etc/xl2tpd/xl2tpd.conf.bak
vi /etx/xl2tpd/xl2tpd.conf
[global]
port = 1701
[lns default]
ip range = 192.168.x+50.10-192.168.x+50.25
local ip = 192.168.x+50.1
require chap = yes
refuse pap = yes
require authentication = yes
name = L2TP-VPN
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes
# ppp 설정
vi /etc/ppp/chap-secrets
vpnuser * P@ssw0rd *
vi /etc/ppp/options.xl2tpd
require-mschap-v2
ms-dns 8.8.8.8
ms-dns 1.1.1.1
asyncmap 0
auth
hide-password
debug
name l2tpd
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4
# service 시작
systemctl restart strongswan-starter
systemctl restart xl2tpd