さくらVPSにVPN Clientを入れて家のLANにVPNで繋ぐ。ポートフォワードで家のサーバーに転送する。iptableでやろうと思ったけどまるでうまくいかない。既成のルーターなら5秒でできるだろこんなん。。。。
ポートフォワード イメージ
クライアントがさくらVPSの80ポートに接続したときに、192.168.0.3:80に転送する。
+-----------+ | ClientPC | +-----------+ | internet | | | ens3 | xxx.yyy.zzz.aaa:80 ( zone:external) +-----------+ |さくらVPS | *今回設定するさくらVPS (Ubuntu20.04) +-----------+ vpn-vpn | 192.168.0.62 ( zone:internal ) | | | | 192.168.0.3:80 +-----------+ | WebServer | +-----------+
NICが所属するゾーンの設定
# firewall-cmd --zone=external --change-interface=ens3 --permanent The interface is under control of NetworkManager, setting zone to 'external'. success # firewall-cmd --zone=internal --change-interface=vpn-vpn --permanent The interface is under control of NetworkManager, setting zone to 'internal'. success # firewall-cmd --reload success # firewall-cmd --get-active-zone internal interfaces: ens3 external interfaces: vpn-vpn
ポートフォワード設定
クライアントがさくらVPSの80ポートに接続したときに、192.168.0.3:80に転送する。ついでに2222ポートにssh接続した通信を192.168.0.3:22に転送
# firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=80:toaddr=192.168.0.3 --permanent success # firewall-cmd --zone=external --add-forward-port=port=2222:proto=tcp:toport=22:toaddr=192.168.0.3 --permanent success # firewall-cmd --list-all --zone=external external (active) target: default icmp-block-inversion: no interfaces: ens3 sources: services: ssh ports: protocols: masquerade: yes forward-ports: port=80:proto=tcp:toport=80:toaddr=192.168.0.3 port=2222:proto=tcp:toport=22:toaddr=192.168.0.3 source-ports: icmp-blocks: rich rules:
マスカレード設定
externalはnoにinternalはyesに
マスカレードしないとwebでなかった。。。なーんかよくわからんのよねマスカレード。。
なにこれ。
# firewall-cmd --zone=external --query-masquerade yes # firewall-cmd --zone=external --remove-masquerade --permanent success # firewall-cmd --reload success # firewall-cmd --zone=external --query-masquerade no # firewall-cmd --zone=internal --query-masquerade no # firewall-cmd --zone=internal --add-masquerade --permanent success # firewall-cmd --reload success # firewall-cmd --zone=internal --query-masquerade yes # firewall-cmd --list-all --zone=external external (active) target: default icmp-block-inversion: no interfaces: ens3 sources: services: ssh ports: protocols: masquerade: no forward-ports: port=80:proto=tcp:toport=80:toaddr=192.168.0.3 port=2222:proto=tcp:toport=22:toaddr=192.168.0.3 source-ports: icmp-blocks: rich rules: # firewall-cmd --list-all --zone=internal internal (active) target: default icmp-block-inversion: no interfaces: vpn_vpn sources: services: dhcpv6-client mdns samba-client ssh ports: protocols: masquerade: yes forward-ports: source-ports: icmp-blocks: rich rules:
↓を参考に
コメント