さくらのVPSのコントロールパネルを見れば分かるが、初期状態ではパケットフィルタが有効になっていてTCP/Port :22のみが開放されている。
sshのポートを変更すれば、そのPort:61001も開放する必要があるのだ。
取りあえず、さくらのVPSのコントロールパネルのパケットフィルタに追加することで対処することに。
ところが、さくらのVPSのコントロールパネルのパケットフィルタを開いてTCP/Port:61001を追加しようとすると、ありゃ、ポートが32767までに制限されていた。
参考:ポート番号といえば、こちらのサイト 「ネットワークエンジニアとして」が詳しい。
やむを得ず、ファイヤーウォールの設定を行うことに。
思わず5年前のiptablesの悪夢が頭をよぎる。 そのときの控えをみたがちんぷんかんぷん、全てが忘却の彼方に。
しかたがないので、こんなときに頼りになる 「ネコでもわかる!さくらのVPS」 にすがることに。 すると第7回にこの記事が、「ファイアウォール”firewalld”について理解しよう」
CentOS7ではファイアウォールの設定コマンドにfirewalldが使われていて、CentOS6までの直接”iptables“をいじる方式から変更されていた。 おかげてコマンドが簡単になり、素人にも容易に設定できそうで助かった。
とりあえずは、http、https、sshのポートだけを開けばよいので、VPSのコントロールパネルからログインし、サーバーのVNCコンソールを開いてfirewalldのコマンドを入れることに。
参考にしたのはこちらのサイト:「CentOS 7 firewalld よく使うコマンド」
自分が行ったのは、
1.許可するサービス http https の追加
# firewall-cmd --permanent --zone=public --add-service=http
# firewall-cmd --permanent --zone=public --add-service=https
–permanent は、サーバー再起動後も設定内容を持続させるため。
–zone=publicは、ゾーンとしてpublicを使う設定、公開側のゾーンの意味か?
2.サービスの除去
不要な、ssh、dhcpv6-clientを削除。
# firewall-cmd --permanent --zone=public --remove-service=ssh
# firewall-cmd --permanent --zone=public --remove-service=dhcpv6-client
dhcpv6-clientは、ipv6用のdhcpサービスのようなので、使わないことに。
3.ssh用のポートの開放
もっとも大事なポートの開放の設定コマンドがこちら
# firewall-cmd --add-port=61001/tcp --zone=public --permanent
但し、自分の場合、接続側のクライアントを固定アドレスにしているので、単に61001/tcpポートを開放するのではなく、接続するクライアント側のsource address も制限することに。
これにはリッチルールの設定が必要とのことで、以下のコマンドに変更。
# firewall-cmd --permanent --zone=public --add-rich-rule="rule family=ipv4 source address=***.***.***.***/** port protocol=tcp port=61001 accept"
あと忘れていけないのはこれ、設定を再度読み込まないと有効にはならない。
# firewall-cmd --reload
他にもよく使うコマンドがこちら。
# firewall-cmd --list-all
# firewall-cmd --list-all-zones
4.firewallの変更後のリスト
sshd_configの修正
後で分かったことだが、ssh用のポートを開くだけではダメで、sshd_configを修正し、明示的にポートを指定する必要があった。
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.org
sudo vim /etc/ssh/sshd_config
# 修正前
#Port 22
# 修正後
Port 61001
sshdのポート番号を22番(デフォルト)から、「61001」に変更。
(注) ポート番号を指定する際は、エフェメラルポート番号(49152~65535) から指定するようにすること。
エフェメラルポート 【ephemeral ports】
これで、接続できるはずなのだが、私の場合何度も試行錯誤して、やっと接続できた状態なので、自信はない。
特に「Teratermの設定ファイル」には悩まされた。
最終目的はTeratermポートフォワーディングによるVNCサーバとの接続なので、まだまだ先は長い。