GNU/Linux >> Znalost Linux >  >> Cent OS

The Perfect Server CentOS 7.6 s Apache, PHP 7.2, Postfix, Dovecot, Pure-FTPD, BIND a ISPConfig 3.1

Tento výukový program ukazuje instalaci ISPConfig 3.1 na server CentOS 7.6 (64Bit). ISPConfig je ovládací panel webhostingu, který vám umožňuje konfigurovat následující služby prostřednictvím webového prohlížeče:webový server Apache, PHP 7.2, poštovní server Postfix, MySQL, jmenný server BIND, PureFTPd, SpamAssassin, ClamAV, Mailman a mnoho dalších.

1 požadavky

K instalaci takového systému budete potřebovat následující:

  • Minimální serverový systém Centos 7.6. Může to být server nainstalovaný od začátku, jak je popsáno v našem výukovém programu pro minimální server Centos 7, nebo virtuální server nebo kořenový server od hostitelské společnosti, která má nainstalované minimální nastavení Centos 7.6.
  • Rychlé internetové připojení.

2 Předběžná poznámka

V tomto tutoriálu používám název hostitele server1.example.com s IP adresou 192.168.0.100 a bránou 192.168.0.1. Tato nastavení se pro vás mohou lišit, takže je v případě potřeby musíte nahradit.

3 Připravte server

Nastavte rozložení klávesnice

