Computer >> Máy Tính >  >> Hệ thống >> Linux

Mạng Yggdrasil là gì và cách cài đặt nó

Mạng Yggdrasil là gì và cách cài đặt nó

Mạng Yggdrasil là mạng lớp phủ IPv6 nhằm mục đích tạo ra một mạng lưới phân cấp và được mã hóa. Nó thực hiện điều này bằng cách coi các mạng như những chiếc lá trong cây nhị phân. Là một mạng lớp phủ, Yggdrasil cũng đóng vai trò như một mạng riêng ảo (VPN) cho phép người dùng tương tác với nhau một cách an toàn.

Hơn nữa, Yggdrasil miễn phí, tương đối dễ cài đặt và cũng có sẵn cho nhiều nền tảng. Điều này làm cho Yggdrasil trở thành một lựa chọn thay thế mạnh mẽ cho những người quan tâm đến việc có kết nối an toàn, riêng tư với những người khác.

Mạng lưới và Yggdrasil là gì?

Yggdrasil đạt được mạng lưới bằng cách biểu diễn mạng dưới dạng một cây gồm các nút được kết nối với nhau. Trong đó, các nút này có thể hoạt động như các rơle cho các nút khác. Điều này làm cho Yggdrasil trở thành một mạng lưới thực sự.

Mạng Yggdrasil là gì và cách cài đặt nó

Hơn nữa, cấu trúc của mạng cho phép Yggdrasil dễ dàng tìm thấy máy hoặc trang web bạn muốn truy cập. Đổi lại, điều này cho phép bạn tương tác với những người dùng khác mà không cần máy chủ trung tâm định tuyến lưu lượng truy cập cho bạn.

Tại sao sử dụng Yggdrasil?

Điểm hấp dẫn chính của Yggdrasil là nó thay đổi cách dữ liệu được định tuyến qua Internet. Nó đạt được điều đó bằng cách giả định một số điều về trạng thái mặc định của mạng đã nói:

  • Tất cả các nút được kết nối với ít nhất một nút khác.
  • Mỗi nút có thể chuyển tiếp dữ liệu đến nút khác một cách minh bạch.
  • Mỗi nút có thể phát các nút được kết nối với nó.
Mạng Yggdrasil là gì và cách cài đặt nó

Những giả định này tạo ra một cấu trúc vừa cứng nhắc, dễ đoán nhưng cũng rất linh hoạt. Ví dụ:bạn có thể làm cho máy của mình có thể truy cập công khai bằng cách chỉ kết nối với một nút công khai. Sau đó, nút công khai này được kết nối với các nút khác. Từ đó, những người dùng khác có thể ngang hàng với nút đó để kết nối với bạn.

Mạng Yggdrasil là gì và cách cài đặt nó

Không chỉ vậy, Yggdrasil còn cho phép bạn tạo một mạng con của các máy cục bộ. Do đó, điều này rất hữu ích nếu bạn muốn tạo VPN.

Cách cài đặt Yggdrasil

Như đã thảo luận ở trên, Yggdrasil có sẵn trên nhiều nền tảng và hệ điều hành. Điều này bao gồm hầu hết các bản phân phối Linux.

Tuy nhiên, Yggdrasil không phải lúc nào cũng nằm trong kho lưu trữ mặc định. Do đó, một số bản phân phối yêu cầu bạn bao gồm các nguồn của nó trước khi cài đặt.

Cài đặt Yggdrasil trong Debian và Ubuntu

Ví dụ:nếu bạn muốn cài đặt Yggdrasil trong Debian và Ubuntu, trước tiên bạn phải thêm khóa GPG chính thức của chúng vào apt. Để làm điều đó, hãy chạy các lệnh sau:

gpg --fetch-keys https://neilalexander.s3.dualstack.eu-west-2.amazonaws.com/deb/key.txt
gpg --export 569130E8CA20FBC4CB3FDE555898470A764B32C9 | sudo apt-key add -
Mạng Yggdrasil là gì và cách cài đặt nó

Từ đó, bạn cần thêm kho lưu trữ vào danh sách các nguồn mà apt tìm kiếm trong các gói của nó:

echo 'deb https://neilalexander.s3.dualstack.eu-west-2.amazonaws.com/deb/ debian yggdrasil' | sudo tee /etc/apt/sources.list.d/yggdrasil.list
Mạng Yggdrasil là gì và cách cài đặt nó

Sau khi hoàn tất, hãy cập nhật apt và cài đặt chương trình. Làm điều đó bằng cách chạy một dòng mã này:

sudo apt update && sudo apt install yggdrasil
Mạng Yggdrasil là gì và cách cài đặt nó

Cài đặt Yggdrasil trong Fedora

