前書き
新しいサーバーの最低限の構成をセットアップした後、ほとんどの場合に強く推奨される追加の手順がいくつかあります。 このガイドでは、推奨されているがオプションの手順に取り組むことにより、サーバーの構成を継続します。
前提条件と目標
このガイドを開始する前に、CentOS 7 initial server setupガイドを実行する必要があります。 これは、ユーザーアカウントを設定し、sudo
を使用して特権の昇格を構成し、セキュリティのためにSSHをロックダウンするために必要です。
上記のガイドを完了したら、この記事を続けることができます。 このガイドでは、オプションの推奨コンポーネントの構成に焦点を当てます。 これには、ファイアウォールとスワップファイルを使用してシステムをセットアップし、ネットワークタイムプロトコルの同期を構成する必要があります。
基本的なファイアウォールの構成
ファイアウォールは、サーバーに基本レベルのセキュリティを提供します。 これらのアプリケーションは、承認したポート/サービスを除き、サーバー上のすべてのポートへのトラフィックを拒否する責任があります。 CentOSには、firewalld
と呼ばれるファイアウォールが付属しています。 firewall-cmd
というツールを使用して、ファイアウォールポリシーを構成できます。 私たちの基本的な戦略は、オープンにする正当な理由がないすべてのものをロックすることです。 最初にfirewalld
をインストールします。
sudo yum install firewalld
firewalld
サービスには、現在の接続を切断せずに変更を加える機能があるため、例外を作成する前にオンにすることができます。
sudo systemctl start firewalld
サービスが稼働しているので、firewall-cmd
ユーティリティを使用して、ファイアウォールのポリシー情報を取得および設定できます。 firewalld
アプリケーションは、「ゾーン」の概念を使用して、ネットワーク上の他のホストの信頼性にラベルを付けます。 このラベル付けにより、ネットワークをどれだけ信頼できるかに応じて、異なるルールを割り当てることができます。
このガイドでは、デフォルトゾーンのポリシーのみを調整します。 ファイアウォールをリロードすると、これがインターフェイスに適用されるゾーンになります。 まず、承認済みサービスのファイアウォールに例外を追加する必要があります。 サーバーのリモート管理アクセスを保持する必要があるため、これらの中で最も重要なのはSSHです。
SSHデーモンが実行されているポートをnotで変更した場合は、次のように入力して、名前でサービスを有効にできます。
sudo firewall-cmd --permanent --add-service=ssh
サーバーのSSHポートがchangedの場合は、新しいポートを明示的に指定する必要があります。 また、サービスが利用するプロトコルを含める必要があります。 新しいポートを使用するためにSSHサーバーが既に再起動されている場合にのみ、次を入力します。
sudo firewall-cmd --permanent --remove-service=ssh
sudo firewall-cmd --permanent --add-port=4444/tcp
これは、サーバーへの管理アクセスを保持するために最低限必要なものです。 追加のサービスを実行する予定がある場合は、それらのファイアウォールも開く必要があります。
従来のHTTPWebサーバーの実行を計画している場合は、http
サービスを有効にする必要があります。
sudo firewall-cmd --permanent --add-service=http
SSL / TLSを有効にしてWebサーバーを実行する場合は、https
のトラフィックも許可する必要があります。
sudo firewall-cmd --permanent --add-service=https
SMTP電子メールを有効にする必要がある場合は、次のように入力できます。
sudo firewall-cmd --permanent --add-service=smtp
名前で有効にできる追加のサービスを表示するには、次を入力します。
sudo firewall-cmd --get-services
終了したら、次のように入力して、実装される例外のリストを確認できます。
sudo firewall-cmd --permanent --list-all
変更を実装する準備ができたら、ファイアウォールをリロードします。
sudo firewall-cmd --reload
テスト後、すべてが期待どおりに機能する場合は、ブート時にファイアウォールが開始されることを確認する必要があります。
sudo systemctl enable firewalld
後で設定する可能性のある追加サービスについては、ファイアウォールを(サービスまたはポートを使用して)明示的に開く必要があることに注意してください。
タイムゾーンとネットワークタイムプロトコルの同期を構成する
次のステップは、サーバーのローカライズ設定を調整し、Network Time Protocol(NTP)同期を構成することです。
最初のステップでは、サーバーが正しいタイムゾーンで動作していることを確認します。 2番目の手順では、システムクロックをNTPサーバーのグローバルネットワークによって維持される標準時間に同期するようにシステムを構成します。 これは、非同期クロックから生じる可能性のあるいくつかの矛盾した動作を防ぐのに役立ちます。
タイムゾーンを構成する
最初のステップは、サーバーのタイムゾーンを設定することです。 これは、timedatectl
コマンドを使用して実行できる非常に簡単な手順です。
まず、次のように入力して、使用可能なタイムゾーンを確認します。
sudo timedatectl list-timezones
これにより、サーバーで使用可能なタイムゾーンのリストが表示されます。 サーバーに適した地域/タイムゾーン設定が見つかったら、次のように入力して設定します。
sudo timedatectl set-timezone region/timezone
たとえば、米国東部時間に設定するには、次のように入力できます。
sudo timedatectl set-timezone America/New_York
選択したタイムゾーンを使用するようにシステムが更新されます。 これを確認するには、次を入力します。
sudo timedatectl
NTP同期を構成する
タイムゾーンを設定したら、NTPを構成する必要があります。 これにより、コンピューターが他のサーバーと同期し続けることができ、正しい時間を使用する操作の予測性が向上します。
NTP同期には、CentOSのデフォルトリポジトリからインストールできるntp
というサービスを使用します。
sudo yum install ntp
次に、このセッションのサービスを開始する必要があります。 また、サーバーが起動するたびに自動的に開始されるように、サービスを有効にします。
sudo systemctl start ntpd
sudo systemctl enable ntpd
サーバーは、システムクロックを自動的に修正して、グローバルサーバーに合わせます。
スワップファイルを作成する
Linuxサーバーに「スワップ」を追加すると、実行中のプログラムのアクセス頻度の低い情報をRAMからディスク上の場所に移動できます。 ディスクに保存されたデータへのアクセスは、RAMへのアクセスよりもはるかに遅くなりますが、多くの場合、スワップを使用可能にすることは、アプリケーションの存続とクラッシュの違いになります。 これは、システムでデータベースをホストする予定がある場合に特に便利です。
スワップ領域の最適なサイズに関するアドバイスは、参照するソースによって大きく異なります。 一般に、システムのRAMの量と同じか2倍の量が、適切な出発点です。
fallocate
ユーティリティを使用して、スワップファイルに使用するスペースを割り当てます。 たとえば、4ギガバイトのファイルが必要な場合は、次のように入力して、/swapfile
にあるスワップファイルを作成できます。
sudo fallocate -l 4G /swapfile
ファイルを作成した後、ファイルへのアクセスを制限して、他のユーザーまたはプロセスがそこに書かれているものを見ることができないようにする必要があります。
sudo chmod 600 /swapfile
これで、適切な権限を持つファイルが作成されました。 スワップ用にファイルをフォーマットするようにシステムに指示するには、次のように入力します。
sudo mkswap /swapfile
次に、次のように入力して、スワップファイルを使用できることをシステムに伝えます。
sudo swapon /swapfile
システムはこのセッションでスワップファイルを使用していますが、システムファイルを変更して、サーバーがブート時に自動的にこれを行うようにする必要があります。 これを行うには、次のように入力します。
sudo sh -c 'echo "/swapfile none swap sw 0 0" >> /etc/fstab'
この追加により、システムはブート時にスワップファイルを自動的に使用する必要があります。
ここからどこへ行く?
これで、Linuxサーバーの非常に適切な開始セットアップができました。 ここから、行くことができる場所がかなりあります。 最初に、現在の構成でサーバーのスナップショットを作成できます。
現在の構成のスナップショットを撮る
構成に満足しており、将来のインストールのベースとして使用したい場合は、DigitalOceanコントロールパネルからサーバーのスナップショットを取得できます。 2016年10月から、スナップショットのコストは、ファイルシステム内で使用されているスペースの量に基づいて1ギガバイトあたり0.05ドルです。
これを行うには、コマンドラインからサーバーをシャットダウンします。 実行中のシステムのスナップショットを作成することは可能ですが、電源を切ると、ディスク上のファイルがすべて一貫した状態になります。
sudo poweroff
これで、DigitalOceanコントロールパネルで、サーバーの[スナップショット]タブにアクセスしてスナップショットを作成できます。
スナップショットを作成した後、作成プロセス中にイメージの[マイスナップショット]タブからスナップショットを選択することにより、そのイメージを将来のインストールのベースとして使用できます。
追加のリソースと次のステップ
ここから、パスはサーバーで何をしたいかに完全に依存します。 以下のガイドのリストは完全なものではありませんが、ユーザーが次に検討するより一般的な構成の一部を表しています。
結論
この時点までに、新しいサーバーの強固な基盤を構成する方法を知っている必要があります。 うまくいけば、あなたもあなたの次のステップのための良いアイデアを持っている。 サーバーに実装できるアイデアについては、サイトを自由に探索してください。