пятница, 2 июня 2017 г.

Установка NextCloud в контейнер lxc

Установка NextСloud на Ubuntu 16.04 server
Установка и настройка Nextcloud в Ubuntu 16.04
Nextcloud installation guide
Клонировать контейнер
# lxc-clone -o xenial_lxc -n nextcloud
Сразу настроим проброс в контейнер папки хоста
# nano /var/lib/lxc/nextcloud/config
Добавим (до старта контейнера, если включен именно poweroff, а не reboot!)
lxc.mount = /var/lib/lxc/nextcloud/fstab
Сохранить
# nano /var/lib/lxc/nextcloud/fstab
Добавим
/mnt/sdc/nextcloud mnt/data none bind,create=dir
Сохранить
Старт контейнера
# lxc-start -n nextcloud -d
Посмотреть ip
# lxc-ls -f
Зайти по ssh
# ssh ubuntu@192.168.0.115
$ sudo -i
# dpkg-reconfigure tzdata
# apt-get install mc nano wget -y
# apt update -y && apt upgrade -y
# apt install apache2 mariadb-server libapache2-mod-php -y
# apt install php-gd php-json php-mysql php-curl php-zip php-bz2 libxml2-dev  php-dom php-xmlwriter php-xmlreader php-xml php-mbstring php-ldap -y
# apt install php-intl php-mcrypt php-imagick -y
!!!# apt install unzip -y
# cd /var/www
# wget https://download.nextcloud.com/server/releases/latest.zip
# unzip latest.zip
!!!# chown -R www-data:www-data /var/www/html/nextcloud
# nano /tmp/nextcloud.sh
#!/bin/bash
ocpath='/var/www/nextcloud'
htuser='www-data'
htgroup='www-data'
rootuser='root'

printf "Creating possible missing Directories\n"
mkdir -p $ocpath/data
mkdir -p $ocpath/assets
mkdir -p $ocpath/updater

printf "chmod Files and Directories\n"
find ${ocpath}/ -type f -print0 | xargs -0 chmod 0640
find ${ocpath}/ -type d -print0 | xargs -0 chmod 0750
chmod 755 ${ocpath}

printf "chown Directories\n"
chown -R ${rootuser}:${htgroup} ${ocpath}/
chown -R ${htuser}:${htgroup} ${ocpath}/apps/
chown -R ${htuser}:${htgroup} ${ocpath}/assets/
chown -R ${htuser}:${htgroup} ${ocpath}/config/
chown -R ${htuser}:${htgroup} ${ocpath}/data/
chown -R ${htuser}:${htgroup} ${ocpath}/themes/
chown -R ${htuser}:${htgroup} ${ocpath}/updater/

chmod +x ${ocpath}/occ
printf "chmod/chown .htaccess\n"
if [ -f ${ocpath}/.htaccess ]
 then
  chmod 0644 ${ocpath}/.htaccess
  chown ${rootuser}:${htgroup} ${ocpath}/.htaccess
fi
if [ -f ${ocpath}/data/.htaccess ]
 then
  chmod 0644 ${ocpath}/data/.htaccess
  chown ${rootuser}:${htgroup} ${ocpath}/data/.htaccess
fi
Сохранить.
# bash /tmp/nextcloud.sh

# nano /etc/apache2/sites-available/nextcloud.conf
<IfModule mod_ssl.c>
   <VirtualHost _default_:443>

     ServerAdmin admin@local
     ServerName nextcloud
     DocumentRoot /var/www/html

Alias /nextcloud "/var/www/nextcloud/"

   <Directory /var/www/nextcloud/>
       Options +FollowSymlinks
       AllowOverride All

      <IfModule mod_dav.c>
        Dav off
      </IfModule>

       SetEnv HOME /var/www/html
       SetEnv HTTP_HOME /var/www/html
     </Directory>

     <IfModule mod_headers.c>
          Header always set Strict-Transport-Security "max-age=15768000; preload"
     </IfModule>

     SSLEngine on
     SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
     SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

   </VirtualHost>
</IfModule>
Сохранить.
# a2dissite 000-default.conf
# a2ensite nextcloud
# a2enmod rewrite
# a2enmod headers env dir mime
# a2enmod setenvif