Trái ngược với Debian và Ubuntu, quá trình cài đặt Yggdrasil trong Fedora rất đơn giản, vì nó đã là một phần của “Gói cộng đồng” của Fedora.

Như vậy, việc cài đặt chương trình đơn giản như chạy các lệnh:

sudo dnf copr enable rany/yggdrasil
sudo dnf install yggdrasil

Cài đặt Yggdrasil trong Arch Linux

Cuối cùng, cài đặt Yggdrasil trong Arch Linux cũng cực kỳ đơn giản. Giống như Fedora, nó đã được đưa vào kho nguồn cộng đồng của Arch.

Như vậy, bạn có thể cài đặt chương trình thông qua pacman:

sudo pacman -Syu yggdrasil

Định cấu hình cài đặt của bạn

Sau khi hoàn tất, việc thiết lập Yggdrasil để kết nối với một nút rất đơn giản, trong đó bạn chỉ cần chỉnh sửa “/etc/yggdrasil.conf” để định cấu hình hoạt động của chương trình. Để truy cập nó, hãy sử dụng nano:

sudo nano -w /etc/yggdrasil.conf
Mạng Yggdrasil là gì và cách cài đặt nó

Yggdrasil sẽ tạo tệp này sau khi cài đặt. Tuy nhiên, nếu không, bạn có thể chạy lệnh này để tạo tệp cấu hình mới:

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

Kết nối với nút công khai

Như chúng ta đã thảo luận ở trên, có hai cách để sử dụng chương trình:

  • Kết nối với một nút công khai để làm cho máy của bạn có thể được phát hiện.
  • Kết nối nhiều máy với nhau trong một mạng riêng ảo.

Đối với cách đầu tiên, hãy thêm địa chỉ của một nút công khai vào tệp “/etc/yggdrasil.conf” của bạn bằng cách chỉnh sửa Peers: trong tệp cấu hình đó.

Đây là phần trong cấu hình xác định các nút bạn muốn kết nối. Do đó, tất cả các máy được liệt kê ở đây phải được phát hiện công khai và có thể kết nối từ Internet.

Với ý nghĩ đó, hãy xem xét ví dụ sau:

{
   # 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]
   ]
 
   [...]

Khối ngang hàng là danh sách cơ bản gồm tất cả các nút bạn muốn kết nối.

Mạng Yggdrasil là gì và cách cài đặt nó

Nó có thể thiết lập một kết nối được mã hóa bằng TLS và SOCKS hoặc một kết nối không được mã hóa bằng TCP. Cái sau hữu ích để kết nối các thiết bị nhúng, nhỏ không hỗ trợ TLS nhưng có kết nối mạng cơ bản.

Cùng với đó, bạn có thể kết nối với mạng Yggdrasil công cộng bằng cách sao chép một số liên kết nút do cộng đồng của nó cung cấp.

Sau khi hoàn tất, bạn có thể bật chương trình bằng cách chạy các lệnh sau:

sudo systemctl enable yggdrasil
sudo systemctl start yggdrasil
Mạng Yggdrasil là gì và cách cài đặt nó

Bạn có thể kiểm tra xem bạn đã kết nối đúng cách với mạng hay chưa bằng cách truy cập trang web này.

Tạo mạng riêng của riêng bạn

Mặt khác, việc tạo một mạng riêng có thể hơi liên quan nhưng vẫn tương đối đơn giản. Để tạo một mạng Yggdrasil riêng, bạn sẽ cần một số thứ:

  • Máy có thể khám phá công khai. Đây có thể là một máy cục bộ không bị CG-NAT chặn hoặc một máy chủ riêng ảo giá rẻ.
  • Một số máy nằm trong các mạng khác nhau không thể nói chuyện trực tiếp với nhau.

Định cấu hình nút công khai cá nhân của bạn

Để tạo một mạng Yggdrasil riêng, trước tiên bạn cần cho phép máy công cộng của mình kết nối với các nút khác. Để làm điều đó, hãy sửa đổi Listen: khối “/etc/yggdrasil.conf” của máy công cộng.

Ví dụ:một nút được định cấu hình để sử dụng các kết nối công cộng có thể trông giống như sau:

  [...]
 
  # 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
    ]
 
  [...]

Chúng tôi đã thiết lập nút để nhận mọi kết nối đến trong cổng 12345 từ cả IPv4 và IPv6. Hơn nữa, kết nối IPv4 được bao bọc trong TLS, trong khi IPv6 nằm trong TCP không được giải mã.

Mạng Yggdrasil là gì và cách cài đặt nó

