ノウハウ
[エンジニア向け]

SSHDの注意喚起やサーバへのアクセス制限について

ノウハウ
テクニカルサポート

SSHとは

SSH(Secure Shell)は暗号化された通信でコマンドラインの操作を行うためのサービスで、エクスクラウドのVPSプランには標準でご提供しております。

※FTPよりもSSHポートを利用したSCPのほうがより安全性が高いということで、共用のFLEX、SECUREプランのお客様にも一部のSSH機能を有効にされている方もいらっしゃいます。

SSHについては大変ポピュラーなツールなのですが、パスワード漏洩の危険性を含むセキュリティ警告があったため、当社でも特に上位プランのお客様についてはSSHDについてはアクセスを制限するなどの注意喚起のご案内をしております。

SSHのセキュリティ警告の参考方法サイト

仮想環境プログラム、およびPleskの提供元であるParallelsのサイト
[セキュリティアラート] Linux ベースのマシン上の sshd rootkit に関するセキュリティアラート

参考フォーラム(英語)
Web Hosting Talk : [FEATURED] SSHD Rootkit Rolling aroundWeb Hosting Talk :SSHD Rootkit Rolling around

たとえば専用サーバプランのお客様ではSSHD(SSH Daemon)の起動ポートを通常の22番から別の番号に変える、ということをされているお客様もいらっしゃるでしょうし、パスワード認証ではなくキー認証のみ有効に変更することで、既定値を変えているお客様もいらっしゃるでしょう。

ただ今回の警告のように”具体的にどこの脆弱性が突かれ、どういう経路奪われたか”が明白でない場合、
もっとも有効な策は「外部からSSHDらしきポートが起動しているように見えないこと」です。

アクセス制限についても、一度ポートが応答してからアクセス元を判断して制限をかける、tcpserverやtcpwrapperよりも、iptables等で閉じてしまうほうより強力です。

アクセス制限:Plesk非搭載の場合

Plesk搭載でないコマンド操作プランの方は 基本はiptablesで、設定いただければと思います。

iptables等のアクセス制限ルールはたとえば

  • すべてのアクセス元に対して開くサービスポートを宣言
  • 一部のアクセス元に対して開くサービスポートを宣言
  • それ以外の応答は全部閉じる

というように、大枠のポリシー決め、順序決めをしてから設定を追加していきます。

まちがって「全部閉じる」から記述してしまうと大変なことになりますし、「自分の接続元SSHも誤って閉じてしまう」危険性を防ぐため、SSHで設定追加作業される際は、ターミナルは2つ以上接続させておき、再接続を確認するまでは、SSH接続を保持しておいた方が安全です。

「iptablesの設定をオールオープンにするための置き換え起動スクリプト」なども用意しておき、
不測の事態に準備するというのもよいでしょう。

 

アクセス制限:Plesk搭載の場合

Plesk搭載のものであればFireWallモジュールという機能、(Plesk11では”モジュール”という呼び名ではなくサーバ機能の”拡張”というネーミングですね)で、GUIからの操作が可能です。

ファイアウォールモジュール【ADVANCE/EXPERT/Plesk8】

ファイアウォール設定【Plesk11】

現状については

# iptables -L -n

のようなコマンドで確認することももちろんできますが、このファイアウォール機能を操作すると

/usr/local/psa/var/modules/firewall/firewall-active.sh

のファイルが更新されるのでファイルレベルで、確認したい場合などは、このファイルの中身をご確認いただけます。

ユーザ管理について

ターミナルで利用しないアカウント、たとえば過去にSSHで接続をしていたけど基本FTPだけで問題ないアカウントについてはシェルを変更してログインができないように設定いだくことも重要です。

PleskでSSH可能なユーザを発行できるのは以下の箇所ですので、不要なSSHアカウントであれば、FTPのみの設定に直しておきます。

Plesk8の場合

ドメイン>ドメイン名>「設定」
”アカウントプリファレンス”欄の「システムアクセス 拒否」:FTPアクセスのみ
の設定です。それ以外であれば、SSH可能なアカウントになっています。

Plesk11の場合

上部でウェブスペース名を選択>「ウェブサイトとドメイン」>「ウェブホスティングアクセス」
”ユーザアカウント”欄「SSH経由でサーバにアクセスしますか」の項目が
「Forbidden」なら、FTPアクセスのみの設定で、それ以外がSSH可能なアカウント設定です。

その他のアカウントの場合

その他にもアカウントはたくさんありますが、コントロールパネルでもある程度確認することはできます。
一般ユーザアカウントであれば、たとえばParallels製品で作成される webadminアカウントなどは
ログイン不可、に設定を変更いただいてかまいません。

条件としては

  • シェルが有効になっている (bash や tcsh  等で設定されている)
  • /etc/shadow ファイルの第2フィールドにパスワード文字列らしきものが設定されている
    ( ” * (アスタリスク)”や” !! “ 以外の文字列が入っている)
  • ログイン用途がない一般ユーザアカウント

でしたら、設定を「/sbin/nologin」や「/bin/false」等で指定しても問題はありません。

”一般ユーザ”のシェルの設定変更については
以下のようにコントロールパネルから操作が可能です。

1.コントロールパネル、契約サーバを選択
2.システムを開く
3.ユーザをクリック
4.対象のアカウント名「webadmin」をクリック
5.シェルをプルダウンで選択
6.「更新」をクリック

SSHを利用できるエクスクラウドのクラウドも是非ご利用ください。

この記事を書いた人

テクニカルサポート

テクニカルサポートを得意とするエクスクラウドのサポートスタッフ。

この記事のタグ

オススメの記事

ページトップへ