Tökéletes szerver: Debian 10 (Buster) V1.0 (3. oldal)

botond küldte be 2020. 01. 02., cs - 17:19 időpontban

Tartalom

 

A 3. oldal tartalma

 

Folytatás

Az előző oldalon feltelepítettünk néhány további kiegészítőt, ezen az oldalon folytatjuk a RoundCube webmail kliens beüzemelésével.

 

 

RoundCube webmail kliens telepítése

A RoundCube egy igényes kezelőfelülettel rendelkező és felhasználóbarát webmail kliens, amivel kényelmesen kezelhetjük POP3 vagy IMAP fiókjainkat. A levelezőprogram Debian 10-ben lévő csomagja tartalmaz egy hibát, ami annyiból áll, hogy a telepítéskor nem hozza létre az adatbázis felhasználót és az adatbázist, majd emiatt hibával megakad a konfigurációja. De semmi gond, könnyen orvosolhatjuk ezt a problémát: a telepítés előtt kézzel létrehozzuk a szükséges adatbázist és felhasználóját. Ehhez lépjünk be a MariaDB konzolba:

mysql --defaults-file=/etc/mysql/debian.cnf

Ezután soronként adjuk ki az alábbi SQL parancsokat:

CREATE DATABASE roundcube;
grant all privileges on roundcube.* to roundcube@'localhost' identified by '<jelszó>';
flush privileges;
exit

Itt a <jelszó> helyén adjunk meg egy magunk által megválasztott jelszót. Ezt az adatbázist nem mi fogjuk használni, hanem a webmail felület. Ha minden megfelelően ment, akkor hasonló képernyőt láthatunk:

Roundcube adatbázis és jelszó létrehozása

Ezután telepíthetjük a szükséges csomagokat:

apt-get -y install roundcube roundcube-core roundcube-mysql roundcube-plugins

Elindul a telepítő, és bejön egy dialógus, ahol megkérdezi, hogy szeretnénk-e hogy a dbconfig-common automatikusan beállítsa-e nekünk az adatbázis csatlakozást:

RoundCube konfigurálása a dbconfig-common segítségével

Itt válasszunk igen-t.

A következő panelen bekéri a létrehozott roundcube felhasználó jelszavát:

RoundCube konfigurálása - Jelszó megadása

Itt adjuk meg a fentebb megadott jelszavunkat. Ezután még meg kell ismételni:

RoundCube konfigurálása - Jelszó ismétlése

Ha megismételtük, utána szépen lefut a telepítő.

Ezután nyissuk meg a /etc/roundcube/config.inc.php fájlt szerkesztésre, és állítsunk be még pár dolgot:

nano /etc/roundcube/config.inc.php

Keressük meg a fájlban ezt a két beállítást, és állítsuk őket 'localhost' értékre:

$config['default_host'] = 'localhost';
$config['smtp_server'] = 'localhost';

Ezek közül az smtp_server már alapból így van beállítva, de ha később, egy másik verzióban mégsem így lenne, állítsuk ezt is erre, majd mentsük le.

 

 

Ezután állítsuk be az alias-okat a RoundCube Apache beállításában:

nano /etc/apache2/conf-enabled/roundcube.conf

Itt kivehetjük a kommentet az alábbi sor elől:

#    Alias /roundcube /var/lib/roundcube

És / vagy betehetünk alá egy másik aliast is:

Alias /webmail /var/lib/roundcube

attól függően, hogy milyen alkönyvtár(ak)ból szeretnénk tudni később elérni a RoundCube webmail felületét.

Itt az ISPConfig fejlesztői felhívják a figyelmet, hogy használhatunk saját aliasokat a RoundCube elérésére, de a "/mail" aliast ne használjuk, mert attól megakad az ISPConfig email modulja.

Részemről mindkét fenti aliast beállítottam:

# Those aliases do not work properly with several hosts on your apache server
# Uncomment them to use it or adapt them to your configuration
Alias /roundcube /var/lib/roundcube
Alias /webmail /var/lib/roundcube

[...]

Indítsuk újra az Apache-ot:

systemctl restart apache2

És mostantól már elérhető a RoundCube felülete az alábbi címekről:

  • http://192.168.1.130/webmail/
  • http://192.168.1.130/roundcube/

RoundCube - Belépés

Természetesen a szerver telepítése során beállított IP-címmel fog működni. Nálam ez a cím van beállítva.

Továbbá, ha majd később létrehozunk weboldalakat az ISPConfigban, akkor a weboldalak alatti /webmail és /roundcube alias könyvtárakból is elérhető lesz a felület, így minden ügyfél a saját weboldala alól kényelmesen hozzá tud férni a levelezőhöz.

 

ISPConfig kezelőpanel telepítése

Végül jön az ISPConfig kezelőpanel beüzemelése, ami felügyeli és kezeli az idáig feltelepített szerver összetevőket. Telepítéséhez töltsük le a csomagját, tömörítsük ki, majd indítsuk el az install.php fájlt:

