Tökéletes szerver: Debian 9 (stretch) V1.0 (2. oldal)

botond küldte be 2019. 01. 21., h – 17:45 időpontban

A 2. oldal tartalma

 

Folytatás

A Debian 9 (Stretch) tökéletes szerver v1.0 telepítő leírásának első oldalán feltelepítettük a Postfix, Dovecot, MariaDB és rkhunter programokat. Ezen az oldalon folytatjuk a telepítést, kezdve az Amavisd, SpamAssassin és ClamAV programokkal.

 

 

Amavisd-new, SpamAssassin és ClamAV programok telepítése

A címben lévők telepítéséhez futtassuk az alábbi apt-get parancsot (az áttekinthetőség miatt tördeltem több sorba):

apt-get install -y \
    amavisd-new spamassassin clamav clamav-daemon \
    zoo unzip bzip2 arj nomarch lzop cabextract \
    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 telepítés használja az amavisd-t, ami külön betölti a SpamAssassin szűrő könyvtárat, így most leállíthatjuk, hogy felszabadíthassunk egy kis memóriát ehhez használjuk a service és systemctl parancsokat:

service spamassassin stop
systemctl disable spamassassin

 

Apache2, PHP, FCGI, suExec, Pear, phpMyAdmin, és mcrypt telepítése

A következő paranccsal egyszerre telepíthetjük az Apache, PHP, FCGI, suExec, Pear, phpMyadmin és mcrypt programok csomagjait:

apt-get -y install \
    apache2 apache2-doc apache2-utils libapache2-mod-php \
    php7.0 php7.0-common php7.0-gd php7.0-mysql php7.0-imap \
    phpmyadmin php7.0-cli php7.0-cgi \
    libapache2-mod-fcgid apache2-suexec-pristine php-pear \
    php7.0-mcrypt mcrypt imagemagick libruby \
    libapache2-mod-python \
    php7.0-curl php7.0-intl php7.0-pspell php7.0-recode \
    php7.0-sqlite3 php7.0-tidy php7.0-xmlrpc php7.0-xsl \
    memcached php-memcache php-imagick php-gettext \
    php7.0-zip php7.0-mbstring libapache2-mod-passenger \
    php7.0-soap

A csomagok telepítése közben előjön néhány dialógus a kérdésekkel.

phpMyAdmin konfigurálása

Először megkérdi, hogy melyik webkiszolgálót állítsa be a phpMyAdmin futtatásához:

phpMyAdmin konfigurálása - Webszerver kiválasztása

Itt válasszuk az Apache2-t.

A phpMyAdminnak az elinduláshoz szüksége van egy alap adatbázisra, amelyben tárolja a saját beállításait, stb. A következő panelen ennek az adatbázisnak az automatikus létrehozásáról kérdez:

phpMyAdmin konfigurálása - Alapadatbázis automatikus beállítása

Természetesen automatikusan szeretnénk létrehozni az alap adatbázist, ezért itt válasszuk az Igen opciót.

Továbbá a rendszernek szüksége van egy alkalmazás szintű adatbázis hozzáférésre is (kontroll felhasználó), amivel a háttérben hajtja végre az adatbázisokkal kapcsolatos adminisztratív műveleteket. Ezt a hozzáférést csak a rendszer használja. A következő panelen ehhez kér egy új jelszót:

phpMyAdmin konfigurálása - Alkalmazásszintű hozzáférés jelszavának megadása

Ezzel a fiókkal nem lesz semmi dolgunk a későbbiekben, ezért nyomjunk üresen egy entert, hogy generáljon magának egy jelszót.

Ha itt utána jelszó megerősítést kér, és nem enged tovább az üresen hagyott jelszóval azután újra kéri, akkor adjunk meg valamit. Láttam már ilyet is...

Végül ha mindent jól csináltunk, akkor már be is tudunk lépni a phpMyAdminba a root felhasználóval:

phpMyAdmin - Bejelentkezés

