はじめに
Nextcloud では無料で使える機能が ownCloud では使えないとか、Nextcloud の開発スピードが早いとか、さまざまな理由で ownCloud から Nextcloud に運用をシフトするケースがあるかと思います。
そうなると運用で気になるのが、クライアント(利用者)の利用状況です。
Nextcloud に移行することにあわせて、これまでの ownCloud のデスクトップクライアントアプリやスマートデバイス向けアプリを使わせないように制限したい・・・そんなケースを想定して、各クライアントのアプリのアクセスを制限する方法をまとめてみました。
どうやるのか?
各アプリからアクセスされる際の User-Agent で、アクセス許可/拒否を行うことができます。
※除: Android アプリ
各アプリの User-Agent
※User-Agent は 2019年4月5日現在で確認しているものです。
OS | 区分 | User-Agent |
---|---|---|
Windows | Nextcloud | Mozilla/5.0 (Windows) mirall/<バージョン> (build <ビルドバージョン>) (Nextcloud) |
Windows | ownCloud | Mozilla/5.0 (Windows) mirall/<バージョン> (build <ビルドバージョン>) |
macOS | Nextcloud | Mozilla/5.0 (Macintosh) mirall/<バージョン> (build <ビルドバージョン>) (Nextcloud) |
macOS | ownCloud | Mozilla/5.0 (Macintosh) mirall/<バージョン> (build <ビルドバージョン>) |
Linux | Nextcloud | Mozilla/5.0 (Linux) mirall/<バージョン> (build <ビルドバージョン>) (Nextcloud) |
Linux | ownCloud | Mozilla/5.0 (Linux) mirall/<バージョン> (build <ビルドバージョン>) |
iOS | Nextcloud | Mozilla/5.0 (iOS) Nextcloud-iOS/<バージョン> |
iOS | ownCloud | Mozilla/5.0 (iOS) ownCloud-iOS/<バージョン> |
Android | Nextcloud | 【初回接続時】 Mozilla/5.0 (Android) ownCloud-android/<バージョン> 【ログイン後】 Mozilla/5.0 (Android) Nextcloud-android/<バージョン> |
Android | ownCloud | Mozilla/5.0 (Android) ownCloud-android/<バージョン> |
<バージョン>
には アプリのバージョンが入ります。- 例1:
3.5.1
- 例2:
2.5.1final
- 例1:
<ビルドバージョン>
には アプリのビルドバージョンが入ります。- 例1:
20181204
- 例2:
11456
- 例1:
- Androidアプリでは初回接続時において Nextcloud アプリと ownCloud アプリの区別ができないため User-Agent でのアクセス制限はできません。しかし、ownCloud アプリから Nextcloud に接続すると
Precondition failed
メッセージが出て接続できないため、これに任せます。
Nginx での制限設定例
以下の設定を Nginx 設定ファイルに追加し、Nginx を再起動します。
# ownCloud Desktop Client(Windows/Mac/Linux Common)
if ($http_user_agent ~ "^Mozilla/5\.0 \([A-Za-z]+\) mirall/.+ \(build [0-9]+\)$") {
return 403;
}
# ownCloud App (iOS)
if ($http_user_agent ~ "^Mozilla/5\.0 \(iOS\) ownCloud-iOS+/.+$") {
return 403;
}