cd /tmp
wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar -xzf ISPConfig-3-stable.tar.gz
cd ispconfig3_install/install/
php -q install.php

Elindul a telepítő:

ISPConfig3 telepítése

Felismeri a disztribúciónkat, majd rákérdez, hogy milyen nyelvet szeretnénk használni (angol vagy német). Itt válasszuk ki, amelyiket szeretnénk.

Ezután folytatódik a telepítés, ahol még válaszolgatnunk kell több kérdésre is:

Installation mode (standard,expert) [standard]: <-- Enter

Full qualified hostname (FQDN) of the server, eg server1.domain.tld  [debian10.linuxportal.vm]: <-- (kitölti magától a rendes szervernevünket) Enter

MySQL server hostname [localhost]: <-- Enter

MySQL server port [3306]: <-- Enter

MySQL root username [root]: <-- Enter

MySQL root password []: <-- Adjuk meg az adatbázis root jelszavát

MySQL database to create [dbispconfig]: <-- Enter

MySQL charset [utf8]: <-- Enter

Configuring Postgrey
Configuring Postfix
Generating a RSA private key
.........................................................................++++
...............................................................................................................................................................................................................++++
writing new private key to 'smtpd.key'
-----

Itt a Postfix konfigurálása közben generál egy kulcsot az SMTP számára, aminek bekéri az adatait a self-signed kulcs készítéséhez. Itt bármilyen adattal kitölthetjük a kérdőívet:

You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:<-- HU
State or Province Name (full name) [Some-State]:<-- Magyarország
Locality Name (eg, city) []: <-- Városunk neve
Organization Name (eg, company) [Internet Widgits Pty Ltd]:<-- Cégünk neve
Organizational Unit Name (eg, section) []:<-- Cégen belüli osztály, stb neve
Common Name (e.g. server FQDN or YOUR name) []:<-- Teljes hosztnevünk
Email Address []: <-- email címünk

Természetesen ezeknek az adatoknak semmi jelentőségük nincs, mivel a self-signed SSL-ünkre amúgy is hibát fog dobni például a levelezőkliensünk...

 

 

Ez után beállítja a különböző szolgáltatásokat:

[INFO] service Mailman not detected
Configuring Dovecot
Creating new DHParams file, this takes several minutes. Do not interrupt the script.
Configuring Spamassassin
Configuring Amavisd
[INFO] service Rspamd not detected
Configuring Getmail
Configuring Jailkit
Configuring Pureftpd
Configuring BIND
Configuring Apache
Configuring vlogger
[INFO] service OpenVZ not detected
Configuring Ubuntu Firewall
[INFO] service Metronome XMPP Server not detected
Configuring Fail2ban
Configuring Apps vhost
Installing ISPConfig

És jön az ISPConfig telepítése, ahol újabb kérdésekre kell válaszolgatnunk:

ISPConfig Port [8080]: <-- Enter

Admin password [8208023b]: <-- Adjunk meg egy jelszót az ISPConfig admin felhasználója számára

Re-enter admin password []: <-- Ismételjük meg

Do you want a secure (SSL) connection to the ISPConfig web interface (y,n) [y]: <-- Enter

Itt az utolsó kérdésnél ha SSL-t választunk az ISPConfig kezelőfelület számára, akkor utána ismét generál egy self-signed SSL-t az ISPConfig számára is. Itt is válaszolgassunk ízlésünk szerint:

Generating RSA private key, 4096 bit long modulus (2 primes)
................................++++
.................++++
e is 65537 (0x010001)
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]: <-- HU
State or Province Name (full name) [Some-State]: <-- Magyarország
Locality Name (eg, city) []: <-- Városunk neve
Organization Name (eg, company) [Internet Widgits Pty Ltd]: <-- Cégünk neve
Organizational Unit Name (eg, section) []: <-- Osztály neve
Common Name (e.g. server FQDN or YOUR name) []: <-- Teljes hosztnevünk
Email Address []: <-- email címünk

Ezután még feltesz két kérdést, ezeket hagyjuk üresen:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: <-- Enter
An optional company name []: <-- Enter
writing RSA key

Végül beállítja még a hátralévő dolgokat:

Configuring DBServer
Installing ISPConfig crontab
Installing ISPConfig crontab
no crontab for root
no crontab for getmail
Detect IP addresses
Restarting services ...
Installation completed.

És készen is van a telepítés.

Ezután a szerverünk IP-címével a 8080-as porton elérhetjük az ISPConfig felületét:

https://192.168.1.130:8080

Először dob egy biztonsági figyelmeztetést a böngészőnk, ez a self-signed SSL miatt van. Itt lépjünk tovább, egy másik leírásban tájékozódhatunk, hogyan állíthatunk be rendes SSL-t az ISPConfig felület számára, természetesen csak éles használatú szerveren.

