Ubuntu

【Linux】トラックパッドでジェスチャーを可能にする

Linux(Ubuntu)を使用していると、Macのトラックパッドジェスチャーが使いたくなることがあります。特にワークスペースの移動や、戻る(←)・進む(→)が恋しくなります。libinput-gesturesを使用すれば、Macほど快適ではありませんがLinuxでもある程度はできるようになります。 ...続きを読む

Ubuntu 20.04インストールしてからやること

2年ぶりのLTSであるUbuntu 20.04がリリースされました。さっそくインストールして初期設定を楽しむことにしました。内容をつらつら〜っと書いていきます。

環境

  • Ubuntu 20.04(日本語Remix版ではない)
  • Thinkpad X395

言語を日本語にしてインストールしておけば、直後からMozcが使えるようになってます(※GUIでの設定変更については後述)。Thinkpadのトラックポイント・トラックパッドもどちらも問題なく使用できます。超簡単。

というわけでさっさとやったことリストに行きます。

システム系

Ubuntuシングルサインオン

正直なんのメリットがあるのかよく分からんのですが(笑)、Ubuntuファンとしてアカウントを登録してログインしておきました。多分不要だと思います。

ダークテーマに変える

設定-[外観]から変更可能になってます。

世の中ダークテーマが流行りですな。

マウス設定変更

設定-[マウスとタッチパッド]で

  • マウスのスピードを最速に
  • ナチュラルスクロールをONに
  • タッチパッドの速度を最速に

キーボード設定変更

設定-[ユニバーサルアクセス]のタイピング欄でリピートキーの設定を変更。

タイ語を入力ソースに追加

設定-[地域と言語]の入力ソースで+ボタンを押してタイ語を追加する。まあ普通の人はタイ語のタイピングなんて必要ないでしょうが・・・。

不要なアプリ削除

Ubuntu Softwareを起動して、インストール済みのタブを選択。使用しなさそうなアプリをガンガン削除する。以下は私の場合。

削除したアプリ名 理由
AisleRiot やらない
Solitaire やらない
Calendar Googleカレンダー使うから
Document Scanner スキャナ持ってないし
Déjà Dup バックアップツール 別の方法でバックアップするし
GNOME マインスイーパー やらない
GNOME 上海 やらない
GNOME 数独 やらない
Remmina リモートデスクトップしないし
Seahorse Bitwarden使うし
To Do Microsoft To-Do使うし
Rhythmbox Lollypop使うし

Gnome Tweaksインストール

Ubuntu Softwareからインストールします。Tweakする内容は、

  • CapslockをControlに
  • マウスのアクセラレーションプロファイルをAdaptiveに
  • バッテリー残量を表示する
  • トップバーに曜日を表示する
  • 静的ワークスペースに 数は3つにする

ファイルの設定

Windowsでいうエクスプローラーのことです。

  • 詳細表示に切り替える
  • サイズ・種類・更新日を表示する

ホーム内のディレクトリを英語にする

日本語だとターミナルでcdするときとかに面倒臭いです。英語に変えます。

ターミナル(端末)を開いて次のコマンドを実行します。

$ LANG=C xdg-user-dirs-gtk-update

ダイアログが表示されるので、2度と聞かれないようにチェックを入れてUpdate…でリネーム完了。

mozcの設定

日本語でインストールするとMozcは最初からインストールされています。しかしなぜかGUIの設定ツールが入っていません。手動で入れましょう。

$ sudo apt install mozc-utils-gui

これで地域と言語の歯車アイコンで起動できるようになります。

Macも使っているので、[キー設定の選択]でことえりにしておきます。

VPNの追加

OpenVPNの場合、ovpnファイルがあればインポートするだけで完了です。

L2TP/IPsecの場合はGUIの設定ツールをインストールしてやります。

$ sudo apt install network-manager-l2tp-gnome

設定-[ネットワーク]でVPNの+ボタンを押すと、L2TPが増えてます。

google-drive-ocamlfuseのインストール(Googleドライブ)

