LubuntuにOpenVPNの設定をしてみた。

Lubuntu24.04LTSにOpenVPNの設定をしてみました。利用したVPNサーバーは筑波大学の学術実験プロジェクトのものです。サイトには利用できるVPNサーバーの一覧があります。利用したいVPNサーバーを決めて「OpenVPN設定ファイル」をクリックします。

OpenVPN設定ファイルのダウンロード画面が表示されます。DDNSホスト名が埋め込まれているovpnファイルと、IPアドレスが埋め込まれているovpnファイルがあります。どちらにするかですが、サイトには以下のヒントが記載されています。

多くの場合は、DDNSホスト名が埋め込まれている.ovpnファイルを使用することを推奨します。接続先のVPNサーバーのIPアドレスが変化しても、DDNSホスト名は変わらないためです。ただし、いくつかの国・地域では opengw.net という DDNSのドメイン名へのアクセスが禁止されている場合があります。このような場合は、IPアドレスが直接埋め込まれている.ovpnファイルを利用してください。

上記にUDPとTCPの両方のプロトコルへのリンクがある場合は、いずれか安定して接続できるほうを利用してください。一般的に、ポート番号が2000以下であれば安定して利用できます。多くのファイアウォールではTCPを通過し易いですが、もしUDPが利用可能な場合は高速なUDPをお勧めします。

今回はDDNSホスト名が埋め込まれているTCPのovpnファイルをダウンロードします。

ダウンロードしたovpnファイルですが、Lubuntuではこのファイルをそのまま取り込めません。必要な部分を切り出して別のファイルを作成します。作成するファイルは以下です。

CA証明書
ユーザー証明書
ユーザープライベートキー

CA証明書を作成します。ovpnファイルから <ca> 〜 </ca> で囲まれた部分を切り出します。

切り出した部分を別ファイル(テキストファイル)にして保存します。保存する際のファイル名はovpnファイルの末尾に -ca を付けて拡張子を.pemに変えたものです。

ovpnファイル
vpngate_vpn165275781.opengw.net_tcp_995.ovpn
 ↓
CA証明書
vpngate_vpn165275781.opengw.net_tcp_995-ca.pem

同様にユーザー証明書、および、ユーザープライベートキーを作成します。

ユーザー証明書
<cert> 〜 </cert> で囲まれた部分を切り出す。
ovpnファイルの末尾に -cert を付けて拡張子を.pemに変える。
 ↓
vpngate_vpn165275781.opengw.net_tcp_995-cert.pem

ユーザープライベートキー
<key> 〜 </key> で囲まれた部分を切り出す。
ovpnファイルの末尾に -key を付けて拡張子を.pemに変える。
 ↓
vpngate_vpn165275781.opengw.net_tcp_995-key.pem

これらの3ファイルはOpenVPNの設定の際に使用します。

OpenVPNの設定をする前にパッケージの確認をしておきます。LubuntuでOpenVPNを使用するには以下のパッケージが必要です。

network-manager-openvpn
network-manager-openvpn-gnome

見てみると network-manager-openvpn は入っていましたが network-manager-openvpn-gnome は入っていないようでした。ですのでインストールをします。

$ sudo apt install network-manager-openvpn-gnome

インストールされたパッケージの確認をします。

$ dpkg -l | grep openvpn

それではOpenVPNの設定をしていきます。

Lubuntuの左下の青い鳥のマークから 設定 ⇒ 高度なネットワーク設定 とたどります。

ネットワーク接続の画面が表示されます。

「+」のボタンをクリックすると「接続の種類を選んでください」の画面が表示されますのでOpenVPNを選択します。

「作成」ボタンをクリックします。OpenVPNの設定画面が表示されます。

VPNタブに何も設定が表示されていない場合は network-manager-openvpn-gnome がインストールされているかを確認してみてください。

VPNタブで設定をする項目は以下です。

ゲートウェイ
タイプ
CA証明書
ユーザー証明書
ユーザープライベートキー
詳細ボタン

ゲートウェイにはovpnファイルに記載のある remote の部分(サーバー名とポート)を抜き出します。

サーバー名とポートは「:」でつなげます。①のような記載だった場合は②のように設定します。

①remote vpn165275781.opengw.net 995
 ↓
