Kategóriák
Egyéb

Exim felhasználók által kiküldött levelek összeszámlálása

grep chainbox /home/wolfi/exim_mainlog | grep ‘2020-05-10’ | grep -oP “A=\K([A-Za-z0-9_.:]+)” | sort | uniq -c | sort -nr

Kategóriák
Egyéb

Splunk telepítése Linux alá

Mi az a Splunk?

A Splunk Enterprise felügyeli és elemzi a gépi tanulás által szolgáltatott adatokat – legyen szó bármilyen forrásról – ezzel az IT, a biztonság és az üzleti teljesítmény optimalizálását elősegítve. Az intuitív elemzési funkciókkal, a gépi tanulás és a nyílt API-k segítségével a Splunk Enterprise egy szokatlanul rugalmas platform, amely a specifikus felhasználási esetektől a vállalati szintű analitikai gerinchálózatig terjed. Leegyszerűsíti a technológiai infrastruktúra, a biztonsági rendszerek és az vállalati alkalmazások által létrehozott big data kiaknázatlan értékének összegyűjtését, elemzését és a napi működésbe való beépítését – ezáltal lendületet adva az operatív teljesítménynek és az üzleti eredményeknek.

1. Splunk felhasználó létrehozása

groupadd splunk
useradd -d /opt/splunk -m -g splunk splunk
su - splunk
id
uid=1001(splunk) gid=1001(splunk) groups=1001(splunk)

2. Splunk letöltése, telepítése

A hivatalos weboldalról a tudjuk letölteni a számunkra szükséges verziót innen. A linux fül alatt válasszuk ki a tgz verziót és azt töltsük fel a linux alá, igény esetén pedig az Older Releases alól a számunkra szükséges verziót.

