Linuxファイアウォールファイアウォール

Linuxファイアウォールファイアウォール

ファイアウォールディレクティブ

リージョナルインターフェイス
グラフィカルインターフェイスfirewall-config
コマンドツールfirewall-cmd

iptablesコマンド

4つのテーブルと5つのチェーン
データ転送NAT(SNAT、DNAT)

Firewalld

  • ネットワーク接続とネットワークエリアで定義されたインターフェイスセキュリティレベルをサポートする動的ファイアウォール管理ツール
  • IPv4、IPv6ファイアウォールの変更設定とイーサネットブリッジをサポート
  • サポートサービスまたはアプリケーションがファイアウォールルールインターフェイスを直接追加する
  • 2つの構成モードがあります
    実行時構成(一時構成、再起動失敗)
    永続構成

DMZ非武装地帯

バックツーバックファイアウォール(デュアルファイアウォールモード)
ハードウェアファイアウォール

ファイアウォールは4層のトランスポート層に属し
、2層のデータリンク層にも作用します

トラフィッククリーニングハニーポット
セキュリティナイト(トロイの木馬対策)グリーンネット(機密情報のフィルター)クラウドシールド

firewalldとiptablesの関係


Linuxカーネルにあるnetfilter のパケットフィルタリング機能。Ixiaは
Linuxファイアウォールのカーネルモード
firewalld / iptablesを
呼び出しました。CentOS7でファイアウォールルールを管理するデフォルトのツール
はLinuxファイアウォールのユーザーモードと呼ばれています。

ここに画像の説明を挿入

firewalldとiptablesの違い

Firewalld iptables
設定ファイル / user / lib / firewalld / / etc / firewalld / / etx / sysconfig / iptables
ルールの変更 すべての戦略を更新する必要はなく、現在の接続が失われることはありません すべてのポリシーを更新し、接続を失う必要があります
ファイアウォールのタイプ 動的ファイアウォール 静的ファイアウォール

firewalldネットワークゾーン

ゾーンの
概要ゾーンは、ホストに入るセキュリティゲートのようなものです。各ゾーンには異なる制限があります
。1つ以上のゾーンを使用できますが、アクティブゾーンは少なくとも送信元アドレスまたはインターフェイスに関連付ける必要があります。
デフォルトでは、パブリックゾーンがデフォルトゾーンであり、すべてのゾーンが含まれていますインターフェース(ネットワークカード)
ここに画像の説明を挿入

Firewalldデータ処理フロー

ソースアドレス検証データソース
領域の特定領域に関連付けられたソースアドレスがルールによって指定された場合に実行される
送信元アドレスが着信ネットワークインタフェース領域を使用して、特定の領域に関連付けられていない場合
やルールが領域を指定実行
ネットワーク場合インターフェースが特定のエリアに関連付けられていない場合、デフォルトのエリアが使用され、エリアによって指定されたルールが実行されます

ランタイム構成

実装は有効になり、ファイアウォールが再起動されるか構成
再ロードされるまで続行されます。既存の接続は中断されません。
サービス構成は変更できません。

永続的な構成

firewalldが設定を再起動または再読み込みしない限り、すぐには有効になりません。
既存の接続が中断されます。
サービスの設定は変更できます

firewalld-configグラフィカルツール

firewalld-cmdコマンドラインツール
/ etc / firewalld /
の構成ファイルは/ etc / fiewalld /の構成を優先します。構成ファイルがない場合は、/ usr / lib / firewalld /
/ etc / の構成を使用しますfirewalld /:ユーザー定義の構成ファイル。必要に応じて/ usr / lib / firewalld /からコピーできます
。/ usr / lib / firewalld /:デフォルトの構成ファイル。変更しないことをお勧めします。デフォルトの構成に復元する場合は、/ etcを直接削除できます。 / firewalld /での設定

ランタイム構成/永続構成
ここに画像の説明を挿入

ファイアウォールをリロードし
て永続的な構成変更し、有効にします
ここに画像の説明を挿入

ネットワークカードを指定されたエリアに関連付けます
ここに画像の説明を挿入

デフォルトの領域を変更します
ここに画像の説明を挿入

接続状態
ここに画像の説明を挿入

「エリア」タブ
「サービス」サブタブ
ここに画像の説明を挿入

「ポート」サブタブ
ここに画像の説明を挿入

「契約」サブタブ
ここに画像の説明を挿入

「送信元ポート」サブタブ
ここに画像の説明を挿入

