ownCloudのセキュリティ&セットアップ警告

ownCloudの管理→一般に行くとこんな警告が出ます。

セキュリティ&セットアップ警告

  • トランザクションによるファイルのロックは、既定の低速データベースによるロックではなく、メモリベースによるロックを使用するように構成する必要があります。詳細については、ドキュメント↗ を参照してください。
  • HTTP ヘッダ の “Strict-Transport-Security” が少なくとも “15552000” 秒に設定されていません。 セキュリティを強化するため、セキュリティTipsを参照して、HSTS を有効にすることをおすすめします。
  • メモリキャッシュが設定されていません。パフォーマンスを向上するために、可能であれば memcache を設定してください。 より詳しい情報については、を参照してください。

インストールガイド ↗をもう一度チェックして、ログ にあるエラーまたは警告について確認してください。

しかし、何をどうしろってのがよくわからないので調べました。

最初のトランザクションによるファイルのロックはマニュアルによると、 If your ownCloud server still has the File Locking app, you must visit your Apps page to verify that it is disabled; the File Locking app and Transactional File Locking cannot both operate at the same time. ということだけど、Appsに行ってもそんなもんはない。結局三つめのメモリキャッシュを設定したらなおりました。

二つめのStrict-Transport-Securityに関しては、https://doc.owncloud.com/server/10.4/admin_manual/configuration/server/harden_server.html#enable-http-strict-transport-security に従い、/etc/apache2/sites-enabled/default-ssl.conf の最後のほうに

       <IfModule mod_headers.c>
               Header always set Strict-Transport-Security “max-age=15552000; includeSubDomains”
       </IfModule>
       </VirtualHost>
</IfModule>

としてからapache2をリスタートして解決。

みっつめはとても苦労しました。PHP7.1とPHP7.3が混在してたこともややこしくしてたけど、とりあえずやったことを列挙しておきます。たぶん必要ないことも含め。基本のマニュアルは https://doc.owncloud.org/server/10.4/admin_manual/configuration/server/caching_configuration.html#memcached です。

sudo apt install php-apcu redis-server redis
sudo phpenmod apcu
sudo phpenmod redis
sudo systemctl restart apache2

ここで
sudo -u www-data php /var/www/owncloud/occ integrity:check-core
として何もエラーが出なければOK。あとは /var/www/owncloud/config/config.php の最後に

 ‘memcache.local’ => ‘\OC\Memcache\APCu’,
 ‘memcache.locking’ => ‘\OC\Memcache\Redis’,
 ‘redis’ => [
   ‘host’ => ‘localhost’,
   ‘port’ => 6379,
 ],

と追加しておけばいいです。そして再度apache2をリスタート。

nautilusのゴミ箱

nautilusで間違えて数十GBのフォルダをゴミ箱に入れてしまいました。

あわてて「ゴミ箱から元に戻す」をクリックしても、フォルダがでかすぎるせいかnautilusはフリーズ状態に。

元々ゴミ箱なんかほとんど使ってなかったので知らなかったけど、なんとなく
~/.Trash あたりに移動されただけだろと思ってたらみつからず。

findでちゃんと探すと

~/.local/share/Trash/files

なんてところにありました。ここから単に元の場所にmvして解決。ゴミ箱なんていらん気が。

minidlnaが立ち上がらない

さて、BuffaloのWiFiルータのメディア・サーバが使えなくなったので、以前使っていたRaspberry Piのminidlnaを有効にします。しかし、ステータスがexitedになって上がらない。ログにも何にも出ず。

いったん dpkg -r minidlna して入れなおすと、今度はログに

[2020/05/29 18:02:00] minidlna.c:355: warn: Creating new database at /var/cache/minidlna/files.db
[2020/05/29 18:02:01] minidlna.c:367: fatal: Failed to clean old file cache!  Exiting…

などと出ます。そこで思いついて /var/cache/minidlna の下を全部消すと動くようになりました。

ownCloudの更新とSamba外付けストレージ(結局失敗)

また日が開いてしまいました。

ownCloudのデータのディスクを移動したく、ついでにRaspberry PiでownCloudを10.2から10.4に上げてみると、PHPが7.0じゃだめで7.1が要るという。Raspbian GNU/Linux 10じゃ7.1はないんですよ。こんなのちゃんとdependencyで見てほしいぞ。

しょうがないので、https://raspberrypi.stackexchange.com/questions/70388/how-to-install-php-7-1/70394 を参考に

In /etc/apt/sources.list change stretch to buster, which is the next-stable/testing repository.
Update System sudo apt-get update && sudo apt-get upgrade
Remove previous PHP sudo apt-get remove ‘^php.*’
Install PHP 7.1 sudo apt-get install php7.1-fpm php7.1-cli or sudo apt-get install php7.1

で上げます。ownCloudのデータベースを移動するのは前はなぜかうまく行かなかったので、スクラッチから作って、現状のデータをアップするつもり。そこで /var/www/owncloud/config/config.php を消して最初からやりなおすと…

なんでこんなにいろいろ言われるんだろ?

すこしぐぐって
sudo systemctl reload apache2
とやると少し減ったけど、まだ本当にいろいろ足りないらしい。

sudo apt install php7.1-zip php7.1-sqlite3 php7.1-xml php7.1-intl  php7.1-mbstring php7.1-gd php7.1-curl
と入れたあと、reloadじゃだめな場合もあるので
sudo systemctl restart apache2
とします。

しかし、

と言われますたしかに今まではSQLiteだったけど、そこまで言われちゃしょうがない

sudo apt install php7.1-mysql

してから

sudo mysql
で入ったあと
CREATE DATABASE owncloud;
GRANT ALL PRIVILEGES ON owncloud.* TO ‘owncloud’@’localhost’ identified by ‘xxxxxxxxx’;
などとしておきます

さて、最近のownCloudから入ったらしい、Sambaを外部ストレージに指定するのを試します。BuffaloのWiFiルータのUSBにSSDを挿して簡易NASにしているのです。

そうすると、トップ階層に「SMB」として見えます。

だがしかし、まだ終わらない。UbuntuのownCloudクライアントがすぐ落ちるんですよ。syslogには以下のメッセージが

kernel: [119581.377081] traps: owncloud[2942] general protectio
n ip:7f490f66f436 sp:7ffed9a6b7e0 error:0 in libowncloudsync.so.2.4.1[7f490f5de000+119
000]

しょうがないので
/etc/apt/sources.list.d に

deb http://download.owncloud.org/download/repositories/10.2.1/Ubuntu_18.04/ /

の内容で owncloud.list を入れてowncloudを最新にしてみたもののダメ

結局Ubuntuを18.04から20.04に上げたら解決しました。元々上げるつもりだったからいいけどさ。

★★★★★★★★★★★★★★★★

けれどけれど、なんかSambaのディスクに上げようとすると、めっちゃ遅くてタイムアウトが続出。

結局Sambaはあきらめ、Raspberry PiにSDDをつなぎ直し、それをownCloudのデータ領域にしました。

BuffaloのWiFiルータにはメディアサーバ機能があって便利だったのだけど、また昔のようにRaspberry Piにminidlnaを入れて音楽サーバにしました。ここでもトラブルがあったのでまた別の項で。