슬라이드 1

Similar documents
Network seminar.key

bn2019_2

PWR PWR HDD HDD USB USB Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl Cable PC PC DDNS (

USB USB DV25 DV25 REC SRN-475S REC SRN-475S LAN POWER LAN POWER Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl C

Sena Device Server Serial/IP TM Version

시스코 무선랜 설치운영 매뉴얼(AP1200s_v1.1)

1217 WebTrafMon II

TCP.IP.ppt

PowerPoint 프레젠테이션

Subnet Address Internet Network G Network Network class B networ

PowerPoint 프레젠테이션

untitled

PowerPoint 프레젠테이션

歯김병철.PDF

소개 TeraStation 을 구입해 주셔서 감사합니다! 이 사용 설명서는 TeraStation 구성 정보를 제공합니다. 제품은 계속 업데이트되므로, 이 설명서의 이미지 및 텍스트는 사용자가 보유 중인 TeraStation 에 표시 된 이미지 및 텍스트와 약간 다를 수

Remote UI Guide

PowerPoint 프레젠테이션

Solaris Express Developer Edition

SMB_ICMP_UDP(huichang).PDF

Network Security - Wired Sniffing 실습 ICNS Lab. Kyung Hee University

Snort Install Manual Ad2m VMware libnet tar.gz DebianOS libpcap tar.gz Putty snort tar.gz WinSCP snort rules 1. 첫번째로네트워크설정 1) ifconf

chapter4

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O


목차 1) 개요 ) HTTPS & SSL ) HeartBleed 란?

1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation

hd1300_k_v1r2_Final_.PDF

PowerPoint 프레젠테이션

UDP Flooding Attack 공격과 방어

VPN.hwp

°í¼®ÁÖ Ãâ·Â

슬라이드 제목 없음

TTA Verified : HomeGateway :, : (NEtwork Testing Team)

10X56_NWG_KOR.indd

슬라이드 1

VZ94-한글매뉴얼

본교재는수업용으로제작된게시물입니다. 영리목적으로사용할경우저작권법제 30 조항에의거법적처벌을받을수있습니다. [ 실습 ] 스위치장비초기화 1. NVRAM 에저장되어있는 'startup-config' 파일이있다면, 삭제를실시한다. SWx>enable SWx#erase sta

DE1-SoC Board

Windows 8에서 BioStar 1 설치하기

H3050(aap)

Microsoft PowerPoint - 06-IPAddress [호환 모드]

PowerPoint 프레젠테이션

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

Assign an IP Address and Access the Video Stream - Installation Guide

Chapter11OSPF

ARMBOOT 1

untitled

歯III-2_VPN-김이한.PDF

PCServerMgmt7

Microsoft PowerPoint - L4-7Switch기본교육자료.ppt

PowerPoint 프레젠테이션

슬라이드 1

歯I-3_무선통신기반차세대망-조동호.PDF

네트워크 안정성을 지켜줄 최고의 기술과 성능 TrusGuard는 국내 최초의 통합보안솔루션으로서 지난 5년간 약 4천여 고객 사이트에 구축 운영되면서 기술의 안정성과 성능면에서 철저한 시장 검증을 거쳤습니다. 또한 TrusGuard는 단독 기능 또는 복합 기능 구동 시

untitled

DBPIA-NURIMEDIA

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

Microsoft Word doc

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

PowerPoint 프레젠테이션

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

Page 2 of 6 Here are the rules for conjugating Whether (or not) and If when using a Descriptive Verb. The only difference here from Action Verbs is wh

슬라이드 제목 없음

Microsoft PowerPoint - 2.Catalyst Switch Intrastructure Protection_이충용_V1 0.ppt [호환 모드]

Chapter 1

Backup Exec

untitled

Microsoft Word - KPMC-400,401 SW 사용 설명서

제20회_해킹방지워크샵_(이재석)

목차 데모 홖경 및 개요... 3 테스트 서버 설정... 4 DC (Domain Controller) 서버 설정... 4 RDSH (Remote Desktop Session Host) 서버 설정... 9 W7CLIENT (Windows 7 Client) 클라이얶트 설정

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

운영체제실습_명령어

Apache install guide

BEA_WebLogic.hwp

Voice Portal using Oracle 9i AS Wireless

GRE(Generic Routing Encapsulation) GRE는 Cisco에서개발한터널링프로토콜으로써특정네트워크망에서새로운 IP 헤더를인캡슐레이션하여패켓을전송하는 VPN 기능을제공한다. GRE 터널링을이용하여패켓을전송하면, 데이터를암호화하지않기때문에보안적으로는취

자바-11장N'1-502

BGP AS AS BGP AS BGP AS 65250

Analyst Briefing

< FC1A4BAB8B9FDC7D D325FC3D6C1BEBABB2E687770>

solution map_....

2-11Àå

SSL Strip Attack JAC (SemiDntmd) 이우승 semidntmd.tistory.com

슬라이드 1

04서종철fig.6(121~131)ok

rv 브로슈어 국문

(SW3704) Gingerbread Source Build & Working Guide

Something that can be seen, touched or otherwise sensed

T100MD+

놀이동산미아찾기시스템

01Àå

. PC PC 3 [ ] [ ], [ ] [ ] [ ] 3 [ ] [ ], 4 [ ] [ ], 4 [Internet Protocol Version 4 (TCP/IPv4)] 5 [ ] 6 [ IP (O)], [ DNS (B)] 7 [ ] 한국어 -

