★ 들어가는 글



집에서 회사의 PC에 네트워크 드라이브를 연결하고 싶거나 회사 네트웍상에 있는 것 같은 효과를 내기 위해서는 VPN(Virtual Private Network)을 사용하면 된다. 윈도우는 VPN서버에 접속할 수 있는 기능을 기본으로 내장하고 있다. 검색을 통하면 쉽게 알 수 있다.

나도 테스트를 하기 위해 윈도우의 내장 VPN을 가지고 서버에 접속해 보았다. 하지만, 접속이 되지 않았다. 아이폰으로도 집의 와이파이 상태에서 접속해 보았으나 되지 않았다. 단, 3G 상태에서는 접속이 되었다. 이상하게 생각되어 검색을 했더니 공유기 밑에 물려있는 경우는 PPTP방식의 VPN을 통과시켜주는 기능이 없어서 접속이 되지 않을 수도 있다고 결론이 났다.

그러면 방법이 없을까? 검색 끝에 OpenVPN이 있다는 것을 발견했다. 이는 NAT환경 하에서도 거의 접속 가능하다고 되었다. 그래서 테스트삼아 윈도우에 VPN서버를 구축해 보고 접속해 보았다. 처음에는 생소하여 여러 번 실패하였다. 나중에 또 실패하지 않기 위해 포스팅으로 문서화해 놓는다.



★ 서버환경



VPN서버를 구축할 환경은 다음과 같다.

환경
  1. OS : Windows7 Professional K
  2. 메모리 : 4GB



★ OpenVPN 다운로드 및 설치



VPN을 구축하기 위해서는 이를 서비스해주는 소프트웨어가 필요하다. 다음 경로로 가서 최신 버전을 다운로드 받도록 한다.


아래와 같은 화면이 나오면 윈도우용 인스톨 버전을 다운받도록 한다. 현 시점(2012.06.10)의 최신버전은 2.2.2 였다.

윈도우용 인스톨러 버전 다운로드


다운로드 하였으면 설치를 시작한다. 설치시 특별한 것은 없고 next 를 눌러서 계속 진행하면 설치가 완료된다.



★ 서버 설정



윈도우7에서 설치를 하였을 경우 프로그램 폴더의 권한을 조정해야 한다. OpenVPN이 설치된 폴더에서 우클릭하여 속성으로 들어가 다음과 같이 Users 그룹을 클릭하고 [편집] 버튼을 클릭한다.

속성


다음과 같은 화면이 나타나면 Users그룹을 선택하고 모든권한 허용을 클릭하도록 한다. 그리고 확인을 클릭한다.

폴더 접근권한 설정


이 과정을 TrustedInstaller 그룹에게도 동일하게 해준다. 모든 권한을 주어야 한다. 그렇지 않으면 이상하게도 설정파일들을 수정하고 저장하여도 저장이 되지 않는 경우가 발생한다. 이상없이 저장되면 굳이 할 필요 없는 작업이다.


작업을 수행하였으면 프로그램이 설치된 폴더(C:\Program Files\OpenVPN) 밑의 easy-rsa 폴더로 이동한다.


1. 설정파일 초기화

설정파일들을 초기화하기 위해 다음과 같이 init-config 명령을 수행한다.

init-config.bat 실행


그리고 vars 명령을 수행한다.

vars.bat 실행


다음으로 clean-all을 실행해준다. 기존의 설정 파일을 모두 삭제하기 위해서이다. 그러면 기존 설정을 모두 삭제하고 easy-rsa폴더 밑에 keys라는 폴더를 생성하게 된다.

clean-all.bat 실행


2.  Root CA (Certificatie Authority) 생성

이 작업을 하기에 앞서 vars.bat 파일을 편집기로 열어 맨 아래로 가면 국가와 시 등을 변수로 잡는 부분이 있는데 변경하여 놓으면 앞으로 인증서를 만들 때 기본값으로 사용할 수 있어 편리하다. 해도 되고 안해도 된다.

