環境:
OS: Debian GNU/Linux 9.3 (stretch)
Kernel parameter: security=apparmor
これが私のテストプロファイルです(aa-genprofが作成)。
/etc/apparmor.d/usr.bin.telnet.netkit
#include <tunables/global>
/usr/bin/telnet.netkit {
#include <abstractions/base>
/lib/x86_64-linux-gnu/ld-*.so mr,
/usr/bin/telnet.netkit mr,
deny network,
}
有効にする:
Sudo systemctl reload apparmor.service
AppArmorのステータス:
$ Sudo aa-status | grep telnet
/usr/bin/telnet
/usr/bin/telnet.netkit
しかし、私がtelnetプログラムをテストすると、
$ telnet.netkit 127.0.0.1 22
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
SSH-2.0-OpenSSH_7.4p1 Debian-10+deb9u2
ネットワークアクセスは拒否されません。
プロセスステータスは次のとおりです。
$ ps auxZ | grep -v unconfined | grep telnet
/usr/bin/telnet.netkit (enforce) test 10410 0.0 0.0 19504 2852 pts/1 S+ 18:26 0:00 telnet.netkit 127.0.0.1 22
Netstat:
$ netstat -nap | grep telnet
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp 0 0 127.0.0.1:56710 127.0.0.1:22 ESTABLISHED 10410/telnet.netkit
誰かがプロファイルの何が問題になっているのかを見つけるのを手伝ってもらえますか?どうもありがとう!
私が正しく読んでいるなら、あなたはdebianを実行しています。
まあ問題は、パッチがメインラインではないため(ただし、状況を変更する作業があったことはわかっています)、debianのカーネルには、ネットワーク接続をブロックするために必要なコード(D-Bus緩和策と同じ)が不足していることです。