05Àå


Windows 네트워크 사용 설명서

Web Application Hosting in the AWS Cloud Contents 개요 가용성과 확장성이 높은 웹 호스팅은 복잡하고 비용이 많이 드는 사업이 될 수 있습니다. 전통적인 웹 확장 아키텍처는 높은 수준의 안정성을 보장하기 위해 복잡한 솔루션으로 구현

0125_ 워크샵 발표자료_완성.key

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras

Microsoft Word - release note-VRRP_Korean.doc

½ÃÇèÀÎÁõ¼Ò½Ä-2-1

Transcription:

About OpenVPN Configuration Step by Step guide

What is the VPN? Virtual Private Network fundamentally, a VPN is a set of tools which allow networks at different locations to be securely connected, using a public network as the transport layer. VPNs use cryptography to provide protections against eavesdropping and active attacks. VPNs are most commonly used today for telecommuting and linking branch offices via secure WANs. the VPN concept was to produce the virtual dedicated circuit, pump it over the internet, and use cryptography to make it secure. 2008 년 10 월 26 일제 12 회 LUG 세미나 2

VPN Topology 2008 년 10 월 26 일제 12 회 LUG 세미나 3

What VPN does? Confidentiality(Encryption) Using shared secret key(generated by Diffie- Hellman(DH) Key Exchange) DES, 3DES, RC4/5, AES Integrity(Message Authentication) Hash(MD5, SHA) HMAC(Using Hashed Message Authentication Code) MAC(Message Authentication Code) Authentication(User Authentication) Preshared-key, Kerberos, Digital Signature, X.509 2008 년 10 월 26 일제 12 회 LUG 세미나 4

Security Mechanism IPSec(IP Security) the first standard for secure networking. network level security(kernel space operation) too complex so that users must spend much time to learn it connection problem in NAT SSL VPN developed to provide application-level security rather than network level security runs in user space, simplifying implementation and administration. there s no problem in NAT 2008 년 10 월 26 일제 12 회 LUG 세미나 5

Operation mode of VPN Site to Site VPN server to server, gateway to gateway, tunnel mode static key(preshared key) digital signature Remote Access VPN client to server, client to gateway, transport mode static key digital signature digital signature & ID/PW Client to Client VPN 2008 년 10 월 26 일제 12 회 LUG 세미나 6

Why OpenVPN? SSL-Based not IPSec variation of SSL-based VPN that is capable of running over UDP OpenSource VPN Solution open standard, Good security, stable operation multi platform support Windows, unix, freebsd, linux, especially can be used with embedded linux windows GUI client Readable & Understandable Configuration 2008 년 10 월 26 일제 12 회 LUG 세미나 7

Network Topology 2008 년 10 월 26 일제 12 회 LUG 세미나 8

Minimum Preperation Linux System 3set(debian, centos,...) OpenVPN Server WindowsXP system 5set OpenVPN Client DD-WRT Supported Router http://www.dd-wrt.com ASUS WL-500GP V2 If you only one computer, you can make and use all above systems with virtualizetion solution like vmware (don't know sure is it possible on virtualserver) 2008 년 10 월 26 일제 12 회 LUG 세미나 9

Installation of OpenVPN Install as binary package don't waste time Debian apt-get update apt-get install openvpn CentOS should install rpmforge package before installing openvpn http://dag.wieers.com/rpm/package/rpmforge-release yum update yum install -y openvpn 2008 년 10 월 26 일제 12 회 LUG 세미나 10

Configuration OpenVPN STEP STEP1 : make config files make config files in /etc/openvpn config files should have conf (linux) or ovpn (windows) file extension each VPN connection should their config file STEP2 : start openvpn & confirm make sure the vpn network adapter is loaded make sure the vpn port is opened properly make sure routing tables are added properly ping test between client & packet capture 2008 년 10 월 26 일제 12 회 LUG 세미나 11

Site to Site VPN 2008 년 10 월 26 일제 12 회 LUG 세미나 12

1. Shared Key 2008 년 10 월 26 일제 12 회 LUG 세미나 13

Make Shared Key & Distribute Make Shared Secret Key in Seoul seoul:/etc/openvpn# openvpn --genkey --secret static.key Distribute Key transfer key to jeonju & daegu # secret key key made by openvpn # 2048 bit OpenVPN static key # -----BEGIN OpenVPN Static key V1----- 7fe502eb27b8ad93455a72ff1bccccb9 c4481d2a7034892f48e5d94b70f61ba5 77f9395a3388451c29a2bf8afe3e50ee 6223dc019ad4110830209234edf66f61 df1ad0984b2841376c85e97721b22954 78cccda1273e75807ebf8ba31f76b18f 1a0fcd79c70c7b02b807b9fe1fb2bf47 9a01897da5fbc3df46b19fb6822543a4 f4a7e8ab25d5e56024da126665d03547 d658477221aabe4bf91ef1ce9b5c434f bf5fe66967d3c4f806e2949fb6333a66 394b07e5de5a07d32a37b3f5a4350f5c 59c630eae1302a4a3e28407b925cf761 4b9bcf9320b4e35940618ad7fc2ee940 3f976d3f2cd5c5ba36ef132811dfed88 92941b7fb512479e2d9867a716d71297 -----END OpenVPN Static key V1----- 2008 년 10 월 26 일제 12 회 LUG 세미나 14

