Webセキュリティの小部屋

Twitter のフォローはこちらから Facebook ページはこちら RSSフィードのご登録はこちらから
公開日:2017年2月18日
最終更新日:2020年8月8日

CentOS7 の firewalld でファイアウォールの設定を行う

CentOS 7 からは、今までの iptables から firewalld にファイアウォールの制御が変わっています。

一応、CentOS 7 でも iptables を使用することはできますが、これからは firewalld を使用することをおすすめします。IPv4 と IPv6 を意識しないでいいですしね。ちなみに、CentOS 7 で iptables を使用する方法は以下の記事を参考にしてください。

なお、iptables と firewalld は併用することはできないので、どちらか一方を停止する必要があります。

firewalld でアクセス制限をすることは簡単です。zone の話をすると長くなるので、公開サーバーで使用するデフォルト zone の public の使い方をご紹介します。

まず、基本的な使い方です。firewalld はデフォルトで SSH(22)のポートしか開放していないので、Web サーバーを立ち上げるなら必要なポートを開放する必要があります。

以下のコマンドは、HTTP(80) と HTTPS(443) のポートを開放して設定を反映し保存しています。--permanent を付けないと OS を再起動したときに設定が消えてしまいますので注意してください。

# firewall-cmd --zone=public --add-port=80/tcp --permanent
# firewall-cmd --zone=public --add-port=443/tcp --permanent
# firewall-cmd --reload

逆にポートを塞ぐには以下のようにします。
# firewall-cmd --zone=public --remove-port=443/tcp --permanent
# firewall-cmd --reload

さて、まずは実際に行う設定方法をご紹介しましたが、その他の使い方も。

ここまでの内容で、ほとんどの方が十分かもしれませんけどね。

まず、firewalld を起動・停止・再起動するコマンドになります。

# systemctl start firewalld.service #起動
# systemctl stop firewalld.service  #停止
# systemctl restart firewalld.service #再起動

firewalld が OS 起動時に起動するか確認するコマンドは以下のようになります。
# systemctl list-unit-files | grep firewalld
firewalld.service                             enabled

enabled と表示されれば問題ありません。もし、disabled と表示されたら OS 起動時に firewalld が起動しないので以下のコマンドを実行してください。
# systemctl enable firewalld

逆に、iptables を入れる場合などで firewalld を無効にしたい場合は以下のコマンドを実行します。
# systemctl disable firewalld

firewalld の設定が済んだら Nmap などのツールを使用して本当に自分が意図したポートだけが開放されているのか確認することをお勧めします。下記の記事を参考にしてください。但し、間違っても自分の管理下にないサーバーに対してポートスキャンは行わないでください。

これで、firewalld の設定は完了です。iptables と比べると非常に簡単になっていますね。

但し、逆にテンプレートがなくなってしまうので初心者には難しくなっているかもしれません。初心者の方は自分のサーバーにインストールされているソフトウェアとポート番号を頑張って調べて設定してみてください。

最低限必要な CentOS セキュリティ設定

最低限必要な CentOS セキュリティ設定を以下の記事にまとめていますので、こちらもどうぞ。

参考サイト


スポンサーリンク





カテゴリー:Linux

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA