Linux での Firewalld の高度な設定の使用に関する詳細な説明

Linux での Firewalld の高度な設定の使用に関する詳細な説明

IPマスカレードとポート転送

Firewalldは2種類のネットワークアドレス変換をサポートしています

IPアドレスマスカレード

  • LAN内の複数のアドレスが1つのパブリックネットワークアドレスを共有してインターネットにアクセスすることを実現できます。
  • IPアドレススプーフィングはIPv4のみをサポートし、IPv6はサポートしません。
  • デフォルトでは、外部ゾーンでアドレス マスカレードが有効になっています。

ポート転送 (Forward-port)

  • 宛先アドレス変換またはポートマッピングとも呼ばれる
  • ポート転送を使用すると、指定された IP アドレスとポートからのトラフィックは、同じコンピューターの別のポート、または別のコンピューターのポートに転送されます。

アドレスマスカレード設定

指定エリアのアドレスマスカレード機能を追加

ファイアウォール-cmd [--permanent] [--zone=ゾーン] --add-masquerade [--timeout 秒]
 //--timeout=seconds: 一定時間後にこの関数を自動的に削除します

指定されたエリアのアドレスマスカレードを削除する

ファイアウォールコマンド [--permanent] [--zone=ゾーン] --remove-masquerade

指定エリアでアドレスマスカレード機能が有効になっているか確認する

ファイアウォールコマンド [--permanent] [--zone=zone] --query-masquerade

ポート転送設定

ポート転送設定の一覧

ファイアウォールコマンド [--permanent] [--zone=zone] --list-forward-ports

ポート転送ルールの追加

ファイアウォールコマンド [--permanent] [--zone=ゾーン] --add-forward-port=port=portid[-portid]:proto=プロトコル[:toport-portid[-portid]][:toaddr-address[/mask]][--timeout=秒]

ポート転送ルールの削除

ファイアウォールコマンド [--permanent] [--zone=ゾーン] --remove-forward-port=port=portid[-portid]:proto=プロトコル[:toport=portid[-portid]][:toaddr=アドレス[/マスク]]

ポート転送ルールのクエリ

ファイアウォールコマンド [--permanent] [--zone=ゾーン] --query-forward-port-port-portid[-portid]:proto=プロトコル[:toport-portid[-portid]][:toaddr=アドレス[/マスク]]

ファイアウォール直接ルール

直接インターフェース

  • 管理者は、Firewalld によって管理される領域に挿入する iptables、ip6tables、ebtables ルールを手動で記述できます。
  • これは、firewall-cmdコマンドの--directオプションによって実現されます。
  • 明示的な挿入方法に加えて、直接ルールが最初に一致します

カスタムルールチェーン

Firewalldはルールが設定されているゾーンのカスタムルールチェーンを自動的に作成します

  • IN エリア名 deny: 「IN エリア名_allow」のルールよりも優先される deny ステートメントを格納します。
  • INエリア名allow: allowステートメントを格納する

TCP/9000 ポートへの受信トラフィックを許可する

irewall-cmd --direct --add-rule ipv4 フィルター IN work_ allow 0 -p tcp --dport 9000 j ACCEPT
  • IN work_ allow: 作業領域に一致するルールチェーン
  • 0: ルールの先頭に配置される、最も優先度の高いルールを表します。
  • --permanentオプションを追加して永続的な設定を示すことができます

すべての直接ルールを照会する

ファイアウォールコマンド --direct --get-all-rules
ipv4 フィルター IN_ work _allow 0 -p tcp --dport 9000 -j ACCEPT

--permanentオプションを追加すると永続的な設定を表示できます

ファイアウォールのリッチ言語ルール

豊かな言語

表現力豊かな設定言語。iptables 構文を理解する必要はありません。

基本的な許可/拒否ルールの表現、ログ記録(syslogおよびauditd用)、ポート転送、マスカレード、レート制限の設定に使用されます。

ルール [family="<ルール ファミリー>"]
 [ ソース アドレス="<アドレス>" ["True" を反転] ]
 [ 宛先アドレス="<アドレス>" [invert="True"] ]
 [ <要素> ]
 [ log [prefix="<プレフィックステキスト>"] [level="<ログレベル>"] [limit value="レート/期間"] ]
 [ 監査 ]
 [ 受け入れ/拒否/ドロップ ]

リッチ言語ルールコマンドの理解

豊富な言語ルールを処理するためのファイアウォール cmd の共通オプション

オプション例示する
-add-rich-rule= 'ルール'指定されたエリアにルールを追加します。エリアが指定されていない場合は、デフォルトのエリアが使用されます。
--remove-rich-rule= 'ルール'指定されたエリアからルールを削除します。エリアが指定されていない場合は、デフォルトのエリアが使用されます。
--query-rich-rule= 'ルール'指定されたゾーンに RULE が追加されたかどうかを照会します。ゾーンが指定されていない場合は、デフォルトのゾーンが使用されます。 <br/>ルールが存在する場合は0を返し、存在しない場合は1を返します。
--list-rich-rules指定されたリージョンのすべてのリッチ ルールを出力します。リージョンが指定されていない場合は、デフォルトのリージョンが使用されます。

リッチ言語ルール表示モードを設定しました

ファイアウォールコマンド --list-all
ファイアウォールコマンド --list-all-zones
--list-rich-rules

豊かな言語は具体的な文法を支配する

送信元、送信先、要素、サービス、ポート、プロトコル、icmp-block、masquerade、forward-port、log、audit、accept、reject、drop

192.168.8.101 からのすべてのトラフィックを拒否する

ファイアウォール-cmd --permanent --zone=work --add-rich-rule='ルール ファミリ=ipv4 送信元アドレス=192.168.8.101/32 拒否'