Seoul-Jeonju Config dev tun0 port 1194 ifconfig 10.1.0.1 10.1.0.2 route 10.10.2.0 255.255.255.0 secret static.key verb 4 comp-lzo keepalive 15 60 ping-timer-rem persist-tun persist-key user nobody group nogroup daemon status /var/log/openvpn/statickey_jeonju-status.log log /var/log/openvpn/statickey_jeonju.log log-append /var/log/openvpn/statickey_jeonju.log 2008년 10월 26일제12회 LUG 세미나 15

Seoul-Daegu Config dev tun1 port 1194 ifconfig 10.1.0.5 10.1.0.6 route 10.10.3.0 255.255.255.0 secret static.key verb 4 comp-lzo keepalive 15 60 ping-timer-rem persist-tun persist-key user nobody group nogroup daemon status /var/log/openvpn/statickey_daegu-status.log log /var/log/openvpn/statickey_daegu.log log-append /var/log/openvpn/statickey_daegu.log 2008년 10월 26일제12회 LUG 세미나 16

Config File Parameter dev tun0 # vpn 통신에 tun0 디바이스를사용한다. port 1194 # udp 1194 포트를이용해통신을한다.( 기본 udp 통신이다.) ifconfig 10.1.0.1 10.1.0.2 # tun0 의아이피를 10.1.0.1로설정하고, 상대편아이피는 # 10.1.0.2로지정한다. 상대측에서도동일하게설정되어야 # 한다. route 10.10.2.0 255.255.255.0 # tun0 디바이스를통해서 10.10.2.0/24의네트워크로 # 향하는라우팅경로를설정한다. secret static.key # 인증에사용할공유비밀키를지정한다. verb 4 # 로그레벨을지정한다. ( 기본값은 1이다.) # 0 : No output except fatal errors. # 1 to 4 : Normal usage range. # 5 : Output R and W characters to the console for each packet # read and write, uppercase is used for TCP/UDP packets and lower # case is used for TUN/TAP packets. # 6 to 11 : Debug info range (see errlevel.h for additional # information on debug levels). comp-lzo # 압축알고리즘을사용하여서로간에통신을한다. 2008 년 10 월 26 일제 12 회 LUG 세미나 17

Config File Parameter cont' keepalive 15 60 # 15초마다 ping을발송해서 60초동안응답이없으면원격지 # 네트워크가다운된것으로파악해서 restart한다. 네트워크환경에 # 따라서적절히선택한다. ping-timer-rem # daemon 모드로작동하면서상대편에서접근할때까지 ping 클럭을 # 계산하지않는다. persist-tun # ping-reset시에 TUN/TAP 디바이스를재시작하지않도록한다. persist-key # ping-reset 혹은 openvpn 재시작시키를다시읽어들이지않도록한다. user nobody # openvpn 데몬을 nobody 사용자권한으로실행시킨다. group nogroup # openvpn 데몬을 nogroup 그룹권한으로실행시킨다. # 사용자와그룹의권한을최소화시켜서보안을강화시킨다. daemon # 데몬모드로작동시켜서중요한정보들을로그파일에저장하도록한다. status /var/log/openvpn/statickey_jeonju-status.log # vpn 통계가저장된다. log /var/log/openvpn/statickey_jeonju.log # vpn 로그저장 log-append /var/log/openvpn/statickey_jeonju.log # 기존의로그에추가한다. 2008 년 10 월 26 일제 12 회 LUG 세미나 18

Jeonju Config Example remote 192.168.1.120 dev tun port 1194 ifconfig 10.1.0.2 10.1.0.1 route 10.0.0.0 255.0.0.0 secret static.key verb 4 comp-lzo keepalive 15 60 ping-timer-rem persist-tun persist-key user nobody group nogroup daemon status /var/log/openvpn/statickey_seoul-status.log log /var/log/openvpn/statickey_seoul.log log-append /var/log/openvpn/statickey_seoul.log 2008년 10월 26일제12회 LUG 세미나 19

Daegu Config Example remote 192.168.1.120 dev tun port 1195 ifconfig 10.1.0.6 10.1.0.5 route 10.0.0.0 255.0.0.0 secret static.key verb 4 comp-lzo keepalive 15 60 ping-timer-rem persist-tun persist-key user nobody group nogroup daemon status /var/log/openvpn/statickey_seoul-status.log log /var/log/openvpn/statickey_seoul.log log-append /var/log/openvpn/statickey_seoul.log 2008년 10월 26일제12회 LUG 세미나 20

Start OpenVPN Seoul seoul:~# /etc/init.d/openvpn start Starting virtual private network daemon: statickey-jeonju(ok) statickey-daegu(ok). Jeonju jeonju:~# /etc/init.d/openvpn start Starting virtual private network daemon: statickey-jeonju(ok). Daegu daegu:~# /etc/init.d/openvpn start Starting virtual private network daemon: statickey-daegu(ok). 2008 년 10 월 26 일제 12 회 LUG 세미나 21

VPN Interface of Seoul tun0 Link encap:unspec HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:10.1.0.1 P-t-P:10.1.0.2 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) tun1 Link encap:unspec HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:10.1.0.5 P-t-P:10.1.0.6 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) 2008 년 10 월 26 일제 12 회 LUG 세미나 22

