블로그 이미지
안녕하세요~ iolate(a.k.a. isho) 의 블로그 입니다~! iolate

카테고리

분류 전체보기 (171)
Server, Cloud (7)
끄적끄적 (6)
Linux, Ubuntu (26)
개발개발 (45)
Mac, iOS (41)
Embedded (19)
NAS (1)
Web (5)
Network (3)
Review (10)
기타 (8)
비공개글 (0)
Total638,146
Today40
Yesterday165

워낙 잘못된 방법이 소개된 글이 많아 고생을 하여 작성.

Raspberry PI Zero W, Jessie 기준이다.


TX, RX 핀은 구글에 검색하면 이미지가 많이 나오니 핀 배열을 참고하자.


검색을 해보면 텍스트 파일을 수정하거나 데몬을 끄고 켜는 등의 작업이 많은데 다 필요없다.


$ sudo raspi-config


Interfacing Options

-> Serial

-> Would you like a login shell to be accessible over serial? <No>

-> Would you like the serial port hardware to be enabled? <Yes>


이렇게만 해주면 boot 설정 변경 등을 알아서 해주며 재부팅이 필요할 경우 재부팅까지 묻는다.


이 후 /dev/ttyS0 파일스트림을 사용하면 된다. /dev/ttyAMA0 이 아님!


블루투스 데몬이나 시리얼 서비스 등등을 바꿔야한다는 글들이 많지만 다 필요없으니 참고.

Posted by iolate

서버에서 

push "redirect-gateway def1 bypass-dhcp"

push "dhcp-option DNS 10.0.2.220"

이런류의 설정을 넣어두면, OpenVPN 으로 연결시 모든 트래픽이 VPN 을 통하게 된다.


이를 client 설정 파일에서 override 할 수 있는데, 여러 방법이 있지만 설정파일을 이용하는 방법을 기술.

다른 방법은 아래 참고 URL 로 들어가보자.


위 서버 설정에서의 첫번째 줄, push ~~ def1 ~~ 어쩌구 설정을 썼다면 client 설정 파일에 아래 라인들을 포함하면 된다.

route 0.0.0.0 192.0.0.0 net_gateway
route 64.0.0.0 192.0.0.0 net_gateway
route 128.0.0.0 192.0.0.0 net_gateway
route 192.0.0.0 192.0.0.0 net_gateway


만약 서버에서 def1 옵션을 사용하지 않았을 경우 아래 와 같은 방법으로.(뭐가 다른진 잘 모르겠다)

route 0.0.0.0 128.0.0.0 net_gateway
route 128.0.0.0 128.0.0.0 net_gateway



+

위 방법까지만 하면 VPN 대역만 라우팅될텐데, 나같이 내부망에 VPN 서버 파두고 쓰는 경우엔 추가로 라우팅 테이블을 수정해야 한다.

내가 사용하려는 내부망은 10.0.0.0/8 대역을 사용하고, DNS 설정도 필요하니 아래와 같이 설정을 추가

route 10.0.0.0 255.0.0.0
dhcp-option DNS 10.0.2.220


DNS 설정의 경우 VPN 클라이언트 옵션에서 "수동으로 설정한 네트워크 설정 변경"을 허용해주어야 한다.

이건 클라이언트마다 다르니 알아서 찾아서 켜주도록 하자.



참고

https://community.openvpn.net/openvpn/wiki/IgnoreRedirectGateway

https://serverfault.com/a/631048

Posted by iolate

12년도에 쓴 [우분투 openVPN 설치/설정법] 의 연장선으로.. Ubuntu 18.04 에서 OpenVPN 을 설치하고자 했다.


설치법 자체는 

DigitalOcean - How To Set Up an OpenVPN Server on Ubuntu 18.04


이런데 잘 나와있는데, 나는 인증서 생성을 EasyRSA 를 이용하고 싶지 않았음.


그래서 맥의 키체인을 이용해보았다.


1. CA 생성

2. Server 용 인증서 생성

3. Client 용 인증서 생성

4. 인증서 / 키 변환





키체인 접근 앱을 연 다음에 상단 메뉴를 통해 이렇게 접근하자.

