はじめに
このハウツーは、Debian 8.2での初期設定に役立ち、サーバーが保護されていることを知って安心しながらサーバーを正常に保護できます。
どのサーバーでも、主な目標は常にセキュリティです。多くのユーザーは、最初から確立されたセキュリティ境界がないため、サーバーへの悪意のある侵入の犠牲になっています。セキュリティを備えた基盤を築くことから、正しい道を歩み始めましょう。
何が必要ですか?
静的IPアドレスで設定されたDebian8.2サーバーが必要です。サーバーをまだお持ちでない場合は、仮想プライベートサーバーのページにアクセスして、30秒以内に新しいサーバーを起動できます。
サーバーの準備
開始するには、SSHまたはcloud.atlantic.netのVNCコンソールを介してDebian8.2にログインします。 Atlantic.Net Cloudサーバーは、不要なパッケージがインストールされて使用されないようにするために、最小限のインストールとしてセットアップされています。このため、サーバーが完全に最新であり、sudoサービスがインストールされていることを確認しましょう。
apt-get update
apt-get install sudo
サーバーを最新の状態にすると、プロセスを続行してサーバーを保護できます。
Debian8.2でルートパスワードを更新
ルートパスワードを更新する あなたがそれを知っている唯一の人になるので。小文字、大文字、数字を含めて8文字以上にすることをお勧めします。
passwd
Debian8.2でsudo権限を持つ新しいユーザーを作成します
新しいユーザーの作成 sudo権限を使用すると、誤って不要な変更を加えることを心配することなく、サーバーを簡単に管理できます。 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
Debian 8.2では、ユーザーをsudoグループに追加するだけで、コマンドを実行する前にsudoと入力して、そのユーザーにsudo権限を付与します。ユーザーareをsudoグループに追加しましょう。
adduser user1 sudo
完了したら、su – user1コマンドを使用して、ユーザーをrootからuser1に変更できます。ユーザーでコマンドを実行する前に、sudoを使用する必要があることを覚えておくことが重要です。
Debian8.2でSSHアクセスを設定する
Linuxシステムでは、ポート22がSSH経由のリモート接続のデフォルトポートです。 sshポートを変更することで、ブルートフォース攻撃や不要なユーザーがサーバーに到達するのを防ぐためにサーバーのセキュリティを強化できます(このチュートリアルではポート5022を使用します)。 SSH構成ファイルを開き、ポート行を見つけて、ポート22をカスタムポートに変更します。保存して終了します。
sudo nano /etc/ssh/sshd_config
#リッスンするポート、IP、プロトコル
Port 22 to 5022
コード>
システムがSSH構成ファイルから新しい設定を更新するには、sshdサービスを再起動する必要があります。
sudo systemctl restart sshd.service
SSHはポート5022を使用するように構成されており、ポート22を使用してログインしようとすると、ログインは失敗します。
Debian8.2でルートアクセスを制限する
root権限を持つ新しいユーザーを作成したため、サーバー上で実際のrootユーザーをSSH経由で利用可能で脆弱な状態に保つ必要はありません。ルートユーザーのアクセスをローカルサーバーでのみ利用できるように制限し、SSH経由で新しいユーザーにアクセス許可を付与しましょう。
SSH構成ファイルを開き、PermitRootLogin行を見つけて、yesからnoに変更します。
sudo nano /etc/ssh/sshd_config
PermitRootLogin no
システムでSSH構成ファイルの新しい設定を更新するには、sshdサービスを再起動する必要があります。
sudo systemctl restart sshd.service
Debian8.2でプライベートSSHキーを作成する
プライベート/パブリックSSHキー サーバーにアクセスする方法のセキュリティを強化する優れた追加機能です。ただし、セットアップにはもう少し手間がかかります。問題は、サーバーにセキュリティを強化する価値があるかどうかです。このセキュリティ機能と追加の対策を実装したい場合は、次の手順を続行することもできます。続行してSSHキーを生成しましょう。
ssh-keygen
SSHキーが保存される場所を変更する場合は、ここで指定できます。そうでない場合は、デフォルトの場所で問題ありません。次の質問が表示されたらEnterキーを押してから、パスフレーズを入力します(不要な場合を除く)。
Enter file in which to save the key (/home/user1/.ssh/id_rsa):
画面に次の情報が表示されます。
SSHキーの設定は非常に重要です。完全なキー文字列をWord/メモ帳ドキュメントにコピーする必要があります。 catコマンドを使用すると、次の場所でキーを表示できます。
cat ~/.ssh/id_rsa.pub
ssh-rsaで始まり[email protected]で終わるSSHキーをWord/メモ帳ドキュメントにコピーして、構成ファイルに追加できるようにします。 SSHキーが安全に保存されたら、サーバーでさらに変更を加える必要があります。ここで、user1のsudo権限がステップインします。
su - user1
SSHキーのディレクトリには、所有者のみがファイルの読み取り、書き込み、および実行を行うことができる制限付きのアクセス許可が必要です。
sudo chmod 700 .ssh
SSHディレクトリ内に、次の場所のエディタ(この場合はVI)を使用して、SSHキーを含むファイルを追加する必要があります。
nano .ssh/authorized_keys
SSHキーを貼り付けて保存し、nano形式を使用して終了します。
最後に、作成したばかりのauthorized_keysファイルの権限を制限して、所有者だけが読み取りと書き込みを行えるようにする必要があります。
chmod 600 .ssh/authorized_keys
これで、セッションを閉じ、SSHコンソール[email protected]またはサーバーのホスト名に次のように入力することで、キーが機能していることを確認できます。これは、次のコマンドで実行できます。
ifconfig eth0 | grep inet | awk '{ print $2 }'
さらに、「ここをクリック」して、SSHキーを生成および使用する方法の記事を参照できます。
Debian8.2の基本的なファイアウォールルール
sudo apt-get install firewalld
サーバーにパブリックにアクセスするには、以前に作成したカスタムSSHポートを許可する必要があります。また、導入するサーバーの種類に応じて使用できるルールは他にもいくつかあります。
sudo firewall-cmd --permanent --add-port=5022/tcp
Webサーバーを使用している場合は、インターネット経由でサイトにアクセスできるように、次のルールを許可することをお勧めします。
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
メールサーバーを使用している場合、着信POP3設定にサーバーを使用する場合は、次のルールを許可することをお勧めします。ポート110は標準ポートであり、ポート995はSSLを使用したより安全な接続用です。
sudo firewall-cmd --permanent --add-service=pop3s
さらに、送信SMTP設定にサーバーを使用する場合は、次のルールを許可することをお勧めします。
sudo firewall-cmd --permanent --add-service=smtp
最後に、IMAP設定でサーバーを使用する場合は、次のルールを許可することをお勧めします。
sudo firewall-cmd --permanent --add-service=imaps
作業を保存して終了します。
Firewalldがこれらの設定を受け入れるには、ファイアウォールを再起動する必要があります。
sudo firewall-cmd --reload
設定が保存され、次の手順を実行して利用可能なすべてのサービス/ポートを確認する準備が整います。
sudo firewall-cmd --permanent --list-all
Debian8.2でのNTPTimeSync
NTP(Network Time Protocol)は基本的に、正確で最新の状態を維持するために、ネットワークを介してコンピューターの時刻と日付を同期するために使用されます。まず、NTPサービスをインストールし(まだインストールされていない場合)、サーバーと同期するようにサービスを構成します。
sudo apt-get install ntp
NTPサービスをインストールしたら、サービスがオンになっていることを確認する必要があります。
sudo /etc/init.d/ntp start
サービスをオンにすると、サーバーの時刻情報がNTPのサーバーと自動的に同期されます。
Debian8.2にスワップファイルを追加
スワップファイルは、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
次は?
これで、サーバーが保護されていることを知って安心できる強力なセキュリティ基盤を備えたサーバーができました。サーバーの目的に応じて、追加のソフトウェアのインストールを開始できます。