
私は長年、Debian、Fedora、Macintosh クライアントで OpenVPN を使用してきましたが、何かが欠けているような気がします。OpenVPN サーバーがある自宅の LAN で共有にアクセスする際に問題が発生したことは一度もありません。
SMB、AFP、NFSに問題なくアクセスできます。
しかし最近、Windows 7 クライアントで OpenVPN を使用しているのですが、共有にアクセスできなくなりました。
たとえば、アドレス nas.mylan.local にある私の Synology NAS には、リストした 3 つの共有があり、Web インターフェイスにログインして、Windows クライアントから nas と nas.mylan.local の両方を使用して解決できますが、共有にアクセスすることはできません。
たとえば、\nas\Downloads、\nas.mylan.local\Downloads を試し、ネットワークと共有センターを使用して検出しようとしました。
直接パスを指定するとログイン プロンプトが表示されます。今回使用した Windows クライアントは別の会社の AD に接続されているため、ドメインを無効にするために \Username と入力します。
パスワードは Web GUI では機能しますが、共有プロンプトでは「ユーザーはこのコンピューターからのアクセスを許可されていません」というようなエラーが表示されます。
OpenVPN が使用する Tap デバイスはパブリック スコープ内にあるため、Windows ファイアウォールにアクセスし、パブリック スコープの SMB ルールの許可されたパブリック IP リストに LAN アドレスと VPN アドレスを追加しようとしました。
しかしダメでした。また、後で Windows ファイアウォールが無効になっていることに気付きました。
また、スコープ共有オプションにアクセスし、パブリック スコープでの受信共有リクエストを許可する設定も試しました。
Windows 7 と OpenVPN 経由の共有はどうなっているのでしょうか? 他のクライアントはすべて正常に動作しているので、Microsoft のセキュリティ機能によって共有にアクセスできないのだと思います。
これは私がここ数年使用している openvpn サーバー設定です。それ以前は Debian サーバーでは若干異なっていました。
server 10.8.0.0 255.255.255.0
port 1194
proto udp
dev tun0
comp-lzo
keepalive 10 120
tls-auth minserver_static.key 1
ifconfig-pool-persist ipp.txt
persist-key
persist-tun
user openvpn
group openvpn
push "redirect-gateway def1"
push "dhcp-option DNS 10.8.0.1"
push "dhcp-option DOMAIN domain.local"
ca ca.crt
cert minserver.crt
key minserver.key
dh dh2048.pem
#status /var/log/openvpn/openvpn-status.log
#log-append /var/log/openvpn.log
#verb 3
問題の Windows 7 クライアント構成は次のとおりです。Linux、Mac、Android の構成とまったく同じです。構成を生成する bash スクリプトとテンプレートがありますが、ここでは証明書とキーを省略しています。
client
dev tun
proto udp
remote minserver 1194
resolv-retry infinite
nobind
persist-key
persist-tun
mute-replay-warnings
resolv-retry infinite
comp-lzo
push "redirect-gateway def1"
push "dhcp-option DNS 10.8.0.1"
push "dhcp-option DOMAIN domain.local"
# Comment this for the ovpn config
;tls-auth minserver_static.key 0
;ca ca.crt
;cert .crt
;key .key
<ca>
...
</ca>
...
サーバー上の iptables の設定は非常にシンプルで、これらのルールだけです。
sudo firewall-cmd --add-service=openvpn
sudo firewall-cmd --permanent --zone=trusted --add-interface=tun0
sudo firewall-cmd --permanent --zone=trusted --add-masquerade
sudo firewall-cmd --permanent --direct --passthrough ipv4 -t nat -A POSTROUTING -s 10.8.0.0/24 -o enp2s0 -j MASQUERADE
sudo firewall-cmd --reload
これは OpenVPN サーバーの問題ではないと思いますが、おそらく Windows の問題です。