Różnice pomiędzy wersjami 1 i 2
⇤ ← Wersja 1 z 2019-02-10 13:39:27 →
Rozmiar: 21141
Edytor: wtps0n
Komentarz: *** KREACJA (kopia z ownCloud) ***
← Wersja 2 z 2019-02-12 22:17:57 → ⇥
Rozmiar: 18563
Edytor: wtps0n
Komentarz: * aktualizacja po uruchomieniu produkcyjnym
Usunięcia zostały oznaczone w ten sposób. Dodatki zostały oznaczone w ten sposób.
Linia 7: Linia 7:
Poniżej przepis, jak zainstalować oraz skonfigurować nextCloud na serwerze.

/!\ /!\ /!\ '''UWAGA!!!''' Dokumentacja powstała na bazie konfiguracji [[OwnCloud|ownCloud]]. Należy uzupełnić oraz poprawić zgodnie ze stanem faktycznym /!\ /!\ /!\
Poniżej przepis, jak zainstalować oraz skonfigurować [[https://www.nextcloud.org/|nextCloud|target="_blank"]] na serwerze.
Linia 14: Linia 12:
pkg install -y www/nextcloud pecl-redis pecl-memcached devel/pecl-APCu
}}}
pkg install -y www/nextcloud pecl-redis pecl-memcached devel/pecl-APCu www/php72-opcache
}}}

== Dodatkowe aplikacje ==
Jeżeli jest potrzeba, to można doinstalować dodatkowe "''aplikacje''", które są już w [[PoudriereBinaryPkg|repozytroium paczek]]:
{{{#!highlight bash numbers=off
pkg install -y www/nextcloud-calendar www/nextcloud-contacts www/nextcloud-notes www/nextcloud-tasks
}}}

