cPanelサーバーを保護するための15の簡単なヒント

公開: 2017-06-27

cPanelサーバーを保護するための15の簡単なヒント
サーバーのセキュリティは複雑で多面的なテーマであり、完全に理解して習得するには何年もかかる可能性があります。

ほとんどの管理者は、攻撃や侵害を防ぐために、サーバー上に膨大な数のセキュリティ対策を熱心に開発して展開する必要があります。

問題のセキュリティ対策は、より安全なパスワードを要求するのと同じくらい単純であり、保存されたデータに更新された暗号化プロトコルを展開するのと同じくらい複雑です。

ただし、幸いなことに、cPanelサーバーのセキュリティは、サーバーのセキュリティ範囲の「単純な」端に向かっています。

ほんの数分でサーバーのセキュリティを大幅に向上させる15の簡単な方法を次に示します。

1.SSHの保護

SSHは暗号化されたプロトコルですが、不浸透性ではありません。 つまり、管理者は、構成中にデューデリジェンスを実行する必要があります。

SSHのセキュリティを強化するための3つの簡単な手順を次に示します。

1.SSHポートを変更する

SSHをデフォルトのポート22に維持すると、ブルートフォース攻撃に対して脆弱になります。 これらの攻撃を防ぐには、SSHのランダムなポートを選択して、潜在的な攻撃者がその場所を識別しにくくする必要があります。

SSHポートを変更する手順は次のとおりです。

  1. SSH経由でサーバーにログインします。
  2. 次のコマンドを発行して、 / etc / ssh/sshd_configにあるSSH構成ファイルを編集します。
    nano / etc / ssh / sshd_config
  3. 次の行でSSH接続用のランダムポートを設定します。元のポート22
    新しい行:ポート2468
  4. 次に、次のコマンドを実行してSSHサービスを再起動します。
    service sshd restart

2.ルートログインを無効にする

セキュリティの層を追加し、SSHをさらに強化するために、rootユーザーを無効にし、サーバーにアクセスするための別のユーザーを作成できます。

方法は次のとおりです。

  1. SSH経由でサーバーにログインします。 rootログインを無効にする前に、サーバーにアクセスするためのユーザーを作成します。
    adduser new_username_name
    passwd new_username_name
  2. この新しいユーザーのパスワードを設定するように求められます。 パスワードが可能な限り強力であることを確認し(少なくとも10文字で、いくつかの数字と記号を含む)、次のコード行を使用して、サーバーへのアクセスを許可するホイールグループに新しいユーザーを追加します。
    #usermod -aG Wheel new_username_name
  3. ここで、rootユーザーを無効にします。 / etc / ssh/sshd_configにあるSSH構成ファイルを編集します。
    nano / etc / ssh / sshd_config
  4. 次の行を変更します:「PermitRootLoginyes」を「PermitRootLoginno」に変更します
  5. 次に、次のコマンドを実行してSSHサービスを再起動します。
    service sshd restart

3.SSHV1を無効にします

SSHv2の開始により、その前身であるSSHv1はほとんど時代遅れになりました。サーバーのセキュリティを向上させるために、安全性の低い古いSSHを無効にすることを強くお勧めします。

  1. SSH経由でサーバーにログインし、 / etc / ssh/sshd_configにあるSSH構成ファイルを編集します。
  2. 次の行のコメントを解除します。
    プロトコル2,1
  3. そしてそれを次のように変更します:
    プロトコル2
  4. 次に、次のコマンドを実行してSSHサービスを再起動します。
    #service sshd restart

2.cPHulk保護を有効にする

ブルートフォース攻撃は、自動化されたシステムに依存してWebサーバーのパスワードを推測するハッキング方法です。

cPHulkは、ほとんどのブルートフォース攻撃からサーバーを保護する使いやすいサービスです。

cPHulkを有効にするには、WHM→セキュリティセンターcPHulkブルートフォース保護にログインし、[有効にする]をクリックします。

cPanelのユーザー名、IPアドレス、その他のパラメーターに基づいてカスタムルールを設定できるようになりました。

設定された失敗したログイン試行回数に達すると、cPHulkは使用されているIPアドレスからのそれ以上の試行をブロックします。