tar -xvf splunk-7.2.1-be11b2c46e23-Linux-x86_64.tgz
cp -rp splunk/* /opt/splunk/
chown -R splunk: /opt/splunk/

3. Splunk telepítése

su - splunk
cd bin/
./splunk start --accept-license

Itt szépen lezajlik a telepítő, majd ha sikeresen le is futott, akkor el is indul. A splunk webes felületét alapértelmezetten a http://szerverem.valami.hu:8000/ vagy a http://azenipcimem:8000/ alatt érhető el. Az alap bejelentkezési adatok az admin / changeme segítségével enged be minket, amit első belépéskor meg kell változtatnunk. Ha centos-ra telepítettük a Splunk-ot, akkor a selinuxot és a firewalldt be kell állítanunk, különben nem fogja engedélyezni a webes felület elindulását.

Forrás:

How to Install Splunk on CentOS 7

 

 

Kategóriák
Egyéb

Proxmox pve-firmware és firmware-linux-free conflict orvoslása frissítéskor

A lentebbi hiba akkor jön elő, ha Proxmox 5.0 verziónk van és még nem frissítettünk 5.x-re.

Hibaüzenet:

[email protected]:/home/wolfi# apt upgrade
Reading package lists… Done
Building dependency tree
Reading state information… Done
Calculating upgrade… Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:The following packages have unmet dependencies:
pve-firmware : Conflicts: firmware-linux-free but 3.4 is to be installed
E: Broken packages

Megoldás:

  1. /etc/apt/sources.list fixálása, csak az legyen benne, amire szükségünk van.
  2. apt update Csomaglista frissítése.
  3. Majd apt dist-upgrade rendszer frissítése a legújabb verzióra.

Hasznos linkek:

https://forum.proxmox.com/threads/unmet-dependencies-issue-when-updating-5-x.37432/
https://pve.proxmox.com/wiki/Downloads#Update_a_running_Proxmox_Virtual_Environment_5.x_to_latest_5.0
https://pve.proxmox.com/wiki/Package_Repositories

Kategóriák
Egyéb

Ssh kulcs generálás linux alatt

Ssh kulcs generálás egyszerűen egyszerűen szinte bármelyik linuxos terminál segítségével.

  1. Nyissunk meg egy konzolt valahol a linux alatt.
  2. Hozzunk létre egy 4096 hosszú kulcsot:ssh-keygen -t rsa -b 4096 -C "[email protected]"
  3. Majd a Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): nél adjuk meg a kulcs nevét, ha nem akarjuk az alapértelmezett id_rsa-t használni. Továbbá itt adható meg az is, hogy hová generálja le a kulcsot. Pl. /home/felhasznalo/.ssh/felhasznalo.key Ha több felhasználónk van és a kulcsokat egy helyen tároljuk, akkor célszerű már itt átnevezni őket.
  4. Enter passphrase (empty for no passphrase): résznél adjuk meg a privát kulcsunknak egy bonyolult jelszavat, így biztonságosan eltárolhatjuk egy felhőben, anélkül félve, hogy azt bárki is használni tudná, ha véletlen megszerzi. Amennyiben viszont kulcs nélküli bejelentkezésre szeretnénk használni, itt csak nyomjunk egy entert. (Persze, ha tudomásunk van arról, hogy valaki megszerezte a kulcsunkat, azonnal cseréljük, azt le mindenhol, még ha az védve is van egy jelszóval.)
  5. Enter same passphrase again:résznél erősítsük meg a fentebbi jelszavunkat, ha szükséges vagy értelemszerűen nyomjunk entert, amennyiben jelszó nélküli kulcsos beléptetésre szeretnénk használni.
  6. A Your identification has been saved in felhasznalonev.key. és Your public key has been saved in felhasznalonev.key.pubjelzi, hogy a kulcsaink sikeresen legenerálásra kerültek a kívánt helyre. Majd alatta megjelenik a The key fingerprint is: SHA256:KnLaFP2/HMh+rtZ6XJzatYbZtyA8nH1EU97bIGofb/A [email protected]ami a kulcsunk ujjlenyomata. Ezt az első csatlakozáskor láthatjuk egy új ssh munkamenet során vagy ha valami turpisság van a dologban. Erre érdemes figyelni, amikor felteszi nekünk a rendszer vagy a Putty a kérdést, hogy ez a helyet biztos ismerjük? Nehogy zsákutcába fussunk, ezt érdemes egy listában vezetni magunknak és figyelni rá! Egy másik lehetőség a vizuális ábra segítségével, mivel emberek vagyunk, képeket könnyebben összehasonlítunk, mint hash sorokat. The key's randomart image is:alatt megjelenik egy ilyen ábra is. Az ssh esetén a -o VisualHostKey=yes opció segítségével tudjuk könnyen azonosítani a kulcsunkat.,
    +—[RSA 4096]—-+
    | .|
    | .o|
    | . .oo|
    | . . …+|
    | . . S o.o. o.|
    | . + oo.*=o |
    | . + . +o.X.BEo |
    | * . ..o*.*.* .|
    | . . .+*=. . o.|
    +—-[SHA256]—–+
  7. A kulcs generálása sikeresen kész, már használhatjuk is. A pubkey másolását egyszerűen a cél rendszerre a ssh-copy-id -i /home/felhaszanalonev/felhasznalonev.key.pub [email protected] segítségével tudjuk átmásolni.

 

 

 

 

Kategóriák
Egyéb

Hogyan változtassuk meg a dm-crypt jelszavát

A dm-crypt egyszerre 8 jelszót vagy kulcsfájlt képes eltárolni, melynek a max. mérete nem haladhatja meg a 8mb-t. Erre akkor lehet pl. szükségünk, ha egy rendszernek meg szeretnénk változtatni a jelszavát, mert telepítéskor egy gyengét állítottunk be, hogy ne kelljen vele szívni az első bootoláskor. Ha csak cserélni szeretnénk a meglévő jelszót legegyszerűbb eljárás, ha felveszünk a kötetünkhöz egy újat és a régit később kitöröljük. Melynek a lépései a következők:
  1. Keressük meg, hogy mely az a partíció, mely kötetek vannak titkosítva. cat /etc/crypttab
  2. Ha valami olyasmit találunk, hogy mint ez: sda5_crypt /dev/disk/by-uuid/1234abcd-5678-1337-2342-123456789abc none luks Ha olyan sort találunk, amiben szerepel a luks, akkor nagy eséllyel megtaláltuk, amelyik nekünk kell.
  3. Adjuk hozzá az új jelszavunkat: sudo cryptsetup luksAddKey /dev/sda5 Először is meg fogja kérdezni a régi jelszavunkat, mielőtt egy újat vehetnénk fel, szóval mielőtt lelkesen elkezdenénk neki begépelni az új jelszavunkat, ne felejtsük el neki megadni a régit. Vagy szimlán hozzá adhatunk egy kulcsfájlt is. sudo cryptsetup luksAddKey /dev/sda5 /path/to/keyfile
  4. Majd a következő újraindítást követően kérni fogja az új jelszavunkat, ha a kötet fel van csatolva vagy arról töltődik be a rendszer.
  5. Miután meggyőződtünk arról, hogy az új jelszó vagy a kulcsfájlunk megfelelően működik, eltávolíthatjuk a régi jelszavunkat vagy kulcsfájlunkat.sudo cryptsetup luksRemoveKey /dev/sda5
Forrás: https://makandracards.com/makandra-orga/661-how-to-change-your-dm-crypt-passphrase
Kategóriák
Egyéb

Egyéni iptables szabályok hozzáadása a CSF-hez

A CSF (ConfigServer Firewall) egy iptables alapú ingyenes tűzfal, amit a fejlesztők szorgosan fejlesztenek, nagyon egyszerű a használata és számos olyan funkciója van, ami a mindennapi életben praktikus lehet. Mind a parancsoros, webes felület vagy a számos beállítható opció. Viszont itt a kérdés most az, hogyan állíthatunk be mi is külön egyedi szabályokat. Erre két lehetőségünk van, hozzáadni őket még a csf szabályai elött vagy azok után.

Ha azt szeretnénk, hogy a tűzfal betöltése előtt töltődjenek be a szabályaink, akkor a /etc/csf/csfpre.sh fájlba kell rögzítenünk. Mint pl.

iptalbes -A INPUT -i eth0 -s 192.168.0.11 -j DROP

Ha viszont a tűzfal szabályainak a betöltése után szeretnénk azokat betölteni, akkor a /etc/csf/csfpost.sh fájlba kell felvennünk azokat. Mint pl.

iptalbes -A INPUT -i eth0 -s 192.168.0.11 -j DROP

Majd a módosítások érvényesítéséhez újra kell indítani a csf-et a csf -r | less paranccsal vagy a webes felületén keresztül a Firewal Restart gomb segítségével. Ennek hatására érvénybe is léptek az új szabályaink.

Kategóriák
Egyéb

Partíciók, kötetek, blokk eszközök titkosítása LUKS+cryptsetup-el Linux alatt

Ez egy nagyon hasznos program a cryptsetup társaságában, ami próbálja ugye egységesíteni a Linux alatt található különböző titkosítási alternatívákat. Használatával pofon egyszerűen tudunk dolgozni. Itt  mi most egy komplett merevlemezt fogunk titkosítani Debian 9 alatt. Erre természetesen rá lehetne húzni még lvm-et, hogy még rugalmasabb, kényelmesebb a dolog, de itt most az egyszerűség a cél. Lényegében csak a saját adatainkat szeretnénk biztos helyen tudni pl. egy külső merevlemezen, amit ha esetleg ellopnak vagy elhagyunk, akkor ne férhessenek hozzá a féltve orzott tartalmainkhoz. Maga ez az alternatíva, amikor blokk eszközöket titkosítunk, nem véd meg minket futó környezetben, ha pl. feltörik a számítógépünket, mert nem fájltitkosítást végez. Arra más alternatívák vannak, mint egy titkosított privát felhő seafile vagy nextcloud-al stb. Nah, de kezdjünk is neki.

1. A Luks telepítése

a) Debian alapú disztribúciók esetén

[email protected]#:/ apt install cryptsetup

b) Redhat vagy Cantos alapú disztribúciók esetén

[email protected]#:/ yum install cryptsetup-luks

2. A Luks alatti blokk eszköz titkosítása, előkészítése formázásra

Elsőnek lépésben keressük meg, hogy melyik partíció az, amit titkosítani szeretnénk. Legyünk óvatosak, nehogy a rendszert formázzuk le véletlenül, mivel a következő lépésben le fogjuk a luks titkosított fájlrendszerével titkosítani a dolgokat.

[email protected]#: ls /dev | grep sd

sda
sda1
sda2
sdb

Mint az szépen kitűnik, nekünk az utolsó /dev/sdb kötetre lesz szükségünk, a frissen a géphez csatlakoztatott merevlemezen még partíció sincs létrehozva, melyet az sd[abc] utáni számok jelölnek.

a) Diszk formázásakor, amikor felteszi a kérdését, hogy biztosak vagyunk a műveletben, írjunk be neki egy nagy YES-t, különben enter leütésre vagy kis yes-re nem fog elindulni. Majd adjuk meg a jelszavunkat, amivel titkosítani fogjuk az adatainkat. Természetesen használhatunk kulcs fájlokat is, de ha távolról szeretnénk mondjuk felmountolni, kellemesebb ezt megtenni egy jelszóval, aminek a maximális hossza 512 karakter lehet. Én ezt választanám, egy pvgen -C 512 -n1 segítségével gyönyörű szépen le lehet generálni és eltárolni egy titkosított jelszókezelő alkalmazásban, mint pl. a KeePass. Mellyet ssn utána pl. be tudok egyszerűen illeszteni és felcsatolni a rendszer betöltődése után.

[email protected]#:/ cryptsetup -y -v luksFormat /dev/sdb

b) A blokkeszköz létrehozása a mapper-ben. Itt adjuk meg a jelszavunkat.

[email protected]#:/ cryptsetup open --type luks /dev/sdb kulso-hdd

c) Kötet információk ellenőrzése.

[email protected]#:/ cryptsetup -v status kulso-hdd

d) Ellenőrizzük, hogy sikeresen letitkosítottuk e a kötetünket.

[email protected]#:/ cryptsetup luksDump /dev/sdb

e) Most, hogy már kész a kötetünk, töltsük fel nullákkal. Ez egy hosszabb folyamat, el fog telni egy darabig, amíg végez. Viszont csak opcionális, de mivel ennek hatására már a teljes diszken titkosított adatok lesznek, így a jövőben nehezebben állapítható meg, hogy valójában hová is kerültek a mi titkosított adataink az adathalmaz közepén.

[email protected]#:/ pv -tpreb /dev/zero | dd of=/dev/mapper/kulso-hdd bs=128M

3. Formázás, mountolás, lecsatolás

a) Elérkezett ez a pillanat is, hogy formázhatjuk az eszközünket a számunkra szimpatikus fájlrendszerrel, én maradok a jól bevált ext4-nél.

[email protected]#:/ mkfs.ext4 /dev/mapper/kulso-hdd

b) Mountolás

[email protected]#:/ mount -t ext4 /dev/mapper/kulso-hdd /mnt/valahova

c) Biztonságos lecsatolás eltávolítás előtt, ha már nincs rá szükségünk.

[email protected]#:/ umount /mnt/valahova

[email protected]#:/ cryptsetup close kulso-hdd

4. Végszó

Nagyjából ennyiből tart egy teljes merevlemez titkosítása, amelyen biztonságosan tárolhatunk az adatainkat anélkül, hogy félnünk kellene, hogy azok illetéktelen kezekbe kerülve is hozzáférhetővé válhatnak.

Forrás

https://www.ibm.com/support/knowledgecenter/en/SS6PEW_9.5.0/com.ibm.help.security.dimeanddare.doc/security/t_security_settingupluksencryption.html

Kategóriák
Egyéb

Nextcloud lockolt fájlok feloldása

Már egy ideje használom a nextcloudot, ismerkedem vele. A minap megpróbáltam webdaval felmountolni, egy másik felhasználó alól egy megosztott mappát egy másik linux alatt, hogy milyen jó lesz majd oda pakolni a mentéseinket stb. Az elképzelés első körben jó volt, de maga a webdav sok apró fájlnál nagyon lassú, nem érdemes használni. A másik, ami pedig ezt a problémát előhozta, hogy kb. egy 15gbs backup átmásolása után valahogy megszakadt a kapcsolat és zárolva maradt a fájl. A webes felület napló fájljaiból a következő hiba üzenet jelent meg. Kicsit utána jártam a témának, hogy mi is okozza ezt. Lényegében az adatbázisban maradt egy fájl zárolva, ennek a megoldásáról is lentebb lehet olvasni. Magát a lockolást ki is lehet kapcsolni a config.php-ben de én ezt nem akarom, mert a másokkal megosztott fájlokat nem lenne jó ötlet, ha egyszerre ketten is tudnánk pl. szerkeszteni.

OCA\DAV\Connector\Sabre\Exception\FileLocked: “Egyfile.tgz” is locked

  1. /data/nextcloud/3rdparty/sabre/dav/lib/DAV/Tree.php – line 179: OCA\DAV\Connector\Sabre\File->delete()
  2. /data/nextcloud/3rdparty/sabre/dav/lib/DAV/CorePlugin.php – line 287: Sabre\DAV\Tree->delete(‘files/wolfi/Bac…’)
  3. [internal function] Sabre\DAV\CorePlugin->httpDelete(Object(Sabre\HTTP\Request), Object(Sabre\HTTP\Response))
  4. /data/nextcloud/3rdparty/sabre/event/lib/EventEmitterTrait.php – line 105: call_user_func_array(Array, Array)
  5. /data/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php – line 479: Sabre\Event\EventEmitter->emit(‘method DELETE’, Array)
  6. /data/nextcloud/3rdparty/sabre/dav/lib/DAV/Server.php – line 254: Sabre\DAV\Server->invokeMethod(Object(Sabre\HTTP\Request), Object(Sabre\HTTP\Response))
  7. /data/nextcloud/apps/dav/lib/Server.php – line 283: Sabre\DAV\Server->exec()
  8. /data/nextcloud/apps/dav/appinfo/v2/remote.php – line 35: OCA\DAV\Server->exec()
  9. /data/nextcloud/remote.php – line 164: require_once(‘/data/nextcloud…’)
  10. {main}

Megoldás elsőnek a kliensnél umount -l -f /mnt/valami segítségével szépen lecsatoltam a csatolási pontot, majd visszamentem a felhőre.

Karbantartás mód bekapcsolása.

sudo -u www-data php occ maintenance:mode --on

mysql -u root -p
use nextcloud;
DELETE FROM oc_file_locks WHERE 1;
exit

Konzolból futtatva a következő parancsokat a nextcloud adatbázisában kitöröltem az összes fájl zárolást, utána már sikeresen ki tudtam törölni a problémás fájlt.

Ha valaki ebbe belefutna, nagyjából ennyi a teendő, továbbá még érdemes a nextcloud konzoljával egy fájl checket is csinálni.

Fájlok újra szkennelése.

sudo-u www-data php /data/nextcloud/occ files:scan --all

Karbantartás mód kikapcsolása.

sudo -u www-data php /data/nextcloud/occ maintenance:mode --off
Források:
https://docs.nextcloud.com/server/9/admin_manual/configuration_server/occ_command.html
https://help.nextcloud.com/t/file-is-locked-how-to-unlock/1883/8
Kategóriák
Egyéb

Nextcloud 13 telepítése Debian 9 alá

Ebben a bejegyzésben a Nextcloud 13 telepítésén megyünk végig lépésről lépésre, ahol egy saját felhőt rakunk össze az adataink tárolásához. A fő probléma, ami ezt a cikket is ihlette, hogy nagyon sok helyen használok különféle felhő alapú tárhelyet, ami harmadik fél kezében van és így rálátása lehet a tartalmaimra, amit nem feltétlen szeretnék megosztani másokkal. Szóval mindent egy helyre pakolok innentől kezdve, a könnyebb kezelhetőség, biztonság érdekében. Gondolkodtam első körben, hogy ezt vagy a Seafilet telepítsem e fel. Korábban már hosszabb ideig használtam OwnCloudot, ami igaz, hogy lassabb a Seafilenál, viszont külön service futtatását igényli és phyton alapon fut. A Nextcloudhoz viszont elég egy apache/nginx+php kombó szóval szinte bármilyen környezetben elfuttatható. E miatt esett rá a választásom. Igaz, hogy így egy jóval lassabb lesz a feltöltési sebesség kisebb fájlok esetén, de ezt beáldozom az egyszerűség oltárán. Nagyobb fájlok esetén viszont nincs nagy eltérés a kettő között. Ezt a telepítést egy újonnan telepített érintetlen Debian 9 rendszeren teszteltem. Az erőforrásokról annyit, hogy egy külön vpsre került, 2gb ram, 2cpu mag, 2tb háttértár kíséretében és így pár hét távlatában igen szépen működik.

A frissen telepített rendszer frissítése

apt update && apt upgrade -y

Apache 2.4 telepítése

apt install apache2

Php 7.2 telepítése

apt install apt-transport-https lsb-release ca-certificates
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php.list
apt update
apt install libapache2-mod-php7.2 php7.2-xml php7.2-common php7.2-gd php7.2-json php7.2-mbstring php7.2-zip php7.2-mysql libapache2-mod-php7.2 php7.2-curl php7.2-bz2 php7.2-intl php-imagick php7.2-dev

Mycript tepepítése php 7.2-höz

Sajnos mivel régóta nem fejlesztették már a libmcrypt-t, ezért ezt a 7.2-ből eltávolították és egy nem hivatalos pecl repo-ba került, így egy kicsit macerásabb a telepítése.

apt install php-pear
apt install gcc make autoconf libc-dev pkg-config libmcrypt-dev -y
pecl install mcrypt-1.0.1

Amikor a “libmcrypt prefix? [autodetect] :” üzenet megjelenik a konzolon, csak nyomjunk neki egy entert és a telepítő folytatódik tovább.
Sikeres telepítés végén a következő üzenet jelenik meg:

Build process completed successfully
Installing ‘/usr/lib/php/20170718/mcrypt.so’
install ok: channel://pecl.php.net/mcrypt-1.0.1
configuration option “php_ini” is not set to php.ini location
You should add “extension=mcrypt.so” to php.ini

echo "extension=/usr/lib/php/20170718/mcrypt.so" > /etc/php/7.2/cli/conf.d/mcrypt.ini
echo "extension=/usr/lib/php/20170718/mcrypt.so" > /etc/php/7.2/apache2/conf.d/mcrypt.ini

Mariadb 10.1 telepítése

apt install mariadb-server
mysql_secure_installation

A felmerülő kérdésekre, mindenhol nyomjunk entert, a root-nak meg egy erős jelszót állítsunk be, amit akár a random.org-ról is generálhatunk. Igaz nálam ez a folyamat már nem állított be a root-nak jelszót, így ehhez egy másik trükközésre volt szükség.

Set root password? [Y/n] Y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
… Success!
Remove anonymous users? [Y/n] Y
… Success!
Disallow root login remotely? [Y/n] Y
… Success!
Remove test database and access to it? [Y/n] Y
– Dropping test database…
… Success!
– Removing privileges on test database…
… Success!
Reload privilege tables now? [Y/n] Y
… Success!
Cleaning up…
All done! If you’ve completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!

Pár beállítás hozzáadása a konfighoz:

echo "[mysqld]
innodb_large_prefix=on
innodb_file_format=barracuda
innodb_file_per_table=true" >> /etc/mysql/my.cnf

/etc/init.d/mysql restart

Nextcloud telepítése

mysql -u root -p

MariaDB [(none)]> CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud_user'@'localhost' IDENTIFIED BY 'adatbazis_jelszo';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit

mkdir -p /data/
cd /data/

wget https://download.nextcloud.com/server/releases/nextcloud-13.0.2.zip
unzip nextcloud-13.0.2.zip -d /data/
chown -R www-data:www-data /data/nextcloud/
cd /data/nextcloud/

sudo -u www-data php occ maintenance:install --database "mysql" --database-name "nextcloud" --database-user "nextcloud_user" --database-pass "adatbazis_jelszo" --admin-user "admin" --admin-pass "jelszo"

A lentebbi üzenetet fogjuk a konzol kimeneten visszakapni, ha sikeresen telepítettük a nextcloudot. Igaz ezt megtehetjük a webes felületén keresztül is egy egyszerű telepítővel, de én ezt a megoldást jobban preferálom. Ha valaki még is a webes telepítő felé hajlana jobban, akkor a nextcloud dokumentációjában talál erről még bővebb leírást. Maga a telepítés eltart pár percig, legyünk türelmesek, amikor úgy tűnik, mintha nem csinálna semmit.

Nextcloud is not installed – only a limited number of commands are available
Nextcloud was successfully installed

/data/nextcloud/config/config.php-hoz hozzá kell adni a megbízható domaineket a localhost alatt, amiről használni akarjuk a felhőt, különben a login képernyőn egy hiba üzenet fog minket fogadni. Több domain esetén egyértelmű a szintaktika, szépen adjuk hozzá a többit is. Nekem személy szerint egy is elég.
1 => ‘cloud.domain.hu’,
2 => ‘felho.domain.hu’,
[…]

Apache 2.4 VirtualHost beállítása ssl-el, modulok engedélyezése, biztonság növelése

a2enmod rewrite headers env dir mime ssl

/etc/sites-available/cloud.domain.hu.conf-ba hozzuk létre a virtualhost beállításokat.

echo "<VirtualHost 123.123.123.123:443>
ServerAdmin [email protected]
DocumentRoot "/data/nextcloud"
ServerName cloud.domain.hu

<Directory "/data/nextcloud/">
Require all granted
Options MultiViews FollowSymlinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>

SSLEngine on
SSLCertificateFile "/etc/apache2/ssl/cloud.domain.hu.crt"
SSLCertificateKeyFile "/etc/apache2/ssl/cloud.domain.hu.key"
SSLCACertificateFile "/etc/apache2/ssl/cloud.domain.hu.ca-bundle"

Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
Header set X-Frame-Options SAMEORIGIN
Header set X-Content-Type-Options nosniff

TransferLog /var/log/apache2/cloud.domain.hu-ssl_access.log
ErrorLog /var/log/apache2/cloud.domain.hu-ssl_error.log
</VirtualHost>" > /etc/apache2/sites-available/cloud.domain.hu.conf

a2ensite cloud.domain.hu.conf

/etc/apache2/mods-enabled/ssl.conf-ban az ssl modul beállítások, amiket be kell állítanunk, ami nincs benne, azt csak másoljuk be a végére.
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLHonorCipherOrder On
# Ezek a beállítások nincsenek benne, csak másold a végére.
SSLCompression off
SSLUseStapling on
SSLStaplingCache “shmcb:logs/stapling-cache(150000)”
SSLSessionTickets Off

Acme.sh telepítése, tanúsítványok generálása, telepítése. Telepítés után automatán beállítja a cront, így 60 naponta szépen újat generál, innentől kezdve evvel többen alap esetben nem kell foglalkoznunk.

wget -O -  https://get.acme.sh | sh

mkdir -p /etc/apache2/ssl

acme.sh --issue -k 4096 --apache -d cloud.domain.hu

acme.sh --install-cert -d cloud.domain.hu \
--cert-file "/etc/apache2/ssl/cloud.domain.hu.crt" \
--key-file "/etc/apache2/ssl/cloud.domain.hu.key" \
--ca-file "/etc/apache2/ssl/cloud.domain.hu.ca-bundle" \
--reloadcmd "/etc/init.d/apache2 restart"

Ha a konfigteszt nem “Syntax OK” üzenetet ad vissza, akkor valamit elrontottunk, ez segíthet a szintaktikai hibák detektálásában. Majd mehet az újraindítás, ha minden rendben van.

apache2ctl -t
/etc/init.d/apache2 restart

Ha az ssllabs.com-on csinálunk egy biztonsági ellenőrzést, akkor egy A+-os minősítésnek kell megjelennie, mint a lentebbi képen.

Cron beállítása

Szükséges egy karbantartó cron beállítása a cron démon által, mert az ajax nem paralitikus és csak akkor fut le, ha valaki belép a webes felületen keresztül, ami jelentősen lassítani tudja e miatt a belépéskori betöltést.

crontab -e -u www-data

Majd illesszük be a lentebbi cront és mentsük el a beállításokat.

*/15 * * * * php -f /data/nextcloud/cron.php

