OpenVPN 서버 구축 #1. 개요

OpenVPN 서버 구축 #2. 서버 설치 및 설정

가상사설망(假想私設網) 또는 VPN(영어: virtual private network)은 공중 네트워크를 통해 한 회사나 몇몇 단체가 내용을 바깥 사람에게 드러내지 않고 통신할 목적으로 쓰이는 사설 통신망이다.가상 사설망에서 메시지는 인터넷과 같은 공공망 위에서 표준 프로토콜을 써서 전달되거나, 가상 사설망 서비스 제공자와 고객이 서비스 수준 계약을 맺은 후 서비스 제공자의 사설망을 통해 전달된다.

가상 사설망의 등장배경은 인터넷을 기반으로 한 기업 업무환경의 변화에 기인한다. 즉, 소규모 지역에서 문서만을 전달하던 업무처리 기반에서 하나의 건물 내의 네트워크를 이용한 업무로, 다시 본사와 다수의 지사 관계, 또한 지사는 국내 지사와 국외 지사로 확장되었다. 이들이 하나의 네트워크 구축을 위해 기존 전용선을 사용하는 방법에는 비용을 포함한 여러가지 한계를 가지며, 전용선을 이용해서 네트워크가 구성되었다고 하더라도 네트워크 운영을 자체적으로 하는 것과 새로운 기술들을 도입하는 것 역시 기업의 입장에서는 상당한 부담이 될 수 있다. 또한 기존의 공중 네트워크는 보안과 관련해서는 서비스를 제공하지 않기 때문에 중요한 문서나 데이터를 전달하기에는 부족한 점이 있었다. 이러한 복합적인 이유가 가상 사설망이 등장한 계기가 되었다.1위키백과에서 발췌

왜 VPN이 생겨났는가는 단순하다.
A라는 회사가 있다고 생각해보자. 최첨단 산업을 선도하는 A사는 시간이 흐르면서 회사의 규모도 커지고 직원도 늘어나면서 서울에 본사 뿐 아니라 미국, 중국, 영국 등 세계 각국의 주요 거점에도 지사를 세우게 됐다.

서울 본사만 있을 때는 사내망 관리만 하면 됐지만 미국지사와 중요한 자료를 주고받으려니 일반망으로 데이터를 주고 받자니 중간에 패킷을 가로채거나 하는 공격의 위험이 크고, 서울에서 미국까지 전용선을 설치하자니 너무 비용이 많이 든다.

이러한 상황에서의 보안 요건을 충족하기 위한 것이 바로 Virtual Private Network 되시겠다.
즉, 일반망을 사용하되, 암호화 등의 조치를 통해 본사와 미국지사 사이의 연결이 사설망인 것 처럼 동작하게 하는 것, 그것이 VPN이다.


PPPTP / L2TP / IPSEC / SSL 등의 방식이 있으며, 근래에는 IPSEC, SSL 두 종류로 수렴하는 듯 한다.
가장 많이 쓰이는 IPSEC / SSL 방식 VPN의 차이를 찾자면
– SSL 방식이건 IPSEC이건 모두 암호화방식이나, 터널 개념에 있어서 큰 차이는 없다.

이건 SSL-VPN

– 클라이언트와 대상 망의 VPN 서버와 터널을 맺고 암호화 통신을 한다.

이건 IPSEC

– 양자간 각각의 VPN server를 두고 각 VPN 서버끼리 터널을 맺고 통신을 한다.

사진을 찍자 – #4. 구도

사진을 찍자 – #1. 개요 그리고 잡설

사진을 찍자 – #2. 사진기 살펴보기

사진을 찍자 – #3. 노출

求道 아니고, 舊都도 아니고 構圖. 비단 사진에만 해당 하는 것은 아니고 그림을 그릴 때에도 해당한다. 사진이나 그림 모두 결국 정해진 틀 안에 대상이 담기므로 표현하고자 하는 대상의 형태나 위치 색감 등을 고려한 짜임새를 말한다.

(필자는 전문가가 아니고 또 이 글은 전문가를 위한 글이 결코 아니니까..)
어렵게 생각하지 말고 우선 이것을 머리속에 담아두자.

