Home
Packages
Forums
Wiki
GitLab
Security
AUR
Download
コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
目次
コミュニティに貢献
最近の出来事
おまかせ表示
特別ページ
交流
ヘルプ
貢献
最近の更新
最近の議論
新しいページ
統計
リクエスト
ArchWiki
検索
検索
表示
アカウント作成
ログイン
個人用ツール
アカウント作成
ログイン
Nebulaのソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
ページ情報
表示
サイドバーに移動
非表示
←
Nebula
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
[[Category:Virtual Private Network]] [https://nebula.defined.net/ Nebula] は、トンネリングと暗号化を使用して参加ホスト間で安全なプライベートメッシュネットワークを作成する、ユーザー空間メッシュ仮想プライベートネットワーク(VPN)デーモンです。 == インストール == {{pkg|nebula}} パッケージを[[インストール]]します。 == 基本概念と用語 == Nebula は、[[tinc]] に触発されたメッシュ VPN 技術です。メッシュ VPN では、個々のノードが互いに直接トンネルを形成します。これにより、中央ノードを経由せずに、ノード間で高速な直接通信を可能にします。ノードは、証明書機関によって署名された証明書を使用して認証されます。 これは、ピアツーピア VPN 技術である [[WireGuard]] とは対照的です(ただし、WireGuard 用のメッシュネットワークマネージャーが存在します。例:{{pkg|innernet}} および {{AUR|wesher}})。 これは、星形トポロジー(ハブアンドスポークとも呼ばれる)を使用する [[OpenVPN]] とも異なります。 ;証明書機関: 証明書機関は、それに署名することでホスト証明書を作成します。 ;ライトハウス: Nebula ネットワークでは、通常、他のノードの情報ハブとして機能する少なくとも1つのライトハウスノードがあります。ライトハウスノードは、他のノードが互いを見つけてネットワークメッシュを形成するのを助けます。 ;ノード: Nebula ネットワークのノード。 ;Nebula IP: Nebula ネットワーク内のノードの IP アドレス。VPN IP としても知られています。 ;ルーティング可能な IP: ノードの「通常の」または「ネイティブ」の IP アドレス。これは、ノードの場所とネットワークの設定方法によって、公開 IP アドレスまたはプライベート IP アドレスのいずれかになります。ノードは複数のルーティング可能な IP アドレスを持つことができます。 == 例: シンプルなメッシュ VPN == === ネットワーク設定 === この例では、3つのノードがあります: * lighthouse ** Nebula IP: 192.168.100.1 ** Routable IP: 12.34.56.78 * hostA ** Nebula IP: 192.168.100.101 ** Routable IP: 10.0.0.22 * hostB ** Nebula IP: 192.168.100.102 ** Routable IP: 23.45.67.89 lighthouse は公開の静的 IP アドレスを持ち、hostA と hostB からアクセス可能です。hostA は NAT の後ろにあります。hostB は公開 IP アドレスを持っています。 このケースでは、VPN ネットワークのために /24 サブネットを使用します。このネットワークを「My Nebula Network」と呼ぶことにします。 === 証明書と鍵の生成 === 最初に、{{ic|nebula-cert ca -name "My Nebula Network"}} を使用して CA 証明書と秘密鍵を生成します。これにより、以下の2つのファイルが作成されます: * {{ic|ca.crt}}:CA 証明書ファイル * {{ic|ca.key}}:CA の秘密鍵 その後、ネットワーク内のノードのための証明書と秘密鍵ファイルを生成します: $ nebula-cert sign -name lighthouse -ip 192.168.100.1/24 $ nebula-cert sign -name hostA -ip 192.168.100.101/24 $ nebula-cert sign -name hostB -ip 192.168.100.102/24 {{ic|ca.crt}} と {{ic|ca.key}} を指定していないことに注意してください。デフォルトで、{{ic|nebula-cert}} はそれらのファイルを現在のディレクトリで探します。 このステップの後、以下のファイルが得られます: * {{ic|lighthouse.crt}}, {{ic|lighthouse.key}} * {{ic|hostA.crt}}, {{ic|hostA.key}} * {{ic|hostB.crt}}, {{ic|hostB.key}} === 設定 === lighthouse ノードにこの設定ファイルを作成します: {{hc|/etc/nebula/config.yml|2= pki: ca: /etc/nebula/ca.crt cert: /etc/nebula/lighthouse.crt key: /etc/nebula/lighthouse.key lighthouse: am_lighthouse: true firewall: outbound: - port: any proto: any host: any inbound: - port: any proto: any host: any }} hostA にこの設定ファイルを作成します: {{hc|/etc/nebula/config.yml|2= pki: ca: /etc/nebula/ca.crt cert: /etc/nebula/hostA.crt key: /etc/nebula/hostA.key static_host_map: "192.168.100.1": ["12.34.56.78:4242"] lighthouse: hosts: - "192.168.100.1" punchy: punch: true firewall: outbound: - port: any proto: any host: any inbound: - port: any proto: any host: any }} 最後に、hostB 用にこの設定ファイルを使用します: {{hc|/etc/nebula/config.yml|2= pki: ca: /etc/nebula/ca.crt cert: /etc/nebula/hostB.crt key: /etc/nebula/hostB.key static_host_map: "192.168.100.1": ["12.34.56.78:4242"] lighthouse: hosts: - "192.168.100.1" firewall: outbound: - port: any proto: any host: any inbound: - port: any proto: any host: any }} === 証明書と秘密鍵の配布 === 証明書と秘密鍵は証明書機関によって生成されたため、各ノードに配布する必要があります。[[SCP と SFTP]] はこの目的に適しています。 具体的には: * {{ic|ca.crt}} は、ライトハウス、hostA、hostB の全3ノードにコピーする必要があります * {{ic|ライトハウス.crt}} と {{ic|ライトハウス.key}} は、ライトハウスノードにコピーする必要があります * {{ic|hostA.crt}} と {{ic|hostA.key}} は、hostA にコピーする必要があります * {{ic|hostB.crt}} と {{ic|hostB.key}} は、hostB にコピーする必要があります {{Note|{{ic|ca.key}} ファイルは、どのノードにもコピーする必要はありません。安全に保管してください(紛失しないように)し、安全に管理してください(漏洩しないように)。}} === Start the nebula daemon === On each node, [[start]] {{ic|nebula.service}}. Optionally, [[enable]] it so that it will be started on boot. Note that it does not matter which node starts the nebula daemon. The lighthouse node can even be started last. Each individual node always tries to connect to the list of known lighthouse nodes, so any network interruption can be rectified quickly. === Test for mesh functionality === With a mesh network, every node is directly connected to every other node. So, even if the connection between lighthouse and both hostA and hostB is slow, traffic between hostA and hostB can be fast, as long as there is a direct link between those two. This can be demonstrated by a simple ping test on hostA: {{hc|$ ping -c 5 12.34.56.78|2= PING 12.34.56.78 (12.34.56.78) 56(84) bytes of data. 64 bytes from 12.34.56.78: icmp_seq=1 ttl=56 time=457 ms 64 bytes from 12.34.56.78: icmp_seq=2 ttl=56 time=480 ms 64 bytes from 12.34.56.78: icmp_seq=3 ttl=56 time=262 ms 64 bytes from 12.34.56.78: icmp_seq=4 ttl=56 time=199 ms 64 bytes from 12.34.56.78: icmp_seq=5 ttl=56 time=344 ms --- 12.34.56.78 ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4004ms rtt min/avg/max/mdev = 199.141/348.555/480.349/108.654 ms }} {{hc|$ ping -c 5 192.168.100.1|2= PING 192.168.100.1 (192.168.100.1) 56(84) bytes of data. 64 bytes from 192.168.100.1: icmp_seq=1 ttl=64 time=218 ms 64 bytes from 192.168.100.1: icmp_seq=2 ttl=64 time=241 ms 64 bytes from 192.168.100.1: icmp_seq=3 ttl=64 time=264 ms 64 bytes from 192.168.100.1: icmp_seq=4 ttl=64 time=288 ms 64 bytes from 192.168.100.1: icmp_seq=5 ttl=64 time=163 ms --- 192.168.100.1 ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4004ms rtt min/avg/max/mdev = 162.776/234.874/288.073/42.902 ms }} {{hc|$ ping -c 5 192.168.100.102|2= PING 192.168.100.102 (192.168.100.102) 56(84) bytes of data. 64 bytes from 192.168.100.102: icmp_seq=1 ttl=64 time=106 ms 64 bytes from 192.168.100.102: icmp_seq=2 ttl=64 time=2.14 ms 64 bytes from 192.168.100.102: icmp_seq=3 ttl=64 time=4.53 ms 64 bytes from 192.168.100.102: icmp_seq=4 ttl=64 time=4.29 ms 64 bytes from 192.168.100.102: icmp_seq=5 ttl=64 time=5.39 ms --- 192.168.100.102 ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4006ms rtt min/avg/max/mdev = 2.136/24.535/106.344/40.918 ms }} Notice that the connection between hostA and lighthouse is slow, but the connection between hostA and hostB is very fast. Also notice that the first packet between hostA and hostB is delayed a bit, but subsequent packets take almost no time at all. == Configuration options == ;{{ic|listen.port}}:This is the listening port for the nebula daemon, which by default is 4242. On a lighthouse node, or a node with a static IP address, set this to any other number in order to personalize your setup and reduce the chances of unwanted service discovery and DDoS attacks on that port. Then update {{ic|static_host_map}} to reflect the change. :On a node with a dynamic IP address, it is recommended to set this to 0, such the nebula daemon will use a random port for communication. ;{{ic|logging.level}}:By default, the nebula daemon logs INFO-level messages. Thus handshakes are printed, and this can generate a lot of log messages. Set it to {{ic|warning}} in order to reduce the amount of messages logged. ;{{ic|relay}}:This option can be used if a node cannot be reached directly from another node. Relay nodes help forward the communication between such nodes. ;{{ic|firewall}}: This option can be used to allow only certain traffic to and from a node. == Troubleshooting == === My lighthouse node takes forever to handshake === If your lighthouse node needs a long time to handshake, and it prints multiple handshake messages all at once when handshake is completed, maybe it does not support {{ic|recvmmsg()}}. To get around this issue, add this configuration option: {{hc|/etc/nebula/config.yml|2= listen: batch: 1 }} This problem usually happens if your Linux kernel is too old (<2.6.34). The proper solution is to upgrade it. == See also == * [https://github.com/slackhq/nebula Nebula Project] * [https://theorangeone.net/posts/nebula-intro/ Blog post explaining Nebula VPN]
このページで使用されているテンプレート:
テンプレート:AUR
(
ソースを閲覧
)
テンプレート:Hc
(
ソースを閲覧
)
テンプレート:Ic
(
ソースを閲覧
)
テンプレート:Note
(
ソースを閲覧
)
テンプレート:Pkg
(
ソースを閲覧
)
テンプレート:TranslationStatus
(
ソースを閲覧
)
Nebula
に戻る。
検索
検索
Nebulaのソースを表示
話題を追加