Ha átugrottunk a hibaüzeneten, akkor már meg is jelenik a beléptető panel:

ISPConfig beléptető panel

Itt lépjünk be az admin felhasználóval és a fentebb megadott jelszóval:

ISPConfig kezdőoldala

És már bent is vagyunk a kezdőoldalon.

A Monitor főmenüben pedig ellenőrizhetjük, hogy minden szolgáltatás megfelelően működik-e:

ISPConfig - Szerver szolgáltatások ellenőrzése

Minden tökéletes.

Ennyi lenne tehát az ISPConfig telepítése.

 

 

További Fail2Ban szűrők aktiválása (opcionális)

Az ISPConfig telepítése után létrejött a megfelelő könyvtárstruktúra az Apache naplók számára, tehát ahogy korábban ígértem, két újabb Apache szűrőt aktiválunk még a Fail2Ban számára. Ezt a részt csak éles szerverkörnyezeten hajtsuk végre, otthoni tesztkörnyezeten nincs semmi jelentősége.

Tehát ha éles szerveren dolgozunk, és fontos a biztonság, akkor nyissuk meg szerkesztésre a /etc/fail2ban/jail.local fájlt:

nano /etc/fail2ban/jail.local

És tegyük még bele az alábbi két jail-t:

[apache-auth]
enabled  = true
port     = http,https
filter   = apache-auth
# logpath  = /var/log/apache*/*error.log
logpath  = /var/log/ispconfig/httpd/*/error.log
findtime = 3600
maxretry = 2

[apache-noscript]
enabled   = true
port      = http,https
filter    = apache-noscript
logpath   = /var/log/ispconfig/httpd/*/error.log
findtime  = 3600
maxretry  = 2

Az első jail/szűrő az Apache hitelesítési hibákat hivatott figyelni. Tehát ha például van egy jelszóval védett könyvtárunk, amit a .htpasswd fájllal védünk (például a webstatisztikák), akkor az itt történt belépési próbálkozásokat fogja blokkolni a Fail2Ban. az eredeti logpath az egy alap Apache telepítéshez (pl. LAMP szerver) van beállítva, ezért kikommenteztem, és beállítottam helyére az ISPConfig-hoz újonnan létrejött könyvtárstruktúrában lévő hibanapló fájlokat. Az útvonalban * karaktert használtam, így a később létrejövő weboldalak mindegyikénél fog működni a szűrő. A második jail/szűrő pedig az olyan jellegű próbálkozásokat figyeli, amik a nem létező scriptfájlok betöltésére irányulnak. Mindkét szűrő hasznos.

Azonban a beállított hibanapló fájlok még nem léteznek, így a Fail2Ban nem tudja elindítani a két új jail-t. Ehhez hozzunk létre egy üres naplófájlt a szerver elsődleges hosztnevének útvonala alatt. Így ha már egy naplófájlt megtalál, elindul a jail:

touch /var/log/ispconfig/httpd/$(hostname -f)/error.log

Ezután indítsuk újra a Fail2Ban-t:

systemctl restart fail2ban

Majd ellenőrizzük, hogy működik is:

systemctl status fail2ban
 fail2ban.service - Fail2Ban Service
   Loaded: loaded (/lib/systemd/system/fail2ban.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2020-01-02 16:55:43 CET; 7s ago
     Docs: man:fail2ban(1)
  Process: 22645 ExecStartPre=/bin/mkdir -p /var/run/fail2ban (code=exited, status=0/SUCCESS)
 Main PID: 22646 (fail2ban-server)
    Tasks: 13 (limit: 4701)
   Memory: 14.5M
   CGroup: /system.slice/fail2ban.service
           └─22646 /usr/bin/python3 /usr/bin/fail2ban-server -xf start

jan 02 16:55:43 debian10 systemd[1]: Starting Fail2Ban Service...
jan 02 16:55:43 debian10 systemd[1]: Started Fail2Ban Service.
jan 02 16:55:43 debian10 fail2ban-server[22646]: Server ready

 

Szerver letöltése

A szerver VirtualBox képfájlja elérhető a letöltések között.

 

Konklúzió

Ezzel a telepítéssel kapunk egy komplett webszervert, amivel már el is kezdhetjük üzemeltetni a weboldalainkat. Az ISPConfig kezelőpanel segítségével pedig egy helyen felügyelhetjük rendszerünk minden fontos szegletét.

 

 

Hogyan tovább?

Ha elkészült a szerverünk, felmerülhet a kérdés, hogy merre is lépjünk tovább. Első körben ajánlom az első webfiók létrehozását, ami után már fel lehet tölteni egy weboldal tartalmát. Továbbá érdemes még átmazsolázni az itt következő kapcsolódó linkeket is.

 

 

Lapozó

Ez a leírás több oldalból áll: