과거자료
- VPN
- VPN이란?
공중망을 통한 연결을 전용선처럼 사용하여 기존의 인터넷 서비스를 통해 하나의 사설 네트워크처럼 사용한다. 가상 사설망의 특징으로 터널링 프로토콜과 보안 과정을 거쳐 내부 기밀을 유지시키며 단일 회사만 사용하는 전용선의 개념이다. 공중망을 공유하기에 낮은 비용으로 동일한 네트워크 성능을 제공하며, Extranet과 광범위한 Internet을 지원할 수 있는 장점들이 있다.
- VPN의 장단점
- 장점 : 저비용, network 관리 및 운영 비용 절감, 기업 network의 유동성 확보와 기업의 통신 비용을 절감이 있다.
- 단점 : 보안성과 VPN 장비간의 호환성, 관리 편의성 QoS보장, 표준화, 인터넷의 성능 불안정하다.
- VPN의 종류
- 구조에 따른 분류
- intranet VPN : 공중망을 통한 원격지와의 LAN 연결
- Extranet VPN : Intranet VPN과 Remote Access VPN이 결합된 총체적인 형태
- Remote Access VPN : 원격지의 사용자가 해당 지역의 ISP가 제공하는 인터넷에 접속 후 서버 쪽과 접속하는 형태
- VPN 구성 필수 요소
- 터널링 기법을 이용한 네트워크 보안 및 데이터보안 지원
- 암호화 알고리즘을 통한 DATA의 손실 및 변형 방지
- 압축기법 활용을 통한 네트워크 속도 저하 문제 해결
- Key management 기능을 통한 LAN to LAN 혹은 Dial-up to LAN의 신뢰성 확보
- VPN 표준 프로토콜인 IPSec (IP Security) 지원
- VPN 구현 방식
VPN 전용 server
- VPN client와 내부 네트워크 보안이 필요한 곳에 독립적 설치
- 대역폭 증가, 고속 통신 필요
- 확장성 용이
- 고비용 - 장비 구입
- Router 형
- 전송경로상에 있는 router나 access server에 VPN 기능 추가
- router의 성능에 따라 VPN성능 좌우
- point-to-point tunneling
- 보안문제 취약 – router
- cisco, shiva, intel….
- Firewall 형
- firewall에 VPN기능 추가
- bottleneck현상 발생 가능
- checkpoint, 퓨쳐시스템, 시큐어소프트
- 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
- VPN의 핵심 구성 요소
- Tunneling
- 전용망 환경에서 point-to-point으로 연결한 것과 같은 효과를 얻기 위해 두 종단 사이에 가상 tunnel을 형성하는 것
- Security
- 암호화
- 인증
- Quality of Services
- 기존의 Leased Line. FR망을 사용할 때의 Bandwidth를 보장
- openVPN
openVPN은 오픈소스로 제공되는 가상 사설망 솔루션으로 포인트 대 포인트 또는 사이트 대 사이트 방식으로 원격 접속할 수 있는 무료 프로그램이며, 전체 패킷을 SSL/TLS 암호화 방식을 통해 서버와 통신하므로 보안상의 장점을 갖고 있다.
- 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
* server와 client를 연결하기 위해서는 반드시 해줘야 한다.
# 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 확인
- Client VPN
# vi vars 내용 수정
- 주석삭제
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
- ./clean-all
source ./vars
./build-ca
1024bit rsa key
enter x 10
cd keys/
ls
more index.txt
more serial
- ./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 |