부득이하게 라즈베리파에서 openVPN을 클리이언트로 돌려야할 상황이다.
openVPN 서버는 윈도우환경이다.
- sudo apt update
- sudo apt install openvpn
기본적인 openVPN 설치는 끝났고 인증서 생성을 해야한다.
아래 사이트에서 인증서 생성할 EasyRSA를 다운받고 압축을 해제한다. (사용 버전 3.0.5)
https://github.com/OpenVPN/easy-rsa/releases
- cd EasyRSA-3.0.5
- cp vars.example vars
- sudo leafpad vars
EasyRSA 폴더를 보면 vars.example이라는 파일이 있는데 이는 기본적인 설정 정보인데 default로 사용해도 무방하다.
굳이 바꾸고 싶으면
#set_var EASYRSA_REQ_COUNTRY "US"
#set_var EASYRSA_REQ_PROVINCE "California"
#set_var EASYRSA_REQ_CITY "San Francisco"
#set_var EASYRSA_REQ_ORG "Copyleft Certificate Co"
#set_var EASYRSA_REQ_EMAIL "me@example.net"
#set_var EASYRSA_REQ_OU "My Organizational Unit"
이 부분을 찾아서 ""안에 있는 내용을 입맛에 맞게 수정하면 된다.
easyRAS 초기화 옵션
- ./easyrsa init-pki
인증서와 키 파일 생성
인증할 때마다 비번 넣기 귀찮으면 nopass 옵션 줘서 키 생성
- ./easyrsa build-ca nopass
명령을 실행하면 아래와 같이 Common Name을 묻는데 걍 엔터.
이번에는 openVPN에서 사용할 서버의 인증서와 key파일을 생성한다.
- ./easyrsa gen-req server nopass
- ./easyrsa sign-req server server
Diffie-Hellman key 라는걸 생성해주는데 실행하면 작업이 상당히 오래 걸린다.
라즈베리 파이에서 약 30분 정도... 참고 기다리자.
- ./easyrsa gen-dh
마지막으로 ta.key 파일을 생성
- openvpn --genkey --sercret ta.key
여기까지가 서버에 대한 인증서와 키파일 생성이다.
다음으로 클라리언트에 대한 인증서와 키파일을 생성한다.
클라이언트 인증서는 VPN 유저 1명당 하나씩 발급해야 한다. 따라서 VPN 계정을 여러개 사용하고 싶을 경우
아래 명령을 반복해야 한다.
- ./easyrsa gen-req client nopass
- ./easyrsa sign-req client client
마지막으로 생성된 키, 인증서 파일들을 특정 위치에 옮겨줘야한다.
VPN Server를 위해 필요한 파일 목록과 생성된 경로는 아래와 같다.
- ca.crt ~/EasyRSA-3.0.5/pki
- ca.key ~/EasyRSA-3.0.5/pki/private
- server.crt ~/EasyRSA-3.0.5/pki/issued
- server.key ~/EasyRSA-3.0.5/pki/private
- dh.pem ~/EasyRSA-3.0.5/pki
- sudo cp /EasyRSA-3.0.5/pki/ca.crt /media/pi/usb
- sudo cp /EasyRSA-3.0.5/pki/private/ca.key /media/pi/usb
- sudo cp /EasyRSA-3.0.5/pki/issued/server.crt /media/pi/usb
- sudo cp /EasyRSA-3.0.5/pki/private/server.key /media/pi/usb
- sudo cp /EasyRSA-3.0.5/pki/dh.pem /media/pi/usb
서버 관련 인증 파일들은 서버 PC로 옮겨야 하니까 일단 USB에 저장하자.
(혹시나 위 파일 이동 명령어 중 저 usb를 명령어에 그대로 적으면 안된다.
USB를 라즈베리파이에 연결했을 때 /media/pi 폴더에
특정한 이름을 가진 경로가 뜬다. 그 이름를 입력해준다.)
VPN Client를 위해 필요한 파일 목록과 생성된 경로는 아래와 같다.
- ca.crt ~/EasyRSA-3.0.5/pki
- ca.key ~/EasyRSA-3.0.5/pki/private
- client.crt ~/EasyRSA-3.0.5/pki/issued
- client.key ~/EasyRSA-3.0.5/pki/private
- ta.key (option) ~/EasyRSA-3.0.5
클라이언트 관련 인증 파일들은 /etc/openvpn/ 폴더에 모두 잡아 넣는다.
- sudo cp /EasyRSA-3.0.5/pki/ca.crt /etc/openvpn
- sudo cp /EasyRSA-3.0.5/pki/private/ca.key /etc/openvpn
- sudo cp /EasyRSA-3.0.5/pki/issued/client.crt /etc/openvpn
- sudo cp /EasyRSA-3.0.5/pki/private/client.key /etc/openvpn
- sudo cp /EasyRSA-3.0.5/ta.key /etc/openvpn
관련된 파일을 모두 옮겼으면 클라이언트에 대한 설정을 해주자.
클라이언트 관련 설정 파일은
/usr/share/doc/openvpn/examples/sample-config-files
에 client.conf 라는 파일이 있다.
해당 파일을 /etc/openvpn 폴더에 복사한다.
cd /usr/share/doc/openvpn/examples/sample-config-files
sudo cp client.conf /etc/openvpn
복사한 클라이언트 설정 파일 내용을 수정해야 한다.
아래 명령어를 통해 파일을 열어서 수정한다.
sudo leafpad /etc/openvpn/client.conf
다음은 인증서 경로 설정이다.
특정 위치에 인증서를 놓고 관리하려면 해당 경로로 변경해주고
아니면 디폴트로 쓰면 된다.
정확히 뭔지 잘 모르겠는데 지금은 보안에 별 신경안쓰니까 비활성화 한다.
마지막으로 라즈베리 파이에서
VPN Client를 실행하면 아래와 같이 연결이 수립된다.
- cd /etc/openvpn
- sudo openvpn client.conf
라즈베리 파이에서도 VPN Client 실행 후 아이피 주소가 새로 할당된 것을 확인할 수 있다. (ifconfig)
서버에서도 클라이언트와의 연결이 정상적으로 수립되었다는 걸 확인 할 수 있다.
'삽질' 카테고리의 다른 글
[Ubuntu] .py 시작 프로그램 등록 (0) | 2023.02.27 |
---|---|
[Raspberry Pi 3] OpenVPN Client static IP 설정 (0) | 2018.10.23 |
[Raspberry Pi 3] 라즈베리파이 3 시작프로그램 등록 (0) | 2018.09.10 |
[Qt] openssl-1.0.1f on Ubuntu 14.04 x64 with SSLv2 enabled (0) | 2017.12.11 |
[Ubuntu] add-apt-repository command not found (0) | 2017.12.11 |