Ebből a leírásból megtudhatod, hogy hogyan telepítsd a NextClud 17 szolgáltatást Debian 10 alapokra. Vágjunk bele, készítsünk saját Clud Servert. A telepítést egy teljesen alap Debian 10 rendszeren kezdjük, amin csak az alapok lettek beállítva, mint például a hostnév.
MariaDB telepítése
Először is a MariaDB tárolóját fogjuk felvenni a rendszerünkbe. A download.mariadb.org weboldalon találjuk meg, hogy a különböző Distribúciók esetén, milyen módon tudjuk ezt megtenni. A mi esetünkben ez a következő
apt-get install software-properties-common dirmngr apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xF1656F24C74CD1D8 add-apt-repository 'deb [arch=amd64] http://mirror2.hs-esslingen.de/mariadb/repo/10.4/debian buster main'
Ezzel meg is vagyunk, most telepítsük fel a szerverünkre az adatbázis kezelő rendszert:
apt update apt install mariadb-server
Konfiguráljuk újra a beállításokat és növeljük a biztonságot:
mysql_secure_installation
A kérdésekre adandó válaszok:
Enter current password for root (enter for none): Switch to unix_socket authentication [Y/n] y Change the root password? [Y/n] n Remove anonymous users? [Y/n] y Disallow root login remotely? [Y/n] y Remove test database and access to it? [Y/n] y Reload privilege tables now? [Y/n] y
Konfiguráljuk újra a szerver működését, optimalizáljuk a NextCloud használatára, azonban előtte mentsük el az eredeti konfigurációs állományt:
service mysql stop mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak && nano /etc/mysql/my.cnf
Az új my.cnf tartalma legyen a következő:
[client] default-character-set = utf8mb4 port = 3306 socket = /var/run/mysqld/mysqld.sock [mysqld_safe] log_error = /var/log/mysql/mysql_error.log nice = 0 socket = /var/run/mysqld/mysqld.sock [mysqld] basedir = /usr bind-address = 127.0.0.1 binlog_format = ROW bulk_insert_buffer_size = 16M character-set-server = utf8mb4 collation-server = utf8mb4_general_ci concurrent_insert = 2 connect_timeout = 5 datadir = /var/lib/mysql default_storage_engine = InnoDB expire_logs_days = 7 general_log_file = /var/log/mysql/mysql.log general_log = 0 innodb_buffer_pool_size = 1024M innodb_buffer_pool_instances = 1 innodb_flush_log_at_trx_commit = 2 innodb_log_buffer_size = 32M innodb_max_dirty_pages_pct = 90 innodb_file_per_table = 1 innodb_open_files = 400 innodb_io_capacity = 4000 innodb_flush_method = O_DIRECT key_buffer_size = 128M lc_messages_dir = /usr/share/mysql lc_messages = en_US log_bin = /var/log/mysql/mariadb-bin log_bin_index = /var/log/mysql/mariadb-bin.index log_error=/var/log/mysql/mysql_error.log log_slow_verbosity = query_plan log_warnings = 2 long_query_time = 1 max_allowed_packet = 16M max_binlog_size = 100M max_connections = 200 max_heap_table_size = 64M myisam_recover_options = BACKUP myisam_sort_buffer_size = 512M port = 3306 pid-file = /var/run/mysqld/mysqld.pid query_cache_limit = 2M query_cache_size = 64M query_cache_type = 1 query_cache_min_res_unit = 2k read_buffer_size = 2M read_rnd_buffer_size = 1M skip-external-locking skip-name-resolve slow_query_log_file = /var/log/mysql/mariadb-slow.log slow-query-log = 1 socket = /var/run/mysqld/mysqld.sock sort_buffer_size = 4M table_open_cache = 400 thread_cache_size = 128 tmp_table_size = 64M tmpdir = /tmp transaction_isolation = READ-COMMITTED user = mysql wait_timeout = 600 [mysqldump] max_allowed_packet = 16M quick quote-names [isamchk] !include /etc/mysql/mariadb.cnf !includedir /etc/mysql/conf.d/ key_buffer = 16M
Indítsuk újra a szolgáltatást:
service mysql restart
Hozzuk létre a nextcloud adatbázist, természetesen az adatbázis felhasználó jelszavát változtassuk meg tetszés szerint:
mysql -uroot -p -e "CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; CREATE USER nextcloud@localhost identified by 'nextcloud'; GRANT ALL PRIVILEGES on nextcloud.* to nextcloud@localhost; FLUSH privileges;"
Nagyon fontos, hogy az adatbázis támogassa az utf8mb4 karaktereket. A nextcloud már jó ideje megkívánja ezt a beállítást, ellenőrizzük le, hogy helyes-e a beállításunk:
mysql -h localhost -uroot -p -e "SELECT @@TX_ISOLATION; SELECT SCHEMA_NAME 'database', default_character_set_name 'charset', DEFAULT_COLLATION_NAME 'collation' FROM information_schema.SCHEMATA WHERE SCHEMA_NAME='nextcloud'"
Akkor dolgoztunk jól, ha az alábbi kimenetet kapjuk:
+----------------+ | @@TX_ISOLATION | +----------------+ | READ-COMMITTED | +----------------+ +-----------+---------+--------------------+ | database | charset | collation | +-----------+---------+--------------------+ | nextcloud | utf8mb4 | utf8mb4_general_ci | +-----------+---------+--------------------+
Apache2, PHP és Redis-Server
Telepítsük az alábbi csomagokat:
apt install libapache2-mod-php7.3 php7.3-cli php7.3-common php7.3-mbstring php7.3-gd php7.3-intl php7.3-xml php7.3-mysql php7.3-zip php7.3-dev php7.3-curl php7.3-fpm php7.3-json php7.3-bz2 php7.3-ldap php-dompdf php-apcu imagemagick php-imagick php-smbclient redis-server php-redis unzip sudo curl -y
A PHP aktuális verzóját php-fpm szolgáltatással akarjuk használni, így a modulként való futtatást tiltani-, míg a php-fpm futtatásához szükséges modulokat engedélyezni kell, majd az Apache webszervert újraindítjuk a módosítások érvényesítéséhez:
a2dismod php7.3 && a2dismod mpm_prefork && a2enmod proxy_fcgi setenvif mpm_event && service apache2 restart a2enconf php7.3-fpm && service apache2 restart
Abban az esetben, ha a Redis szervert csak lokálisan akarjuk használni, érdemes unix socket módban használni, mivel a rendszer így közvetlen használhatja a szolgáltatást és nem terheljük a csomagszűrő mechanizmust. Ezért adjuk ki a következő utasításokat:
cp /etc/redis/redis.conf /etc/redis/redis.conf.bak sed -i "s/port 6379/port 0/" /etc/redis/redis.conf sed -i s/\#\ unixsocket/\unixsocket/g /etc/redis/redis.conf sed -i "s/unixsocketperm 700/unixsocketperm 770/" /etc/redis/redis.conf sed -i "s/# maxclients 10000/maxclients 512/" /etc/redis/redis.conf usermod -aG redis www-data cp /etc/sysctl.conf /etc/sysctl.conf.bak && sed -i '$avm.overcommit_memory = 1' /etc/sysctl.conf
Modulok engedélyezése:
a2enmod rewrite headers env dir mime && service apache2 restart
PHP finomhangolása
A Nextcloud igényel a php szolgáltatás részéről némi finomhangolást, mentsük-, majd nyissuk meg a konfigurációs állományokat és végezzük el a szükséges beállításokat:
cp /etc/php/7.3/fpm/pool.d/www.conf /etc/php/7.3/fpm/pool.d/www.conf.bak cp /etc/php/7.3/cli/php.ini /etc/php/7.3/cli/php.ini.bak cp /etc/php/7.3/fpm/php.ini /etc/php/7.3/fpm/php.ini.bak cp /etc/php/7.3/fpm/php-fpm.conf /etc/php/7.3/fpm/php-fpm.conf.bak
sed -i "s/;env\[HOSTNAME\] = /env[HOSTNAME] = /" /etc/php/7.3/fpm/pool.d/www.conf sed -i "s/;env\[TMP\] = /env[TMP] = /" /etc/php/7.3/fpm/pool.d/www.conf sed -i "s/;env\[TMPDIR\] = /env[TMPDIR] = /" /etc/php/7.3/fpm/pool.d/www.conf sed -i "s/;env\[TEMP\] = /env[TEMP] = /" /etc/php/7.3/fpm/pool.d/www.conf sed -i "s/;env\[PATH\] = /env[PATH] = /" /etc/php/7.3/fpm/pool.d/www.conf sed -i "s/pm.max_children = .*/pm.max_children = 240/" /etc/php/7.3/fpm/pool.d/www.conf sed -i "s/pm.start_servers = .*/pm.start_servers = 20/" /etc/php/7.3/fpm/pool.d/www.conf sed -i "s/pm.min_spare_servers = .*/pm.min_spare_servers = 10/" /etc/php/7.3/fpm/pool.d/www.conf sed -i "s/pm.max_spare_servers = .*/pm.max_spare_servers = 20/" /etc/php/7.3/fpm/pool.d/www.conf sed -i "s/;pm.max_requests = 500/pm.max_requests = 500/" /etc/php/7.3/fpm/pool.d/www.conf
sed -i "s/output_buffering =.*/output_buffering = 'Off'/" /etc/php/7.3/cli/php.ini sed -i "s/max_execution_time =.*/max_execution_time = 1800/" /etc/php/7.3/cli/php.ini sed -i "s/max_input_time =.*/max_input_time = 3600/" /etc/php/7.3/cli/php.ini sed -i "s/post_max_size =.*/post_max_size = 10240M/" /etc/php/7.3/cli/php.ini sed -i "s/upload_max_filesize =.*/upload_max_filesize = 10240M/" /etc/php/7.3/cli/php.ini sed -i "s/max_file_uploads =.*/max_file_uploads = 100/" /etc/php/7.3/cli/php.ini sed -i "s/;date.timezone.*/date.timezone = Europe\/\Berlin/" /etc/php/7.3/cli/php.ini sed -i "s/;session.cookie_secure.*/session.cookie_secure = True/" /etc/php/7.3/cli/php.ini
sed -i "s/memory_limit = 128M/memory_limit = 512M/" /etc/php/7.3/fpm/php.ini sed -i "s/output_buffering =.*/output_buffering = 'Off'/" /etc/php/7.3/fpm/php.ini sed -i "s/max_execution_time =.*/max_execution_time = 1800/" /etc/php/7.3/fpm/php.ini sed -i "s/max_input_time =.*/max_input_time = 3600/" /etc/php/7.3/fpm/php.ini sed -i "s/post_max_size =.*/post_max_size = 10240M/" /etc/php/7.3/fpm/php.ini sed -i "s/upload_max_filesize =.*/upload_max_filesize = 10240M/" /etc/php/7.3/fpm/php.ini sed -i "s/max_file_uploads =.*/max_file_uploads = 100/" /etc/php/7.3/fpm/php.ini sed -i "s/;date.timezone.*/date.timezone = Europe\/\Budapest/" /etc/php/7.3/fpm/php.ini # Csak SSL mellett #sed -i "s/;session.cookie_secure.*/session.cookie_secure = True/" /etc/php/7.3/fpm/php.ini sed -i "s/;opcache.enable=.*/opcache.enable=1/" /etc/php/7.3/fpm/php.ini sed -i "s/;opcache.enable_cli=.*/opcache.enable_cli=1/" /etc/php/7.3/fpm/php.ini sed -i "s/;opcache.memory_consumption=.*/opcache.memory_consumption=128/" /etc/php/7.3/fpm/php.ini sed -i "s/;opcache.interned_strings_buffer=.*/opcache.interned_strings_buffer=8/" /etc/php/7.3/fpm/php.ini sed -i "s/;opcache.max_accelerated_files=.*/opcache.max_accelerated_files=10000/" /etc/php/7.3/fpm/php.ini sed -i "s/;opcache.revalidate_freq=.*/opcache.revalidate_freq=1/" /etc/php/7.3/fpm/php.ini sed -i "s/;opcache.save_comments=.*/opcache.save_comments=1/" /etc/php/7.3/fpm/php.ini
sed -i '$aapc.enable_cli=1' /etc/php/7.3/mods-available/apcu.ini
sed -i "s/;emergency_restart_threshold =.*/emergency_restart_threshold = 10/" /etc/php/7.3/fpm/php-fpm.conf sed -i "s/;emergency_restart_interval =.*/emergency_restart_interval = 1m/" /etc/php/7.3/fpm/php-fpm.conf sed -i "s/;process_control_timeout =.*/process_control_timeout = 10s/" /etc/php/7.3/fpm/php-fpm.conf
sed -i "s/09,39.*/# &/" /etc/cron.d/php (crontab -l ; echo "09,39 * * * * /usr/lib/php/sessionclean 2>&1") | crontab -u root -
Nextcloud aktuális verziójának telepítése
Ez esetben az Apache alapértelmezés szerint létrehozott könyvtárába telepítjuk a szolgáltatást:
cd /var/www/html wget https://download.nextcloud.com/server/releases/latest.zip
Kitömörítjük az állományt, beállítjuk a jogosultságokat, majd töröljük a tömörített állományt:
unzip latest.zip && mv nextcloud/ /var/www/html/ && chown -R www-data:www-data /var/www/html/nextcloud && rm -f latest.zip
Apache modulok engedélyezése:
a2enmod rewrite headers env dir mime && service apache2 restart
Vhost beállítás:
Hozzuk létre a konfigurációs állományt, az alábbi tartalommal:
nano /etc/apache2/sites-available/001-nextcloud.conf
<VirtualHost *:80>
ServerName zsoltina.eu <--A saját domain neved legyen!!
ServerAdmin albert@vanyi.eu
DocumentRoot /var/www/html/nextcloud/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /var/www/html/nextcloud/>
Options +FollowSymlinks
AllowOverride All
<IfModule mod_dav.c>
Dav off
</IfModule>
SetEnv HOME /var/www/html/nextcloud
SetEnv HTTP_HOME /var/www/html/nextcloud
</Directory>
</VirtualHost>
Engedélyezzük a szolgáltatást:
a2ensite 001-nextcloud.conf && service apache2 restart
Most jöhet az ssl titkosítás beállítása:
apt install python-certbot-apache -y
Majd kérjünk egy tanúsítványt. A parancs kérni fog egy email címet, ahová a szolgáltató a rendszer üzeneteit küldheti, ki kell választanunk a felismert domain nevünket, valamint ha akarjuk a rendszer automatikusan a 80 -as portra érkező kéréseket átirányítja a 443 -as portra és legenerálja az Apache konfigurációs állományait ehhez.
certbot --apache
Nyissuk meg az ssl -re vonatkozó Apache konfigurációt:
nano /etc/apache2/sites-available/001-nextcloud-le-ssl.conf
Majd egészítsük ki a következő beállításokkal a VirtualHost szekción belől:
[...] <IfModule mod_headers.c> Header always set Strict-Transport-Security "max-age=15768000; preload" </IfModule> [...]
Ezt a beállítást a VirtualHost szekción kívül
</VirtualHost> [...] SSLSessionTickets off SSLUseStapling on SSLStaplingResponderTimeout 5 SSLStaplingReturnResponderErrors off SSLStaplingCache shmcb:/var/run/ocsp(128000) SSLOpenSSLConfCmd Curves X448:secp521r1:secp384r1:prime256v1 SSLOpenSSLConfCmd ECDHParameters secp384r1 SSLOpenSSLConfCmd DHParameters "/etc/ssl/certs/dhparam.pem" [...] </IfModule>
Ezután generáljuk le a pem fájlt, legyünk türelmesek, mivel erőforrástól függően ez a folyamat jó ideig eltarthat:
openssl dhparam -out /etc/ssl/certs/dhparam.pem 4096
Érdemes a NextCloud gyökérkönyvtárától eltérő elérési úton tárolni az adatokat, ezért hozzunk létre egy új könyvtárat:
mkdir -p /var/nc_data chown -R www-data:www-data /var/nc_data
Mostmár megnyithatjuk a böngészőt a beállított url szerint és hajtsuk végre a telepítést, ehhez adjuk meg az alábbi adatokat a grafikus felületen:
Felhasználói név megadása Jelszó megadása Az adatok elérési könyvtára adatbázis név adatbázis felhasználói neve felhasználó jelszava kiszolgáló
Módosítsuk a .htaccess fájlt:
nano /var/www/html/nextcloud/.htaccess
Adjuk hozzá a következő sorokat:
[...] ErrorDocument 403 // ErrorDocument 404 // <IfModule mod_rewrite.c> Options -MultiViews RewriteRule ^core/js/oc.js$ index.php [PT,E=PATH_INFO:$1] RewriteRule ^core/preview.png$ index.php [PT,E=PATH_INFO:$1] RewriteCond %{REQUEST_FILENAME} !\.(css|js|svg|gif|png|html|ttf|woff2?|ico|jpg|jpeg)$ RewriteCond %{REQUEST_FILENAME} !core/img/favicon.ico$ RewriteCond %{REQUEST_FILENAME} !core/img/manifest.json$ RewriteCond %{REQUEST_FILENAME} !/remote.php RewriteCond %{REQUEST_FILENAME} !/public.php RewriteCond %{REQUEST_FILENAME} !/cron.php RewriteCond %{REQUEST_FILENAME} !/core/ajax/update.php RewriteCond %{REQUEST_FILENAME} !/status.php RewriteCond %{REQUEST_FILENAME} !/ocs/v1.php RewriteCond %{REQUEST_FILENAME} !/ocs/v2.php RewriteCond %{REQUEST_FILENAME} !/robots.txt RewriteCond %{REQUEST_FILENAME} !/updater/ RewriteCond %{REQUEST_FILENAME} !/ocs-provider/ RewriteCond %{REQUEST_URI} !^/\.well-known/(acme-challenge|pki-validation)/.* RewriteRule . index.php [PT,E=PATH_INFO:$1] RewriteBase / <IfModule mod_env.c> SetEnv front_controller_active true <IfModule mod_dir.c> DirectorySlash off </IfModule> </IfModule> </IfModule>
Módosítsuk a config.php
sudo -u www-data cp /var/www/html/nextcloud/config/config.php /var/www/html/nextcloud/config/config.php.bak
sudo -u www-data sed -i 's/^[ ]*//' /var/www/html/nextcloud/config/config.php sudo -u www-data sed -i '/);/d' /var/www/html/nextcloud/config/config.php
Beállítások hozzáadása:
sudo -u www-data cat <<EOF>>/var/www/html/nextcloud/config/config.php 'activity_expire_days' => 14, 'auth.bruteforce.protection.enabled' => true, 'blacklisted_files' => array ( 0 => '.htaccess', 1 => 'Thumbs.db', 2 => 'thumbs.db', ), 'cron_log' => true, 'enable_previews' => true, 'enabledPreviewProviders' => array ( 0 => 'OC\\Preview\\PNG', 1 => 'OC\\Preview\\JPEG', 2 => 'OC\\Preview\\GIF', 3 => 'OC\\Preview\\HEIC', 4 => 'OC\\Preview\\BMP', 5 => 'OC\\Preview\\XBitmap', 6 => 'OC\\Preview\\MP3', 7 => 'OC\\Preview\\TXT', 8 => 'OC\\Preview\\MarkDown', 9 => 'OC\\Preview\\Movie', 10 => 'OC\\Preview\\MKV', 11 => 'OC\\Preview\\MP4', 12 => 'OC\\Preview\\AVI', 13 => 'OC\\Preview\\PDF', ), 'filesystem_check_changes' => 0, 'logfile' => '/var/nc_data/nextcloud.log', 'filelocking.enabled' => 'true', 'htaccess.RewriteBase' => '/', 'integrity.check.disabled' => false, 'knowledgebaseenabled' => false, 'loglevel' => 2, 'logtimezone' => 'Europe/Budapest', 'log_rotate_size' => 104857600, 'maintenance' => false, 'memcache.local' => '\\OC\\Memcache\\APCu', 'memcache.locking' => '\\OC\\Memcache\\Redis', 'overwriteprotocol' => 'https', 'preview_max_x' => 1024, 'preview_max_y' => 768, 'preview_max_scale_factor' => 1, 'redis' => array ( 'host' => '/var/run/redis/redis-server.sock', 'port' => 0, 'timeout' => 0.0, ), 'quota_include_external_storage' => false, 'share_folder' => '/Shares', 'skeletondirectory' => '', 'theme' => '', 'trashbin_retention_obligation' => 'auto, 7', 'updater.release.channel' => 'stable', ); EOF
Indítsuk újra a szolgáltatást:
service php7.3-fpm restart && service redis-server restart && service apache2 restart
NextCloud finomhangolása
Adjuk ki az alábbi parancsot:
sudo -u www-data php /var/www/html/nextcloud/occ app:disable survey_client sudo -u www-data php /var/www/html/nextcloud/occ app:disable firstrunwizard sudo -u www-data php /var/www/html/nextcloud/occ app:enable admin_audit sudo -u www-data php /var/www/html/nextcloud/occ app:enable files_pdfviewer
Előnézet Beállítása
Képek-, filmek előnézetéhez az alábbi lépések szükségesek:
apt install -y libmagickcore-dev ghostscript
Biztonsági házirend szerkesztése:
nano /etc/ImageMagick-6/policy.xml
Keressük meg- és kommenteljük ki az alábbi részt:
[...] <!-- <policy domain="coder" rights="none" pattern="PDF" /> --> [...]
Navigáljunk el a nextcloud gyökérkönyvtárába, majd adjuk ki az alábbi parancsokat:
sudo -u www-data php /var/www/nextcloud/occ app:install previewgenerator sudo -u www-data php /var/www/nextcloud/occ app:enable previewgenerator
Nincs más hátra, mint legenerálni az előnézeti objektumokat:
sudo -u www-data php /var/www/nextcloud/occ preview:generate-all -vvv
Állítsuk be, hogy ütemezetten is lefusson a program:
sudo crontab -u www-data -e
*/10 * * * * php /var/www/nextcloud/occ preview:pre-generate
Optimalizáljunk
A helyes működés érdekében hajtsuk végre a következőket:
systemctl stop apache2 sudo -u www-data php /var/www/html/nextcloud/occ db:add-missing-indices sudo -u www-data php /var/www/html/nextcloud/occ db:convert-filecache-bigint systemctl start apache2
Cron feladatok beállítása
Jobb ha a linux Cron -ra bízzuk az ütemezett feladatok végrehajtását:
crontab -u www-data -e
Adjuk az ütemezett feladatokhoz az alábbi sort és ne feledjük el a nextclod webes konfigurálásánál beállítani a cron lehetőséget:
*/5 * * * * php -f /var/www/html/nextcloud/cron.php > /dev/null 2>&1
MPM EVENT módosítása
Nyissuk meg az npm_event.conf fájlt:
nano /etc/apache2/mods-available/mpm_event.conf
Módosítsuk a tartalmat:
StartServers 2
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxRequestWorkers 150
MaxConnectionsPerChild 1000
HTTP2 engedélyezése
Először is engedélyezzük a modult:
a2enmod http2 && service php7.3-fpm restart && service apache2 restart
Nyissuk meg a konfigurációs állományt:
nano /etc/apache2/conf-available/http2.conf
Módosítsuk a tartalmát:
<IfModule http2_module> Protocols h2 h2c http/1.1 H2Direct on H2StreamMaxMemSize 5120000000 </IfModule>
Érvényesítsük a beállítást:
a2enconf http2 && service apache2 restart
Lassan a végéhez érünk a teendőknek, végezetül a biztonsági szintet állítjuk be:
a2dismod status && nano /etc/apache2/conf-available/security.conf
Változtassuk meg az alábbi beállításokat:
ServerTokens Prod ServerSignature Off TraceEnable Off
Végezetül indítsuk újra a szolgáltatásokat:
service php7.3-fpm restart && service redis-server restart && service apache2 restart
Opcionális beállítás
Telepítsünk túzfalat és gondoskodjunk a rendszer biztonságáról:
Fail2Ban
apt install fail2ban -y
Készítsük el a megfelelő szúrő szabályt:
nano /etc/fail2ban/filter.d/nextcloud.conf
[Definition] failregex=^{"reqId":".*","remoteAddr":".*","app":"core","message":"Login failed: '.*' \(Remote IP: ''\)","level":2,"time":".*"}$ ^{"reqId":".*","level":2,"time":".*","remoteAddr":".*","user,:".*","app":"no app in context".*","method":".*","message":"Login failed: '.*' \(Remote IP: ''\)".*}$ ^{"reqId":".*","level":2,"time":".*","remoteAddr":".*","user":".*","app":".*","method":".*","url":".*","message":"Login failed: .* \(Remote IP: \).*}$
Új jail szabály létrehozása:
nano /etc/fail2ban/jail.d/nextcloud.local
Illesszük be az alábbi tartalmat:
[nextcloud] backend = auto enabled = true port = 80,443 protocol = tcp filter = nextcloud maxretry = 6 bantime = 18000 findtime = 36000 logpath = /var/nc_data/nextcloud.log
Indítsuk újra a szolgáltatást:
service fail2ban restart
UFW telepítése és beállítása
apt install ufw
Konfiguráció:
ufw allow 80/tcp && ufw allow 443/tcp && ufw allow 22/tcp && ufw logging medium
Engedélyezzük a szolgáltatást:
ufw enable && service ufw restart
Ezzel a végére értünk a beállításoknak. Egyetlen dolgunk maradt csak hátra, ha azt szeretnénk, hogy a tanúsítványunk automatikusan megújuljon, akkor a /etc/letsencrypt/renew könyvtárban a domain konfigurációját nyissuk meg és a kommentet vegyük ki a megfelelő sor elől. Ezzel végeztünk is.
Kiegészítés
A NextCloud szolgáltatás frissítésénél belefutottam egy hibába. A webes felületen elindított frissítés a 6. lépésnél ismeretlen hiba miatt megállt. A frissítő újbóli indítása hibás eredményre vezetett, mivel a korábbi lépés megszakadt. A megoldás a következő, melyet parancssorban kell elvégezni:
sudo -u www-data php occ maintenance:mode --on sudo -u www-data php occ maintenance:repair sudo -u www-data php occ maintenance:mode --off
Ezután a frissítés újra elvégezhető, így már hiba nélkül lefutott.