ウェブサイト検索

RHEL 7 でのサーバーの初期セットアップと構成


このチュートリアルでは、ベアメタルサーバーまたは仮想プライベートサーバーにRed Hat Enterprise Linux 7を新規インストールした後に行う必要がある最初の設定手順について説明します。

要件

  1. RHEL 7 の最小限のインストール

重要: CentOS 7 ユーザーは、この記事に従って CentOS 7 でサーバーの初期セットアップを行うことができます。

RHEL 7 システムをアップデートする

最初のステップでは、root 権限を持つアカウントを使用して、または root として直接RHEL サーバー コンソールにログインし、以下のコマンドを実行して、インストールされているパッケージ、カーネルなどのシステム コンポーネントを完全に更新します。または他のセキュリティ パッチを適用します。

yum check-update
yum update

ローカルにダウンロードされたパッケージとその他の関連する YUM キャッシュをすべて削除するには、以下のコマンドを実行します。

yum clean all

RHEL 7 にシステム ユーティリティをインストールする

次のユーティリティは、日々のシステム管理に役立つことが証明されています: nano (vi エディタに代わるテキスト エディタ)、wget、curl (パッケージのダウンロードに使用されるユーティリティ)主にネットワーク経由)ネットツール、lsof(ローカルネットワーク管理用ユーティリティ)、bash-completion(コマンドラインオートコンプリート)。

以下のコマンドを実行して、すべてをワンショットでインストールします。


yum install nano wget curl net-tools lsof bash-completion

RHEL 7 でのネットワークのセットアップ

RHEL 7 には、ネットワーク構成ファイルの手動編集から ip、ifconfig、nmtui、 nmcli またはルート

初心者がネットワーク構成の管理と変更に使用できる最も簡単なユーティリティは、nmtui グラフィカル コマンド ラインです。

nmtui ユーティリティを介してシステムのホスト名を変更するには、図に示すように、nmtui-hostname コマンドを実行し、マシンのホスト名を設定し、OK を押して終了します。以下のスクリーンショットで。


nmtui-hostname

ネットワーク インターフェイスを操作するには、以下のスクリーンショットに示すように、nmtui-edit コマンドを実行し、編集するインターフェイスを選択して、右側のメニューから編集を選択します。

nmtui ユーティリティが提供するグラフィカル インターフェイスにアクセスすると、以下のスクリーンショットに示すように、ネットワーク インターフェイスの IP 設定をセットアップできます。終了したら、[tab] キーを使用して [OK] に移動し、構成を保存して終了します。

ネットワーク インターフェイスの新しい構成を適用するには、nmtui-connect コマンドを実行し、管理するインターフェイスを選択して、非アクティブ化/ アクティブ化 オプションをクリックして、デコミッションと立ち上がりを行います。以下のスクリーンショットに示すように、IP 設定のインターフェイス。


nmtui-connect

ネットワーク インターフェイスの設定を表示するには、インターフェイス ファイルの内容を検査するか、以下のコマンドを実行します。


ifconfig enp0s3
ip a
ping -c2 google.com

速度、リンク状態の管理、またはマシンのネットワーク インターフェイスに関する情報の取得に使用できるその他の便利なユーティリティには、ethtoolmii-tool があります。


ethtool enp0s3
mii-tool enp0s3

新しいユーザーアカウントを作成する

次のステップでは、サーバーに root としてログインしているときに、以下のコマンドを使用して新しいユーザーを作成します。このユーザーは、後でシステムにログインし、管理タスクを実行するために使用されます。

adduser tecmint_user

上記のコマンドを使用してユーザーを追加した後、以下のコマンドを実行して、このユーザーに強力なパスワードを設定します。

passwd tecmint_user

この新しいユーザーに最初のログイン試行時にパスワードの変更を強制する場合は、以下のコマンドを実行します。

chage -d0 tecmint_user

この新しいユーザー アカウントには、現時点では通常のアカウント権限があり、sudo コマンドを使用して管理タスクを実行することはできません。