VPN Port of Seoul seoul:~# netstat -putln Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1985/sshd udp 0 0 0.0.0.0:1194 0.0.0.0:* 3362/openvpn udp 0 0 0.0.0.0:1195 0.0.0.0:* 3353/openvpn udp 0 0 0.0.0.0:6000 0.0.0.0:* 3344/openvpn 2008 년 10 월 26 일제 12 회 LUG 세미나 23

Routing Table of Seoul seoul:/var/log/openvpn# netstat -nr Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 10.1.0.6 0.0.0.0 255.255.255.255 UH 0 0 0 tun1 10.1.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0 10.10.2.0 10.1.0.2 255.255.255.0 UG 0 0 0 tun0 10.10.3.0 10.1.0.6 255.255.255.0 UG 0 0 0 tun1 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 10.10.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2 10.100.1.0 0.0.0.0 255.255.255.0 U 0 0 0 tap0 0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth1 2008 년 10 월 26 일제 12 회 LUG 세미나 24

VPN Interface of Jeonju tun0 Link encap:unspec HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:10.1.0.2 P-t-P:10.1.0.1 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) 2008 년 10 월 26 일제 12 회 LUG 세미나 25

Routing Table & Port of Jeonju jeonju:~# netstat -nr Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 10.1.0.1 0.0.0.0 255.255.255.255 UH 0 0 0 tun0 10.10.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 10.0.0.0 10.1.0.1 255.0.0.0 UG 0 0 0 tun0 0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth1 jeonju:~# netstat -putln Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 6987/sshd udp 0 0 0.0.0.0:1194 0.0.0.0:* 7834/openvpn 2008 년 10 월 26 일제 12 회 LUG 세미나 26

VPN Interface of Daegu tun0 Link encap:unspec HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:10.1.0.6 P-t-P:10.1.0.5 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) 2008 년 10 월 26 일제 12 회 LUG 세미나 27

Routing Table & Port of Daegu daegu:~# netstat -nr Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 10.1.0.5 0.0.0.0 255.255.255.255 UH 0 0 0 tun0 10.10.3.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 10.0.0.0 10.1.0.5 255.0.0.0 UG 0 0 0 tun0 0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth1 daegu:~# netstat -putln Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 2929/sshd udp 0 0 0.0.0.0:1195 0.0.0.0:* 2990/openvpn 2008 년 10 월 26 일제 12 회 LUG 세미나 28

Seoul-Jeonju(A-B) Ping Test C:\>ping 10.10.2.10 # from seoul client to jeonju client Pinging 10.10.2.10 with 32 bytes of data: Reply from 10.10.2.10: bytes=32 time=55ms TTL=126 Reply from 10.10.2.10: bytes=32 time=1ms TTL=126 Reply from 10.10.2.10: bytes=32 time=1ms TTL=126 Reply from 10.10.2.10: bytes=32 time=15ms TTL=126 Ping statistics for 10.10.2.10: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 1ms, Maximum = 55ms, Average = 18ms 2008 년 10 월 26 일제 12 회 LUG 세미나 29

Seoul-Daegu(A-C) Ping Test C:\>ping 10.10.3.10 # from seoul client to daegu client Pinging 10.10.3.10 with 32 bytes of data: Reply from 10.10.3.10: bytes=32 time=51ms TTL=126 Reply from 10.10.3.10: bytes=32 time=1ms TTL=126 Reply from 10.10.3.10: bytes=32 time=10ms TTL=126 Reply from 10.10.3.10: bytes=32 time=1ms TTL=126 Ping statistics for 10.10.3.10: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 1ms, Maximum = 51ms, Average = 15ms 2008 년 10 월 26 일제 12 회 LUG 세미나 30

Jeonju-Daegu(B-C) Ping Test C:\>ping 10.10.3.10 ==> from jeonju client to daegu client Pinging 10.10.3.10 with 32 bytes of data: Reply from 10.10.3.10: bytes=32 time=5ms TTL=125 Reply from 10.10.3.10: bytes=32 time=17ms TTL=125 Reply from 10.10.3.10: bytes=32 time=1ms TTL=125 Reply from 10.10.3.10: bytes=32 time=3ms TTL=125 Ping statistics for 10.10.3.10: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 1ms, Maximum = 17ms, Average = 6ms 2008 년 10 월 26 일제 12 회 LUG 세미나 31

Packet Capture - encryption 2008 년 10 월 26 일제 12 회 LUG 세미나 32

Packet Capture - non encryption 2008 년 10 월 26 일제 12 회 LUG 세미나 33

2. Digital Signature (X.509 Certificate) 2008 년 10 월 26 일제 12 회 LUG 세미나 34

Make Certificates with OpenSSL openssl req nodes new x509 keyout seoul.key out seoul.csr openssl ca out seoul.crt in seoul.csr seoul 인증서 openssl req -nodes -new -x509 -keyout seoul.key -out seoul.csr -nodes : 개인키에암호를설정하지않는다.(-no des) -new : 새로운인증서를새로작성한다. -x509 : x.509 인증서를작성한다. -keyout : 생성되는개인키를지정한다. -out : 생성되는요청서를지정한다. 요청서에는공개키가포함되어있으며, 인증기관의개인키로서명을하면인증서로완성된다. openssl ca -out seoul.crt -in seoul.csr 인증기관의개인키로요청서에서명을하고 seoul.crt 인증서를생성한다. openssl req nodes new x509 keyout jeonju.key out jeonju.csr openssl ca out jeonju.crt in jeonju.csr openssl req nodes new x509 keyout daegu.key out daegu.csr openssl ca out daegu.crt in daegu.csr oopenssl dhparam out dh1024.pem 1024 jeonju 인증서 daegu 인증서 Diffie-Hellman 키교환암호키 2008 년 10 월 26 일제 12 회 LUG 세미나 35