# nano /etc/php/7.0/apache2/php.ini
Закоментировать:
;upload_max_filesize = 2M;max_file_uploads = 20
Добавить в конец:
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
Сохранить.
!!!# service apache2 restart
http://192.168.0.115/nextcloud/

# a2enmod ssl
# a2dissite default-ssl.conf
# service apache2 restart
https://192.168.0.115/nextcloud/
!!!https://192.168.1.123/nextcloud/
!!!http://192.168.1.123/nextcloud/
# mysql_secure_installationНа все Y по умолчанию!
# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 50
Server version: 10.0.29-MariaDB-0ubuntu0.16.04.1 Ubuntu 16.04

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> CREATE DATABASE nextcloud;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> GRANT ALL ON nextcloud.* to 'nextcloud'@'localhost' IDENTIFIED BY 'password';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> quit
Bye
!!!# mkdir /data
!!!# chown -R www-data:www-data /data
# chown -R www-data:www-data /mnt/data
https://192.168.0.115/nextcloud/

Запускаем браузер и вводим http://ip-server/nextcloud
Задаем логин — Администратора NextCloud сервера
Вводим пароль администратора NextCloud сервера
Указываем место хранения данных, можно оставить по умолчанию и потом изменить.
Пользователь базы данных — NextCloud
Пароль пользователя базы данных (тот, что мы задавали выше при настройке базы данных)
Далее — Завершить установку

# apt install php-memcached memcached
# netstat -tap | grep memcached
tcp        0      0 localhost:11211         *:*                     LISTEN      17009/memcached
# ps ax | grep memcached
17009 ?        Ssl    0:00 /usr/bin/memcached -m 64 -p 11211 -u memcache -l 127.0.0.1
17176 pts/4    S+     0:00 grep --color=auto memcached
# nano /var/www/nextcloud/config/config.php
Вставить перед конечной );
  'logtimezone' => 'Europe/Moscow',
  'log_type' => 'owncloud',
  'logfile' => 'nextcloud.log',
  'memcache.distributed' => '\OC\Memcache\Memcached',
  'memcache.local' => '\OC\Memcache\Memcached',
  'memcached_servers' => array(
      array('localhost', 11211),
   ),
  'memcached_options' => array(
        \Memcached::OPT_CONNECT_TIMEOUT => 50,
        \Memcached::OPT_RETRY_TIMEOUT =>   50,
        \Memcached::OPT_SEND_TIMEOUT =>    50,
        \Memcached::OPT_RECV_TIMEOUT =>    50,
        \Memcached::OPT_POLL_TIMEOUT =>    50,
        // Enable compression
        \Memcached::OPT_COMPRESSION =>          true,
        // Turn on consistent hashing
        \Memcached::OPT_LIBKETAMA_COMPATIBLE => true,
        // Enable Binary Protocol
        \Memcached::OPT_BINARY_PROTOCOL =>      true,
   ),
Сохранить.
# service apache2 restart
https://192.168.1.123/nextcloud/
http://192.168.1.123/nextcloud/
https://192.168.1.123/nextcloud/remote.php/dav/files/user
# apt install fail2ban
# nano /etc/fail2ban/filter.d/nextcloud.conf
Добавим:
[INCLUDES]
before = common.conf
[Definition]
failregex = Login failed.*Remote IP.*'<HOST>'
ignoreregex =
Сохранить.
# nano /etc/fail2ban/jail.d/nextcloud.conf
Добавить.

[nextcloud]
enabled  = true
port     = http,https
filter   = nextcloud
# maxretry = 3
# bantime = 36000
# findtime = 36000
#logpath  = /var/www/nextcloud/nextcloud.log
logpath  = /data/nextcloud.log

Сохранить.
# service fail2ban restart
nextсloud Защита от подбора пароля с помощью FAIL2BAN
nextcloud-fail2ban

#  fail2ban-client status nextcloud
Status for the jail: nextcloud
|- Filter
|  |- Currently failed: 1
|  |- Total failed:     6
|  `- File list:        /data/nextcloud.log
`- Actions
   |- Currently banned: 1
   |- Total banned:     1
   `- Banned IP list:   192.168.1.246

How to Integrate OnlyOffice with NextCloud 
# fail2ban-client set nextcloud unbanip <Banned IP>
 
 


Комментариев нет:

Отправить комментарий