Linux-admin-firewall-setup

提供:Dev Guides
移動先:案内検索

Linux Admin-ファイアウォールのセットアップ

_firewalld_は、CentOS上のiptablesのデフォルトのフロントエンドコントローラーです。 _firewalld_フロントエンドには、生のiptablesよりも2つの主な利点があります-

  • チェーンとルールを抽象化するゾーンを簡単に構成して実装します。 *ルールセットは動的です。つまり、設定が変更および/または変更されても、ステートフル接続は中断されません。

_firewalld_はiptablesのラッパーであり、代わりではないことに注意してください。 カスタムのiptablesコマンドは_firewalld_で使用できますが、ファイアウォールの機能を壊さないようにfirewalldを使用することをお勧めします。

まず、_firewalld_が開始され、有効になっていることを確認しましょう。

[root@CentOS rdc]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2017-01-26 21:42:05 MST; 3h 46min ago
 Docs: man:firewalld(1)
Main PID: 712 (firewalld)
  Memory: 34.7M
 CGroup:/system.slice/firewalld.service
       └─712/usr/bin/python -Es/usr/sbin/firewalld --nofork --nopid

firewalldはアクティブ(起動時に開始)であり、現在実行中です。 非アクティブまたは開始されていない場合は、使用できます-

systemctl start firewalld && systemctl enable firewalld

firewalldサービスが設定されたので、それが動作していることを確認しましょう。

[root@CentOS]# firewall-cmd --state
running
[root@CentOS]#

firewalldサービスが完全に機能していることがわかります。

Firewalldは、_zones_の概念で動作します。 ゾーンは、ネットワークマネージャーを介してネットワークインターフェイスに適用されます。 これについては、_ネットワークの構成_で説明します。 ただし、現在のところ、デフォルトでは、デフォルトゾーンを変更すると、デフォルト状態の「デフォルトゾーン」に残っているネットワークアダプタが変更されます。

_firewalld_ですぐに使用できる各ゾーンを簡単に見てみましょう。

Sr.No. Zone & Description
1
  • drop*

低信頼レベル。 すべての着信接続とパケットはドロップされ、ステートフルネスを介して発信接続のみが可能です

2

block

着信接続には、要求が禁止されていることを開始者に知らせるicmpメッセージが返信されます

3

public

すべてのネットワークが制限されています。 ただし、選択した着信接続は明示的に許可できます

4

external

NAT用にfirewalldを構成します。 内部ネットワークはプライベートのままですが、到達可能です

5

dmz

特定の着信接続のみが許可されます。 DMZ分離のシステムに使用

6

work

デフォルトでは、システムが安全な作業環境にあると想定して、ネットワーク上のより多くのコンピューターを信頼します

7

hone

デフォルトでは、より多くのサービスがフィルタリングされていません。 システムがNFS、SAMBA、SSDPなどのサービスが使用されるホームネットワーク上にあると仮定します

8

trusted

ネットワーク上のすべてのマシンは信頼されています。 ほとんどの着信接続は自由に許可されます。 これは、インターネットに公開されるインターフェース用ではありません

使用する最も一般的なゾーンは、public、drop、work、およびhomeです。

各共通ゾーンが使用されるいくつかのシナリオは次のとおりです-

  • public -管理者が使用する最も一般的なゾーンです。 これにより、カスタム設定を適用し、LANでの操作に関するRFC仕様を順守することができます。
  • ドロップ-ドロップを使用するタイミングの良い例は、セキュリティ会議、パブリックWiFi、またはインターネットに直接接続されたインターフェイスです。 dropは、ICMPプローブを含むすべての未承諾リクエストが悪質であると想定します。 したがって、州外の要求は応答を受け取りません。 ドロップの欠点は、厳密なRFC準拠を必要とする特定の状況でアプリケーションの機能を損なう可能性があることです。
  • work -半セキュアな企業LAN上にいます。 すべてのトラフィックが中程度に安全であると想定できる場合。 これは、それがWiFiではなく、IDS、IPS、および物理セキュリティまたは802.1xが適切に実装されていることを意味します。 また、LANを使用している人々に精通している必要があります。
  • home -自宅のLANにいます。 すべてのシステムとLAN上のユーザーに対して個人的に責任を負います。 LAN上のすべてのマシンを知っていて、どれも侵害されていません。 多くの場合、信頼できる個人間でメディアを共有するための新しいサービスが提供され、セキュリティのために余分な時間をかける必要はありません。

ゾーンとネットワークインターフェイスは、1対多のレベルで機能します。 1つのネットワークインターフェイスには、一度に1つのゾーンしか適用できません。 一方、ゾーンは多くのインターフェイスに同時に適用できます。

利用可能なゾーンと、現在適用されているゾーンを見てみましょう。

[root@CentOS]# firewall-cmd --get-zones
 work drop internal external trusted home dmz public block
[root@CentOS]# firewall-cmd --get-default-zone
public
[root@CentOS]#