Linux版の「バックアップと同期」ツールはGoogleからリリースされていません。しょうがないのでgoogle-drive-ocamlfuseというツールを使用します。「バックアップと同期」と違ってローカルにはフイルの実態を置きません。Windowsでいうネットワークドライブみたいな感じだと思っておけばいいと思います。

$ sudo add-apt-repository ppa:alessandro-strada/ppa
$ sudo apt-get update
$ sudo apt-get install google-drive-ocamlfuse

続いて設定します。私は2つのアカウントを使っているので両方設定しておきます。

まずはマウントポイントをmkdirして、google-drive-ocamlfuseコマンドを叩いて1つめのアカウントで認証を完了します。以下例では~/GoogleDrives/hogeにマウントしてます。

$ mkdir ~/GoogleDrives/hoge
$ google-drive-ocamlfuse ~/GoogleDrives/hoge

2つ目のアカウントもほぼ一緒。-labelオプションを付ける点が異なります。

$ google-drive-ocamlfuse -label 適当なラベル ~/GoogleDrives/fuga

認証が済んだらどちらも正常にマウントできているか確認しておきましょうね。

このままだと自動起動してくれないので、自動起動用スクリプトを書きます。内容はさっきやったことです。

$ vi ~/bin/google-drive-ocamlfuse-start.sh
◆google-drive-ocamlfuse-start.sh
#! /usr/bin/bash

google-drive-ocamlfuse ~/GoogleDrives/hoge
google-drive-ocamlfuse -label 適当なラベル ~/GoogleDrives/fuga

実行権限も付けて。

$ chmod +x ~/bin/google-drive-ocamlfuse-start.sh

あとはスタートメニューから[自動起動するアプリケーション]を起動して先程のスクリプトを登録しておきます。

MP4とか再生できるように

大人の事情で初期状態ではMP4などが再生できません。追加パッケージをインストールします。

$ sudo apt-get install ubuntu-restricted-extras
$ sudo apt-get install ffmpeg

途中同意を求められたら同意してください。

CopyQインストール

クリップボード拡張アプリです。履歴からペーストできたり定型文登録できたりととても便利です。

$ sudo apt install copyq

適当に設定してください。私は、

  • 自動的に起動する オンに
  • グローバルショートカット マウスカーソルの下にメインウィンドウを表示をSuper+Ctrl+Vに
  • タブを追加して定形文を少々登録

Easystrokeのインストール

マウスジェスチャーアプリです。Ubuntu Softwareからインストールできます。設定した内容は次のような感じ。

ジェスチャー 名前 キー
前のタブ Ctrl+PageUp
次のタブ Ctrl+PageDown
閉じる Ctrl+W

戻る・進むボタンはマウスに付いてるのでここでは登録しませんでした。

libinput-gesturesのインストール

トラックパッドでの3・4本指ジェスチャーを可能にするツールです。

ちょっと長くなるので別の記事にしました。

【Linux】トラックパッドでジェスチャーを可能にする

xkeysnailのインストール

キーマップ変更ツールです。

これもちょっと長くなるので別の記事にしました。

xkeysnailでキーマップ変更から自動起動まで

playerctlのインストール

LollypopやSpotify、Youtube(ブラウザ)など各種プレイヤーに対し再生や一時停止などをコマンドラインから操作できるようになるツールです。なぜこれを使用するかというと、アプリケーションによっては再生・一時停止などのメディアキーに対応してないものがあるからです。playerctlのコマンドをショートカットキーに登録しておけば、あらゆるプレイヤーを同じショートカットキーで操作できるので便利です。

altdesktop/playerctl

$ sudo apt install playerctl

インストールしたら試しに何か音楽ファイルを再生してみましょう。そうしたら次のコマンドを叩くことで一時停止・再生がトグルできます。

$ playerctl play-pause

その他のコマンドについては公式のREADMEを見てください。

あとは各種playerctlコマンドをOSのショートカットに登録するだけ。設定の[キーボードショートカット]を開き、一番下の+ボタンで新しいショートカットを追加します。

