ウェブサイト検索

RHEL/CentOS 7 の最小インストールで不要なサービスを無効にして削除する


サーバー用の RHEL/CentOS 7 の最小インストールには、Postfix Mail Transfer Agent デーモン、Avahi などのいくつかのデフォルトのプリインストール サービスが付属しています。 mdns デーモン (マルチキャスト ドメイン ネーム システム) と、システム クロックを維持する役割を担うChrony サービス。

ここで、なぜこれらのサービスをすべて無効にする必要があるのかという疑問が生じます。プリインストールされている場合は?主な理由の 1 つはシステムのセキュリティ レベルを高めることであり、2 番目の理由はシステムの最終目的地であり、3 番目の理由はシステム リソースです。

要件

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

新しくインストールした RHEL/CentOS 7 を使用して、たとえば、Apache または Nginx で実行される小規模な Web サイトをホストしたり、DNS などのネットワーク サービスを提供したりすることを計画している場合、DHCP、PXE ブート、FTP サーバーなど、または Postifx MTA デーモン、Chrony または Avahi デーモンを実行する必要のないその他のサービスでは、なぜこれらの不要なデーモンをすべてサーバーにインストールしたり、サーバー上で実行したりしておく必要があるのでしょうか。

最小限のインストールを実行した後にサーバーが実際に実行する必要がある主な外部サービスは、システムへのリモート ログインを許可するための単なる SSH デーモンであり、場合によっては NTP サービスも可能になります。サーバーの内部時計を外部 NTP サーバーと正確に同期させます。

Postfix MTA、Avahi、および Chrony サービスを無効化/削除する

1. インストールが完了したら、root アカウントまたは root 権限を持つユーザーでサーバーにログインし、システム アップデートを実行して、システムが最新の状態であることを確認します。 -すべてのパッケージとセキュリティ パッチの日付。

yum upgrade

2. 次のステップは、YUM パッケージ マネージャーを使用して、net-tools などの便利なシステム ユーティリティをインストールすることです (このパッケージには古い
ただし、優れた ifconfig コマンド)、nano テキスト エディタ、URL 転送用の wgetcurllsof (開いているファイルをリストするため) と、入力されたコマンドを自動補完する bash-completion です。

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

3. これで、プリインストールされた不要なサービスの無効化と削除を開始できます。まず、TCP、UDP、およびリッスン状態のネットワーク ソケットに対して netstat コマンドを実行して、有効になっている実行中のすべてのサービスのリストを取得します。

netstat -tulpn  	## To output numerical service sockets

netstat -tulp      	## To output literal service sockets

4. ご覧のとおり、Postfix が開始され、ポート 25 のローカルホストでリッスンし、Avahi デーモンがすべてのネットワーク インターフェイスと Chronyd にバインドします。 サービスは、ローカルホストと異なるポート上のすべてのネットワーク インターフェイスにバインドします。次のコマンドを発行して、Postfix MTA サービスの削除を続行します。

systemctl stop postfix
yum remove postfix

5. 次に、次のコマンドを実行して、NTP サーバーに置き換えられる Chronyd サービスを削除します。

systemctl stop chronyd
yum remove chrony

6. 次に、Avahi デーモンを削除します。 RHEL/CentOS 7 では、Avahi デーモンが非常に厳しく、Network Manager サービスに依存しているようです。 Avahi デーモンの削除を実行すると、システムがネットワークに接続されなくなる可能性があります。

したがって、このステップには特に注意してください。 Network Manager が提供する自動ネットワーク構成が本当に必要な場合、またはインターフェイスを編集する必要がある場合
nmtui ネットワークとインターフェイス ユーティリティを使用する場合は、Avahi デーモンを停止して無効にするだけで、削除はまったく実行しないでください。

このサービスを完全に削除したい場合は、/etc/sysconfig/network-scripts/ifcfg-interface_name にあるネットワーク構成ファイルを手動で編集し、ネットワーク サービスを開始して有効にする必要があります。

次のコマンドを実行してAvahi mdns デーモン を削除します。 注意: SSH 経由で接続した場合は、Avahi デーモンを削除しないでください。

systemctl stop avahi-daemon.socket avahi-daemon.service
systemctl disable avahi-daemon.socket avahi-daemon.service
--------- Stop here if you don't want removal --------- 

yum remove avahi-autoipd avahi-libs avahi

7. この手順は、Avahi デーモンを削除し、ネットワーク接続がクラッシュし、手動でネットワーク インターフェイス カードを再度設定する必要がある場合にのみ必要です。