daddress オプションを source または destination とともに使用する場合は、 family= ipv4 | ipv6 を使用する必要があります。

192.168.1.0/24 サブネット ポート 8000-9000 からの TCP トラフィックを受け入れる

ファイアウォール-cmd --permanent --one=work --add-rich-rule='ルール ファミリ=ipv4 送信元アドレス=192.168.1.0/24 ポート ポート=8000-9000 プロトコル=tcp accept'

すべてのICMPパケットをドロップする

ファイアウォール-cmd --permanent --add-rich-rule='ルール プロトコル値=icmp ドロップ'

192.168.8.1からのhttpトラフィックを受け入れ、ログを記録する

ファイアウォール-cmd --add-rich-rule='ルール ファミリ=ipv4 ソース アドレス=192.168.8.1/32 サービス名="http" ログ レベル=notice プレフィックス= "NEW HTTP" 制限値 "3/s" 受け入れ'

192.168.8.1 で http にアクセスし、/var/log/messages を確認します。

4月16日 17:09:55 サーバーカーネル: 新しいHTTP IN=ens33 OUT=
MAC=00:0c:29:69:01:c4:00:50:56:c0:00:08:08:00 SRC=192.168.8.1 DST=192.168.8.131
LEN=52 TOS=0xOO PREC=0x00 TTL =64 ID=20582 DF PROTO=TCP SPT=65289 DPT=80
ウィンドウ=8192 RES=0x00 SYN URGP=0
4月16日 17:09:55 サーバーカーネル: 新しいHTTP IN=ens33 OUT=
MAC=00:0c:29:69:01:c4:00:50:56:c0:00:08:08:00 SRC=192.168.8.1 DST=192.168.8.131
LEN=52 TOS=0x0O PREC=0x0O TTL =64 ID=20590 DF PROTO=TCP SPT=65291 DPT=80
ウィンドウ=8192 RES=0x00 SYN URGP=0
4月16日 17:09:55 サーバーカーネル: 新しいHTTP IN=ens33 OUT=
MAC=00:0c:29:69:01:c4:00:50:56:c0:00:08:08:00 SRC=192.168.8.1 DST=192.168.8.131
LEN=52 TOS=0x0O PREC=0x0O TTL =64 ID=20602 DF PROTO=TCP SPT=65292 DPT=80
ウィンドウ=8192 RES=0x00 SYN URGP=0

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

以下もご興味があるかもしれません:
  • iptables および firewalld ツールを使用して Linux ファイアウォール接続ルールを管理する
  • Linux でのデュアル ネットワーク カードの Firewalld の設定プロセス (推奨)

<<:  Springboot は、vue+echarts のフロントエンドとバックエンドのインタラクションを使用して、動的なドーナツ チャートを実現します。

>>:  CMDコマンドを使用してMySqlデータベースを操作する方法の詳細な説明

推薦する

React Diff Principle の詳細な分析

目次差分アルゴリズムレイヤーごとの比較同じタイプのコンポーネントを比較する同じタイプの要素の比較子ノ...

Web ページのデザインを学ぶときに習得すべきコードは何ですか?

この記事では、Web ページ制作を学ぶ過程で習得すべきテクニックの一部を詳しく紹介します。これらの内...

Vue で CSS カスタム変数を使用する方法

目次CSS カスタム変数機能は古くから存在していますが、実際の開発ではあまり使用されていません。その...

MySQLデータベースのリアルタイムバックアップの知識ポイントを詳しく解説

序文リアルタイムのデータベース バックアップの必要性は非常に一般的です。MySQL 自体はレプリケー...

MySQL シリーズ: MySQL リレーショナル データベースの基本概念

目次1. 基本概念2. データベース管理技術の開発3. リレーショナルデータベース(RDBMS)の概...

CentOS 7.0 (mysql-5.7.21) で複数の MySQL インスタンスを起動する方法

設定手順Linux システム: CentOS-7.0 MySQL バージョン: 5.7.21 Lin...

CSS で高さが不明な垂直中央揃えを実装する

この記事では主に、高さが不明な垂直方向の中央揃えを CSS で実装する方法を紹介し、皆さんと共有しま...

Vueは下部のポップアップウィンドウで複数選択を実装します

この記事の例では、下部のポップアップウィンドウで複数選択を実装するためのVueの具体的なコードを共有...

HTML は CSS スタイルと JS スクリプトを動的に読み込みます。例

1. スクリプトを動的に読み込むウェブサイトの需要が高まるにつれて、スクリプトの需要も徐々に増加しま...

CSS ハック \9 と \0 は IE11\IE9\IE8 のハッキングには機能しない可能性があります

Web ページやフォームを設計するたびに、さまざまなブラウザ、特に IE ファミリの互換性の問題に悩...

チャットバブル効果を実現するCSS

1. レンダリングJD効果シミュレーション効果 2. 原則高さと幅が0のボックスを用意しますこのボ...

Linuxネットワーク構成ツールの使用

この記事では、RHEL8 のネットワーク サービスとネットワーク構成ツール、およびネットワーク ファ...

Vueプロジェクトでよく使われる実践的なスキルのまとめ

目次序文1. マルチレベルのデータとイベントの配信には$attrsと$listenersを使用する2...

Three.js が Facebook Metaverse 3D ダイナミック ロゴ効果を実現

目次背景メタバースとは何ですか?成果を達成するトライアル 1: THREE.TorusGeometr...

MySQL の非主キー自己増分使用例の分析

この記事では、例を使用して、MySQL の非主キーの自己増分の使用方法を説明します。ご参考までに、詳...