Seoul-Jeonju Config dev tun0 proto udp port 1194 ifconfig 10.0.0.1 10.0.0.2 route 10.10.2.0 255.255.255.0 verb 7 comp-lzo keepalive 15 60 ping-timer-rem daemon ca keys/ca.crt cert keys/server.crt key keys/server.key dh keys/dh1024.pem tls-server user nobody group nogroup persist-key persist-tun status /var/log/openvpn/seoul-jeonjustatus.log log /var/log/openvpn/seoul-jeonju.log log-append /var/log/openvpn/seoul-jeonju.log 2008 년 10 월 26 일제 12 회 LUG 세미나 36

Seoul-Daegu Config dev tun1 proto udp port 1195 ifconfig 10.0.0.5 10.0.0.6 route 10.10.3.0 255.255.255.0 verb 7 comp-lzo keepalive 15 60 ping-timer-rem daemon ca keys/ca.crt cert keys/server.crt key keys/server.key dh keys/dh1024.pem tls-server user nobody group nogroup persist-key persist-tun status /var/log/openvpn/seoul-daegustatus.log log /var/log/openvpn/seoul-daegu.log log-append /var/log/openvpn/seoul-daegu.log 2008 년 10 월 26 일제 12 회 LUG 세미나 37

VPN Parameter dev tun0 # vpn 통신에 tun0 디바이스를사용한다. proto udp # udp 프로토콜을사용한다. port 1194 # udp 1194 포트를이용해통신을한다. # openvpn 은기본적으로 udp 프로토콜을이용한다. ifconfig 10.0.0.1 10.0.0.2 # tun0 의아이피를 10.0.0.1로설정하고, # 상대편아이피는10.0.0.2로지정한다. # 상대측에서도동일하게설정되어야한다. route 10.10.2.0 255.255.255.0 # tun0 디바이스를통해서 10.10.2.0/24의 # 네트워크로향하는라우팅경로를설정한다. ca keys/ca.crt cert keys/server.crt key keys/server.key dh keys/dh1024.pem # 루트인증서지정 # 서버인증서지정 # 서버개인키지정 # 키교환알고리즘지정 tls-server # 인증서기반의 VPN 에서서로간의키교환을위한역할을지정하는데, # 본예제에서는 seoul 을 tls-server 로지정하고 jeonju, daegu 는 # tls-client 로지정한다. daemon # 데몬모드로작동시켜서중요한정보들을로그파일에저장하도록한다. 2008 년 10 월 26 일제 12 회 LUG 세미나 38

VPN Parameter cont verb 7 # 로그레벨을지정한다. ( 기본값은 1 이다.) # 0 -- No output except fatal errors. # 1 to 4 -- Normal usage range. # 5 -- Output R and W characters to the console for each packet # read and write, uppercase is used for TCP/UDP packets and lower # case is used for TUN/TAP packets. # 6 to 11 -- Debug info range (see errlevel.h for additional in # formation on debug levels). comp-lzo # 압축알고리즘을사용해서통신을한다. keepalive 15 60 ping-timer-rem # 15 초마다 ping 을발송해서 60 초동안응답이없으면원격지 # 네트워크가다운된것으로파악해서 restart 한다. # 네트워크환경에따라서적절히선택한다. # daemon 모드로작동하면서상대편에서접근할때까지 # ping 클럭을계산하지않는다. user nobody # openvpn 데몬을 nobody 사용자권한으로실행시킨다. group nogroup # openvpn 데몬을 nogroup 그룹권한으로실행시킨다. # 사용자와그룹의권한을최소화시켜서보안을강화시킨다. 2008 년 10 월 26 일제 12 회 LUG 세미나 39

VPN Parameter cont persist-tun persist-key # ping-reset 시에 TUN/TAP 디바이스를재시작하지 # 않도록한다. # ping-reset 혹은 openvpn 재시작시키를다시읽어들이지 # 않도록한다. status /var/log/openvpn/statickey_jeonju-status.log # vpn 통계가저장된다. log /var/log/openvpn/statickey_jeonju.log # vpn 로그저장 log-append /var/log/openvpn/statickey_jeonju.log # 기존의로그에추가한다. 2008 년 10 월 26 일제 12 회 LUG 세미나 40

Jeonju Config Example remote 192.168.1.120 # VPN 서버를지정한다. proto udp port 1194 dev tun0 ifconfig 10.0.0.2 10.0.0.1 route 10.0.0.0 255.0.0.0 verb 7 comp-lzo keepalive 15 60 ping-timer-rem daemon ca keys/ca.crt cert keys/jeonju.crt key keys/jeonju.key tls-client # 인증서기반의 VPN에서키교환시 # 클라이언트로설정한다. user nobody group nogroup persist-key persist-tun status /var/log/openvpn/openvpn-status.log log /var/log/openvpn/openvpn.log log-append /var/log/openvpn/openvpn.log 2008 년 10 월 26 일제 12 회 LUG 세미나 41

