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をリスタート。

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を入れて音楽サーバにしました。ここでもトラブルがあったのでまた別の項で。

Raspberry Piのapt-get updateでownCloud関係のGPGエラーが出る

久々にapt-get updateしてみると

W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: https://down
load.owncloud.org/download/repositories/stable/Debian_9.0  Release

などと出ます。ぐぐって

https://github.com/owncloud/core/issues/32436

というのを発見し、以下で対処しました。

https://download.owncloud.org/download/repositories/stable/Debian_9.0/Release.key

をダウンロードし、

cat Release.key |sudo apt-key add –

ownCloudクライアントが起動しない

いつのまにかownCloudのファイルがサーバにアップロードされていないことに気付き、調べるとクライアントのプロセスがいません。マニュアルでスタートするとcore吐いて死んでました。

owncloud –logfile crashes.txt

でやって、ログを見ると

03-28 10:03:50:846 11429 OCC::SyncJournalDb::sqlFail: SQL Error “Create table metadata” “unable to open database file”

と出てます。

https://central.owncloud.org/t/client-wont-start-with-sqlite-prepare-error/2540

あたりを参考に、

rm ownCloud/._sync_cdc4ced0ec40.db*

とやったら起動するようになりました。ただ、同期しなおされるので、起動できなくなってからローカルで変更したファイルに関してはコンフリクトが起き、「_conflict-日付」みたいなファイルができてしまい、手動で調整します。