⚠️ このエントリーは1年以上前に作成されたものです。情報の賞味期限切れにご注意ください。
🇺🇦 ウクライナに栄光あれ 🇺🇦
昨今、暴走老害のせいで世界情勢が厳しくなっているが、一応双方の公式発表は見てみたい。
ロシアのサイトを巡回するのは普通に怖いので、VM内に隔離すると共にネットワークを分離する。

VMwareの設定
今回使うネットワークを作る。編集 > 仮想ネットワーク エディタ
から、ネットワークを追加をクリック。
適当なVMnetを追加し、ホストオンリーを選択。ホスト仮想アダプタをこのネットワークに接続する
のチェックを外す。

ゲストOSの準備
今回は適当にUbuntuでやった。
ネットワーク アダプタだけ最初に作ったVMnetにするのを忘れずに。

opnSenseの準備
ダウンロード
https://opnsense.org/download/ から、
- Architecture: amd64
- Select the image type: dvd
- Mirror: 西側諸国の好きなとこ
でインストール用のiso.bz2を入手する。
7zなどで解凍すればisoができる。
sha256もチェックすること。
VM
FreeBSD(64bit)に設定して、2vCPU / 2GBくらいのVMを作る。
CD/DVDにダウンロードしたisoファイルを設定する。
ネットワークアダプタを追加して、片方をブリッジ、もう片方を最初に作ったVMnetにする。

インストール
基本的に適当でOK。
WAN / LANの自動検出が上手くいかないことがあるので、その場合はブリッジ側のNICをWANに、ホストオンリー側のNICをLANに設定して進める。
設定
一旦適当なVMを作って、ネットワーク アダプタを最初に作ったVMnetに設定する。
Ubuntuで192.168.1.1
にアクセスしてWebGUIを開く。
日本語化
System > Settings > General
からSystem > Language
をJapanese
にする。
WANからWebGUIにアクセスできるようにする
インターフェース > [WAN]
からGeneric configuration > プライベートネットワークを拒否
のチェックを外す
ファイアウォール > ルール > WAN
にルールを追加
- 動作: 許可
- インターフェース: WAN
- 方向: in
- TCP/IPバージョン: IPv4
- プロトコル: TCP
- 送信元: 任意
- 送信先: WANアドレス
- 送信先ポート範囲: HTTPS / HTTPS
で保存。
WAN側のアドレスにHTTPSでアクセスして、WebGUIが返ってきたらOK。
LAN側のマシンは全て信頼できないので、WebGUIのListenをWANのみにする。
システム > 設定 > 管理
からweb GUI > リスンインターフェース
をWAN
にする。
必ずWAN側からアクセスできるのを確認してからやれよな!!俺は間違いなく言ったぞ!!!ロックアウトされても知らねーからな!!!!!!
Mullvadに接続
opnSenseのドキュメントに詳しくまとまっている。
→ https://docs.opnsense.org/manual/how-tos/wireguard-client-mullvad.html
WireGuardをインストール
システム > ファームウェア > プラグイン
でos-wireguard
を検索して、右側の+ボタンをクリックしてインストールする。
出てこないときとかエラーが出たときは更新
タブからパッケージのアップデートをして再起動すると大抵直る。
ブラウザをリロードしてWireGuardの設定画面を開けるようにしておく。
接続先サーバーの設定
VPN > WireGuard
からEndpoints
タブに移動して、+ボタンをクリックして設定を追加する。
https://mullvad.net/servers/ から接続先のサーバーを選ぶ。
今回はとりあえず香港3に繋ぎたいので、以下のような設定を入れる。
- 名前: Mullvad-HK3
- Public Key:
i/7J2fCZq0lyB/tIDUz9sZGmaJ9FZPh93mARV/gZ9xo=
- 秘密共有鍵: 空のまま
- Allowed IPs: 0.0.0.0/0
- Endpoint Address: hk3-wireguard.mullvad.net
- Endpoint Port: 51820
- Keepalive: 60
ローカル設定
VPN > WireGuard
からローカル
タブに移動して、+ボタンをクリックして設定を追加する。
詳細モードを有効にしないとDNSの設定ができないので注意。
- 名前: Mullvad
- Public Key: 空のまま
- Private Key: 空のまま
- リスンポート: 51821
- DNS サーバ: 1.1.1.1, 1.0.0.1 または好きなDNSサーバー
- Tunnel Address: 192.168.1.254/32
- ピア: Mullvad-HK3
- Disable Routes: チェックを外したまま
保存したら編集ボタンをクリックして、生成されたPublic Key
をコピーする。
適当なshellから、
curl -sSL https://api.mullvad.net/app/v1/wireguard-keys -H "Content-Type: application/json" -H "Authorization: Token 【MullvadのアカウントID】" -d '{"pubkey":"【生成されたPublic Key】"}'
Bashを叩く。
{
"id": "P9oL%2BaDkAAAAAAAA%2FdBOExpBBBBBBBBBBYt1k3i8TkY%3D",
"pubkey": "P9oL+aDkAAAAAAAA/dBOExpBBBBBBBBBBYt1k3i8TkY=",
"ipv4_address": "10.108.38.XXX/32",
"ipv6_address": "fc00:bbbb:bbbb:bb01::YY:ZZZZ/128"
}
JSONのようなJSONが返ってくるので、Tunnel Address
にipv4_address
を貼り付けて保存する。
接続
VPN > WireGuard
から全般
タブに移動して、Enable WireGuard
にチェックを入れて適用する。
List Configuration
タブに移動して、
interface: wg0
public key: P9oL+aDkAAAAAAAA/dBOExpBBBBBBBBBBYt1k3i8TkY=
private key: (hidden)
listening port: 51821
peer: i/7J2fCZq0lyB/tIDUz9sZGmaJ9FZPh93mARV/gZ9xo=
endpoint: 89.45.6.98:51820
allowed ips: 0.0.0.0/0
latest handshake: 25 seconds ago
transfer: 72.39 MiB received, 130.20 MiB sent
persistent keepalive: every 1 minute
YAMLのような表示が出ていればOK。
NAT
ファイアウォール > NAT > 外向き
からモード
を手動外向き NAT ルール生成
にして保存する。
Manual rules
の+ボタンをクリックして設定を追加する。
- インタフェース: WireGuard (Group)
- TCP/IP バージョン: IPv4
- プロトコル: any
- 送信元アドレス: LANネット
- 送信元ポート: 任意
- 送信先アドレス: 任意
- 送信先ポート: 任意
- トランスレーション / ターゲット: インタフェースアドレス
この状態になっていればOK。
全てのトラフィックがMullvadのWireGuardを通るようになるし、WAN側にも漏れない。
万が一ゲストOSが乗っ取られても、物理マシンにはほぼ影響がない。


ロシアのサイトに繋ぐ
ロシア国内のVPSとか有料のプロキシとかを使って規制を突破する。
対策されたら嫌なので、どこを使えばいいかは書かない。