Ezzel már majdnem készen is vagyunk, de a webes felület beállításai között is át kell állítani az Alapvető beállítások -> Háttérfeladatok résznél Cron-ra. Majd ellenőrizhetjük, hogy a következő negyed órában sikeresen lefutott e a cron. Erre jó példa a lentebbi kép.

Php finomhangolása

/etc/php/7.2/apache2/php.ini-ben a lentebbi beállításokat kell beállítanunk a nextcloud optimális működéséhez.

# Opcache engedélyezése
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

# Futásidejű memória növelése.
memory_limit = 512M

# Maximális feltöltési limit növelése, tetszőlegesen, de a post_max_size nem lehet kisebb az upload_max_filesize nál csak vele megegyező vagy nagyobb, különben nem fog normálisan működni a fájlfeltöltés, mert megszakad.
upload_max_filesize = 2000M
post_max_size = 2000M

# A php folyamatok, futásidejének növelése. Erre szükség lehet pl. ha a fentebbi példában egy nagyobb fájlt töltünk felfele a webes felületen keresztül és lassabb internetkapcsolatunk van, amivel eltarthat fél óráig is, mire befejeződik.
max_execution_time = 3600
max_input_time = 3600

# Megfelelő időzóna beállítása, a pontos idő megjelenítése véget.
date.timezone = “Europe/Budapest”