사진을 찍건 그림을 그리건 일단 모두 ‘사각형의 틀’ 안에 담긴 다는 사실은 변하지 않는다. 1(당췌 이해 안되는 설치 미술이나 이런거라던가… 360카메라는 빼고.. ) 사진을 찍을 때 LCD나 뷰파인더에 저런 선이 있다고 생각하고 시작하면 된다. 2SLR의 경우는 그리그가 새겨진 스크린으로 교체 하기도 했고, 요즘 카메라는 촬영 시 LCD에 표시해주기도 한다.
책이나 다른 웹사이트를 뒤져보면 삼각구도, 터널구도, 방사구도 어쩌고 엄청 많이 나오는데 복잡하게 생각하지 말고 우선 위 가상의 선을 머리에 담고 이렇게 기억하면 된다.

‘사람의 시선이 분할선을 따라 이동하고 분할선이 모이는 점에서 멈춘다’

조금 더 재미 없는 그림을 보자.

어렵게 생각 할 필요는 없다
“선이 만나는 점들 중 어딘가에 중요한 것이 있다”
즉,
– 사람을 찍을 때라면 그림의 점 어딘가에 ‘사람의 얼굴’이 위치하면 되고
– 바다와 산을 찍을 때는 수평선과 산능선이 선을 따라 위치하면 된다는 말이다.
– 건물의 경우는 경계면들이 선에 걸치면 된다.
– 시선은 피사체에서 배경으로 이동하도록 한다.


– 사진을 보는 사람의 눈이 따라 움직이는 선과 멈출 곳을 찾는다고 생각하자

예시를 보자. 이해하기 쉽게 기술적으로 설명하고는 싶지만 전문가가 아닌지라 …

사진을 찍자 – #3. 노출

사진을 찍자 – #1. 개요 그리고 잡설

사진을 찍자 – #2. 사진기 살펴보기

사진을 찍자 – #4. 구도

세상의 모든 사진기는 렌즈를 통해 들어온 ‘빛’을 촬상소자(필름)에 닿게 하여 이를 닿게 하고 이를 처리하여 결과물을 얻도록 되어있다. 사진은 눈으로 보는 무언가를 저장해 뒀다가 다시 눈으로 보는 것이다.
핵심은 ‘빛’이다.
빛이 얼마나 오랫동안 들어오는가 혹은 얼마나 많은 양이 들어오는가에 따라 결과물이 달라지게 된다.
빛에 카메라가 얼마나 노출되는가 가 사진 찍기의 기본인 것이다.
카메라의 기능을 중심으로 알아보자.

카메라 마다 다르지만 (사진을 기준으로)
1. Auto(녹색 네모 또는 Scene) : 완전 자동
2. P : Program auto
3. Sv : Shutter Value 우선
4. Av : Aperture Value 우선 (조리개 우선)
5. M : Manual (수동)
6. B : Bulb

7. 그외 : 각자 특성이 있지만 같은 이름이라도 카메라마다 다른 경우도 있고, 보통은 잘 안쓰므로 생략

Auto
흔히 말하는 똑딱이 카메라(요즘 휴대폰 카메라 대부분)의 기능과 같다.
내장 노출계1렌즈를 통해 들어온 빛의 정도를 측정하는 장치. 노출만 측정하는 장치도 있기 때문에 굳이 내장이라고 표현 했다.감도(ISO), 플래시 팝업, 색온도 모두 자동으로 설정해서 사용자는 셔터를 누르기만 하면 된다.

Program Auto
조리개와 셔터스피드는 내장 노출계 측정 값을 기반으로 자동으로 설정된다. 하지만 감도, 플래시 사용 여부 등은 사용자의 설정에 따른다.
program auto 모드에서 사용자가 노출을 통제하고 싶은 경우는
1. 감도225-32-40-50-64-80-100-125-160-200-250-320-400-500-640-800-1000-1250-1600-2000-2500-3200-4000-5000-6400-8000-10000-12800-16000-20000-25600단위로 늘어나고, 값이 클 수록 ‘감도가 높다’고 말한다. 3원래는 필름의 규격으로 ASA 기준이었으나 ISO규격으로 통일 되었다. 과거 필름 상자를 보면 ASA니 DIN이니 하는 문구를 찾을 수 있다. 4흑백,컬러,디지털의 표준이 서로 다르다. 5일반적인 노출 값은 ISO 100을 기준으로 한다.를 변경한다.
2. EV 6Exposure: 노출 단위. 감도 1단계, 셔터스피드 1단계, 조리개값 1단계 변경은 모두 같다. 즉 셔터스피드를 한칸 움직였을 때와 조리개 값을 한칸 움직였을 때 들어오는 빛의 양은 같다는 이야기다. 값을 변경 한다.
3. 플래시를 켜거나 끈다.
위 세가지 중 하나를 선택해서 적용하면 된다.

Shutter Value (셔터 스피드 우선)
Program auto 모드에서 셔터 스피드를 추가로 변경 할 수 있다고 이해하면 된다. 이전 포스트에서 언급 한 것과 같이 셔터 버튼을 꾹 누르면 셔터가 열리게 된다. Shutter Value 우선 모드는 셔터가 열려 있는 시간을 통제하고 이를 기준으로 조리개 값을 카메라가 조정해 주는 모드이다. (당연히 설정한 감도에 영향을 받는다)

좌측은 셔터스피드 1/50초. 우측은 1/400초.

사진에서 알 수 있듯이 움직이는 날개가 얼마나 카메라에 비춰지는지에 따라 결과물이 달라진다. 즉, ‘셔터의 속도를 고정하고자 할 때’ 주로 사용하는 모드이며 이는 ‘스포츠’와 같이 무언가 빠르게 움직이는 피사체를 촬영할 때 주로 사용하는 모드이다.
아래는 예시

다리… 다리를 보자…

Aperture Value (조리개 값 우선)

Sv 모드와 달리 Program Auto 모드에서 조리개 값(F값)을 설정하는 것이 추가되고, 이 조리개 값에 맞추어 셔터 스피드를 자동으로 조정해 주는 모드이다.
조리개 우선 모드를 쓰는 경우는 보통
1. 피사계 심도7피사계 심도:초점이 맞는 범위로 생각하면 되겠다. 보통 심도 정도로 부르며, 범위가 짧을 경우 얕다고 이야기 한다. 에 따라 다른 효과를 얻고 싶을 때
2. 광원의 모양을 조절하고 싶을 때
이 두가지가 되겠다.
조리개를 많이 열 수록 구멍이 커지니까 빛이 많이 들어오고 심도는 얕아진다. 전문가가 아니니 더 알아듣기 쉽게 설명은 어렵고, 백문이 불여일견이라 했으니 예를 보자.

좌측부터 f1.7, f8, f16

0을 기준으로 초점을 맞췄을 때 조리개 값이 커질수록 심도가 깊어져서 -7까지 점점 선명해지는 것을 알 수 있다.

좌측부터 f1.7, f8, f16

우측으로 갈 수록 빛의 갈라짐이 생기는 것을 알 수 있다.

보통은 인물 사진 등 특정 ‘가까운’ 피사체를 촬영할 때 조리개를 개방하여 촬영 하는 경우가 많다. 심도가 얕으면 초점을 맞춘 사람만 선명하게 보이고 배경은 초점이 맞지 않아 흐릿하게 촬영 되므로 피사체에 집중할 수 있기 때문이다.

일반적으로 인물사진, 근접 사진을 찍을 때는 조리개를 개방하고
풍경, 정물을 찍을 때는 조리개를 닫는다.
렌즈마다 다르지만 조리개 값 5~10 사이가 화질이 가장 좋다.

M (Manual, 수동)

말 그대로 수동이다. 조리개 값을 변경한다고 해서 감도가 변하지도, 셔터 스피드가 변하지도 않는다. 단지 노출정보만 표시될 뿐이다.

B (Bulb)

수동 모드인데 셔터 스피드를 설정 할 수 없다. 그러면 조리개 우선 모드와 같은거 아니야? 질문할 수 있겠지만 그런 것이 아니고 ‘셔터를 누르고 있는 동안 셔터가 열리는 모드이다’ 설정할 수 있는 최대 셔터 속도 이상일 경우 사용한다.

정보창

현재 카메라의 상태, 측광 상태, 설정 등을 표시한다.