「変装」サブタブ
ここに画像の説明を挿入

「ポート転送」サブタブ
ここに画像の説明を挿入

「ICMPフィルター」タブ
ここに画像の説明を挿入

「サービス」タブ
「モジュール」サブタブ
ここに画像の説明を挿入

「宛先アドレス」サブタブ
ここに画像の説明を挿入

実験

ラボ環境
ここに画像の説明を挿入

要件の説明
ホストからpingサーバー
へのアクセスを禁止192.168.20.20ホストのみがsshサービスにアクセスできるようにする
すべてのホストがApacheサービスにアクセスできるようにする

分析
ここに画像の説明を挿入

ブロックブロック
dmz非武装地帯は、高セキュリティと低セキュリティの間にあります。
ドロップゾーン
外部外部ゾーン
ホーム
内部内部
パブリックパブリック
信頼できる
作業

実験ステップ

  • ネットワークパラメータ設定
    [root @ localname〜]#ifconfig ens33
    ここに画像の説明を挿入

[root @ localname〜]#systemctl status firewalld.service
ここに画像の説明を挿入

  • firewalldファイアウォールを開き
    ます[root @ localname〜]#firewall-config //ファイアウォールのグラフィカル管理ツールを実行します

  • 作業領域を構成する
    ここに画像の説明を挿入ここに画像の説明を挿入
    ここに画像の説明を挿入

  • パブリックエリアを構成する
    ここに画像の説明を挿入

  • ことを確認し
    ます。[root @ localhostの〜]#yumをインストールhttpdの-y
    [ルート@ localhostの〜]#はHTTPDを起動systemctl
    二192.168.20.20の仮想マシン上で
    ここに画像の説明を挿入

ここに画像の説明を挿入

ファイアウォールコマンド

firewalldサービスの開始、停止、および表示
CentOS7システムをインストールすると、firewalldおよびグラフィカルツールのfirewall-configが自動的にインストールされます。
以下のコマンドを実行してfirewalldを起動し、自己起動状態にしてください。
[root @ localhost〜]#systemctl start firewalld //
firewalldを起動します[root @ localhost〜]#systemctl enable firewalld // bootd後にFirewalldが自動的に起動するように設定します
View Firewalldの実行ステータスを表示します
[root @ localhost〜]#systemctl status firewalld
●firewalld.service -firewalld-dynamicファイアウォールデーモン
ロード済み:ロード済み(/usr/lib/systemd/system/firewalld.service; enabled;ベンダープリセット:有効)
アクティブ:金曜日以降アクティブ(実行中)2020-07-31 08:32:05 CST; 6時間前
ドキュメント:man:firewalld(1)
メインPID:8762(firewalld)
タスク:2
CGroup:/system.slice/firewalld.service
└─8762/ usr / bin / python -Es / usr / sbin / firewalld --nofork --nopid

7月31日08:32:05 localname systemd [1]:firewalld-動的ファイアウォールデーモンを起動しています…
7月31 08:32:05 localname systemd [1]:firewalld-動的ファイアウォールデーモンを起動しました。
[root @ localhost〜]#firewall-cmd --state
running

firewalldを無効にします
[root @ localhost〜]#systemctl stop firewalld // firewalldを停止します
[root @ localhost〜]#firewall-cmd --state
not running
[root @ localhost〜]#systemctl disable firewalld //起動時にfirewalldが自動的に起動しないように設定しました
削除済みsymlink /etc/systemd/system/multi-user.target.wants/firewalld.service。symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.serviceを
削除しました。

