さくらの VPS に CentOS7 を入れて SSH と Firewalld の設定につまづいた話

数年前から契約している、さくらインターネットの仮想専用サーバーの1つに「標準OSインストール」から CentOS x86_64 をいれて SSHD と Firewall と Port の設定をしようと思ったけど、うまく行かなったという話です。

さくらの VPS も何件か契約しておりまして、そのうち1つは CentOS 6.1 で動いていました。

これを久しぶりにアップデートしようとしたところ、Upgrade Tool はリンクが切れており、ミラーリストもURIが変わっていて、いろいろ大変なことに気がつきました。

力づくで解決するよりも新規にOSを入れ直して再設定したほうが早そうだったので /etc 以下のいくつかのファイルをローカルに保存して、コントロールパネルから OS を再インストールすることに決めました。

スタートアップスクリプト [Public] CentOS_yum-update を選択して、インストールは無事に終了しました。

VNCコンソールは使い勝手が悪いので、さっそくリモートからのアクセスを許容すべく、ポートの割当を書き換えて SSHD を再起動します。

つぎに割り当てたポートを開放し、不要なポートを閉鎖すべく、Firewalld の設定を書き換えます。

CentOS 6 までの iptables とは勝手が違いますね。

リモートから接続されている場合、Firewalld を起動すると一度ここで通信が切断されます。




これで設定がうまく行ったのかと思いきや、ssh 接続を試みると Connection timed out でエラーになります。

何かがおかしいなと思い、開放されているポートを調べてみるのですが、設定的に間違いはなさそうです。

何かがおかしいので、一時的に22番ポートを開放すると、普通に ssh 接続できるようになります。

これは一体どういうことなの???

ほかに理由が思い当たらないので「あまり意味はないだろうな」とも思いつつ、SELinux の設定も変更してみます。

意味はないだろうとは思っていましたけど、当然ながら結果は同じでした。

調べてみると、さくらインターネットのVPSでは /etc/iptables/iptables.rule に独自の設定を行っているようです。

もしかしたら、22番以外のポートを閉じる設定をどこかで行っているのでないかと、総当りで探していると、こんなものを発見。

2019年6月27日 さくらのVPS 「パケットフィルタ」提供開始のお知らせ 
https://www.sakura.ad.jp/information/announcements/2019/06/27/1968200552/

新機能のパケットフィルタによってOSインストール時にはデフォルトで 22 番以外のポートが閉じられている設定になっていました。

しかも、パケットフィルタが導入されたのは、今日から数えて30日前の 6月27日 です。

これでは新しすぎて、いくら検索しても同一の事例が見つからないわけです。ほかの契約サーバでは問題なく ssh 接続できるのに、このサーバだけ接続できない理由にも合点がいきました。

結局、ネットワークの設定をほとんど見直して、半日を費やしましたけどコントロールパネルからパケットフィルタを無効化すると、問題なくリモート接続できるようになりました。

こうなったら、あとはもう SSH root login と Password Authentication を禁止、御役御免の22番は閉鎖して、ユーザー作成と公開鍵認証を済ませてしまえば、いつもどおりです。

いつの間にか、いろいろ変わっているので、定期的に環境を見直しておかないとダメですね。


[改訂新版]プロのためのLinuxシステム構築・運用技術 (Software Design plus)

Leave a Reply

Your email address will not be published. Required fields are marked *

Contact Us