1

UNIX で権限を制限してスクリプトを実行したいと考えています。具体的には、データを送信せずに受け取ったコードを実行したいと考えています。私の現在の解決策は次のとおりです。

  1. ダミーユーザーを作成します。
  2. iptablesダミー ユーザーのすべての送信トラフィックをブロックするために使用します。
  3. を使用して、ターゲット プログラムをダミー ユーザーとして実行しますsu - dummy -c 'command'

上記のステップ 2 を達成する方法は、このページで説明されているとおりです。具体的には、次のコマンドを使用して新しいルールを追加します。

sudo iptables -I OUTPUT -m owner --uid-owner dummy -j DROP

ダミー アカウントに切り替えて Web アドレスに ping を実行しようとすると、ルールを iptables に追加したため、実際には ping が失敗します。そのコマンドは次のとおりです。

> su - dummy -c 'ping www.google.com'
ping: unknown host www.google.com

を使用しようとする場合も同様tracerouteです。ただし、を使用して同様の方法でメールを送信しようとするとmutt、成功します。

 su - dummy -c 'echo "test" | mutt -s test [emailaddress]'

ルールがこれをブロックしないのはなぜですか? より一般的には、実行中のプログラムのすべての送信トラフィックがブロックされるようにするにはどうすればよいですか?

4

2 に答える 2

1

mutt はメール サーバーを使用してメールを送信しますが、それはおそらくダミーの uid で実行されていません。

于 2013-03-06T02:23:49.617 に答える
0

これは、chrootjailを設定するためのガイドです。これは必要と思われます。

https://help.ubuntu.com/community/BasicChroot

これにより、実行できるコマンドを制御でき、muttなどへのユーザーアクセスを問題なく制限できます。アクセスを許可します。何を拒否するかを理解する必要はありません。すべてのコマンドがデフォルトでブロックされているためです。これにより、設定がはるかに簡単になります。

于 2013-03-06T04:53:18.373 に答える