Redis beállítása cacheléshez

A telepítés egyszerrű csak a redis-server és a php-redis csomagokat kell feltennünk, majd a redis szervert a telepítő automatán el is indítja, ezt követően elég újraindítani az apachet és a nextgencloud config.php fájljában beállítani a szükséges konfigurációt és már működik is.

apt install redis-server php-redis

A redis sikeres futásának ellenőrzése.

ps ax | grep redis
14890 ? Ssl 0:00 /usr/bin/redis-server 127.0.0.1:6379
15196 pts/1 S+ 0:00 grep redis

A lentebbi konfigot adjuk hozzá a nextcloud gyökerében található config/config.php tartalmához.

'memcache.local' => '\OC\Memcache\Redis',
'redis' => array(
     'host' => 'localhost',
     'port' => 6379,
      ),

Ha mindent jól csináltunk az eredményt ellenőrizhetjük a nextcloud Alapbető beállítások -> Biztonsági és telepítési figyelmeztetéseknél. Erre a lenti kép egy jó példa.

Szép url-ek beállítása

Alap esetben az url-ek tartalmazzák az index.php rész is, amit el tudunk távolítani a lentebbi beállításokkal. Így rövidebb és praktikusabb linkeket tudunk használni a címsorban és a megosztásokkor is.
A szokásos config/config.php hez adjuk hozzá a következőket.

'overwrite.cli.url' => 'https://cloud.domain.hu' ,
'htaccess.RewriteBase' => '/' ,

Majd futtassuk az alábbi parancsot, hogy frissüljön a .htaccess file tartalma is. Ezt követően már készen is vagyunk vele.
sudo -u www-data php /data/nextcloud/occ maintenance:update:htaccess

Végszó

Nagyjából ennyiből áll egy nextcloud felhő feltelepítése nulláról, egy frissen telepített Debian 9-re. Remélem mások is hasznát veszik az írásomnak. Ha esetleg ötleted vagy javaslatod van, azt komment formájában lent jelezd felém és még fejleszthetünk rajta.

Források:
https://docs.nextcloud.com/server/13/admin_manual/contents.html
https://lukasmestan.com/install-mcrypt-extension-in-php7-2/

Kategóriák
Egyéb

Windows 10 migrálás régi diszkről újra

Az elmúlt időben kinőttem a rendszer alatt lévő 250gbs ssdt, így egy nagyobb 500gbs-re cseréltem. De ahhoz, hogy relatíve gyorsan és egyszerűen át tudjam migrálni a dolgaimat, a már több alkalommal is bevált MiniTool Partition Wizzard nevű programot kellett használtam. A program maga ingyenes otthoni használatra, szóval bárki letöltheti és bátran használhatja. Ezen funkcióján túlmenően még egy igen hasznos eszköz tud lenni, ha a partíciókkal kell dolgoznunk a Windows alatt. Egy érdekes dolog volt, amit észre vettem a költöztetés után, ott hagyott az ssd elején egy 1gbs helyreállítási partíciót, amit később már nem tudtam arrébb mozgatni. Annyi baj legyen, de legalább szépen, problémamentesen működött.