はじめに
テストの目的で、CentOSでファイアウォールを無効にする必要がある場合があります。セキュリティ上の理由から、運用サーバーでファイアウォールを実行する必要があります。適切に構成されたファイアウォール管理ツールの重要性を十分に強調することはできません。
このチュートリアルでは、CentOS7でfirewalldを有効にして使用する方法を学びます。
 
 前提条件
- sudo権限を持つユーザー
- コマンドラインへのアクセス(Ctrl-Alt-T)
- CentOS7マシン
firewalldステータスを確認する方法
CentOS 7サーバーを起動し、firewalldが実行されているかどうかを確認することから始めます。これを行うには、ターミナル(CTRL-ALT-T)を開き、次のコマンドを実行します。
sudo systemctl status firewalld受け取る可能性のある出力はいくつかあります。
アクティブ:アクティブ(実行中)
 出力がActive:active(running)の場合  、ファイアウォールがアクティブです。システムの再起動後にファイアウォールマネージャが起動したかどうかわからない場合は、次のコマンドを発行することを検討してください。
sudo systemctl enable firewalldこのコマンドは、サーバーが再起動するたびにファイアウォールを開始するようにシステムを構成します。
アクティブ:非アクティブ(デッド)
 出力がActive:inactive(dead)の場合  、ファイアウォールが実行されていません。 firewalldを有効にして開始する方法に進みます 記事のセクション。
ロード済み:マスク(/ dev / null;不良)
出力は、サービスが非アクティブでマスクされていることを示している可能性があります。詳細については、下の画像を参照してください。
 
 ここでは、firewalldサービスがシンボリックリンクでマスクされています。管理者は、他のソフトウェアパッケージがサービスを自動的にアクティブ化しないように、サービスをマスクする場合があります。あなたはしなければならない サービスを有効にする前に、マスクを解除してください。
Firewalldサービスのマスクを解除するには、次のコマンドを実行します。
sudo systemctl unmask --now firewalld出力は、シンボリックリンクが削除されたことを示しているはずです。
 
 これで、firewalldを有効にして開始する方法に進むことができます。 記事のセクション。
firewalldを有効にして開始する方法
CentOS 7でファイアウォールを有効にするには、sudoとして次のコマンドを実行します。
sudo systemctl enable firewalldファイアウォールを有効にした後、firewalldサービスを開始します:
sudo systemctl start firewalldシステムがコマンドを実行するとき、出力はありません。したがって、ファイアウォールが正常にアクティブ化されているかどうかを確認することをお勧めします。
次のコマンドでファイアウォールのステータスを確認します:
sudo systemctl status firewalld出力は、firewalldがアクティブで実行中であることを示しているはずです。
 
 ファイアウォールゾーン
Firewalldは「ゾーン」を確立し、すべての着信トラフィックを上記のゾーンに分類します。各ネットワークゾーンには、着信トラフィックを受け入れるか拒否するかに基づく独自のルールセットがあります。
言い換えると、ゾーンは、許可されるパケットと機能を拒否されるパケットを管理します。このアプローチでは、デバイスが接続されている特定のネットワークに異なるゾーンを設定できるため、iptablesと比較して柔軟性が高くなります。
使用可能なすべてのゾーンの完全なリストを表示するには、次のように入力します。
sudo firewall-cmd  --get-zones新規インストールの場合、ほとんどの場合、次の出力が得られます。
Output
block dmz drop external home internal public trusted workこれらは事前設定されたゾーンです。どのゾーンがデフォルトとして設定されているかを確認するには、次のコマンドを実行します。
sudo firewall-cmd --get-default-zone 
 Firewalldは、事前設定されたすべてのゾーンとゾーンの説明のリストを提供しています。以下のリストは、信頼度の低いものから最も信頼できるものの順に並べられています。
 ドロップコード>  :最低レベルの信頼。すべての着信接続は応答なしでドロップされ、発信接続のみが可能です。
 ブロック  :上記と同様ですが、単に接続を切断するのではなく、着信要求がicmp-host-prohibitedまたはicmp6-adm-prohibitedメッセージで拒否されます。
   public   :パブリックで信頼できないネットワークを表します。他のコンピュータを信頼していませんが、ケースバイケースで選択された着信接続を許可する場合があります。
 外部  :ファイアウォールをゲートウェイとして使用している場合の外部ネットワーク。内部ネットワークはプライベートのままですが到達可能であるように、NATマスカレード用に構成されています。
 内部  :ゲートウェイの内部部分に使用される、外部ゾーンの反対側。コンピューターはかなり信頼でき、いくつかの追加サービスが利用可能です。
   dmz   :DMZにあるコンピューター(ネットワークの他の部分にアクセスできない分離されたコンピューター)に使用されます。特定の着信接続のみが許可されます。
 仕事  :作業機械に使用されます。ネットワーク内のほとんどのコンピューターを信頼します。さらにいくつかのサービスが許可される可能性があります。
 ホーム  :家庭環境。これは通常、他のほとんどのコンピューターを信頼し、さらにいくつかのサービスが受け入れられることを意味します。
 信頼できる  :ネットワーク内のすべてのマシンを信頼します。利用可能なオプションの中で最もオープンであり、慎重に使用する必要があります。