루트 CA를 생성하기 위해 build-ca를 입력하여 실행한다. 그러면 여러가지를 물어보는데 적당히 입력하면 되고, [Common Name]은 앞으로 만들 인증서와 중복되면 안되므로 유일한 값으로 정하여 입력하여야 한다.

루트 CA 생성


3. 서버키 생성

다음, 서버키를 장성하기 위해 build-key-server server 명령을 실행한다. 역시 앞에서 입력한 것과 비슷한 것이 질문으로 나오며 [Common Name]만 다르게 해서 입력한다.

서버키 작성


4. DH Parameter 생성

다음가 같이 build-dh를 실행하면 keys 폴더 밑에 dh1024.pem 파일이 생성된다.

DH Parameter 생성


5. ta키 생성

keys 폴더로 이동하여 openvpn --genkey --secret ta.key 를 수행한다. 그러면 ta.key 파일이 생성된다.

ta키 생성


6. 인증서 및 키파일 복사

c:\Program Files\OpenVPN\config 폴더에 다음 파일을 복사한다.

    • ca.crt
    • ca.key
    • dh1024.pem
    • ta.key
    • server.crt
    • server.key


7. 서버 config파일 설정

1) c:\Program Files\OpenVPN\sample-config 폴더에서 server.ovpn 파일을 c:\Program Files\OpenVPN\config 폴더로 복사한다.

2) 복사한 server.ovpn 파일을 편집기로 열어서 다음 항목을 찾아(Ctrl+F) 필요한 값을 변경한다.
    - port : VPN서비스를 위한 포트
    - proto : TCP 또는 UDP를 선택
    - tls-auth ta.key 0 : 맨 앞의 세미콜론을 제거
    - cipher BF-CBC : 맨 앞의 세미콜론을 제거

8. 서버의 실행

 c:\Program Files\OpenVPN\config 폴더에서 openvpn server.ovpn을 입력하여 서버를 실행한다. 그리고 특별한 에러메세지가 나오지 않는지 확인한다. 만약 윈도우7에서 메세지 중 권한상승 어쩌구 메세지가 보이면, 커맨드 창을 관리자 권한으로 실행하여 다시한번 수행해 보길 바란다.

이상이 없다면 커맨드 창을 종료해도 된다. VPN서버는 윈도우의 서비스로 등록되어 있으니 그 항목을 시작하면 VPN서버는 시작되게 된다. 제어판 > 관리도구 > 서비스를 클릭하면 "OpenVPN Service" 이라는 이름으로 서비스가 등록되어 있을 것이다. 시작유형을 '자동'으로 변경하면 부팅시 시작된다.

서비스로 등록된 OpenVPN


★ 클라이언트 설정



서버측 설정이 끝났으면, 클라이언트에서 사용할수 있도록 환경을 구성하여야 한다. 서버에 설치한 동일한 파일을 클라이언트 PC에 설치한다. 그리고 서버에서 생성한 클라이언트 인증서 및 키를 복사해 넣어야 한다.


1. 서버에서 클라이언트 인증서 및 키 생성

서버의 easy-rsa 폴어에서 build-key client1 라는 명령을 수행한다. 접속하는 클라이언트의 수 만큼 이 작업을 해주면 복수의 인증서 및 키가 생성되므로 각각의 클라이언트에 사용된다. 위에서 본 것과 같이 동일한 사항을 묻는데, Common Name만 다르게 해서 생성해 주면 무리없이 진행된다.

클라이언트 인증서 및 키 생성


2. 인증서 및 키파일 복사

생성된 인증서 및 키 파일을 클라이언트의 config 폴더에 복사한다. 파일 목록은 다음과 같다.

  • ca.crt
  • ca.key
  • client1.key
  • client1.crt
  • ta.key


3. 클라이언트 config파일 설정

1) 클라이언트의 c:\Program Files\OpenVPN\sample-config 폴더에서 client.ovpn 파일을 config 폴더로 복사한다.

