CentOS 7 ~firewallの設定

サーバー

はじめに

なんとなくファイアウォール設定は難しそうだなと思っていたので、ずっと後回しになっていました。
ここも勉強しなくてはいけないなと重い腰を上げることに。
ずっとsystemctl disable firewalld.serviceとしてfirewallが立ち上がらないようにしていました。

firewalldの起動

systemctl start firewalld.service を入力してfirewalldを起動。起動してstatusを見てみるとなにやら黄色い文字が。なんのWARNINGかと思って、ネットで調べてみると「AllowZoneDriftingがYESになっているが今後のリリースでは削除されるのでNOにすることを検討してください」とのこと。

とりあえずファイアウォールを起動したので一応、ブラウザでブロックされているかどうかチェック。
思惑通りアクセスすることはできませんでした。

cd /etc/firewalldに移動して中身を見るとfirewalld.confがある。このファイルをいじるのでバックアップ用のファイルを作成しておく。いつものようにcp firewalld.conf firewalld.conf_defaultと入力して保管しておく。

vi firewalld.conf と入力してviエディタを起動。一番下の行に「AllowZoneDrifting=no」となっているのでここを「AllowZoneDrifting=yes」に変更。

systemctl restart firewalld.serviceと入力しfirewalldを再起動。そしてstatusをみると思惑通りWARNINGは消えていました。

firewallの設定

firewallの設定はzoneと呼ばれるブロックに分けられている。zoneを指定しないと基本的にはpublicが編集されるとのこと。現在アクティブなzoneを確認するには firewall-cmd –get-active-zoneと入力すると表示される。またfirewall-cmd –list-allとするとactiveなzoneの一覧が見れる。

ここではとりあえずserviceの許可を設定する。firewall-cmd –list-servicesと入力すると現在許可されているdhcpv6とsshが表示される。ここにWebサーバーで必要なhttpとhttpsの許可を加える。
firewall-cmd –add-service=http –permanent 最後の–permanentを入れないと一時的にしか許可とならず再起動などした時にはまた設定がもどってしまう。–permanentを入れることで設定の維持ができる。
ここでいったんリストをみてみたが、目的のhttpとhttpsは出てこなかった。いったんfirewall-cmd –reloadを入力して設定をリロードしないといけない。リロード後にリスト表示すると目的のhttpとhttpsが設定できた。

またブラウザを開いてIPアドレスを打ち込むと無事表示することができた。

いままで、FTPサーバー、sambaによるファイル共有とインストールしたのでついでにftpとsambaも許可しておいた。

最後に

なんとなく難しそうで避けていたが、思ったより簡単だった。本当はセキュリティを上げるためにポート番号を変更してポートの開放をしたりとしないといけないと思うが、最低限の設定はできたのではないかなと思う。まだまだ勉強することがいっぱいですね。

コメント