F 1.8 : 현재 설정된 조리개 값을 표시한다.
[ · ] : 측거점. 초점을 맞출 영역, 그리고 노출을 측정할 지점을 설정을 표시한다. 이 측거점이 많을 수록 촬영이 용이해진다. 당연히.. 비싼 카메라일 수록 측거점의 수가 많다.
[ ● ] : (측거점 아래의 사각형) : 측광 방식. 점일 경우 측광 영역이 좁고, 사각형이 꽉 차면 화면 전체의 측광 평균치를 기준으로 삼는다.
■■■■ : EV값. 노출계의 측정 값보다 설정 값이 높으면 사각형이 오른쪽으로 늘어나고, 낮으면 왼쪽으로 늘어난다. 오른쪽으로 사각형이 많을 수록 밝게 나오고(너무 높으면 그냥 하얗게 나온다) 왼쪽으로 많을 수록 어둡게 나온다. (당연히 너무 왼쪽으로 치우치면 새까맣게 찍힌다.)
□ (겹쳐진 사각형) : 드라이브 모드. 연사 모드를 의미한다. 사각형 하나일 때는 셔터를 아무리 길게 누르고 있어도 한컷만 찍힌다. (즉 한번 촬영을 한 뒤 다음 촬영을 하려면 손을 뗀 뒤 다시 셔터를 눌러야 한다.8당연한 이야기지만 Bulb 모드에서는 큰 의미가 없다.) 두개일 때는 천천히 여러장을 찍고, 세개 일 때는 더 빨리 찍는다.
※ 각 그림은 카메라 제조사, 종류에 따라 다를 수 있다.
※ 통상적으로 비싼카메라일 수록 표시되는 정보가 많다.

뷰파인더에도 표시된다.

손 모양은 Shake Reduction 기능이 활성화 된다는 것을 의미한다.

M모드를 사용해야 사진을 더 잘찍는다거나, 기기를 잘 이해한다거나 하는 것은 결코 아니다. 쉴새 없이 공이 날아다니고, 사람이 움직이는데 M모드로 설정하고 어느 세월에 공과 사람을 쫓는단 말인가?
또 기기를 잘 다룬다고 해서 좋은 사진이 나오는 것도 아니다. 어디까지나 사진은 ‘감성’의 영역이고 무엇보다도 남들이 뭐라건 내가 보기에 좋고, 의미가 있는 사진이어야 할 것이다.

전쟁터에서 총탄이 날아가는 순간에 찍은 사진이 흔들렸다 해서 못찍은 사진일까?
노출을 못맞춰서 어둡게 찍힌 할머니의 사진이 잘못 찍은 사진일까?

SSL 그리고 HTTPS

SSL (Secure Socket Layer)

전송 계층 보안(영어: Transport Layer Security, TLS, 과거 명칭: 보안 소켓 레이어/Secure Sockets Layer, SSL)는 컴퓨터 네트워크에 통신 보안을 제공하기 위해 설계된 암호 규약이다. 그리고 ‘트랜스포트 레이어 보안’이라는 이름은 ‘보안 소켓 레이어’가 표준화 되면서 바뀐 이름이다. 이 규약은 인터넷 같이 TCP/IP 네트워크를 사용하는 통신에 적용되며, 통신 과정에서 전송계층 종단간 보안과 데이터 무결성을 확보해준다. 이 규약은 웹 브라우징, 전자 메일, 인스턴트 메신저, voice-over-IP (VoIP) 같은 응용 부분에 적용되고 있다. 국제 인터넷 표준화 기구(IETF)에 의해 현재 구식(deprecate)으로 간주되어 있다. 최종 갱신은 RFC 5246이고, 최종 갱신 버전은 넷스케이프에서 만든 SSL 표준을 바탕으로 했다. 위키백과 발췌
용어 사용 시 SSL과 TLS를 구분해야 할 필요는 없다. 사실 TLS보다 SSL이 더 입에 잘 붙는다.

먼저 컴퓨터의 암호화에 대해 아주 쉽게 설명하면
컴퓨터는 0과 1만 존재한다 (on, off).
즉 컴퓨터는 숫자만 존재한다.
숫자 1,000이 있다고 가정하면 이 숫자 1,000이 아닌 것처럼 보이게 한다. = 암호화

