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

推薦する

CentOS 7 で Python を 3.6.6 にアップグレードした後に発生する yum エラー問題の解決方法の概要

最近、テスト サーバーのオペレーティング システムを Cent0S 7.5 にアップグレードし、Py...

MySQLで関連テーブルを削除する実用的な方法

MySQL データベースでは、テーブルが互いに関連付けられた後は、それらを任意に削除することはできま...

Docker 大規模プロジェクトのコンテナ化変革

仮想化とコンテナ化は、クラウドベースのプロジェクトでは避けられない 2 つの問題です。仮想化は純粋な...

Windows Server 2008 のサーバー パフォーマンス監視に関するチュートリアル

次に、ログ管理、ログのアーカイブ、ログのトラブルシューティング、イベントの転送と収集のためのコンピュ...

Nodeはリクエスト追跡にasync_hooksモジュールを使用します

async_hooks モジュールは、Node.js バージョン 8.0.0 に正式に追加された実験...

HTTP ステータス コード

このステータス コードは、リクエストのステータスに関する情報を提供し、サイトとリクエストされたページ...

JQuery を放棄すべきでしょうか?

目次序文jQuery 以外の場合は何を使うのでしょうか? DOMとイベントAJAX リクエスト要約す...

フローティング要素が親要素の高さを崩す原因と解決策の詳細な説明

フローティング要素は、親要素の高さを縮小します。要素を float float:left/right...

docker pullがリセットされる問題を解決する

この記事では、docker pull がリセットされる問題を解決する方法を紹介し、皆さんと共有します...

Nodejs で WeChat アカウント分割を実装するためのサンプルコード

会社のビジネスシナリオでは、WeChat アカウント分割機能を使用する必要があります。公式 Web ...

ウェブページのコアコンテンツ(画像とテキスト)の視覚的表現の紹介

情報の最適化と改良は常にデザインの最初のステップです。 「これは百度アライアンスユーザーエクスペリエ...

Java+Tomcat 環境の展開とインストールのプロセス図

次に、Centos7 に Java+Tomcat をインストールします。インターネット上には多くの記...

WeChatアプレットがジグソーパズルゲームを実装

この記事では、WeChatアプレットでジグソーパズルゲームを実装するための具体的なコードを参考までに...

ウェブサイトのコンテンツの100~1%はナビゲーションである

ウェブサイトでは、コンテンツの(100-1)%がナビゲーションです1. ジェシー・ジェームズ・ギャレ...

Alpine Dockerイメージフォント問題解決操作

1. フォントを実行し、フォント フォルダーを開いて、使用するフォント ファイルを見つけます。 2....