Centos での TCPWrappers アクセス制御の実装

Centos での TCPWrappers アクセス制御の実装

1. TCP ラッパーの概要

TCP Wrappers は TCP サービス プログラムを「ラップ」し、TCP サービス プログラムのポートを代わりにリッスンして、セキュリティ検出プロセスを追加します。外部接続要求は、実際のサービス プログラムにアクセスする前に、まずこのセキュリティ検出層を通過し、許可を得る必要があります。下の図に示すように、TCP Wrappers は保護されたサービスへのアクセス試行をすべて記録し、管理者に豊富なセキュリティ分析情報を提供することもできます。

2. TCPラッパーのアクセス戦略

TCP ラッパー メカニズムは、さまざまなネットワーク サービス プログラムを保護し、サービスにアクセスするクライアント アドレスに対してアクセス制御を実行します。対応する 2 つのポリシー ファイルは /etc/hosts.allow と /etc/hosts.deny であり、それぞれ許可ポリシーと拒否ポリシーを設定するために使用されます。

1. ポリシー設定形式

2 つのポリシー ファイルの機能は反対ですが、構成レコードの形式は次のように同じです。
<サービス プログラム リスト>: <クライアント アドレス リスト>

サービス プログラム リストとクライアント アドレス リストはコロンで区切られ、各リスト内の複数の項目はコンマで区切られます。

1) サービスプログラムリスト

  • ALL: すべてのサービスを表します。
  • 単一のサービス プログラム:「vsftpd」など。
  • 複数のサービス プログラムのリスト: 「vsftpd.sshd」など。

2) クライアントアドレスリスト

  • ALL: 任意のクライアント アドレスを表します。
  • LOCAL: ローカル アドレスを表します。
  • 単一の IP アドレス: 「192.1668.10.1」など
  • ネットワーク セグメント アドレス: 「192.168.10.0/255.255.255.0」など。
  • 「.」で始まるドメイン名: たとえば、「benet.com」は benet.com ドメイン内のすべてのホストに一致します。
  • ドットで終わるネットワーク アドレス: たとえば、「192.168.10.」は、192.168.10.0/24 ネットワーク セグメント全体に一致します。
  • 埋め込みワイルドカード「?」: 前者は任意の長さの文字を表し、後者は 1 文字のみを表します。たとえば、「192.168.10.1」は、192.168.10.1 で始まるすべての IP アドレスに一致します。 「.」で始まるまたは終わるパターンと混在させることはできません。
  • 複数のクライアント アドレスのリスト: 「192.168.1.、172.16.16.、.benet.com」など。

2. アクセス制御の基本原則

TCP Wrappers メカニズムのアクセス ポリシーに関しては、適用時に次の順序と原則に従います。まず、/etc/hosts.allow ファイルをチェックします。一致するポリシーが見つかった場合、アクセスが許可されます。そうでない場合は、/etc/hosts.deny ファイルのチェックを続けます。一致するポリシーが見つかった場合、アクセスは拒否されます。上記の 2 つのファイルに一致するポリシーが見つからない場合、アクセスが許可されます。

3. TCP ラッパーの設定例

TCP Wrappers メカニズムが実際に使用される場合、より緩いポリシーは「すべてを許可し、一部を拒否する」ことになり、より厳しいポリシーは「一部を許可し、すべてを拒否する」ことになる場合があります。前者の場合は、hosts.deny ファイルに対応する拒否ポリシーを追加するだけで済みます。後者の場合は、host.allow に許可ポリシーを追加するだけでなく、hosts.deny ファイルで「ALL:ALL」の拒否ポリシーを設定する必要もあります。

次に例を示します。

ここで、IP アドレス 192.168.10.1 のホストまたは 172.16.16 ネットワーク セグメント内のホストからのみ sshd サービスにアクセスします。他のアドレスは拒否されます。次の操作を実行できます。

[root@centos01 ~]# vim /etc/hosts.allow 
192.168.10.1 172.16.16.* へ
[root@centos01 ~]# vim /etc/hosts.deny 
sshd:すべて

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Centos 7.4 でリモート アクセス制御を実装する方法

<<:  MySQLのinnodb_data_file_pathパラメータを変更する際の注意事項

>>:  Vue が Web オンラインチャット機能を実現

推薦する

Win10 構成 Tomcat 環境変数チュートリアル図

設定する前に、次の操作を行う必要があります。 1. まずjdk bloggerをインストールします。...

Dockerを使用してLaravelおよびVueプロジェクトの開発環境を構築する詳細な説明

この記事では、Docker で構築された Laravel および Vue プロジェクトの開発環境を紹...

DockerはMysql、.Net6、Sqlserverなどのコンテナをデプロイします

目次CentOS 8にDockerをインストールする1. yumを更新する2. containerd...

JS配列インデックス検出におけるデータ型の問題の詳細な説明

WeChat アプレット プロジェクトを書いていたとき、その中に「都市選択」機能がありました。作者は...

Docker: /etc/default/docker の DOCKER_OPTS パラメータを変更しても反映されない

デフォルトでは、 /etc/default/docker 設定は有効になりません。docker 環境...

きれいなJavaScriptコードの書き方を教える記事

目次1. 変数意味のある名前を使う不必要なコンテキストを追加しないようにするハードコードされた値を避...

XHTML 入門チュートリアル: よく使われる XHTML タグ

<br />記事と同様に、Web ページにも明確な段落と重要度の異なるタイトルが必要です...

JavaScript配列の一般的なメソッドの詳細な説明

目次元の配列を変更しない方法1. 連結文法:パラメータ:戻り値: 2. 参加する文法:パラメータ:戻...

JavaScript配列重複排除の詳細な説明

目次1. アレイ重複排除2. 配列内のオブジェクトの重複排除3. 配列内の同じフィールドに基づいて別...

WindowsシステムでMySQLデータベースを完全にアンインストールして、MySQLを再インストールします

1. コントロールパネルで、MySQLのすべてのコンポーネントをアンインストールします。コントロール...

Dockerはコンテナにポートを動的に公開します

コンテナのIPアドレスを表示するdocker examine <コンテナ名またはID> ...

Ubuntu ブート自動起動サービス設定

Ubuntu でサービスを作成し、自動的に起動する方法: 1. [/lib/systemd/syst...

HTML+CSS で div タグの右上隅に削除アイコンを追加するサンプルコード

1. 要件の説明Divタグの右上隅に削除アイコンを表示します2. 実装html、CSS 3. 参照コ...

MySQL における引用符とバックティックの違いと使い方の詳細な説明

序文そこでこのブログを書きました。このブログでは大物の記事からいくつかの知識も推奨しています。侵害が...

Windows Server 2016 に MySQL 5.7.19 の解凍バージョンをインストールするための詳細なチュートリアル

MySQL 5.7.19 winx64 解凍版のインストールチュートリアルを収録しています。具体的な...