nkmtの日記

日常のことをつらつら書きます

firewallの設定

Linuxインフラ

2019年1月24日

firewallとは

firewallとはサーバーなどのホストからのアクセスを制限するためのセキュリティ機能です。
windowsの場合だとfirewall設定などありますからある程度、なじみがあるものだと思います。
パケットフィルタリングという文脈ではCiscoのルータでいう所のアクセスリストの概念に近いです。
今回はこのfirewallをCentOS上で作成します。

ネットワークインターフェースの確認

まずパケットフィルタリングを行うインターフェースの確認を行います。

ifconfig

もしくはCentOS7からは下記のコマンドにて確認をします。

nmcli connection show

enp0s3などインターフェース名が表示されるかと思います。

インターフェイスに適用されているゾーンの確認

firewallにはゾーンという概念があります。
たとえばdropというゾーンでは他のホストからの全ての通信を排除し応答しません。
逆にtrustedでは全ての通信が許可されます。
一般的にはsshやICMPなどサーバーとしての基本的な通信を許可するpublicが使われると思います。
下記によりfirewallで現在設定されているゾーンの確認を行います。

firewall-cmd --get-zone-of-interface=インターフェース名

ゾーン設定の確認

サーバーに設定されているゾーンを確認します。

設定されている全てのゾーンの確認

firewall-cmd --list-all

永続設定されているゾーンの確認

firewall-cmd --permanent --list-all

ゾーンを指定してゾーンの内容の確認

firewall-cmd --permanent --list-all --znone-home

ゾーンに接続設定を追加

接続設定を追加するにはサービス名を指定して行う方法とポート名を指定して行う方法があります。

サービス名を指定して追加

firewall-cmd --permanent --add-service=dhcp

dhcpのサービスをしています。

ポート番号を指定して追加

firewall-cmd --permanent --add-port=80/tcp

上記では80番ポートを指定しています。

ゾーンの接続設定を削除

サービス名を指定して削除

firewall-cmd --permanent --remove-service=dhcp

ポート番号を指定して削除

firewall-cmd --permanent --remove-port=80/tcp

設定の再読み込み

上記の設定を行っただけでは設定がまだ反映されていません。
再読み込みを行い設定を反映させます。

firewall-cmd --reload

これで変更が適用されます。