web-dev-qa-db-ja.com

LinuxでWineアプリケーションをサンドボックス化するにはどうすればよいですか?

WordなどのMicrosoft Officeプログラムを実行したいのですが、それらを信頼したり、誰も信用したりしないでください。仮想マシンを実行せずに、Linuxで実行するWindowsアプリケーションをサンドボックス化する良い方法はありますか? Wineでfirejail(すべてのネットワークアクセスと一時的な偽のファイルシステムをブロックする)を使用しようとしましたが、ExcelまたはWordを機能させることができませんでした。

1
Joe

個人的には、そのためにいくつかのMACでセキュリティプロファイルを実装します。 Ubuntuを実行している場合、そのままではAppArmorがあります。 SELinuxと比較してエントリレベルが低いため、設定ミスの可能性が低くなります。ネットワークアクセスとファイルシステムへのアクセスを制限して、Wordが専用フォルダ内のドキュメントにのみアクセスできるようにすることができます。

ところで、セキュリティの観点から、Linux環境にWineを置くことは、ある範囲のWindowsマルウェアに対して脆弱になるため、悪い考えです。

1
Vladimir Berlev

docker コンテナの中でwineを実行して、ホストシステムから分離することができます。 dockerはそれ自体ではGUIアプリケーションをサポートしていませんが、それは可能です。

dockerでGUIアプリケーションを実行するx11docker をご覧ください。 x11dockerを使用しない短いセットアップ の説明もあります。

すぐに使えるdocker hubのワイン画像もあります: x11docker/lxde-wine

例:ドッキングされたLXDEデスクトップ上のwine(例:XephyrのようなネストされたXサーバーが必要です):

x11docker --desktop --home x11docker/lxde-wine

画像にはPlayOnLinuxも含まれています。 Playonlinuxを実行するには:

x11docker --home x11docker/lxde-wine playonlinux

(オプション--homeは、インストールされたワインインストールを保持するために、ワインコンテナの永続的なホームフォルダを作成します。

免責事項:私はx11dockerの作者です。広告を申し訳ありません


独立した回答を提供するためのx11dockerなしのセットアップ。 x11dockerのセキュリティ機能がいくつかありませんが、基本的には機能し、Hostにwineをインストールするよりもはるかに優れています。

Wine + PlayOnLinuxイメージを構築するDockerfile:

FROM debian:stretch
ENV DEBIAN_FRONTEND noninteractive

# contrib for winetricks, stretch-backports for latest wine
RUN echo "deb http://deb.debian.org/debian stretch contrib" >> /etc/apt/sources.list && \
    echo "deb http://deb.debian.org/debian stretch-backports main" >> /etc/apt/sources.list

# Multiarch for wine32, wine, some often needed dependencies:
RUN dpkg --add-architecture i386 && apt-get update && \
    apt-get -t stretch-backports install -y wine

# helpful additions
RUN apt-get install -y fonts-wine winetricks ttf-mscorefonts-installer winbind

# wine gecko and mono
RUN mkdir -p /usr/share/wine/gecko && \
    cd /usr/share/wine/gecko && wget https://dl.winehq.org/wine/wine-gecko/2.47/wine_gecko-2.47-x86.msi && \
    wget https://dl.winehq.org/wine/wine-gecko/2.47/wine_gecko-2.47-x86_64.msi && \
    mkdir -p /usr/share/wine/mono && \
    cd /usr/share/wine/mono  && wget https://dl.winehq.org/wine/wine-mono/4.7.1/wine-mono-4.7.1.msi

# PlayOnLinux
RUN apt-get install -y playonlinux xterm gettext

CMD playonlinux

PlayOnLinuxイメージを実行するコマンド:

# folder on Host to store settings and installations
mkdir -p ~/winehome
# allow X access for user in container
xhost +SI:localuser:$(id -un)  
docker run --rm \
    --env DISPLAY=$DISPLAY \
    --user=$(id -u):$(id -g) \
    --env USER=$(id -un) \
    --volume /tmp/.X11-unix:/tmp/.X11-unix \
    --volume ~/winehome:/home/$(id -un) \
    --env HOME=/home/$(id -un) \
    --ipc=Host \
    playonlinuximage
1
mviereck

Winepak を試すことができます。これは Flatpak のWineイメージです。

Flatpakは完全なGUIと sandboxing を提供します。

ただし、自分で作成する必要があります。

0
Sarke

他の目的で使用しない新しいユーザーアカウントでプログラムを実行できます。次に、そのアカウントで実行されているプログラムは、そのアカウントがアクセスできるものにのみアクセスできます。

0
Macil