こんな感じで「再生/一時停止:playerctl play-pause」「前の曲:playerctl previous」「次の曲:playerctl next」の3つをショートカットとして登録しました。

アプリ系

Google Chromeインストール

公式からdebをダウンロードしてインストールします。

ダウンロードしたdebファイルを右クリック→別のアプリケーションで開く-[アプリケーションのインストール]で開くとインストールできます。

Thunderbirdの設定

デフォルトでインストールされてます。まともなメーラーがないので仕方なく使ってます。アカウントの設定とかします。

Poddrのインストール

ポッドキャストアプリです。最初からインストールされているRhythmboxでも聴けるんですが、なんかイマイチもさいです。

というわけでPoddrというアプリをインストールします。

Ubuntu Softwareで検索すると見つかるはず。

こんな感じのアプリです。

結構使いやすげ。

Lollypopのインストール

ローカルにある音楽はLollypopで再生してます。

これもUbuntu Softwareからインストールできます。

Spotifyのインストール

ちゃんとLinux版があります。公式いわくUbuntu Softwareからのインストールを推奨してるみたい。というわけで入れましょう。

インストールしたらログインして、設定を変更します。

  • 言語を日本語に
  • 音量の均一をオフに(コンプレッサーがかかるので若干音質が悪くなるそうな)
  • 友達のアクティビティを表示するをオフに
  • 自動再生をオフに

Cawbirdのインストール

LinuxにはろくなTwitterクライアントがないのですが、まだマシかなーというのがこのCawbirdです。

Ubuntu Softwareからインストールできます。

ヘビーユーザーではない私には十分かな。

Skypeをインストール

zoomなんてオシャレなものは使いません。硬派にSkypeです。

公式サイトからLinux版(deb)をダウンロードしてインストールしましょう。

少し設定を変えておきます。

  • 背景をぼかす
  • 字幕を表示する

Webアプリ(Chromeショートカット)

よく使うWebアプリはGoogle Chromeでショートカットにしておくと便利です。デスクトップにアイコンが追加され、Dockにアイコンを追加することもできるので、通常のアプリと変わらずに使用できます。

私は以下のWebアプリのショートカットを作りました。

  • Googleカレンダー
  • Microsoft To-Do

ショートカットはChromeのメニューからできますよ。ショートカットを作成したいページに訪れ、設定メニューの中の[その他のツール]-[ショートカットを作成]でOKです。ウィンドウにしておいたほうが便利だと思います。

ショートカットを作成するとデスクトップにアイコンファイルができるのですが、このままではダブルクリックで起動できません。アイコンファイルを右クリックして[起動を許可する]を選択しておくと、次回以降はダブルクリックで起動できるようになります。

開発系

fishシェルのインストール

デフォルトですでに便利だというfishシェルを使います。公式の手順でもいいですが、aptでインストールできました。

$ sudo apt install fish

ログインシェルはbashから変更しないほうがいいと思います。次節でTerminatorというターミナルアプリをインストールしますので、そちらの設定でfishを使用するようにします。

terminatorインストール

Gnome端末だとショボいのでTerminatorをインストールします。

$ sudo apt install terminator

