Computer >> 컴퓨터 >  >> 체계 >> Linux

Yggdrasil 네트워크란 무엇이며 설치 방법

Yggdrasil 네트워크란 무엇이며 설치 방법

Yggdrasil 네트워크는 탈중앙화 및 암호화된 메시 네트워크를 생성하는 것을 목표로 하는 IPv6 오버레이 네트워크입니다. 네트워크를 이진 트리의 잎으로 처리하여 이를 수행합니다. 오버레이 네트워크인 Yggdrasil은 사용자가 서로 안전하게 상호 작용할 수 있는 VPN(가상 사설망) 역할도 합니다.

또한 Yggdrasil은 무료이며 비교적 쉽게 설정할 수 있으며 다양한 플랫폼에서도 사용할 수 있습니다. 따라서 Yggdrasil은 다른 사람들과 안전하고 사적인 관계를 유지하는 데 관심이 있는 사람들에게 강력한 대안이 됩니다.

메시 네트워킹과 이그드라실이란 무엇입니까?

Yggdrasil은 네트워크를 상호 연결된 노드의 트리로 표현하여 메시 네트워킹을 구현합니다. 그 점에서 이러한 노드는 다른 노드에 대한 중계기 역할을 할 수 있습니다. 이것은 Yggdrasil을 진정한 메시 네트워크로 만듭니다.

Yggdrasil 네트워크란 무엇이며 설치 방법

또한 네트워크 구조를 통해 Yggdrasil은 방문하려는 기계나 웹사이트를 쉽게 찾을 수 있습니다. 그러면 중앙 서버가 트래픽을 라우팅할 필요 없이 다른 사용자와 상호 작용할 수 있습니다.

Yggdrasil을 사용하는 이유

Yggdrasil의 주요 판매 포인트는 데이터가 인터넷을 통해 라우팅되는 방식을 변경한다는 것입니다. 해당 네트워크의 기본 상태에 대한 몇 가지 가정을 통해 이를 달성합니다.

  • 모든 노드가 하나 이상의 다른 노드에 연결되어 있습니다.
  • 각 노드는 투명하게 다른 노드에 데이터를 전달할 수 있습니다.
  • 각 노드는 연결된 노드를 브로드캐스트할 수 있습니다.
Yggdrasil 네트워크란 무엇이며 설치 방법

이러한 가정은 경직되고 예측 가능하지만 매우 유연한 구조를 만듭니다. 예를 들어, 하나의 공용 노드에만 연결하여 시스템을 공개적으로 액세스할 수 있도록 만들 수 있습니다. 그러면 이 공개 노드는 다른 노드에 연결됩니다. 거기에서 다른 사용자가 해당 노드와 피어링하여 귀하에게 연결할 수 있습니다.

Yggdrasil 네트워크란 무엇이며 설치 방법

뿐만 아니라 Yggdrasil을 사용하면 로컬 시스템의 하위 네트워크를 만들 수도 있습니다. 따라서 VPN을 생성하려는 경우 매우 유용합니다.

Yggdrasil 설치 방법

위에서 논의한 바와 같이 Yggdrasil은 많은 플랫폼과 운영 체제에서 사용할 수 있습니다. 여기에는 대부분의 Linux 배포판이 포함됩니다.

그러나 Yggdrasil이 항상 기본 저장소에 있는 것은 아닙니다. 따라서 일부 배포판에서는 설치하기 전에 해당 소스를 포함해야 합니다.

Debian 및 Ubuntu에 Yggdrasil 설치

예를 들어, 데비안과 우분투에 Yggdrasil을 설치하려면 먼저 공식 GPG 키를 apt에 추가해야 합니다. 그렇게 하려면 다음 명령을 실행하십시오.

gpg --fetch-keys https://neilalexander.s3.dualstack.eu-west-2.amazonaws.com/deb/key.txt
gpg --export 569130E8CA20FBC4CB3FDE555898470A764B32C9 | sudo apt-key add -
Yggdrasil 네트워크란 무엇이며 설치 방법

거기에서 apt가 패키지에서 찾는 소스 목록에 저장소를 추가해야 합니다.

echo 'deb https://neilalexander.s3.dualstack.eu-west-2.amazonaws.com/deb/ debian yggdrasil' | sudo tee /etc/apt/sources.list.d/yggdrasil.list
Yggdrasil 네트워크란 무엇이며 설치 방법

완료되면 apt를 업데이트하고 프로그램을 설치합니다. 다음 한 줄의 코드를 실행하면 됩니다.

sudo apt update && sudo apt install yggdrasil
Yggdrasil 네트워크란 무엇이며 설치 방법

Fedora에 Yggdrasil 설치

Debian 및 Ubuntu와 달리 Fedora에서 Yggdrasil을 설치하는 프로세스는 이미 Fedora의 "커뮤니티 패키지"의 일부이기 때문에 간단합니다.

따라서 프로그램 설치는 다음 명령을 실행하는 것만큼 간단합니다.

