CentOS 7: LXD上でUbuntu 18.04のTor Browserを動かす

24日 7月 2021

Tor Browserのアップデートでglibc 2.8以上が必要となり、CentOS 7のglibc 2.7ではTor Browserが動かなくなった。glicの入れ替えは影響が大きい。そこでこの記事ではCentOS7上のLXDでUbuntu 18.04を動かし、Tor Browserを動かす手順を記載する。

1 epel-releaseをインストールする

snapdはEPELリポジトリにある。

#!/bin/shsudo yum install -y epel-releasesudo yum update -y

2 snapdをインストールする

#!/bin/shsudo yum install -y snapdsudo ln -s /var/lib/snapd/snap /snapsudo systemctl enable snapdsudo systemctl start snapd

3 snapでLXDをインストールする

#!/bin/sh -esudo snap install lxdsudo gpasswd -a “${USER}” lxdcat <<EOF | sudo tee /etc/sysctl.d/lxd.confuser.max_user_namespaces=15076EOF# shellcheck disable=SC1091. /etc/default/grubif [ -z “${GRUB_CMDLINE_LINUX_DEFAULT}” ]; then cat <<EOF | sudo tee -a /etc/default/grubGRUB_CMDLINE_LINUX_DEFAULT=”user_namespace.enable=1 namespace.unpriv_enable=1EOFelse D=”${GRUB_CMDLINE_LINUX_DEFAULT} user_namespace.enable=1″ D=”${D} namespace.unpriv_enable=1″ sudo sed -i /etc/default/grub -e “s;^GRUB_CMDLINE_LINUX_DEFAULT=.*;GRUB_CMDLINE_LINUX_DEFAULT=”${D}”;g”fiif which grub-mkconfig > /dev/null 2>&1; then sudo grub-mkconfig -o /boot/grub/grub.cfgelif which grub2-mkconfig > /dev/null 2>&1; then sudo grub2-mkconfig -o /boot/grub/grub.cfgelse echo “Add user_namespace.enable=1 namespace.unpriv_enable=1 to grub.cfg.” exit 0fisudo reboot

4 LXD上のUbuntu 18.04にTor Browserをインストールする

  • Ubuntu 18.04にibus-mozcとfonts-takaoをインストールして日本語入力環境を整える。
  • Tor Browserはtorproject.orgからダウンロードして、Ubuntu 18.04にインストールする。
  • CentOS 7にUbuntu 18.04のTor Browserを実行するdesktopファイルを追加する。

#!/bin/sh -ex# User name and home directory in container. This user runs Tor Browser.LXD_TORBROWSER_USER=”${USER}”LXD_TORBROWSER_HOME=”${HOME}”# Tor Browser URL.TORBROWSER_URL=https://www.torproject.org/dist/torbrowser/10.5.2TORBROWSER_URL=”${TORBROWSER_URL}/tor-browser-linux64-10.5.2_en-US.tar.xz”# Create container which can run GUI application.cat <<EOF | lxc init ubuntu:18.04 lxd-ubuntu-1804-torbrowserconfig: environment.DISPLAY: :0 environment.PULSE_LATENCY_MSEC: “30” environment.PULSE_SERVER: /mnt/.pulse-native environment.QT_X11_NO_MITSHM: “1”devices: pulse: bind: container connect: unix:/run/user/1000/pulse/native listen: unix:/mnt/.pulse-native mode: “0666” security.gid: “1000” security.uid: “1000” type: proxy x11: bind: container connect: unix:@/tmp/.X11-unix/X0 listen: unix:@/tmp/.X11-unix/X0 security.gid: “1000” security.uid: “1000” type: proxyEOFlxc start lxd-ubuntu-1804-torbrowser# Settings on container.cat <<EOF | lxc exec lxd-ubuntu-1804-torbrowser — /bin/sh -ex# Add user who runs Tor Browser.useradd -m “${LXD_TORBROWSER_USER}” -d “${LXD_TORBROWSER_HOME}”# Install packages.apt update -yapt upgrade -yapt install -y wget pulseaudio ibus-mozc dbus-x11 firefox fonts-takaosed -i “s/; enable-shm = yes/enable-shm = no/g” /etc/pulse/client.conf# The umount.target prevents container reboot on CentOS 7’s LXD.find /lib/systemd/system -maxdepth 1 -type f -exec sed -e ‘s/umount.target//g’ -i {} \;systemctl –system daemon-reload# Setting for mozc-jp.su – “${LXD_TORBROWSER_USER}” -c “dconf write /desktop/ibus/general/preload-engines “[‘mozc-jp’]””# Run torbrowser-launcher to download Tor Browsercat <<eof | su – “${LXD_TORBROWSER_USER}” -c /bin/shwget -q “${TORBROWSER_URL}” -O – | tar Jxf -mv tor-browser_en-US/* “${LXD_TORBROWSER_HOME}”rmdir tor-browser_en-USeof# Create Tor Browser wrapper.sudo -u “${LXD_TORBROWSER_USER}” mkdir -p “${LXD_TORBROWSER_HOME}/bin”cat <<eof | sudo -u “${LXD_TORBROWSER_USER}” tee “${LXD_TORBROWSER_HOME}/bin/lxd-ubuntu-1804-torbrowser”#!/bin/sh -eexport DISPLAY=:0export PULSE_SERVER=unix:/mnt/.pulse-nativeexport QT4_IM_MODULE=ibusexport QT_IM_MODULE=ibusexport XMODIFIERS=”@im=ibus”export GTK_IM_MODULE=ibus# If you have already run ibus-daemon -xd, ibus-daemon -xd does nothing.ibus-daemon -xd”${LXD_TORBROWSER_HOME}/Browser/start-tor-browser” “\$@”eofchmod a+x “${LXD_TORBROWSER_HOME}/bin/lxd-ubuntu-1804-torbrowser”EOF# lxc restart causes the following error.# Error: Create restart (for start) operation: Instance is busy running# a stop operationlxc stop lxd-ubuntu-1804-torbrowserlxc start lxd-ubuntu-1804-torbrowser# Create Tor Browser desktop file on host machine.PNG=”${LXD_TORBROWSER_HOME}/Browser/browser/chrome/icons/default/default128.png”mkdir -p “${HOME}/.local/share/icons”lxc file pull lxd-ubuntu-1804-torbrowser”${PNG}” “${HOME}/.local/share/icons/lxd-ubuntu-1804-torbrowser.png”mkdir -p “${HOME}/.local/share/applications”cat <<EOF > lxd-ubuntu-1804-torbrowser.desktop[Desktop Entry]Version=1.0Type=ApplicationName=LXD Tor BrowserComment=Run Ubuntu 18.04’s Tor Browser on LXDCategories=Network;WebBrowser;Security;Icon=${HOME}/.local/share/icons/lxd-ubuntu-1804-torbrowser.pngExec=lxc exec lxd-ubuntu-1804-torbrowser — su – “${LXD_TORBROWSER_USER}” -c “${LXD_TORBROWSER_HOME}/bin/lxd-ubuntu-1804-torbrowser %k”EOFdesktop-file-install –dir=”${HOME}/.local/share/applications” –delete-original lxd-ubuntu-1804-torbrowser.desktop

5 実行結果

0001_lxd-ubuntu-1804-torbrowser.png

]]> tagPlaceholderカテゴリ: centos-7, lxd, tor, 202107

Android | Linux | SDL - Narrow Escape