【VPN】 WireGuard Part.1
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑これを2行になるようにコピペしてからスレ立てしてください
WireGuardは最先端の暗号技術を利用した、極めてシンプルかつ高速な最新のVPNです。
WireGuard は2020年から Linux カーネルに組み込まれています。
■ WireGuard公式サイト
https://www.wireguard.com/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured まぁDockerでWireGuardするなら>>7のLinuxServer.ioのコンテナが安定だと思う。
Docker使わなくても鍵作ったらあとは設定ファイルしかいじるところないから環境が汚れるってこともないとは思うけど。
簡単さで鼻血出したいなら>>4にあるTalescaleも試してみるといい。
WireGuardの設定をさらに簡単にするサービスで、イメージとしては公開鍵交換サーバー+DDNSな感じかな?
https://tailscale.com/blog/how-tailscale-works/を読むと仕組みが分かる。 >>13
サーバ立てられる人なら
dockerfile読むようにするだけで
一瞬で慣れると思うよ、docker
https://github.com/linuxserver/docker-wireguard/blob/master/Dockerfile
慣れるとコンテナ無しの時代が信じられんくらい便利だから
試してみてね。 >>14
おー、面白そうな実装だねえ
wgつかってメッシュネットワーク作るんだすごい
今の自分にはオーバーキルな感じもするけど
じっくり読んでみたい
OSSじゃ無いのが少し残念 昨晩は充実した情報提供ありがとうございました
先ず基礎的な事から身体で覚えたいので wireguard をホストマシンにインスコして戦っております
コンテナじゃないのはうちのメイン鯖がDocker使えないと言う理由もあるので 取り敢えず開通自体はいとも簡単に終わりました
アプリの設定見てみたらOpenVPNみたく事前共有鍵も使えるんですね
自分以外の接続は徹底排除したいのでこれは設定しなくては あんまりよく分かってないんだけど、PSKは将来的な量子コンピューティングによる暗号解読に備えたオプションなんで、現状設定する意味があるかというとあんまりない、はず。(だよね?)
この辺に書いてあるhttps://www.wireguard.com/known-limitations/
「量子コンピュータが実用化された場合を考慮して、既存の公開鍵暗号に対称鍵暗号のレイヤーを追加するために事前共有鍵を生成することもできます:」https://wiki.archlinux.jp/index.php/WireGuard
ただ、よりセキュアなオプションがあるなら設定した方が精神衛生的にいいというのはわかる。 何しろ使用開始してから半日も経って無いので内容の把握もこれからなんですが
OpenVPNの tls-auth に準ずる機能があれば是非設定しておきたいと思いまして
https://www.openvpn.jp/document/how-to/#Security
(OpenVPNのセキュリティを強化する の項目)
全ての通信をWireGuard経由にする方法も模索してましたが
そちらは成功しました 送信元の[Peer]でAllowedIPs = 0.0.0.0/0, ::/0 その辺りはOpenVPNのやり方と似たような感じでしたね
熟練者に書いて頂くと説得力がありますな
認証に関しては某ブログに「認証情報が不正ならそもそも応答しない」みたいな事が掲載されておりました
あまりピリピリする必要も無さそうですね しかしこれはいい
何がいいかって、設定の簡単さもさることながらOpenVPNに付きものの
証明書の期限と言う煩わしさからの解放感
すばらしいの一言に尽きる なおズルして同じ秘密鍵/共有鍵を使い回そうとしたら繋がりませんですた
よく出来てやがる 秘密鍵/公開鍵の間違いですた
入門者は繋がっただけでも感激しているのでズルの再検証は明日にでもやろうかと WireGuardデビュー初日 Dockerイメージ不使用での作業内容
1. wireguardメタパッケージインスコ kmod & 管理ツール入る
2. 秘密鍵/公開鍵を鯖PC用・ケータイ用に生成 簡素なコマンド4回
3. 生成した鍵を反映した設定ファイルを書く ものの数行
4. IPフォワーディング・NAT設定(拙はOpenVPNでの設定流用の為ほぼ作業せず)
5. HGWの穴空け
6. 鯖PCでwireguardデーモン起動し、設定をインポートしたケータイアプリでトグルスイッチON
7. ( ゚Д゚)ウマー
初構築での作業時間はだいたい正味1時間強 簡単ですた
https://i.imgur.com/ZoZB50a.png OpenVPNとどれくらい差があるか試してみたくなってきた 接続先のLANに接続したい時に書くNAPTの設定がよくわからん。[Interface]のところにPostUp,PostDownの二行書くやつ。 興味をお持ちの方がいらっしゃる様なのでPCでの設定例を上げておきます
https://i.imgur.com/gxgW0jU.jpg
なお残念ながら他のマシンと同じ鍵で繋ぎに行くのは不可能ですね
この辺はOpenVPNと同じです ちっ いや、コピペは流石に俺でもできる。iptablesの知識が無いから何やってるかわからんという話で。 >>32
b7-さんが書きに来るとは思わず僅差で遅れて貼ったものなのでお気になさらず
他にも感化されてる人がいるのですよ
私もiptablesはその都度調べてるんですがマジ呪文ですよね
こんな感じの事をやってる様ですが
natテーブルを利用したLinuxルータの作成:習うより慣れろ! iptablesテンプレート集(2)(2/6 ページ) - @IT
https://atmarkit.itmedia.co.jp/ait/spv/0505/17/news131_2.html ufwでも手軽に nat を扱えるといいんだけどね
確かbefore.rulesに追記しないとならなかった様な
俺はもう使えてるからいいとして iptablesに慣れすぎて他に拒否感がでてしまうもうだめだわ 結果が出るなら慣れたやり方がいちばん
nft のコマンド構文でやってみようかと思いman開いて5分後にそっ閉じしたワイもおるで ipコマンドもそうだけど、だらだら書いていくタイプ増えたよね。
オプションでどの位置でもパラメータ書けるみたいなほうが使いやすいんだけどな。 AllowedIPsに0.0.0.0/0,::/0だと全部WireGuard経由になるじゃん
0.0.0.0/0だけの指定だとIPv6パケットはVPN経由じゃなくて直接出ていくってことになる? その認識で良いのでない?
試すのが手っ取り早そうですが 細かいメモ書きなんですが、
ubuntuでwgクライアントを設定すると、
`/usr/bin/wg-quick: line 32: resolvconf: command not found`
エラーが出ます
sudo apt install openresolve
すると解決します
lts20.04と22.04betaで確認 これ使う様な人は大丈夫だと思うが一応氏の補足
× openresolve
○ openresolv passwdだったりpasswordだったりみたいなもんか ラズパイをWireGuardサーバーとして宅内のLAN(192.168.1.0/24)に繋ぎたいんだけど、なぜかPCからの接続だけうまくいかないので助けてほしいです…。
PiVPN使って設定したラズパイのwg0.confはこんな感じ
[Interface]
PrivateKey =
Address = 10.6.0.1/24
MTU = 1420
Listen Port = 51820
PostUp = iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
[Peer]
PublicKey =
PresharedKey =
AllowedIPs = 10.6.0.2/32
クライアント側のconfはこんな感じ
[Interface]
PrivateKey =
Address = 10.6.0.2/24
DNS = 9.9.9.9, 149.112.112.112
[Peer]
PublicKey =
PresharedKey =
Endpoint = vpn.example.com:51820
AllowedIPs = 10.6.0.0/24, 192.168.1.0/24
WindowsPCのWireGuardでトンネルの有効化をすると、ちゃんと緑色の盾が出て有効になるんだけど、192.168.1.xxxにpingが通らない(タイムアウト)。
iPhoneとAndroid端末も同じ設定(同じconfファイル)で試すとこちらはちゃんとつながって、192.168.1.xxxのNASにログインもできる。
PCとスマホで何が違うのか全く分からず困っています…。 >>46
鯖
AllowedIPs = 10.6.0.2/32, 192.168.1.0/24
でどうでしょ
うちは 192.168/16 ネットワーク全許可ですが >>46
あと鯖の [Peer] セクションはクライアントの分全てを書きます
ご存知だとは思いますが確認と言う事で >>47-48
ありがとうございます。
試してみましたが状況は変わらずでした。 回線とブラウザが変わってると誰だかわかりませんね
まあこれ使う人ならごにょごにょしているうちにどうにかなるでしょう どうしようもないのでTalescaleで繋いでます。
スマホだとうまくいくのにPCだとうまくいかないのホント謎。 >46
鯖
Address = 10.6.0.1/32
client
Address = 10.6.0.2/32
AllowedIPs = 192.168.1.0/24
うちはこれでpcからつないでる >>46
そもそもWindowsPCって?
Win10?11?22H2?
俺の場合Win11 22H2で接続が突然できなくなった。
トレイのステータスを見たら restart service requiredって出てた。
サービスが勝手に無効になってた。
で、自動にしたら繋がったよ。
一度サービスを見てみたらどう? ASUSのルーターでも新しいファームウェアで使えるようになってる WireGuard経由でWoLパケットを送信する事って出来ますか?
Android端末にWoLアプリを入れてWiFi内では出来る事確認したんですが、VPNではうんともすんとも言わない
WireGuard入れてるRasPiにwakeonlan入れて、VPN経由でSSHログイン・WoL送信は出来たんですが
ちょっと面倒&何か違う >>55
上手くやればできるみたいだけど、WoLのパケットは通常はブロードキャストで、
ルータを超えられないからそのままではWGを経由できない。
ttps://qwerty.work/blog/2008/12/wolwake-on-lanmagic-packet.php それは普通のルーターの外からの場合だと思いますが、VPNでも同じなんですかね? VPNゲートウェイが作るLANのサブネットと繋ぎだいLANのサブネットがおんなじならいける可能性は無くもないけど、そんなネットワークは嫌だ 亀横ですまんがスマホでVPN繋げる前にWoLアプリでDDNS宛にブロードキャストしたらWake On Wanできた
とりあえずこれで急場をしのげる クライアントが泥もiOSもWin10,11も問題なく接続できるのに
8.1だけが接続できない
同環境でsoftetherは使えてるけどWG自体の設定以外のどこに問題があるんだろう NGNを通過するフレッツ光系の回線でipv6でのWireGuardのトンネルを掘ろうとテスト
したがどうにも繋がらない。
HGWのフィルターやルーターのファイアウォールをどんなに緩くしてもダメで、パケットキャプチャー
とかの結果を見ると、NGN内でハンドシェイクのパケットが破棄されてるとしか思えない。
結局、それが正解でWireGuardではHandshakeのパケットにDSCP 0x88 (AF41)のQoS情報が付加され、
それがNGN内でパケット破棄条件に当てはまっていたということだった。
WireGuardが使用するポートの通信をip6tablesでDSCP 0に置き換えるという強引な方法で何とか
開通したが、これってWireGuardではよく知られてることなんだろうか?
QoS絡みということで、ひかり電話の契約の有無とかNTTの東西の差とか、こうした現象が発生する
条件がある気がする。ちなみに西日本のひかり電話ありで現象を確認した。 >>62
Wireguardというより、NGNがDSCP値でパケットが破棄するのは結構有名だと思う。
けど、WireguardでDSCP値が利用されているとは思わなかったから、自分も1週間ぐらい悩んだよ。