良い一日、
私はLinuxでうまく動作する多くのWINEアプリを使用していますが、私が特に探しているのは、ごく少数のワインアプリケーションを除いて、インターネットへのアクセス(発信)をブロックすることです。
システム上で新しいユーザーを作成し、Iptablesとのイーサネットインターフェースへのすべての送信トラフィックを拒否し、ブロックしたいWINEアプリを実行したいときにこのユーザーを使用することができます。そのようです:
iptables -I OUTPUT -o ethX -m owner --uid-owner UserB -j DROP
ただし、この例のために、インターネットに接続する1つのWINEアプリが欲しいとしましょう...簡単にするために、WINEでFirefoxを使用します(例として)。
したがって、WINEでFirefoxを実行するにはインターネットを持つUserAを使用し、他のすべてのWINEアプリを実行してブロックするにはUserBを使用します。
これは良いことですが、これを何らかの方法で回避できると主張する人もいます。「Linux対応」アプリやそのような高度なマルウェアについては心配していません。これらはWindowsアプリであり、ブロックを回避しようとしないようなリスクを負うことになるからです。 chroot刑務所、それは私にとって非常に基本的でありすぎて複雑すぎる。
最後に、WINEはアプリがトラフィックを自分で送信できるようにしますか?WINEはネットワーク上で正確にどのように機能しますか?アプリがそれ自体で送信する場合、パケットにはUserB uuidがあり、簡単にドロップされるためです。しかし、アプリが... wineserverまたは他のデーモンと通信するために何かを使用し、デーモンが実際のネットワークトラフィックを送信する場合...明らかに失敗しますが、パケットにはUserB uuidがありません。
どうすれば確認できますか?私がブロックしたいアプリのほとんどは、些細なデータを送信するだけでも、それ自体は「信頼」しないアプリです。彼らは明らかにそれについて沈黙しているので、私の知る限りこれを簡単に監視することはできません。したがって、これを監視し、それが機能するかどうか(または、知っている人からの簡単な確認)を確認する方法があれば、それは素晴らしいことです。
WINEがこれをどのように行っているか知っていますか?または、UserB上のすべてのWINEアプリが送信アクセスをブロックするために他に何かする必要がある場合。または、すべてのUserBパケットをブロックするだけで十分ですか?
本当にありがとう!
更新:
「wineserver」はWINEPREFIXごとに独立しているように見えるので、それを知っている人は、2人のユーザー(インターネットを使用するユーザーと使用しないユーザー)ごとに異なるWINEPREFIXを作成するだけで、すべての問題を解決する必要があると思います。
脱出する方法をブロックするかどうかは100%確信はありませんが、ほとんどのWindowsアプリはLiunxで実行していることを認識していないので、どうすれば抜け出すことができますか?本当に大きな悪意のあるマルウェアでない限り。
各WINEPREFIXにはシミュレートされたWindowsインストールが異なるため、すべてのアプリがある共通のディレクトリにシンボリックリンクする方が簡単で、これら2つの個別のWINEPREFIXを心配することなく簡単になります。
そして、各ユーザーでアプリを起動するシェルスクリプトを作成します。たとえば、1つはインターネットアクセス用で、もう1つはインターネットアクセス用です。
誰かがこれをどのように改善できるかについてもっと素晴らしいアイデアを持っているなら、共有してください。今のところ、私は非常に満足していると思います。