「プロセス」によって開始されたトラフィックを許可するために、つまりプロセス名を使用して、iptablesを使用することは可能ですか?たとえば、pingコマンドによって開始されるすべてを許可したいとします。
owneriptablesモジュールがあなたが望むものであるように見えます。まず、システムで使用できるかどうかを確認します。
iptables -m owner --help
詳しくはこちらをご覧ください: http://www.frozentux.net/iptables-tutorial/iptables-tutorial.html#OWNERMATCH
-m owner --pid-owner PID
http://linuxpoison.blogspot.com/2010/11/how-to-limit-network-access-by-user.html および http://linux.die。 net/man/8/iptables
--pid-ownerはxt_ownerでサポートされていないため、ipt_ownerモジュールが必要です。
たとえば(これは単なる概算です)
#!/bin/bash
$@ &
iptables -m owner --pid-owner %1 -j REJECT
ただし、実際には、-uid-ownerと--gid-ownerを使用する方がよいでしょう。まず、-pid-owner基準は正確なpidにのみ一致するため、プログラムはこのルールによってブロックされない子プロセスを簡単に生成できます。 (少なくとも私は他の方法で読んだことがありません。)次に、iptables(8)は--pid-ownerがSMPシステムで壊れていることを警告します(これはあなたに当てはまるかもしれないし、当てはまらないかもしれませんが、どちらの場合でも移植性を制限します)。 3番目に、プロセスはブロックされる前に開始されるため、上記のスクリプトには競合状態があります。 (開始前にプロセスのPIDを取得する方法がある場合、それについて聞いたことがありません。)