さくらの VPS のパケットフィルタリングを使った SSH ポート開放

以前は iptables にてフィルタリングしていたが、「さくらの VPS」コンソールにある「パケットフィルタリング機能」が拡張され、任意 IP アドレスのフィルタリング設定が可能となったため、SSH ポート開放の制御をそちらに寄せることにした。

手順

自分が接続しているマシンのネットワークIP(グローバルIP、ゲートウェイIP)を探す

AAA.BBB.CCC.DDD

さくらのVPSに接続

パケットフィルタの設定を追加(変更)

設定項目は以下。

  • フィルタの用途「カスタム」
  • プロトコル「TCP」
  • ポート番号「22」
  • 許可する送信元IPアドレス「AAA.BBB.CCC.DDD/32」
    (サブネット「/32」は、上記1つのIPアドレスのみ許可の意。「/32」とかアドレス範囲とか知りたい人は GGR)

この状態で Teraterm, WinSCP などから接続確認

問題なければ、これで終了。
かなり簡単になった。

メリット

  • GUI (Web) 上での設定なので、操作自体が簡単。

デメリット

  • GUI (Web) 上での設定が必須なので、手動作業。一連作業の自動化ができない。
  • パケットフィルタリングの機能自体による制約が生じる。
  • ログを残すような設定など iptables で可能なことができない。
  • カスタムフィルタリングは最大で10個までしか設定できない。
  • 個々のフィルタリングに対してコメントが残せないため、可読性が下がる。
    (間違えて別のパケットフィルタリングを上書きしてしまう恐れなど、ケアレスを誘発する恐れあり。
    まぁ iptables の場合は煩雑で失敗した場合のインパクトは同じような気がする。
    どっちもどっち。)

これらデメリットから、特にログが残せないなどの点については、企業によっては監査が通らない気がする。
その場合はこの設定簡略化そのものが採用できない。

注意

「パケットフィルタを利用しない」とか「SSHを『すべて許可する』」には、くれぐれも選択しないこと。
iptables で適切にフィルタリングをしているなら話は別だが、サーバが丸見えになってしまい、セキュリティ上のリスクが爆増する。

特にビギナーや素人

繋がらないからと言って、この辺りの操作をすると、「あっ」と言う間に何処かの大陸方面からサーバ乗っ取られて、踏み台にされて、さくらインターネットから「サーバー強制停止 ⇒ コンソール(コマンドライン)で対処するか、サーバ初期化するまでパケット全閉塞(実質利用できない)」を喰らうことになる。

少なくとも、SSH からの root 認証不可は絶対だし、鍵認証必須(パスワード認証不可)は強推奨。

【参考】

Web については、.htaccess にてドメインフィルタリングしている。
そのためパケットフィルタは、敢えて「すべて許可する」にしている。

さくらのレンタルサーバに Nextcloud 入れてみた感想

インストール方法は割愛

ググれば既に解説されてるサイトがいくつかヒットするので、詳しくはそちらを参照。
自分の場合、この時点での最新バージョン(21.0.1)をインストールしたが、以下の点にハマったこと以外は、問題なくインストール、稼働してます。

ハマったこと

WAF は必ず「無効」にすること。

別に Nextcloud の問題ではなく。

インストールの途中で Nginx のエラーが出たり(レンタルサーバは Apache 稼働)、スタイルシートなどが反映されず、レイアウトが崩れたり、最初、理由がさっぱり判らなかった。無駄にすること数時間。

結局原因は「これ」。

WAF を有効にしてたのをすっかり忘れてた。
無効にしてインストールしたら、すんなり入った。

いきなり結論

重い

所詮「レンタルサーバ」(共用サーバ)なので、レスポンスは期待してなかったけれど、Web 画面はかなり「もっさり」してる。
遅いからと言って、レスポンスか返ってくるのを待たずにあちこちクリックすると 500 エラーになる。
でも、この辺りは WordPress(特にダッシュボード、管理画面)の挙動でも同様なので、期待しないほうが良いかも。

一応 Nextcloud 内部でも、キャッシュなどのレスポンス対策は施されているようだが、大量のユーザを抱えての運用には耐えられないと思う。
レンタルサーバ上の Nextcloud は、あくまで個人利用ぐらい。

