0

次のコマンドを実行できるLinuxまたはJavaAPIがあるかどうか疑問に思いました。

iptables -A INPUT -s 67.215.4.101 -j DROP

あるいは、Groovyでこれを行う方法がない場合は、それについても知りたいと思います。

4

3 に答える 3

3

Javaプロセスをrootとして実行することに抵抗がある場合は、これを回避する別の方法があります。FIFOソケット(rootとして実行)でリッスンしてからiptablesを呼び出す、お気に入りの言語で記述された単純なデーモンプロセスを作成できます。上記の例から、おそらくIPアドレスをデーモンに渡すことができます。Javaプログラムから、FIFOコマンドをデーモンプロセスに送信できます。

私は最近このテクニックを使用しました、そしてそれはうまくいきました。私の場合、単純なJNIインターフェースを使用してFIFOメッセージをデーモンプロセスに送信しました。

于 2011-02-06T14:08:52.993 に答える
2

おそらくそうではありません。最善の策は、それを外部コマンドとして実行することです。例:を使用しSystem.exec(...)ます。

明らかに、コマンドはroot権限で実行する必要があり、それはコマンドの実行方法に影響を及ぼします。

于 2011-02-06T03:02:41.453 に答える
2

Groovyでは、文字列には次のexecute()メソッドがあります。

"iptables -A INPUT -s 67.215.4.101 -j DROP".execute()

このページを見てください。

もちろん、考慮する必要のある実行特権があります。

于 2011-02-06T23:11:12.410 に答える