事前定義情報を取得する
ファイアウォール-cmdを事前に定義された情報は、主に3つのタイプが含まれます。使用可能なゾーン、利用可能なサービス、および利用可能なICMPブロック
。種類を
ゾーン
[ルート@ localhostの〜]#ファイアウォール-CMD --get-ゾーン//表示は、事前定義されました地域
ブロックは、外部の家の内部国民が信頼できるドロップDMZ作業
サービスを
[ルート@ localhostの〜]#ファイアウォール -cmd --get-サービス// 定義済みのサービスを表示
RH-Satellite-6 amanda-client amanda-k5-client bacula bacula-client bgp bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc ceph ceph-mon cfengine condor-collector ctdb dhcp dhcpv6 dhcpv6-client dns docker-registry docker- swarm dropbox-lansync elasticsearch freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp ganglia-client ganglia-master git gre high-availability http https imap imaps ipp ipp-client ipsec irc ircs iscsi-target jenkins kadmin kerberos kibana klogin kpasswd kshell ldap ldaps libvirt libvirt-tls managesieve mdns minidlna mongodb mosh mountd ms-wbt mssql murmur mysql nfs nfs3 nmea-0183 nrpe ntp openvpn ovirt-imageio ovirt-storageconsole ovirt-vmconsole pmcd pmproxy pmwebapi pprpproxy proxyproxy proxy webproxy proxy webproxy proxy webproxy pmwebapi quassel radius redis rpc-bind rsh rsyncd samba samba-clientsane sip sips smtp smtp-submission smtps snmp snmptrap spideroak-lansync squid ssh syncthing syncthing-gui synergy syslog syslog-tls telnet tftp tftp-client tinc tor-socks transmission-client upnp-client vdsm vnc-server wbem-https xmpp-bosh xmpp -client xmpp-local xmpp-server zabbix-agent zabbix-server
ICMPタイプの表示
[root @ localhost〜]#firewall-cmd --get-icmptypes //定義済みのICMPタイプを表示
アドレスに到達できない不正なヘッダー通信が禁止された宛先に到達できないエコー応答エコー要求フラグメンテーションが必要なホスト優先順位違反ホストが禁止されているホストリダイレクトホストが不明なホストに到達できないIPヘッダーが不正な近隣の広告近隣要請ネットワーク-禁止されたネットワークリダイレクトネットワーク-不明なネットワーク-到達不能なルートなしのパケット-大きなパラメーター-問題のポート-到達不能な優先順位-カットオフプロトコル-到達不能なリダイレクトが必要-オプション-欠落しているルーター-広告-ルーター要請-ソース-クエンチソース-ルート- time-exceeded timestamp-reply timestamp-request tos-host-redirect tos-host-unreachable tos-network-redirect tos-network-unreachable ttl-zero-during-reassembly ttl-zero-during-transit unknown-header-type unknown -オプション

firewall-cmd --get-icmptypesコマンドの実行結果における各種ブロッキング種別の意味は以下のとおりです。
destination-unreachable:宛先アドレスに到達できません。
エコー応答:応答応答(ポン)。
パラメータの問題:パラメータの問題。
リダイレクト:リダイレクト。
router-advertisement:ルーター通知。
router-solicitation:ルーター要請。
source-quench:ソースクエンチ。
time-exceeded:タイムアウト。
timestamp-reply:タイムスタンプ応答。
timestamp-request:タイムスタンプ要求。

ゾーン管理
デフォルトゾーンfirewall-cmd --get-default-zoneデフォルトゾーンを
設定しますfirewall-cmd --set-default-zone =
すべてのアクティブなゾーンを表示しますfirewall-cmd --get-active-zones
指定されたインターフェースバインディングを表示しますゾーンfirewall-cmd --get-zone-of-interface = <インターフェース
は、ゾーンを指定されたポートにバインドしますfirewall-cmd --zone = --add-interface =
ポートを指定されたゾーンに置き換えますfirewall-cmd --zone = --change-interface =
指定したゾーンのポートを削除しますfirewall-cmd --zone = --remove-interface =
すべてのゾーンとそのルールを表示しますfirewall-cmd --list-all-zones
指定したゾーンのすべてのルールを表示しますfirewall-cmd --zone = --list-all

現在のシステムのデフォルト領域を表示します。
[root @ localhost〜]#firewall-cmd --get-default-zone
public
デフォルトゾーンのすべてのルールを表示します
[root @ localhost〜]#firewall-cmd --list-all
public(active)
target:default
icmp-block-反転:
インターフェースなし:ens33
ソース:
サービス:ssh dhcpv6-client
ポート:
プロトコル:
マスカレード:
転送ポートなし:
ソースポート:
icmp-blocks:
リッチルール:
ネットワークインターフェースens33対応領域を表示
[root @ localhost〜]#ファイアウォール-cmd --get-zone-of-interface = ens33
public
ネットワークインターフェースens33に対応するゾーンを内部ゾーンに変更します
[root @ localhost〜]#firewall-cmd --zone = internal --change-interface = ens33
インターフェースはNetworkManagerの制御下にあり、ゾーンを「内部」に設定します。
成功
[root @ localhost〜]#firewall-cmd --zone = internal --list-interfaces
ens33
[root @ localhost〜]#firewall-cmd --get-zone-of-interface = ens33
internal

すべてのアクティブなゾーンを表示する
[root @ localhost〜]#firewall-cmd --get-active-zones
内部
インターフェース:ens33

