私は Linux を実行する Amazon Lightsail インスタンスのシステム管理者です。データの保護に使用できるサーバーセキュリティのベストプラクティスを知りたいと考えています。
解決策
Linux サーバーのセキュリティに関する基本的なベストプラクティスを次に示します。これは完全なリストではありません。ローカルシステム管理者には、要件やユースケースに基づいて構成しなければならない複雑な設定が多数あります。
Linux サーバーとのデータ通信を暗号化する
ファイル転送には SCP、SSH、rsync、または SFTP を使用してください。FTP と Telnet は安全ではないため、使用しないでください。安全な (HTTPS) 接続を維持するには、サーバーに SSL/TLS 証明書をインストールして設定します。
Linux の脆弱性を最小限に抑えるためにソフトウェアを減らし、定期的にセキュリティ監査を実施する
ソフトウェアやパッケージからの脆弱性を避けるため、不要なソフトウェアをインストールしないでください。可能であれば、不要なパッケージをすべて特定して削除してください。
Linux カーネルとソフトウェアを最新の状態に保つ
セキュリティパッチは Linux サーバーメンテナンスの重要な部分です。Linux には、システムを常に最新の状態に保つために必要なすべてのツールが用意されています。バージョン間で簡単にアップグレードできます。セキュリティアップデートがリリースされたら、すぐに確認して適用し、利用可能な最新のカーネルに更新するようにしてください。すべてのセキュリティアップデートを適用するには、yum、apt-get、dpkg など、お使いの Linux ディストリビューションをベースにしたパッケージマネージャーを使用してください。
Linux セキュリティ拡張機能を使用する
Linux には、プログラムの設定ミスや侵害を防ぐためのセキュリティ機能が搭載されています。可能であれば、SELinux やその他の Linux セキュリティ拡張機能を使用して、ネットワークやその他のプログラムに制限を適用してください。
root ログインを無効にする
root ユーザーとしてログインしないでください。必要な場合は、sudo を使用してルートレベルのコマンドを実行するのがベストプラクティスです。sudo はシステムのセキュリティを強化し、認証情報を他のユーザーや管理者と共有しません。詳細については、Red Hat の Web サイトの「ルートアクセスの禁止」を参照してください。
SS または netstat を使用してリスニングネットワークポートを見つけ、他のすべてのポートを閉じるか制限する
ss または netstat を使用して、システムのネットワークインターフェースでリッスンしているポートを探します。開いているポートがあれば、侵入の証拠になる場合があります。詳細については、「Linuxネットワーク: ss 経由のソケット統計」および「Linuxネットワーク」を参照してください。 Red Hat の Web サイトでの netstat の用途は 13 通りあります。
**Linux サーバーで Lightsail ファイアウォールと OS レベルのファイアウォールを設定してセキュリティを強化する **
Lightsail ファイアウォールを使用してトラフィックをフィルタリングし、サーバーに必要なトラフィックのみを許可します。OS レベルのファイアウォールは、Linux カーネルが提供するファイアウォールを設定できるユーザースペースのアプリケーションプログラムです。お使いの Linux ディストリビューションに応じて、iptables、ufw、firewalld などを使用できます。iptables と firewalld の詳細については、Red Hat の Web サイトの「Setting and Controlling IP sets using iptables」および「Using firewalls」を参照してください。ufw の詳細については、ubuntu の Web サイトの「Security - Firewall」を参照してください。
auditd を使用してシステムを監査する
auditd を使用してシステムを監査します。**Auditd ** は監査レコードをディスクに書き込みます。また、システムログイン、認証、アカウント変更、SELinux 拒否などのシステムアクティビティの監視っも行います。これらの記録は、悪意のあるアクティビティや不正アクセスを特定するのに役立ちます。詳細については、Red Hat の Web サイトの「](https://www.redhat.com/sysadmin/configure-linux-auditing-auditd)Configure Linux system auditing with auditd[」を参照してください。
IDS をインストールする
fail2ban または denyhost を侵入検知システム (IDS) として使用してください。**Fail2ban ** および denyhost は、ログイン試行の失敗回数が多すぎるかどうかログファイルをスキャンし、悪意のあるアクティビティの兆候を示す IP アドレスをブロックします。
定期的にバックアップを作成する
詳細については、「Amazon Lightsail のスナップショット」を参照してください。
ファイルやディレクトリの読み取り、書き込み、実行権限 (777) をユーザ、グループ、その他に付与しないでください
**chmod ** を使用して、Web ルートディレクトリやドキュメントルートなどのファイルやディレクトリへのアクセスを制限できます。詳細については、Red Hat の Web サイトの「Linux permissions: An introduction to chmod」を参照してください。権限のあるユーザーのみにアクセス権を付与するには、権限を編集します。詳細については、Red Hat の Web サイトの「](https://www.redhat.com/sysadmin/manage-permissions)How to manage Linux permissions for users, groups, and others[」を参照してください。
関連情報
Amazon Lightsail のセキュリティ
Amazon Lightsail のコンプライアンス検証
Lightsail のインフラストラクチャセキュリティ
Windows サーバーベースの Lightsail インスタンスを保護するためのベストプラクティス