phpMyAdmin - Kezdőképernyő

Apache konfigurálása

Engedélyezzük az alapvető Apache modulokat: 

a2enmod suexec rewrite ssl actions include cgi headers

Valamint, ha szeretnénk WebDAV-ot is használni, akkor még futtassuk ezt is:

a2enmod dav_fs dav auth_digest

Ezután egy ismert biztonsági rést (httpoxy) szűntetünk meg egy apró beállítással. Hozzunk létre egy új Apache konfigurációs fájlt (/etc/apache2/conf-available/httpoxy.conf):

nano /etc/apache2/conf-available/httpoxy.conf

Majd tegyük bele az alábbi tartalmat:

<IfModule mod_headers.c>
    RequestHeader unset Proxy early
</IfModule>

Engedélyezzük a konfigurációt az a2enconf paranccsal:

a2enconf httpoxy

És indítsuk újra az Apache-ot:

service apache2 restart

 

 

Let's Encrypt telepítése

Az ISPConfig 3 támogatja a Let's Encrypt teljes körű kezelését, amivel ingyenes SSL tanúsítványokkal láthatjuk el az általunk kezelt weboldalakat, hogy a biztonságos HTTPS protokollon futtathassuk őket.

Ha éles használatra telepítjük szerverünket, akkor mindenképp érdemes feltenni a Let's Encryptet. Ennek a menete a következő:

Nyissuk meg az APT csomagkezelő forráslistáját:

nano /etc/apt/sources.list

És ha még nincs a listában, adjuk hozzá a backports tárolót is, hogy hozzájuthassunk a legfrissebb ACME kliens csomaghoz:

deb http://ftp.debian.org/debian stretch-backports main

Majd frissítsük a csomagkezelő adatbázisát:

apt-get update

Ezután telepítsük a legfrissebb certbot programot (Apache-hoz) az alábbi paranccsal a backports tárolóból:

apt-get install python-certbot-apache -t stretch-backports
Az eredeti leírásban simán telepíti a certbot csomagot, de úgy csak a 0.10.2-1~bpo8+1 verziójú certbot csomag érhető el. A backports tárolóból viszont a 0.28.0-1~bpo9+1 verziója tölthető le, e leírás készítésének idején (2019 január.).
Erről korábban már készítettem egy másik leírást, amiben részleteztem a certbot verziók körüli variációkat.
Frissítés (2019-03-18):
A korábban a csak backports tárolóban lévő 0.28.0-1-es certbot csomag időközben már átkerült a Debian 9 (Stretch) fő tárolójába is, tehát ugyanez a verzió már a backports használata nélkül is telepíthető. Mindazonáltal mindig érdemes ránézni a backports csomagokra is, mert a frissebb verziók mindig ebben jelennek meg először. Így ha maradunk a backports tároló használatánál, akkor a csomagjaink frissítésekor onnan jó eséllyel újabb verziókat fogunk kapni, de minimum ugyanazt a változatot, mint ami a fő tárolóban van.
Ezért bent is hagytam az eredeti részt a leírásban.

A telepítés után le is kérdezhetjük a verziót:

certbot --version

És a válasz:

certbot 0.28.0

Tehát pontosan a legfrissebb verziót szereztük be.

Egyébként teszt környezetre is érdemes feltelepíteni a Let's Encryptet, hogy az ember ismerkedjen vele, körülnézhessen a konfig fájlokban, stb, hogy amikor éles helyzetre kerül a sor, addigra már rutinosabban állhasson neki.

Ezután már nincs más teendő a Let's Encrypttel, az ISPConfig3 innentől már kézbe veszi az SSL-ek lekérését/megújítását a weboldalakhoz.

 

PHP-FPM telepítése

Ahhoz, hogy PHP-FPM SAPI módban is tudjuk működtetni a PHP-t, külön telepítenünk kell a megfelelő csomagot:

apt-get -y install php7.0-fpm

