Xinetd、または拡張インターネットサービスデーモンは、いわゆるスーパーサーバーです。多くのサービスの代わりにリッスンするように構成し、着信要求が実際にシステムに到着したときにのみ着信要求を処理するサービスを開始できるため、リソースを節約できます。これは、トラフィックが比較的永続的なシステムでは大したことではないように思われるかもしれませんが、別のアプローチの前にあるこのサービスには、ロギングやアクセス制御などのいくつかの優れた利点があります。
この記事では、xinetdをRHEL 8 / CentOS 8にインストールし、sshd
を配置します。 世話をしているデーモン。設定を確認したら、構成を少し調整して、アクセス制御が機能していることを確認します。
このチュートリアルでは、次のことを学びます。
- xinetdのインストール方法
- RHEL 8 /CentOS8でxinetdサービスとしてsshdをセットアップする方法
- 特定のネットワークからxinetdからsshdサービスへのアクセスのみを許可する方法
- xinetdログエントリからのトラフィックを監査する方法

使用されるソフトウェア要件と規則
カテゴリ | 使用する要件、規則、またはソフトウェアバージョン |
---|---|
RHEL 8 / CentOS 8 | |
xinetd 2.3.15-23、OpenSSH 7.8p1 | |
rootまたはsudo を介したLinuxシステムへの特権アクセス コマンド。 | |
# –指定されたLinuxコマンドは、rootユーザーとして直接、またはsudo を使用して、root権限で実行する必要があります。 コマンド$ –特定のLinuxコマンドを通常の非特権ユーザーとして実行する必要があります |
RedHat8にxinetdサービスをインストールする方法ステップバイステップの説明
Xinetd
公式のサブスクリプション管理リポジトリを設定した後、ベースリポジトリにあります。 sshd
サーバーはデフォルトですべてのRedHat(およびほとんどすべてのLinuxディストリビューション)にインストールされます。
sshd
であることを忘れないでください このセットアップ中はオフになります。 sshでのみアクセスできるシステムでこのガイドを完了しようとしないでください。そうしないと、sshdをオフにしてxinetdサーバーを起動した瞬間にシステムへの接続が失われます。- 最初に
xinetd
をインストールする必要があります デーモン。dnf
を使用します :# dnf install xinetd
- 何らかの理由でシステムにOpenSSHインストールが含まれていない場合は、この場合の
openssh
のようなパッケージをインストールできます。 上記と同じ方法でパッケージ化します:# dnf install openssh
- Xinetdにはデフォルトの構成ファイル
/etc/xinetd.conf
が付属しています 、および/etc/xinetd.d/
のいくつかの優れた例 ディレクトリ。デフォルトではすべて無効になっています。vi
のようなテキストエディタを使用 またはnano
、新しいテキストファイル/etc/xinetd.d/ssh
を作成しましょう 次の内容で(サービス名の後の改行は必須であることに注意してください):service ssh { disable = no socket_type = stream protocol = tcp port = 22 wait = no user = root server = /usr/sbin/sshd server_args = -i }
-
sshd
の場合 サーバーがシステムで実行されている場合は、サーバーを停止する必要があります。停止しない場合は、xinetd
TCPポート22にバインドできません。これは、ssh経由でログインした場合に切断されるステップです。# systemctl stop sshd
長期的にxinetdよりもsshdを使用する予定の場合は、
systemd
を無効にすることもできます。 起動時に起動しないようにするためのサービス:systemctl disable sshd
- これで
xinetd
を開始できます :# systemctl start xinetd
オプションで、起動時に起動を有効にします:
# systemctl enable xinetd
- xinetdの起動後、基本的なセットアップには追加の制限が含まれていないため、sshを介してログインできます。サービスをテストするために、
localhost
へのログインを要求します :# ssh localhost root@localhost's password: Last login: Sun Mar 31 17:30:07 2019 from 192.168.1.7 #
-
/etc/xinetd.d/ssh
に別の行を追加しましょう 、ブレスレットを閉じる直前:[...] server = /usr/sbin/sshd server_args = -i only_from = 192.168.0.0 }
この設定では、ネットワークセグメント192.168.*。*からのアクセスのみを制限します。この構成変更を有効にするには、xinetdを再起動する必要があります:
# systemctl restart xinetd
- 私たちのラボマシンには複数のインターフェースがあります。上記の制限をテストするために、xinetd構成で許可されていない1つのインターフェースと、実際に許可されているインターフェースに接続してみます。
# hostname -i fe80::6301:609f:4a45:1591%enp0s3 fe80::6f06:dfde:b513:1a0e%enp0s8 10.0.2.15 192.168.1.14 192.168.122.1
システム自体から接続を開こうとするので、送信元IPアドレスは接続しようとしている宛先と同じになります。したがって、
10.0.2.15
に接続しようとすると 、接続は許可されていません:# ssh 10.0.2.15 ssh_exchange_identification: read: Connection reset by peer
アドレス
192.168.1.14
許可されたアドレス範囲内にあります。パスワードプロンプトが表示され、ログインできます:# ssh 192.168.1.14 [email protected]'s password:
- デフォルトのログ設定を変更していないため、ログインの試行(つまり、xinetdサービスへのアクセスの試行)は
/var/log/messages
に記録されます。 。ログエントリは、単純なgrep
で見つけることができます :cat /var/log/messages | grep xinetd Mar 31 18:30:13 rhel8lab xinetd[4044]: START: ssh pid=4048 from=::ffff:10.0.2.15 Mar 31 18:30:13 rhel8lab xinetd[4048]: FAIL: ssh address from=::ffff:10.0.2.15 Mar 31 18:30:13 rhel8lab xinetd[4044]: EXIT: ssh status=0 pid=4048 duration=0(sec) Mar 31 18:30:18 rhel8lab xinetd[4044]: START: ssh pid=4050 from=::ffff:192.168.1.14
これらのメッセージにより、当社のサービスがどのようにアクセスしたかを簡単に知ることができます。他にも多くのオプションがありますが(同時接続の制限、DOS攻撃を防ぐための接続失敗後のタイムアウトの設定など)、この単純なセットアップは、システム管理者の生活を楽にすることができるこのスーパーサーバーの能力を示していると思います。システム。