新しいUbuntu 14.04サーバーのための追加推奨手順
紹介
新しいサーバーの最低限の設定を行った後、ほとんどの場合において推奨される追加のステップがあります。このガイドでは、推奨されているが任意の手順を扱うことでサーバーの設定を続けていきます。
前提条件と目標
このガイドを開始する前に、Ubuntu 14.04 の初期サーバーセットアップガイドを確認する必要があります。これは、ユーザーアカウントを設定し、sudoを使用して特権昇格を構成し、セキュリティのためにSSHをロックダウンするために必要です。
上記のガイドを完了したら、この記事を続けることができます。このガイドでは、いくつかのオプションですが推奨されるコンポーネントの設定に焦点を当てます。これには、ファイアウォール、ネットワークタイムプロトコルの同期、およびスワップファイルの設定が含まれます。
基本的なファイアウォールの設定
ファイアウォールは、サーバーの基本的なセキュリティレベルを提供します。これらのアプリケーションは、承認されたポート/サービスの例外を除いて、サーバーのすべてのポートへのトラフィックを拒否する責任があります。Ubuntuには、ファイアウォールポリシーを設定するために使用できるufwというツールが付属しています。私たちの基本的な戦略は、開放しておく十分な理由がないものはすべてロックダウンすることです。
ファイアウォールを有効化または再読み込みする前に、ポリシーの例外を定義するルールを作成します。まず、リモート管理のためにアクセスを維持できるように、SSH接続用の例外を作成する必要があります。
SSHデーモンはデフォルトでポート22で動作し、ufwはデフォルトが変更されていない場合、名前によってルールを実装できます。したがって、SSHポートを変更していない場合は、次のように入力することで例外を有効にできます:
sudo ufw allow ssh
SSHデーモンがリッスンしているポートを変更した場合は、実際のポート番号とTCPプロトコルを指定して許可する必要があります:
sudo ufw allow 4444/tcp
これは最小限のファイアウォール設定です。これはあなたのSSHポートでのトラフィックのみを許可し、他のすべてのサービスはアクセスできなくなります。追加のサービスを実行する予定がある場合は、必要な各ポートでファイアウォールを開く必要があります。
従来のHTTPウェブサーバーを運用する予定がある場合、ポート80へのアクセスを許可する必要があります。
sudo ufw allow 80/tcp
SSL/TLS が有効なウェブサーバーを運営する予定がある場合は、そのポートへのトラフィックも許可する必要があります。
sudo ufw allow 443/tcp
SMTPメールを有効にする必要がある場合は、ポート25を開放する必要があります。
sudo ufw allow 25/tcp
例外の追加が完了したら、以下のように入力して選択を確認できます。
sudo ufw show added
すべてが問題なければ、次のコマンドを入力してファイアウォールを有効にできます:
sudo ufw enable
選択内容を確認するよう求められますので、続行したい場合は「y」と入力してください。これにより、あなたが行った例外が適用され、他のすべてのトラフィックがブロックされ、ファイアウォールが起動時に自動的に開始するように設定されます。
後で設定する可能性のある追加サービスのためにポートを明示的に開放する必要があることを忘れないでください。より詳しい情報については、ufwファイアウォールの設定に関する当社の記事をご覧ください。
タイムゾーンとネットワーク時間プロトコルの同期を構成する
次のステップは、サーバーのローカリゼーション設定を行い、ネットワークタイムプロトコル(NTP)の同期を構成することです。
最初のステップは、サーバーが正しいタイムゾーンで動作していることを確認します。次のステップでは、システムの時計をグローバルNTPサーバーの標準時間に同期させるようにシステムを設定します。これにより、ズレた時計から生じる不整合な動作を防ぐのに役立ちます。
タイムゾーンを設定する
最初のステップは、サーバーのタイムゾーンを設定することです。これは、tzdataパッケージを再構成することで達成できる非常に簡単な手続きです。
sudo dpkg-reconfigure tzdata
サーバーの地理的地域を選択できるメニューシステムが表示されます。
エリアを選択した後、サーバーに適した特定のタイムゾーンを選択する能力があります:
あなたのシステムは選択されたタイムゾーンを使用するように更新され、結果が画面に表示されます:
Current default time zone: 'America/New_York'
Local time is now: Mon Nov 3 17:00:11 EST 2014.
Universal Time is now: Mon Nov 3 22:00:11 UTC 2014.
次に、NTPの設定に移ります。
NTP同期を設定する
タイムゾーンが設定されたので、NTPの設定を行う必要があります。これにより、コンピュータが他のサーバーと同期を保つことができ、正確な時刻を必要とする操作の予測可能性が向上します。
NTP同期のために、Ubuntuのデフォルトリポジトリからインストールできるntpというサービスを使用します。
sudo apt-get update
sudo apt-get install ntp
これが、UbuntuでNTP同期を設定するために行う必要があるすべてのことです。デーモンは各ブート時に自動的に起動し、システム時間を一日中グローバルNTPサーバーに合わせて継続的に調整します。
NTPサーバーについてもっと知りたい場合は、こちらをクリックしてください。
スワップファイルを作成する
Linuxサーバーに「スワップ」を追加すると、システムは実行中のプログラムのあまり頻繁にアクセスされない情報をRAMからディスク上の場所に移動することができます。ディスクに保存されたデータにアクセスするのはRAMにアクセスするよりもずっと遅いですが、スワップが利用可能であることは、アプリケーションが生き残るかクラッシュするかの違いになることがよくあります。これは、システム上にデータベースをホストする予定がある場合に特に便利です。
ノート
一般的に、従来のスピニングハードドライブを使用するシステムにはスワップが勧められていますが、SSDを使用する場合、時間の経過とともにハードウェアの劣化に問題を引き起こす可能性があります。この考慮から、DigitalOceanやSSDストレージを利用している他のプロバイダーでスワップを有効にすることはお勧めしません。そうすることで、あなたや隣人のための基盤となるハードウェアの信頼性に影響を及ぼす可能性があります。
サーバーのパフォーマンスを向上させる必要がある場合は、Dropletのアップグレードをお勧めします。これにより、全体的により良い結果が得られ、サービスに影響を与えるハードウェアの問題に寄与する可能性が低くなります。
スワップスペースの最適なサイズに関するアドバイスは、参照する情報源によって大きく異なります。一般的には、システムの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のコントロールパネルで、サーバーの「スナップショット」タブにアクセスすることでスナップショットを取ることができます:
スナップショットを取得した後、その画像を作成プロセス中に「マイスナップショット」タブから選択することで、将来のインストールの基盤として使用できるようになります。
追加のリソースと次のステップ
ここから先は、あなたのサーバーで何をしたいかによって道が決まります。下のガイドのリストは決して網羅的ではありませんが、ユーザーが次に向かう一般的な構成のいくつかを示しています。
- LAMP(Linux、Apache、MySQL/MariaDB、PHP)スタックのセットアップ
- LEMPスタック(Linux、Nginx、MySQL/MariaDB、PHP)の設定
- ApacheウェブサーバーにWordPress CMSをインストールする
- NginxウェブサーバーにWordPress CMSをインストールする
- ApacheウェブサーバーにDrupal CMSをインストールする
- Node.jsのインストール
- Ruby on RailsとRVMのインストール
- Laravelをインストールする、PHPフレームワーク
- インフラストラクチャを管理するためにPuppetをインストールする
結論
この時点で、新しいサーバーのためのしっかりとした基盤を構成する方法を把握しているはずです。次のステップについても良いアイデアがあることを願っています。サーバーに実装できるさらなるアイデアを探るために、サイトを自由に探索してください。