サービス管理
指定されたゾーンでアクセスが許可されているすべてのサービスを表示しますfirewall-cmd [–zone =] --list-services
は、指定されたゾーン設定でアクセスが許可されている特定のサービスです。firewall-cmd [–zone =] --add-service =
指定された削除ゾーンへのアクセスを許可するように設定されている特定のサービスfirewall-cmd [--zone =] --remove-service =
指定されたゾーンでアクセスを許可されているすべてのポート番号を表示しますfirewall-cmd [--zone =] --list-ports
指定されたゾーンに追加しますポートfirewall-cmd [–zone =] --add-port = [-] /
指定されたエリアのポートを削除しますfirewall-cmd [–zone =] --remove-port = [-] /
指定されたエリアのすべての拒否されたアクセスを表示しますICMPタイプfirewall-cmd [--zone =] --list-icmp-blocks
は、ICMPタイプfirewall-cmd [--zone =] --add-icmp-block =
指定されたゾーンの拒否されたアクセスを削除しますICMPタイプfirewall-cmd [–zone =] --remove-icmp-block = <icmptype

デフォルトゾーンに許可するサービスを設定します
[root @ localhost〜]#firewall-cmd --list-services //
デフォルトゾーンからのアクセスを許可するすべてのサービスを表示しますデフォルトゾーン( 'public')で操作を実行して
いますが、接続/インターフェースは
ゾーンinternal 」にあります(--get-active-zonesを参照)。ほとんどの場合、-zone = internalオプションを使用する必要があります。

ssh dhcpv6-client
[root @ localhost〜]#firewall-cmd --add-service = http //设置石认区域承许访问http服务
デフォルトゾーン( 'public')で操作を実行して
いますが、接続/インターフェースゾーン「内部」にあります(--get-active-zonesを参照)。
ほとんどの場合、-zone = internalオプションを使用する必要があります。

成功
[root @ localhost〜]#firewall-cmd --add-service = https //设置設认区域許可许访问https服务
デフォルトゾーン( 'public')上で操作を実行して
いますが、接続/インターフェースはゾーン内にあります'internal'(--get-active-zonesを参照)
ほとんどの場合、-zone = internalオプションを使用する必要があります。

success
[root @ localhost〜]#firewall-cmd --list-services
デフォルトゾーン( 'public')で操作を実行して
いますが、接続/インターフェースはゾーン 'internal'にあります(--get-active-を参照)ゾーン)
ほとんどの場合、-zone = internalオプションを使用する必要があります。

ssh dhcpv6-client http https

内部ゾーンに許容されるサービスを設定し
ます。[root @ localhostの〜]#ファイアウォール-CMD --zone =内部--add-サービス= mysqlの//設定MySQLのサービスへのアクセスを許可するために、内部ゾーン
の成功
[ルートを@ localhostの〜]#ファイアウォール-CMD --zone = internal --remove-service = samba-client //内部ゾーンを設定して、samba-clientサービスへのアクセスを許可します
成功
[root @ localhost〜]#firewall-cmd --zone = internal --list-services //デフォルトを表示ゾーンで許可されているすべてのサービス
ssh mdns dhcpv6-client mysql

ポート管理
サービスの構成時に、事前定義されたネットワークサービスをサービス名で構成でき、サービスに関連するポートが自動的に
開かれます。ただし、事前定義されていないサービスの場合は、指定されたエリアのポートを手動でのみ追加できます。
内部ゾーンでポート443 / tcpを開く
[root @ localhost〜]#firewall-cmd --zone = internal --add-port = 443 / tcp
success
内部ゾーンでポート443 / tcpアクセスを無効にする
[root @ localhost〜]#ファイアウォール-cmd --zone = internal --remove-port = 443 / tcp
成功

2つの構成モード
:ランタイムモード
(永続モード)
firewall-cmd --reload:ファイアウォールルールを再読み込みし、状態情報を維持します。つまり、永続的な構成がランタイム構成として適用されます。
firewall-cmd --permanent:このオプションを指定したコマンドは、永続的なルールを設定するために使用されます。これらのルールは、firewalldが再起動されるか、ファイアウォールルールが再ロードされた場合にのみ有効になります。
ルール。
firewall-cmd --runtime-to-permanent:現在のランタイム構成をルール構成ファイルに書き込んで永続的にします

おすすめ

転載: blog.csdn.net/weixin_46355881/article/details/107716474