セキュアなLinuxサーバー環境:コマンドラインによる構成と保護
コマンドラインを利用すれば、Linuxサーバー環境をセキュアに設定・保護できます。以下にその手順とコマンドを紹介します。
パッケージ管理ツール(aptやyumなど)を使用してOSとパッケージを更新して、最新のセキュリティ修正と機能更新を取得します。
不必要なサービスの停止・無効化:systemctlコマンドで不要なサービスを停止・無効化することで、サーバーのネットワークへの公開範囲を減らして攻撃対象を狭めます。
ファイアウォール設定:iptablesまたはfirewalld コマンドを使用してファイアウォールルールを設定し、必要なネットワークトラフィックを許可し、不正アクセスを拒否します。例:次のコマンドを使用して、すべての着信接続を拒否し、確立済みの関連接続を許可します:
iptables -P INPUT DROP
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
ルートによるリモートログインの無効化:「/etc/ssh/sshd_config」のSSH設定ファイルを編集して、「PermitRootLogin」を「no」に設定します。これにより、ルートユーザーがSSHを介してリモートログインすることができなくなります。
パブリックキー認証を使用:ログインセキュリティを強化するには、各ユーザーにパブリックキー認証を設定する。ユーザーのパブリックキーは、対応するアカウントの~/.ssh/authorized_keysファイルに追加する。
usermod -s /sbin/nologin ユーザID
usermod -s /sbin/nologin username
7. ログイン監査を有効にする:/etc/pam.d/sshd ファイルを編集して、以下の行を追加し、ssh ログインを監査ログに記録できるようにします。
session required pam_lastlog.so showfailed
session required pam_exec.so /path/to/script
8. 定期にデータをバックアップ:rsyncやscpなどのツールを使用して、重要なデータを定期的に他の場所へバックアップし、データ紛失を防ぐ。
定期にパスワードを更新する: passwdコマンドを使用してユーザーに定期的なパスワード変更を要求し、パスワードの複雑さ要件を満たすようにする
10. セキュアなパスワードポリシーを使用:/etc/pam.d/common-passwordファイルを編集して、パスワードのポリシー要件を設定します。例:最小パスワード長、パスワードの複雑さ要件などです。
定期にログをチェックする: 異常や潜在的なセキュリティ上の問題がないか、システムログ(/var/log ディレクトリ以下のログファイル)を定期的にチェックする。
これらは、安全なLinuxサーバー環境を作成するのに役立つ基本的なコマンドや構成手順ですが、サーバーの安全確保は継続的なプロセスであり、それぞれの必要やベストプラクティスに合わせてカスタマイズする必要があります。