Questo tutorial mostra l'installazione di ISPConfig 3.1 su un server CentOS 7.3 (64 bit). ISPConfig è un pannello di controllo di web hosting che consente di configurare i seguenti servizi tramite un browser web:server web Apache, server di posta Postfix, MySQL, server dei nomi BIND, PureFTPd, SpamAssassin, ClamAV, Mailman e molti altri.
1 Requisiti
Per installare un tale sistema avrai bisogno di quanto segue:
- Un sistema server minimo Centos 7.3. Può trattarsi di un server installato da zero come descritto nel nostro tutorial sul server minimo Centos 7.3 o un server virtuale o root server di una società di hosting su cui è installata una configurazione minima di Centos 7.3.
- Una connessione Internet veloce.
2 Nota preliminare
In questo tutorial, utilizzo l'hostname server1.example.com con l'indirizzo IP 192.168.1.100 e il gateway 192.168.1.1. Queste impostazioni potrebbero differire per te, quindi devi sostituirle dove appropriato.
Tieni presente che HHVM e XMPP non sono ancora supportati in ISPConfig per la piattaforma CentOS. Se desideri gestire un server di chat XMPP da ISPConfig o utilizzare HHVM (Hip Hop Virtual Machine) in un sito Web ISPConfig, utilizza Debian 8 o Ubuntu 16.04 come sistema operativo server anziché CentOS 7.3.
3 Prepara il server
Imposta il layout della tastiera
Nel caso in cui il layout della tastiera del server non corrisponda alla tua tastiera, puoi passare alla tastiera giusta (nel mio caso "de" per un layout di tastiera tedesco, con il comando localectl:
localectl set-keymap de
Per ottenere un elenco di tutte le keymap disponibili, esegui:
localectl list-keymaps
Voglio installare ISPConfig alla fine di questo tutorial, ISPConfig viene fornito con lo script del firewall Bastille che userò come firewall, quindi disabilito il firewall CentOS predefinito ora. Naturalmente, sei libero di lasciare attivo il firewall CentOS e configurarlo in base alle tue esigenze (ma in seguito non dovresti utilizzare nessun altro firewall poiché molto probabilmente interferirà con il firewall CentOS).
Corri...
yum -y install net-tools
systemctl stop firewalld.service
systemctl disable firewalld.service
per fermare e disabilitare il firewall CentOS. Va bene quando ricevi errori qui, questo indica solo che il firewall non è stato installato.
Quindi dovresti controllare che il firewall sia stato davvero disabilitato. Per farlo, esegui il comando:
iptables -L
L'output dovrebbe essere simile a questo:
[[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
Oppure usa il comando firewall-cmd:
firewall-cmd --state
[[email protected] ~]# firewall-cmd --state
not running
[[email protected] ~]#
Ora installerò l'editor di configurazione di rete e l'editor basato su shell "nano" che utilizzerò nei prossimi passaggi per modificare i file di configurazione:
yum -y install nano wget NetworkManager-tui
Se non hai configurato la tua scheda di rete durante l'installazione, puoi farlo ora. Corri...
nmtui
... e vai su Modifica una connessione:
Seleziona la tua interfaccia di rete:
Quindi inserisci i dettagli della tua rete:disabilita DHCP e inserisci un indirizzo IP statico, una maschera di rete, il tuo gateway e uno o due server dei nomi, quindi premi OK:
Quindi seleziona OK per confermare le modifiche apportate nelle impostazioni di rete
e Esci per chiudere lo strumento di configurazione della rete nmtui.
Dovresti correre
ifconfig
ora per verificare se il programma di installazione ha ottenuto il tuo indirizzo IP corretto:
[[email protected] ~]# ifconfig ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::20c:29ff:fecd:cc52 prefixlen 64 scopeid 0x20 ether 00:0c:29:cd:cc:52 txqueuelen 1000 (Ethernet) RX packets 55621 bytes 79601094 (75.9 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 28115 bytes 2608239 (2.4 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 0x10loop txqueuelen 0 (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
Se la tua scheda di rete non viene visualizzata lì, allora non è abilitata all'avvio. In questo caso, apri il file /etc/sysconfig/network-scripts/ifcfg-eth0
nano /etc/sysconfig/network-scripts/ifcfg-ens33
e imposta ONBOOT su sì:
[...]
ONBOOT=yes
[...]
e riavvia il server.
Controlla il tuo /etc/resolv.conf se elenca tutti i nameserver che hai precedentemente configurato:
cat /etc/resolv.conf
Se mancano i nameserver, esegui
nmtui
e aggiungi di nuovo i nameserver mancanti.
Ora, alla configurazione...
Regolare /etc/hosts e /etc/hostname
Successivamente, modificheremo /etc/hosts. Rendilo simile a questo:
nano /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
192.168.1.100 server1.example.com server1
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
Imposta il nome host nel file /etc/hostname. Il file deve contenere il nome di dominio completo (ad es. server1.example.com nel mio caso) e non solo il nome breve come "server1". Apri il file con l'editor nano:
nano /etc/hostname
E imposta il nome host nel file.
server1.example.com
Salva il file ed esci da nano.
Disabilita SELinux
SELinux è un'estensione di sicurezza di CentOS che dovrebbe fornire una sicurezza estesa. Secondo me non è necessario per configurare un sistema sicuro e di solito causa più problemi che vantaggi (pensaci dopo aver fatto una settimana di risoluzione dei problemi perché alcuni servizi non funzionavano come previsto, e quindi scopri che era tutto ok, solo SELinux stava causando il problema). Pertanto lo disabilito (questo è un must se vuoi installare ISPConfig in un secondo momento).
Modifica /etc/selinux/config e imposta SELINUX=disabled:
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=disabled # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # mls - Multi Level Security protection. SELINUXTYPE=targeted
Successivamente dobbiamo riavviare il sistema:
reboot
4 Abilita repository aggiuntivi e installa alcuni software
Per prima cosa importiamo le chiavi GPG per i pacchetti software:
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*
Quindi abilitiamo il repository EPEL sul nostro sistema CentOS poiché molti dei pacchetti che installeremo nel corso di questo tutorial non sono disponibili nel repository CentOS 7 ufficiale:
yum -y install epel-release
yum -y install yum-priorities
Modifica /etc/yum.repos.d/epel.repo...
nano /etc/yum.repos.d/epel.repo
... e aggiungi la linea priority=10 alla sezione [epel]:
[epel] name=Extra Packages for Enterprise Linux 7 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch failovermethod=priority enabled=1 priority=10 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 [...]
Quindi aggiorniamo i nostri pacchetti esistenti sul sistema:
yum -y update
Ora installiamo alcuni pacchetti software che saranno necessari in seguito:
yum -y groupinstall 'Development Tools'
5 quote
(Se hai scelto uno schema di partizionamento diverso dal mio, devi modificare questo capitolo in modo che la quota si applichi alle partizioni dove ne hai bisogno.)
Per installare quota, eseguiamo questo comando:
yum -y install quota
Ora controlliamo se la quota è già abilitata per il filesystem in cui sono archiviati i dati del sito Web (/var/www) e della maildir (var/vmail). In questa configurazione di esempio, ho una grande partizione di root, quindi cerco ' / ':
mount | grep ' / '
[[email protected] ~]# mount | grep ' / '
/dev/mapper/centos-root on / type xfs (rw,relatime,attr2,inode64,noquota)
[[email protected] ~]#
Se hai una partizione /var separata, usa:
mount | grep ' /var '
invece. Se la riga contiene la parola "noquota ", quindi procedi con i passaggi seguenti per abilitare la quota.
Abilitazione della quota sulla partizione / (root)
Normalmente si abilita la quota nel file /etc/fstab, ma se il filesystem è il filesystem root "/", allora la quota deve essere abilitata da un parametro di avvio del kernel Linux.
Modifica il file di configurazione di grub:
nano /etc/default/grub
cerca nella riga che inizia con GRUB_CMDLINE_LINUX e aggiungi rootflags=uquota,gquota ai parametri della riga di comando in modo che la riga risultante assomigli a questa:
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet rootflags=uquota,gquota"
e applica le modifiche eseguendo il comando seguente.
cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg_bak
grub2-mkconfig -o /boot/grub2/grub.cfg
e riavvia il server.
reboot
Ora controlla se la quota è abilitata:
mount | grep ' / '
[[email protected] ~]# mount | grep ' / '
/dev/mapper/centos-root on / type xfs (rw,relatime,attr2,inode64,usrquota,grpquota)
[[email protected] ~]#
Quando la quota è attiva, possiamo vedere "usrquota,grpquota " nell'elenco delle opzioni di montaggio.
Abilitazione della quota su una partizione /var separata
Se hai una partizione /var separata, modifica /etc/fstab e aggiungi ,uquota,gquota alla partizione / (/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
Quindi esegui
mount -o remount /var
quotacheck -avugm
quotaon -avug
per abilitare la quota. Quando viene visualizzato un errore che indica che non è presente alcuna partizione con la quota abilitata, riavviare il server prima di procedere.
6 Installa Apache, MySQL, phpMyAdmin
Possiamo installare i pacchetti necessari con un solo comando:
yum -y install ntp httpd mod_ssl mariadb-server php php-mysql php-mbstring phpmyadmin
Per garantire che il server non possa essere attaccato attraverso la vulnerabilità HTTPOXY, disabiliteremo l'intestazione HTTP_PROXY in Apache a livello globale.
Aggiungi la regola dell'intestazione di apache alla fine del file httpd.conf:
echo "RequestHeader unset Proxy early" >> /etc/httpd/conf/httpd.conf
E riavvia httpd per applicare la modifica alla configurazione.
service httpd restart