WireGuardは最新の高速VPNで、正式に検証されており、WireGuardプロトコルが安全であることの数学的証明が存在することを意味しています。このガイドでは、MikrotikルーターをWireGuardネットワークに接続する方法を見ていきますが、サーバーとしてではなく、ピア(angl. peer)として接続します。
Mikrotikは強力で手頃な価格のネットワーク機器のブランドで、特別なオペレーティングシステムであるRouterOSが実行されています。Mikrotikネットワーク機器は、家庭用ネットワーク(ホームルーター、WiFiアクセスポイントなど)にも、小規模から大規模な企業ネットワークにも利用でき、インターネットアクセスプロバイダーが使用する非常に強力な製品も用意されています。
しかし、まず質問です。なぜMikrotikルーターをWireGuard(VPN)ネットワークにピアとして接続したいのでしょうか?1つの使用例は、その管理インターフェースにリモートアクセスしたい場合です。これはパブリックIPアドレスを介して行うこともできますが、問題はそのIPアドレスが固定されていない場合(まあ、それは解決可能ですが)、特にルーターが「NATの背後に隠れており」、インターネットから直接アクセスできない場合です。解決策は簡単です。ルーターを設定して自動的にVPNサーバーに接続し、その後VPNアドレスを介してアクセスすることができます。
Mikrotikにはウェブインターフェース、Winboxアプリケーション、またはSSH接続を介して接続できます。しかし、まず準備が必要です。
MikrotikデバイスでWireGuardを使用したい場合は、RouterOS v7以降がインストールされている必要があります。MikrotikをWireGuardネットワークに接続するには、WireGuardサーバーが必要です。すでにセットアップされていると仮定します。そこから必要なもの:
- 外部IPアドレスとピア(vrstniki)が接続するポート;
- その公開鍵;
- Mikrotikクライアントの事前共有鍵(PSK)(WireGuardサーバーで作成);
- Mikrotikに割り当てるVPN IPアドレスも考慮します。
では、Mikrotikに戻ります。ウェブインターフェースまたはWinboxでコンソールを開き(SSH経由で接続する場合は自動的に開きます)、まずwireguard1という名前の新しいネットワークインターフェースを作成します。これは何らかのポートをリッスンしています(使用されていないポートなら何でも設定できます。この例では51821):
/interface/wireguard/add listen-port=51821 name=wireguard1
WireGuardネットワークインターフェースのリストを表示したい場合は、コマンドを入力します:
/interface/wireguard/print
Mikrotikピアの秘密鍵と公開鍵も表示する出力が得られます:
Flags: X - disabled; R - running
0 R name="wireguard1" mtu=1420 listen-port=51820 private-key="zasebni-kljuc-Mikrotik-vrstnika" public-key="javni-kljuc-Mikrotik-vrstnika"
注:wireguard1という名前のWireGuardインターフェースを削除したい場合は、次のコマンドで実行します:
/interface/wireguard/remove wireguard1。
次に、WireGuardサーバーへの接続を追加します:
/interface/wireguard/peers add allowed-address=10.10.7.0/24 endpoint-address=xx.xx.xx.xx endpoint-port=51194 interface=wireguard1 persistent-keepalive=5s public-key="javni-kljuc-wg-streznika" preshared-key="PSK-kljuc-Mikrotik-vrstnika
説明:
allowed-address:ここにWireGuardサブネット(WireGuardサーバーから)を入力します。この例では10.10.7.0/24です;endpoint-address:WireGuardサーバーのパブリックIPアドレス;endpoint-port:WireGuardピアが接続するポート(デフォルトは51194);interface:設定が適用されるWireGuardインターフェース(この例ではwireguard1);persistent-keepalive:クライアントがサーバーとのアクティブな接続を維持し、5秒ごと(5s)にサーバーにpingを送信するように指定します;public-key:WireGuardサーバーの公開鍵;preshared-key:Mikrotikピアの事前共有鍵(PSK)。
ピアのリストも表示できます(この例では、もちろん1つだけです):
/interface/wireguard/peers print
Columns: INTERFACE, PUBLIC-KEY, ENDPOINT-ADDRESS, ENDPOINT-PORT, ALLOWED-ADDRESS, PRESHARED-KEY, PERSISTENT-KEEPALIVE
# INTERFACE PUBLIC-KEY ENDPOINT-ADDRESS ENDPOINT-PORT ALLOWED-ADDRESS PRESHARED-KEY PE
0 wireguard1 javni-kljuc-Mikrotik-vrstnika xx.xx.xx.xx 51194 10.10.7.0/24 PSK-kljuc-Mikrotik-vrstnika 5s
短い注:このエントリ(最初に示される連続番号0で示されます)を削除したい場合は、次のコマンドを使用します:/interface/wireguard/peers> /interface/wireguard/peers/remove numbers=0。
次に、WireGuard サーバーで、設定ファイルwg0.confに次の情報を追加する必要があります:
- WireGuardサーバーの公開鍵
- Mikrotikピアの事前共有鍵(PSK)
- MikrotikピアのIPアドレス(この例では
10.10.7.155を使用)
例(設定ファイル/etc/wireguard/wg0.conf):
[Peer]
# MojMikrotik
PublicKey = javni-kljuc-Mikrotik-vrstnika
PresharedKey = PSK-kljuc-Mikrotik-vrstnika
AllowedIPs = 10.10.7.155/32
この時点で、WireGuardサーバーで設定をリロードします:
systemctl reload [email protected]
Mikrotikに戻ります。次に、サーバーで指定したIPアドレスをMikrotikのWireGuardネットワークインターフェースに追加する必要があります:
/ip address add address=10.10.7.155/32 interface=wireguard1
その後、ネットワークルート(angl route):
/ip route add dst-address=10.10.7.0/24 gateway=wireguard1
これでMikrotikはWireGuardネットワークに接続されています。しかし、WireGuardネットワークからMikrotikへの接続は機能していないことに気付くでしょう。ファイアウォールがそれをブロックしているためです。したがって、MikrotikがWireGuardネットワークからの接続を許可するルールを追加する必要があります:
/ip firewall filter add action=accept chain=input comment="Access from Wireguard network" in-interface=wireguard1 src-address=10.10.7.0/24
しかし、接続は機能しない可能性があります。新しいルールは自動的にルールリストの最後に追加されるためです。ルールを少し上に移動する必要があります。具体的には、LANネットワークからではないすべてのパケットを削除するルールの直前に移動します。まずルールのリストを表示します:
/ip firewall filter print
その後、このルールを上の位置に移動します:
/ip firewall filter move N destination=D
説明:
- Nはルールの現在の連続番号
- Dはこのルールを移動する位置
現在のルールの例。外部からのすべての接続をブロック(WireGuardネットワークを除く)し、LANネットワーク内の接続と外部への接続を許可します:
/ip firewall filter print
ルールリストの出力:
Flags: X - disabled, I - invalid; D - dynamic
0 D ;;; special dummy rule to show fasttrack counters
chain=forward action=passthrough
1 ;;; defconf: accept established,related,untracked
chain=input action=accept connection-state=established,related,untracked
2 ;;; defconf: drop invalid
chain=input action=drop connection-state=invalid
3 ;;; defconf: accept ICMP
chain=input action=accept protocol=icmp
4 ;;; defconf: accept to local loopback (for CAPsMAN)
chain=input action=accept dst-address=127.0.0.1
5 ;;; Block new connections from outside
chain=input action=drop connection-state=new in-interface-list=WAN
6 ;;; Access from Wireguard network
chain=input action=accept src-address=10.10.7.0/24 in-interface=wireguard1
7 ;;; defconf: drop all not coming from LAN
chain=input action=drop in-interface-list=!LAN
8 ;;; defconf: accept in ipsec policy
chain=forward action=accept ipsec-policy=in,ipsec
9 ;;; defconf: accept out ipsec policy
chain=forward action=accept ipsec-policy=out,ipsec
10 ;;; defconf: fasttrack
chain=forward action=fasttrack-connection hw-offload=yes connection-state=established,related
11 ;;; defconf: accept established,related, untracked
chain=forward action=accept connection-state=established,related,untracked
12 ;;; defconf: drop invalid
chain=forward action=drop connection-state=invalid
13 ;;; defconf: drop all from WAN not DSTNATed
chain=forward action=drop connection-state=new connection-nat-state=!dstnat in-interface-list=WAN
これでMikrotikはWireGuardネットワークに接続されました。IPアドレス10.10.7.155を介してアクセスできます。
いずれにせよ、外部サーバーとWireGuardネットワークからファイアウォールが機能しているかどうか確認する価値があります。まず、WireGuardネットワークからMikrotikの開いているポートを確認します:nmap 10.10.7.155。出力:
Starting Nmap 7.93 ( https://nmap.org ) at 2024-08-20 13:33 UTC
Nmap scan report for 10.10.7.155
Host is up (0.057s latency).
Not shown: 993 closed tcp ports (reset)
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
23/tcp open telnet
53/tcp open domain
80/tcp open http
2000/tcp open cisco-sccp
8291/tcp open unknown
Nmap done: 1 IP address (1 host up) scanned in 1.15 seconds
その後、Mikrotikの外部IPアドレスを使用して(nmap xx.xx.xx.xx):
Starting Nmap 7.93 ( https://nmap.org ) at 2024-08-20 13:33 UTC
Nmap scan report for xx.xx.xx.xx
Host is up (0.052s latency).
All 1000 scanned ports on xx.xx.xx.xx are in ignored states.
Not shown: 1000 filtered tcp ports (no-response)
Nmap done: 1 IP address (1 host up) scanned in 53.08 seconds
nmap出力から明らかなように、MikrotikのパブリックIPアドレスからはMikrotikの管理インターフェースおよび他のインターフェースはアクセスできませんが、WireGuardネットワークからはすべてにアクセスできます。
説明されたプロセスにより、Mikrotikデバイスを起動時に自動的にVPNネットワークに接続し、VPNネットワークからいつでもアクセス可能にするように設定しました。
翻訳元: https://telefoncek.si/2024/08/2024-08-21-povezava-mikrotik-usmerjevalnika-v-wireguard-omrezje/