Daegu Config Example remote 192.168.1.120 proto udp port 1195 dev tun0 ifconfig 10.0.0.6 10.0.0.5 route 10.0.0.0 255.0.0.0 verb 7 comp-lzo keepalive 15 60 ping-timer-rem daemon ca keys/ca.crt cert keys/daegu.crt key keys/daegu.key tls-client user nobody group nogroup persist-key persist-tun status /var/log/openvpn/openvpn-status.log log /var/log/openvpn/openvpn.log log-append /var/log/openvpn/openvpn.log 2008 년 10 월 26 일제 12 회 LUG 세미나 42

Firewall & Packet Forwarding iptables -I INPUT -p udp -dport 1194 -j ACCEPT # 1194번으로들어오는 udp 트래픽허용 iptables -I INPUT -p udp -dport 1195 -j ACCEPT # 1195번으로들어오는 udp 트래픽허용 iptables -I INPUT -i tun+ -j ACCEPT # tun(0,1,2,...) 디바이스로들어오는트래픽허용 iptables -I OUTPUT -o tun+ -j ACCEPT # tun(0,1,2,...) 디바이스로나가는트래픽허용 iptables -I INPUT -i tap+ -j ACCEPT # tap(0,1,2,...) 디바이스로들어오는트래픽허용 iptables -I OUTPUT -o tap+ -j ACCEPT # tap(0,1,2,...) 디바이스로나가는트래픽허용 - iptables 방화벽정책을설정하고, VPN 통신과관련된모든트래픽을허용 sysctl -w net.ipv4.ip_forward=1 또는, echo 1 > /proc/sys/net/ipv4/ip_forward - VPN 서버가패킷을전달할수있도록패킷포워딩기능을활성화 VPN 서버는각내부네트워크에대한게이트웨이 ( 라우터 ) 역할을하므로반드시패킷포워딩기능이가능해야함. - sysctl 시스템유틸리티를이용하거나 echo 명령어를이용해서직접커널파라미터를수정한다. 2008 년 10 월 26 일제 12 회 LUG 세미나 43

Remote Access VPN 2008 년 10 월 26 일제 12 회 LUG 세미나 44

1. X.509 Certificate 2008 년 10 월 26 일제 12 회 LUG 세미나 45

Install OpenVPN GUI downloading from http://www.openvpn.se NOTICE 1. config file should exist $install_dir\config directory 2. There're sample config files in $install_dir\sample directory 3. config file extension is 'ovpn'('ovpn' is windows openvpn config file extension) during installation we should install 'tap' device. Make Client Certificate openssl req -nodes -new -x509 -keyout testuser.key -out testuser.csr openssl ca -out testuser.crt -in testuser.csr 2008 년 10 월 26 일제 12 회 LUG 세미나 46

Server Configuration dev tap0 proto udp port 6000 keepalive 15 60 daemon mode server ifconfig 10.100.1.1 255.255.255.0 ifconfig-pool 10.100.1.51 10.100.1.100 push "route 10.0.0.0 255.0.0.0" push "route-gateway 10.100.1.1" push "dhcp-option DNS 10.10.1.200" client-to-client max-clients 20 verb 7 comp-lzo ping-timer-rem tls-server ca keys/ca.crt cert keys/server.crt key keys/server.key dh keys/dh1024.pem user nobody group nogroup persist-key persist-tun status /var/log/openvpn/remoteaccess-status.log log /var/log/openvpn/remoteaccess.log log-append /var/log/openvpn/remoteaccess.log 2008 년 10 월 26 일제 12 회 LUG 세미나 47

Server VPN Parameter dev tap0 # VPN 통신에 tap0 디바이스를사용한다. proto udp # udp 프로토콜을사용한다. port 6000 # 6000번포트를사용해서 VPN 통신을한다. keepalive 15 60 # 15초마다 ping을발송해서 60초동안응답이없으면원격지 # 네트워크가다운된것으로파악해서 restart한다. 네트워크환경에 # 따라서적절히선택한다. daemon # daemon 모드로실행시켜서모든에러나출력메시지들을로그에저장한다. mode server # openvpn 은 site-to-site에서봤듯이기본이 point-to-point 방식이다. # remote access 와같이다중클라이언트를지원하기위해서는 server # 모드를선택한다. ifconfig 10.100.1.1 255.255.255.0 # tap0 디바이스의아이피주소를설정한다. ifconfig-pool 10.100.1.51 10.100.1.100 # 접속하는클라이언트에할당할 ip 영역 ( 풀 ) 을 # 설정한다. 클라이언트는 10.100.1.51부터 100까지 # 차례로 ip를할당받는다. 2008년 10월 26일제12회 LUG 세미나 48

Server VPN Parameter cont push "route 10.0.0.0 255.0.0.0" # 클라이언트의라우팅경로정책을설정한다. push "route-gateway 10.100.1.1" # 클라이언트의라우팅게이트웨이를설정한다. push "dhcp-option DNS 10.10.1.200" # 클라이언트의 DNS 아이피를설정한다. client-to-client # 접속한클라이언트간통신을가능하게한다. max-clients 20 # 동시에접속가능한클라이언트의갯수를지정한다. verb 7 # 로그레벨을 7로설정한다. comp-lzo # 압축알고리즘을사용하여통신을수행한다. ping-timer-rem # 클라이언트가접속할때까지는 ping timer 를작동시키지않는다. tls-server # 서버모드의 vpn 에서인증서기반의인증을수행하기위해서설정한다. ca keys/ca.crt # 루트인증서지정 cert keys/server.crt # 서버인증서지정 key keys/server.key # 서버의개인키지정 dh keys/dh1024.pem # 키교환알고리즘지정 2008 년 10 월 26 일제 12 회 LUG 세미나 49