注:静的IPを使用している場合は、サーバーからロックアウトされないように、静的IPをホワイトリスト管理に追加することを強くお勧めします。

3. ConfigServerファイアウォール(CSF)をセットアップします

CSF(ConfigServer Security and Firewall)は、cPanelサーバーで最も人気のあるファイアウォールの1つです。

さまざまな認証ログファイルをスキャンすることでファイアウォールとして機能するだけでなく、サーバーを定期的にスキャンし、サーバーのセキュリティを向上させるための個別の推奨事項を提供します。

CSFは、その主要な機能に加えて、「システムログの表示」、IPTableログ、IFD統計などの多くの便利な機能へのアクセスも提供します。

ConfigServerファイアウォールのインストール

cPanelを使用してサーバーにCSFをインストールするのは非常に簡単です。 ConfigServerファイアウォールをcPanel/WHMにインストールする方法については、ステップバイステップガイドを参照してください。

前述のガイドの指示に従うと、WHMから直接CSFを管理できます。

これを行うには、 WHMにログインし、[プラグイン]→[ConfigServerセキュリティとファイアウォール]に移動します。

ここでは、セキュリティをさらに強化するために使用できるいくつかのオプションと対策が提示されます。

4.ClamAVアンチウイルスをセットアップします

Linuxサーバーは、Windowsベースのサーバーよりもウイルスに対する「自然な」回復力を備えていますが、追加のウイルス対策アプリケーションをインストールすることは依然として賢明であると考えられています。

サーバーにプラグインとして簡単にインストールできるClamAVは、cPanelサーバーで最も人気のあるオープンソースのウイルス対策プラグインの1つであり、個々のユーザーがホームディレクトリと電子メールをスキャンして悪意のある可能性のあるファイルを探すことができます。

繰り返しになりますが、簡潔にするために、WHMからClamAVプラグインをインストールする方法のステップバイステップガイドを参照してください。

ClamAVをインストールすると、cPanelユーザーレベルのアクセス権を持つ特定のcPanelアカウントをスキャンできます。 これは、 cPanelからClamAVウイルススキャンを実行する方法に関するガイドです。

5.CloudLinuxに切り替えます

無料のCentOSの有料代替品であるCloudLinuxは、cPanelサーバーの最も安全なオペレーティングシステムの1つと見なされています。

CloudLinuxを使用すると、cPanelアカウントを相互に分離しておくことで、サーバーの密度と安定性を高めることができます。

各ユーザーの処理、メモリ、接続などのサーバーリソースを制限するLVE(Lightweight Virtualized Environment)を使用することでこの機能を実現し、1人のユーザーがサーバーの安定性を危険にさらしてすべてのサイトの速度を低下させないようにします。

OSは、セキュリティ違反を回避するために、ユーザーを相互に「ケージ」します。 不安定な、または侵害されたスクリプトやマルウェアは、侵害されたアカウントによってサーバー全体に拡散することはできません。

CloudLinuxOSの主なセキュリティ機能は次のとおりです。

  1. CageFS
  2. HardenedPHP
  3. SecureLinks

CageFS

CageFSは各ユーザーをカプセル化し、ユーザーがお互いを見たり機密情報を読み取ったりするのを防ぎます。 また、特権昇格や情報開示攻撃のほとんどを含む多数の攻撃を防ぎます。

→CageFSを使用すると、ユーザーは安全なファイルにのみアクセスできます。
→ユーザーは、Apache構成ファイルなどのサーバー構成ファイルを表示できません。
→ユーザーは他のユーザーを表示できず、他のユーザーの存在を検出する方法がありません。
→ユーザーは他のユーザーのプロセスを見ることができません。

HardenedPHP

古いPHPバージョン5.2、5.3、5.4は広く使用されていますが、PHP.netコミュニティによってパッチが適用されていない脆弱性があります。
CloudLinuxのHardenedPHPはこれらの脆弱性を修正し、サポートされていない古いバージョンを保護します。

