systemd-networkd를 사용하여 WireGuard 서버 설정
WireGuard는 Linux 커널 5.6(2020년 3월 29일 출시) 이상에 내장된 매우 간단하고 빠르고 현대적인 VPN입니다. SSH 모델을 모방하고 VPN 피어가 서로의 공개 키를 알아야 합니다. 이 게시물과 관계없이 https://www.wireguard.com을 읽는 것이 좋습니다.
WireGuard의 경우 한 가지 흥미로운 측면이 있습니다. '서버'라는 개념이 없고 설계에 따라 배포되며 블록체인이 관련되지 않습니다. 블록체인 애호가들은 이것이 놀랍지만 분산 소프트웨어가 블록체인보다 오래 전에 발명되었다는 사실을 발견했을 것입니다 😅. 각 피어는 서로를 알고 있고(예: 공개 키, IP) 서로 연결되어 있다고 가정하고 다른 피어에 연결할 수 있습니다. '서버'는 오히려 특정 피어에서 기대할 수 있는 동작입니다. 일반적으로 '서버' 피어에서 예상되는 3가지 핵심 사항이 있습니다.
Linux 시스템에서 WireGuard를 구성하는 방법에는 여러 가지가 있습니다. 내가 가장 좋아하는 것은 네트워크와 네트워크 장치를 모두 관리하는 시스템 서비스인 systemd-networkd을 사용하는 것입니다. systemd 제품군의 일부로 배포되므로 설치했을 가능성이 높으며 v237부터 WireGuard를 지원합니다. 추가 소프트웨어가 필요하지 않기 때문에 Linux 서버에 적합합니다.
예를 들어 다음 VPN 네트워크를 설정하려고 합니다.
옵션
값
회로망
10.0.0.0/24
섬기는 사람
10.0.0.1
피어 A
10.0.0.20
피어 B
10.0.0.30
가장 먼저 할 일은 WireGuard 터널용 가상 네트워크 장치를 설정하는 것입니다. 이는
/etc/systemd/network/
디렉토리에 생성되어야 하는 systemd.netdev(5) 단위를 통해 달성할 수 있습니다. WireGuard 네트워크 장치는 여러 가지 사항에 대해 알아야 합니다.일부
/etc/systemd/network/wg0.netdev
는 다음과 같습니다.[NetDev]
Name=wg0
Kind=wireguard
Description=wg0 - wireguard tunnel
[WireGuard]
ListenPort=51820
PrivateKeyFile=/etc/systemd/network/wg0.key
[WireGuardPeer]
AllowedIPs=10.0.0.20/32
PublicKey=9vzzasvYciJLmhjrt9Aj9aQYe1gnUxI44ShVLQPrDQA=
[WireGuardPeer]
AllowedIPs=10.0.0.30/32
PublicKey=9vzzasvYciJLmhjrt9Aj9aQYe1gnUxI44ShVLQPrDQA=
/etc/systemd/network/wg0.key
의 내용은 $ wg genkey
명령을 호출하여 생성할 수 있으며 systemd-network
사용자가 읽을 수 있어야 합니다. 여기서 주목할만한 점은 $ wg genkey
는 노트북에서도 어디서나 실행할 수 있으며 서버에 추가 소프트웨어를 설치할 필요가 없다는 것입니다.다음으로 할 일은 systemd.network(5) 장치를 사용하여 네트워크를 설정하는 것입니다. 네트워크의 목적은 네트워크 장치에 적절한 IP 주소를 할당하고 적절한 경로를 설정하는 것입니다.
일부
/etc/systemd/network/wg0.network
는 다음과 같이 보일 수 있습니다.[Match]
Name=wg0
[Network]
Address=10.0.0.1/24
IPMasquerade=both
참고할 사항이 몇 가지 있습니다.
/24
네트워크 마스크가 사용되기 때문에 systemd-networkd는 전체 네트워크가 WireGuard 터널을 통해 라우팅되도록 경로를 자동으로 추가합니다. 해당 마스크가 없으면 시스템에서 라우팅을 적절하게 구성하는 것은 사용자에게 달려 있습니다. IPMasquerade
설정은 서버가 인터넷에 대한 게이트웨이로 사용될 것으로 예상되는 경우에만 필요합니다. 이 옵션이 없으면 사용자가 방화벽을 적절하게 구성해야 합니다. 네트워크 장치와 네트워크가 모두 구성된 경우 남은 유일한 단계는 최신 구성을 연결하고 적용하기 위해 실행
$ networkctl reload
하는 것입니다.
Reference
이 문제에 관하여(systemd-networkd를 사용하여 WireGuard 서버 설정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ikalnytskyi/setup-a-wireguard-server-using-systemd-networkd-42nb텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)