V případě, že rozložení klávesnice serveru neodpovídá vaší klávesnici, můžete přepnout na pravou klávesnici (v mém případě "de" pro německé rozložení klávesnice, příkazem localectl:

localectl set-keymap de

Chcete-li získat seznam všech dostupných map kláves, spusťte:

localectl list-keymaps

Chci nainstalovat ISPConfig na konci tohoto tutoriálu, ISPConfig je dodáván se skriptem brány firewall Bastille, který budu používat jako bránu firewall, proto nyní deaktivuji výchozí bránu firewall CentOS. Firewall CentOS samozřejmě můžete nechat zapnutý a nakonfigurovat jej podle svých potřeb (ale později byste neměli používat žádný jiný firewall, protože by s největší pravděpodobností narušoval firewall CentOS).

Spustit...

yum -y install net-tools
systemctl stop firewalld.service
systemctl disable firewalld.service

zastavit a deaktivovat bránu firewall CentOS. Je v pořádku, když se zde objeví chyby, pouze to znamená, že firewall nebyl nainstalován.

Poté byste měli zkontrolovat, zda byl firewall skutečně deaktivován. Chcete-li to provést, spusťte příkaz:

iptables -L

Výstup by měl vypadat takto:

[[email protected] ~]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Nebo použijte příkaz firewall-cmd:

firewall-cmd --state
[[email protected] ~]# firewall-cmd --state
not running
[[email protected] ~]#

Nyní nainstaluji editor konfigurace sítě a editor „nano“ založený na shellu, který použiji v následujících krocích k úpravě konfiguračních souborů:

yum -y install nano wget NetworkManager-tui yum-utils

Pokud jste během instalace nenakonfigurovali síťovou kartu, můžete tak učinit nyní. Spustit...

nmtui

... a přejděte na Upravit připojení:

Vyberte síťové rozhraní:

Poté vyplňte podrobnosti o vaší síti – deaktivujte DHCP a vyplňte statickou IP adresu, masku sítě, vaši bránu a jeden nebo dva jmenné servery, poté stiskněte Ok:

Dále vyberte OK pro potvrzení změn, které jste provedli v nastavení sítě

a Quit pro zavření nástroje pro konfiguraci sítě nmtui.

Měli byste spustit

ifconfig

nyní zkontrolujte, zda instalační program správně získal vaši IP adresu:

[[email protected] ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.100 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::20c:29ff:fee5:5b47 prefixlen 64 scopeid 0x20<link>
inet6 2003:c2:9731:a445:20c:29ff:fee5:5b47 prefixlen 64 scopeid 0x0<global>
ether 00:0c:29:e5:5b:47 txqueuelen 1000 (Ethernet)
RX packets 227784 bytes 317714901 (302.9 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 205574 bytes 23608521 (22.5 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

[[email protected] ~]#

Pokud se tam vaše síťová karta nezobrazuje, pak není při bootování povolena. V tomto případě otevřete soubor /etc/sysconfig/network-scripts/ifcfg-eth0

nano /etc/sysconfig/network-scripts/ifcfg-ens33

a nastavte ONBOOT na yes:

[...]
ONBOOT=yes
[...]

a restartujte server.

Zkontrolujte svůj /etc/resolv.conf, zda obsahuje všechny jmenné servery, které jste dříve nakonfigurovali:

cat /etc/resolv.conf

Pokud jmenné servery chybí, spusťte

nmtui

a znovu přidejte chybějící jmenné servery.

Nyní ke konfiguraci...

Úprava /etc/hosts a /etc/hostname

Dále upravíme /etc/hosts. Ať to vypadá takto:

nano /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
192.168.0.100 server1.example.com server1

::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

Nastavte název hostitele v souboru /etc/hostname. Soubor musí obsahovat plně kvalifikovaný název domény (např. server1.example.com v mém případě), nikoli pouze krátký název jako „server1“. Otevřete soubor pomocí editoru nano:

nano /etc/hostname

A nastavte název hostitele v souboru.

server1.example.com

Uložte soubor a ukončete nano.

Nastavte SELinux na permisivní

SELinux je bezpečnostní rozšíření CentOS, které by mělo poskytovat rozšířené zabezpečení. ISPConfig se nedodává se sadou pravidel SELinux, proto jsem jej nastavil na permisivní (to je nutnost, pokud chcete ISPConfig nainstalovat později).

Upravte /etc/selinux/config a nastavte SELINUX=permissive:

nano /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=permissive
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

Poté musíme restartovat systém:

reboot

4 Povolení dalších úložišť a instalace softwaru

Nejprve importujeme klíče GPG pro softwarové balíčky:

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*

Poté povolíme úložiště EPEL v našem systému CentOS, protože mnoho balíčků, které se chystáme instalovat v průběhu tohoto tutoriálu, není dostupných v oficiálním úložišti CentOS 7:

yum -y install epel-release

Poté aktualizujeme naše stávající balíčky v systému:

yum -y update

Nyní nainstalujeme některé softwarové balíčky, které budeme potřebovat později:

yum -y groupinstall 'Development Tools'

Kvóta 5

(Pokud jste zvolili jiné schéma rozdělení než já, musíte upravit tuto kapitolu tak, aby kvóta platila pro oblasti, kde ji potřebujete.)

Pro instalaci kvóty spustíme tento příkaz:

yum -y install quota

Nyní zkontrolujeme, zda je již povolena kvóta pro systém souborů, kde jsou uloženy webové stránky (/var/www) a data maildir (var/vmail). V tomto příkladu nastavení mám jeden velký kořenový oddíl, takže hledám ' / ':

mount | grep ' / '
[[email protected] ~]# mount | grep ' / '
/dev/mapper/centos-root on / type xfs (rw,relatime,attr2,inode64,noquota)
[[email protected] ~]#

Pokud máte samostatný oddíl /var, použijte:

mount | grep ' /var '

namísto. Pokud řádek obsahuje slovo „noquota “, poté pokračujte podle následujících kroků a povolte kvótu.

Povolení kvóty na / (kořenovém) oddílu

Normálně byste povolili kvótu v souboru /etc/fstab, ale pokud je souborovým systémem kořenový souborový systém "/", pak musí být kvóta povolena spouštěcím parametrem linuxového jádra.

Upravte konfigurační soubor grub:

nano /etc/default/grub

vyhledejte řádek, který začíná GRUB_CMDLINE_LINUX a přidejte rootflags=uquota,gquota do parametrů příkazového řádku, aby výsledný řádek vypadal takto:

GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet rootflags=uquota,gquota"

a aplikujte změny spuštěním následujícího příkazu.

cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg_bak
grub2-mkconfig -o /boot/grub2/grub.cfg

a restartujte server.

reboot

Nyní zkontrolujte, zda je povolena kvóta:

mount | grep ' / '
[[email protected] ~]# mount | grep ' / '
/dev/mapper/centos-root on / type xfs (rw,relatime,attr2,inode64,usrquota,grpquota)
[[email protected] ~]#

Když je kvóta aktivní, můžeme vidět „usrquota,grpquota " v seznamu možností připojení.

Povolení kvóty na samostatném oddílu /var

Pokud máte samostatný oddíl /var, upravte /etc/fstab a přidejte ,uquota,gquota do oddílu / (/dev/mapper/centos-var):

nano /etc/fstab

#
# /etc/fstab
# Created by anaconda on Sun Sep 21 16:33:45 2014
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root / xfs defaults 1 1
/dev/mapper/centos-var /var xfs defaults,uquota,gquota 1 2
UUID=9ac06939-7e43-4efd-957a-486775edd7b4 /boot xfs defaults 1 3
/dev/mapper/centos-swap swap swap defaults 0 0

Potom spusťte

mount -o remount /var
quotacheck -avugm
quotaon -avug

pro povolení kvóty. Když se zobrazí chyba, že neexistuje žádný oddíl s povolenou kvótou, pak před pokračováním restartujte server.

6 Instalace Apache, PHP, MySQL a phpMyAdmin

Chcete-li získat novější verze PHP, povolte úložiště Remi:

yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum-config-manager --enable remi-php72

Potřebné balíčky můžeme nainstalovat jediným příkazem:

yum -y install ntp httpd mod_ssl mariadb-server php php-mysql php-mbstring phpmyadmin

Abychom zajistili, že server nemůže být napaden prostřednictvím chyby zabezpečení HTTPOXY, globálně deaktivujeme záhlaví HTTP_PROXY v Apache.

Přidejte pravidlo záhlaví Apache na konec souboru httpd.conf:

echo "RequestHeader unset Proxy early" >> /etc/httpd/conf/httpd.conf

A restartujte httpd, abyste použili změnu konfigurace.

service httpd restart

Cent OS
  1. The Perfect Server - Ubuntu 16.10 (Yakkety Yak) s Apache, PHP, MySQL, PureFTPD, BIND, Postfix, Dovecot a ISPConfig 3.1

  2. The Perfect Server - Ubuntu 17.04 (Zesty Zapus) s Apache, PHP, MySQL, PureFTPD, BIND, Postfix, Dovecot a ISPConfig 3.1

  3. The Perfect Server – Ubuntu 16.04 (Nginx, MySQL, PHP, Postfix, BIND, Dovecot, Pure-FTPD a ISPConfig 3.1)

  1. The Perfect Server - Ubuntu 16.04 (Xenial Xerus) s Apache, PHP, MySQL, PureFTPD, BIND, Postfix, Dovecot a ISPConfig 3.1

  2. The Perfect Server - Ubuntu 18.04 (Bionic Beaver) s Apache, PHP, MySQL, PureFTPD, BIND, Postfix, Dovecot a ISPConfig 3.1

  3. The Perfect Server – Ubuntu 18.04 (Nginx, MySQL, PHP, Postfix, BIND, Dovecot, Pure-FTPD a ISPConfig 3.1)

  1. The Perfect Server – Ubuntu 15.04 (Vivid Vervet) s Apache, PHP, MySQL, PureFTPD, BIND, Postfix, Dovecot a ISPConfig 3

  2. The Perfect Server – Ubuntu 15.10 (nginx, MySQL, PHP, Postfix, BIND, Dovecot, Pure-FTPD a ISPConfig 3)

  3. The Perfect Server - Ubuntu 17.10 (Artful Aardvark) s Apache, PHP, MySQL, PureFTPD, BIND, Postfix, Dovecot a ISPConfig 3.1