예를 들어
1,000 X 100 = 10,000
1,000은 내가 암호화 하고 싶은 원본
곱하기는 ‘암호화 알고리즘’
100은 암호화를 위한 ‘키’ 가 되겠다.

여기에서 철수가 영희에게 금고의 비밀번호를 알려주는 상황을 적용해보자.
금고의 비밀번호는 1000이다.
비밀번호는 철수만 알고 있다.
주변에 사람이 많아서 비밀번호를 그냥 말하면 금고의 비밀번호가 노출된다.
보안을 위해 100이라는 숫자를 키로 하여 곱하기 알고리즘으로 암호화한다.
철수는 영희에게 ‘비밀번호는 10000이야. 곱하기 알고리즘으로 암호화 했어’ 라고 말한다.
여기까지가 기본적인 암호화,암호화 데이터 전송 순서가 되겠다.

하지만,
철수가 미리 영희에게 키를 알려줬다면 문제가 없겠지만 만약 영희는 아직 키를 모른다면?
의 경우에 대응하기 위해서 나온 기술이 바로 SSL 되시겠다. (엄밀히 말하면 좀.. 다르지만)

공개키 암호화와 비공개키 암호화 (=비대칭키 암호화와 대칭키 암호화)

개념상 두 종류의 자물쇠가 있다고 생각하면 편하고. 하나는 ‘잠그는 열쇠, 여는 열쇠가 따로 있는 자물쇠’ = A 다른 하나는 ‘잠글 때 열 때 같은 열쇠를 사용하는 자물쇠’ = B. SSL의 중요한 개념은 여기에 있다.

자물쇠 A : 소인수분해를 통해 소수(자기 자신과 1로만 나뉘어지는 수)를 찾아 내는 것이 쉽지 않다는 것에 기인하여 만들어진 알고리즘을 이용한다.11,2,3,5,7,11… 은 소수임을 금방 알아낼 수 있지만 10,000,000,000,000,001이 소수인지는 알아내기 쉽지 않다. 아직 특정한 수가 소수인지 아닌지 알아내는 방법은 없다(고한다. 난 산수 싫다. 어렵다.) 그래서 느리다(고 한다.)
잠그는 열쇠와, 여는 열쇠가 구분 되어있다. 열쇠 하나는 잠그는 것만 가능하고 하나는 여는 것만 가능하다.
잠글 때 쓰는 열쇠와 열 때 쓰는 열쇠가 다르다 = 비대칭 키
암호화,복호화 하는데 시간이 많이 걸린다.

자물쇠 B :열쇠 하나만 있으면 열고 잠그는 것이 가능하다.
잠글 때 쓰는 열쇠와 열 때 쓰는 열쇠가 같다 = 대칭 키
암호화, 복호화 하는데 시간이 덜 걸린다. (비대칭키 암호화 알고리즘에 비해)

위에서부터 순서대로 사건이 발생한다.
철수와 영희의 모든 대화는 가운데 도둑이 들을 수 있다.

위와 같은 절차로 Kk를 주고 받는 것이 ‘키 교환’ 알고리즘이 되겠다. (개념상으로 이렇다는 것만 이해하자. 실제 키를 주고 받는데엔 다양한 방법이 존재한다. DH, RSA 등이 포함되면 키를 교환하기 위한 수단이구나 생각하면 된다.)

HTTPS
언뜻 보면 완벽해 보이지만 여기에 큰 맹점이 하나 있다. 바로 도둑이 철수인 척 하여 중간에서 데이터를 가로채는 경우이다.
1. 철수에게서 받은 K1을 받는다.
2. K1#을 만들어 영희에게 전달한다
3. 영희는 K1#으로 Kk를 암호화 하여 도둑에게 전달한다.
4. 도둑은 K2#으로 복호화하여 Kk를 획득한다.
5. K1으로 Kk를 암호화 하여 철수에게 전달한다.
이후부터는 Kk로 암호화한 데이터가 오가므로 쉽게 복호화 할 수 있다.

즉, 철수와 영희는 실제 상대방이 누구인지 확인할 수 없다는 사실이다.
우리가 사용하는 SSL-HTTPS는 이를 보완하기 위한 제 3자 증명 과정이 추가된다.