More Related Content Similar to Linux女子部 firewalld徹底入門! (20) More from Etsuji Nakai (20) Linux女子部 firewalld徹底入門!2. Linux女子部 firewalld徹底入門!
自己紹介
中井悦司(なかいえつじ)
– Twitter @enakai00
日々の仕事
– Senior Solution Architect and
「Linux独習書の新定番」
書きました!
Cloud Evangelist at Red Hat K.K.
企業システムでオープンソースの活用を希望される
お客様を全力でご支援させていただきます。
昔とった杵柄
– 素粒子論の研究(超弦理論とか)
– 予備校講師(物理担当)
– インフラエンジニア(Unix/Linux専門)
読者の声より ――
「今はインターネット上に情報が溢れているけど、質の高い入門書が少なく
なっているのは不幸なことだと思う。そんな中、この本はすごくいい」
「平易な言葉でありながら、決して足りなくはない。慎重に選ばれています。
脳みそに染みこんで来ます」
2
Open Cloud Campus
4. Linux女子部 firewalld徹底入門!
Red Hat Enterprise Linux 7 Betaの入手について
下記のWebサイトを参照ください。
– 既存のRHELサブスクリプションで利用いただけます。
– サブスクリプションをお持ちでない方は、評価版サブスクリプションをリクエストしてください。
https://access.redhat.com/site/products/Red_Hat_Enterprise_Linux/Get-Beta
4
Open Cloud Campus
6. Linux女子部 firewalld徹底入門!
firewalldが作られた背景
LibvirtやOpenStack(Nova Compute)など、アプリケーションからiptablesの設定を変更
する場合、それぞれのアプリケーションが勝手にルールを追加・削除すると、設定が矛盾
して、想定外の動作が起きる可能性があります。
firewalldは、Linux上のファイアウォール機能を抽象化して、設定全体の整合性を保ちなが
ら動的な設定変更ができるようします。
– firewalldは、D-BUSのAPIを提供しているので、アプリケーションはD-BUS経由でファイアウォー
ルの設定変更が可能になります。例えば、RHEL7Betaに同梱のLibvirtは、D-BUS経由でfirewalld
を利用するように機能拡張が行われています。
https://fedoraproject.org/wiki/Features/firewalld
6
Open Cloud Campus
7. Linux女子部 firewalld徹底入門!
firewalldとは?
firewalldは、Linux内部において、NICポートごとに仮想的なファイアウォールを設置する
機能を提供します。
– ファイアウォール機能の実装として、内部的にiptablesを使用しています。これまでiptablesの設
定は「iptablesサービス」が管理していましたが、firewalldの環境では「firewalldサービス」が
iptablesの設定を管理します。
– ただし、iptablesは内部的に使用しているだけであって、iptablesサービスの代替と言うよりは、
まったく新しいファイアウォール機能が用意されたと考えるほうがすっきりします。
• とはいえ、iptablesの概念を用いて設定する部分もあるので、iptablesの知識も必要です。
– iptablesサービスと併用することはできませんが、firewalldサービスを停止して、代わりに
iptablesサービスを使用することはできます。
eth0
eth1
eth2
eth3
NICポートごとに
ファイアウォールを設置
Linux
7
Open Cloud Campus
8. Linux女子部 firewalld徹底入門!
firewalldの設定の考え方
事前にいくつかの「ゾーン」を定義して、ゾーンごとに受信パケットに対するフィルタリ
ングのルールを決定します。具体的には、ゾーンごとに以下の内容を指定します(*)。
– 接続を許可する「サービス」(明示的に許可したサービスのみに接続できます。)
• 「サービス」は、実質的にはTCP/UDPポート番号の事ですが、設定上は「ssh」「http」など
のサービス名で指定します。
• サービス名とTCP/UDPポート番号の対応は、別途、定義ファイルが用意されています。
• デフォルトで用意された定義ファイル以外に、ユーザが独自の定義ファイルを追加することも
できます。
• サービスの定義ファイルでは、オプションで、コネクショントラッキングのヘルパーモジュー
ルを指定できます。
– 受信を禁止するICMPタイプ(明示的に禁止しないICMPはデフォルトで許可されます。)
– IPマスカレードの有無、DNA(P)Tの設定
• IPマスカレード以外のSNA(P)Tは設定できないようです。
– その他、ポート番号を明示した設定や送信元アドレス/送信先アドレスでのフィルタリングも可能で
す。
その後、それぞれのNICポートに対して適用するゾーンを指定します。
– 明示的に指定しないNICポートは、事前に指定した「デフォルトゾーン」が適用されます。
– NICポートの代わりに、送信元IPのサブネットで適用するゾーンを指定することもできます。
8
(*) 送信パケットに対するフィルタリングの設定は無いようです。
Open Cloud Campus
9. Linux女子部 firewalld徹底入門!
デフォルトで用意されているゾーン
デフォルトで下表のゾーンが用意されています。
– 「drop」「block」「trusted」以外のゾーンは、フィルタリング設定を自由に変更できます(*)。
– どのようなネットワークに接続したNICポートに適用してほしいかが、ゾーン名から想像できます
が、実際の使い方はユーザの自由です。
– 独自ゾーンも追加できますが、ほとんどの場合、これだけあれば足りる気がします。
ゾーン
drop (設定変更不可)
あらゆるパケットを黙って破棄します。内部から外部にパケットは出せますが、返信
パケットが破棄されるので、実質的には通信できません。
block (設定変更不可)
あらゆるパケットを受信拒否して、ICMP Pohibitedメッセージを返します。内部から
開始した通信の返信パケットは通るので、内部から外部への通信はできます。
public
デフォルトでは「ssh」「dhcpv6-client」のみが許可されます。
external
デフォルトでは「ssh」のみが許可されます。IPマスカレードが有効になっています。
dmz
デフォルトでは「ssh」のみが許可されます。
work
デフォルトでは「ssh」「ipp-client」「dhcpv6-client」のみが許可されます。
home
デフォルトでは「ssh」「ipp-client」「mdns」「samba-client」「dhcpv6-client」
のみが許可されます。
internal
デフォルトでは「ssh」「ipp-client」「mdns」「samba-client」「dhcpv6-client」
のみが許可されます。
trusted(設定変更不可)
9
説明
あらゆるパケットが受信許可されます。
(*) drop/block/trustedのゾーンも実際には設定変更できてしまう場合がありますが、動作保証はありませんので、
設定変更はしないでください。
Open Cloud Campus
10. Linux女子部 firewalld徹底入門!
ゾーンの定義ファイル
デフォルトで用意されたゾーンの定義ファイルは下記にあります。
# ls /usr/lib/firewalld/zones/
block.xml drop.xml
home.xml
dmz.xml
external.xml internal.xml
public.xml
trusted.xml
work.xml
– ファイル名がゾーン名に対応します。下記は定義ファイルの例です。
# cat /usr/lib/firewalld/zones/external.xml
<?xml version="1.0" encoding="utf-8"?>
<zone>
<short>External</short>
<description>For use on external networks. You do not trust the other computers
on networks to not harm your computer. Only selected incoming connections are
accepted.</description>
<service name="ssh"/>
<masquerade enabled="True"/>
</zone>
– 独自のゾーンを追加する場合は、「/etc/firewalld/zones」以下に同じ書式で定義ファイルを追加
します。同じゾーン名の設定を追加すると、「/etc/firewalld/zones」が優先されます。
一般に、定義ファイルを追加・変更した際は、次のコマンドで反映します。
# firewall-cmd --reload
success
– 定義ファイルの他、firewalldの各種設定はすべて「/etc/firewalld」以下に保存されます。
10
Open Cloud Campus
13. Linux女子部 firewalld徹底入門!
現在の設定の確認 (1)
ゾーンごとの設定一覧です。
# firewall-cmd --list-all-zones
block
interfaces:
sources:
services:
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
...(中略)...
public (default, active)
interfaces: eth0
sources:
services: dhcpv6-client ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
trusted (active)
interfaces: eth1
sources:
services:
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
..(以下省略)...
13
Open Cloud Campus
14. Linux女子部 firewalld徹底入門!
現在の設定の確認 (2)
定義済みのサービスとICMPタイプの一覧です。
# firewall-cmd --get-services
amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns ftp highavailability http https imaps ipp ipp-client ipsec kerberos kpasswd ldap ldaps
libvirt libvirt-tls mdns mountd ms-wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi
pmwebapis pop3s postgresql proxy-dhcp radius rpc-bind samba samba-client smtp ssh
telnet tftp tftp-client transmission-client vnc-server wbem-https
# firewall-cmd --get-icmptypes
destination-unreachable echo-reply echo-request parameter-problem redirect routeradvertisement router-solicitation source-quench time-exceeded
– これらの定義ファイルは以下にあります。独自のサービスやICMPタイプを追加したい場合は、
「/etc/firewalld/(services|icmptypes)」以下に同じ書式で定義ファイルを追加します。
# ls /usr/lib/firewalld/services/
amanda-client.xml
ipp-client.xml
bacula-client.xml
ipp.xml
bacula.xml
ipsec.xml
dhcp.xml
kerberos.xml
dhcpv6-client.xml
kpasswd.xml
dhcpv6.xml
ldap.xml
dns.xml
ldaps.xml
ftp.xml
libvirt-tls.xml
high-availability.xml libvirt.xml
http.xml
mdns.xml
https.xml
mountd.xml
imaps.xml
ms-wbt.xml
14
mysql.xml
nfs.xml
ntp.xml
openvpn.xml
pmcd.xml
pmproxy.xml
pmwebapi.xml
pmwebapis.xml
pop3s.xml
postgresql.xml
proxy-dhcp.xml
radius.xml
# ls /usr/lib/firewalld/icmptypes/
destination-unreachable.xml parameter-problem.xml
echo-reply.xml
redirect.xml
echo-request.xml
router-advertisement.xml
rpc-bind.xml
samba-client.xml
samba.xml
smtp.xml
ssh.xml
telnet.xml
tftp-client.xml
tftp.xml
transmission-client.xml
vnc-server.xml
wbem-https.xml
router-solicitation.xml
source-quench.xml
time-exceeded.xml
Open Cloud Campus
15. Linux女子部 firewalld徹底入門!
現在の設定の確認 (3)
– これらの定義ファイルは、ファイル名がサービス名、ICMPタイプ名に対応します。次はサービスの
定義ファイルの例です。(ftpサービスは、コネクショントラッキングのヘルパーモジュールが指定
されています。)
# cat /usr/lib/firewalld/services/ssh.xml
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>SSH</short>
<description>Secure Shell (SSH) is a protocol
commands on remote machines. It provides secure
plan on accessing your machine remotely via SSH
enable this option. You need the openssh-server
to be useful.</description>
<port protocol="tcp" port="22"/>
</service>
for logging into and executing
encrypted communications. If you
over a firewalled interface,
package installed for this option
# cat /usr/lib/firewalld/services/ftp.xml
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>FTP</short>
<description>FTP is a protocol used for remote file transfer. If you plan to
make your FTP server publicly available, enable this option. You need the vsftpd
package installed for this option to be useful.</description>
<port protocol="tcp" port="21"/>
<module name="nf_conntrack_ftp"/>
</service>
15
Open Cloud Campus
16. Linux女子部 firewalld徹底入門!
現在の設定の確認 (4)
– 次はICMPタイプの定義ファイルの例です。
# cat /usr/lib/firewalld/icmptypes/echo-request.xml
<?xml version="1.0" encoding="utf-8"?>
<icmptype>
<short>Echo Request (ping)</short>
<description>This message is used to test if a host is reachable mostly with the
<i>ping</i> utility.</description>
</icmptype>
• 定義の中にタイプ番号などが無くて驚きますが、実際にはICMPタイプ名(ファイル名)自体が
意味を持ちます。具体的は、iptablesのオプションに指定可能なICMPタイプ名に対応します。
利用可能なICMPタイプ名は、次のコマンドで確認できます。
# iptables -p icmp -h
16
Open Cloud Campus
17. Linux女子部 firewalld徹底入門!
NICポートに対するゾーンの適用
明示的に指定しない場合は、自動で「デフォルトゾーン」が適用されます。
– この場合、デフォルトゾーンを変更すると、そのNICポートに適用されるゾーンも変更されます。
# firewall-cmd --get-default-zone
public
← デフォルトゾーンの確認
# firewall-cmd --set-default-zone=external
success
← デフォルトゾーンの変更
– 明示的に指定する場合は、次のようなコマンドを使用します。
• 設定上は「ゾーンにNICポートを追加する」という考え方をします。
# firewall-cmd
success
# firewall-cmd
success
# firewall-cmd
yes
# firewall-cmd
eth1
# firewall-cmd
success
--remove-interface=eth1
← eth1の適用ゾーンを除去
--add-interface=eth1 --zone=trusted
← eth1にtrustedゾーンを適用
--query-interface=eth1 --zone=trusted
← eth1の適用ゾーンがtrustedであるか確認
--list-interfaces --zone=trusted
← trustedゾーンが適用されるNICポートを表示
--change-interface=eth1 --zone=public
← eth1の適用ゾーンをpublicに変更
• これらは実行中の設定を変えるだけで、再起動すると設定は戻ります。起動時の設定を変更す
る際は、「--permanent」オプションを追加します。(実行時と起動時の両方を変える場合は
「--permanent」オプション有りと無しの両方でコマンドを実行する必要があります。)
17
Open Cloud Campus
18. Linux女子部 firewalld徹底入門!
送信元IPのサブネットに対するゾーンの適用
送信元IPのサブネットによって、適用するゾーンを指定することもできます。
# firewall-cmd --add-source=192.168.122.0/24 --zone=external
success
# firewall-cmd --list-sources --zone=external
192.168.122.0/24
# firewall-cmd --get-zone-of-source=192.168.122.0/24
external
# firewall-cmd --query-source=192.168.122.0/24 --zone=external
yes
# firewall-cmd --change-source=192.168.122.0/24 --zone=trusted
success
# firewall-cmd --remove-source=192.168.122.0/24
success
← 「192.168.122.0/24」にexternalゾーンを適用
← externalゾーンが適用されるサブネットを表示
← 「192.168.122.0/24」に適用されるゾーンを表示
← 「192.168.122.0/24」にexternalゾーンが
適用されていることを確認
← 「192.168.122.0/24」に適用されるゾーンを
trustedに変更
← 「192.168.122.0/24」の適用ゾーンを除去
– 起動時の設定を変更する際は、「--permanent」オプションを追加します。
– 送信元IPで適用されるゾーンの評価のあとに、NICポートで適用されるゾーンの評価が行われます。
• ただし、実際には、最初のゾーン評価でACCEPT/REJECTが決まるので、後のゾーン評価は意味を持ちません。
18
Open Cloud Campus
19. Linux女子部 firewalld徹底入門!
ゾーンの設定変更 (1)
ゾーンで許可するサービスの変更
– 起動時の設定を変更する際は「--permanent」オプションを追加します。「--zone」オプションを
省略した場合は、デフォルトゾーンが対象になります。
# firewall-cmd --get-services
(結果省略)
# firewall-cmd --list-services --zone=public
dhcpv6-client ssh
# firewall-cmd --add-service=http --zone=public
success
# firewall-cmd --query-service=http --zone=public
yes
# firewall-cmd --remove-service=http --zone=public
success
← 定義されているサービスの一覧
← 許可されているサービスを表示
← 許可するサービスを追加
← 指定のサービスが許可されているか確認
← 許可するサービスを削除
ゾーンで禁止するICMPタイプの変更
– 起動時の設定を変更する際は「--permanent」オプションを追加します。「--zone」オプションを
省略した場合は、デフォルトゾーンが対象になります。
# firewall-cmd
(結果省略)
# firewall-cmd
# firewall-cmd
success
# firewall-cmd
yes
# firewall-cmd
success
19
--get-icmptypes
← 定義されているICMPタイプの一覧
--list-icmp-blocks --zone=public
--add-icmp-block=echo-request --zone=public
← 禁止されているICMPタイプを表示
← 禁止するICMPタイプを追加
--query-icmp-block=echo-request --zone=public
← 指定のICMPタイプが禁止されているか確認
--remove-icmp-block=echo-request --zone=public
← 禁止するICMPタイプを削除
Open Cloud Campus
20. Linux女子部 firewalld徹底入門!
ゾーンの設定変更 (2)
ゾーンにおけるIPマスカレードの有無
– 起動時の設定を変更する際は「--permanent」オプションを追加します。「--zone」オプションを
省略した場合は、デフォルトゾーンが対象になります。
← 現在の設定を確認
# firewall-cmd --query-masquerade --zone=public
no
# firewall-cmd --add-masquerade --zone=public
success
# firewall-cmd --remove-masquerade --zone=public
success
← IPマスカレードを有効化
← IPマスカレードを無効化
ゾーンにおけるDNA(P)T(ポートフォワード)の設定
– 起動時の設定を変更する際は「--permanent」オプションを追加します。「--zone」オプションを
省略した場合は、デフォルトゾーンが対象になります。
#
#
#
#
firewall-cmd
firewall-cmd
firewall-cmd
firewall-cmd
--list-forward-ports --zone=public
--add-forward-port=<変換ルール> --zone=public
--query-forward-port=<変換ルール> --zone=public
--remove-forward-port=<変換ルール> --zone=public
←
←
←
←
現在の設定を確認
変換ルールを追加
変換ルールの存在を確認
変換ルールを削除
– <変換ルール>の指定の例
• port=22:proto=tcp:toport=3753
:22番ポート宛のパケットを3753ポート宛に変更
• port=22:proto=tcp:toaddr=192.168.122.10
:22番ポート宛のパケットを192.168.122.10に転送
※ 実際にオプションを書くと「--add-forward-port=port=22:proto=tcp:toport=3753」という変な書き方に
なりますが、これであっています。
※ 宛先アドレスを変換して他のサーバに転送する際は、カーネルパラメータ「net.ipv4.ip_forward = 1」の設定
も必要ですが、これは、firewalldが自動で設定してくれます。
20
Open Cloud Campus
21. Linux女子部 firewalld徹底入門!
ゾーンの設定変更 (3)
その他に「Rich Language」を使用して、より詳細な条件でのフィルタリングを設定するこ
とができます。
– 起動時の設定を変更する際は「--permanent」オプションを追加します。「--zone」オプションを
省略した場合は、デフォルトゾーンが対象になります。
#
#
#
#
firewall-cmd
firewall-cmd
firewall-cmd
firewall-cmd
--list-rich-rules --zone=public
--add-rich-rules=<設定ルール> --zone=public
--query-rich-rules=<設定ルール> --zone=public
--remove-rich-rules=<設定ルール> --zone=public
←
←
←
←
現在の設定を確認
変換ルールを追加
変換ルールの存在を確認
変換ルールを削除
– 次は設定例です。送信元が「192.168.122.0/24」でTCP443番ポート宛のパケットをロギングして
受信を許可します。
# firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.122.0/24" port port="443"
protocol="tcp" log prefix="https connection" level="info" limit value="1/m" accept' --zone=public
• Rich Languageの詳細は、manページ「firewalld.richlanguage(5)」を参照してください。
21
Open Cloud Campus
22. Linux女子部 firewalld徹底入門!
その他のコマンド
起動時の設定を再読み込み
– 「--complete-reload」を使用すると、コネクショントラッキングのステート情報も初期化されま
す。
# firewall-cmd --reload
# firewall-cmd --complete-reload
一定時間だけ設定を変更
– 実行時の設定を変更する際に「--timeout=<秒数>」を指定すると指定時間だけ設定が追加されま
す。
パニックモード
– パニックモードに入るとすべてのネットワーク通信が遮断されます。
# firewall-cmd --panic-on
# firewall-cmd --panic-off
22
← パニックモードに入る
← パニックモードを止める
Open Cloud Campus
25. Linux女子部 firewalld徹底入門!
firewalldが使用するチェーン群 (1)
firewalldは前ページの各チェーンについて、下図のようなサブチェーンを用意します。
– 図は、「PREROUTING」の例ですが、「FORWARD」「POSTROUTING」「INPUT」の各チェーンに
ついて同様のサブチェーンがあります。(OUTPUTチェーンは使っていないようです。)
送信元IPで指定された
ゾーンの適用(*)
PREROUTING
PREROUTING_ZONES_SOURCE
定義されているすべての
ゾーンについて繰り返し
PREROUTING_ZONES
PRE_<ゾーン名>
NICポートで指定された
ゾーンの適用(*)
PRE_<ゾーン名>_log
ロギング処理
次のチェーンへ
PRE_<ゾーン名>_deny
拒否の処理
PRE_<ゾーン名>_allow
許可の処理
(*) POSTROUTINGチェーンについては、送信先が指定のNICポート/サブネットの場合にサブチェーンの
ルールが適用されます。
25
Open Cloud Campus
26. Linux女子部 firewalld徹底入門!
firewalldが使用するチェーン群 (2)
– FORWARDチェーンについては、INとOUTの2つのサブチェーンがあります。
FORWARD
FORWARD_IN_ZONES_SOURCE
受信元が指定のNICポート
/サブネットの場合の処理
FORWARD_IN_ZONES
FWI_<ゾーン名>
FWI_<ゾーン名>_log
FWI_<ゾーン名>_deny
FORWARD_OUT_ZONES_SOURCE
FWI_<ゾーン名>_allow
FORWARD_OUT_ZONES
FWO_<ゾーン名>
FWO_<ゾーン名>_log
次のチェーンへ
FWO_<ゾーン名>_deny
転送先が指定のNICポート
/サブネットの場合の処理
26
FWO_<ゾーン名>_allow
Open Cloud Campus
27. Linux女子部 firewalld徹底入門!
変更不可のゾーン設定例 (1)
以下の内容は、iptables-saveコマンドでiptablesの設定内容を解析したものです。
– eth0に「drop」ゾーンを適用すると、mangleテーブルのPREROUTINGチェーンで、すべてのパ
ケットが有無をいわさずDROPされます。
*mangle
-A PREROUTING -j PREROUTING_direct
-A PREROUTING -j PREROUTING_ZONES_SOURCE
-A PREROUTING -j PREROUTING_ZONES
-A PREROUTING_ZONES -i eth0 -j PRE_drop
-A PRE_drop -j PRE_drop_log
-A PRE_drop -j PRE_drop_deny
-A PRE_drop -j PRE_drop_allow
-A PRE_drop -j DROP
– eth0に「block」ゾーンを適用すると、INPUTチェーンの下記の流れでパケットがREJECTされます。
その前のルールがあるので、返信パケットはACCEPTされます。FORWARDチェーンにも同様の処理
が入ります。
*filter
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -j INPUT_ZONES_SOURCE
-A INPUT -j INPUT_ZONES
-A INPUT -p icmp -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A INPUT_ZONES -i eth0 -j IN_block
-A IN_block -j IN_block_log
-A IN_block -j IN_block_deny
-A IN_block -j IN_block_allow
-A IN_block -j REJECT --reject-with icmp-host-prohibited
27
Open Cloud Campus
28. Linux女子部 firewalld徹底入門!
変更不可のゾーン設定例 (2)
– eth0に「trusted」ゾーンを適用すると、すべてのテーブル/チェーンについて、ACCEPTが設定さ
れます。下記は、最初に通過するmangleテーブル/PREROUTINGチェーンの例です。
*mangle
-A PREROUTING -j PREROUTING_ZONES_SOURCE
-A PREROUTING -j PREROUTING_ZONES
-A PREROUTING_ZONES -i eth0 -j PRE_trusted
-A PRE_trusted -j PRE_trusted_log
-A PRE_trusted -j PRE_trusted_deny
-A PRE_trusted -j PRE_trusted_allow
-A PRE_trusted -j ACCEPT
• FORWARDチェーンについても同じ設定が入るので、他のネットワークへのパケット転送も許可
されます。
28
Open Cloud Campus
29. Linux女子部 firewalld徹底入門!
変更可能なゾーン設定例
– eth0にデフォルトゾーンである「public」ゾーンを適用すると、INPUTチェーンに下記の設定がな
されて、SSH接続が許可されます。
-A
-A
-A
-A
-A
-A
-A
-A
-A
-A
-A
-A
INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
INPUT -i lo -j ACCEPT
INPUT -j INPUT_ZONES_SOURCE
INPUT -j INPUT_ZONES
INPUT -p icmp -j ACCEPT
INPUT -j REJECT --reject-with icmp-host-prohibited
INPUT_ZONES -i eth0 -j IN_public
INPUT_ZONES -j IN_public
← デフォルトゾーンなので明示的に指定されないNICからのパケットも拾っている。
IN_public -j IN_public_log
IN_public -j IN_public_deny
IN_public -j IN_public_allow
IN_public_allow -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW -j ACCEPT
• FORWARDチェーンはREJECTされ
るので、他のネットワークへのパ
ケット転送は許可されません。
29
-A
-A
-A
-A
-A
-A
-A
-A
-A
-A
-A
-A
-A
-A
-A
-A
-A
-A
FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
FORWARD -i lo -j ACCEPT
FORWARD -j FORWARD_IN_ZONES_SOURCE
FORWARD -j FORWARD_IN_ZONES
FORWARD -j FORWARD_OUT_ZONES_SOURCE
FORWARD -j FORWARD_OUT_ZONES
FORWARD -p icmp -j ACCEPT
FORWARD -j REJECT --reject-with icmp-host-prohibited
FORWARD_IN_ZONES -i eth0 -j FWDI_public
FORWARD_IN_ZONES -j FWDI_public
FORWARD_OUT_ZONES -o eth0 -j FWDO_public
FORWARD_OUT_ZONES -j FWDO_public
FWDI_public -j FWDI_public_log
FWDI_public -j FWDI_public_deny
FWDI_public -j FWDI_public_allow
FWDO_public -j FWDO_public_log
FWDO_public -j FWDO_public_deny
FWDO_public -j FWDO_public_allow
Open Cloud Campus
31. Linux女子部 firewalld徹底入門!
参考資料
Red Hat Enterprise Linux 7.0 Beta Security Guide
– 3.5. Using Firewalls
– https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/7Beta/html-single/Security_Guide/index.html#sec-Using_Firewalls
Linux女子部 systemd徹底入門!
– http://www.slideshare.net/enakai/linux-27872553
iptablesの徹底理解には、下記の書籍が最適です。
31
Open Cloud Campus