ターミナル内で右クリックして[設定]。

  • defaultプロファイルの背景を0.8透過に
  • defaultプロファイルのコマンドで[ログイン・シェルではなくカスタムコマンドを実行にチェックを入れて /usr/bin/fish を入力。

NeoVimインストール

vimでもいいのですが、なんとなくNeoVim派なので。

$ sudo apt install neovim

gitインストール

開発には必須です。

$ sudo apt install git

最低限の設定もしておきます。

$ git config --global user.name "ユーザー名"
$ git config --global user.email メールアドレス
$ git config --global core.editor nvim

githubに公開鍵登録

gitプロトコル使う場合は鍵認証が便利です。

$ bash
$ ssh-keygen -t rsa -b 4096 -C "メールアドレス"
〜パスフレーズ使わない私はエンター連打〜
$ eval "$(ssh-agent -s)"
$ ssh-add ~/.ssh/id_rsa
$ cat ~/.ssh/id_rsa.pub | xclip -selection c # クリップボードにコピー

githubのSettingsページからSSH KEYを登録する。xclipコマンドでクリップボードにコピーされた公開鍵をペーストする。

fzfインストール

高速ファインダをインストールします。

$ sudo apt install fzf

curlインストール

何かと必要になりますから。

$ sudo apt install curl

ドットファイル類pull

ドットファイル類はPrivateなgithubレポジトリにおいてあるのでpullしてきます。ここは各個人いろんなやり方があるんでしょうね。

Javaインストール

バージョン切り替えて使うとかハードなJavaユーザーの人はSDKMANを使ったほうがいいのかもしれませんが、私はJDK8をたまーに使用するだけなので、aptで入れちゃいます。openjdkにしました。

$ sudo apt install openjdk-8

memcachedインストール

仕事で使用するので。

$ sudo apt install memcached
$ sudo systemctl status memcached

よし、ちゃんと起動してるな。

Powerline fontsインストール

かっこいいターミナルを作るには必須のフォント。公式の手順通りですが、以下の手順でインストールできます。

$ git clone https://github.com/powerline/fonts.git --depth=1
$ cd fonts
$ ./install.sh
$ cd .. rm -rf fonts

Cascadia codeのインストール

Microsoft製のフォントです。プログラミングに向いてます。

$ sudo apt install fonts-cascadia-code

これで使えるようになってます。

IntelliJインストール

VSCodeも好きなんですが、やっぱりJetBrainsのIDEは最高です。有料のUnlimitedユーザーなので使わないと元取れない気もするし笑。

  1. 公式サイトでLinux版をダウンロード
  2. 展開したフォルダを ~/Applications の中に配置
  3. binidea.shを実行

次回以降は普通にスタートメニューから起動できます。

Slackインストール

もはやデベロッパーには必須のツールでしょう。

これは公式からDEB版をダウンロードしてインストールします。

nodenvのインストール

nodeのバージョン管理ができます。

$ curl -fsSL https://raw.githubusercontent.com/nodenv/nodenv-installer/master/bin/nodenv-installer | bash

以下をconfig.fishに追加します。※fishシェルです

set -x PATH $HOME/.nodenv/bin $PATH
status --is-interactive; and source (nodenv init -|psub)

あとは好きなバージョンのnodeをインストールしましょう。私は10.13.0をインストールしました。

$ nodenv install 10.13.0

dockerのインストール

言わずもがなdockerです。公式の方法だとまだUbuntu 20.04のレポジトリがなかったみたい?

というわけでaptでインストールしました。sudoなしで実行できるようにもしておきます。

$ sudo apt install docker.io
$ sudo systemctl enable --now docker
$ sudo usermod -aG docker あなたのUbuntuユーザー名

ここで一旦ログインしなおす必要ありです。ログイン後にちゃんと動くか試してみます。

$ docker run hello-world

ちゃんとHello, Worldできましたか?

composeもよく使うのでインストールしておきます。

$ sudo apt install docker-compose

おしまい

ざっとこんな感じです。

Ubuntu 20.04の使用感としては「ほとんど苦労せずに快適に使える」ですね。VineLinux使ってたユーザーとしては、Linuxデスクトップってこんなにもまともになってきたんだなあと感慨深いものがあります。

しかし(Macのおかげで)決して流行らないと思いますが・・・笑

UbuntuでOpenVPN(MD5対応)

今さら感満載だが備忘録のために書く。

OpenVPNの設定

前提として.ovpnファイルがあるということで。

  1. gnome用のGUI設定ツールをインストールする
    $ sudo apt install network-manager-openvpn-gnome
  2. [設定]-[ネットワーク]のVPNセクションで[+]をクリックしてVPNを追加する
  3. [ファイルのインポート]を選択する
  4. .ovpnファイルを選択する

基本はこれだけ。ただ、私のVPNはTLS認証でMD5という今や甘々の認証方式を使っていたためにエラーが発生して接続できなかった。本来は認証方式をもっと安全なものに変更するべきなのだろうが、とりあえずで使ってるようなVPNだったため、このままMD5でつながるように設定してみた。

どうやらセキュリティレベルを下げることで接続できるようになる模様。セキュリティレベルを下げる設定というのは.ovpnファイルの[vpn] セクションに以下の一行を追加するだけ。

tls-cipher=DEFAULT:@SECLEVEL=0

このファイルをGUI設定画面からインポートすればいい。

これでOK!なのはずだが、ちょっと困ったことに、インポート後にGUIの設定画面からこのVPNの設定変更してしまうと、さっきのセキュリティレベルの記述がクリアされてしまうみたい・・・。

というわけでGUIで設定変更したあとに必ず、以下の場所のファイルを編集する。

$ sudo vi /etc/NetworkManager/system-connections/<VPN名>

変更内容は先程と同じで、[vpn] セクションにtls-cipher=DEFAULT:@SECLEVEL=0 を追記する。変更が済んだらサービスを再起動する。

$ sudo systemctl restart network-manager.service

ポイントは一旦上手くつながったら二度とGUIで設定を変更しないこと!ダサいけど仕方ないよね・・・。

参考

Ubuntu14.04にVPNサーバを構築してMacから繋げる

Ubuntu 14.04上にVPNサーバを構築して、クライアント(Mac)から接続するまでの手順。ほとんど先人の手順通りにやっただけだが、備忘録のために書き留めておく。

環境

  • Ubuntu 14.04-Server
  • OpenVPN
  • Mac OS X 10.11 El Capitan

サーバ:OpenVPNのインストール

必要パッケージをaptでどかっとインストールする。

📄vars
$ sudo apt-get install openvpn libssl-dev openssl easy-rsa

サーバ:証明書と鍵作成

続いて証明書を作成するため、証明書用ディレクトリを作成する。

$ sudo make-cadir /etc/openvpn/easy-rsa

以下の作業はrootになって実施する。

$ cd /etc/openvpn/easy-rsa/

$ vi varsにてvarsファイルの以下の箇所を編集する。なんちゃって証明書なので、適当でも構わない。

...
export KEY_COUNTRY="ここに国名を入力"
export KEY_PROVINCE="ここに県名を入力"
export KEY_CITY="ここに都市名を入力"
export KEY_ORG="ここに組織名を入力"
export KEY_EMAIL="ここにメールアドレスを入力"
export KEY_OU="ここに組織単位?を入力"
...

編集が終わったvarsをネタにサーバ鍵を作成する。(最後のserverという引数がサーバ鍵名になるが、serverで特に問題ない)

📄server.conf
$ source vars && ./clean-all && ./build-dh && ./pkitool --initca && ./pkitool --server server

keysディレクトリ内に色々ファイルが出来上がってるはずなので、ここでOpenVPN鍵を作成する。

$ cd keys
$ openvpn --genkey --secret ta.key

完成した鍵をOpenVPNディレクトリにコピーする。

$ cp server.crt server.key ca.crt dh2048.pem ta.key /etc/openvpn/

サーバ:OpenVPNサーバ設定

server.confファイルを作成する。サンプルファイルがあるのでこいつをコピーする。

$ cd /etc/openvpn/
$ cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz .
$ gzip -d server.conf.gz

vi server.confで設定ファイルを編集していく。

まずは以下の記述をファイル末尾に追加する。

mode server
tls-server

生成したpemファイル名にあわせて変更する。

📄server.conf
;dh dh1024.pem
dh dh2048.pem

routeの設定。元々コメントしてあった1行目をイキにした。

📄server.conf
push "route 192.168.10.0 255.255.255.0"
;push "route 192.168.20.0 255.255.255.0"

デフォルトゲートウェイの設定。コメントをはずす。

📄server.conf
push "redirect-gateway def1 bypass-dhcp"

DNSの設定。cat /ect/resolv.confでDNSサーバを調べて、以下のように編集する。

📄server.conf
;push "dhcp-option DNS 208.67.222.222"
;push "dhcp-option DNS 208.67.220.220"
push "dhcp-option DNS xxx.xxx.xxx.xxx"
push "dhcp-option DNS yyy.yyy.yyy.yyy"

クライアント間の通信を有効にするため、コメントをはずす。

📄server.conf
client-to-client

TLSを有効にするため、コメントをはずす。

📄server.conf
tls-auth ta.key 0

暗号方式の設定。今回はAES-256-CBCを使用するので、以下のように記述する。

📄server.conf
;cipher BF-CBC        # Blowfish (default)
;cipher AES-128-CBC   # AES
;cipher DES-EDE3-CBC  # Triple-DES
cipher AES-256-CBC

OpenVPNの実行権限を変えるため、コメントをはずす。

📄server.conf
user nobody
group nogroup

編集が終わったら、忘れずにopenvpnを再起動しておく。

📄/etc/ufw/sysctrl.conf
$ sudo service openvpn restart

サーバ:ファイアーウォール(ufw)の設定

ufwを使ってファイアーウォールを設定する。まずはopenvpnを許可する。

$ sudo ufw allow openvpn

IPフォワーディングを許可する必要があるので、/etc/ufw/sysctrl.confの以下の部分のコメントをはずす。

net/ipv4/ip_forward=1

続いて、/etc/ufw/before.rulesを編集していく。

最初に先頭当たりに次の記述を追記する。

📄/etc/ufw/before.rules
#
# rules.before
#
# Rules that should be run before the ufw command line added rules. Custom
# rules should be added to one of these chains:
#   ufw-before-input
#   ufw-before-output
#   ufw-before-forward
#

~~~~~~~~~~ ここから ~~~~~~~~~~
# rules for NAT Table of iptables
# required line for ufw
*nat
:POSTROUTING ACCEPT [0:0]

# Forward traffic from OpenVPN through eth0.
-A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

# tell ufw to process the lines
COMMIT
~~~~~~~~~~ ここまで ~~~~~~~~~~

# Don't delete these required lines, otherwise there will be errors
*filter
...

さらに以下の箇所にフォワーディングの許可を追加する。

📄/etc/ufw/before.rules
...
# quickly process packets for which we already have a connection
-A ufw-before-input -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A ufw-before-output -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A ufw-before-forward -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

~~~~~~~~~~ ここから ~~~~~~~~~~
-A ufw-before-input -i tun+ -j ACCEPT
-A ufw-before-output -i tun+ -j ACCEPT
-A ufw-before-forward -s 10.8.0.0/24 -j ACCEPT
-A ufw-before-forward -d 10.8.0.0/24 -j ACCEPT
~~~~~~~~~~ ここまで ~~~~~~~~~~

# drop INVALID packets (logs these in loglevel medium and higher)
...

編集が終わったら、ufwをリロードしておく。

📄任意の名前.ovpn
$ sudo ufw reload

これにてサーバ側の設定は完了!

サーバ:クライアント鍵の生成

VPNサーバの設定は完了したが、クライアント毎に鍵を作ってあげる必要がある。rootになって

$ cd /etc/openvpn/easy-rsa/
$ ./build-key [クライアント鍵の名前]

Enter連打でkeys内に鍵が出来上がっているはず。

クライアント(Mac):Tunnelblickの設定

VPNソフトのTunnelblickをインストールしておく。

インストールしたら、サーバ側で生成した鍵たちをscpか何かで持ってくる。必要なファイルは次の通り。

クライアント鍵の名前.crt
クライアント鍵の名前.key
ca.crt
ta.key

これらのファイルを同一フォルダに入れて、その中に任意の名前.ovpnというファイルを作成する。中身は以下のようにする。VPNサーバのアドレスや鍵の名前は適宜修正して。

client
tls-auth ta.key 1
dev tun
proto udp
remote VPNサーバのアドレス 1194
ca ca.crt
cert クライアント鍵の名前.crt
key クライアント鍵の名前.key
resolv-retry infinite
nobind
persist-key
persist-tun
comp-lzo
verb 3

cipher AES-256-CBC

出来上がったovpnファイルをダブルクリックでTunnelblickが起動する。上手くVPNに接続できたら成功!

参考にしたサイト