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

카테고리

분류 전체보기 (166)
Server, Cloud (7)
끄적끄적 (6)
Linux, Ubuntu (25)
개발질 (45)
Mac (18)
iOS (23)
IoT (16)
NAS (1)
Web (5)
Network (3)
Review (10)
기타 (7)
비공개글 (0)
Total623,947
Today24
Yesterday74

'2018/06/28'에 해당되는 글 2건

  1. 2018.06.28 Mac 키체인에서 OpenVPN 용 인증서 생성하기
  2. 2018.06.28 LoRa 모듈 사용기

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

Long Range 의 약자인 LoRa.

저전력 장거리 통신이 가능한 프로토콜로, 국내에선 SK가 LoRaWAN 망을 구축하여 서비스 중이다.


LoRaWAN 은 LoRA PHY, 즉 물리적 통신 프로토콜을 기반으로 암호화, 노드 관리 등을 가능케하는 프로토콜이다.


SK의 LoRaWAN 는 비용도 들고 이래저래 번거로운 점이 많았고, 일단 LoRa 모듈 자체를 사용해보고 싶었다.

(SK LoRa 모듈도 가지고 있기 때문에 언젠가 기회가 있다면 테스트를...)



aliexpress 에서 구매한 sx1276 모듈. 내가 구매한 링크는 여기.

한국에서는 915MHz 를 사용하면 된다.


구매하면 구매자가 친절히 이런저런 데이터시트 등을 메일로 보내주는데.. 딱히 필요없었다.

내가 구매한 17년도 12월엔 $16.48/2개 였는데, 글 작성 시점에는 $13.11/2개 정도.


송수신이 가능하므로 2개 이상이 있으면 된다.


LG01-S 등 LoRa Gateway 같은 것도 판매는 하는데, 얘들은 그냥 LoRa 모듈과 인터넷 연결을 편하게 해뒀을 뿐 꼭 필요한건 아니니 당장은 필요없음.



Apple | iPhone 7 | Normal program | 4.0mm | 2018:06:28 03:44:15


핀간격이 빵판용이 아니라 납땜이 좀 많이 귀찮다.

SPI 통신을 사용하며, 전원과 수신용 인터럽트 핀(DIO0)까지 총 8개가 필요하다.

인터럽트 핀을 생략한다면 7개 핀으로 가능.


동봉된 안테나까지 납땜을 하면 완성!



나는 두개의 아두이노 UNO 와 연결을 하였고,

LoRa 모듈의 작동 전압은 3.3v 이지만, 그동안 경험상 전원만 3.3v 에 물려주면 별 문제가 없었으니 그냥 진행했다.


Arduino Uno 

 LoRa sx1276

GND

GND 

 13

SCK

 12

MISO 

 11

MOSI 

 10

NSS 

 2

DIO0 

 3.3V

VCC 

 8

NRESET 


검색해보니 5v circuit 출력 3.3v circuit 입력의 경우에만 전압 조정을 해주면 된다고 하던데 난 저항 등을 달았을 경우 오히려 작동이 안되어서 전부 바로 연결하였음.


아두이노 라이브러리는 Sandeep Mistry의 LoRa 를 사용하였다. Arduino 라이브러리 매니저에 있지만,

링크는 https://github.com/sandeepmistry/arduino-LoRa


코드야 예제코드가 잘 만들어져이으니 참고하면 됨.


나의 경우 송신/수신 나눠서 테스트를 하였고, 송신부가 두번째 LoRa.endPacket() 이 무한 blocking 되는 문제가 있었다.

그냥 모듈 두개를 서로 바꿔주니 해결이 되었음.. 아마 납땜과정에서 모듈 하나가 송신이 안되는 불구가 된 듯하다ㅠㅠㅠ



2018:06:28 03:40:58


거리 테스트..

송신기를 건물 안에 두니 밖으로 나가면 바로 안되어서, 야외에 두고(71m 거리 태그가 있는 곳) 움직여보았다.


안테나가 별로인건지, 내가 잘못 납땜한건지 여튼 저 정도 거리까지만 수신이 되었음...ㅠ

송신기를 좀 높은 곳에 두고 안테나를 잘 세팅한다면.... 더 잘되지 않을까 기대를 해본다.


일단 통신이 되긴 했으니 만족!

Posted by iolate

최근에 달린 댓글

최근에 받은 트랙백

글 보관함