CentOS7 の firewalld設定
firewalld
CentOS 7からiptables
ではなくfirewalld
になりましたね。
これは今更というものでしょうが……。
実際 ` centos7 firewalld `とでも検索すれば、
firewalld-cmd
コマンド周りのことは出てくるんですよね。
なので、この記事は後々自分が調べなくて良くするためです。
firewalld の確認
特にいじってなければ最初から起動していると思うんですが、ちゃんと確認しないとね。
$ sudo systemctl status firewalld
もし無効化されているなら、status
をenable
に書き換えると有効化されます。
起動していなければstart
に。
そして次にzoneの確認。
用途やethによって切替可能な幾つかの設定群みたいな。
$ firewall-cmd --list-all $ firewall-cmd --get-default-zone
デフォルトのpublicだと思います。
上ではデフォルトの詳細, 下では現在のデフォルト名を確認できます。
firewalld の編集
そうして次のコマンドでpublic zoneに、定義済みサービスを追加・削除していく感じです。
例えばhttpだとこんな。
// 定義済みサービス一覧 $ sudo ls /usr/lib/firewalld/services $ firewall-cmd --get-services $ sudo firewall-cmd --add-service=http --zone=public --permanent // $ sudo firewall-cmd --permanent --add-port=80/tcp
permanent
をつけると恒久的に加えることになります。
add
をremove
にすると削除です。
サービス名でどうこうするのではなく、コメントアウトしたようにポートを指定することも可能です。
因みに、変更を加えたら /etc/firewalld/zones/public.xml が作成されます。
httpは既にhttp.xmlが用意されているので楽ですが、自分で定義したいこともあります。
基本的に難しいことはなく、/usr/lib/firewalld/services/ にあるxmlをコピーして、書き換えるだけです。
hoge.xmlを用意して
<?xml version="1.0" encoding="utf-8"?> <service> <short>Hoge</short> <description>hogehoge service</description> <port protocol="tcp" port="xxx"/> </service>
と書いていって先ほどと同じように追加するだけです。
$ sudo firewall-cmd --add-service=hoge --zone=public --permanent
さて、firewalldを弄りました。
なので、リロードします。
$ sudo firewall-cmd --reload
これにて、firewalldの簡単なメモはおしまい……かな?
余談
記事書いてて思ったけど、
シンタックスをシェルスクリプトにしているから、
"#"がコメントの扱いになって、コマンド全部青色になっちゃうのよね。
rootと一般ユーザーを#, $で分けるために付けていたけど、やっぱ基本的に一般ユーザーにしてsudoが無難かな。