Nálam a 7.0.33-as verziót rakta fel, ez most a legfrissebb a 7.0-ás ágból (2018. december 6-ai kiadás).

Később (a szerver teljes feltelepítése után) még lehet opcionálisan régebbi PHP-t (5.6.x) is telepíteni, vagy újabbat is (7.1.x, 7.2.x), ha egy vagy több futtatandó weboldal a kompatibilitás megőrzése végett megkívánja a 7.0.x-től eltérő verziót. Ezekről másik leírásokban informálódhatunk.

Ezután még engedélyeznünk kell néhány Apache modult, ami szükséges a PHP-FPM megfelelő működtetéséhez:

a2enmod actions proxy_fcgi alias

Majd indítsuk újra az Apache-ot:

service apache2 restart

PHP műveletkód (opcode) cache telepítése (opcionális)

A PHP alapú weboldalak esetén – főleg ha valamilyen CMS rendszert futtatunk – célszerű feltelepíteni a PHP közbenső kód gyorsítótárazó modulját. Nem kötelező, de jelentősen lecsökkenti az összetettebb PHP alapú weboldalak generálási idejét.

A telepítéshez futtassuk az alábbi parancsot:

apt-get -y install php7.0-opcache php-apcu

Majd indítsuk újra az Apache-ot:

service apache2 restart

 

 

PureFTPd telepítése

A PureFTPd egy ingyenes FTP daemon, amivel a szerveren lévő webtárhelyekhez adhatunk FTP és FTPS hozzáféréseket ügyfeleink részére. Telepítéséhez futtassuk a következő parancsot:

apt-get -y install pure-ftpd-common pure-ftpd-mysql

Hozzunk létre egy dhparam fájlt a PureFTPd számára: 

openssl dhparam -out /etc/ssl/private/pure-ftpd-dhparams.pem 2048

(Körülbelül 1 percen át megy a generálás, közben pontokat és plusz jeleket ír ki, ne állítsuk meg.)

Ezután nyissuk meg szerkesztésre a /etc/default/pure-ftpd-common fájlt:

nano /etc/default/pure-ftpd-common

És gondoskodjunk róla, hogy a STANDALONE_OR_INETD és a VIRTUALCHROOT beállítások az alábbi értékeket kapják:

[...]
STANDALONE_OR_INETD=standalone
[...]
VIRTUALCHROOT=true
[...]

Majd mentsük le.

Alapból az FTP egy nem titkosított csatorna, a rajta átküldött adatok sima szövegként vándorolnak a felek között. Ezért titkosítani kell a TLS/SSL protokollal, hogy a fájlok fel/letöltése kódolt formában történjen a szerver és az FTP kliens között.

Ennek a beállításához adjuk ki a következő parancsot:

echo 1 > /etc/pure-ftpd/conf/TLS

Ezután hozzunk létre egy könyvtárat az utána elkészítendő tanúsítványunknak:

mkdir -p /etc/ssl/private/

És hozzuk létre a saját (self-signed) tanúsítványunkat:

openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem

A a tanúsítvány létrehozásához szükség van néhány adatra, ezeket bekéri tőlünk az openssl program.

Tehát a teljes kimenet, és benne zöld színnel a beadandó adatok:

pem -out /etc/ssl/private/pure-ftpd.pem
Generating a RSA private key
..................................................................................................+++++
............................+++++
writing new private key to '/etc/ssl/private/pure-ftpd.pem'
-----
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) []:Budapest
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Linuxportal
Organizational Unit Name (eg, section) []:IT Department
Common Name (e.g. server FQDN or YOUR name) []:debian9.linuxportal.vm
Email Address []:email címem

Ezután állítsuk be a generált pem fájlunk jogosultságát a chmod paranccsal, hogy más felhasználók ne férhessenek hozzá a szerveren:

chmod 600 /etc/ssl/private/pure-ftpd.pem

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

service pure-ftpd-mysql restart

 

A következő oldalon folytatjuk a Quota telepítésével.

 

 

Lapozó

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