②vpn165275781.opengw.net:995

タイプには「証明書(TLS)」を選択します。

CA証明書、ユーザー証明書、ユーザープライベートキーには事前に用意したそれぞれのファイルを指定します。

vpngate_vpn165275781.opengw.net_tcp_995-ca.pem
vpngate_vpn165275781.opengw.net_tcp_995-cert.pem
vpngate_vpn165275781.opengw.net_tcp_995-key.pem

「詳細」ボタンをクリックします。

詳細画面の全般タブの設定内容です。

「TCP接続を利用する」および「Set virtual device」の項目にチェックを入れます。バーチャルデバイスは tun という名前でタイプは「TUN」を選びます。プロトコルはTCPでL3レベルでの接続の設定です。ovpnファイルでは以下の部分になります。

詳細画面のセキュリティタブの設定内容です。

暗号は「AES-128-CBC」、HMAC認証は「SHA-1」にします。ovpnファイルでは以下の部分になります。

詳細画面のTLS認証、Proxies、Miscのそれぞれのタブはデフォルトのままです。

右上の「Apply」ボタンをクリックして詳細画面を閉じます。

全般タブの設定内容です。

「全ユーザーがこのネットワークに接続可能とする」のチェックは外しておきます。

プロキシー、IPv4設定、IPv6設定のそれぞれのタブはデフォルトのままです。

すべての設定が完了したら「保存」ボタンをクリックして画面を閉じます。

ネットワーク接続の画面にVPNの設定が追加されます。

それではVPN接続をしてみます。

右下のネットワークのアイコン(扇型のマーク)をクリックして「既知の接続」からOpenVPNを選びます。

接続が確立します。

ifconfigでIPアドレスを見てみるとVPNトンネルが作成されていることがわかります。tun0の表示のところです。

切断する際は右下の鍵マークをクリックして「アクティブな接続」からOpenVPNを選びます。

Lubuntu24.04LTSにFirefoxをインストールしてみた。

Lubuntu24.04LTSにFirefoxをインストールしてみました。Lubuntuを最小構成でインストールしたのでブラウザが入っていなかったためです。

Firefoxはdebパッケージとsnap版がありますが、snap版のほうをインストールしました。ubuntuではFirefoxはsnap版に移行しているからという理由です。Lubuntuは軽量OSであり軽いことがメリットなのですが、snap版のFirefoxを入れたら重くなるだろうという気もしていますのでインストールするかどうかは本人の判断でしょう。

Lubuntuにはそもそもsnap自体が入っていないので、Firefoxを入れると自動でsnapdもインストールされます。

インストール自体は簡単です。aptでインストールをするとデフォルトでsnap版となります。

$ sudo apt update
$ sudo apt install firefox

snap版としてインストール出来たかの確認です。

$ snap list

ターミナルからCUIでFirefoxを起動することができます。

$ firefox

終了するときはターミナルに Ctrl+C を入力します。

Firefoxのアイコンをクリックしての起動ですが、アイコンの作成が必要です。アイコンと書きましたが .desktop という拡張子のファイルを作成します。

.desktop ファイルですが配置場所によって適用される範囲が異なります。

システム全体に適用する場合
/usr/share/applications/

ユーザー個別に適用させる場合
~/.local/share/applications/

~/.local/share/applications/ 配下に firefox.desktop というファイル名で配置をしてみます。記載内容は以下です。

$ vi firefox.desktop


[Desktop Entry]
Name=Firefox
Comment=Web Browser
Exec=/snap/bin/firefox %U
Icon=firefox
Terminal=false
Type=Application
Categories=Network
StartupNotify=true

firefox.desktop には実行権限を付けます。

$ chmod 700 firefox.desktop

ファイルマネージャからアプリケーション ⇒ インターネットと辿るとFirefoxのアイコンが出来ているのでクリックすればFirefoxが立ち上がります。

このアイコンへのパスは menu://applications/ となっているのですが、これは物理的なディレクトリではなく仮想的なメニュー表示用のスキーマです。Lubuntuが .desktop ファイルを読み込んで表示しているものです。

実はよく見ると(見なくてもですが)上記のインターネットのフォルダにはFirefoxが2つあります。1つはアイコンの表示があるものと、もう1つはアイコンの表示がないものです。

