이 기사에서는 Linux 서버에서 WireGuard VPN을 설정하는 프로세스를 단계별로 안내합니다. 이를 통해 커피숍과 같이 안전하지 않은 장소에서 안전한 인터넷 리소스에 액세스할 수 있습니다.
그런데 VPN이 필요한 이유는 무엇입니까? 왜 WireGuard입니까?
예를 들어 원격 위치에서 은행 웹사이트에 연결할 때마다 네트워크에서 듣는 모든 사람에게 암호 및 기타 민감한 정보가 노출될 위험이 있습니다.
물론 은행 웹사이트 자체가 암호화되기를 바랍니다. 즉, 은행과 PC 또는 스마트폰 사이를 흐르는 주요 데이터는 그 과정에서 듣는 사람이 읽을 수 없습니다.
집이나 사무실에서 연결하는 경우는 어떻습니까? VPN을 사용하면 일반 암호화로 가려지지 않은 데이터 요소가 잘못된 사람에게 표시되지 않는다는 것을 합리적으로 확신할 수 있습니다.
하지만 공항이나 커피숍에서 공용 WiFi 라우터를 통해 연결하는 경우에는 어떻게 될까요? 네트워크가 손상되지 않았거나 해커가 눈치채지 못한 채 감시하고 있지 않다고 확신하십니까?
이 매우 실질적인 위협에 대응하기 위해 랩톱이나 휴대폰에서 VPN 서버에 대한 연결을 열 수 있습니다. 이렇게 하면 모든 데이터 전송이 가상 터널을 통해 이루어집니다. 민감한 연결의 모든 부분은 연결하는 로컬 네트워크의 누구에게도 표시되지 않습니다.
WireGuard는 오픈 소스 VPN 세계의 세 가지 주요 업체 중 최신 제품이며 나머지 두 업체는 IPsec 및 OpenVPN입니다.
WireGuard는 다른 제품보다 더 간단하고 빠르며 유연하게 제작되었습니다. 그것은 블록에 새로운 아이지만, 그것은 몇 가지 중요한 친구들을 빨리 주웠다. Linux 제작자 Linus Torvalds 자신의 촉구에 따라 WireGuard는 최근 Linux 커널에 통합되었습니다.
VPN 서버를 구축할 위치
물론 집에 VPN 서버를 설치하고 ISP 라우터를 통해 포트 포워딩을 구성할 수 있습니다. 그러나 클라우드에서 실행하는 것이 더 실용적인 경우가 많습니다.
괜찮아요. 이 방법이 빠르고 고통 없는 "설정하고 잊어버리기" 구성에 훨씬 더 가깝습니다. 가정에서 구축하는 모든 것이 AWS와 같은 대규모 클라우드 제공업체에서 제공하는 인프라만큼 안정적이거나 안전할 가능성은 거의 없습니다.
그러나 집 주변에 전문적으로 보안된 인터넷 서버가 있는 경우(또는 주변에 있는 여분의 Raspberry Pi로 기회를 잡고자 하는 경우) 거의 동일한 방식으로 작동합니다.
WireGuard 덕분에 클라우드에서든 물리적 서버에서든 자신만의 홈 VPN을 만드는 것이 그 어느 때보다 쉬워졌습니다. 전체 설정은 30분이면 완료할 수 있습니다.
준비하기
여기의 자습서를 사용하여 클라우드 인스턴스를 시작하고 실행하세요.
포트가 51820인지 확인합니다. 귀하의 서버에 열려 있습니다. 이는 보안 그룹으로 수행됩니다. AWS 및 VPC 네트워크 방화벽 Google Cloud에서.
최신 Debian/Ubuntu 릴리스에서는 다음과 같이 패키지 관리자에서 Wireguard를 설치할 수 있습니다.
sudo apt install wireguard
또는 yum을 사용하여 EPEL 저장소에서:
sudo yum install kmod-wireguard wireguard-tools
1단계:암호화 키 생성
공개 키와 개인 키가 포함된 파일을 만들려는 서버의 디렉터리에서 다음 명령을 사용합니다.
umask 077; wg genkey | tee privatekey | wg pubkey > publickey
다른 디렉토리나 로컬 시스템의 클라이언트에 대해 동일한 작업을 수행합니다. 나중에 다른 키 세트를 구별할 수 있는지 확인하십시오.
빠른 설정을 위해 온라인 키 생성기를 사용할 수 있습니다. 그러나 처음에는 수동으로 수행하는 것이 좋습니다. 다음 단계에서 사용할 파일에 키 해시가 포함되어 있는지 확인하십시오.
2단계:서버 구성 만들기
.conf를 만들어야 합니다. /etc/wireguard 디렉토리에 있는 파일. 다른 포트를 사용하여 동시에 여러 VPN을 실행할 수도 있습니다.
새 파일에 다음 코드를 붙여넣습니다.
sudo nano /etc/wireguard/wg0.conf
[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
# use the server PrivateKey
PrivateKey = GPAtRSECRETLONGPRIVATEKEYB0J/GDbNQg6V0s=
# you can have as many peers as you wish
# remember to replace the values below with the PublicKey of the peer
[Peer]
PublicKey = NwsVexamples4sBURwFl6HVchellou6o63r2B0s=
AllowedIPs = 10.0.0.2/32
[Peer]
PublicKey = NwsexampleNbw+s4sBnotFl6HrealxExu6o63r2B0s=
AllowedIPs = 10.0.0.3/32
VPN 시작
sudo systemctl start wg-quick@wg0
systemd가 없는 경우(인스턴스가 Amazon Linux를 실행하는 경우 해당) sudo wg-quick up wg0
을 사용할 수 있습니다. .
3단계:클라이언트 구성 만들기
먼저 Linux에서 동일한 방법으로 또는 Windows, macOS, Android 또는 iPhone을 사용하는 경우 앱 스토어를 통해 클라이언트 컴퓨터에 Wireguard를 설치합니다.
1단계에서 온라인 키 생성기 또는 QR 스크립트를 사용한 경우 QR 코드의 사진을 찍어 휴대전화에 연결할 수 있습니다.
WireGuard가 클라이언트에 설치되면 다음 값을 사용하여 구성합니다.
# Replace the PrivateKey value with the one from your client interface
[Interface]
Address = 10.0.0.2/24
ListenPort = 51820
PrivateKey = CNNjIexAmple4A6NMkrDt4iyKeYD1BxSstzer49b8EI=
#use the VPN server's PublicKey and the Endpoint IP of the cloud instance
[Peer]
PublicKey = WbdIAnOTher1208Uwu9P17ckEYxI1OFAPZ8Ftu9kRQw=
AllowedIPs = 0.0.0.0/0
Endpoint = 34.69.57.99:51820
추가 보안 계층을 위해 DNS 또는 사전 공유 키를 지정하는 것과 같이 사용 사례에 따라 원하는 추가 기능이 많이 있습니다.
Linux의 경우 서버와 동일한 방식으로 클라이언트를 시작하거나 다른 시스템의 애플리케이션 자체를 통해 시작합니다.
VPN 테스트
브라우저에 "my ip"를 입력하여 공용 IP 주소를 찾으십시오. 받은 IP가 VPN을 시작하기 전 컴퓨터의 주소와 다르면 성공한 것입니다!
(그리고 이전 내용을 잊어버린 경우 sudo systemctl stop wg-quick@wg0
를 시도하십시오. , 확인하고 다시 시작합니다.)
문제 해결 가이드
서버가 IP 전달을 위해 구성되었는지 확인하십시오. /etc/sysctl.conf 파일을 확인하거나 다음을 실행하십시오:
echo 1 > /proc/sys/net/ipv4/ip_forward
연결이 자주 끊어지나요? 클라이언트 구성의 피어 섹션에 다음을 추가합니다.
PersistentKeepalive = 25
작동하지 않는 이유를 모르십니까? sudo tcpdump -i eth
를 사용해 보세요. 클라이언트를 사용하는 동안 서버에서.
이 가이드를 읽어주셔서 감사합니다.
더 자세히 알아보려면 WireGuard VPN에 대한 유료 Manning 과정을 수강하는 것이 좋습니다.