- firewalldは止めずにちゃんとopenvpnを指定して許可する
- 接続先サーバのlan側のみをトンネリングする
- 接続先サーバはconohaのプライベートネットワーク(192.168.55.0/24)経由で接続されたもう一台のVPS
# cat server.conf port 1194 proto udp dev tun ifconfig 10.8.0.1 10.8.0.2 secret static.key cipher AES-128-CBC #comp-lzo keepalive 10 60 ping-timer-rem persist-tun persist-key status openvpn-status.log log-append openvpn.log verb 3 #クライアント側の設定ファイル (client.ovpn) remote vpn.example.com proto udp dev tun port 1194 ifconfig 10.8.0.2 10.8.0.1 secret static.key cipher AES-128-CBC keepalive 10 60 ping-timer-rem persist-tun persist-key route 192.168.55.0 255.255.255.0サーバ側のconfigに下記を入れたがうまくいかない。
クライアント側のルーティングが書き換わらない。
openvpnを管理者として実行にしてもダメ。
push "route 192.168.55.0 255.255.255.0"
クライアント側の設定ファイルに下記を追加したら追加された。
(route printで確認)
route 192.168.55.0 255.255.255.0
あとは、接続先のサーバ側でip forwardingとnat設定をする。
フォワーディングは
フォワーディングは
sysctl -w net.ipv4.ip_forward=1
firewall-cmdで"Internal"ゾーンを作成し(internalというのが既存であるが)
eth1を追加
eth1を追加
そしてNAT
あるサイトを参考に下記の設定を入れてみたら、
あるサイトを参考に下記の設定を入れてみたら、
pingはプライベートネットワーク越しに通るようになったのだが、http/httpsが通らない。
firewall-cmd --permanent --direct --passthrough ipv4 -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth1 -j MASQUERADE
悩んで調べた結果、
firewall-cmdでプライベートネットワーク側にmasquerade設定を入れることで解決
firewall-cmd --zone=Internal --add-masquerade
最初に入れた --direct --passthrough .... の設定も必要なのかはわからない。
本当は消したいのだが、消し方がわからない....