Firefoxを右クリックでプロパティを選ぶとファイルの情報がわかるのですが、アイコン表示のある方は firefox.desktop です。これは ~/.local/share/applications/ 配下に配置したものです。

ではアイコン表示がないものは何かと言うと、プロパティを見てみると firefox_firefox.desktop というファイルであることがわかります。

この firefox_firefox.desktop ですが、これはsnap版のFirefoxが自動生成した .desktop ファイルとのことです。このファイルの実体は以下にあります。

/var/lib/snapd/desktop/applications/

ですので ~/.local/share/applications/ 配下の firefox.desktop の作成は不要のようです。ただ firefox_firefox.desktop はアイコンの表示がなく少し気持ち悪いです。firefox.desktop を残してこちらを消そうと思ったのですが、手動で firefox_firefox.desktop を削除しても snap refresh や再インストールをすると復活してしまうとのことです。

そうなると firefox_firefox.desktop の方を残したほうが良いのか?という気にもなります。

firefox_firefox.desktop の中身を見たところIconの記載は Icon=/snap/firefox/6836/default256.png となっていて、実際のファイルもその場所にあります。アイコンのファイルがあるのに表示されないのは謎です。結局、解決しないままです。

とりあえず snap版のFirefoxが用意した firefox_firefox.desktop の方を残しておくことにしました。アイコンは未表示のままですが。。

[ 2025/10/27 追記 ]
snap版のFirefoxですが、チャットをしている途中で日本語入力ができなくなる事象が発生しました。日本語入力には Fcitx5 と Mozc を使っています。snap版のFirefoxはサンドボックスで動作するので、その外部にある Fcitx5 とはソケット通信でやりとりをするようです。Unix Socket でのやりとりです。このソケット通信が何らかの理由により切れてしまうことがあり、それにより日本語入力ができなくなるとのことです。ですのでsnap版のFirefoxはやめてdebパッケージのFirefoxを入れ直すことにしました。

snap版のFirefoxをアンインストールします。

$ sudo snap remove firefox

Mozilla公式リポジトリの追加をします。

$ sudo add-apt-repository ppa:mozillateam/ppa

aptコマンドの実行時にsnap版ではなくdebパッケージのほうをインストールするようにします。

$ echo '
Package: *
Pin: release o=LP-PPA-mozillateam
Pin-Priority: 1001
' | sudo tee /etc/apt/preferences.d/mozilla-firefox

Packageの指定はすべて(PPA提供の他のものも対象)としています。もしFirefoxだけに限定したい場合は「Package: firefox」とします。Pin-Priorityは優先度で、1001の指定によりほぼ強制的にこのリポジトリのものを使用するようになります。

パッケージリストを更新します。

$ sudo apt update

Firefoxをインストールします。

$ sudo apt install firefox

debパッケージのFirefoxがインストールされていることを確認します。

$ which firefox

/usr/bin/firefox であればdebパッケージがインストールされています。snap版のものは /snap/bin/firefox となります。

不要になったsnapデータも消しておきました。

$ sudo rm -rf /var/snap/firefox/
$ rm -rf ~/snap/firefox/

これでdebパッケージのFirefoxが使えるようになりました。これで終わりかと思っていたのですが、使ってみるとFirefoxの検索ボックスに日本語の入力ができません。。英字の入力はできます。

これを直すには追加で対応が必要でした(ほぼやり直し)。

今の環境を整理します。Fcitx5 をインストールしたときにフロントエンドモジュールも入れています。

fcitx5-frontend-gtk4
fcitx5-frontend-gtk3

Fcitx5 は入力メソッド(IME) ですが単体ではアプリと通信する仕組みを持たないようで、そのためフロントエンドモジュールが必要です。それがGTKのモジュールです。gtk3があれば大丈夫のようですが、最新はgtk4です。

Fcitx5 の日本語の設定もしています。ローカルディレクトリに .xprofile を作成して以下の内容を記載しています。

$ vi ~/.xprofile


export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"

この前提でFirefoxがGTKを正しく認識しているか確認をしてみました。確認方法です。

$ ldd $(which firefox) | grep gtk

実行結果は「動的実行ファイルではありません」となりました。これはインストールしたdebパッケージのFirefoxがバイナリではなくスタブスクリプトになっているためです。つまりdebパッケージではあるものの、実際にはsnap版にリダイレクトするラッパースクリプトがインストールされたようです。