ちなみに、レンタルサーバのプランを上げることによって「重さ」が軽減できるとは考えないほうがいい。

「多少」は軽くなる可能性があるものの、体感できるほどのレスポンス改善はおそらく期待できないと思う。

IT技術者じゃないとインストールは難しい、かも?

インストール等はかなり簡単にできるようになってはいる。しかしながら、Apache などの conf 設定や、Nextcloud 自体の config 設定など、細かな設定調整をしようとすると、IT技術者としての知識や経験・勘所が必要な部分がどうしても出てくる。

また、セキュリティ面の部分も考えると、適切なIT技術者がインストールや設定を担当するのが望ましいと思う。

Android, iOS などのアプリ提供を謳ってるけど、アプリで直接できるのは、ストレージ機能ぐらい

CalDAV, CardDAV を用いた同期(連携)については、Android, iOS の Nextcloud アプリを経由してやれるようだが、あくまで同期だけ。
Android, iOS の Nextcloud アプリが、直接カレンダー機能などのグループウェア機能を提供してるわけではない。

WebDAV に関連する機能は、レンタルサーバのプランに依存する

さくらインターネットの場合、レンタルサーバでも「マネージドサーバ」プラン(1台、丸ごとレンタルプラン)じゃないと、そもそも WebDAV 自体が使えない。

そして、それは WebDAV を使用した規格である CalDAV, CardDAV も使えないことを意味する。

カレンダーやメール閲覧機能について

Nextcloud システムは、アプリ(というかプラグイン?)機能として、カレンダーやメール、連絡先などの各種グループウェア機能を導入することができる。

しかしながら、機能面ではお世辞にも洗練されているとは言えない。
Nextcloud をビジネス上の統合環境として捉えるのであれば、選択するも良いとは思うが、その場合は、専用サーバを建てて運用するのが良いかと。

そして専用サーバを建てるぐらいであれば、Google Workspace(旧 G Suite)などのサービスを使ったほうが良い気がする、のだが?

それにレンタルサーバで Nextcloud を運用する場合、付加機能はそのままサーバ負荷になってしまう。
あくまでクラウドストレージとして割り切って、これらのアプリ導入は控えたほうが良いと思う。

外部ストレージ

たとえば、NextCloud のストレージから別サーバの領域を「外部ストレージ」として繋ぎ込むことが可能。
接続できるのは、Amazon S3 などの各種クラウドサービスのオブジェクトストレージや、FTP, SFTP で接続できるサーバ領域など。

ちなみに SMB/CIFS などにも接続できるが、今回はさくらのレンタルサーバに Nextcloud を設置したので、使えない(使わない)のではないかと。

自分の場合、いくつかの Web 領域として無駄に保有してる領域を FTP 接続して使ってみた。

「1つの外部ストレージの接続設定=1つのディレクトリ」として認識する

そのため、外部ストレージ配下の最大容量は、外部ストレージとして接続した先で個々に提供されている領域の上限になる。
接続先の領域サイズが極端に小さい場合は、その領域内に保存するファイルの容量に注意する必要がある。

あと、当たり前だが、ストレージ領域として合算された領域サイズとして、一連で使える訳でもない。

Web領域を繋ぎ込むことも可能だが、セキュリティに注意

ホームページ領域として提供された空間を FTP, SFTP で外部接続して有効利用すること自体は可能。
ただし、これらの領域は元々ホームページの領域として公開されている領域なので、外部接続先として繋ぎ込むディレクトリに対し、適切なアクセス制限を施さないと、ホームページの領域として丸見えになってしまうので、注意すること。

ちなみに ISP によっては、そもそもアクセス制限を施すことができない場合ホームページサービスもあるので、注意。
その場合、外部ストレージとしての使用は望ましくない。

遅い

ただでさえレンタルサーバ上の Nextcloud 本体への接続が遅い状況下で、さらに FTP 接続した先の外部ストレージを参照する以上、レスポンシブとは言い難い。
フォルダの同期という形で利用するのであれば、違和感を感じることはないかもだが、Nextcloud のWeb画面からテキスト等を直接参照・編集する場合には、かなり遅く感じる。
(たまに 500 エラーも発生する。)