Az 1. oldal tartalma
Bevezető
Ebben a leírásban elkészítjük a tökéletes szerver Debian 9 (Stretch) változatát. Ezt a szervert 1.0-ás verziószámmal jelölöm meg, mert még később sok mindennel fog kiegészülni, így könnyebben tudok a verziószámokkal hivatkozni az adott telepítésre. A szerver egyébként már korábban elkészült a Debian 8 (Jessie) változatában is, ez pedig itt tekinthető meg.
A leírást a Howtoforge receptje alapján készítem el.
A szerver nagyon sok összetevőt tartalmaz, így elkészítése is több időt vesz igénybe. Amennyiben egy egyszerűbb szerver összeállításra van szükség, ajánlom helyette a Debian 9 (Stretch) LAMP szerver elkészítését.
Elkészült a szerver újabb változata Debian 10-re: Tökéletes szerver: Debian 10 (Buster) V1.0
Előfeltételek
Debian csomagok frissítése
Mint minden nagyobb telepítőmunka előtt, most is a csomagok frissítésével kezdjük. A csomagok frissítése előtt azonban a csomagtárolókat is megfelelően be kell állítani. Ha még nem tettük volna meg az alaprendszer telepítésének végén, akkor a csomagtárolók bővítését most mindenképpen pótoljuk!
Ha viszont már ezzel megvagyunk, akkor frissítsük az APT csomagkezelő adatbázisát, és a csomagokat:
apt-get update
apt-get upgrade
Hálózat és hosztnév beállítása/ellenőrzése
A hálózat és hosztnév megfelelő beállítása is nagyon fontos, ezért ha régebben telepítettük az alaprendszert, és nem vagyunk benne biztosak, ellenőrizzük a korábbi útmutató alapján.
Ennek a szervernek a hosztnevét a hostname parancs segítségével kérhetjük le:
hostname
debian9
A teljes szervernév pedig a hostname -f kapcsolójával:
hostname -f
debian9.linuxportal.vm
Ebben a telepítő leírásban tehát ezekkel a hosztnév beállításokkal fogok végighaladni. Telepítéskor a saját szervernevünket használjuk.
Alapértelmezett shell beállítása
A Debian 9 alapértelmezetten a Dash shell-t használja, ami ehhez a telepítéshez nem megfelelő, ezért át kell állítanunk a Bash-ra:
dpkg-reconfigure dash
Itt válasszuk a nem opciót. Ekkor a rendszer átállítja a szimbolikus linkeket a Bash-ra. Ez fontos a későbbi ISPConfig kezelőpanel telepítésénél, mert enélkül nem indulna el.
Rendszeróra szinkronizálása
A rendszer óráját célszerű szinkronizálni az NTP protokoll segítségével, hogy mindig pontos legyen az idő a szerveren:
apt-get install ntp
Postfix, Dovecot, MySQL, rkhunter, és Binutils telepítése
Telepítsük a címben említett összetevőket egyetlen apt-get paranccsal:
apt-get install -y \
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 Debian 9-ben a MySQL helyett a MariaDB van a disztribúció csomagtárában, ezért ezt telepítjük. Nagyfokú kompatibilitása miatt teljes mértékben tudja helyettesíteni a MySQL-t.
Ha valaki azonban mégis a MySQL-t szeretné telepíteni, később is kicserélhető, erről egy másik leírásban lesz szó.
Postfix beállítása
A parancs futtatására elindul a telepítő, majd közben előjön pár kérdés az SMTP szerver (Postfix) beállításaival kapcsolatban:
Ha éles használatra telepítjük a szervert, akkor itt válasszuk az "Internet Site" opciót.
Otthoni, tesztkörnyezet telepítésénél pedig választhatjuk a "Local only" beállítást is, de ebben az esetben is választható az "Internet Site" lehetőség, mert például egy relay host beállítással egy külső szerveren keresztül is tudunk leveleket küldeni az otthoni gépünkről.
Itt pedig ha korábban jól állítottuk be a hosztnevet, akkor a rendszer fel is ajánlja az FQDN nevet. Vagy állítsuk be magunk a megfelelő domain nevet, amiről kiküldjük a leveleinket.
Ezután nyissuk meg a /etc/postfix/master.cf fájlt,
nano /etc/postfix/master.cf
és végezzük el a TLS/SSL beállításokat, hogy pontosan így nézzen ki a konfigurációs fájlnak ez a része:
[...] 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 [...]
Mentsük le, majd indítsuk újra a postfixet:
service postfix restart
MySQL/MariaDB beállítása
Tegyük biztonságossá az adatbázis konfigurációnkat a teszt adatbázis és az anonymous felhasználó és a hozzájuk kapcsolt jogosultságok letiltásával Ehhez futtassuk a mysql_secure_installation parancsot:
mysql_secure_installation
A parancs futtatására ismét előjön pár kérdés:
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! In order to log into MariaDB to secure it, we'll need the current password for the root user. If you've just installed MariaDB, and you haven't set the root password yet, the password will be blank, so you should just press enter here. Enter current password for root (enter for none):
Itt az adatbázis root jelszavát kell megadnunk. Mivel a friss telepítésben még nincs jelszó beállítva, nyomjunk egy entert.
Ezután megkérdi, hogy szeretnénk-e módosítani a root jelszavát:
OK, successfully used password, moving on... Setting the root password ensures that nobody can log into the MariaDB root user without the proper authorisation. You already have a root password set, so you can safely answer 'n'. Change the root password? [Y/n]
Nyomjunk "Y" -t, majd adjuk meg az új jelszót és az ismétlését. Ezzel beállítottuk a MariaDB root jelszavát.
Ezután leírja, hogy a MariaDB alap telepítésben van egy anonymous felhasználó, amivel bárki be tud lépni külön felhasználói fiók nélkül. Ezt csak teszt célokra szánták, és javasolják, hogy vegyük ki éles használat esetén.
Itt ennek megfelelően válaszoljunk a kérdésre:
Remove anonymous users? [Y/n]
Éles használat esetén mindenképpen az "Y" opciót válasszuk.
Ezután a root felhasználó távoli belépési lehetőségének letiltását kérdi meg:
Disallow root login remotely? [Y/n]
Itt válasszuk az "Y" opciót, hacsaknem szükségünk lenne távoli root belépésre.
A phpMyAdmin belépés nem számít távoli belépésnek, mert az a szerveren fut, ezért az helyi kapcsolatnak számít, bárhonnan is használjuk. Így ha letiltjuk a távoli root belépést az "Y" opcióval a phpMyAdmin felületén továbbra is be fogunk tudni lépni root-ként is.
Ezután megkérdi, hogy a szintén teszt célokra létrehozott "test" adatbázist – amihez bármilyen felhasználóval hozzáférhetünk – törölje-e:
Remove test database and access to it? [Y/n]
Éles használat esetén töröljük mindenképpen: "Y".
- Dropping test database... ... Success! - Removing privileges on test database... ... Success! Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? [Y/n]
Ekkor törli a test adatbázist, és a hozzá kapcsolódó jogosultságokat. Utána megkérdi, hogy újra töltse-e a jogosultságokat. Itt nyomjunk "Y"-t.
Fentebb letiltottuk a root felhasználó távoli hozzáférését. Most viszont engedélyezzük, hogy alapból csatlakozni lehessen más gépekről is az adatbázisokhoz, ne csak a localhostról (kivéve persze a root felhasználóval). Ehhez nyissuk meg a /etc/mysql/mariadb.conf.d/50-server.cnf fájlt:
nano /etc/mysql/mariadb.conf.d/50-server.cnf
Kommentezzük ki a "bind-address" kezdetű sort, és tegyük be az alatta lévő "sql-mode" kezdetű sort, hogy így nézzen ki ez a rész:
[...] # 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 sql-mode="NO_ENGINE_SUBSTITUTION" [...]
Mentsük le.
Állítsuk be a root felhasználó defaults fájlját, hogy többször ne kelljen a parancssorban beírkálnunk a root jelszavát.
nano /etc/mysql/debian.cnf
Adjuk meg mindkét helyen a root jelszót (ha a jelszó tartalmaz speciális karaktereket, akkor tegyük aposztrófok közé):
# Automatically generated for Debian scripts. DO NOT TOUCH! [client] host = localhost user = root password = <root jelszó> socket = /var/run/mysqld/mysqld.sock [mysql_upgrade] host = localhost user = root password = <root jelszó> socket = /var/run/mysqld/mysqld.sock basedir = /usr
Mentsük le.
A következő paranccsal állítsuk át a MariaDB root felhasználójának jelszó hitelesítési módját natívra, hogy később a PHPMyAdmin tudjon root-ként csatlakozni (két sorba törtem, de ez egy parancs):
echo "update mysql.user set plugin = 'mysql_native_password' where user='root';" | \
mysql --defaults-file=/etc/mysql/debian.cnf
Itt már nem kell begépelnünk az adatbázis root jelszavát, hála a defaults fájlunknak. (Az eredeti leírásban fordítva volt, de így logikusabb, hogy előbb állítjuk be a defaults fájlt, és rögtön utána már használhatjuk is. Ezért felcseréltem a két részt)
Ezután emeljük meg a MariaDB által maximálisan megnyitható fájlok számát. Nyissuk meg a /etc/security/limits.conf fájlt:
nano /etc/security/limits.conf
és adjuk a végéhez a következő két sort:
mysql soft nofile 65535 mysql hard nofile 65535
Hozzunk létre egy új könyvtárat (/etc/systemd/system/mysql.service.d/):
mkdir -p /etc/systemd/system/mysql.service.d/
A könyvtárban hozzunk létre egy új fájlt:
nano /etc/systemd/system/mysql.service.d/limits.conf
És tegyük bele az alábbi két sort:
[Service] LimitNOFILE=infinity
Mentsük le.
Szolgáltatások újraindítása
Frissítsük a systemd-t és indítsuk újra a MariaDB-t:
systemctl daemon-reload
service mysql restart
A második parancsnál dob egy warningot:
Warning: mysql.service changed on disk. Run 'systemctl daemon-reload' to reload units.
Első telepítéskor nem tudtam mire véljem ezt az üzenetet, így hát keresgélni kezdtem. A Howtoforge fórumában találtam két helyen is erre vonatkozó kérdést, az egyiket itt, és a másikat pedig itt. Mindkét topikban ugyanerre az üzenetre kérdeztek rá, és mindegyiknél választolt rá az eredeti leírás készítője, hogy figyelmen kívül hagyható ez az üzenet.
Ezt megerősítendő, hogy az asztali gépemre is feltelepítettem korábban ugyanezt a szervert, ugyanezt írta akkor is ki, de működik szépen, hiba nélkül.
Továbbá ellenőrizhetjük is, hogy megy-e a MySQL/MariaDB daemonja:
netstat -nap | grep mysql
A a kimenetnek pedig megfelelő működés esetén valami hasonlónak kell lennie:
tcp6 0 0 :::3306 :::* LISTEN 13648/mysqld unix 2 [ ACC ] STREAM LISTENING 69347 13648/mysqld /var/run/mysqld/mysqld.sock
És hogy teljesen nyugodtan aludhassunk, még így is rákereshetünk a futó szolgáltatások között:
systemctl | grep mariadb
Erre pedig ilyesmit kell adnia:
mariadb.service loaded active running MariaDB 10.1.37 database server
Tehát minden szögből nézve jó. Elsőre persze én is aggódtam, ezért kerestem rá ezekre.
A következő oldalon folytatódik a leírás az Amavisd, SpamAssassin, és ClamAV vírusirtó és SPAM szűrőprogramok telepítésével...
- Tökéletes szerver letöltése: Debian 9 (Stretch) V1.0
- Tökéletes szerver: Debian 8 (Jessie) V1.0
- Tökéletes szerver: Debian 10 (Buster) V1.0
- Tökéletes szerver: Debian 11 (Bullseye) v1.0
- Hogyan építhetjük meg és élesíthetjük ISPConfig3 szerverünket, valamint hogyan biztosíthatjuk a Let's Encrypt SSL-el kezelőpanelünket, főbb szolgáltatásainkat és weboldalainkat
- Debian 9 (Stretch) minimális szerver telepítése
- Howtoforge - The Perfect Server - Debian 9 (Stretch) with Apache, BIND, Dovecot, PureFTPD and ISPConfig 3.1 (forrás)
- Debian 8 (Jessie) LAMP szerver v1.0 telepítése
- Debian 9 (Stretch) LAMP szerver v1.0 telepítése
- Ubuntu 18.04 LTS (Bionic Beaver) LAMP szerver v1.0 telepítése
- Debian 11 (Bullseye) LAMP szerver v1.0 telepítése
- Hogyan telepítsük a PHP 5.6.40-et választható verzióként a Debian 9 (Stretch) tökéletes szerverre
- Hogyan állíthatunk be egyedi PHP verziókat ISPConfig rendszerű szerverünkön
- Drupal 8 CMS rendszer telepítése, élesztése
- WordPress 5.2 CMS telepítése ISPConfig-os szerverkörnyezetre
- Ubuntu 18.04 LTS (Bionic Beaver) minimális szerver telepítése
- Hogyan állítsuk be ISPConfig szerverünkön az alapértelmezett weboldalt, hogy ne az Apache2 Debian Default oldala kerüljön betöltésre a szerver IP-címének vagy teljes hosztnevének elérésekor
Lapozó
- A hozzászóláshoz regisztráció és bejelentkezés szükséges
- 2463 megtekintés