→すべてのPHPバージョンにパッチを適用することで、アプリケーションとサーバーのセキュリティを確保します。
→すべてのユーザーにセキュリティと柔軟性を提供します。
→新しいPHPバージョンへのアップグレードを強制しないことにより、顧客維持を向上させます
→PHPセレクターオプションを使用して、同じWebサーバーにインストールされている複数のバージョンからPHPバージョンを選択できます

SecureLinks

SecureLinksは、既知のすべてのシンボリックリンク(symlink)攻撃を防止すると同時に、悪意のあるユーザーがsymlinkファイルを作成するのを防ぐことにより、サーバーを強化するカーネルレベルのテクノロジです。
→SecureLinksを使用すると、悪意のあるユーザーが所有していないファイルへのシンボリックリンクやハードリンクを作成しないようにすることで、攻撃を防ぐことができます。
→悪意のあるユーザーがシンボリックリンクファイルを作成するのを防ぎます。
→シンボリックリンク攻撃からサーバーのセキュリティレベルを強化します。

6.Pingリクエストを無効にします

pingはICMP(インターネット制御メッセージプロトコル)要求であり、「PingofDeath」および「PingFlood」攻撃を回避するために無効にする必要があります。

死のping

Ping of Deathは、攻撃者がIPプロトコルで許可されているよりも大きいIPパケットを故意に送信することによって引き起こされるサービス拒否攻撃です。

その結果、多くのオペレーティングシステムは、特大のパケットを受信したときに何をすべきかわからず、マシンがフリーズ、クラッシュ、または再起動します。

Pingフラッド

Ping Floodは単純なサービス拒否攻撃であり、攻撃者はICMPパケットで被害者を圧倒し、被害者がICMP応答をパックして応答し、着信帯域幅と発信帯域幅の両方を消費することを期待します。

ターゲットマシンの速度が遅い場合、CPUサイクルを消費して、システムの処理能力が著しく低下する可能性があります。

ping応答を無効にするには、rootユーザーとして次のコマンドを実行します。
エコー「1」>/proc / sys / net / ipv4 / icmp_echo_ignore_all
エコー「1」>/proc / sys / net / ipv4 / icmp_echo_ignore_all
IPtablesファイアウォールを使用してping応答を無効にするには、rootユーザーとして次のコマンドを実行します。
iptables -A INPUT -p icmp -j DROP

7.ホストアクセス制御を構成します

場合によっては、特定のサービスを1つのIPにのみ許可したい場合があります。 この目標を達成するために必要なのは、ホストアクセス制御を適切に構成することです。これにより、ユーザーのIPアドレスに基づいてサーバーアクセスを承認または拒否するルールを作成できます。

すべての接続を拒否し、続行したい接続のみを許可することは、特定のポートを介したブルートフォース攻撃に対するサーバーのセキュリティを強化するための最も安全な方法です。

ホストアクセス制御を使用してルールを構成するには、3つのものが必要になります。

  1. ルールを作成するサービス
  2. 特権を許可または拒否するIPアドレス
  3. そして、実行したいアクション(許可または拒否など)

ホストアクセス制御でルールを設定するには、WHMにログインし、セキュリティセンターホストアクセス制御に移動します。

以下は、SSHサービスをロックダウンする例です。

デーモンアクセスリストアクションコメント
sshd 192.168.3.152 許可するローカルSSHアクセスを許可する
sshd 1xx.6x.2xx.2xx 許可する特定のIPからのSSHを許可する
sshd 全て拒否他のすべてのIPからのアクセスを拒否する

注:ルールには優先順位があります。 いくつかの許可を使用することを選択した場合は、「拒否」ルールの前に「許可」ルールを配置してから、すべての手法を拒否する必要があります。

8.Mod_Securityを設定します

2017年には、すべての悪意のあるサーバー攻撃の70%以上がWebアプリケーションレベルで実行されています。
特定のサーバーに関連するリスクを軽減するために、WAFまたはWebアプリケーションファイアウォールを展開して外部セキュリティを強化し、攻撃がWebアプリケーションに到達する前に検出/防止することが業界のベストプラクティスです。

ModSecurityは、最も古く、最も人気のあるWebアプリケーションファイアウォールの1つであり、次のことを防ぐように設計されています。

  1. SQLインジェクション
  2. iFrame攻撃
  3. Webshel​​l/バックドア検出
  4. ボットネット攻撃の検出
  5. HTTPサービス拒否(DoS)攻撃

mod_securityのインストールは、既存のインフラストラクチャにほとんど変更を加えることなく、数分以内に実行できます。

EasyApache構成から有効にできます。

Mod_Securityルールを作成するには、 ModSeurity Toolsに移動し、ルールリストをクリックします。

新しいウィンドウでは、すべてのルールが表示されます。 [ルールの追加]をクリックして、新しいルールを作成できます。 新しいルールをデプロイするには、Apacheを再起動する必要があることに注意してください。

ModSecurityツールの詳細については、ここをクリックしてください。

9.ルートキットハンターを使用してシステムをスキャンします

ルートキットハンターまたはrkhunterは、ルートキット、バックドア、およびローカルエクスプロイトの可能性をスキャンするUNIXベースのツールです。

重要なファイルのSHA-1ハッシュをオンラインデータベースにあるファイルと比較して、ファイルの整合性を確認します。

また、デフォルトのルートキットディレクトリ、過剰なアクセス許可、隠しファイル、カーネルモジュール内の疑わしい文字列、およびサーバーのセキュリティを危険にさらす可能性のあるその他の多数のものを検索します。

ルートキットハンターのインストール

現在の作業ディレクトリを目的のインストールディレクトリに変更します。
cd / usr / local / src
wgetコマンドを使用してrkhunterパッケージをダウンロードします。
wget http://dfn.dl.sourceforge.net/sourceforge/rkhunter/rkhunter-1.4.2.tar.gz
ダウンロードしたrkhunterアーカイブを解凍します。
tar -zxvf rkhunter-1.4.2.tar.gz
現在の作業ディレクトリをrkhunterディレクトリに変更します。 ディレクトリ名を実際のディレクトリ名に置き換えてください。 私たちの場合、それは「rkhunter-1.4.2」であり、新しいアップデートがリリースされたときに変更できます。
cdrkhunter-1.4.2
インストールスクリプトを実行して、rkhunterパッケージをインストールします。
./installer.sh –layout default –install
これにより、サーバーにrkhuterツールがインストールされます。

rkhunterの構成

rkhunterの設定ファイルはパス/etc/rkhunter.confにあります。 このファイルのパラメータ値を変更することで、rkhunterのプロパティを変更してサーバーを保護できます。 SSH経由でrootログインを許可するには
ALLOW_SSH_ROOT_USER=はい
rkhunterインストールディレクトリ
INSTALLDIR = / path / of / installation / directory
rkhunterデータベースディレクトリ
DBDIR = / var / lib / rkhunter / db
rkhunterスクリプトディレクトリ
SCRIPTDIR = / usr / local / lib64 / rkhunter / scripts
rkhunter一時ディレクトリ
TMPDIR = / var / lib / rkhunter / tmp

rkhunterによる手動スキャン

rkhunterで手動スキャンを実行するには、以下のコマンドを実行します。
/ usr / local / bin / rkhunter -c
デフォルトでは、rkhunterはインタラクティブモードで実行されます。 rkhunterは一連のスキャンを実行し、スキャンの各セットの後で、Enterキーを押してスキャンを続行する必要があります。

インタラクティブモードの実行をスキップし、以下のコマンドを使用してすべてのセットをスキャンします。 -cはローカルシステムをチェックし、-skはキーの押下をスキップすることに注意してください。
/ usr / local / bin / rkhunter -c -sk
ファイルシステム全体をスキャンするには、以下のコマンドを実行します。
rkhunter –チェック

Rkhunterを使用した自動スキャンのスケジュール

スケジュールされた自動スキャンを作成するには、rkhunterスキャンを実行し、スキャン結果を電子メールで送信するスクリプトを作成します。

rkhunterスキャンを毎日実行する場合は、スクリプトを/etc/cron.dailyディレクトリにアップロードし、毎週スキャンする場合は/etc/cron.weeklyにアップロードします。

エディターでファイルを開き、以下のスクリプトを記述して毎日スケジュールします。
vi /etc/cron.daily/rkhunter.sh
毎日のスキャンをスケジュールするスクリプト

