CentOS の firewalld にて特定の送信先のみにアウトバウンド通信を制限してみた

Pocket

インターネットにアクセスする際に特定のプロキシサーバ経由でないとアクセスできないことを想定し、CentOS の firewalld にてアウトバウンド宛の通信を特定のアドレス(Proxyサーバ)のみに制限してみました。

なお、アウトバウンドの通信を制限するには、ダイレクトルールというものを利用しなければならないようです。

1.特定のIPアドレス宛のアウトバウンド通信を許可する

10.XX.XX.XX宛の通信を優先度1で許可します。この時、制御するNICのインターフェイスを “-o”オプションで指定しています。

$ sudo firewall-cmd --permanent --direct  --add-rule
ipv4 filter OUTPUT 1 -d 10.XX.XX.XX/32 -o enp0s5 -j ACCEPT

ちなみにACCEPTはすべて大文字にする必要がありそうです。
小文字にしていると、リロードするときにエラーが発生します。

2.それ以外の宛先のアウトバウンド通信をブロックする

それ以外の通信をどう表現するのか少し悩みましたが、”0.0.0.0/0″で良さそうでしたので、優先度2として下記のとおり設定しています。

$ sudo firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 2 -d 0.0.0.0/0 -o enp0s5 -j DROP

3.設定を確認する

1.2.の設定は “/etc/firewalld/direct.xml”に書かれるので確認してみます。

$ sudo  vi /etc/firewalld/direct.xml

ちなみに直接このファイルを編集してみましたが、うまくいかなかったことがあるので、1.2.のようにコマンドで設定するのがようさそうです。

4.設定を有効化(リロード)する

3.で確認した設定を”–reload”オプションで有効化します。

$ sudo firewall-cmd --reload
success

5.有効化された設定を確認する

“–get-all-rules”で有効化されているルールを確認することが可能です。

$ sudo firewall-cmd --direct --get-all-rules
ipv4 filter OUTPUT 1 -d 10.XX.XX.XX/32 -o enp0s5 -j ACCEPT
ipv4 filter OUTPUT 2 -d 0.0.0.0/0 -o enp0s5 -j DROP

コメントを残す

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

CAPTCHA