ウェブサイト検索

RHCSA シリーズ: SSH の保護、ホスト名の設定、およびネットワーク サービスの有効化 - パート 8


システム管理者は、多くの場合、ターミナル エミュレータを使用してさまざまな管理タスクを実行するために、リモート システムにログオンする必要があります。実際の (物理) 端末の前に座ることはほとんどないため、管理を求められるマシンにリモートでログオンする方法をセットアップする必要があります。

実際、これは物理端末の前で行う必要がある最後のことかもしれません。すべてのトラフィックは暗号化されていないプレーン テキストでネットワークを通過するため、セキュリティ上の理由から、この目的でTelnet を使用することは得策ではありません。

さらに、この記事では、起動時にネットワーク サービスが自動的に開始されるように構成する方法と、ネットワークとホスト名の解決を静的または動的に設定する方法についても説明します。

SSH 通信のインストールと保護

SSH を使用して RHEL 7 ボックスにリモートでログオンできるようにするには、opensshopenssh をインストールする必要があります。 - クライアントopenssh-serversパッケージ。次のコマンドは、リモート ログイン プログラムだけでなく、安全なファイル転送ツール、およびリモート ファイル コピー ユーティリティもインストールします。


yum update && yum install openssh openssh-clients openssh-servers

ある時点で同じマシンをクライアントとサーバーの両方として使用する場合があるため、対応するサーバーをインストールすることをお勧めします。

インストール後、SSH サーバーへのリモート アクセスを保護する場合は、考慮する必要のある基本的な事項がいくつかあります。次の設定が /etc/ssh/sshd_config ファイルに存在する必要があります。

1. sshd デーモンがリッスンするポートを 22 (デフォルト値) から高ポート (2000 以上) に変更します。ただし、最初に、選択したポートが使用されていないことを確認してください。

たとえば、ポート2500を選択したとします。 netstat を使用して、選択したポートが使用されているかどうかを確認します。


netstat -npltu | grep 2500

netstat が何も返さない場合は、sshd にポート 2500 を安全に使用できます。設定ファイルのポート設定を次のように変更する必要があります。


Port 2500

2. プロトコル 2 のみを許可します。


Protocol 2

3. 認証タイムアウトを 2 分に設定し、root ログインを許可せず、ssh 経由でログインできるユーザーのリストを最小限に制限します。


LoginGraceTime 2m
PermitRootLogin no
AllowUsers gacanepa

4. 可能であれば、パスワード認証の代わりにキーベースの認証を使用します。


PasswordAuthentication no
RSAAuthentication yes
PubkeyAuthentication yes

これは、ここで説明したように、クライアント マシン上でユーザー名を使用したキー ペアをすでに作成し、それをサーバーにコピーしていることを前提としています。

  1. SSHパスワードレスログインを有効にする

ネットワークと名前解決の構成

1. すべてのシステム管理者は、次のシステム全体の構成ファイルについてよく知っている必要があります。

  1. /etc/hosts は、小規模ネットワークで <---> IP の名前を解決するために使用されます。

/etc/hosts ファイル内の各行は次の構造になっています。


IP address - Hostname - FQDN

例えば、


192.168.0.10	laptop	laptop.gabrielcanepa.com.ar

2. /etc/resolv.conf は、DNS サーバーの IP アドレスと検索ドメインを指定します。検索ドメインは、指定されたクエリ名を完全修飾ドメイン名に完成させるために使用されます。ドメインサフィックスは提供されません。

通常の状況では、このファイルはシステムによって管理されているため、編集する必要はありません。ただし、DNS サーバーを変更する場合は、各行で次の構造に従う必要があることに注意してください。


nameserver - IP address

例えば、


nameserver 8.8.8.8

3. 3. /etc/host.conf は、ネットワーク内でホスト名が解決される方法と順序を指定します。言い換えれば、どのサービスをどのような順序で使用するかをネームリゾルバに指示します。

このファイルにはいくつかのオプションがありますが、最も一般的で基本的な設定には次の行が含まれています。