#!/bin/sh

(

/usr/local/bin/rkhunter --versioncheck

/usr/local/bin/rkhunter --update

/usr/local/bin/rkhunter --cronjob --report-warnings-only

) | /bin/mail -s 'rkhunter Daily Run (HostnameOfServer)' youremail@address

HostnameOfServeryouremail @ addressは、スクリプトで通知の送信先となる実際のサーバーのホスト名と電子メールアドレスに変更してください。

rkhunterの更新とオプション

rkhunterの現在のバージョンを確認します。
/ usr / local / bin / rkhunter –versioncheck
rkhunterのバージョンを更新します。
/ usr / local / bin / rkhunter –update
データベースファイルが更新されている場合は、更新された値とプロパティを確認して保存します。
/ usr / local / bin / rkhunter –propupd
rkhunterログには、アプリケーションで実行されたすべてのアクティビティと発生したエラーが保存されます。 rkhunterログを確認します。
/var/log/rkhunter.log
で他のrkhunterオプションを参照できます。
/ usr / local / bin / rkhunter –help

10.Maldetでシステムをスキャンします

Linux Malware Detect(LMD)とも呼ばれるMaldetは、侵入されたWebサイトに存在する可能性のあるphpバックドア、darkmailer、およびその他の多数の悪意のあるファイルを効果的に検出するように設計されたLinuxシステム用のマルウェアスキャナーです。

Maldetのインストール

  1. サーバーにSSHで接続し、tarファイルをダウンロードします。
    wget href =” http://www.rfxn.com/downloads/maldetect-current.tar.gz”>
  2. ファイルを抽出します。
    tar -xzf maldetect-current.tar.gz
  3. maldetフォルダーに移動します。
    cd maldetect- *
  4. maldetをインストールするには、以下のコマンドを実行します。
    sh ./install.sh

LinuxサーバーでMaldetを使用する

システムのディスク容量の使用状況によってはスキャンに数時間かかる場合があるため、常に新しい画面セッションを開いてスキャンを実行する必要があります。 スキャンを実行するには、以下のコマンドを使用します。
maldet -a / path / to/scanまたは

maldet –scan-all / path / to / scan
以下のコマンドを実行して、システム全体をスキャンすることもできます
マルデット-a/
サーバーのスキャンが完了すると、最後にSCANIDを取得します。 スキャンしたレポートを表示するには、以下のコマンドを使用します。 SCANIDを実際のIDに置き換える必要があることに注意してください。
maldet –スキャンIDを報告する
例:maldet –レポート062617-2220.1771

以前のスキャンからのすべてのマルウェアの結果を隔離するには、以下のコマンドを実行します。
maldet -q SCAN ID
元。 マルデット-検疫062617-2220.1771

Maldetを自動化する

maldet構成ファイルconf.maldetを編集して、次のようなプロセスを自動化できます。

  1. email_alert1設定して、構成された電子メールアカウントにレポートを送信します。
  2. email_addr、スキャンレポートを受信する電子メールアカウントを設定します。
  3. quar_hits1変更して、見つかったマルウェアがディレクトリ' / usr / local / maldetect / quarantine 'に移動され、設定された電子メールアドレスで通知を受け取るようにします。
  4. quar_susp1変更ます。これにより、cPanelユーザーのアカウント停止が有効になるか、cPanel以外のユーザーのシェルアクセスが「 / bin/false 」に設定されます。

11.ClamAVを毎日実行するようにcronジョブを設定します

追加、更新、および削除のアクションはサーバー上にあるファイルで迅速に実行されるため、すべての新しい変更が安全であり、ウイルス対策アプリケーションで適切にスキャンされるようにすることが最も重要です。

ClamAVスキャナーのcronジョブを使用して、「営業時間外」に自動的に開始される毎週のスキャンを実行できます。

次のコマンドを使用して、このcronを実行します。
for i in awk '!/nobody/{print $2 | "sort | uniq" }' /etc/userdomains | sort | uniq awk '!/nobody/{print $2 | "sort | uniq" }' /etc/userdomains | sort | uniq awk '!/nobody/{print $2 | "sort | uniq" }' /etc/userdomains | sort | uniq ; / usr / local / cpanel / 3rdparty / bin / clamscan -i -r / home / $ i 2 >> / dev/null;を実行します。 完了>>/root / infections&
このコマンドは、ホームディレクトリでスパムファイルと感染ファイルを再帰的に検索します。