Więcej dodatków jest dostępne poprzez menu ''Ustawienia'' w samym nextCloud.
Linia 24: Linia 30:
Jeżeli po zalogowaniu wystąpi błąd "''zapisu do kaalogu config/''", to trzeba sprawdzić uprawnienia:
{{{#!highlight bash numbers=off
chnext -R www:www /usr/local/www/nextcloud/config/
Jeżeli po zalogowaniu wystąpi błąd "''zapisu do katalogu config/''", to trzeba sprawdzić uprawnienia:
{{{#!highlight bash numbers=off
chown -R www:www /usr/local/www/nextcloud/config/
Linia 36: Linia 42:
 1. serwer bazy danych (domyślnie localhost, ale w przypadku [[UruchomienieJails|jaili]] trzeba odpowiednio poprawić  1. serwer bazy danych (domyślnie ''localhost'', ale w przypadku [[UruchomienieJails|jails]] trzeba odpowiednio zmodyfikować
Linia 57: Linia 63:
  'forcessl' => true,
  'forceSSLforSubdomains' => true,
  'ldapIgnoreNamingRules' => false,
  'ldapUserCleanupInterval' => 51,
  'custom_csp_policy' => 'default-src \'self\'; script-src \'self\' \'unsafe-inline\' \'unsafe-eval\'; style-src \'self\' \'unsafe-inline\'; frame-src *; img-src *; font-src \'self\' data:; media-src *',
  'htaccess.RewriteBase' => '/',
Linia 65: Linia 65:
  'theme' => '',
Linia 77: Linia 76:
  'memcache.local' => '\OC\Memcache\Memcached',
  'memcache.distributed' => '\OC\Memcache\Memcached',
  'memcache.local' => '\\OC\\Memcache\\APCu',
  'memcache.distributed' => '\\OC\\Memcache\\Memcached',
Linia 124: Linia 123:
  'mail_smtpsecure' => 'tls',
  'mail_sendmailmode' => 'smtp',
Linia 126: Linia 127:
  'mail_smtphost' => 'localhost.bsdserwis.com',
Linia 128: Linia 130:
  'mail_smtphost' => 'localhost.bsdserwis.com',
Linia 139: Linia 140:
# globalnie może być mniejszy, poprzez plik .htaccess nextCloud i tak ustawia poniższy limit
memory_limit = 513M
; nextCloud wymaga, aby memory_limit nie był mniejszy
memory_limit = 512M
Linia 148: Linia 149:
# post_max_size >= $upload_max_filesize ; post_max_size >= $upload_max_filesize
Linia 152: Linia 153:
== /usr/local/www/nextcloud/.htaccess ==
W pliku '''.htaccess''' są wartości pomniejszone do 513M. Można zatem poprawić ustawienia i dostosować do własnych potrzeb:
{{{#!highlight diff numbers=off
--- /usr/local/www/nextcloud/.htaccess 2018-01-29 09:13:17.000000000 +0100
+++ /usr/local/www/nextcloud/.htaccess.new 2018-02-03 12:06:12.763768000 +0100
@@ -49,8 +49,8 @@
 </IfModule>

 <IfModule mod_php7.c>
- php_value upload_max_filesize 513M
- php_value post_max_size 513M
+ php_value upload_max_filesize 5175M
+ php_value post_max_size 5192M
     php_value memory_limit 512M
     php_value mbstring.func_overload 0
     php_value default_charset 'UTF-8'
Należy również pamiętać o ustawieniach dotyczących opcache (zgodnie z zaleceniami samego nextCloud):
{{{#!highlight ini numbers=off
; ustawienia dla opcache
[opcache]
opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1
Linia 171: Linia 167:
Został opublikowany [[https://github.com/valerytschopp/nextcloud-ldap-schema|schmat LDAP|target="_blank"]], który dodaje atrybut dotyczący ''quota'' dla danego użytknextika (do wykorzystania w panelu [[PhpLdapAdmin|php ldap admin]]). Po wgraniu pliku należy go dołączyć do konfiguracji [[UslugiKatalogowe|serwera LDAP]]: Został opublikowany [ [[#url4|4]] ], który dodaje atrybut dotyczący ''quota'' dla danego użytkownika (do wykorzystania w panelu [[PhpLdapAdmin|php ldap admin]]). Po wgraniu pliku należy go dołączyć do konfiguracji [[UslugiKatalogowe|serwera LDAP]]:
Linia 176: Linia 172:
Nie można zapomnieć o przeładowaniu samego demona `slpad`: Nie można zapomnieć o przeładowaniu samego demona `slapd`:
Linia 198: Linia 194:

# utworzenie pustej konfiguracji
su -m www -c "php occ ldap:create-empty-config"
}}}

= Użytknexticy =
Domyślnie użytknexticy są lokalni (zdefiniowani w bazie danych). Użytknexticy są przypiswaniu do grup (również lokalne). Dodatkowo użytknextik może być administratorem dla grupy swojej i/lub też innej.

Po zalogowaniu każdy z użytknextików może ustawić swój profil: zdjęcie, adres email (to ważne, upraszcza pracę z [[https://www.nextcloud.org/|nextCloud|target="_blank"]]).
}}}

= Użytkownicy =
Domyślnie użytkownicy są lokalni (zdefiniowani w bazie danych). Użytkownicy są przypiswani do grup (również lokalne). Dodatkowo użytkownik może być administratorem dla grupy swojej i/lub też innej.

Po zalogowaniu każdy z użytkowników może ustawić swój profil: zdjęcie, adres email (to ważne, upraszcza pracę z [[https://www.nextcloud.org/|nextCloud|target="_blank"]]).
Linia 210: Linia 203:
Możliwe jest skonfigurowanie użytknextików w bazie [[http://www.openldap.org|OpenLDAP|target="_blank"]]. W tym celu należy aktywować ''aplikację'' '''user_ldap''' (patrz poprzednia sekcja). Możliwe jest skonfigurowanie użytkowników w bazie [[http://www.openldap.org|OpenLDAP|target="_blank"]]. W tym celu należy aktywować ''aplikację'' '''user_ldap''' (patrz poprzednia sekcja).
Linia 233: Linia 226:
| Configuration |     | | Configuration | s01 |
Linia 236: Linia 229:
| hasPagedResultSupport | |
Linia 245: Linia 237:
| ldapBase | ou=nextcloud,dc=firma,dc=local  |
| ldapBaseGroups | ou=nextcloud,dc=firma,dc=local  |
| ldapBaseUsers | ou=nextcloud,dc=firma,dc=local  |
| ldapBase | ou=nextcloud,dc=firma,dc=local |
| ldapBaseGroups | ou=nextcloud,dc=firma,dc=local |
| ldapBaseUsers | ou=nextcloud,dc=firma,dc=local |
Linia 250: Linia 242:
| ldapDefaultPPolicyDN | |
Linia 256: Linia 249:
| ldapGidNumber | gidNumber |
Linia 262: Linia 256:
| ldapHost | 192.168.1.453 | | ldapHost | dbs.ath.pl |
Linia 264: Linia 258:
| ldapLoginFilter | (&(|(objectclass=inetOrgPerson))(uid=%uid)) | | ldapLoginFilter | (&(|(objectclass=nextcloudUser))(uid=%uid)) |
Linia 267: Linia 261:
| ldapLoginFilterMode | 0 | | ldapLoginFilterMode | 1 |
Linia 273: Linia 267:
| ldapQuotaAttribute | nextCloudQuota  |
| ldapQuotaDefault | 250GB |
| ldapQuotaAttribute | nextcloudQuota |
| ldapQuotaDefault | 25GB  |
Linia 276: Linia 270:
| ldapUserAvatarRule | default |
Linia 277: Linia 272:
| ldapUserDisplayName2 | mail |
| ldapUserFilter | (|(objectclass=inetOrgPerson)) |
| ldapUserDisplayName2 |      |
| ldapUserFilter | (|(objectclass=nextcloudUser)) |
Linia 285: Linia 280:
| turnOnPasswordChange | 0 |
Linia 287: Linia 283:
Linia 291: Linia 288:
Jeżeli dodawanie użytknextików do bazy [[http://www.openldap.org|OpenLDAP|target="_blank"]] będzie wykonywane za pomocą panelu [[PhpLdapAdmin|php ldap admin]], to należy najpierw dodać potrzebne grupy użytknextików. W tym celu należy założyć obiekty typu '''posixGroup'''

== Dodanie użytknextików do bazy OpenLDAP ==
Po wykonaniu konfiguracji można zacząć dodawać użytknextików do bazy [[http://www.openldap.org|OpenLDAP|target="_blank"]] z wykorzystaniem [[PhpLdapAdmin|php ldap admin]]. Przykładowy użytknextik wygląda następująco:
Jeżeli dodawanie użytkowników do bazy [[http://www.openldap.org|OpenLDAP|target="_blank"]] będzie wykonywane za pomocą panelu [[PhpLdapAdmin|php ldap admin]], to należy najpierw dodać potrzebne grupy użytkowników. W tym celu należy założyć obiekty typu '''posixGroup'''

== Dodanie użytkowników do bazy OpenLDAP ==
Po wykonaniu konfiguracji można zacząć dodawać użytkowników do bazy [[http://www.openldap.org|OpenLDAP|target="_blank"]] z wykorzystaniem [[PhpLdapAdmin|php ldap admin]]. Przykładowy użytkownik wygląda następująco:
Linia 306: Linia 303:
nextcloudquota: 250GB
Linia 308: Linia 306:
objectclass: nextcloudUser
Linia 309: Linia 308:
objectclass: nextCloud
nextcloudquota: 500GB
Linia 321: Linia 318:
Ze względów bezpieczeństwa zostaje coraz mocniej ograniczany - kwestie bezpieczeństwa danych, uprawnień etc. Można korzystać z niego, ale już nie ma możliwości dalszego udostępniania go (nawet lokalnym użytknextikom OC). Ze względów bezpieczeństwa zostaje coraz mocniej ograniczany - kwestie bezpieczeństwa danych, uprawnień etc. Można korzystać z niego, ale już nie ma możliwości dalszego udostępniania go (nawet lokalnym użytkownikom OC).
Linia 344: Linia 341:
Za pomocą narzędzia `smbclient` należy sprawdzić poprawność podłączenia do zasobu zdalnego;
{{{#!highlight bash numbers=off
smbclient -U uzytknextik //serwer/zasob
Za pomocą narzędzia `smbclient` należy sprawdzić poprawność podłączenia do zasobu zdalnego:
{{{#!highlight bash numbers=off
smbclient -U użytkownik //serwer/zasob
Linia 353: Linia 350:

= Konfiguracja apache =
Konfiguracja została dodana do [[UniMaster|repozytorium skryptów]], ale zapisana ku pamięci:
{{{#!highlight apache numbers=off
# --- definicja katalog/ow ze stronkami -----------------------------
#
<Directory /usr/local/www/nextcloud>
    AllowOverride All
    Require all granted
    <IfModule mod_expires.c>
        Header set cache-control: public
        ExpiresActive on
        ExpiresDefault "access plus 1 month"
        ExpiresByType text/html "access plus 1 hour"
        ExpiresByType application/rss+xml "access plus 1 hour"
        ExpiresByType image/png "access plus 3 month"
        ExpiresByType image/jpg "access plus 3 month"
        ExpiresByType image/jpeg "access plus 3 month"
        ExpiresByType video/ogg "access plus 3 month"
        ExpiresByType audio/ogg "access plus 3 month"
        ExpiresByType video/mp4 "access plus 3 month"
        ExpiresByType image/x-icon "access plus 1 year"
        ExpiresByType font/ttf "access plus 1 year"
        ExpiresByType image/svg+xml "access plus 1 year"
    </IfModule>
    <IfModule mod_deflate.c>
        AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript
    </IfModule>
</Directory>

# -------------------------------------------------------------------
#
# Konfiguracja dla wybranego VirtualHost lub konfiguracji globalnej
#
# -------------------------------------------------------------------
#
      Alias /nextcloud /usr/local/www/nextcloud
      AcceptPathInfo On
}}}

Zgodnie z [[https://doc.nextcloud.org/server/8.1/admin_manual/configuration_server/harden_server.html#enable-hsts-label|dokumentacją|target="_blank"]] [[https://www.nextcloud.org/|nextCloud|target="_blank"]] trzeba dodać następujące konfiguracje do apache:
{{{#!highlight apache numbers=off
      <IfModule mod_headers.c>
        Header merge X-Frame-Options SAMEORIGIN
        Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload"
        Header merge X-Content-Type-Options nosniff
        Header merge X-XSS-Protection "1; mode=block"
        Header merge X-Robots-Tag none
      </IfModule>
}}}
Linia 439: Linia 386:
Linia 440: Linia 388:
 1. [[https://www.nextcloud.org/|strona domowa nextCloud|target="_blank"]]
 1. [[https://doc.nextcloud.org/|dokumentacja nextCloud|target="_blank"]]
 1. [[https://doc.nextcloud.org/server/9.1/admin_manual/configuration_user/user_auth_ldap.html|Użytknexticy w LDAP|target="_blank"]]
 1. [[https://github.com/valerytschopp/nextcloud-ldap-schema|nextCloud LDAP schema|target="_blank"]]
 1. <<Anchor(url1)>>[[https://www.nextcloud.org/|strona domowa nextCloud|target="_blank"]]
 1. <<Anchor(url2)>>[[https://doc.nextcloud.org/|dokumentacja nextCloud|target="_blank"]]
 1. <<Anchor(url3)>>[[https://doc.nextcloud.org/server/9.1/admin_manual/configuration_user/user_auth_ldap.html|Użytknexticy w LDAP|target="_blank"]]
 1. <<Anchor(url>>[[https://raw.githubusercontent.com/nextcloud/univention-app/master/nextcloud.schema|nextCloud LDAP schema|target="_blank"]]
Linia 446: Linia 394:
{i} ` `<<GetVal(SlnextikNewBsd,adm-podpis)>> {i} ` `<<GetVal(SlownikNewBsd,adm-podpis)>>


Instalacja oraz konfiguracja nextCloud

Poniżej przepis, jak zainstalować oraz skonfigurować nextCloud na serwerze.

ports/pkg

Z wykorzystaniem własnego repozytroium pakietów wykonujemy instalację:

pkg install -y www/nextcloud pecl-redis pecl-memcached devel/pecl-APCu www/php72-opcache

Dodatkowe aplikacje

Jeżeli jest potrzeba, to można doinstalować dodatkowe "aplikacje", które są już w repozytroium paczek:

pkg install -y www/nextcloud-calendar www/nextcloud-contacts www/nextcloud-notes www/nextcloud-tasks

Więcej dodatków jest dostępne poprzez menu Ustawienia w samym nextCloud.

Utworzenie bazy danych

createuser -U pgsql -DEPS chmurek
createdb -U pgsql -E utf-8 -O chmurek cdnxcloud

Sprawdzenie uprawnień do config.php

Jeżeli po zalogowaniu wystąpi błąd "zapisu do katalogu config/", to trzeba sprawdzić uprawnienia:

chown -R www:www /usr/local/www/nextcloud/config/

Konfiguracja w panelu www

Po zalogowaniu do panelu należy wpisać konfigurację:

  1. login administratora
  2. hasło administratora
  3. login do bazy danych
  4. hasło do bazy danych
  5. nazwa bazy danych
  6. serwer bazy danych (domyślnie localhost, ale w przypadku jails trzeba odpowiednio zmodyfikować

Modyfikacje w config.php

W przypadku udostępniania nextCloud pod różnymi adresami, należy w pliku konfiguracyjnym zmodyfikować zmienną trusted_domains:

$CONFIG = array (
# [...]
  'trusted_domains' =>
  array (
    0 => 'cloud.bsdserwis.com',
    1 => 'cloud.codenix.pro',
    2 => 'cloud.codenix.pl',
  ),
# [...]
);

Dodatkowe ustawienia warte dopisania (domyślnie nie występują):

$CONFIG = array (
# [...]
  'loglevel' => 1,
  'maintenance' => false,
  'trashbin_retention_obligation' => 'auto',
  'skeletondirectory' => '/var/www/htdocs/virtuals/chmura/szkielet',
# [...]
);

Wsparcie dla redis/memcached

Zgodnie z zaleceniami nextcloud należy (nawet nie warto) ustawić caches dla operacji plikowych (w szczególności dla chmur mocno obociążonych), czy lokalnych. W tym celu należy skorzystać z redis oraz memcached. Po ich zainstalowaniu oraz uruchomieniu, należy zmodyfikować plik konfiguracyjny:

$CONFIG = array (
# [...]
  'memcache.local' => '\\OC\\Memcache\\APCu',
  'memcache.distributed' => '\\OC\\Memcache\\Memcached',
  'memcache.locking' => '\\OC\\Memcache\\Redis',
  'redis' => array(
        'host' => '127.0.0.1',
        'port' => 6379,
        'timeout' => 0.0,
        'password' => '', // Optional, if not defined no password will be used.
        'dbindex' => 0, // Optional, if undefined SELECT will not run and will use Redis Server's default DB Index.
   ),
  'memcached_servers' =>
  array (
    0 =>
    array (
      0 => '127.0.0.1',
      1 => 63751,
    ),
  ),
# [...]
);

crontab

W ustawieniach panelu administracyjnego należy ustawić wywoływanie zadań cron z crond. W tym celu należy utworzyć crontaba dla użytknextika www:

# --- definicje zmiennych lokalnych ----------------------------------------
#
NULL=/dev/null
LOC_PREFIX=/usr/local
SHELL=/bin/sh
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin
HOME=/var/log
LOC_PYTHON=/usr/local/bin/python2
DOW="`/bin/date +%w-%a`"

#
#minute hour    mday    month   wday    command
#
*/15    *       *       *       *       ${LOC_PREFIX}/bin/php ${LOC_PREFIX}/www/nextcloud/cron.php

Powiadomienia mailowe

W celu wysyłania powiadomień mailowych należy wpisać dane w panelu administratora. Zostaną one zapisane w pliku config.php jako:

$CONFIG = array (
# [...]
  'mail_smtpmode' => 'smtp',
  'mail_smtpsecure' => 'tls',
  'mail_sendmailmode' => 'smtp',
  'mail_smtpauthtype' => 'LOGIN',
  'mail_smtpauth' => 1,
  'mail_smtphost' => 'localhost.bsdserwis.com',
  'mail_from_address' => 'chmura',
  'mail_domain' => 'bsdserwis.com',
  'mail_smtpport' => '587',
  'mail_smtpname' => '__user__',
  'mail_smtppassword' => '__haslo__',
);

/!\ Należy przypisać adres nadawcy do istniejącej skrzynki mailowej.

Ustawienie w php.ini

W celu umożliwienia wysyłania większych plików (głównie upload) można ustawić następujące wartości w /usr/local/etc/php.ini:

; nextCloud wymaga, aby memory_limit nie był mniejszy
memory_limit = 512M

sys_temp_dir = /var/tmp/apache

upload_tmp_dir = /var/tmp/apache
upload_max_filesize = 5192M
max_file_uploads = 20

; post_max_size >= $upload_max_filesize
post_max_size = 5220M

Należy również pamiętać o ustawieniach dotyczących opcache (zgodnie z zaleceniami samego nextCloud):

; ustawienia dla opcache
[opcache]
opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1

Dodanie schematu do LDAP

Został opublikowany [ 4 ], który dodaje atrybut dotyczący quota dla danego użytkownika (do wykorzystania w panelu php ldap admin). Po wgraniu pliku należy go dołączyć do konfiguracji serwera LDAP:

include         /usr/local/etc/openldap/schema/nextcloud.schema

Nie można zapomnieć o przeładowaniu samego demona slapd:

cd /usr/local/etc/openldap/
make

occ

nextCloud posiada program controler do różnych czynności konfiguracyjnych.

Dodanie zasobów zewnętrznych

Możliwe jest dodanie montowanie zasobów zewnętrznych. W tym celu uruchamiamy polecenie:

cd /usr/local/www/nextcloud
su -m www -c "php occ app:enable files_external"

Dodanie konfiguracji LDAP

cd /usr/local/www/nextcloud

# dodanie aplikacji dla użytknextików w LDAP
su -m www -c "php occ app:enable user_ldap"

Użytkownicy

Domyślnie użytkownicy są lokalni (zdefiniowani w bazie danych). Użytkownicy są przypiswani do grup (również lokalne). Dodatkowo użytkownik może być administratorem dla grupy swojej i/lub też innej.

Po zalogowaniu każdy z użytkowników może ustawić swój profil: zdjęcie, adres email (to ważne, upraszcza pracę z nextCloud).

Integracja z LDAP

Możliwe jest skonfigurowanie użytkowników w bazie OpenLDAP. W tym celu należy aktywować aplikację user_ldap (patrz poprzednia sekcja).

Utworzenie dedykowanego użytknextika LDAP

Warto w bazie LDAP utworzyć specjalne konto na potrzeby nextCloud. Być może będzie konieczność nadania jakiś specjalnych uprawnień dla tego konta. Dane tego konta należy wpisać do konfiguracji LDAP w panelu administratora (WebUI) lub za pomocą narzędzia occ.

Sprawdzenie/modyfikowanie konfiguracji LDAP

Za pomocą occ jest możliwe sprawdzenie ustawień dotyczących LDAP:

cd /usr/local/www/nextcloud
su -m www -c "php occ ldap:show-config"

A także ich modyfikowanie:

cd /usr/local/www/nextcloud
su -m www -c 'php occ ldap:show-config "" ldapEmailAttribute mail'

/!\ Pierwszym parametrem jest configID. Niemniej pierwsze utworzone za pomocą occ ldap:create-empty-config posiada... puste ID (nazwę). Dlatego jako pierwszy parametr podany jest pusty ciąg znaków.

Przykładowa konfiguracja

+-------------------------------+---------------------------------------------+
| Configuration                 | s01                                         |
+-------------------------------+---------------------------------------------+
| hasMemberOfFilterSupport      |                                             |
| homeFolderNamingRule          |                                             |
| lastJpegPhotoLookup           | 0                                           |
| ldapAgentName                 | uid=ocadmin,ou=admins,dc=firma,dc=local     |
| ldapAgentPassword             | ***                                         |
| ldapAttributesForGroupSearch  |                                             |
| ldapAttributesForUserSearch   |                                             |
| ldapBackupHost                |                                             |
| ldapBackupPort                |                                             |
| ldapBase                      | ou=nextcloud,dc=firma,dc=local              |
| ldapBaseGroups                | ou=nextcloud,dc=firma,dc=local              |
| ldapBaseUsers                 | ou=nextcloud,dc=firma,dc=local              |
| ldapCacheTTL                  | 600                                         |
| ldapConfigurationActive       | 1                                           |
| ldapDefaultPPolicyDN          |                                             |
| ldapDynamicGroupMemberURL     |                                             |
| ldapEmailAttribute            | mail                                        |
| ldapExperiencedAdmin          | 0                                           |
| ldapExpertUUIDGroupAttr       |                                             |
| ldapExpertUUIDUserAttr        |                                             |
| ldapExpertUsernameAttr        |                                             |
| ldapGidNumber                 | gidNumber                                   |
| ldapGroupDisplayName          | cn                                          |
| ldapGroupFilter               | (&(|(objectclass=posixGroup)))              |
| ldapGroupFilterGroups         |                                             |
| ldapGroupFilterMode           | 0                                           |
| ldapGroupFilterObjectclass    | posixGroup                                  |
| ldapGroupMemberAssocAttr      | memberUid                                   |
| ldapHost                      | dbs.ath.pl                                  |
| ldapIgnoreNamingRules         |                                             |
| ldapLoginFilter               | (&(|(objectclass=nextcloudUser))(uid=%uid)) |
| ldapLoginFilterAttributes     |                                             |
| ldapLoginFilterEmail          | 0                                           |
| ldapLoginFilterMode           | 1                                           |
| ldapLoginFilterUsername       | 1                                           |
| ldapNestedGroups              | 0                                           |
| ldapOverrideMainServer        |                                             |
| ldapPagingSize                | 500                                         |
| ldapPort                      | 389                                         |
| ldapQuotaAttribute            | nextcloudQuota                              |
| ldapQuotaDefault              | 25GB                                        |
| ldapTLS                       | 0                                           |
| ldapUserAvatarRule            | default                                     |
| ldapUserDisplayName           | displayName                                 |
| ldapUserDisplayName2          |                                             |
| ldapUserFilter                | (|(objectclass=nextcloudUser))              |
| ldapUserFilterGroups          |                                             |
| ldapUserFilterMode            | 1                                           |
| ldapUserFilterObjectclass     | inetOrgPerson                               |
| ldapUuidGroupAttribute        | auto                                        |
| ldapUuidUserAttribute         | auto                                        |
| turnOffCertCheck              | 0                                           |
| turnOnPasswordChange          | 0                                           |
| useMemberOfToDetectMembership | 1                                           |
+-------------------------------+---------------------------------------------+

Dodanie grup do bazy OpenLDAP

Jeżeli dodawanie użytkowników do bazy OpenLDAP będzie wykonywane za pomocą panelu php ldap admin, to należy najpierw dodać potrzebne grupy użytkowników. W tym celu należy założyć obiekty typu posixGroup

Dodanie użytkowników do bazy OpenLDAP

Po wykonaniu konfiguracji można zacząć dodawać użytkowników do bazy OpenLDAP z wykorzystaniem php ldap admin. Przykładowy użytkownik wygląda następująco:

dn: cn=Stryjek Krzysztof,ou=users,ou=nextcloud,dc=firma,dc=local
cn: Stryjek Krzysztof
displayname: Stryjek Krzysztof
gidnumber: 500
givenname: Krzysztof
homedirectory: /home/users/kstryjek
jpegphoto:: /9j/4AAQSkZJRgABAQEBLAEsAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoH
 BwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQk
 [...]
mail: wtps0n@bsdserwis.com
nextcloudquota: 250GB
objectclass: inetOrgPerson
objectclass: posixAccount
objectclass: nextcloudUser
objectclass: top
sn: Stryjek
uid: kstryjek
uidnumber: 1000
userpassword: {SSHA}5v4JdCbTXT5wpJHB0hCta5jIHlToNl2V

Konfiguracja zasobów zewnętrznych

Zaoby zewnętrzne pozwalają na korzystanie z innych filesystemów bez konieczności trzymania ich historii w bazie danych czy też synchronizacji przez klienta OC.

Lokalny filesystem

Ze względów bezpieczeństwa zostaje coraz mocniej ograniczany - kwestie bezpieczeństwa danych, uprawnień etc. Można korzystać z niego, ale już nie ma możliwości dalszego udostępniania go (nawet lokalnym użytkownikom OC).

Aby móc z niego korzystać należy w pliku /usr/local/www/nextcloud/config/config.php dodać opcję:

$CONFIG = array (
  # [...]
  'files_external_allow_create_new_local' => true,
);

SMB/CIFS

Można udostępniać dalej zasoby zewnętrzne zamontowane za pomocą SAMBA. W tym celu konieczne jest zainstalowanie modułu php oraz skonfigurowanie smbclient.

Instlacja dodatkowych pakietów

Za pomocą własnego repozytorium pakietów należy zainstalować moduł php:

pkg install -Uy net/pecl-smbclient

Konfiguracja smb4.conf

Należy wykonać konfigurację klienta samba , tak aby można było swobodnie porozumieć się z serwerem samba4.x1.

Sprawdzenie poprawności konfiguracji

Za pomocą narzędzia smbclient należy sprawdzić poprawność podłączenia do zasobu zdalnego:

smbclient -U użytkownik //serwer/zasob

Konfiguracja w ustawieniach OC

Po zalogowaniu się jako administrator w panelu webowym należy przejść do Ustawienia -> (Adminsitrator) Magazyn należy skonfigurować nowy zasób SMB:

[ZAŁĄCZ]

Konfiguracja nginx

Za pomocą własnego repozytorium konfiguracji należy wgrać plik 012-nextcloud.conf. Konfiguracja zawarta w tym pliku zawiera już definicje nagłówków (bezpieczeństwo), dostępu do plików itd. Konfiguracja samego wirtualnego hosta jest wtedy bardzo krótka (na przykładzie chmury BSD Serwis):

# --- definicja serwera HTTPS ----------------------------------
#
server {
    listen 188.165.252.223:443 http2 ssl;
    listen [2001:41d0:2:c7df::1]:443 http2 ssl;
    server_name cloud.bsdserwis.com;

    ssl_certificate      certs/cloud.bsdserwis.com.chained.pem;
    ssl_certificate_key  certs/cloud.bsdserwis.com.key;
    ssl_dhparam          certs/cloud.bsdserwis.com.2048.dh.pem;
    ssl_prefer_server_ciphers on;
    ssl_stapling on;
    ssl_stapling_verify on;

    # logowanie
    access_log /var/log/nginx/cloud.bsdserwis.com/access.log main;
    error_log /var/log/nginx/cloud.bsdserwis.com/error.log;

    include 012-nextcloud.conf;

    include 000-cmsploit.conf;
    include 004-dot-ht.conf;
    include 004-err-page-404.conf;
    include 004-err-page-5xx.conf;
    include 004-pillaging-dvcs.conf;
    include 005-no-logging.conf;
    include 015-csp-report.conf;

    include expires.conf;
}

/!\ /!\ /!\ UWAGA /!\ /!\ /!\ Ważna jest kolejność dołączania poszczególnych konfiguracji. Jak widać plik 012-nextcloud.conf musi być dołączony jako pierwszy. W przeciwnym przypadku nie działa wgrywanie plików (przez przeglądarkę) z komunikatami o braku miejsca, itp.

Źródła w sieci internet

  1. strona domowa nextCloud

  2. dokumentacja nextCloud

  3. Użytknexticy w LDAP

  4. <<Anchor(url>>nextCloud LDAP schema


{i}  (c) 2004 - 2026 BSD Serwis Krzysztof Stryjek. W przypadku błędów, poprawek proszę kontaktować się z administratorem wiki.

  1. Właściwie sprowadza się to do ustawień logowania, grupy roboczej - pozostałe ustawienia z sekcji global można pominąć. (1)

NextCloud (ostatnio edytowane 2019-02-12 22:17:57 przez wtps0n)