はじめに
どのサーバーでも、主な目標は常にセキュリティです。多くのユーザーは、最初から確立されたセキュリティ境界がないため、サーバーへの悪意のある侵入の犠牲になっています。セキュリティを備えた基盤を築くことから、正しい道を歩み始めましょう。このハウツーは、Ubuntu 15.04での初期設定に役立ち、サーバーが保護されていることを確認しながら、サーバーを正常に保護できます。
何が必要ですか?
静的IPアドレスで構成されたUbuntu15.04サーバーが必要です。サーバーをまだお持ちでない場合は、業界をリードするVPSホスティングページにアクセスして、30秒以内に新しいサーバーを起動できます。
サーバーの準備
開始するには、SSHまたはここにあるVNCコンソールを介してUbuntu15.04サーバーにログインします。 Atlantic.Net Cloudサーバーは、不要なパッケージがインストールされて使用されないようにするために、最小限のインストールとしてセットアップされています。使い慣れたソフトウェアパッケージがデフォルトでインストールされていない場合は、必要に応じて自由にインストールしてください。
サーバーが完全に最新であることを確認しましょう。
Ubuntu15.04のルートパスワードを更新する
次のコマンドを入力してリクエストをアクティブにし、画面の指示に従ってrootパスワードを更新/確認します。
passwd
sudo権限を持つ新しいユーザーを作成します
パスワードが正常に更新されたら、sudo/root権限を持つ新しいユーザーを作成することをお勧めします。 Ubuntu 15.04などの多くのLinuxオペレーティングシステムの標準管理者ユーザーは「ルート」であるため、日常の管理タスクに使用される新しい管理者ユーザーを作成します。 root権限を持つ新しいユーザーを作成すると、サーバーへのアクセス方法のセキュリティが向上します。システムをターゲットにしようとしている個人は、デフォルトの管理者アカウントであることがわかっているため、rootユーザーをターゲットにします。 sudo / root権限を持つ新しいユーザーを作成し、rootユーザーを無効にすることで、まだ公開されていないユーザーを使用してセキュリティを強化しています。
次のコマンドを入力して、「user1」を自分のユーザー名に置き換えて新しいユーザーを作成し、確認します。
adduser user1
ユーザーに適用される情報を入力し、情報を確認します:
[email protected]:~# adduser user1 Adding user `user1' ... Adding new group `user1' (1000) ... Adding new user `user1' (1000) with group `user1' ... Creating home directory `/home/user1' ... Copying files from `/etc/skel' ... Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully Changing the user information for user1 Enter the new value, or press ENTER for the default Full Name []: user1 Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [Y/n] y
次のコマンドを入力してリクエストをアクティブにし、画面の指示に従って「user1」パスワードを更新/確認して、そのユーザーのパスワードを作成します。
passwd user1
新しいユーザーを作成し、そのユーザーのパスワードを作成したら、そのユーザーをsudowheelグループに追加します。 Ubuntu 15.04では、それらをsudo Wheelグループに追加すると、自動的にsudo/root権限が割り当てられます。次のコマンドを実行して、ユーザーをsudowheelグループに追加します。
adduser user1 sudo
最後に、sudo / root権限を持つユーザーを作成したら、セッションを終了し、「user1」で再度ログインして、加えられた変更を確認できます。または、次のコマンドを実行して、ユーザーをrootから「user1」に切り替えると、そのユーザーのパスワードの入力を求められます。ユーザーでコマンドを実行する前に、sudoを使用する必要があることを覚えておくことが重要です。
su - user1
SSHアクセスの構成
ポート22は、LinuxシステムのSSHを介したリモート接続のデフォルトポートです。 sshポートを変更することで、ブルートフォース攻撃や不要なユーザーがデフォルトのポートを使用してサーバーに到達するのを防ぐために、サーバーのセキュリティを強化できます。このチュートリアルでは、例としてポート5022を使用します。
SSH構成ファイルを開き、ポート行を見つけ、#を削除して、22番号をカスタムポートに変更します。保存して終了します。
sudo nano /etc/ssh/sshd_config
# What ports, IPs and protocols we listen for Port 5022
システムがSSH構成ファイルから新しい設定を更新するには、sshdサービスを再起動する必要があります。
sudo systemctl restart sshd.service
これで、SSHはポート5022を使用するように構成されました。ポート22を使用してログインしようとすると、ログインは失敗します。ただし、最初にファイアウォール構成部分でカスタムポートを構成する必要があるため、セッションを終了しないでください。これは、次の手順で構成します。
ルートアクセスを制限する
root権限を持つ新しいユーザーを作成し、カスタムsshポートを作成したため、サーバー上で実際のrootユーザーをSSH経由で利用可能で脆弱な状態に保つ必要はありません。 rootユーザーのローカルサーバーへのアクセスを制限し、SSH経由でのみ新しいユーザーに権限を付与しましょう。
SSH構成ファイルを開き、PermitRootLogin行を見つけて、#を削除し、yesからnoに変更します。
sudo nano /etc/ssh/sshd_config
#PermitRootLogin yes PermitRootLogin no
システムでSSH構成ファイルの新しい設定を更新するには、sshdサービスを再起動する必要があります。
sudo systemctl restart sshd.service
注:これで、これらの変更を行う際にrootユーザーが無効になるため、作成した「user1」を使用してサーバーにログインする必要があります。ただし、セッションを終了しないでください。次の手順で、ファイアウォールのカスタムポートを構成する必要があります。
プライベートSSHキーを作成する
プライベート/パブリックSSHキー サーバーのメソッドのセキュリティを強化する優れた追加機能です。ただし、設定にはもう少し手間がかかります。問題は、サーバーにセキュリティを強化する価値があるかどうかです。次のセキュリティ機能を実装する場合は、次の手順に進むことができます。先に進み、SSHキーを生成しましょう。
ssh-keygen
SSHキーを保存する場所を変更する場合は、ここで指定できます。ただし、保存されるデフォルトの場所は問題ありません。次の質問が表示されたらEnterキーを押してから、不要な場合を除いてパスフレーズを入力します。
Enter file in which to save the key (/home/user1/.ssh/id_rsa):
これは、Ubuntu15.04サーバーにSSHキーをインストールするときのデフォルトページです
SSHキーの設定は非常に重要です。キー文字列全体をWord/メモ帳ドキュメントにコピーする必要があります。キーは、catコマンドを使用して次の場所で表示できます。
cat ~/.ssh/id_rsa.pub
ssh-rsaで始まり[email protected]で終わるSSHキーをWord/メモ帳ドキュメントにコピーして、後で構成ファイルに追加します。
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDNcnc3pMOytM7xgwZHUX0Wi/O78hDvLUmQVtKn8Qk1ijBY82jVftKXKRhf8toNkgm9jaZmfapLa7ynzUG4jbFjyy8H+iEs1R8P7eu+e8/fmGwjorbMFuWdoi7h2CldoqKTdMEb/dMNxjNMzBbovl3XtZviQGm4/TMVO1hHxy85JR8zAtNFu7liaP7IonexNrOGhY8CjqRcBsceQLkl1MlX7cWaWAMqd6jQnAvggTLerI9P286AP8Sk4uColj7GKOljj8X6J/2pcjp9v2IvJOqwC/zLwUKZ6qTEV6SrfdbjopoCVvpXkVhmcbHX5Xv1gwynO+vTkpPFwVTjSnAai71L [email protected]
SSHキーが安全に保存されると、SSHキーのディレクトリには、所有者のみがファイルの読み取り、書き込み、および実行を行うことができる制限付きのアクセス許可が必要になります。
sudo chmod 700 .ssh
SSHディレクトリ内に、次の場所でエディタ(この場合はNANO)を使用して、SSHキーを含むファイルを追加する必要があります。
nano .ssh/authorized_keys
SSHキーを貼り付けてから、nano形式を使用して保存して終了します。
最後に、作成したばかりのauthorized_keysファイルのアクセス許可を制限して、所有者だけが読み取りと書き込みを行えるようにする必要があります。
chmod 600 .ssh/authorized_keys
これで、セッションを閉じて、SSHコンソールに[email protected]またはサーバーのホスト名を入力することで、キーが機能していることを確認できました。さらに、「ここをクリック」をクリックして、SSHキーを生成および使用する方法の記事で詳細を確認できます。
基本的なファイアウォールルール
sudo apt-get install firewalld
次に、以前に作成したカスタムSSHポート5022がサーバーにパブリックにアクセスできるようにするルールを追加します。同時に、TCP/22でのSSHアクセスを許可する以前のデフォルトルールを削除します。
sudo firewall-cmd --permanent --add-port=5022/tcp
sudo firewall-cmd --permanent --remove-service=ssh
Webサーバーを使用している場合は、次のルールがインターネット経由でサイトにアクセスすることを許可することをお勧めします。
sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https
これは、一般にアクセス可能にしたいシステムに関連する同様のルールに使用できます。このテストサーバーは、ウェブサイトとメールサービスをホストするように設定されているため、更新されたSSHとHTTP(S)のルールに加えて、安全なPOP3、IMAP、SMTPのルールが追加されています。
sudo firewall-cmd --permanent --add-service=pop3s sudo firewall-cmd --permanent --add-service=imaps sudo firewall-cmd --permanent --add-service=smtp
Firewalldがこれらの設定を受け入れるには、ファイアウォールを再起動する必要があります。
sudo firewall-cmd --reload
設定が保存され、続行する準備が整います。利用可能なすべてのサービス/ポートを確認するには、次のコマンドを実行します。
sudo firewall-cmd --permanent --list-all
これは、Ubuntu15.04サーバーでFirewalldルールを構成した後のデフォルトページです
NTP Time Sync
NTP(Network Time Protocol)は、ネットワークを介してコンピューターの時刻と日付を同期し、正確で最新の状態に保つために使用されます。まず、NTPをインストールし(インストールされていない場合)、サーバーと同期するようにサービスを構成します。
sudo apt-get install ntp
NTPサービスをインストールしたら、サービスがオンになっていることを確認する必要があります。
sudo /etc/init.d/ntp start
スワップファイルの追加
スワップファイルは、RAMをシミュレートするためにサーバーのハードドライブ上に作成された小さなスペースです。サーバーのメモリが不足している場合、サーバーはハードドライブを調べて、システムをだましてメモリが多いと思わせる負荷を軽減します。サーバーのパフォーマンスをもう少し向上させるために、ハードドライブにスワップファイルを設定します。
まず、リソースをチェックして、ファイルを追加できることを確認します。次のコマンドを実行すると、現在使用されているハードドライブのスペースの割合が表示されます。
df -h
スワップファイルを作成するときは、通常、既存のRAMの半分を最大4GBまで追加する必要があります(実際のRAMが1GBの場合は、512MBのファイルを追加します)。このパートでは、512MBのスワップファイルをドライブに追加します。これを計算する方法は、1024 x 512MB=524288ブロックサイズです。
sudo dd if=/dev/zero of=/swapfile bs=1024 count=524288
スワップファイルを追加したので、続行するにはエリアを作成する必要があります。
sudo mkswap /swapfile
スワップファイルが作成され、スワップファイル、領域が追加されたら、先に進んでファイルにアクセス許可を追加し、所有者のみが読み取りと書き込みを行えるようにすることができます。
sudo chown root:root /swapfile sudo chmod 600 /swapfile
スワップファイルに適切な権限が設定されたので、先に進んでアクティブ化できます。
sudo swapon /swapfile
新しく追加したスワップファイルは、次の方法で確認できます。
sudo swapon -s
再起動後もスワップファイルを常にアクティブにするには、それに応じて構成する必要があります。
sudo nano /etc/fstab
次のコマンドをファイルの最後に貼り付け、作業内容を保存して終了します。
/swapfile swap swap defaults 0 0
最後に、次のコマンドを入力して、スワップファイルがアクティブ化されているかどうかを確認します。
free -m
これは、Ubuntu15.04サーバーでスワップファイルを作成した後のデフォルトページです
次は?
これで、強力なセキュリティ基盤を備えたサーバーができ、サーバーが保護されていることを安心して確認できます。これで、必要に応じてプラットフォームの構築に進むことができます。フォローしていただきありがとうございます。今後の更新については、お気軽にご確認ください。
Atlantic.Netは、あらゆる規模の企業向けにVPSホスティングソリューションの完全なラインナップを提供するとともに、お客様に最高の技術サポートを提供することに専念しています。