12.Apacheヘッダー情報を無効にします

サーバーの署名にはApacheやOSのバージョンなどの情報が含まれているため、WHMログインを使用してこの情報を一般の人の目に触れないようにすることが重要です。

  1. WHMにログインしたら。 「サービス構成」→「 Apache構成」→ 「グローバル構成」にナビゲートします。
  2. 以下の値を設定してください。
    サーバー署名=オフ
    サーバートークン=製品のみ

13.PHPのバージョン情報を非表示にする

Apacheヘッダーと同様に、PHPのバージョン情報も公開しないでください。 この情報を非表示にする手順は次のとおりです。

  1. WHMにログインしたら。 「サービス構成」「PHP構成エディター」にナビゲートします。
  2. 以下の値を設定してください。
    Exposure_php =“ off”

14. FTPを無効にし、代わりにSFTPを使用する

それらの名前から推測することはできませんが、FTPプロトコルとSFTPプロトコルは互いにこれ以上異なることはありません。

標準のFTPでは、クライアントとサーバー間で送信されるすべてのデータはプレーンテキストです。 これにより、盗聴者はログイン資格情報やその他の「プライベート」メッセージなどの機密情報を取得できます。

標準のFTPとは異なり、SFTP(SSHファイル転送プロトコル)はコマンドとデータの両方を暗号化し、パスワードと機密情報がネットワークを介してプレーンテキストで送信されるのを防ぎます。

SSHキーを生成し、SFTPクライアントを介してサーバーに接続する手順については、ここをクリックしてください。

SFTP接続を許可し、プランFTPを無効にするだけの場合は、WHM/cPanelの以下の手順に従います。

  1. rootユーザーとしてWHM/cPanelにログインします。
  2. FTPサーバー構成に移動します。 TLS暗号化サポートで、それを必須(コマンド)に変更し、[保存]ボタンをクリックします。

15.cPanelとWHMアクセスの保護

HTTPSURLにcPanel/WHMへのアクセスを強制する

SSLベースの暗号化でcPanelまたはWHMログインを保護するには、次の2つの簡単な手順に従います。

  1. WHMにログインし、[ホーム]→[サーバー構成]→ [設定の微調整]に移動します。
  2. 右側にスクロールして[リダイレクト]タブを表示し、下の画像に示す設定を使用します。

cPanel-IDログインの無効化

cPanelサーバーでは、2種類のログインが可能です。

1つ目はデフォルト/標準のユーザー名とパスワードのログインで、2つ目はcPanelIDを使用してサーバーにログインすることです。

cPanel IDを使用すると、ユーザーは単一のユーザー名とパスワードをデプロイして、さまざまなcPanelサービスにアクセスできます。

この方法は、大規模なデータセンターを管理し、新しい技術者を頻繁に採用する組織には適していますが、サーバーが1つしかない場合は、次の手順を使用して無効にする必要があります。

  1. WHMにログインし、[ホーム]→ [セキュリティセンター]→[外部認証の管理]に移動します。
  2. 下の画像に示すように、cPanel-IDログインを無効に変更します。

結論

これらの15の簡単なヒントをVPSまたは専用サーバーに実装することで、内部および外部の両方で攻撃に対する脆弱性を即座に減らし、数時間以内にシステムのセキュリティを強化します。

これらのヒントはサーバーへの脅威の数を減らすことができますが、すべてを解決できるわけではありません。

システムのセキュリティを最適化するには、デューデリジェンスを行い、サーバーセキュリティの世界での最新の出来事について定期的に更新する必要があります。

ただし、月に数時間の調査で、cPanelのセキュリティの最先端にとどまり、あなたとあなたの会社が今後何年も安全であり続けることを保証できます。

上記の15のヒントについて質問がありますか? 共有したいcPanelサーバーの新しいセキュリティ機能を見つけましたか? 以下のコメントでお知らせください。