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 オンラインチャット機能を実現

推薦する

Python3.6-MySql 挿入ファイルパス、バックスラッシュをなくす解決策

以下のように表示されます。上記のように、置き換えるだけです。 Python3.6-MySql でファ...

WeChatアプレットは記録機能を実装します

この記事では、WeChatアプレットのレコード機能を実装するための具体的なコードを参考までに紹介しま...

Vue cli開発に基づく外部コンポーネントVantのデフォルトスタイルの変更の詳細な説明

目次序文1. 少ない2. コンポーネントをインポートする3. 設定ファイルを変更するステップ1: l...

vue プロジェクトのデプロイと Nginx でのプロキシ設定の問題の分析

1. nginxをインストールして起動する # nginxをインストールする sudo apt-ge...

ウェブページの幅を携帯電話の画面(ビューポート)の幅に自動的に適応させる実装コード

一般的な書き方は次のとおりです。 XML/HTML コードコンテンツをクリップボードにコピー<...

Tomcat でよく使われるフィルターの詳細な説明

目次1. クロスドメインフィルタ CorsFilter 1.1 設定例1.2 パラメータの説明2. ...

USE DB 輻輳に対する MySQL ソリューションの詳細な説明

障害に遭遇すると、障害の根本的な原因を考えるのではなく、障害を解決する方法を考えることがよくあります...

CentOS での samba フォルダ共有サーバー構成の詳細な説明

1. はじめに最近、CentOS での開発には多くの不便があることがわかりました。Windows/M...

Docker環境を構築する簡単な方法

まず、Docker とは何かを理解しましょう。 Docker は、アプリケーションをデプロイするため...

MySQL 5.7.17 とワークベンチのインストールと設定のグラフィックチュートリアル

この記事では、MySQL 5.7.17ワークベンチのインストールと設定方法を参考までに紹介します。具...

JS クロスドメイン ソリューション React 構成 リバース プロキシ

クロスドメインソリューションjsonp (get をシミュレート) CORS (クロスオリジンリソー...

js は、Element の入力コンポーネントのいくつかの機能を実装し、それをコンポーネントにカプセル化します (サンプルコード)

現在実装されているのは、基本的な使用方法、クリア可能なボックス、パスワードボックスです。参考リンク:...

Linux で MongoDB のリモート自動バックアップを実装する方法

序文古いプロジェクトを引き継ぐ苦労 - MongoDB クラスターの学習と構築に関する前回の記事を読...

MySQL で JSON 形式のフィールドをクエリする詳細な説明

作業開発プロセス中に、顧客の名前、携帯電話番号、ID カード、およびドキュメントの種類を動的に保存す...

mysql data_dirの変更によって発生するエラー問題を解決する

今日は、新しく購入した Alibaba Cloud ECS 環境 (Ubuntu 16.04 LTS...