CentOS/RHEL 8 によるサーバーの初期セットアップ
この記事では、グラフィカル環境のない最小限のCentOS/RHEL 8 サーバーをインストールした後、インストールされているシステムに関する情報を取得するために適用する必要がある最初の基本手順を説明します。サーバーが実行されているハードウェアを管理し、システム アップデート、ネットワーキング、root 権限、SSH の設定、サービスの管理など、他の特定のシステム タスクを設定します。
要件
- CentOS 8 インストールガイド
- RHEL 8 の最小限のインストール
- RHEL 8 で RHEL サブスクリプションを有効にする
重要: システムのアップデートを実行するには、RHEL 8 サーバーで Red Hat サブスクリプション サービスを有効にする必要があります。ソフトウェアのインストール。
ステップ 1: システム ソフトウェアを更新する
まず、root ユーザーとしてサーバーにログインし、次のコマンドを実行して、最新のカーネル、システム セキュリティ パッチ、ソフトウェア リポジトリ、およびパッケージでシステムを完全に更新します。
dnf check-update
dnf update
ソフトウェア アップグレード プロセスが完了したら、ディスク領域を解放するために、次のコマンドを実行して、キャッシュされたすべてのリポジトリ情報を含むダウンロードされたソフトウェア パッケージをすべて削除できます。
dnf clean all
ステップ 2: システムユーティリティをインストールする
以下のシステム ユーティリティは、日々のシステム管理タスクに非常に役立ちます: nano、vim エディター、wget およびcurl (主にネットワーク経由でパッケージをダウンロードするために使用されるユーティリティ) net-tools (ローカル ネットワークを管理するためのユーティリティ) lsof (プロセスごとに開いているファイルのリストを検索) と bash-completion (コマンド ラインのオートコンプリート)。
dnf install nano vim wget curl net-tools lsof bash-completion
ステップ 3: ホスト名とネットワークのセットアップ
CentOS/RHEL 8 では、ネットワーク構成ファイルの手動変更から ifconfig、ip、nmcli、 nmtui。
初心者がネットワーク ホスト名の設定や静的 IP アドレスの構成などのネットワーク構成を構成および管理するために使用できる最も簡単なユーティリティは、nmtui グラフィカル コマンド ライン ユーティリティを使用することです。
CentOS 8 でホスト名を設定する
システムのホスト名を設定または変更するには、次のnmtui-hostname コマンドを実行します。次のスクリーンショットに示すように、マシンのホスト名の入力を求められ、[OK] を押して終了します。
nmtui-hostname
CentOS 8 で静的 IP アドレスを設定する
ネットワーク インターフェイスを設定するには、次のnmtui-edit コマンドを実行します。これにより、以下のスクリーンショットに示すように、メニューから設定するインターフェイスを選択するよう求められます。
nmtui-edit
[編集] ボタンをクリックすると、以下のスクリーンショットに示すように、ネットワーク インターフェイスの IP 設定をセットアップするよう求められます。終了したら、[tab]
キーを使用して [OK] に移動し、構成を保存して終了します。
ネットワーク構成が完了したら、次のコマンドを実行して、管理するインターフェイスを選択して新しいネットワーク設定を適用し、非アクティブ化/ アクティブ化オプションをクリックしてインターフェイスを停止して起動する必要があります。以下のスクリーンショットに示すように、IP 設定を変更します。
nmtui-connect
ネットワーク構成設定を確認するには、インターフェイス ファイルの内容を確認するか、以下のコマンドを実行します。
ifconfig enp0s3
ip a
ping -c2 google.com
また、ethtool や mii-tool などの他の便利なネットワーク ユーティリティを使用して、ネットワーク インターフェイスの速度、ネットワーク リンクのステータスを確認し、マシンのネットワーク インターフェイスに関する情報を取得することもできます。
ethtool enp0s3
mii-tool enp0s3
マシン ネットワーキングの重要な側面として、どのサービスがどのポートでリッスンしているか、確立されたネットワーク接続のステータスを確認し、プロセスによって開かれているすべてのファイルをリストするために、開いているネットワーク ソケットをすべてリストすることが重要です。
netstat -tulpn
ss -tulpn
lsof -i4 -6
ステップ 4: 新しいユーザー アカウントを作成する
必要に応じて管理タスクを実行できるように、root 権限を持つ通常のユーザーを用意することをお勧めします。一般ユーザーにroot権限を与えるには、まずuseraddコマンドでユーザーを作成し、パスワードを設定して管理ホイールグループにユーザーを追加します。
useradd ravisaive
passwd ravisaive
usermod -aG wheel ravisaive
新しいユーザーに root 権限があることを確認するには、ユーザーの資格情報を使用してシステムにログインし、図に示すように Sudo 権限で dnf コマンドを実行します。
su - ravisaive
sudo dnf update
ステップ 5: CentOS 8 で SSH パスワードレス ログインをセットアップする
サーバーのセキュリティを強化するには、公開キーと秘密キーを含む SSH キーのペアを生成して、新しいユーザーに SSH パスワードなしの認証を設定します。ただし、作成する必要があります。これにより、システムへの接続に秘密 SSH キーが必要になるため、サーバーのセキュリティが強化されます。
su - ravisaive
ssh-keygen -t RSA
キーが生成されると、秘密キーを保護するためにパスフレーズの入力を求められます。 SSH サーバー経由で管理タスクを自動化する場合は、強力なパスフレーズを入力するか、パスフレーズを空のままにすることを選択できます。
SSH キーが生成されたら、次のようにリモート サーバーのユーザー名と IP アドレスを指定して ssh-copy-id コマンドを実行して、生成された公開キー ペアをリモート サーバーにコピーする必要があります。
ssh-copy-id [email
SSH キーがコピーされたら、認証方法として秘密キーを使用してリモート Linux サーバーへのログインを試みることができます。 SSH サーバーがパスワードを要求しなくても、自動的にログインできるはずです。
[email
ステップ 6: SSH リモート ログインの保護
ここでは、SSH 設定ファイルで root アカウントへのリモート SSH アクセスを無効にすることで、サーバーのセキュリティをもう少し強化します。
vi /etc/ssh/sshd_config
#PermitRootLogin yes
という行を見つけ、行の先頭から #
を削除して行のコメントを解除し、行を次のように変更します。
PermitRootLogin no
その後、SSH サーバーを再起動して、最近の新しい変更を適用します。
systemctl restart sshd
次に、root アカウントとしてログインしようとして構成を確認します。図に示すように、SSH アクセス許可が拒否されましたというエラーが表示されます。
ssh [email
一定期間非アクティブな状態が続いた後、サーバーへのすべてのリモート SSH 接続を自動的に切断したいシナリオがあります。
ステップ 7: CentOS 8 でファイアウォールを構成する
CentOS/RHEL 8 では、デフォルトのファイアウォールは Firewalld で、サーバー上のiptables ルールを管理するために使用されます。サーバー上でfirewalld サービスを有効にして開始するには、次のコマンドを実行します。
systemctl enable firewalld
systemctl start firewalld
systemctl status firewalld
特定のサービス (SSH) への受信接続を開くには、まずそのサービスが firewalld ルールに存在することを確認してから、そのサービスのルールを追加する必要があります。図に示すように、コマンドに --permanent
スイッチを追加することでサービスを開始します。
firewall-cmd --add-service=[tab] #List services
firewall-cmd --add-service=ssh
firewall-cmd --add-service=ssh --permanent
HTTP や SMTP などの他のネットワーク サービスへの受信接続を開きたい場合は、サービス名を指定して、表示されているルールを追加するだけです。
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --permanent --add-service=smtp
サーバー上のすべてのファイアウォール ルールを表示するには、次のコマンドを実行します。
firewall-cmd --permanent --list-all
ステップ 8: CentOS 8 で不要なサービスを削除する
新しいCentOS/RHEL 8 サーバーをインストールした後は、サーバーへの攻撃を減らすために、サーバー上でデフォルトで実行されている不要なサービスを削除して無効にすることを強くお勧めします。
サーバー上で実行されているすべてのネットワーク サービス (TCP や UDP など) を一覧表示するには、次の例に示すように ss コマンドまたは netstat コマンドを実行します。
ss -tulpn
OR
netstat -tulpn
上記のコマンドは、Postfix メール サーバーなど、サーバー上でデフォルトで実行されているいくつかの興味深いサービスをリストします。サーバー上でメール システムをホストする予定がない場合は、図に示すように、メール システムを停止してシステムから削除する必要があります。
systemctl stop postfix
systemctl disable postfix
dnf remove postfix
ss コマンドと netstat コマンドに加えて、ps、top またはpstree コマンドを実行して、不要なサービスをすべて検出して特定し、システムから削除することもできます。
dnf install psmisc
pstree -p
ステップ 9: CentOS 8 でサービスを管理する
CentOS/RHEL 8 では、すべてのサービスとデーモンは systemctl コマンドを介して管理され、このコマンドを使用して、アクティブなサービス、実行中のサービス、終了したサービス、または失敗したサービスをすべて一覧表示できます。
systemctl list-units
システムの起動時にデーモンまたはサービスが自動的に有効になっているかどうかを確認するには、次のコマンドを実行します。
systemctl list-unit-files -t service
systemctl コマンドの詳細については、Linux で「Systemctl」を使用してサービスを管理する方法について説明した記事をお読みください。
それだけです!この記事では、すべての Linux システム管理者が知っておき、新しくインストールされたCentOS/RHEL 8 システムに適用したり、システム上で日常的なタスクを実行したりするために必要な、いくつかの基本設定とコマンドについて説明しました。 。