firewalldにカスタマイズされたルールを追加する準備はできましたか?

最初に、外部からポートスキャナーに対して、ボックスがどのように見えるかを見てみましょう。

bash-3.2# nmap -sS -p 1-1024 -T 5  10.211.55.1

Starting Nmap 7.30 ( https://nmap.org ) at 2017-01-27 23:36 MST
Nmap scan report for centos.shared (10.211.55.1)
Host is up (0.00046s latency).
Not shown: 1023 filtered ports
PORT   STATE SERVICE
22/tcp open  ssh


Nmap done: 1 IP address (1 host up) scanned in 3.71 seconds
bash-3.2#

ポート80への着信要求を許可しましょう。

最初に、デフォルトとして適用されているゾーンを確認します。

[root@CentOs]# firewall-cmd --get-default-zone
public
[root@CentOS]#

次に、ポート80を許可するルールを現在のデフォルトゾーンに設定します。

[root@CentOS]# firewall-cmd --zone=public --add-port = 80/tcp
success
[root@CentOS]#

ここで、ポート80接続を許可した後、ボックスをチェックしましょう。

bash-3.2# nmap -sS -p 1-1024 -T 5  10.211.55.1

Starting Nmap 7.30 ( https://nmap.org ) at 2017-01-27 23:42 MST
Nmap scan report for centos.shared (10.211.55.1)
Host is up (0.00053s latency).
Not shown: 1022 filtered ports
PORT   STATE  SERVICE
22/tcp open   ssh
80/tcp closed http

Nmap done: 1 IP address (1 host up) scanned in 3.67 seconds
bash-3.2#

現在、80までの未承諾トラフィックが許可されています。

デフォルトゾーンを_drop_に入れて、ポートスキャンがどうなるかを見てみましょう。

[root@CentOS]# firewall-cmd --set-default-zone=drop
success

[root@CentOS]# firewall-cmd --get-default-zone
drop

[root@CentOs]#

次に、より安全なゾーンでネットワークインターフェースを使用してホストをスキャンします。

bash-3.2# nmap -sS -p 1-1024 -T 5  10.211.55.1
Starting Nmap 7.30 ( https://nmap.org ) at 2017-01-27 23:50 MST
Nmap scan report for centos.shared (10.211.55.1)
Host is up (0.00094s latency).
All 1024 scanned ports on centos.shared (10.211.55.1) are filtered

Nmap done: 1 IP address (1 host up) scanned in 12.61 seconds
bash-3.2#

現在、すべてが外部からフィルタリングされています。

以下に示すように、_drop_にある場合、ホストはICMP ping要求にも応答しません。

bash-3.2# ping 10.211.55.1
PING 10.211.55.1 (10.211.55.1): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Request timeout for icmp_seq 2

デフォルトのゾーンを_public_に再度設定してみましょう。

[root@CentOs]# firewall-cmd --set-default-zone=public
success

[root@CentOS]# firewall-cmd --get-default-zone
public

[root@CentOS]#

_public_の現在のフィルタリングルールセットを確認しましょう。

[root@CentOS]# firewall-cmd --zone=public --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: enp0s5
sources:
services: dhcpv6-client ssh
ports: 80/tcp
protocols:
masquerade: no
forward-ports:
sourceports:
icmp-blocks:
rich rules:

[root@CentOS rdc]#

設定されているように、ポート80のフィルタールールは実行コンフィギュレーションのコンテキスト内にのみあります。 つまり、システムが再起動されるか、firewalldサービスが再起動されると、ルールは破棄されます。

すぐに_httpd_デーモンを設定するので、変更を永続的にしましょう-

[root@CentOS]# firewall-cmd --zone=public --add-port=80/tcp --permanent
success

[root@CentOS]# systemctl restart firewalld

[root@CentOS]#

これで、パブリックゾーンのポート80ルールは、再起動およびサービスの再起動後も保持されます。

以下は、_firewall-cmd_で適用される一般的なfirewalldコマンドです。

Command Action
firewall-cmd --get-zones Lists all zones that can be applied to an interface
firewall-cmd —status Returns the currents status of the firewalld service
firewall-cmd --get-default-zone Gets the current default zone
firewall-cmd --set-default-zone=<zone> Sets the default zone into the current context
firewall-cmd --get-active-zone Gets the current zones in context as applied to an interface
firewall-cmd --zone=<zone> --list-all Lists the configuration of supplied zone
firewall-cmd --zone=<zone> --addport=<port/transport protocol> Applies a port rule to the zone filter
--permanent Makes changes to the zone persistent. Flag is used inline with modification commands

これらは、_firewalld_の管理と設定の基本概念です。

CentOSでホストベースのファイアウォールサービスを構成することは、より高度なネットワークシナリオでは複雑なタスクになる可能性があります。 CentOSでの_firewalld_およびiptablesの高度な使用法と設定は、チュートリアル全体を使用できます。 ただし、日常的なタスクの大部分を完了するのに十分なはずの基本事項を示しました。