작성자:데니스 누치우
OpenVPN 서버 역할을 하는 My Raspberry
안녕하세요 여러분!
이 짧은 기사에서는 OpenVPN을 사용하여 Raspberry PI에 VPN(가상 사설망) 서버를 설정하는 방법을 설명합니다. 서버를 설정한 후에는 VPN을 사용하고 있음을 나타내는 트래픽을 위장하기 위해 난독화 서버를 설정합니다. 이는 어떤 형태로든 검열을 피하는 데 도움이 될 것입니다.
VPN을 사용하는 이유
먼저 VPN 서버를 사용하려는 이유에 대해 이야기해 보겠습니다.
- 중간자 공격을 피하세요. 로컬 네트워크에 악의적인 사용자가 있는 경우(심지어 룸메이트라도) 해당 사용자는 암호화되지 않은 트래픽을 모니터링하고 변조할 수 있습니다.
- 저의 경우에는 ISP(인터넷 서비스 제공업체)나 대학으로부터 인터넷 활동을 숨깁니다.
- 서비스 차단을 해제합니다. 우리 대학교는 모든 UDP(사용자 데이터그램 프로토콜) 패킷을 차단합니다. 이는 UDP를 통해 통신하는 응용 프로그램을 사용할 수 없음을 의미합니다. 이메일 클라이언트를 사용할 수도, 게임을 할 수도, 심지어 Git을 사용할 수도 없습니다!
저는 Raspberry Pi를 사용하여 집 인터넷에 VPN을 설정하기로 결정했습니다. 이렇게 하면 대학에 있는 동안 홈 네트워크에 연결할 수 있습니다. 다른 국가에서 VPN 서버가 필요한 경우 DigitalOcean에서 월 5달러의 가상 사설 서버를 구입할 수 있습니다. 내 추천 링크를 사용하면 10달러 할인을 받을 수 있습니다. 이는 2개월간 무료 VPN을 제공하는 것입니다. 하지만 원하지 않으면 사용하지 않으셔도 됩니다.
OpenVPN 설치
이 단계는 쉘 스크립트를 사용하여 수행하므로 매우 쉽습니다. 따라서 다음을 '누르고' 끝내기만 하면 됩니다.
선택한 키 크기에 따라 설치 시간이 오래 걸립니다. 내 Raspberry Pi 3 Model B에서는 약 3시간이 걸렸습니다.
이 저장소로 가서 지침을 따르십시오.
Angristan/OpenVPN 설치
_OpenVPN-install - Debian, Ubuntu, Fedora CentOS 및 Arch Linux에서 자체 OpenVPN 서버 설정_github.com
서버의 IP 주소를 모르면 0.0.0.0만 입력하세요. . 저는 443을 선택했습니다 포트 및 TCP (전송 제어 프로토콜)에 대한 프로토콜입니다.
참고 :우리 대학에서는 TCP/80만 허용하기 때문에 이는 매우 중요합니다. 및 TCP/443 포트, 나머지는 거의 차단됩니다. 또한 Obfsproxy는 TCP에서만 작동하므로 TCP를 선택했는지 확인하세요. !
스크립트가 완료되면 .ovpn을 받게 됩니다. 파일. 즐겨 사용하는 VPN 클라이언트로 가져올 수 있으며 모든 것이 즉시 작동합니다.
연결 테스트
VPN 클라이언트에서 .ovpn 파일을 가져오고 IP 0.0.0.0를 변경하세요. Raspberry PI의 로컬 IP에. 네트워크 구성에 따라 192.168.*.* 형식일 수 있습니다. .
참고:이 기능은 Pi와 동일한 Wi-Fi에 연결된 경우에만 작동합니다.
Viscosity가 VPN 서버에 성공적으로 연결되었습니다.
PI가 항상 예약된 IP 주소를 얻도록 라우터를 구성했습니다. 비슷한 작업을 수행하려면 라우터 설정을 확인해야 할 수도 있습니다.
연결에 성공했다면 축하합니다. 이제 VPN 서버가 생겼습니다! 하지만 아직 외부에서는 접근할 수 없습니다...
난독화 프록시 없이 OpenVPN 서버만 원하는 경우 포트 전달로 건너뛸 수 있습니다. .
난독화 프록시 설치
Obfs4는 스크램블링 프록시입니다. 인터넷 트래픽을 소음처럼 보이도록 위장합니다. 귀하의 트래픽을 스누핑하는 사람은 실제로 귀하가 무엇을 하고 있는지 알지 못하며, 중국의 만리방화벽(Great Firewall of China)에서 사용하는 적극적인 조사 공격으로부터 귀하를 보호할 것입니다.
참고:상대방이 허용된 트래픽만 허용하는 경우에는 이 방법이 작동하지 않습니다.:(
이제 프록시 서버를 설치해 보겠습니다.
- 필수 패키지 설치:
apt-get update && apt-get install obfs4proxy
- 구성을 저장할 디렉터리를 만듭니다.
sudo mkdir -p /var/lib/tor/pt_state/obfs4
- 구성 파일을 생성합니다.
sudo nano /var/lib/tor/pt_state/obfs4/obfs4.config
구성 파일에 다음 내용을 붙여넣습니다:
TOR_PT_MANAGED_TRANSPORT_VER=1TOR_PT_STATE_LOCATION=/var/lib/tor/pt_state/obfs4TOR_PT_SERVER_TRANSPORTS=obfs4TOR_PT_SERVER_BINDADDR=obfs4-0.0.0.0:444TOR_PT_ORPORT=127.0.0.1:443
TOR_PT_SERVER_BINDADDR 프록시가 새 연결을 수신하는 주소입니다. 제 경우에는 0.0.0.0:444입니다 — 왜 443이 아니고 444인가요? 글쎄요, 현재 443에서 수신 대기 중인 OpenVPN 서버 구성을 변경하고 싶지 않기 때문입니다. 또한 나중에 포트 전달을 사용하여 이 주소를 443에 매핑하겠습니다.
TOR_PT_ORPORT OpenVPN 서버를 가리켜야 합니다. 제 경우에는 서버가 127.0.0.1:443에서 실행됩니다.
- SystemD 서비스 파일을 생성합니다.
sudo nano /etc/systemd/system/obfs4proxy.service
그런 다음 다음 내용을 붙여넣으세요.
[Unit]Description=Obfsproxy Server[Service]EnvironmentFile=/var/lib/tor/pt_state/obfs4/obfs4.configExecStart=/usr/bin/obfs4proxy -enableLogging true -logLevelStr INFO[Install]WantedBy=multi-user.target
- 난독화 프록시를 시작합니다.
이제 OpenVPN이 실행 중인지 확인하고 다음 명령을 실행하여 프록시를 시작하고 부팅 시 시작할 수 있도록 하세요.
sudo systemctl start obfs4proxysudo systemctl enable obfs4proxy
- 인증서 키 저장
서비스가 시작된 후 다음 명령을 실행하고 인증서 KEY를 저장하세요.
cat /var/lib/tor/pt_state/obfs4/obfs4_bridgeline.txt
키는 Bridge obfs4 <IP ADDRESS>:<PORT> <FIN**GER**PRINT> c 형식입니다. ert=KEY iat-모드=0 . VPN에 연결할 때 필요합니다.
- 연결을 테스트하는 중입니다.
OpenVPN 서버 대신 프록시에 연결하려면 VPN 클라이언트를 열고 IP를 443에서 444로 변경하세요.
그런 다음 OpenVPN 클라이언트에서 플러그형 전송 옵션을 찾아 obfs4를 지원하는지 확인하세요. .
Viscosity는 obfs2, obfs3, obfs4 및 ScrambleSuit와 같은 다양한 난독화 방법을 지원합니다
모든 것이 작동하면 모든 준비가 완료된 것입니다! 축하합니다! 외부에서 이 VPN을 사용하기 전에 몇 가지 사항만 더 조정하면 됩니다.
포트 포워딩
외부 세계에서 OpenVPN 서버에 액세스하려면 포트가 차단되었을 가능성이 높으므로 포트 차단을 해제해야 합니다. 기억하시는 것처럼 저는 라우터의 PI IP 주소를 항상 192.168.1.125로 예약해 두었습니다. 따라서 PI 연결이 끊어지거나 라우터가 재부팅되어도 변경되지 않습니다.
이 방법으로 포트 전달 테이블에 다음 규칙을 정의했습니다:
TL-WR841N의 포트 포워딩 설정 페이지
외부 포트 443 난독화의 서버 포트 444.를 가리킵니다. 난독화 서버가 없다면 443->4를 그대로 두세요. 43.
포트 25는 PI의 SSH 포트 22를 가리킵니다. 이는 단지 내 편의를 위한 것입니다.
난독화 프록시 없이 OpenVPN 서버에 직접 액세스하려는 경우 444-> 규칙을 만들었습니다. 443
서비스 포트는 OUTSIDE입니다. PUBLIC에 사용될 포트 IP 주소. 공인 IP를 찾으려면 whatsmyip.com과 같은 서비스를 이용하세요.
내부 포트는 INSIDE입니다. 항구. 네트워크에 연결되어 있을 때만 사용할 수 있습니다.
_참고:첫 번째 규칙은 PUBLIC_IP:443의 모든 연결을 리디렉션한다는 것입니다. 192.168.1.125:444로 _
테스트
- 공용 IP를 찾아 .ovpn 파일이나 VPN 클라이언트에서 기존 IP를 공용 IP로 바꾸세요.
- VPN에 연결하세요.
그게 다야.
동적 DNS
대부분의 경우 IP는 유동 IP이기 때문에 변경됩니다. 이를 극복하는 방법은 IP를 저장하고 매일 이메일을 보내는 작은 프로그램을 PI에 만드는 것입니다. Firebase와 같은 온라인 데이터베이스에 IP를 저장할 수도 있습니다.
내 라우터에는 동적 DNS 설정이 있습니다. 이렇게 하면 NoIP와 같은 서비스 제공업체를 이용하여 example.no-ip.com와 같은 도메인을 얻을 수 있습니다. 이는 항상 내 공개 IP 주소를 가리킵니다.
TL-WR841N DDNS 설정 페이지
기타 리소스:
- 플러그식 교통수단의 어린이 정원
- 점도-난해/
- https://www.pluggabletransports.info/transports/
질문이 있으시면 Twitter로 연락주세요.
무료로 코딩을 배우세요. freeCodeCamp의 오픈 소스 커리큘럼은 40,000명 이상의 사람들이 개발자로 취업하는 데 도움을 주었습니다. 시작하세요