久々の技術メモです!いろいろ書きたいことはできてきたのですが、手がつけられなく。。。
FirewallDの外向きの制御に関して、以前できなかったと記事に書いていましたが、できましたのでメモメモ〆(.. )
ただ、コマンドから行う事はできないため、xmlファイル(FirewallDの設定ファイル)を直接いじって設定してやる必要があります。
以下、少しおさらいです。
外部から内部へのサービスの許可は以下のようなコマンドでできます。
■ 外部から内部へのsshサービスを永続的に有効化
# firewall-cmd --permanent --add-service=ssh |
このように設定した場合、/etc/firewalld/zones配下のxmlファイルに設定が記載されます。デフォルトのzoneはpublicとなります。
# cat /etc/firewalld/zones/public.xml
<?xml version="1.0" encoding="utf-8"?> <zone> <short>Public</short> <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description> <service name="ssh"/> ← ここ </zone> |
■ 内部から外部へのsshサービスを永続的に有効化
何回も言うようですが、コマンドではできないようです。xmlファイルを直接記載する必要がありますf(^^;)
早速以下に記載します。通常ならば許可したいサービスがたくさんあると思いますが、取り急ぎsshのみで。
# vi /etc/firewalld/direct.xml
<?xml version="1.0" encoding="utf-8"?> <direct> <rule ipv="ipv4" table="filter" chain="OUTPUT_direct" priority="2">-m tcp -p tcp --dport ssh -j ACCEPT</rule> </direct> |
FirewallDを再起動しないと反映できないようです。
# systemctl restart firewalld
再起動後結果を見てみましょう!
# iptables -nL
~ Chain IN_public_allow (1 references) target prot opt source destination ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 ctstate NEW ~ Chain OUTPUT_direct (1 references) target prot opt source destination ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 |
内側と外側の許可ができていることが確認できました!!
困っている人の参考になればいいのですが。。。