序章

新しいFedora21またはRHELサーバーに最初にログインしたとき、それは実動システムとして使用する準備ができていません。 ファイアウォールを有効にするなど、カスタマイズして保護するために実行する必要のある推奨手順がいくつかあります。

このチュートリアルでは、Fedora 21サーバーの新規インストールにより、より優れたセキュリティプロファイルを提供し、使用できるようにする方法を示します。

前提条件

このチュートリアルに従うには、次のものが必要です。

  • ルートSSHキーを備えたFedora21ドロップレット。

SSHキーチュートリアルのこのセクションに従って、キーがない場合はキーを作成できます。同じチュートリアルのこのセクションに従って、SSHキーをサーバーのルートに自動的に埋め込むことができます。ドロップレットを作成するときにアカウントを作成します。

ステップ1—標準ユーザーアカウントを作成する

まず、rootとしてサーバーにログインします。

ssh root@your_server_ip

rootとして操作することはセキュリティリスクであるため、このステップでは、システムおよびその他のコンピューティングタスクに使用するsudo非rootユーザーアカウントを設定します。 このチュートリアルで使用されるユーザー名はsammyですが、任意の名前を使用できます。

ユーザーを追加するには、次のように入力します。

adduser sammy

以下のコマンドを使用して、ユーザーの強力なパスワードを指定します。 パスワードを2回入力するように求められます。

passwd sammy

次に、ユーザーをwheelグループに追加します。これにより、sudo権限が付与されます。

gpasswd -a sammy wheel

サーバーからログアウトし、ローカルマシンで次のコマンドを実行して、SSHキーを新しいユーザーアカウントに追加します。

ssh-copy-id sammy@your_server_ip

SSHキーをローカルマシンからサーバーにコピーする方法の詳細については、SSHチュートリアルのこのセクションを参照してください。

最後に、新しいsudonon-rootユーザーとして再度ログインします。 このアカウントにはSSHキーが含まれているため、パスワードの入力を求められることはありません。

ssh sammy@your_server_ip

ステップ2—ルートログインとパスワード認証を禁止する

このステップでは、ルートログインとパスワード認証を無効にすることでSSHログインをより安全にします。

構成ファイルを編集するには、テキストエディタをインストールする必要があります。 使用します nano しかし、あなたはあなたの好きなものを使うことができます。

まず、以下を使用して利用可能な更新を適用します。

sudo yum update

次に、インストールします nano、 タイプ:

sudo yum install -y nano

次に、SSHデーモンの構成ファイルを開いて編集します。

sudo nano /etc/ssh/sshd_config

そのファイル内で、 PermitRootLogin 指令。 コメントを外します(つまり、最初の部分を削除します # 文字)、noに設定します。

PermitRootLogin no

同様に、 PasswordAuthentication ディレクティブを設定し、noにも設定します。

PasswordAuthentication no

ファイルを保存して終了し、構成を再ロードして変更を適用します。

sudo systemctl reload sshd

誰かが今rootとしてログインしようとすると、応答は次のようになります。 Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

ステップ3—タイムゾーンの設定

このステップでは、システムクロックをローカルタイムゾーンに変更する方法を説明します。 デフォルトのクロックはUTCに設定されています。

既知のタイムゾーンはすべて、 /usr/share/zoneinfo/ ディレクトリ。 のファイルとディレクトリを見てください /usr/share/zoneinfo/.

ls /usr/share/zoneinfo/

ローカルタイムゾーンを使用するように時計を設定するには、そのディレクトリで国または地理的領域を見つけ、その下のゾーンファイルを見つけて、そこからシンボリックソフトリンクを作成します。 /etc/localtime ディレクトリ。 たとえば、タイムゾーンがCentralまたはCSTである米国中部にいる場合、ゾーンファイルは次のようになります。 /usr/share/zoneinfo/US/Central.

ゾーンファイルからへのシンボリックソフトリンクを作成します /etc/localtime.

sudo ln -sf /usr/share/zoneinfo/your_zone_file /etc/localtime

の出力を表示して、時計が現地時間に設定されていることを確認します。 date 指図。

date

出力は次のようになります。

Wed Mar 25 14:41:20 CST 2015

その出力のCSTは、中部標準時であることを確認します。

ステップ4—ファイアウォールを有効にする

新しいFedora21サーバーには、アクティブなファイアウォールアプリケーションがありません。 このステップでは、IPTablesファイアウォールアプリケーションを有効にする方法と、再起動後もランタイムルールが持続することを確認する方法を学習します。

IPTablesパッケージはすでにインストールされていますが、有効にするには、IPTablesパッケージをインストールする必要があります。 iptables-services パッケージ。

sudo yum install -y iptables-services

次に、IPTablesを有効にして、起動時に自動的に起動するようにします。

sudo systemctl enable iptables

次に、IPTablesを起動します。

sudo systemctl start iptables

Fedora 21のIPTablesには、デフォルトのルールセットが付属しています。 それらのルールの1つは、SSHトラフィックを許可します。 デフォルトのルールを表示するには、次のように入力します。

sudo iptables -L

出力は次のようになります。

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     icmp --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:ssh
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
REJECT     all  --  anywhere             anywhere             reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

これらのルールはランタイムルールであり、システムを再起動すると失われます。 現在のランタイムルールをファイルに保存して、再起動後も保持されるようにするには、次のように入力します。

sudo /usr/libexec/iptables/iptables.init save

ルールは、というファイルに保存されます。 iptables の中に /etc/sysconfig ディレクトリ。

ステップ5(オプション)—HTTPおよびHTTPSトラフィックを許可する

このセクションでは、ファイアウォールルールを編集して、ポート80(HTTP)および443(HTTPS)のサービスを許可する方法について説明します。

デフォルトのIPTablesルールはデフォルトでSSHトラフィックを許可しますが、HTTPとその比較的安全ないとこであるHTTPSは多くのアプリケーションが使用するサービスであるため、これらもファイアウォールを通過できるようにすることができます。

続行するには、次のように入力してファイアウォールルールファイルを開きます。

sudo nano /etc/sysconfig/iptables

SSH(ポート22)トラフィックのルールの後に、ポート80用とポート443用の2つのルールを追加するだけです。 以下の赤い線は、追加する線です。 新しいルールを追加する場所を見つけるのに役立つコンテキストとして、前後の行が含まれています。

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited

新しいルールセットをアクティブ化するには、IPTablesを再起動します。

sudo systemctl restart iptables

ステップ6(オプション)-Mlocateのインストール

The locate コマンドは、システム内のファイルの場所を検索するための非常に便利なユーティリティです。 たとえば、 example というファイルを見つけるには、次のように入力します。

locate example

これにより、ファイルシステムがスキャンされ、画面上の1つまたは複数のファイルの場所が印刷されます。 より高度な使用方法があります locate、 それも。

サーバーでコマンドを使用できるようにするには、最初に mlocate パッケージ。

sudo yum install -y mlocate

次に、を実行します updatedb 検索データベースを更新するコマンド。

sudo updatedb

その後、あなたは使用できるはずです locate 名前でファイルを検索します。

結論

最後のステップを完了すると、Fedora 21サーバーが構成され、適度に安全になり、使用できるようになります。