CentOS
iptables
centos7
firewalld

CentOS7のfirewalldでのアクセス制御

More than 1 year has passed since last update.

はじめに

CentOS7でiptablesを使いたかったのですが、上手く出来ませんでした。
(どこに設定ファイルあるのか分からへん……)

そこで、デフォルトで使われているfirewalldを使う方法を調べたのでまとめです。

参考させて頂いたサイトはこちらです
https://www.imd-net.com/column/13339/

firewalldを起動

$ systemctl status firewalld
$ systemctl unmask firewalld
$ systemctl enable firewalld
$ systemctl start firewalld
$ systemctl status firewalld

unmaskはmaskしてる場合だけでいいです。

http,httpsアクセスを許可する

これやらないとApache動いててもWebアクセス出来ないやつです。

$ firewalld-cmd --add-service=http --zone=public --permanent
$ firewalld-cmd --add-service=https --zone=public --permanent
$ firewalld-cmd --reload

reloadの部分はsystemctl restart firewalldでも出来ました。

SSH接続を特定IPだけ許可する

すべて不許可→特定IPを許可、です。

IPはグローバルIPとして何が使われているか、このサイトとかで調べておきましょう。

ポートが22なのはデフォルトのままです。
変えてもいいけど、しっかり把握しておかなきゃですね。

$ firewalld-cmd --remove-service=ssh --zone=public --permanent

$ firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="XXX.XXX.XXX.XXX" port protocol="tcp" port="22" accept"

$ firewall-cmd --reload

ポートを開放

追記:ポートで複数Webサイトを持つ時のために。
http開放してるんだから大丈夫やろ……と思ってたのですが、やらないとダメでした

$ firewall-cmd --zone=public --add-port=8000/tcp --permanent
$ firewall-cmd --zone=public --add-port=9000/tcp --permanent

$ firewalld-cmd --reload

やらかした時

IPの指定ミスとか、指定したIPからのインターネットアクセスが出来なくなったりしたら……

さくらVPSの場合、管理画面からのVPSコンソール(?)から入れました。
そこでfirewalld止めたらなんとかなりそう(希望)

以上です