“RHCSAシリーズ:SSHのセキュリティ強化、ホスト名の設定、ネットワークサービスの有効化 – パート8”

システム管理者として、ターミナルエミュレータを使用してさまざまな管理タスクを実行するために、リモートシステムにログインすることがよくあります。実際には、物理的なターミナルの前に座って作業することはほとんどありませんので、管理する必要のあるマシンにリモートでログインする方法を設定する必要があります。

セキュリティ上の理由から、この目的でTelnetを使用することは良いアイデアではありません。なぜなら、すべてのトラフィックが暗号化されていないプレーンテキストでワイヤを通過するからです。

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

RHCSA: Secure SSH and Enable Network Services – Part 8

SSH通信のインストールとセキュリティ設定

RHEL 7ボックスにリモートでログインするためにSSHを使用するためには、opensshopenssh-clients、そして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が何も返さない場合、ポート2500をsshdに安全に使用できます。そして、設定ファイルのPort設定を以下のように変更する必要があります:

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アドレスとsearch domainを指定します。これは、ドメインサフィックスが指定されていない場合に、与えられたクエリ名を完全なドメイン名に补完するために使用されます。

通常、このファイルを編集する必要はないです。これはシステムに管理されています。しかし、DNSサーバーを変更したい場合は、各行に以下の構造に従ってください:

nameserver - IP address

たとえば、

nameserver 8.8.8.8

3.3. /etc/host.confは、ネットワーク内でhostnameを解決する方法と順序を指定します。つまり、名前解決器がどのサービスを使用し、どのような順序で使用すべきかを示します。

このファイルにはいくつかのオプションがありますが、最も一般的で基本的な設定は以下のような行です:

order bind,hosts

これは、名前解決器が最初にresolv.confに指定された名前サーバーを参照し、次に/etc/hostsファイルを名前解決のために使用することを示しています。

4./etc/sysconfig/networkは、すべてのネットワークインターフェースのルーティングとグローバルなhost情報を含みます。以下の値が使用できます:

NETWORKING=yes|no
HOSTNAME=value

ここでのvalueは完全なドメイン名(FQDN)である必要があります。

GATEWAY=XXX.XXX.XXX.XXX

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

GATEWAYDEV=value

複数のNICを持つマシンでは、enp0s3などのゲートウェイデバイスです。

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

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

ifcfg-name

という名前であります。ここで名前はip link showによって返されるNICの名前です:

Check Network Link Status

例えば:

Network Files

ループバックインターフェース以外では、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
Check System Hostname

ホスト名を変更するには、次のように入力します:

# hostnamectl set-hostname [new hostname]

例:

# hostnamectl set-hostname cinderella

変更を有効にするには、hostnamedデーモンを再起動する必要があります(この方法でログオフおよび再ログオンする必要はありません):

# systemctl restart systemd-hostnamed
Set System Hostname

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

# nmcli general hostname

そして変更するには:

# nmcli general hostname [new hostname]

例:

# nmcli general hostname rhel7
Set Hostname Using nmcli Command

ブート時のネットワークサービスの開始

完了にしましょう。起動時にネットワークサービスを自動的に起動させる方法を見ていきましょう。簡単に言うと、サービス構成ファイルの[Install]節に指定される特定のファイルに対するシンボリックリンクを作成することです。

firewalld/usr/lib/systemd/system/firewalld.service)の場合:

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

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

# systemctl enable firewalld

その反対に、firewalldを無効にすると、シンボリックリンクを削除することができます:

# systemctl disable firewalld
Enable Service at System Boot

結び

この記事では、SSHを使用してRHELサーバーに接続する方法、その名前を変更する方法、および起動時にネットワークサービスを起動することを保証する方法を簡単に説明しました。特定のサービスが正しく起動しない場合は、systemctl status -l [service]およびjournalctl -xnを使用して解決策を探ることができます。

この記事についての感想や質問は、以下のコメントフォームを使用してお知らせください。私たちはあなたからのご意見や質問を楽しみにしています!

Source:
https://www.tecmint.com/rhcsa-series-secure-ssh-set-hostname-enable-network-services-in-rhel-7/