IPv6静的 IP アドレス を使用するように NIC を編集するには、/etc/sysconfig/network-scripts/ パスに移動し、NIC インターフェイス ファイルを開きます。 (通常、最初のカードの名前は ifcfg-eno1677776 で、Network Manager によってすでに構成されています)。次の抜粋をガイドとして使用してください。
ネットワーク インターフェイスには構成がありません。

IPV6INIT=no
IPV6_AUTOCONF=yes
BOOTPROTO=none
DEVICE=eno16777736
ONBOOT=yes
UUID=c3f0dc21-d2eb-48eb-aadf-10a520b13df0
TYPE=Ethernet
#DEFROUTE=no
IPV4_FAILURE_FATAL=no
IPV6_DEFROUTE=no
IPV6_FAILURE_FATAL=no
NAME="System eno16777736"
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
HWADDR=00:0C:29:E2:06:E9
                IPADDR=192.168.1.25
                NETMASK=255.255.255.0
                GATEWAY=192.168.1.1
                DNS1=192.168.1.1
                DNS2=8.8.8.8

ここで考慮すべき最も重要な設定は次のとおりです。

  1. BOOTPROTO – 静的 IP アドレスの場合は、なしまたは静的に設定します。
  2. ONBOOT – Yes に設定すると、再起動後にインターフェースが起動します。
  3. DEFROUTE – # でコメントされたステートメント、または完全に削除されたステートメント – デフォルト ルートを使用しないでください (ここで使用する場合は、すべてのネットワーク インターフェイスに「DEFROUTE: no」を追加する必要があり、デフォルト ルートとして使用されません)。

8. インフラストラクチャに IP アドレスを自動的に割り当てる DHCP サーバーがある場合は、ネットワーク インターフェイスの構成に関する次の抜粋を使用します。

IPV6INIT=no
IPV6_AUTOCONF=yes
BOOTPROTO=dhcp
DEVICE=eno16777736
ONBOOT=yes
UUID=c3f0dc21-d2eb-48eb-aadf-10a520b13df0
TYPE=Ethernet
##DEFROUTE=no
IPV4_FAILURE_FATAL=no
IPV6_DEFROUTE=no
IPV6_FAILURE_FATAL=no
NAME="System eno16777736"
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
HWADDR=00:0C:29:E2:06:E9

静的 IP アドレスの構成と同様に、BOOTPROTOdhcp に設定され、DEFROUTE ステートメントがコメント化または削除され、デバイスが次のように構成されていることを確認します。起動時に自動的に起動します。 IPv6 を使用しない場合は、IPV6 を含むすべての行を削除するかコメント化してください。

9. ネットワーク インターフェイスに新しい構成を適用するには、ネットワーク サービスを再起動する必要があります。ネットワーク デーモンを再起動した後、ifconfig を使用します
または ip addr show コマンドを使用してインターフェイス設定を取得し、ドメイン名に ping を実行してネットワークが機能しているかどうかを確認します。

service network restart	## Use this command before systemctl
chkconfig network on
systemctl restart network
ifconfig
ping domain.tld

10. 最終設定として、hostnamectl ユーティリティを使用してシステム hostname の名前を設定し、hostname< で構成を確認してください。 コマンド。

hostnamectl set-hostname FQDN_system_name
hostnamectl status
hostname
hostname -s   	## Short name
hostname -f   	## FQDN name

11. 以上です。最終テストとして、netstat コマンドを再度実行して、システム上でどのようなサービスが実行されているかを確認します。

netstat -tulpn
netstat -tulp

12. SSH サーバーのほかに、ネットワークが DHCP を使用して動的 IP 構成を取得する場合は、DHCP クライアントが実行され、UDP ポートでアクティブになる必要があります。

netstat -tulpn

13. netstat ユーティリティの代わりに、ソケット統計 コマンドを使用して実行中のネットワーク ソケットを出力できます。

ss -tulpn 

14. サーバーを再起動し、systemd-analyze コマンドを実行してシステムの起動時間のパフォーマンスを確認します。また、free も使用します。 >ディスク
free
コマンドは RAM と HDD の統計を表示し、top コマンドは最も使用されているシステム リソースの上位を表示します。

free -h
df -h
top 

おめでとう!これで、インストールおよび実行されるサービスが減り、将来の構成に使用できるリソースが増えた、クリーンで最小限の RHEL/CentOS 7 システム環境が完成しました。

こちらもお読みください: Linux からの不要なサービスを停止および無効にする