俺がアガっているだけなら良いんだけどCentOS7から導入されたのfirewall-cmdで難儀したのでメモを残してみる。バグっているんじゃないかと思うのはfirewall-cmdのinterfaceをzone設定する場合の挙動だ。
ちなみに検証環境は
# lsb_release -a LSB Version: :core-4.1-amd64:core-4.1-noarch Distributor ID: CentOS Description: CentOS Linux release 7.0.1406 (Core) Release: 7.0.1406 Codename: Core # firewall-cmd --version 0.3.9 # firewall-cmd --list-interfaces eno16780032 eno33559296 # firewall-cmd --get-active-zone public interfaces: eno16780032 eno33559296
こんな感じ。この状態でeno33559296をpublic以外のzoneに移動するのが目的。--change-interface使って設定する。移動先zoneはtrustedにする。
# firewall-cmd --change-interface=eno33559296 --zone=trusted success
ちゃんと設定できたか確認する。
# firewall-cmd --get-active-zone public interfaces: eno16780032 trusted interfaces: eno33559296
大丈夫だね。eno33559296がtrustedに入った。でもこのままだと再起動すると消えちゃうので保存する。
# firewall-cmd --change-interface=eno33559296 --zone=trusted --permanent
「--permanent」を付けるだけ。ちゃんと保存できたか確認。
# firewall-cmd --list-all --zone=trusted --permanent trusted (active) interfaces: eno33559296 sources: services: ports: masquerade: no forward-ports: icmp-blocks: rich rules:
ちなみに設定ファイルでも確認できる。
# ls /etc/firewalld/zones/ trusted.xml # cat /etc/firewalld/zones/trusted.xml <?xml version="1.0" encoding="utf-8"?gt; <zone target="ACCEPT"> <short>Trusted</short%gt; <description%gt;All network connections are accepted.</description> <interface name="eno33559296"/> </zone>
設定はこれで完璧なハズ。再起動してもちゃんと機能するかreboot。面倒ならばsystemctlでリスタート。
# systemctl restart firewalld
す・る・と
# firewall-cmd --get-active-zone public interfaces: eno16780032 eno33559296
全てのインターフェースがpublicへ。振り出しに戻るという残念な結果。どうやらinterface設定だけは保存効かないデス。いや正確には,保存はできているのけど,正しくloadできていない。これってバグでしょ!ちなみにfirewall-cmd --reloadならinterface設定は温存される(というかinterface設定変更なし)。ということでこいつも再起動したときとは挙動と違う。ダメじゃこりゃ!
解決方法わからないので別手段で回避なうw
最近のコメント