Server VPN Parameter cont user nobody # 서버의실행유저권한을 nobody로설정한다. group nogroup # 서버의실행그룹권한을 nogroup으로설정한다. persist-key # 재시작시키를다시읽지않는다. persist-tun status /var/log/openvpn/remoteaccess-status.log log /var/log/openvpn/remoteaccess.log log-append /var/log/openvpn/remoteaccess.log 2008 년 10 월 26 일제 12 회 LUG 세미나 50

Client Configuration remote 192.168.1.120 # 접속할서버의주소를지정한다. port 6000 # 서버의포트를지정한다. proto udp # udp 프로토콜을사용한다. dev tap0 # 통신에사용할디바이스로는 tap0를사용한다. dev-node "tap0" # tap0 디바이스의이름을지정한다. client # 클라이언트로지정한다. comp-lzo # 압축알고리즘을사용하여통신을수행한다. persist-key persist-tun ca ca.crt cert testuser.crt key testuser.key Verb 7 2008 년 10 월 26 일제 12 회 LUG 세미나 51

Start OpenVPN Server(OpenVPN) seoul:/etc/openvpn# /etc/init.d/openvpn start Starting virtual private network daemon: remoteaccess(ok) seoul-daegu(ok) seoul-jeonju(ok). Client(OpenVPN GUI) 태스크바의 OpenVPN GUI 아이콘을마우스우측버튼으로선택하고 Connect 버튼을클릭한다. VPN 접속에성공하면아이콘은녹색으로변한다. 2008 년 10 월 26 일제 12 회 LUG 세미나 52

VPN Interface of Server tap0 Link encap:ethernet HWaddr FA:D4:C6:DF:3E:1F inet addr:10.100.1.1 Bcast:10.100.1.255 Mask:255.255.255.0 inet6 addr: fe80::f8d4:c6ff:fedf:3e1f/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:69 errors:0 dropped:0 overruns:0 frame:0 TX packets:12 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:9921 (9.6 KiB) TX bytes:848 (848.0 b) 2008 년 10 월 26 일제 12 회 LUG 세미나 53

VPN Interface of Client C:\>ipconfig /all Ethernet adapter tap0: Connection-specific DNS Suffix. : Description........... : TAP-Win32 Adapter V8 Physical Address......... : 00-FF-08-69-01-75 Dhcp Enabled........... : Yes Autoconfiguration Enabled.... : Yes IP Address............ : 10.100.1.51 Subnet Mask........... : 255.255.255.0 Default Gateway......... : DHCP Server........... : 10.100.1.0 DNS Servers........... : 10.10.1.200 2008 년 10 월 26 일제 12 회 LUG 세미나 54

Routing Table of Client C:\>route print Network Destination Netmask Gateway Interface Metric 0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.16 10 10.0.0.0 255.0.0.0 10.100.1.1 10.100.1.51 1 10.100.1.0 255.255.255.0 10.100.1.51 10.100.1.51 30 10.100.1.51 255.255.255.255 127.0.0.1 127.0.0.1 30 10.255.255.255 255.255.255.255 10.100.1.51 10.100.1.51 30 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1 192.168.1.0 255.255.255.0 192.168.1.16 192.168.1.16 10 192.168.1.16 255.255.255.255 127.0.0.1 127.0.0.1 10 192.168.1.255 255.255.255.255 192.168.1.16 192.168.1.16 10 224.0.0.0 240.0.0.0 10.100.1.51 10.100.1.51 30 224.0.0.0 240.0.0.0 192.168.1.16 192.168.1.16 10 255.255.255.255 255.255.255.255 10.100.1.51 10.100.1.51 1 255.255.255.255 255.255.255.255 192.168.1.16 192.168.1.16 1 Default Gateway: 192.168.1.1 2008 년 10 월 26 일제 12 회 LUG 세미나 55

Ping Test C:\>ping 10.10.1.10 Pinging 10.10.1.10 with 32 bytes of data: Reply from 10.10.1.10: bytes=32 time=16ms TTL=127 Reply from 10.10.1.10: bytes=32 time=19ms TTL=127 Reply from 10.10.1.10: bytes=32 time=2ms TTL=127 Reply from 10.10.1.10: bytes=32 time=4ms TTL=127 Ping statistics for 10.10.1.10: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 2ms, Maximum = 19ms, Average = 10ms 2008 년 10 월 26 일제 12 회 LUG 세미나 56

Network Topology Configuration 2008 년 10 월 26 일제 12 회 LUG 세미나 57

VPN Interface of Seoul tap0 Link encap:ethernet HWaddr FA:D4:C6:DF:3E:1F inet addr:10.100.1.1 Bcast:10.100.1.255 Mask:255.255.255.0 inet6 addr: fe80::f8d4:c6ff:fedf:3e1f/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:88 errors:0 dropped:0 overruns:0 frame:0 TX packets:12 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:14107 (13.7 KiB) TX bytes:848 (848.0 b) tun0 Link encap:unspec HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:10.1.0.1 P-t-P:10.1.0.2 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) 2008 년 10 월 26 일제 12 회 LUG 세미나 58

