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データベースを操作する方法の詳細な説明

推薦する

EclipseにTomcatサーバー設定を追加する方法

1. ウィンドウ -> 設定を選択してEclipseの設定パネルを開きます。 2. 「設定」ウ...

Linux 環境変数の設定方法のまとめ (.bash_profile と .bashrc の違い)

Linux では、アプリケーションをダウンロードしてインストールすると、起動時にアプリケーション名...

VirtualBox でのホストオンリー + NAT モードのネットワーク構成

VirtualBoxのHost Only+NATモードのネットワーク構成は参考用です。具体的な内容は...

Docker ファイルの保存パス、ポート マッピング操作モードの変更

コンテナの起動コマンドを取得する方法コンテナはすでに作成されていますが、その起動パラメータ(データが...

WeChat アプレットのカスタム スクロール ビューのサンプル コード

ミニプログラムカスタムスクロールビュースクロールバーさっそくレンダリングを見てみましょうレンダリング...

MySQL の最適化: サブクエリの代わりに結合を使用する

サブクエリの代わりにJOINを使用するMySQL はバージョン 4.1 以降で SQL サブクエリを...

MySQL 5.7.27 のダウンロード、インストール、設定に関する詳細なチュートリアル

目次1. ダウンロード手順2. 環境変数を設定する3. my.iniファイルを設定する4. MySQ...

CentOS7 で MySQL データベースにリモート接続できない理由と解決策

序文最近、仕事で問題が発生しました。 Centos7 システムでは MySQL にリモート接続できな...

Dockerfile をベースに Zabbix 監視システムのコード例を作成する

forループを使用してZabbixイメージをコンテナにインポートします。 n を `ls *.tar...

クラウドサーバーはBaotaを使用してPython環境を構築し、Djangoプログラムを実行します。

目次PagodaをインストールするPythonランタイム環境を構成するPythonをインストールする...

入力選択スタイルを変更する CSS 疑似クラスのサンプルコード

注: この表はW3Schoolチュートリアルから引用したものです疑似要素の分類と機能: 入力選択スタ...

CSS3 フィルター属性の使い方の紹介

1. はじめにフロントエンドページのアニメーション効果を記述する場合、filter 属性は多かれ少な...

CSS フロントエンドの知識ポイントのまとめ(必読)

1. CSS の概念: (カスケーディング スタイル シート)利点: 1. コンテンツとプレゼンテ...

Vue3+TypeScriptは再帰メニューコンポーネントの完全な例を実装します

目次序文必要成し遂げる最初のレンダリングメニュー項目をクリックしますスタイルの区別デフォルトのハイラ...