インターネットにアクセスする際に特定のプロキシサーバ経由でないとアクセスできないことを想定し、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
コメントを残す