Từ đây, hãy bật và khởi động dịch vụ Yggdrasil để áp dụng cài đặt của bạn. Sau đó, kết nối với nút này sẽ tương tự như kết nối với một nút công khai.

Khám phá địa chỉ và hạn chế quyền truy cập

Theo mặc định, nút Yggdrasil mới được tạo của bạn sẽ chấp nhận mọi kết nối đến, miễn là chúng đang sử dụng đúng cổng. Để tạo một VPN thực sự riêng tư cho các máy của bạn, bạn cần thêm chúng vào danh sách cho phép khóa công khai.

Một nút Yggdrasil hoạt động bằng cách phát một khóa công khai duy nhất mà Yggdrasil đã tạo khi bạn cài đặt nó lần đầu tiên. Khóa này được sử dụng để bảo mật bạn trong mạng và tạo địa chỉ của bạn.

Bạn có thể kiểm tra địa chỉ Yggdrasil của mình bằng cách chạy lệnh sau:

sudo yggdrasilctl getself
Mạng Yggdrasil là gì và cách cài đặt nó

Điều này sẽ hiển thị một địa chỉ IPv6 bắt đầu bằng “20x:…” Nó có thể được sử dụng để kết nối trực tiếp với máy đó thông qua Yggdrasil.

Hơn nữa, getself lệnh cũng sẽ hiển thị khóa công khai của máy. Đây là những gì bạn cần để tạo danh sách các máy được phép trong nút công khai của mình.

Định cấu hình nút cá nhân của bạn để hạn chế quyền truy cập

Để hạn chế quyền truy cập vào nút Yggdrasil của bạn, bạn cần chỉnh sửa AllowedPublicKeys: chặn trong “/etc/yggdrasil.conf” của nút công khai của bạn. Chỉ cần thêm tất cả các khóa công khai mà bạn muốn nút này chấp nhận.

Ví dụ:đây là cấu hình cho một nút chỉ chấp nhận ba khóa công khai:

 # 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"
    ]
Mạng Yggdrasil là gì và cách cài đặt nó

Sau khi hoàn tất, bạn có thể áp dụng cài đặt của mình bằng cách khởi động lại dịch vụ Yggdrasil:

sudo systemctl restart yggdrasil

Xin chúc mừng! Bây giờ bạn đã có hiểu biết cơ bản về cách Mạng Yggdrasil hoạt động, cũng như ý tưởng cơ bản về cách kết nối và cấu hình một mạng riêng.

Nếu tất cả cuộc nói chuyện này khiến bạn tò mò về cách thức hoạt động của Internet, bạn có thể xem bài viết này về cách bắt các gói TCP bằng tcpdump.

Câu hỏi Thường gặp

1. Tôi đã thêm địa chỉ Yggdrasil của bạn mình vào tệp cấu hình của mình nhưng không thể kết nối với anh ấy. Tôi đang làm gì sai?

Điều này có thể là do một số điều. Tuy nhiên, các nguyên nhân phổ biến nhất cho vấn đề này là:

  • Cả hai máy đều sử dụng NAT và do đó, không thể thiết lập kết nối trực tiếp với nhau.
  • Peers: khối và Listen: khối trong “/etc/yggdrasil.conf” được định cấu hình không chính xác.

Đối với nguyên nhân đầu tiên, bạn cần đảm bảo rằng ít nhất một máy có thể truy cập công khai. Bạn cũng cần đảm bảo rằng cổng bạn đang sử dụng là cổng được chuyển tiếp đúng cách và có thể được nhìn thấy từ bên ngoài mạng cục bộ của bạn.

Đối với nguyên nhân thứ hai, hãy đảm bảo Peers:Listen: các khối chứa địa chỉ IPv4 hoặc IPv6 thực của máy ngang hàng chứ không phải địa chỉ Yggdrasil của nó.

2. Làm cách nào để biết các máy của tôi có đang ngang hàng với nhau hay không?

Bạn có thể dễ dàng kiểm tra xem các máy của mình có ngang hàng với nhau hay không bằng cách chạy lệnh sau:

sudo yggdrasilctl getpeers

Điều này sẽ hiển thị tất cả các đồng nghiệp hiện được kết nối với bạn cũng như vị trí tương đối của chúng trong cây mạng Yggdrasil.

3. Có thể tạo khóa và địa chỉ Yggdrasil mạnh không?

Đúng! Bạn có thể làm điều này bằng cách sử dụng một công cụ khai thác địa chỉ. Đây là một chương trình đơn giản sẽ tính toán một cách thô bạo một cặp khóa công khai có một số lượng 0 nhất định ở phía trước.

Chương trình phổ biến nhất để làm điều này là Simple Yggdrasil Generator (SYG) với phiên bản mới nhất được viết bằng C ++.