2) 나중에 혹시 있을지 모르는 복수의 접속을 위해 client1.ovpn 으로 파일명을 변경해 준다.

3) 복사한 client1.ovpn 파일을 편집기로 열어서 다음 항목을 찾아(Ctrl+F) 필요한 값을 변경한다.
    - proto : TCP 또는 UDP를 선택(서버의 설정에 맞춘다)
    - remote : 서버의 IP. 형식은 [IP Port] 의 형식임(콜론이 없음에 주의).
    - cert : 인증서 파일. client1.crt로 변경
    - key : 키 파일. client1.key로 변경
    - tls-auth ta.key 0 : 맨 앞의 세미콜론을 제거
    - cipher : 맨 앞의 세미콜론을 제거하고  BF-CBC 로 맞춰줌



★ 접속



1. 서버에 접속

모든 작업을 했다면 서버에 접속해본다. 클라이언트의 config폴더에서 openvpn client1.ovpn를 실행하면 주르르륵~ 문자열과 함께 연결되었다는 것을 볼 수 있다. 이를 보다 쉽게 하려면 OpenVPN GUI를 실행하여 우측 하단의 트레이에서 'Connect'를 클릭하면 바로 연결된다. 이상이 없으면 녹색 불이 켜진다.

서버는 기본 설정으로 하였으므로 IP가 10.8.0.1로 잡힌다. 핑테스트를 하면 가능할 것이다(윈도우 방화벽에서 열어놨으면).


2. 사용

서버에 VPN으로 접속이 되었으면, 공유폴더를 잡아놓고 집에서 네트워크 드라이브처럼 접속하여 사용할 수 있다. 물론 윈도우 방화벽에서 적절히 해당 기능을 풀어주어야 가능하다. 이는 검색을 이용해서 해보도록 한다.


참고 사이트는 다음과 같다. 좋은 포스팅 해주신 분들께 감사드린다.







Posted by Life 스토리
TAG openvpn, VPN

한문학자 장유승의 길에서 만난 고전 : 2012년 6월 8일

임진왜란때 포로가 되어 일본으로 끌려갔던 강항(姜沆) 이라는 사람이 있습니다. 포로생활의 견문을 기록한 《간양록(看羊錄)》이라는 책으로 유명합니다. 이분이 3년만에 조선으로 돌아와 고향에 살면서 이런 글을 썼습니다.

"나는 농부가 된 이래로 소를 길러본 적이 없었다. 해마다 봄이되면 밭을 갈려고 이웃에게 소를 빌렸다. 이웃들은 내가 너무 자주 빌려간다며 원망했고 나는 먹고 살기 위해 남에게 누를 끼치는 것이 부끄러웠다. 그러다 흉년이 들어 쌀값이 폭등하는 바람에 소작으로 받은 쌀로 암소 한마리를 샀다. 이듬해 보릿고개에는 끼니가 부족했지만 마음은 편안하였다. 어느날 소작인이 콩을 가져왔는데 소가 한밤중에 코뚜레를 물어 뜯고는 섬돌 위로 올라가 콩을 훔쳐 먹었다. 그런데 욕심을 다 채울 때 까지 멈추질 않는 것이었다. 그러더니 사흘이 지나자 배가 터져 죽고 말았다. 나는 노비들이 게을러 제때 여물을 주지 않아 소가 굶어 죽는 것만 걱정했지 배가 터져 죽을줄은 생각지도 못했다. 소야 원래 어리석으니 탓할 수 없지만 사람은 만물의 영장인데도 배가 터져 죽는 경우가 있다. '시경의 녹봉을 받고도 사양할 줄 모르면 망한다' 라는 말이 있고, '어린 아이의 병은 너무 많이 먹는데서 생긴다' 라는 말도 있다. 이 글을 써서 나 자신의 경계로 삼는다.

소를 너무 귀하게 여기다 보니 항상 먹을 것이 부족해 굶어 죽지 않을까 걱정했을 뿐, 너무 먹다가 배가 터져 죽을줄은 생각지도 못했던 것입니다.

