
特定のプログラムのみがシステム (できれば RHEL) 内の開いているポートを使用できるようにするファイアウォールをどのように構成すればよいでしょうか?
たとえば、yum
正常に接続して更新できるようにしたいが、ブラウジングなどの送信 Web 要求をブロックしたい場合、ポート 80、443、53、および UDP-53 を開く必要があります。
yum
ただし、ファイアウォールがWeb ブラウザを区別できるようにする必要があります。
答え1
iptables
プログラムのユーザーを確認する機能があります。
--uid-owner
またはフラグを使用すると--gid-owner
、ネットワークを指定されたユーザー (root?) のみに制限することができ、Web サーバー ( として実行される場合がありますwww-data
) のパケットはドロップされます。
もちろん、これはプログラムごとではなくユーザー/グループごとに制限されますが、今日のほとんどのサービスは独自のユーザーとグループで実行されます。
例:
iptables -I OUTPUT -m owner --uid-owner www-data -jDROP
送信ネットワークを root 以外のユーザーに制限する例:
iptables -P OUTPUT DROP
iptables -I OUTPUT -m owner --uid-owner root -jALLOW
もう 1 つのアプローチは、(通常は RedHat 製品にバンドルされている) を使用してルールを設定することですSELinux
。個人的には、管理が難しくなると思います。