管理者権限を実行するために root アカウントが使用されないようにするには、この新しいユーザーを「wheel 」システム グループに追加して管理者権限を付与します。

wheel」グループに属するユーザーは、RHEL のデフォルトで、実行に必要なコマンドを作成する前に、sudo ユーティリティを使用して root 権限でコマンドを実行できます。

たとえば、ユーザー「tecmint_user 」を「wheel 」グループに追加するには、次のコマンドを実行します。

usermod -aG wheel tecmint_user

その後、新しいユーザーでシステムにログインし、「sudo yum update」コマンドを使用してシステムを更新して、ユーザーに root 権限が付与されているかどうかをテストします。

su - tecmint_user
sudo yum update

RHEL 7 での SSH 公開キー認証の構成

RHEL サーバーのセキュリティを強化するための次のステップでは、新しいユーザーの SSH 公開キー認証を構成します。 SSH キー ペア、公開キーと秘密キーを生成するには、サーバー コンソールで次のコマンドを実行します。 SSH キーを設定しているユーザーでシステムにログインしていることを確認してください。

su - tecmint_user
ssh-keygen -t RSA

キーの生成中に、 キーを保護するためにパスフレーズを追加するように求められます。 SSH サーバー経由でタスクを自動化する場合は、強力なパスフレーズを入力するか、パスフレーズを空白のままにすることを選択できます。

SSH キーが生成されたら、以下のコマンドを実行して公開キー ペアをリモート サーバーにコピーします。公開キーをリモート SSH サーバーにインストールするには、そのサーバーにログインするための資格情報を持つユーザー アカウントが必要です。

