
Openvpn: クライアントはサーバーに接続されています = ファイアウォール; ただし、LAN 内のデータベースにアクセスできません
私は5つのVLANを持っています:
vlan 2: 192.168.12.0/24
vlan 3: 192.168.13.0/24
vlan 4: 192.168.14.0/24
vlan 5: 192.168.15.0/24
vlan 6: 192.168.100.0/24
すべての LAN はスイッチ cisco 3650 レイヤー 3 に接続されていました。スイッチ レイヤー 3 はファイアウォール (CentOS 6.2 にインストールされた squid と shorewall 4) に接続されています。
ファイアウォールには、eth0: 172.16.1.101 がモデム:172.16.1.1 に接続され、eth1: 192.168.99.99 がスイッチ レイヤー 3: 192.168.99.100 に接続されていますが、スイッチ ポートはありません。
VPN クライアントが接続され、IP クラスは 192.168.10.0/24 です。これで、LAN からインターネットへのすべてのトラフィックは正常になり、問題は発生しません。
クライアントが openvpn を使用してサーバーに接続すると成功しますが、LAN 内のどのコンピューターにも ping を実行できず、アクセスもできません。何が間違っているのでしょうか?
答え1
ルーティングまたはファイアウォールの両方に問題がある可能性があります。まず、VPN クライアントからサーバー/ファイアウォールに ping できるかどうかを確認する必要があります。eth1 と tun1 のアドレスに ping できるかどうかを確認します。
これらのチェックが失敗した場合、ルートが欠落している可能性があります。おそらく、openVPN はクライアントに内部サブネットのルートを設定するように強制しないのでしょう。
クライアント上で、Linux の場合、実行してroute -n
、リモート LAN 用のゲートウェイがあるかどうかを確認する必要があります。
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
...
192.168.99.0 192.168.10.## 255.255.255.0 UG 0 0 0 tun1
...
192.168.10.## は、サーバー/ファイアウォール上の tun1 インターフェイスのアドレスである必要があります。
ルートが存在する場合は、少なくとも tun1 iface アドレスに ping を実行できるはずです。
デバッグを高速化するには、shorewall を無効にすることができます。ちなみに、ファイアウォール ルールを確認してください。VPN TUN インターフェイスから LAN への転送、およびその逆を有効にする必要があります。
IPTables の使い方は次のようになります。
# iptables -A FORWARD -i tun+ -o eth1 -j ACCEPT
# iptables -A FORWARD -i eth1 -o tun+ -j ACCEPT
tun+ は「任意の tun」の略で、実際の tun デバイスを使用する必要があります。ifconfig で確認してください。