가치 있는 정보 준비 중
3초만 투자해 보세요!
Preparing valuable information
Just invest three seconds!
본문 바로가기
IT/NETWORK

VPN

by 콰나 | Quanna 2024. 1. 16.

과거자료

 
  1. VPN
  1. VPN이란?

공중망을 통한 연결을 전용선처럼 사용하여 기존의 인터넷 서비스를 통해 하나의 사설 네트워크처럼 사용한다. 가상 사설망의 특징으로 터널링 프로토콜과 보안 과정을 거쳐 내부 기밀을 유지시키며 단일 회사만 사용하는 전용선의 개념이다. 공중망을 공유하기에 낮은 비용으로 동일한 네트워크 성능을 제공하며, Extranet 광범위한 Internet 지원할 있는 장점들이 있다.

  1. VPN 장단점
  1. 장점 : 저비용, network 관리 운영 비용 절감, 기업 network 유동성 확보와 기업의 통신 비용을 절감이 있다.
  1. 단점 : 보안성과 VPN 장비간의 호환성, 관리 편의성 QoS보장, 표준화, 인터넷의 성능 불안정하다.
  1. VPN 종류
  1. 구조에 따른 분류
  • intranet VPN : 공중망을 통한 원격지와의 LAN 연결
  • Extranet VPN : Intranet VPN Remote Access VPN 결합된 총체적인 형태
  • Remote Access VPN : 원격지의 사용자가 해당 지역의 ISP 제공하는 인터넷에 접속 서버 쪽과 접속하는 형태
  1. VPN 구성 필수 요소
  • 터널링 기법을 이용한 네트워크 보안 및 데이터보안 지원
  • 암호화 알고리즘을 통한 DATA 손실 변형 방지
  • 압축기법 활용을 통한 네트워크 속도 저하 문제 해결
  • Key management 기능을 통한 LAN to LAN 혹은 Dial-up to LAN 신뢰성 확보
  • VPN 표준 프로토콜인 IPSec (IP Security) 지원
  1. VPN 구현 방식

VPN 전용 server

  • VPN client 내부 네트워크 보안이 필요한 곳에 독립적 설치
  • 대역폭 증가, 고속 통신 필요
  • 확장성 용이
  • 고비용 - 장비 구입
  1. Router
  • 전송경로상에 있는 router access server VPN 기능 추가
  • router 성능에 따라 VPN성능 좌우
  • point-to-point tunneling
  • 보안문제 취약 – router
  • cisco, shiva, intel.
  1. Firewall
  • firewall VPN기능 추가
  • bottleneck현상 발생 가능
  • checkpoint, 퓨쳐시스템, 시큐어소프트
  1. VPN 서비스 형태
  • Remote Access VPN
  • PSTN, ISDN, DSL, Cable Modem
  • LAN to LAN VPN (Site-to-site VPN)
  • 기업에서의 LAN to LAN VPN
  • 기업에서의 LAN to Client VPN
  • ISP에서의 VPN
  1. VPN 핵심 구성 요소
  1. Tunneling
  • 전용망 환경에서 point-to-point으로 연결한 것과 같은 효과를 얻기 위해 두 종단 사이에 가상 tunnel 형성하는
  1. Security
  • 암호화
  • 인증
  1. Quality of Services
  • 기존의 Leased Line. FR망을 사용할 때의 Bandwidth 보장
  1. openVPN

openVPN 오픈소스로 제공되는 가상 사설망 솔루션으로 포인트 대 포인트 또는 사이트 대 사이트 방식으로 원격 접속할 수 있는 무료 프로그램이며, 전체 패킷을 SSL/TLS 암호화 방식을 통해 서버와 통신하므로 보안상의 장점을 갖고 있다.

 

  1. Server VPN

openVPN, openssl, lzo-2.2.2 다운로드

openssl 설정

# yum install gcc openssl-devel

# rpm qa openssl-devel

# mkdir p /usr/local/src

# cd /usr/local/src

# wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.06.tar.gz

# gunzip lzo-2.06.tar.gz

# tar xvf lzo-2.06.tar

# cd ./lzo-2.06

# ./configure prefix=/usr/local/lzo

# make && make install

openvpn 설치

# wget http://10.225.152.192/openvpn/openvpn-2.2.2.zip

압축해제

# cd /usr/local/src

# unzip openvpn-2.2.2.zip

# cd openvpn-2.2.2

# ./configure prefix=/usr/local/openvpn\

--with-lzo-headers=/usr/local/lzo/include \

--with-lzo-lib=/usr/local/lzo/lib \

--with-ssl-headers=/include/openssl \

--with-ssl-lib=/usr/lib64/

 

# make && make install

# cd /usr/local/openvpn/sbin

#ls

#./openvpn version

 

# cp /usr/local/src/openvpn-2.2.2/sample-scripts/openvpn.init

--복사--> /etc/rc.d/init.d/openvpn

openvpn 파일 수정

openvpn_locations=/usr/local/openvpn/sbin/openvpn

# service openvpn status (확인)

# mkdir /etc/openvpn

 

ln s /usr/local/openvpn/sbin/openvpn /usr/bin