アクティブファイアウォールゾーンの確認
アクティブなゾーンを確認するには、次のように入力します。
sudo firewall-cmd --get-active-zones出力は、アクティブゾーンとそれによって管理されるネットワークインターフェイスを示します。それ以外の方法で構成しない場合、デフォルトのゾーンが唯一のアクティブなゾーンになります。
ファイアウォールゾーンルール
デフォルトゾーンに関連付けられているルールを確認するには、次のコマンドを実行します。
sudo firewall-cmd --list-all 
 リストされているすべての要素を検討して定義しましょう:
   target:  デフォルトは、ゾーンがデフォルトゾーンであることを示します。また、ゾーンがアクティブであることを示している場合もあります。上記の例では、パブリックゾーンにネットワークインターフェイスが関連付けられていないため、パブリックゾーンはアクティブではありません。
   icmp-block-inversion:  これは、icmp-blockの処理を逆にするオプションの要素です。
 インターフェース  :このゾーンによって管理されるすべてのネットワークインターフェース。
 ソース  :このゾーンのソース(IPアドレス)。
 サービス  :許可されているサービスを表示します。上記の例では、sshdhcpv6-clientです。 Firewalldで利用できるサービスの完全なリストについては、  Firewall-cmd --get-servicesを実行してください。  コマンド。
 ポート  :ファイアウォールの通過が許可されているポートのリスト。これは、firewalldで定義されていないサービスを許可する場合に非常に便利です。
 マスカレード  :なしの場合、IPマスカレードは無効になります。有効にすると、IP転送が可能になります。これは事実上、サーバーがルーターとして機能することを意味します。
 フォワードポート  :転送されたすべてのポートのリストを表示します。
 ソースポート  :このゾーンに関連するすべての送信元ポートとプロトコルを一覧表示します。
   icmp-blocks   :ブロックされたicmpトラフィックを表示します。
 豊富なルール  :ゾーンに関連付けられているすべての高度なルールのリスト。 
 特定のゾーンに関連付けられているルールのリストを取得するには、 -zone =を追加します   -list-allのパラメータ  指図。たとえば、
sudo firewall-cmd --zone=work --list-all上記のコマンドは、作業に関連付けられたルールのリストを生成します ゾーン。
 
 インターフェースのゾーンを変更する方法
 別のゾーンをネットワークインターフェイスに簡単に再割り当てできます。  -zoneを使用します  フラグを立ててゾーンを指定してから、 -change-interfaceを追加します  ネットワークインターフェイスを指定するフラグ。
sudo firewall-cmd --zone=home --change-interface=eth1変更が有効になっているかどうかを確認します:
firewall-cmd --get-active-zones
 Firewalldは、 eth1を通過するすべてのトラフィックにホームゾーンを適用する必要がありました ネットワークインターフェース。
警告 :インターフェースのゾーンを変更すると、アクティブなサービスのステータスに影響を与える可能性があります。たとえば、SSHを介して作業していて、ネットワークインターフェースをSSHサービスをサポートしていないゾーンに移動すると、接続が切断される可能性があります。さらに、ログインできなくなります。
デフォルトのfirewalldゾーンを変更する
 デフォルトゾーンは簡単に変更できます。  -set-default-zoneを使用します  デフォルトとして設定するゾーンを示すフラグ。以下の例では、作業ゾーンをデフォルトとして設定します。
sudo firewall-cmd --set-default-zone=work 
 デフォルトゾーンを変更すると、変更が成功したことを示す出力が表示されます。詳細については、上の画像を参照してください。
次のコマンドを実行して、変更を確認することもできます:
sudo firewall-cmd --get-default-zone出力には、作業ゾーンが実際にデフォルトのゾーンであることが表示されます。