セキュリティは、実稼働環境で起動するサーバーにとって重要な考慮事項です。 Rocky Linux 8の最新バージョンには、堅牢なセキュリティ機能が備わっています。ただし、すべてがアクティブであるか、デフォルトで適切に構成されているわけではないため、新規インストールは常にハッキングや侵入攻撃に対して脆弱です。
このガイドでは、初期設定と基本的なサーバー強化のためにサーバーで実行するいくつかの重要なタスクについて説明します。
前提条件
- Atlantic.Netクラウドプラットフォーム上の新しいRockyLinux8サーバー
- サーバーで構成されているrootパスワード
ステップ1–サーバーを更新する
開始する前に、SSHまたは次の場所にあるVNCコンソールを介してRocky Linux8サーバーにログインします:https://cloud.atlantic.net/
ログイン後、サーバーに最新のセキュリティパッチとアップデートをインストールする必要があります。次のコマンドを実行して更新します。
dnf update -y
Atlantic.Netサーバーは、不要なパッケージがインストールされて未使用のままになるのを防ぐために、最小限のインストールとしてセットアップされています。次のコマンドを実行して、いくつかの基本的なソフトウェアパッケージをインストールできます。
dnf install wget git curl bind-utils tree net-tools -y
ステップ2–デフォルトのrootパスワードを変更する
新しいサーバーを起動すると、サーバーには安全なパスワードが自動的に設定されます。ただし、安全を確保するために、その後60〜90日ごとにrootパスワードを変更することをお勧めします。小文字、大文字、数字を含めて8文字以上のルートパスワードを作成する必要があります。
次のコマンドを使用して、rootパスワードを変更できます。
passwd root
ステップ3–sudo権限を持つ新しいユーザーを作成する
まず、次のコマンドを使用して新しいユーザーを作成します。
adduser user1
次に、次のコマンドを使用してパスワードuser1を設定します。
passwd user1
新しいユーザーを作成したら、このユーザーをsudowheelグループに追加する必要があります。 Rocky Linux 8では、それらをsudo Wheelグループに追加すると、自動的にsudo/root権限が割り当てられます。
次のコマンドを実行して、ユーザーをsudowheelグループに追加します。
usermod -aG wheel user1
sudo / root権限を持つユーザーを作成したら、次のコマンドを使用してuser1にログインします。
su - user1
ログインしたら、sudoを使用して次のコマンドを実行します。
sudo dnf update -y
システムを更新するためにuser1パスワードを入力するように求められます。
これにより、sudoユーザーが期待どおりに機能していることが確認されます。
ステップ4–SSH経由のルートログインを無効にする
すべてのタスクを実行するためのsudo/root権限を持つ管理者ユーザーをすでに作成しました。サーバー上でrootユーザーをSSH経由で利用可能で脆弱な状態に保つ必要はないため、SSH経由のrootログインを無効にする必要があります。
次のコマンドを使用して、SSHメイン構成ファイルを編集します。
sudo nano /etc/ssh/sshd_config
次の行を見つけます:
PermitRootLogin yes
次の行に変更します:
PermitRootLogin no
ファイルを保存して閉じてから、SSHサービスを再起動して変更を適用します。
systemctl restart sshd
ステップ5–SSHデフォルトポートの変更
SSHポートを変更するには、SSHメイン構成ファイルを編集します。
sudo nano /etc/ssh/sshd_config
次の行を見つけます:
#Port 22
次の行に変更します:
Port 2020
ファイルを保存して閉じてから、SSHサービスを再起動して変更を適用します。
systemctl restart sshd
これで、次のコマンドを使用して、SSH経由でAtlanticサーバーにリモートでログインできます。
ssh [email protected] -p 2020
ステップ6–ファイアウォールを構成する
firewall-cmd --state
ファイアウォールが実行されていないことがわかります:
not running
ファイアウォールを有効にし、外部アクセスに必要なポートを許可することをお勧めします。
まず、次のコマンドでfirewalldサービスを有効にします。
systemctl start firewalld systemctl enable firewalld
次に、次のコマンドを使用して、SSHポート2020がファイアウォールを通過できるようにします。
sudo firewall-cmd --permanent --add-port=2020/tcp
次に、firewalldサービスをリロードして、変更を適用します。
sudo firewall-cmd --reload
これで、次のコマンドを使用して、追加されたポートを確認できます。
sudo firewall-cmd --list-ports
次の出力が表示されます。
2020/tcp
サーバーにWebサーバーをインストールして実行している場合、インターネット経由でアクセスするには、ファイアウォールを介したHTTPおよびHTTPSサービスを許可する必要がある場合があります。
sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https
POP3、IMAP、およびSMTPサービスに外部アクセスを許可するには、次のコマンドを実行します。
sudo firewall-cmd --permanent --add-service=pop3s sudo firewall-cmd --permanent --add-service=imaps sudo firewall-cmd --permanent --add-service=smtp
ステップ7–時刻同期のためにNTPをインストールする
また、NTPサーバーをインストールして、ネットワークを介してコンピューターの時刻と日付を同期し、コンピューターを正確で最新の状態に保つことをお勧めします。
まず、次のコマンドを使用してNTPサーバーをインストールします。
sudo dnf install chrony -y
NTPサービスをインストールしたら、それを開始し、システムの再起動時に開始できるようにします。
sudo systemctl start chronyd sudo systemctl enable chronyd
これで、NTPサーバーがインストールされ、NTPサーバーからサーバーの時刻が常に更新されます。
ステップ8–IPv6を無効にする
IPv6を使用していない場合は、セキュリティ上の理由からIPv6を無効にすることをお勧めします。
まず、次のコマンドを使用して、RockyLinux8インストールでIPv6が有効になっているかどうかを確認します。
ip a | grep inet6
IPv6が有効になっている場合は、次の行が表示されます。
inet6 ::1/128 scope host inet6 fe80::200:d8ff:fe62:817/64 scope link inet6 fe80::200:aff:fe62:817/64 scope link
IPv6を無効にするには、新しい構成ファイルを作成する必要があります。
sudo nano /etc/sysctl.d/70-ipv6.conf
次の行を追加します:
net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1
ファイルを保存して閉じてから、次のコマンドを使用して構成ファイルを再ロードします。
sudo sysctl --load /etc/sysctl.d/70-ipv6.conf
次の出力が表示されます。
net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1
IPv6が無効になっていることを確認するには、次のコマンドを実行します。
ip a | grep inet6
コマンドが何も返さない場合は、すべてのネットワークインターフェイスでIPv6が無効になっていることを確認しています。
ステップ9–スワップスペースを作成する
スワップは、物理RAMメモリの量がいっぱいになったときに使用されるディスク上のスペースです。サーバーのRAMが不足すると、非アクティブなページはすべてRAMからスワップスペースに移動されます。
Atlantic.Netで新しいインスタンスを起動しても、スワップパーティションは作成されません。新しいインスタンスを起動した後、手動でスワップスペースを作成する必要があります。
通常、スワップスペースは既存のRAMの半分にする必要があります。実際のRAMが1GBの場合は、512MBのファイルを作成する必要があります。
まず、次のコマンドを使用して(512MBの)スワップスペースを作成します。
sudo dd if=/dev/zero of=/swapfile bs=1024 count=524288
出力:
524288+0 records in 524288+0 records out 536870912 bytes (537 MB, 512 MiB) copied, 10.3523 s, 51.9 MB/s
ブロックサイズは、1024 x 512MB=524288の式を使用して計算できます。
スワップスペースを作成したら、次のコマンドでフォーマットします。
sudo mkswap /swapfile
出力:
mkswap: /swapfile: insecure permissions 0644, 0600 suggested. Setting up swapspace version 1, size = 512 MiB (536866816 bytes) no label, UUID=8981408a-549d-47aa-a99a-72870b65212d
次に、次のコマンドを使用して/swapfileに適切な権限を設定します。
sudo chown root:root /swapfile sudo chmod 0600 /swapfile
次に、次のコマンドを使用してスワップスペースをアクティブにします。
sudo swapon /swapfile
次に、次のコマンドを使用してスワップスペースを確認します。
swapon -s
出力:
Filename Type Size Used Priority /swapfile file 524284 0 -2
次に、再起動後もアクティブにするために、スワップファイルエントリを/ etc/fstabに追加する必要があります。
nano /etc/fstab
次の行を追加します:
/swapfile swap swap defaults 0 0
ファイルを保存して閉じ、次のコマンドを使用してスワップスペースを確認します。
free -m
次の出力が表示されます。
total used free shared buff/cache available Mem: 1817 263 100 68 1452 1329 Swap: 511 0 511
結論
上記のガイドでは、RockyLinux8サーバーを保護するためのいくつかの基本的な手順について説明しました。これで、セキュリティで保護された環境で任意のアプリケーションをホストできるようになりました。Atlantic.NetのVPSホスティングアカウントで試してみてください。