order bind,hosts

これは、リゾルバーが最初に resolv.conf で指定されたネームサーバーを調べ、次に /etc/hosts ファイルを調べて名前解決を行う必要があることを示します。

4. /etc/sysconfig/network には、すべてのネットワーク インターフェイスのルーティングおよびグローバル ホスト情報が含まれています。次の値を使用できます。


NETWORKING=yes|no
HOSTNAME=value

ここで、値は完全修飾ドメイン名 (FQDN) です。


GATEWAY=XXX.XXX.XXX.XXX

ここで、XXX.XXX.XXX.XXX は、ネットワークのゲートウェイの IP アドレスです。


GATEWAYDEV=value

複数の NIC を備えたマシンの場合、enp0s3 などのゲートウェイ デバイスです。

5. /etc/sysconfig/network-scripts 内のファイル (ネットワーク アダプター構成ファイル)。

前述のディレクトリ内には、次の名前のプレーン テキスト ファイルがいくつかあります。


ifcfg-name

name は、ip link show によって返される NIC の名前です。

例えば:

ループバックインターフェイス以外では、NIC にも同様の構成が期待できます。一部の変数が設定されている場合、この特定のインターフェイスの /etc/sysconfig/network に存在する変数がオーバーライドされることに注意してください。この記事では明確にするために各行にコメントが付けられていますが、実際のファイルではコメントを避ける必要があります。


HWADDR=08:00:27:4E:59:37 # The MAC address of the NIC
TYPE=Ethernet # Type of connection
BOOTPROTO=static # This indicates that this NIC has been assigned a static IP. If this variable was set to dhcp, the NIC will be assigned an IP address by a DHCP server and thus the next two lines should not be present in that case.
IPADDR=192.168.0.18
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
NM_CONTROLLED=no # Should be added to the Ethernet interface to prevent NetworkManager from changing the file.
NAME=enp0s3
UUID=14033805-98ef-4049-bc7b-d4bea76ed2eb
ONBOOT=yes # The operating system should bring up this NIC during boot

ホスト名の設定

Red Hat Enterprise Linux 7 では、システムのホスト名のクエリと設定の両方に hostnamectl コマンドが使用されます。

現在のホスト名を表示するには、次のように入力します。


hostnamectl status

ホスト名を変更するには、次を使用します


hostnamectl set-hostname [new hostname]

例えば、


hostnamectl set-hostname cinderella

変更を有効にするには、ホスト名デーモンを再起動する必要があります (そうすることで、変更を適用するためにログオフして再度ログオンする必要がなくなります)。


systemctl restart systemd-hostnamed

さらに、RHEL 7 には、同じ目的に使用できる nmcli ユーティリティも含まれています。ホスト名を表示するには、次を実行します。


nmcli general hostname

それを変更するには:


nmcli general hostname [new hostname]

例えば、


nmcli general hostname rhel7

起動時にネットワークサービスを開始する

最後に、起動時にネットワーク サービスが自動的に開始されるようにする方法を見てみましょう。簡単に言えば、これは、サービス構成ファイルの[インストール]セクションで指定された特定のファイルへのシンボリックリンクを作成することによって行われます。

ファイアウォール (/usr/lib/systemd/system/firewalld.service) の場合:


[Install]
WantedBy=basic.target
Alias=dbus-org.fedoraproject.FirewallD1.service

サービスを有効にするには:


systemctl enable firewalld

一方、firewalld を無効にすると、シンボリックリンクを削除できます。


systemctl disable firewalld

結論

この記事では、SSH 経由で RHEL サーバーをインストールして接続を保護する方法、その名前を変更する方法、最後にネットワーク サービスが確実に開始されるようにする方法をまとめました。ブート。特定のサービスが適切に開始できないことに気付いた場合は、systemctl status -l [service]journalctl -xn を使用してトラブルシューティングを行うことができます。

以下のコメント フォームを使用して、この記事についてのご意見をお気軽にお寄せください。質問も歓迎です。お返事おまちしております!