さくらVPSを使ってQ9650を外に出すんだ

さくらVPS
さくら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:

↓を参考に

コメント

タイトルとURLをコピーしました