• 締切済み

OpenVPN でローカルアドレスが取得できません

自宅内の Windows 10 ファイルサーバに外出先からアクセスするため、自宅 LAN 内にある別の CentOS サーバに OpenVPN をインストールして、外部から自宅 LAN に VPN 接続できるようにしたいのですが、うまくいきません。具体的に言いますと、自宅 LAN のネットワークは 192.168.1.0/24 で、CentOS サーバは 192.168.1.10、Windows 10 サーバは 192.168.1.20 なのですが、クライアントマシン(同じくWindows 10)から外部ネットワークを使って VPN に接続すると、接続はできるのですが(クライアント側で接続成功メッセージがでて、CentOS 側で Success ログがでる)、取得したアドレスは 仮想アドレスの 10.8.0.x であって、192.168.1.x が取得できません。これでは 192.168.1.20 にアクセスできないですよね?どうしたら 192.168.1.x が取得できるのでしょうか。以下に簡単ですがネットワーク構成と設定ファイルの内容を記載します。ご回答いただけたら幸いでございます。既に3日悪戦苦闘していてちょっと心が折れそうです。。。 [ネットワーク構成] (Windows 10 ファイルサーバ - 192.168.1.20) | (ルータ - UDP 1194 を 192.168.1.10 に転送- 192.168.1.254) -------- (CentOSサーバ - 192.168.1.10) | (インターネット) | (Windows 10 クライアントマシン) [server.conf (主要箇所のみ)] server 10.8.0.0 255.255.255.0 push "route 192.168.1.0 255.255.255.0" [iptables 設定] iptables -A INPUT -p udp --dport 1194 -j ACCEPT iptables -I FORWARD -i tun+ -d 192.168.1.0/24 -j ACCEPT iptables -I FORWARD -o em1 -s 10.8.0.0/24 -j ACCEPT iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o em1 -j MASQUERADE [その他] /etc/sysctl.d/10-ipv4_forward.conf を作成して以下を記述 net.ipv4.ip_forward=1

みんなの回答

回答No.1

まずWindows 10 サーバでnetstat -nrを叩いて下さい。 「10.8.0.0/24」へのルーティングが、 「192.168.1.10」に向かっていなければ、 「route add -p」コマンドで追加して下さい。 そこが問題なければ、PCでnetstat -nrを叩いて、 「192.168.1.0/24」の宛先が CentOSのopenvpnのアドレス「10.8.0.?」に 向いているか確認してください。 向いていないなら、ルーティングを追加してください。 向いているなら、CentOSのルーティングか、フィルタの問題です。 以上です。

EarlGreyCanada
質問者

お礼

早速のご回答、誠に有難うございました! で、netstat -nr を両方のマシンで実行した結果、どちらのルーティングテーブルも追加されていないようでしたので、以下のコマンドを実行しました。 (Windows 10 ファイルサーバ側) route ADD 10.8.0.0 MASK 255.255.255.0 192.168.1.10 => 追加されました。 (Windows 10 クライアントマシン側) route ADD 192.168.1.0 MASK 255.255.255.0 10.8.0.1 => 10.8.0.1 は CentOS で ifconfig を実行した時際に tun0 に設定されていたアドレスです。正常に追加されました。 route ADD 192.168.1.0 MASK 255.255.255.0 10.8.0.6 => 10.8.0.6 はクライアントマシンの ipconfig で表示されたアドレスです。ですが、このテーブルは既に存在していたようで、怒られました。。。 しかしながら、やっぱり繋がりません。192.168.1.x に向けた ping すら通りません。ローカル環境では 192.168.1.10 にも 192.168.1.20 にも ping は通るので、そもそも ICMP がブロックされているということはないと思うのですが、本当に不可解です。 実は全く同じような問題を抱えている方が下記のサイトに掲載されていたのですが、この方も最終的は解決できなかったようで、そもそもルータ自体がこういったセットアップに対応していないのでは?とか、そもそも VPN の機能が最初からついたルータを購入したほうが手っ取り早いのでは、とか思っていたところなのです。 https://fedorasrv.com/bbshtml/webpatio/3823.shtml と、ここまで書いておきながら言うのも大変恐縮なのですが、実はこの問題一応解決致しまして、どういうことかと言いますと、SoftEther というソフトを見つけて試したところ、外部ネットワークから自宅内の Windows 10 ファイルサーバにアクセスすることができるようになったのです。無償版では独自のプロトコルを使用しているらしく、厳密には VPN と呼べるのかどうかわかりませんが、これでとりあえずファイルにはアクセスできるようになったので目的は達成できました。セットアップも非常に簡単で、同じような問題を抱えている方々にはおすすめの一品です。贅沢を言うのであれば、私は Linux が好きですし、VPN のこともいろいろと勉強したいので、本来なら CentOS でセットアップできれば一番良かったのですが、今のところは SoftEther でやっていこうと思っています。 ただ、netstat -nr でルーティングテーブルを見ればどうしてパケットが送られないかが解るという点はとっても参考になりました!本当に有難うございました!

関連するQ&A