sudo dnf copr enable rany/yggdrasil
sudo dnf install yggdrasil

아치 리눅스에 이그드라실 설치하기

마지막으로 Arch Linux에 Yggdrasil을 설치하는 것도 매우 간단합니다. Fedora와 마찬가지로 Arch의 커뮤니티 소스 저장소에 이미 포함되어 있습니다.

따라서 pacman을 통해 프로그램을 설치할 수 있습니다.

sudo pacman -Syu yggdrasil

설치 구성

완료되면 "/etc/yggdrasil.conf"를 편집하여 프로그램 동작을 구성하기만 하면 된다는 점에서 노드에 연결하도록 Yggdrasil을 설정하는 것은 매우 간단합니다. 액세스하려면 nano를 사용하십시오.

sudo nano -w /etc/yggdrasil.conf
Yggdrasil 네트워크란 무엇이며 설치 방법

Yggdrasil은 설치 후 이 파일을 생성합니다. 그러나 그렇지 않은 경우 다음 명령을 실행하여 새 구성 파일을 만들 수 있습니다.

su --command="yggdrasil -genconf > /etc/yggdrasil.conf"

공개 노드에 연결

위에서 논의한 바와 같이 프로그램을 사용하는 두 가지 방법이 있습니다.

  • 공개 노드에 연결하여 컴퓨터를 검색 가능하게 만드십시오.
  • 가상 사설망에서 여러 대의 컴퓨터를 함께 연결합니다.

첫 번째 경우, Peers:를 편집하여 "/etc/yggdrasil.conf" 파일에 공개 노드의 주소를 추가합니다. 해당 구성 파일에서 차단하십시오.

연결하려는 노드를 결정하는 구성의 섹션입니다. 따라서 여기에 나열된 시스템은 모두 공개적으로 검색하고 인터넷에서 연결할 수 있어야 합니다.

이를 염두에 두고 다음 예를 고려하십시오.

{
   # List of connection strings for outbound peer connections in URI format,
   # e.g. tls://a.b.c.d:e or socks://a.b.c.d:e/f.g.h.i:j. These connections
   # will obey the operating system routing table, therefore you should
   # use this section when you may connect via different interfaces.
   Peers: [
         tls://address.domain:port
         tcp://1.2.3.4:port
         socks://[aaaa:...:ffff]/[1111:...:9999]
   ]
 
   [...]

peers 블록은 연결하려는 모든 노드의 기본 목록입니다.

Yggdrasil 네트워크란 무엇이며 설치 방법

TLS 및 SOCKS를 사용하여 암호화된 연결을 설정하거나 TCP를 사용하여 암호화되지 않은 연결을 설정할 수 있습니다. 후자는 TLS를 지원하지 않지만 기본 네트워크 연결이 있는 소형 임베디드 장치를 연결하는 데 유용합니다.

이를 통해 커뮤니티에서 제공하는 몇 가지 노드 링크를 복사하여 공용 Yggdrasil 네트워크에 연결할 수 있습니다.

완료되면 다음 명령을 실행하여 프로그램을 활성화할 수 있습니다.

sudo systemctl enable yggdrasil
sudo systemctl start yggdrasil
Yggdrasil 네트워크란 무엇이며 설치 방법

이 웹페이지를 방문하여 네트워크에 제대로 연결되었는지 테스트할 수 있습니다.

자신만의 사설 네트워크 만들기

반면에 사설 네트워크를 만드는 것은 약간 복잡할 수 있지만 여전히 비교적 간단합니다. 사설 Yggdrasil 네트워크를 만들려면 몇 가지가 필요합니다.

  • 공개적으로 검색 가능한 시스템입니다. 이것은 CG-NAT에 의해 차단되지 않은 로컬 시스템이거나 저렴한 가상 사설 서버일 수 있습니다.
  • 서로 직접 통신할 수 없는 서로 다른 네트워크에 있는 여러 시스템

개인 공용 노드 구성

사설 Yggdrasil 네트워크를 만들려면 먼저 공용 머신이 다른 노드에 연결하도록 허용해야 합니다. 그렇게 하려면 Listen:을 수정하세요. 공개 머신의 "/etc/yggdrasil.conf" 블록

예를 들어 공용 연결을 사용하도록 구성된 노드는 다음과 같을 수 있습니다.

  [...]
 
  # Listen addresses for incoming connections. You will need to add
  # listeners in order to accept incoming peerings from non-local nodes.
  # Multicast peer discovery will work regardless of any listeners set
  # here. Each listener should be specified in URI format as above, e.g.
  # tls://0.0.0.0:0 or tls://[::]:0 to listen on all interfaces.
    Listen: [
           tls://your.ipv4.address.here:12345
           tcp://[your:ipv6:address:here]:12345
    ]
 
  [...]

IPv4와 IPv6 모두에서 포트 12345로 들어오는 모든 연결을 가져오도록 노드를 설정했습니다. 또한 IPv4 연결은 TLS로 래핑되고 IPv6은 암호화되지 않은 TCP로 래핑됩니다.

Yggdrasil 네트워크란 무엇이며 설치 방법

여기에서 Yggdrasil 서비스를 활성화하고 시작하여 설정을 적용합니다. 그 후 이 노드에 연결하는 것은 공개 노드에 연결하는 것과 비슷합니다.

주소 검색 및 액세스 제한

기본적으로 새로 생성된 Yggdrasil 노드는 올바른 포트를 사용하는 경우 들어오는 모든 연결을 수락합니다. 머신을 위한 진정한 프라이빗 VPN을 만들려면 머신을 공개 키 화이트리스트에 추가해야 합니다.

Yggdrasil 노드는 Yggdrasil이 처음 설치할 때 생성한 고유한 공개 키를 브로드캐스트하여 작동합니다. 이 키는 네트워크 내에서 사용자를 보호하고 주소를 생성하는 데 사용됩니다.

다음 명령을 실행하여 Yggdrasil 주소를 확인할 수 있습니다.

sudo yggdrasilctl getself
Yggdrasil 네트워크란 무엇이며 설치 방법

그러면 "20x:..."로 시작하는 IPv6 주소가 표시됩니다. 이 주소는 Yggdrasil을 통해 해당 컴퓨터에 직접 연결하는 데 사용할 수 있습니다.

또한 getself 명령은 또한 시스템의 공개 키를 표시합니다. 이것은 공개 노드에서 허용된 컴퓨터 목록을 만드는 데 필요한 것입니다.

액세스를 제한하도록 개인 노드 구성

Yggdrasil 노드에 대한 액세스를 제한하려면 AllowedPublicKeys:를 편집해야 합니다. 공개 노드의 "/etc/yggdrasil.conf"에서 차단하십시오. 이 노드가 수락할 모든 공개 키를 추가하기만 하면 됩니다.

예를 들어 다음은 세 개의 공개 키만 허용하는 노드에 대한 구성입니다.

 # List of peer public keys to allow incoming peering connections
  # from. If left empty/undefined then all connections will be allowed
  # by default. This does not affect outgoing peerings, nor does it
  # affect link-local peers discovered via multicast.
    AllowedPublicKeys: [
    "publickey1" 
    "publickey2"
    "publickey3"
    ]
Yggdrasil 네트워크란 무엇이며 설치 방법

완료되면 Yggdrasil 서비스를 다시 시작하여 설정을 적용할 수 있습니다.

sudo systemctl restart yggdrasil

축하합니다! 이제 Yggdrasil 네트워크가 작동하는 방식에 대한 기본적인 이해와 개인 네트워크를 연결하고 구성하는 방법에 대한 기본 아이디어가 생겼습니다.

이 모든 이야기가 인터넷 작동 방식에 대해 궁금하게 만든다면 tcpdump를 사용하여 TCP 패킷 캡처에 대한 이 기사를 확인할 수 있습니다.

자주 묻는 질문(FAQ)

1. 내 구성 파일에 친구의 Yggdrasil 주소를 추가했지만 연결할 수 없습니다. 내가 뭘 잘못하고 있니?

이것은 여러 가지 때문일 수 있습니다. 그러나 이 문제의 가장 일반적인 원인은 다음과 같습니다.

  • 두 컴퓨터 모두 NAT 뒤에 있으므로 서로 직접 연결할 수 없습니다.
  • Peers: 차단 및 Listen: "/etc/yggdrasil.conf"의 블록이 잘못 구성되었습니다.

첫 번째 원인으로 하나 이상의 시스템에 공개적으로 액세스할 수 있는지 확인해야 합니다. 또한 사용 중인 포트가 올바르게 포트 포워딩되어 있고 로컬 네트워크 외부에서 볼 수 있는지도 확인해야 합니다.

두 번째 원인의 경우 Peers: 그리고 Listen: 블록에는 실제 IPv4 또는 IPv6 주소가 포함됩니다. Yggdrasil 주소가 아니라 피어링 머신의 주소입니다.

2. 내 컴퓨터가 서로 제대로 피어링하는지 어떻게 알 수 있나요?

다음 명령을 실행하여 컴퓨터가 서로 제대로 피어링하는지 쉽게 확인할 수 있습니다.

sudo yggdrasilctl getpeers

이것은 현재 연결된 모든 피어와 Yggdrasil 네트워크 트리에서의 상대 위치를 표시합니다.

3. 강력한 Yggdrasil 키와 주소를 생성할 수 있나요?

예! 주소 마이너를 사용하여 이 작업을 수행할 수 있습니다. 이것은 앞에 특정 양의 0이 있는 공개 키 쌍을 무차별 대입으로 계산하는 간단한 프로그램입니다.

이를 수행하는 가장 일반적인 프로그램은 C++로 작성된 최신 버전의 SYG(Simple Yggdrasil Generator)입니다.