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

推薦する

MySQL 5.7.18 のインストール中に MySQL サービスの起動に失敗する問題の解決策

MySQL は非常に強力なリレーショナル データベースです。しかし、初心者の中には、インストールや設...

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

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

MySQL 8.0 WITH クエリの詳細

目次MySQL 8 の WITH クエリについて学ぶ1. 例3. 練習するMySQL 8 の WIT...

期間限定フラッシュセール機能を実現するJavaScriptタイマー

この記事では、期間限定フラッシュセール機能を実装するためのJavaScriptの具体的なコードを参考...

CentOS7.6にMYSQL8.0をインストールする詳細な手順

1. 一般的に、CentOS では mariadb がデフォルトでインストールされているため、まず ...

Node の SMS API で検証コード ログインを実装するためのサンプル コード

1. ノードサーバーのセットアップ + データベース接続ここでの操作は比較的簡単でわかりやすいです。...

Linux ディスク パーティションの実装の原理と方法の分析

覚えて: IDE ディスク: 最初のディスクは hda、2 番目のディスクは hdb...最初のディ...

Vue-routerルーティングの使い方

目次1. 説明2. インストール3. テスト1. 説明Vue Router は、Vue.js の公式...

MySQL 5.7 のインストールと設定のチュートリアル

この記事では、参考までにMySQLのインストールと設定のチュートリアルを紹介します。具体的な内容は次...

Vue のクロスドメイン問題の処理と解決策の概要

ネットワークリクエストを送信すると、次の保存情報が表示されます。おめでとうございます。ドメインを越え...

Mysql general_log をクリーンアップする方法の概要

方法1: グローバル general_log を 'OFF' に設定します。 テーブ...

Linux での rpm、yum、ソースコードの 3 つのインストール方法の詳細な紹介

第1章 ソースコードのインストールRPM パッケージは特定のシステムとプラットフォームに応じて指定さ...

HTML要素によるFlashブロックの詳細な例

コードをコピーコードは次のとおりです。 wmode パラメータ:透過モード: z-indexを使用し...

CD コマンドを使わずに Linux でディレクトリ/フォルダに入る方法

ご存知のとおり、cd コマンドがないと、Linux でディレクトリを切り替えることはできません。それ...

select count() と select count(1) の違いと実行方法

Count(*) または Count(1) または Count([column]) は、おそらく S...