VPN Interface of Seoul cont tun1 Link encap:unspec HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:10.1.0.5 P-t-P:10.1.0.6 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) # Brief of VPN Interface tap0 Link encap:ethernet HWaddr FA:D4:C6:DF:3E:1F inet addr:10.100.1.1 Bcast:10.100.1.255 Mask:255.255.255.0 tun0 Link encap:unspec HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:10.1.0.1 P-t-P:10.1.0.2 Mask:255.255.255.255 tun1 Link encap:unspec HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:10.1.0.5 P-t-P:10.1.0.6 Mask:255.255.255.255 2008 년 10 월 26 일제 12 회 LUG 세미나 59

Routing Table of Seoul seoul:~# netstat -nr Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 10.1.0.6 0.0.0.0 255.255.255.255 UH 0 0 0 tun1 10.1.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0 10.10.2.0 10.1.0.2 255.255.255.0 UG 0 0 0 tun0 10.10.3.0 10.1.0.6 255.255.255.0 UG 0 0 0 tun1 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 10.10.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2 10.100.1.0 0.0.0.0 255.255.255.0 U 0 0 0 tap0 0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth1 2008 년 10 월 26 일제 12 회 LUG 세미나 60

Routing Table of Client C:\>route print Network Destination Netmask Gateway Interface Metric 0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.16 10 10.0.0.0 255.0.0.0 10.100.1.1 10.100.1.51 1 10.100.1.0 255.255.255.0 10.100.1.51 10.100.1.51 30 10.100.1.51 255.255.255.255 127.0.0.1 127.0.0.1 30 10.255.255.255 255.255.255.255 10.100.1.51 10.100.1.51 30 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1 192.168.1.0 255.255.255.0 192.168.1.16 192.168.1.16 10 192.168.1.16 255.255.255.255 127.0.0.1 127.0.0.1 10 192.168.1.255 255.255.255.255 192.168.1.16 192.168.1.16 10 224.0.0.0 240.0.0.0 10.100.1.51 10.100.1.51 30 224.0.0.0 240.0.0.0 192.168.1.16 192.168.1.16 10 255.255.255.255 255.255.255.255 10.100.1.51 10.100.1.51 1 255.255.255.255 255.255.255.255 192.168.1.16 192.168.1.16 1 Default Gateway: 192.168.1.1 2008년 10월 26일 제12회 LUG 세미나 61

Ping Test(D-A) C:\>ping 10.10.1.10 Pinging 10.10.1.10 with 32 bytes of data: Reply from 10.10.1.10: bytes=32 time=3ms TTL=127 tls-client Reply from 10.10.1.10: bytes=32 time=2ms TTL=127 Reply from 10.10.1.10: bytes=32 time=2ms TTL=127 Reply from 10.10.1.10: bytes=32 time=3ms TTL=127 Ping statistics for 10.10.1.10: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 2ms, Maximum = 3ms, Average = 2ms 2008 년 10 월 26 일제 12 회 LUG 세미나 62

Ping Test cont (D-B) C:\>ping 10.10.2.10 Pinging 10.10.2.10 with 32 bytes of data: Reply from 10.10.2.10: bytes=32 time=4ms TTL=126 tls-client Reply from 10.10.2.10: bytes=32 time=2ms TTL=126 Reply from 10.10.2.10: bytes=32 time=2ms TTL=126 Reply from 10.10.2.10: bytes=32 time=3ms TTL=126 Ping statistics for 10.10.2.10: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 2ms, Maximum = 4ms, Average = 2ms 2008 년 10 월 26 일제 12 회 LUG 세미나 63

Ping Test cont (D-C) C:\>ping 10.10.3.10 Pinging 10.10.3.10 with 32 bytes of data: Reply from 10.10.3.10: bytes=32 time=2ms TTL=126 Reply from 10.10.3.10: bytes=32 time=2ms TTL=126 Reply from 10.10.3.10: bytes=32 time=2ms TTL=126 Reply from 10.10.3.10: bytes=32 time=3ms TTL=126 Ping statistics for 10.10.3.10: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 2ms, Maximum = 3ms, Average = 2ms 2008 년 10 월 26 일제 12 회 LUG 세미나 64

Troubleshooting 인증서기반의 vpn 이실패하면, 설정파일을제대로설정했는지먼저확인한다. ( 대부분설정파일에서문제가발생한다.) 로그를확인해서 openvpn 커뮤니티검색을통해문제점의원인을파악하도록한다. openvpn 설정파일의로그레벨 (verb 옵션 ) 을높여서가급적상세한정보를얻도록한다. 시스템의시간설정이정확한지확인하고, 시간대를통일한다. ( 다른지역에떨어져있다하더라도시간대를통일한다.) 해결이잘되지않는경우인증서를새로만들어서배포하면문제가쉽게해결되는경우가있다. 2008 년 10 월 26 일제 12 회 LUG 세미나 65

Reference Webpage & online 교 http://www.openvpn.net(openvpn homepage) http://www.openvpn.se(openvpn GUI homepage) http://www.dd-wrt.com(dd-wrt homepage) http://www.kldp.org(openssl howto 참조 ) http://www.openssl.org(openssl manual 참조 ) openvpn manpage Book 네트워크보안프로토콜 ( 교학사, 윤종호저 ) 리눅스서버보안관리실무 ( 수퍼유저코리아, 홍석범저 ) 2008 년 10 월 26 일제 12 회 LUG 세미나 66