소에 비유하긴 좀 그렇지만, 아이를 키우면서도 비슷한 잘못을 저지르는 경우가 많습니다. 요즘은 영양실조에 걸린 아이보다 소아비만에 걸린 아이가 많습니다. 부모는 아이가 많이 먹고 건강해지기를 바라지만, 먹는 것도 지나치면 좋을 턱이 없습니다. 아이가 공부 잘하기를 바라는 마음에 시작한 조기교육도 자칫하면 아이의 정서에 악영향을 미칠 수 있습니다. 영어유치원 10곳이 생기면 소아정신과 한 곳이 생긴다는 말은 농담이 아닙니다. 근심은 항상 뜻하지 않은 곳에서 생기기 마련입니다.

출처 : TBS FM '열린아침 송정애 입니다' 중에서.


※ 퍼가실 때에는 출저를 밝혀주시기 바랍니다.


Posted by Life 스토리

한문학자 장유승의 길에서 만난 고전 : 2012년 6월 7일

친족간의 유대가 유난히 강한 우리나라에서는 예로부터 친인척 관계에 있는 사람들이 같은 관청에 근무하지 못하도록 하는 제도가 있었습니다. 이것을 상피제라고 합니다. 서로 피하는 제도라는 상피제는 사촌 이내의 친척, 또는 혼인관계로 맺어진 사람들의 경우 같은 관청은 물론 상하관계에 있는 관청이나 소관업무가 유사한 관청에서도 근무하지 못하게 하는 엄격한 제도였습니다. 인사이동으로 어쩌다가 친인척이 직무상 연관이 있는 관청에 근무하게 되면 두 사람중 관직이 낮은 사람을 다른 곳으로 전출하는 것이 관례였습니다. 감찰업무를 맡은 기관은 상피제를 더욱 엄격하게 적용했고, 돈과 곡식을 관리하는 관직은 전임자의 친인척이 후임자가 되는 것도 금지했습니다. 과거시험의 시험관과 응시자도 상피하는 것이 원칙이었습니다. 조선 말기에 공직기강이 문란해진 것은 이 원칙이 무너지면서 발생한 현상입니다.

지금 공식적인 제도로서의 상피제는 사라졌습니다. 하지만 사람들의 관념에 상피제에 대한 요구가 여전히 남아있다는 사실은 주의를 요합니다. 고위 공무원과 하급 공무원이, 시험관과 수험생이, 사장과 직원이 친인척 관계라면 일단 색안경을 끼고 보게 됩니다. 법적으로 아무 문제가 없고, 공사를 명확히 구분하는 사람의 입장에서는 억울할 수도 있겠지만 일부 공직자들이 제도의 헛점을 악용하여 친인척을 우대하는 것도 사실입니다.

한 지방자치단체가 기능직 공무원으로 채용한 사람들의 절반이 간부 공무원의 친인척이라는 사실이 드러나 논란이 되고 있습니다. 지자체에서는 선발과정이 공정하여 법적으로 아무런 문제가 없다고 주장하지만, 의혹을 해소하기에는 역부족입니다. 외교부장관이 딸을 특채로 외교부에 채용한 사실이 밝혀져 물러난 것이 불과 2년 전의 일입니다. 헌법에 보장된 직업선택의 자유를 침해한다는 반론도 있지만, 비슷한 자리가 얼마든지 있는데 낙하산이라는 오명을 뒤집어 쓰고 물의를 일으키면서까지 굳이 의심을 살만한 처신을 하는 것도 바람직하지 않습니다. 꼭 부정을 저지를 소지가 있어서라기보다는 불필요한 논란을 막기 위해서라도 상피제의 취지를 되살려보는 것이 어떨까 합니다.

출처 : TBS FM '열린아침 송정애 입니다' 중에서.


※ 퍼가실 때에는 출저를 밝혀주시기 바랍니다.


Posted by Life 스토리