ssh-copy-id [email 

次に、認証方法として秘密キーを使用して、SSH 経由でリモート サーバーにログインしてみます。 SSH サーバーがパスワードを要求しなくても、自動的にログインできるはずです。

ssh [email 

公開 SSH キーの内容を確認するには、キーを離れた SSH サーバーに手動でインストールする場合、次のコマンドを実行します。

cat ~/.ssh/id_rsa

RHEL 7 での安全な SSH

SSH デーモンを保護し、パスワードまたはキーによる root アカウントへのリモート SSH アクセスを禁止するには、SSH サーバーのメイン設定ファイルを開き、次の変更を加えます。

sudo vi /etc/ssh/sshd_config

#PermitRootLogin yes という行を検索し、行の先頭から # 記号 (ハッシュタグ) を削除して行のコメントを解除し、次のように行を変更します。抜粋。

PermitRootLogin no

その後、SSH サーバーを再起動して新しい設定を適用し、root アカウントでこのサーバーにログインして構成をテストします。 SSH 経由の root アカウントへのアクセスは今のところ制限されているはずです。

sudo systemctl restart sshd

状況によっては、一定期間非アクティブになった後、サーバーへのすべてのリモート SSH 接続を自動的に切断したい場合があります。

この機能をシステム全体で有効にするには、以下のコマンドを実行します。これにより、TMOUT bash 変数がメインの bashrc ファイルに追加され、すべての SSH 接続が強制的に切断またはドロップされます。 5 分間非アクティブ状態が続くと終了します。

su -c 'echo "TMOUT=300" >> /etc/bashrc'

tail コマンドを実行して、/etc/bashrc ファイルの末尾に変数が正しく追加されているかどうかを確認します。それ以降のすべての SSH 接続は、5 分間非アクティブ状態が続くと自動的に閉じられます。

tail /etc/bashrc

以下のスクリーンショットでは、drupal マシンから RHEL サーバーへのリモート SSH セッションが 5 分後に自動ログアウトされています。

RHEL 7 でファイアウォールを構成する

次のステップでは、ネットワーク レベルでシステムのセキュリティをさらに強化するためにファイアウォールを構成します。 RHEL 7 には、サーバー上の iptables ルールを管理するための Firewalld アプリケーションが付属しています。

まず、以下のコマンドを実行して、システムでファイアウォールが実行されていることを確認します。 Firewalld デーモンが停止している場合は、次のコマンドを使用して起動する必要があります。

sudo systemctl status firewalld
sudo systemctl start firewalld
sudo systemctl enable firewalld

ファイアウォールが有効になり、システムで実行されたら、firewall-cmd コマンド ライン ユーティリティを使用してファイアウォール ポリシー情報を設定し、SSH デーモンなどの特定のネットワーク ポートへのトラフィックを許可できます。内部 Web サーバーまたはその他の関連ネットワーク サービスに送信します。

現時点ではサーバーで SSH デーモンを実行しているだけなので、次のコマンドを発行して SSH サービス ポートのトラフィックを許可するようにファイアウォール ポリシーを調整できます。

sudo firewall-cmd --add-service=ssh --permanent
sudo firewall-cmd --reload

次回サーバーの起動時にルールを適用せずに、ファイアウォール ルールをオンフライで追加するには、以下のコマンド構文を使用します。

sudo firewall-cmd --add-service=sshd

HTTP サーバー、メール サーバー、その他のネットワーク サービスなどの他のネットワーク サービスをサーバーにインストールする場合は、次のように特定の接続を許可するルールを追加できます。

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --permanent --add-service=smtp

すべてのファイアウォール ルールを一覧表示するには、以下のコマンドを実行します。

sudo firewall-cmd --permanent --list-all

RHEL 7 で不要なサービスを削除する

RHEL サーバーでデフォルトで実行されているすべてのネットワーク サービス (TCP および UDP) のリストを取得するには、以下のサンプルに示すように、ss コマンドを発行します。

sudo ss -tulpn

ss コマンドを実行すると、Postfix マスター サービスや NTP プロトコルを担当するサーバーなど、システム内でデフォルトで開始および実行されているいくつかの興味深いサービスが表示されます。

このサーバーをメールサーバーとして構成する予定がない場合は、以下のコマンドを実行して Postfix デーモンを停止、無効化、および削除する必要があります。

sudo systemctl stop postfix.service 
sudo yum remove postfix

最近、NTP プロトコルを介した厄介な DDOS 攻撃がいくつか報告されています。内部クライアントがこのサーバーと時刻を同期できるように、RHEL サーバーを NTP サーバーとして実行するように構成する予定がない場合は、以下のコマンドを実行して Chrony デーモンを完全に無効にして削除する必要があります。

sudo systemctl stop chronyd.service 
sudo yum remove chrony

再度、ss コマンドを実行して、システム内で他のネットワーク サービスが実行されているかどうかを確認し、それらを無効にして削除します。

sudo ss -tulpn

サーバーに正確な時刻を提供し、上位の時刻ピア サーバーと時刻を同期するには、以下のコマンドを実行してntpdate ユーティリティをインストールし、パブリック NTP サーバーと時刻を同期します。

sudo yum install ntpdate
sudo ntpdate 0.uk.pool.ntp.org

ユーザーの介入なしで毎日実行されるntpdate 時刻同期コマンドを自動化するには、次の内容で新しい crontab ジョブを午前 0 時に実行するようにスケジュールします。

sudo crontab -e

Crontab ファイルの抜粋:

@daily /usr/sbin/ntpdate 0.uk.pool.ntp.org

それだけです!これで、RHEL サーバーは、Web サーバー、データベース サーバー、ファイル共有サービス、またはその他の特定のアプリケーションのインストールと構成など、カスタム ネットワーク サービスまたはアプリケーションに必要な追加ソフトウェアをインストールする準備が整いました。

RHEL 7 サーバーのセキュリティをさらに強化して強化するには、次の記事を参照してください。

  1. RHEL 7 を強化して保護するためのメガガイド – パート 1
  2. RHEL 7 を強化して保護するためのメガガイド – パート 2

この RHEL 7 システムに Web サイトを展開する予定がある場合は、LAMP スタックまたは LEMP スタックをセットアップおよび構成する方法を学習してください。