Wireguard接続を確立しましたが、ルーティングにいくつかの問題があります。 VPN が設定された Wireguard コンピュータは、インターネットプロバイダのルータの背後にあります。私はある場所または別の場所にいるかもしれません。つまり、VPNを設定するには、他のサイトにリモートでアクセスする必要があります。 VPNが正常に設定されていますが、接続が失われました。遠隔地からログインできないため、リセットできません。別の場所に行くのを待たなければなりませんでした。以下の問題により、リモートの場所にログインできません。
ルータにNATと入力してインターネット経由でアクセスできるように、このコンピュータへのリモートSSHアクセスを設定しました。ルーターのアドレスでログインしましたが、ルーターがSSHを内部アドレスに転送し、SSH接続がうまくいきましたが、問題がありました。
wg0
インターフェイスを開いてVPNを設定しようとすると、SSHアクセスは機能しなくなります。トラフィックを分析すると、次のようなことが起こりました。 SSHを起動すると、ルータはそれを転送し、Wireguardコンピュータはインターフェイスからパケットを受信しますSYN
。eth0
ただし、有効にすると、パケットは経由SYN, ACK
で再送信されず、代わりにeth0
インターフェイスwg0
を介して再送信されます。 SSHはインターフェースwg0
なしでwg0
うまく機能します。192.168.1.0/24
インターフェイスに関係なく、SSHはローカルネットワーク内でも機能しますwg0
。
SSH接続を維持しながらWireguard VPN接続を使用する方法は?そのコンピュータに異なるインターフェイスがありますが、lan0
まだ接続されていません。lan0
イントラネットにも接続してSSHに使用する必要がありますか?私はwireguardの問題がlan0
.netと同じネットワークに接続しているので、まだインターフェイスにあると思いますeth0
。
接続、パスなどに関する追加情報は次のとおりです。
wg0 インターフェイスがありません。
wg-quick down wg0
出力:
[#] ip -4 rule delete table 51820
[#] ip -4 rule delete table main suppress_prefixlength 0
[#] ip link delete dev wg0
[#] nft -f /dev/fd/63
IP -4アドレス:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 8e:b7:6b:c9:08:7d brd ff:ff:ff:ff:ff:ff
inet 192.168.1.250/24 brd 192.168.1.255 scope global dynamic noprefixroute eth0
valid_lft 84256sec preferred_lft 84256sec
3: lan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
link/ether 8e:b7:6b:c9:08:9d brd ff:ff:ff:ff:ff:ff
IPルーティング:
default via 192.168.1.1 dev eth0
default via 192.168.1.1 dev eth0 proto dhcp metric 100
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.250 metric 100
IPルール:
0: from all lookup local
32766: from all lookup main
32767: from all lookup default
wg0インターフェイスを使用してください:
wg-quick up wg0
出力:
[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 10.0.0.2/24 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] wg set wg0 fwmark 51820
[#] ip -4 route add 0.0.0.0/0 dev wg0 table 51820
[#] ip -4 rule add not fwmark 51820 table 51820
[#] ip -4 rule add table main suppress_prefixlength 0
[#] sysctl -q net.ipv4.conf.all.src_valid_mark=1
[#] nft -f /dev/fd/63
IP -4アドレス:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 8e:b7:6b:c9:08:7d brd ff:ff:ff:ff:ff:ff
inet 192.168.1.250/24 brd 192.168.1.255 scope global dynamic noprefixroute eth0
valid_lft 84320sec preferred_lft 84320sec
3: lan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group
default qlen 1000
link/ether 8e:b7:6b:c9:08:9d brd ff:ff:ff:ff:ff:ff
14: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000
link/none
inet 10.0.0.2/24 scope global wg0
valid_lft forever preferred_lft forever
IPルーティング:
default via 192.168.1.1 dev eth0
default via 192.168.1.1 dev eth0 proto dhcp metric 100
10.0.0.0/24 dev wg0 proto kernel scope link src 10.0.0.2
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.250 metric 100
IPルール:
0: from all lookup local
32764: from all lookup main suppress_prefixlength 0
32765: not from all fwmark 0xca6c lookup 51820
32766: from all lookup main
32767: from all lookup default
修正する: さらにテストを行った後、wg-quickがいくつかのIPルーティングとルールを設定することがわかりました。私はこれがSSH接続を妨げると思います。次のコマンドを試しても、SSHは機能し続けます。
ip link add dev wg0 type wireguard
ip address add dev wg0 10.0.0.2/24
wg set wg0 private-key /root/wgprivate.key
wg set wg0 listen-port 37723
ip link set wg0 up
wg set wg0 peer <key> allowed-ips 0.0.0.0/0 persistent-keepalive 25 endpoint <remote hostname>:<remote port>
週末までにリモートサイトにアクセスできないため、wg-quickのどのコマンドが異常な動作を引き起こすかを調べようとします。リモートサイトにアクセスできるようになったら、wg-quickなしでVPNをリセットします。以前これを行ったことがありますが、wg-quickを使用して自動化したいと思いました。
答え1
いくつかの調査の終わりに接続が確立された後、wg-quickが実行するルーティングを望まないことがわかりました。したがって、解決策は非常に簡単です。線を引く
Table = off
いくつか[Interface]
。これにより、wg-quickにIPルールとルートを作成しないように指示します。
答え2
見るここしかし、あなたの質問で要約すると、次のようになります。
iptablesを使用してパケットを宛先ポート22としてマークできます。
iptables -t mangle -A PREROUTING -i eth0 -p tcp -m tcp --dport 22 -j MARK --set-mark 22
したがって、eth0を介してこれらのパケットをルーティングする優先順位の高いルールを挿入できます。
ip rule add priority 32000 fwmark 22 table 22
ip route flush table 22
ip route add table 22 default dev eth0
まだテストされていません。 VPNを介してポート22に接続できなくなる副作用がある可能性があります。