問題タブ [apparmor]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - ptrace_scope の Docker の AppArmor を無効にする
特定の Docker コンテナの AppArmor を無効にすることはできますか? 実行中のプロセスに gdb をアタッチできるように ptrace にアクセスできるようにしたいのですが、設定を変更しようとすると次の問題が発生します。
mysql - MySQL データ ディレクトリを変更できません
MySQL データベースのデータ ディレクトリをデフォルトの場所 /var/lib/mysql から新しいパス (私の場合は /home/dev/Desktop/iiab/db/mysql) に変更しようとしています。
次の投稿でビクターが提供した回答に従ってみました: MySQLデータディレクトリを変更するには? (Victorの回答に対するコメントのmakからの指示に従って、エイリアスファイルも編集しました)。
しかし、MySQL を再起動しようとすると、次のターミナル エラーが発生します。
以下のコマンドを使用してログファイルを検査する場合
以下を示します。
my.cnf ファイルは次のようになります (最初のコメント ## は省略しました)。
私の /etc/apparmor.d/usr.sbin.mysqld ファイルは次のようになります (var/lib/mysql を新しいパスに置き換えるなど、指示の影響を受ける部分のみを含めました)。
/etc/apparmor.d/tunables/alias ファイルは次のようになります (最初のコメント ## は省略しました)。
apparmor を正常に再起動してリロードできます。
Ubuntu 16.04 を使用しています。
私が間違っていることを知っている人はいますか?
shared-memory - libvirt virt-manager での IVSHMEM の使用
qemuでivshmemを使用するには、次の手順が必要です。
./ivshmem_server
UNIX ドメイン ソケットを作成するホストで ivshmem サーバーを起動します。/tmp/ivshmem_socket
- 次のコマンド ライン オプションを使用して qemu を起動します。
-chardev socket,path=/tmp/ivshmem_socket,id=ivshmem_socket -device ivshmem,chardev=ivshmem_socket,size=1m
ゲストで行うlspci
と、ivshmem pci デバイスが表示されます。
virt-manager で同じことを行うにはどうすればよいですか? 具体的にやりたいことは2つ。
- virt-manager が起動するときに、上記のコマンド ライン オプションを qemu に渡します。
- libvirt virt-manager はapparmorを使用してゲストを分離しますが、VM へのアクセス
/tmp/ivshmem_socket
が拒否されないようにするにはどうすればよいですか?
docker - docker の apparmor プロファイルはどこにありますか?
Debian Jessie (Vagrant の下) で次の問題が発生します。
dockerのドキュメントでは、apparmor プロファイルが自動的に に配置されると主張していますが/etc/apparmor.d/docker
、このディレクトリの内容を一覧表示すると、見つかりません。
の内容/etc/apparmor.d
:
Docker のバージョン情報
mysql - MySQL が Ubuntu 16.04 の 5.7.13 でシンボリックリンクされた cnf の変更を取得しない
編集:問題の一部である可能性があるものを見つけた可能性があります。下部でさらに編集してください。
mysql を実行する新しいサーバーをセットアップしましたが、すべて問題ないようです。show variables を使用する場合を除いて、.cnf ファイルで確認できる構成設定が表示されず、一般的なデフォルトと思われるものが表示されます。そのため、mysql を問題なく使用できますが、設定はすべてデフォルトのままです。
.cnf が使用されていない理由を突き止めようとしています。確実にロードされていることを確認するためにいくつかの手順を実行しました。これらを以下に示します。ロードされていることを確認したら、設定が使用されていない理由を説明する方法がわかりません。どんな助けでも大歓迎です。
私の cnf ファイルの場所は次のとおりです。
/etc/mysql/mysql.conf.d/mysqld.cnf
これが以下で使用されているものであることを確認しようとしました:
sudo /usr/sbin/mysqld --verbose --help | grep -A 1 "Default options"
デフォルトのオプションは、次のファイルから指定された順序で読み取られます。
/etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf
/etc/my.cnf
存在しません
/etc/mysql/my.cnf
へのシンボリックリンクです/etc/alternatives/my.cnf
/etc/alternatives/my.cnf
へのシンボリックリンクです/etc/mysql/mysql.cnf
/etc/mysql/mysql.cnf
内容:
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
etc/mysql/conf.d/
以下を含むディレクトリです。
mysql.cnf
mysqldump.cnf
mysql.cnf
は空なので、おそらく何もしていません
/etc/mysql/mysql.conf.d/
以下を含むディレクトリです。
mysqld.cnf
mysqld.cnf.dpkg-new
mysqld_safe_syslog.cnf
mysqld.cnf
へのシンボリックリンクです/home/{my_username}/conf/mysqld.cnf
/home/{my_username}/conf/mysqld.cnf
使用する予定のconfファイルです。
そのため、設定を使用する必要があるように見える問題がわかりません。
この .cnf が使用されていることを確認するための 2 回目の試みでは、strace mysql
. 私のファイルがリストされ、上にリストした他のパスとともに開かれました。
繰り返しますが、.cnf ファイルを使用する必要があるようです。
なぜそうではないのか、誰かが洞察を提供できますか?
編集:strace mysqld
代わりに実行strace mysql
したところ、.cnf ファイルでアクセス許可エラーが発生しました。これが問題になる可能性があります。しかし、mysql と mysqld の違いについて十分に理解していません。誰か説明できますか?
security - SELinux は、Docker コンテナーの AppArmor よりもはるかに安全ですか?
私の理解では、AppArmor と SELinux の両方が、コンテナー間の分離に追加のセキュリティ レイヤーを提供する強制アクセス制御 (MAC) システムを実装しており、Docker には両方のデフォルト ポリシーが付属しています。
ただし、SELinux は具体的には Multi Category Security (MCS) を使用して、システム上の個々のコンテナーがその特定のコンテナー用にラベル付けされたホスト上のファイルにのみアクセスできるようにすることができます (詳細:記事、プレゼンテーション)。つまり、2 つの Docker コンテナー A および B が単一のホスト上でスピンアップされている場合、Docker に付属するデフォルトの SELinux セキュリティ ポリシーは、ブレークアウトが発生した場合、コンテナー A の Linux プロセスがアクセスできないことを実際に強制します。コンテナ B に属するファイル。それだけでなく、ファイルをホストからコンテナにマウントできる唯一の方法は、ボリュームに接尾辞が付けられている場合です。":Z" を使用して、コンテナーがそれらにアクセスできるように、そのパスのホスト上のファイルに関連する MCS ラベルを確実に追加するよう Docker に指示します。
それどころか、AppArmor で同様のメカニズムへの参照を見つけることができません。代わりに、Docker のデフォルトの AppArmor プロファイルは、コンテナ間のアクセスを拒否することではなく、主に特定のファイル システム パスとホスト リソースへのアクセスを拒否することを目的としているようです。
私の質問は、Docker のデフォルトの AppArmor プロファイルを使用すると、上記の SELinux を使用した場合と同じ効果的な保護が得られるのでしょうか? AppArmor は、あるコンテナから別のコンテナのファイルへのアクセスをブロックしますか? はいの場合、どのようにそれを達成しますか?
tor - Mint18 で AppArmor が TOR を殺す
Mint 18 Cinnamon の新規インストールをセットアップしています。デフォルトの Ubuntu TOR も TOR 独自のリポジトリ バージョンも機能しません。どちらも失敗します:
シスログで。しかし /usr/bin/tor は存在します:
/etc/init.d/tor start を実行しても同じことが起こります。しかし奇妙なことに、 sudo /usr/bin/tor を実行するとうまくいきます! もちろん、それは本当に悪い方法です...
/var/log/tor には何もありません
何か案は?これまで AppArmor に対処する必要はありませんでした。常に機能しているだけで、Google は私をどこにも連れて行きません。