これは求めていたものではないのでsnapに依存しない純粋なバイナリ版のFirefoxをインストールし直すことにしました。Mozilla公式サイトからバイナリ版のモジュールをダウンロードします。


$ wget 'https://download.mozilla.org/?product=firefox-latest&os=linux64&lang=ja' -O firefox-latest.tar.bz2

ダウンロード先URLに「&」が含まれているためURL全体をシングルクォートで囲っています。シングルクォートで囲まないと「&」がシェルのバックグラウンド実行として解釈されてしまいダウンロードがうまくいきません。

ダウンロードしたファイルを /opt 配下に配置します。ダウンロードしたファイルは .tar.bz2 という拡張子ですが、中身は .tar.xz 形式です。

$ sudo tar xJf firefox-latest.tar.bz2 -C /opt/

/usr/local/bin 配下にfirefoxという名前でラッパースクリプトを作成します。記載内容です。

$ cd /usr/local/bin
$ sudo vi firefox


#!/bin/bash
# 環境変数を指定して fcitx5 を有効にする
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx

# Firefox 実行
/opt/firefox/firefox "$@"

Firefoxを実行するモジュールとして /opt/firefox/firefox を指定します。

作成したスクリプトに実行権限をつけます。

$ sudo chmod +x firefox

ここまでやってからFirefoxを再起動すると日本語入力ができるようになりました。

復習を兼ねて作業内容を整理しておきます。

debパッケージのFirefoxですがインストール先は /usr/bin/firefox です。こちらのモジュールは使いません。使用するのは /usr/local/bin/firefox になります。

snap版でインストールしたFirefox
/snap/bin/firefox
⇒ 使用しない。

debパッケージのFirefox
/usr/bin/firefox
⇒ 使用しない。

バイナリ版のFirefox
/usr/local/bin/firefox
⇒ ラッパースクリプトであり実態は /opt/firefox/firefox になる。

環境変数のPATHの設定では /usr/bin より /usr/local/bin が優先されるため、コマンドラインからFirefoxを実行した場合、起動するFirefoxはバイナリ版のほうになります。

debパッケージのFirefoxは使用しないので削除しても良いです。Mozilla公式リポジトリも必要なくなったので ppa:mozillateam/ppa も削除可能です。残しておいてもどちらでも良いです。

.desktop ファイルですが /usr/share/applications/firefox.desktop は無効化します。この場所にある .desktop ファイルは(おそらく)debパッケージのFirefoxのインストール時に作成されたものです。

$ cd /usr/share/applications
$ sudo mv firefox.desktop firefox.desktop.disabled

~/.local/share/applications/ 配下に firefox.desktop ファイルを作成します。記載内容です。

$ cd ~/.local/share/applications
$ vi firefox.desktop


[Desktop Entry]
Name=Firefox(Official)
Exec=/usr/local/bin/firefox %u
Icon=firefox
Type=Application
Categories=Network
StartupNotify=true

~/.local/share/applications には userapp-Firefox-XXXXXX.desktop というファイルが自動で生成されています。これはFirefoxの起動時に「既定のアプリに設定」とした場合、一時的に生成されるデスクトップエントリファイルとのことです。残しておくと firefox.desktop と競合してしまうときがあるらしいのですが、userapp-Firefox-XXXXXX.desktop は消しても復活してしまうためそのままにしました。Execパラメータが /opt 配下のFirefoxであるため問題ないと思います。

snap版のFirefoxをインストールした際にアイコンが表示されない問題がありましたが、バイナリ版のFirefoxではアイコン表示ができました。

Iconの指定を /opt/firefox/browser/chrome/icons/default 配下のpngファイルにすると表示できないのは不明のままです。

表示できる
Icon=firefox

表示できない
Icon=/opt/firefox/browser/chrome/icons/default/default48.png

バイナリ版のFirefoxですが更新は手動でやるしかないようです。ブラウザ内の「Firefoxを更新」のボタンは無効化されているとのことです( /opt 配下を操作する権限がないため)。ですので最新版のFirefoxが出た場合はtarファイルを自分でダウンロードして /opt 配下を上書きする必要があります。