시스템 종료 후 NAT 네트워크 제거

openvpn 작업 디렉토리

인터페이스 설정 저장

 

터널링

라우팅 테이블 등록

# route add net 192.168.90.0/24 gw 192.168.80.254

* serverclient를 연결하기 위해서는 반드시 해줘야 한다.

 

# sysctl w net.ipv4.ip_forward=1

# netstat rn

# cd /etc/openvpn

# openvpn genkey secret psk.key

# ls

# cat psk.key

# ls l psk.key

# chmod 400 psk.key

# vi /etc/openvpn/server.conf

dev tun

proto udp

local 192.168.80.253

lport 1194

remote 192.168.90.253

rport 1194

secret psk.key 0

ifconfig 10.0.0.1 10.0.0.2

route 192.168.40.0 255.255.255.0

user nobody

group nobody

persist-tun

persist-key

keepalive 10 120

ping-timer-rem

verb 3

daemon

log-append /var/log/openvpn.log

# service openvpn restart

# tail /var/log/openvpn.log

server에서 client로만

# scp /etc/openvpn/* root@192.168.90.253:/etc/openvpn

password: ex) qwer1234

password: ex) qwer1234

암호화되는지 확인 udp protocol로 통신

# tcpdump i eth0

 

wireshark 확인

  1. Client VPN

# vi vars 내용 수정

  1. 주석삭제

CA => pki 인증기관

key country ko

city -seoul

org abc inc

email= admin@abc.com

email= admin@abc.com

key cn => abc

name admin

OU it

  1. ./clean-all

source ./vars

./build-ca

1024bit rsa key

enter x 10

cd keys/

ls

more index.txt

more serial

  1. ./build-key-server HQ-VPN

인증서 password

y

인증서 확인

cd keys/

ls

디트헬만 key 생성

./build-dh

[root@localhost 2.0]# ./build-dh

Generating DH parameters, 1024 bit long safe prime, generator 2

This is going to take a long time

................+.........+..+................+...................+....+.....+.....................................................................................+....+...........+.......+..........................................................+......................................................................................................+...................................................................+.............++*++*++*

모든 key

/etc/openvpn 에 위치해야 한다

mv HQ-VPN.* /etc/openvpn/

mv ca.* /etc/openvpn/

mv dh1024.pem /etc/openvpn

 

[root@localhost keys]# cd /etc/openvpn/

[root@localhost openvpn]# ls

HQ-VPN.crt HQ-VPN.key ca.key psk.key

HQ-VPN.csr ca.crt dh1024.pem server.conf

# vi server1.conf 수정

proto udp

~~ 삭제

port 1195

 

ca ca.crt

cert HQ-VPN.crt

key HQ-VPN.key

dh dh1024.pem

 

server 10.1.0.0. 255.255.255.0

ifconfig-pool-persist ipp.txt

push route 192.168.10.0 255.255.255.0

 

cipher AES-128-CBC

comp-lzo

max-clients 10

status openvpn-status.txt

log-append /var/log/openvpn-g2c.log

# service openvpn restart =>서비스 재시작

cd /var/log/   => 에러 뜰시 로그 확인

키 생성

# cd /usr/local/src/openvpn-2.2.2/easy-rsa/2.0

# cp /etc/openvpn/ca.* keys/

# ./build-key client01

./clean-all

source ./vars

./build-key client01

# mkdir /client-key

 

키 복사 후 압축

# cd keys/

cp ca.crt /client-key/

mv client01.* /client-key/

cd /client-key/

ls

# zip client01.zip *

client01 key.zip 파일 winxp 복사

파일시스템

client01.zip

압축파일 windows로 복사

 

openvpn 설치 후

openVPN config디렉토리에 centos에서 만든 인증키 복사

워드패드로 client 인증키 열고 주석제거

openvpn 아이콘 복사해서 붙여 놓고 client 구성파일 수정

client

dev tun

proto udp

remote 192.168.20.253 1195

persist-key

persist-tun

 

ca ca.crt

cert client01.crt

key client01.key

 

cipher AES-128-CBC

comp-lzo

verb 3

 

openvpn gui 실행

화면 하단 아이콘 우 클릭 커넥션

뷰 로그로 오류 확인

windows cmd 창에서 ping test

windows -> cmd

ipconfig

10.1.0.6

받은 것 확인

netstat rn

win server에서 ping 192.168.10.10. t

centOS ip forwarding 설정

sysctl w net.ipv4.ip_forward=1

CentOS 라우팅 추가

route add net 192.168.50.0/24 gw 192.168.20.254

/etc/sysctl.conf

net.ipv4.ip_forward=1

부팅시에만 읽음

ping test

라우팅 테이블 확인

라우팅 테이블 ip 추가 확인 => 192.168.10.10을 가기 위해 터널링 interface를 만들었고

그것을 연결하기위해 10.1.0.6 지나야 한다.

 

'IT > NETWORK' 카테고리의 다른 글

CCNA  (1) 2024.01.16
4계층 protocol  (0) 2017.11.24
TCP 3way handshake  (0) 2017.11.24
TCP/UDP 헤더 분석  (0) 2017.11.23
icmp에 대하여  (0) 2017.11.23