CA 생성은 "인증 기관 생성...", 그 외 인증서는 "인증서 생성..." 을 이용하면 된다.


1. CA 생성



이름은 적당히 하고 유형을 "자체 서명 루트 CA"로 하자.

사용자 인증서는 별로 영향이 없는 것 같고 왜 있는지 모르겠지만 일단 VPN 서버로 설정하였고,

"기본값 덮어쓰기"를 꼭 체크 후 계속.


이후 유효기간을 적당히 설정하고 "초대장 서명" 은 체크해제하고 계속.

인증서 정보도 메일과 이름 외에 비워둬도 되니 적당히 입력하고 넘어간다.

키 쌍 정보 역시 그대로 진행.



키 사용 확장자(KUE, 작업)와 확장된 키 사용 확장자(EKU, 목적)를 묻는데, CA 생성시에는 "이 CA에 대한" 과 "이 CA의 사용자에 대한" 으로 두번 묻는다.

무슨 차이인지 잘 모르겠지만, 나는 감으로

"이 CA에 대한" KUE 와 "이 CA의 사용자에 대한" EKU 를 위 사진과 같이 설정하고 나머지 두개는 포함하지 않음 체크하고 진행하였다.

"이 확장자는 중요합니다." 의 경우 난 체크를 했는데 안해도 되는 듯...? 잘 모르겠다.


기본 제한 확장자나 대체 이름 확장자는 포함하지 않은 것 같고 진행진행!

신뢰 설정은 하지 않아도 된다.


완료하면, 인증서, 공개 키, 개인 키 3개가 생성되는데, 인증서만 우클릭 하여 .cer 포맷으로 내보내기 해두자.

2. Server 용 인증서 생성


이번엔 "인증서 생성..." 으로 진행.

이름을 적당히 설정하고 신원 유형은 "리프" 로 한다. 스샷에 VPN 클라이언트로 되어 있는데 VPN 서버가 맞다. 다만 앞에서 말했듯 상관없는 듯?

마찬가지로 기본값 덮어쓰기를 꼭 체크하고 넘어가자.


그 다음 발급자 선택 에서 앞에서 만든 CA 를 선택하고 계속


키 사용 확장자(KUE)는 서명, 키 암호화

확장된 키 사용 확장자(EKU)는 SSL 서버 인증 을 선택한다.


이 후 제목 대체 이름 확장자에서 DNSName 이나 IPAddress 중 하나 이상 입력해주고 진행. 아무거나 적어도 상관..은 없는 것 같지만 난 VPN 서버의 호스트 주소를 적어주었다.


그럼 서버용 인증서도 생성 완료!

얘도 마찬가지로 인증서, 공개 키, 개인 키 3개가 만들어지는데 이번엔 인증서와 개인 키 두개를 각각 .cer, .p12 확장자로 내보내기를 해두자.

3. Client 용 인증서 생성

서버와 비슷하지만 이렇게 진행하면 된다.


서버 인증서와 동일하게 인증서와 개인 키를 추출한다.


4. 인증서 / 키 변환

인증서 확장자인 .cer 은 .crt 로,

개인 키 확장자인 .p12 은 .key 로 변환이 필요하다.


각각 터미널에서 아래 명령어를 통해 변환 가능. 파일 이름은 알아서 바꿔주자.


$ openssl x509 -inform DER -in filename.cer -out filename.crt

$ openssl pkcs12  -nodes -nocerts -in filename.p12 -out filename.key


인증서의 정보를 보고 싶다면

$ openssl x509 -in ca.crt -noout -text


생성된 인증서들을 바탕으로 원래 OpenVPN 설치 / 설정 과정에 맞춰 집어 넣으면 된다.

ca.crt, server.crt, server.key, client.crt, client.key

이렇게 5개가 생성되면 정상.


dh2048.pem 과 ta.key 는 우분투에서 그냥 바로 만들 수 있는데,


$ openssl dhparam -out dh2048.pem 2048

$ openvpn --genkey --secret ta.key

명령어를 통해 만들 수 있다.


Posted by iolate

최근에 달린 댓글

최근에 받은 트랙백

글 보관함