Ebből a cikkből megtudhatod, hogy Debian 10 szerver alapokra építve hogyan tudsz Apache, BIND, Dovecot szolgáltatásokat telepíteni ISPConfig 3.1 támogatással, továbbá Postfix email szerver, MySQL, MyDNS névszerver, PureFTPd, SmapAssassin, ClamAV és egyéb szolgáltatásokat beállítani és használni.
Alapkörnyezet ismertetése
Kiindulásnak egy Debian 10 alapkörnyezet került telepítésre VirtualBox-on. Az IP cím 172.16.5.134, melyet egy DHCP szerver oszt ki dinamikusan. Az átjáró címe 172.16.5.1
Szövegszerkesztő telepítése (Opcionális)
Én általában a nano
szövegszerkesztőt használom, de ez ízlés kérdése, éppúgy megfelel a vim
is
apt-get install nano vim-nox
Hosztnév beállítása
A szervered host nevének egy subdomain-t kell megadnod, mint például „mxserver.example.com”. Soha ne használj konkrét domain nevet, mint ez esetben az „example.com”, mert ez később komoly problémákhoz vezethet, például levelező szerver esetén. Első körben ellenőrízd a /etc/hosts fájlt, állítsd az IP címedhez a hostneved FQDN -jét. Továbbá az /etc/hostname fájlban állítsd be a gép nevét.
nano /etc/hosts
127.0.0.1 localhost.localdomain localhost 172.16.5.134 mxserver.example.com mxserver # The following lines are desirable for IPv6 capable hosts ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters
És a hosztnév:
nano /etc/hostname
mxserver
A Debian frissítése
Először is az /etc/apt/sources.list állományba engedélyezzük a contrib, non-free csomagok használatát.
nano /etc/apt/sources.list
deb http://deb.debian.org/debian/ buster main contrib non-free deb-src http://deb.debian.org/debian/ buster main contrib non-free deb http://security.debian.org/debian-security buster/updates main contrib non-free deb-src http://security.debian.org/debian-security buster/updates main contrib non-free
Tároló információk frissítése
apt update
A rendszer frissítése
apt upgrade -y
Alapértelmezett Shell módosítása
A /bin/sh egy symlink a /bin/dash -ra, de nekünk a /bin/bash kell, nem a /bin/dash
dpkg-reconfigure dash
Meg fogja a rendszer kérdezni, hogy használja-e alapértelmezésként a /bin/sh <–NO
Amennyiben ezt nem tesszük meg, az ISPConfig3.1 elhasal telepítéskor.
Rendszeróra Szinkronizációja
Jó ötlet a rendszeridő szinkronizálása NTP (Network Time Protocol) használatával:
apt-get -y install ntp
Így már a rendszeridő mindig naprakész lesz.
Postfix, Dovecot, MariaDB, rkhunter és Binutils
Telepítsük a következő szolgáltatásokat Postfix, Dovecot, MariaDB as MySQL alternatíva, rkhunter és Binutils:
apt-get -y install postfix postfix-mysql postfix-doc mariadb-client mariadb-server openssl getmail4 rkhunter binutils dovecot-imapd dovecot-pop3d dovecot-mysql dovecot-sieve dovecot-lmtpd sudo
A következő két kérdésre kell válaszolnunk:
General type of mail configuration: <– Internet Site
System mail name: <– mxserver.example.com
A MariaDB finomhangolása:
mysql_secure_installation
Change the root password? [Y/n] <– y
New password: <– root jelszó
Re-enter new password: <– root jelszó ismét
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
Engedélyezzük a TLS/SSL és Submission használatát a postfix levelező szerveren:
nano /etc/postfix/master.cf
Vegyük ki a kommentet a submission és smtps elől és szúrjuk be a hiányzó sorokat, ahová szükséges. Fontos! Legyünk figyelmesek, minden szükséges módosítást végezzünk el, az submission és smtps sorokat is nézzük:
[...] submission inet n - - - - smtpd -o syslog_name=postfix/submission -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject # -o smtpd_reject_unlisted_recipient=no # -o smtpd_client_restrictions=$mua_client_restrictions # -o smtpd_helo_restrictions=$mua_helo_restrictions # -o smtpd_sender_restrictions=$mua_sender_restrictions # -o smtpd_recipient_restrictions= # -o smtpd_relay_restrictions=permit_sasl_authenticated,reject # -o milter_macro_daemon_name=ORIGINATING smtps inet n - - - - smtpd -o syslog_name=postfix/smtps -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject # -o smtpd_reject_unlisted_recipient=no # -o smtpd_client_restrictions=$mua_client_restrictions # -o smtpd_helo_restrictions=$mua_helo_restrictions # -o smtpd_sender_restrictions=$mua_sender_restrictions # -o smtpd_recipient_restrictions= # -o smtpd_relay_restrictions=permit_sasl_authenticated,reject # -o milter_macro_daemon_name=ORIGINATING [...]
Postfix újraindítása a beállítások érvénybeléptetéséhez:
systemctl restart postfix
Amennyiben minden interfészen szeretnék elérni az adatbázis kezelő szervert, kommenteljük ki a bind-adress sort:
nano /etc/mysql/mariadb.conf.d/50-server.cnf
[...] # Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. #bind-address = 127.0.0.1 [...]
A következő beállítás arra szolgál, hogy a phpmyadmin root jogosultsággal férjen hozzá a MariaDB adatbázis kezelőhöz
echo "update mysql.user set plugin = 'mysql_native_password' where user='root';" | mysql -u root
Nyissuk meg a következő állományt /etc/mysql/debian.cnf és adjuk meg a root jelszót minkét helyen:
nano /etc/mysql/debian.cnf
# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host = localhost
user = root
password = ide a jelszó
socket = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
host = localhost
user = root
password = ide a jelszó
socket = /var/run/mysqld/mysqld.sock
basedir = /usr
A túl sok nyitott fájl hiba elkerülése érdekébe módosítsuk az egy időben nyitott állapotban lévő állományok korlátját
nano /etc/security/limits.conf
Adjuk a következő sorokat az állományhoz:
mysql soft nofile 65535 mysql hard nofile 65535
Hozzuk létre az alábbi könyvtárat:
mkdir -p /etc/systemd/system/mysql.service.d/
Nyissuk meg az új állományt és adjuk hozzá a következő tartalmat:
nano /etc/systemd/system/mysql.service.d/limits.conf
[Service] LimitNOFILE=infinity
Mentés után indítsuk újra a szolgáltatást
systemctl daemon-reload systemctl restart mariadb
Ellenőrízük a szolgáltatás futását:
netstat -tap | grep mysql
root@server1:/home/administrator# netstat -tap | grep mysql tcp6 0 0 [::]:mysql [::]:* LISTEN 16623/mysqld
Amavisd-new, SpamAssassin és ClamAV telepítése
Telepítsük fel a csomagokat:
apt-get install amavisd-new spamassassin clamav clamav-daemon unzip bzip2 arj nomarch lzop cabextract p7zip p7zip-full unrar lrzip apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl zip libnet-dns-perl libdbd-mysql-perl postgrey
Az ISPConfig 3.1 telepítése az amavisd -t használja, amely belsőleg betölti a SpamAssassin szűrő könyvtárat, így leállíthatjuk a SpamAssassin programot némi RAM felszabadításához:
systemctl stop spamassassin systemctl disable spamassassin
Apache Web Server és PHP
Apache2, PHP, FCGI, suExec, Pear és mcrypt telepítése:
apt-get -y install apache2 apache2-doc apache2-utils libapache2-mod-php php7.3 php7.3-common php7.3-gd php7.3-mysql php7.3-imap php7.3-cli php7.3-cgi libapache2-mod-fcgid apache2-suexec-pristine php-pear mcrypt imagemagick libruby libapache2-mod-python php7.3-curl php7.3-intl php7.3-pspell php7.3-recode php7.3-sqlite3 php7.3-tidy php7.3-xmlrpc php7.3-xsl memcached php-memcache php-imagick php-gettext php7.3-zip php7.3-mbstring memcached libapache2-mod-passenger php7.3-soap php7.3-fpm php7.3-opcache php-apcu
Engedélyezzük az Apache számára a szükséges modulokat suexec, rewrite, ssl, actions, and include (plusz dav, dav_fs, and auth_digest, ha használni akarod a WebDAV -ot):
a2enmod suexec rewrite ssl actions include dav_fs dav auth_digest cgi headers actions proxy_fcgi alias
Annak biztosítása érdekében, hogy a kiszolgálót ne támadják meg a HTTPOXY biztonsági rés miatt, az apache-ban globálisan letiltjuk a HTTP_PROXY fejlécet.
Megjegyzés: A sebezhetőség neve httpoxy („r” nélkül), és ezért a fájl, amelyhez hozzá adjuk a konfigurációt annak megakadályozására, httpoxy.conf, és nem httproxy.conf, tehát a fájlnévben hiányzik „r” jel.
nano /etc/apache2/conf-available/httpoxy.conf
<IfModule mod_headers.c> RequestHeader unset Proxy early </IfModule>
Engedélyezzük a konfigurációs állományt
a2enconf httpoxy systemctl restart apache2
Let’s Encrypt
Az ISPConfig 3.1 támogatja az ingyenes SSL tanúsító hatóságot. A Funkció lehetővé teszi ingyenes SSL-tanúsítványok létrehozását a webhelyek részére, az ISPConfigon belül.
cd /usr/local/bin wget https://dl.eff.org/certbot-auto chmod a+x certbot-auto ./certbot-auto --install-only
Nincs szükség további lépésekre. A webhely SSL-tanúsítványait az ISPConfig hozza létre, amikor hozzáadja a webhely konfigurációban.
Frissítés 2020. 12. 17. Az ISPConfig az acme.sh használja Let’s Encrypt kliensként. Az ISPConfig automatikusan letölti és telepíti az acme.sh -t, így most már külön nem kell telepíteni a Let’s Encrypt-et.
MailMan telepítése
Az ISPConfig lehetővé teszi a Mailman levelezőlisták kezelését (létrehozását / módosítását / törlését). Ha ki szeretné használni ezt a funkciót, telepítse a Mailman-t az alábbiak szerint:
apt-get install mailman
Válasz egy nyelvi támogatást:
Languages to support: <-- hu (Hungary) Missing site list <-- Ok
A Mailman elindítása előtt el kell készíteni az első levelezőlistát:
newlist mailman
Add meg a listát működtető e-mail címét: mailmanadmin@example.com mailman induló jelszava: Ide a jelszót ## mailman levelezőlista mailman: "|/var/lib/mailman/mail/mailman post mailman" mailman-admin: "|/var/lib/mailman/mail/mailman admin mailman" mailman-bounces: "|/var/lib/mailman/mail/mailman bounces mailman" mailman-confirm: "|/var/lib/mailman/mail/mailman confirm mailman" mailman-join: "|/var/lib/mailman/mail/mailman join mailman" mailman-leave: "|/var/lib/mailman/mail/mailman leave mailman" mailman-owner: "|/var/lib/mailman/mail/mailman owner mailman" mailman-request: "|/var/lib/mailman/mail/mailman request mailman" mailman-subscribe: "|/var/lib/mailman/mail/mailman subscribe mailman" mailman-unsubscribe: "|/var/lib/mailman/mail/mailman unsubscribe mailman" A levelezőlista létrehozásának utolsó lépéséhez az /etc/aliases állományba a következő sorokat kell elhelyezni és utána futtatni a 'newaliases' programot:
mailman: "|/var/lib/mailman/mail/mailman post mailman" mailman-admin: "|/var/lib/mailman/mail/mailman admin mailman" mailman-bounces: "|/var/lib/mailman/mail/mailman bounces mailman" mailman-confirm: "|/var/lib/mailman/mail/mailman confirm mailman" mailman-join: "|/var/lib/mailman/mail/mailman join mailman" mailman-leave: "|/var/lib/mailman/mail/mailman leave mailman" mailman-owner: "|/var/lib/mailman/mail/mailman owner mailman" mailman-request: "|/var/lib/mailman/mail/mailman request mailman" mailman-subscribe: "|/var/lib/mailman/mail/mailman subscribe mailman" mailman-unsubscribe: "|/var/lib/mailman/mail/mailman unsubscribe mailman"
Futtasd:
newaliases
Postfix újraindítása a szolgáltatás érvényesítéséhez:
systemctl restart postfix systemctl start mailman
Kiegészítés:
Amennyiben új listákat szeretnénk a webes felületen létrehozni, parancssorban meg kell adni a lista létrehozáshoz szükséges jelszót:
mmsitepass
Amennyiben nem adunk meg jelszót, csak a mmsitepass parancsot futtatjuk, akkor a program be fog kérni egyet.
A mailman listák létrehozásának alapértelmezett beállításait a /etc/mailman/mm_cfg.py fájlban találjuk. Alapértelemzés szerint a lista a gép fqdn nevén jön létre, mely a http(s)://%s/cgi-bin/mailman url-en érhető el. A „%s” az alapértelmezett url-t jelenti. Amennyiben más virtuális url címet is szeretnénk megadni, azt az add_virtulhost(‘example.com’,’domain.name’) hozzáadásával tudjuk megtenni:
nano /etc/mailman/mm_cfg.py
[...] add_virtulhost('exaple.com','domain.name') [...]
Ez esetben a létrehozott lista a http(s)://example.com/cgi-bin/mailman címen lesz elérhető, a közös lista pedig a lists@domain.name email címen fog működni, ahol a lists az általunk megadott lista nevet jelenti. Mentsük az mm_cfg.py taralmát, majd indítsuk újra a szolgáltatást:
systemctl restart mailman
Hozzuk létre az új listát:
newlist newlist --urlhost=example.com lists
A futó program a lista tulajdonosának email címét fogja kérni és a lista jelszavát. És kész is vagyunk.
Lista törlése:
rmlist -a lists
Végül engedélyeznünk kell a Mailman Apache konfigurációját:
ln -s /etc/mailman/apache.conf /etc/apache2/conf-enabled/mailman.conf
Ez állítja be, hogy a /cgi-bin/mailman/ linken elérhető legyen a mailman admin és info felület. Ez esetben a teljes url a: http://mxserver.example.com/cgi-bin/mailman/admin/ és a A levelezőlistáké a: http://mxserver.example.com/cgi-bin/mailman/listinfo/ webhelyen érhetőek el. A http://mxserver.example.com/pipermail alatt megtalálhatja a levelezőlisták archívumát.
systemctl restart apache2 systemctl restart mailman
PureFTPd and Quota
A PureFTPd és a kvóta a következő paranccsal telepíthető:
apt-get install pure-ftpd-common pure-ftpd-mysql quota quotatool
Hozza létre a dhparam fájlt a pure-ftpd fájlhoz:
openssl dhparam -out /etc/ssl/private/pure-ftpd-dhparams.pem 2048
Nyissuk meg a /etc/default/pure-ftpd-common állományt
nano /etc/default/pure-ftpd-common
Győződjünk meg róla hogy standalone módban indul a szolgáltatás és a virtualchroot értéke true
[...] STANDALONE_OR_INETD=standalone [...] VIRTUALCHROOT=true [...]
Ha TLS tanúsítvánnyal kívánjuk használni a PureFTP szervert:
echo 1 > /etc/pure-ftpd/conf/TLS
Most készítenünk kell egy tanúsítványt a /etc/ssl/private/ könyvtárba, amit először hozzunk létre:
mkdir -p /etc/ssl/private/
Most generáljuk le a tanúsítványt:
openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
Adjuk meg a kért információkat:
Country Name (2 letter code) [AU]: <-- Enter your Country Name (e.g., "HU"). State or Province Name (full name) [Some-State]:<-- Megye Locality Name (eg, city) []: <-- Város Organization Name (eg, company) [Internet Widgits Pty Ltd]: <-- Céged neve Organizational Unit Name (eg, section) []: <-- Szervezeti egység neve Common Name (eg, YOUR name) []: <-- domain fqdn neve Email Address []: <-- Email címed
Változtassuk meg a fájl jogosultságait
chmod 600 /etc/ssl/private/pure-ftpd.pem
Majd indítsjuk újra a PureFTP szolgáltatást:
systemctl restart pure-ftpd-mysql
Nyissuk meg az /etc/fstab állományt és adjuk a gyökérpartícióhoz a következő utasításokat: ,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0
nano /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
#
# / was on /dev/sda1 during installation
UUID=88f74c9d-b7ac-4a0c-a487-db31bc4b3771 / ext4 errors=remount-ro,usrjquota=quota.user,grpjquota=quota.group,jqfmt=vfsv0 0 1
# /home was on /dev/sda6 during installation
UUID=577d3321-008b-4754-aac7-99a9d1199702 /home ext4 defaults 0 2
# swap was on /dev/sda5 during installation
UUID=a6656e93-e5b3-4715-9f43-c0c69a9de6c1 none swap sw 0 0
/dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0
A quota aktiválásához futtasd a következő parancsot:
mount -o remount /
quotacheck -avugm quotaon -avug
BIND DNS Server
Telepítéshez adjuk ki a következő parancsot:
apt-get install bind9 dnsutils
Ha a szerver virtuális gép, akkor erősen ajánlott telepíteni a DNSSEC -et. A nem-virtuális szerverekre is telepítheted a hasged-et, ez nem árt.
apt-get install haveged
Webalizer és AWStats
Webalizer és AWStats telepítése az alábbi paranccsal:
apt-get install webalizer awstats geoip-database libclass-dbi-mysql-perl libtimedate-perl
Nyissuk meg az /etc/cron.d/awstats állományt
nano /etc/cron.d/awstats
#MAILTO=root #*/10 * * * * www-data [ -x /usr/share/awstats/tools/update.sh ] && /usr/share/awstats/tools/update.sh # Generate static reports: #10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] && /usr/share/awstats/tools/buildstatic.sh
Jailkit
A Jailkit segítségével tudunk létrehozni egy komplett chroot környezetet az elzárt felhasználók számára, így a felhasználók nem tudnak hozzáférni egymás könyvtár struktúrájához. A Jailkit-et nem kötelező feltelepíteni, csak akkor szükséges, ha később szeretnénk chroot-olt SSH felhasználókat létrehozni. Később viszont már nem fog működni, ha az ISPConfig után telepítjük! Ezért most kell eldönteni, hogy fogjuk-e használni a későbbiekben!
Én javaslom a telepítését, mert sose lehet tudni, bármikor jól jöhet. Például ha tárhelyet adunk a szerverünkön egy idegen ügyfélnek, akkor nem fog fájni a biztonsági kérdések miatt a fejünk.
apt-get install build-essential autoconf automake libtool flex bison debhelper binutils
cd /tmp wget http://olivier.sessink.nl/jailkit/jailkit-2.20.tar.gz tar xvfz jailkit-2.20.tar.gz cd jailkit-2.20 echo 5 > debian/compat ./debian/rules binary
Mostmár telepíthető a .deb csomag
cd .. dpkg -i jailkit_2.20-1_*.deb rm -rf jailkit-2.20*
fail2ban és UFW Firewall
Ez ugyan opcionális, de erősen ajánlott fejezet.
apt-get install fail2ban
Hozzuk létre a megfelelő konfigurációt, mely biztosítja, hogy a fail2ban monitorozza a Dovecot és PureFTP szolgáltatások log állományait
nano /etc/fail2ban/jail.local
[pure-ftpd] enabled = true port = ftp filter = pure-ftpd logpath = /var/log/syslog maxretry = 3 [dovecot] enabled = true filter = dovecot logpath = /var/log/mail.log maxretry = 5 [postfix-sasl] enabled = true port = smtp filter = postfix[mode=auth] logpath = /var/log/mail.log maxretry = 3
Érvényesítsük az új beállításokat
systemctl restart fail2ban
Az UFW tűzfal telepítése
apt-get install ufw
PHPMyAdmin Adatbázis adminisztrációs szolgáltatás telepítése
A Debian 10 óta a PHPMyAdmin már nem elérhető .deb csomagként. Ezért a forrásból telepítjük.
Mappák létrehozása a PHPMyadmin számára:
mkdir /usr/share/phpmyadmin mkdir /etc/phpmyadmin mkdir -p /var/lib/phpmyadmin/tmp chown -R www-data:www-data /var/lib/phpmyadmin touch /etc/phpmyadmin/htpasswd.setup
Lépjünk a /tmp könyvtárba és töltsük le az archiv állományt
cd /tmp wget https://files.phpmyadmin.net/phpMyAdmin/4.9.2/phpMyAdmin-4.9.2-all-languages.tar.gz
Tömörítsük ki az állományt, majd másoljuk a megfelelő helyre a könyvtár tartalmát:
tar xfv phpMyAdmin-4.9.2-all-languages.tar.gz mv phpMyAdmin-4.9.2-all-languages/* /usr/share/phpmyadmin/ rm phpMyAdmin-4.9.2-all-languages.tar.gz rm -rf phpMyAdmin-4.9.2-all-languages/
Készítsünk egy új konfigurációs állományt
cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php
Nyissuk meg
nano /usr/share/phpmyadmin/config.inc.php
Állítsunk be egy 32 karakter hosszú (blowfish) jelszót. Ezt a következő paranccsal le is tudjuk generálni, biztonsági szempontból semmikép sem ajánlott a példámban használtat beállítani. Az apg
csomag telepítése után adjuk ki az alábbi parancsot:
/usr/bin/apg -m 32 -x 32
Válasszuk egy tetszőlegeset a legenerált titkos kulcsokból és illesszük be a megfelelő helyre a konfigurációnkban:
$cfg['blowfish_secret'] = 'bD3e6wva9fnd93jVsb7SDgeiBCd452Dh'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
Add hozzá az alábbi sort
$cfg['TempDir'] = '/var/lib/phpmyadmin/tmp';
Nincs más hátra, mint az Apache konfigurációt elkészíteni:
nano /etc/apache2/conf-available/phpmyadmin.conf
# phpMyAdmin default Apache configuration Alias /phpmyadmin /usr/share/phpmyadmin <Directory /usr/share/phpmyadmin> Options FollowSymLinks DirectoryIndex index.php <IfModule mod_php7.c> AddType application/x-httpd-php .php php_flag magic_quotes_gpc Off php_flag track_vars On php_flag register_globals Off php_value include_path . </IfModule> </Directory> # Authorize for setup <Directory /usr/share/phpmyadmin/setup> <IfModule mod_authn_file.c> AuthType Basic AuthName "phpMyAdmin Setup" AuthUserFile /etc/phpmyadmin/htpasswd.setup </IfModule> Require valid-user </Directory> # Disallow web access to directories that don't need it <Directory /usr/share/phpmyadmin/libraries> Order Deny,Allow Deny from All </Directory> <Directory /usr/share/phpmyadmin/setup/lib> Order Deny,Allow Deny from All </Directory>
Beállítások aktiválása
a2enconf phpmyadmin systemctl restart apache2
A következő lépésben konfiguráljuk a phpMyadmin konfigurációs adatbázist.
Jelentkezz be a MariaDB-be root felhasználóként:
mysql -u root -p
MariaDB [(none)]> CREATE DATABASE phpmyadmin;
Hozzunk létre egy új felhasználót a táblához
MariaDB [(none)]> CREATE USER 'pma'@'localhost' IDENTIFIED BY 'id a jelszü'; MariaDB [(none)]> GRANT ALL PRIVILEGES ON phpmyadmin.* TO 'pma'@'localhost' IDENTIFIED BY 'mypassword' WITH GRANT OPTION; MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> EXIT;
Vágezetül hozzuk létre a phpmyadmin tábláit
mysql -u root -p phpmyadmin < /usr/share/phpmyadmin/sql/create_tables.sql
Állítsuk be a phpmyadmin config állományába az adatbázis eléréséhez szükséges adatokat és kommentezzük ki a megadott sorokat:
/* User used to manipulate with storage */ $cfg['Servers'][$i]['controlhost'] = 'localhost'; $cfg['Servers'][$i]['controlport'] = ''; $cfg['Servers'][$i]['controluser'] = 'pma'; $cfg['Servers'][$i]['controlpass'] = 'ide a jelszót'; /* Storage database and tables */ $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin'; $cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark'; $cfg['Servers'][$i]['relation'] = 'pma__relation'; $cfg['Servers'][$i]['table_info'] = 'pma__table_info'; $cfg['Servers'][$i]['table_coords'] = 'pma__table_coords'; $cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages'; $cfg['Servers'][$i]['column_info'] = 'pma__column_info'; $cfg['Servers'][$i]['history'] = 'pma__history'; $cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs'; $cfg['Servers'][$i]['tracking'] = 'pma__tracking'; $cfg['Servers'][$i]['userconfig'] = 'pma__userconfig'; $cfg['Servers'][$i]['recent'] = 'pma__recent'; $cfg['Servers'][$i]['favorite'] = 'pma__favorite'; $cfg['Servers'][$i]['users'] = 'pma__users'; $cfg['Servers'][$i]['usergroups'] = 'pma__usergroups'; $cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding'; $cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches'; $cfg['Servers'][$i]['central_columns'] = 'pma__central_columns'; $cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings'; $cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';
RoundCube Webmail (opcionális)
Ebben a fejezetben telepítjük a RoundCube webmail klienst. Először manuálisan kell létrehoznunk az adatbázist a Roundcube-hoz, mivel a RoundCube Debian telepítőjében jelenleg van egy probléma, amely miatt az adatbázis automatikus létrehozása sikertelen. Futtassa ezt a parancsot az adatbázis létrehozásához:
echo "CREATE DATABASE roundcube;" | mysql --defaults-file=/etc/mysql/debian.cnf
Csomagok telepítése
apt-get install roundcube roundcube-core roundcube-mysql roundcube-plugins
A kérdésekre adott válaszok
Configure database for roundcube with dbconfig.common? <-- yes MySQL application password for roundcube: <-- press enter
A roundcubemail konfigurációja
nano /etc/roundcube/config.inc.php
Alapértelmezett host és smtp szerver beállítása
$config['default_host'] = 'localhost'; $config['smtp_server'] = 'localhost';
Apache konfiguráció beállítása
nano /etc/apache2/conf-enabled/roundcube.conf
Adjunk hozzá két aliast
Alias /roundcube /var/lib/roundcube Alias /webmail /var/lib/roundcube
Szolgáltatás újraindítása
systemctl reload apache2
ISPConfig 3 telepítése
A legutóbbi stabil verzió letöltése:
cd /tmp wget https://ispconfig.org/downloads/ISPConfig-3.1.15p2.tar.gz tar xfz ISPConfig-3.1.15p2.tar.gz cd ispconfig3_install/install/
Indítsuk el a telepítést
php -q install.php
-------------------------------------------------------------------------------- _____ ___________ _____ __ _ ____ |_ _/ ___| ___ \ / __ \ / _(_) /__ \ | | \ `--.| |_/ / | / \/ ___ _ __ | |_ _ __ _ _/ / | | `--. \ __/ | | / _ \| '_ \| _| |/ _` | |_ | _| |_/\__/ / | | \__/\ (_) | | | | | | | (_| | ___\ \ \___/\____/\_| \____/\___/|_| |_|_| |_|\__, | \____/ __/ | |___/ -------------------------------------------------------------------------------- >> Initial configuration Operating System: Debian 10.0 (Buster) or compatible Following will be a few questions for primary configuration so be careful. Default values are in [brackets] and can be accepted with . Tap in "quit" (without the quotes) to stop the installer. Select language (en,de) [en]: enter Installation mode (standard,expert) [standard]: enter Full qualified hostname (FQDN) of the server, eg server1.domain.tld [mxserver.example.com]: enter MySQL server hostname [localhost]: enter MySQL server port [3306]: enter MySQL root username [root]: enter MySQL root password []: ide a jelszó MySQL database to create [dbispconfig]: enter MySQL charset [utf8]: enter
Roundcube + ISPConfig3 Pluginok
A Roundcubemail Webes Email Kliens szolgáltatáshoz telepíthetőek olyan pluginok, myelyekkel különböző ISPConfig3 által biztosított szolgáltatásokat lehet menedzselni.
ISPConfig3 távoli felhasználó engedélyezése:
A távoli felhasználó engedélyezéséhez navigáljunk a Rendszer >> Távoli felhasználók menüre. Adjunk megy egy nevet, jelszót az ürlapon, pipáljuk be a távoli hozzáférés engedélyezése választót, illetve rendeljük hozzá a felhasználóhoz a következő szolgáltatásokat:
- Mail user funkciók
- Mail alias funkciók
- Mail átirányitás funkciók
- Mail spamszűrő felhasználói funkciók
- Mail spamfilter policy functions
- Mail fetchmail funkciók
- Mail spamfilter whitelist functions
- Mail spamfilter blacklist functions
- Mail felhasználói szűrő funkciók
- Ügyfél funkciók
- Server functions
Pluginek beszerzése
Lépjünk a „/tmp” könyvtárba, és hozzuk létre a plugins könyvtárat
cd /tmp && mkdir plugins && cd plugins
1. Git tárolóból történő letöltés:
git clone https://github.com/w2c/ispconfig3_roundcube.git . git pull origin master
2. SVN verziókezelő:
svn co https://github.com/w2c/ispconfig3_roundcube/trunk/ . svn up .
3. Letölthetjük az aktuális verziót:
wget https://github.com/w2c/ispconfig3_roundcube/archive/master.zip unzip master.zip
Beállítás:
Lépjünk a ./ispconfig3_account/config/ könyvtárba és a config.inc.php.dist fájlt másoljuk át config.inc.php néven:
cp config.inc.php.dist config.inc.php
Nyissuk meg az állományt:
nano config.inc.php
Módosítjuk az egyes attribútumokat:
$config['identity_limit'] = false; $config['remote_soap_user'] = '{REMOTE USERNAME}'; $config['remote_soap_pass'] = '{REMOTE PASSWORD}'; $config['soap_url'] = 'https://{YOUR SERVER}:8080/remote/'; $config['soap_validate_cert'] = true;
Ezután a pluginokat másoljuk a /var/lib/roundcube/plugins/ könyvtárba és állítsuk be a használatukat a /var/lib/roundcube/config/config.inc.php fájlban.
cp /tmp/plugins/* /var/lib/roundcube/plugins/ nano /var/lib/roundcube/config/config.inc.php
Ezt a részt keressük:
$config['plugins'] = array();
Ilyen módon deklaráljuk:
, "jqueryui", "ispconfig3_account", "ispconfig3_autoreply", "ispconfig3_autoselect", "ispconfig3_pass", "ispconfig3_spam", "ispconfig3_fetchmail", "ispconfig3_filter", "ispconfig3_forward", "ispconfig3_wblist"
Carddav
Tapasztalataim szerint a carddav plugin egyes verzió hibás működéshez vezethetnek. Az RCM 1.4.3-as verziójával legalábbis biztosan. Ez a verzió nálam a carddav 3.0.3-as verziójával működött csak. Ezt a verzót a következő linkről lehet letölteni:
wget https://github.com/blind-coder/rcmcarddav/releases/download/v3.0.3/carddav-3.0.3.tar.bz2
Composer
A kompózer használatáról már írtam cikket. Ez esetben ha nem szeretnénk telepíteni csak használni a scropt-et az RCM frissítésére, vagy a plugin-ok bővítésére, törlésére, a következő módon tehetjük meg. Lépjünk az RCM gyökér könyvtárába:
cd /usr/share/roundcube
Majd töltsük le a scriptet:
curl -s https://getcomposer.org/installer | php
A gyökérben lévő composer.json-dist fájlt nevezzük át composer.json -re:
mv composer.json-dist composer.json
Az egyes kiválasztott plugin-okat a composer.json fájl függőség „require” szekciójához adjuk hozzá, vagy a következő parancsot használva:
compser require "roundcube/carddav 3.0.3"
Majd adjuk ki a következő utasítást:
composer update
Ekkor a plugin még csak a gyökér könyvtár plugins alkönyvtárában található meg, ahhoz hogy használni tudjuk be kell linkelni a változó adatokat tartalmazó helyre:
ln -s /usr/share/roundcube/plugins/carddav /var/lib/roundcube/plugins/carddav
Ezután már a konfigurációba is beilleszthető!
Calendar
Ez a plugin sajnos caldav szolgáltatáshoz nem tud csatlakozni, de helyileg integrálható az RCM-be, illetve iCal szolgáltatást tud nyújtani. Telepítéshez az alábbi két csomag kell:
apt install git php-sabre-*
Majd töltsük le a plugint:
cd /tmp && git clone https://git.kolab.org/diffusion/RPK/roundcubemail-plugins-kolab.git
Lépjünk az RCM plugin könyvtárába:
cd /usr/share/roundcubemail/plugins
Majd a a szükséges könyvtárakat másoljuk ide:
cp -r /tmp/roundcubemail-plugins-kolab/plugins/calendar . cp -r /tmp/roundcubemail-plugins-kolab/plugins/libcalendaring . cp -r /tmp/roundcubemail-plugins-kolab/plugins/libkolab .
Léjünk a „calendar” könyvtárba és hozzuk létre a konfig php állományt:
cp config.inc.php.dist config.inc.php
Táblák létrehozása az adatbázisban:
mysql -u root -p roundcubedb < drivers/database/SQL/mysq.initial.sql
Lépjünk az „libkalendaring” könyvtárba és nyissuk meg szerkesztésre a megfelelő állományt:
cd ../libcalendaring && nano libvcalendar.php
Az állomány utolsó sora után illesszük be az alábbi tartalmat:
spl_autoload_register(function ($class) { if (strpos($class, 'Sabre\\')===0) { $file = '/usr/share/php/'.str_replace('\\', '/', $class).'.php'; @include $file; } });
Hozzuk létre a megfelelő linkeket:
ln -s /usr/share/roundcube/plugins/libkolab /var/lib/roundcube/plugins/libkolab ln -s /usr/share/roundcube/plugins/libcalendaring /var/lib/roundcube/plugins/libcalendaring ln -s /usr/share/roundcube/plugins/calendar /var/lib/roundcube/plugins/calendar
Már csak a konfig fájl plugin szekciójához kell illeszteni a „calendar” plugint és készen is vagyunk!
Ajánlott Csomagok telepítése
Az ISPConfig3 alatt lehetőség van az egyes létrehozott weboldalakról ütemezett mentéseket készítésére. A szolgáltatás használatához azonban telepítenünk kell a megfelelő csomagokat, melyek alapértelmezés szerint nem képezik a rendszer részét.
apt install pigz rar xz-utils bzip2 tar p7zip-full
Befejezés
Ezzel végeztünk is, ha szeretnénk, hogy a jelenleg generált-, önaláírt tanúsítványok helyett, a Let’s Encrypt tanúsítvány hatóság ingyenes tanúsítványai legyenek az adminisztrációs felület, postfix, dovecot stb.. alkalmazásszerverekhez használva, lépjünk erre az oldalra. A leíráshoz felhasznált forrás, ezen a linken érhető el.