GNU/Linux >> Linux Esercitazione >  >> Panels >> Panels

Il server perfetto - OpenSUSE 12.2 x86_64 (Apache2, Dovecot, ISPConfig 3)

Il server perfetto - OpenSUSE 12.2 x86_64 (Apache2, Dovecot, ISPConfig 3)

Questa è una descrizione dettagliata su come configurare un OpenSUSE 12.2 64bit (x86_64) server che offre tutti i servizi necessari a ISP e hoster:server web Apache (con supporto SSL) con supporto PHP, CGI e SSI, server di posta Postfix con SMTP-AUTH, utenti TLS e posta virtuale, server DNS BIND, server FTP Pureftpd, MySQL server, Dovecot POP3/IMAP, Quota, Firewall, Mailman, ecc. Dalla versione 3.0.4, ISPConfig viene fornito con il supporto completo per il server web nginx oltre ad Apache; questo tutorial copre la configurazione di un server che utilizza Apache, non nginx.

Userò il seguente software:

  • Server Web:Apache 2.2 con PHP 5
  • Server di database:MySQL
  • Server di posta:Postfix con utenti virtuali
  • Server DNS:BIND
  • Server FTP:pureftpd
  • POP3/IMAP:Dovecot
  • Webalizer e AWStats per le statistiche del sito web

Alla fine dovresti avere un sistema che funziona in modo affidabile e facilmente gestibile con il pannello di controllo ISPConfig 3. La seguente guida è per la versione a 64 bit di OpenSUSE.

Voglio dire in primo luogo che questo non è l'unico modo per impostare un tale sistema. Ci sono molti modi per raggiungere questo obiettivo, ma questo è il modo in cui prendo. Non garantisco che questo funzionerà per te!

Avviso:questa guida è per ISPConfig 3.0.1 o versioni successive. Non è adatto per ISPConfig 2.x!

Manuale ISPConfig 3

Per imparare a usare ISPConfig 3, consiglio vivamente di scaricare il manuale ISPConfig 3.

Su circa 300 pagine, copre il concetto alla base di ISPConfig (amministratore, rivenditori, clienti), spiega come installare e aggiornare ISPConfig 3, include un riferimento per tutti i moduli e i campi dei moduli in ISPConfig insieme a esempi di input validi e fornisce tutorial per le attività più comuni in ISPConfig 3. Descrive anche come rendere più sicuro il tuo server e include una sezione per la risoluzione dei problemi alla fine.

App ISPConfig Monitor per Android

Con l'app ISPConfig Monitor, puoi controllare lo stato del tuo server e scoprire se tutti i servizi funzionano come previsto. Puoi controllare le porte TCP e UDP ed eseguire il ping dei tuoi server. Inoltre, puoi utilizzare questa app per richiedere dettagli dai server su cui è installato ISPConfig (tieni presente che la versione minima di ISPConfig 3 installata con supporto per l'app ISPConfig Monitor è 3.0.3.3! ); questi dettagli includono tutto ciò che sai dal modulo Monitor nel pannello di controllo di ISPConfig (ad es. servizi, log di posta e di sistema, coda di posta, informazioni su CPU e memoria, utilizzo del disco, quota, dettagli del sistema operativo, registro RKHunter, ecc.) e ovviamente , poiché ISPConfig è compatibile con più server, puoi controllare tutti i server controllati dal tuo server master ISPConfig.

Per le istruzioni di download e utilizzo, visitare http://www.ispconfig.org/ispconfig-3/ispconfig-monitor-app-for-android/.

1 Requisiti

Per installare un tale sistema avrai bisogno di quanto segue:

  • Il DVD di OpenSUSE 12.2 . Puoi scaricarlo qui:http://download.opensuse.org/distribution/12.2/iso/openSUSE-12.2-DVD-x86_64.iso
  • Una connessione Internet veloce...

2 Nota preliminare

In questo tutorial utilizzo l'hostname server1.example.com con l'indirizzo IP 192.168.0.100 e il gateway 192.168.0.1. Queste impostazioni potrebbero differire per te, quindi devi sostituirle dove appropriato.

3 Il sistema base

Avvia dal tuo DVD OpenSUSE 12.2 e seleziona Installazione:

Seleziona la lingua, il layout della tastiera e accetta i termini della licenza:

Il programma di installazione analizza l'hardware e crea la cache del repository del software:

Seleziona Nuova installazione:

Seleziona la regione e il fuso orario:

Selezioniamo Altro> Selezione server minima (modalità testo) qui poiché vogliamo installare un server senza desktop X-Window. Il sistema X-Window non è necessario per eseguire il server e rallenterebbe il sistema. Effettueremo tutte le attività di amministrazione sulla shell o tramite una connessione SSH, ad es. tramite PuTTY da un desktop remoto.

Fare clic su Modifica configurazione partizione... per modificare le partizioni proposte. Poiché questa è una configurazione del server, abbiamo bisogno di una grande partizione /srv invece della partizione /home:

Il server perfetto - OpenSUSE 12.2 x86_64 (Apache2, Dovecot, ISPConfig 3) - Pagina 2

4 Configura le impostazioni di rete

Usiamo Yast, lo strumento di gestione del sistema OpenSuSE per riconfigurare le impostazioni della scheda di rete. Dopo il primo avvio, il sistema è configurato per ottenere l'indirizzo IP con DHCP. Per un server lo passeremo a un indirizzo IP statico.

Corri

yast2

Seleziona Dispositivi di rete> Impostazioni di rete:

Seleziona la tua scheda di rete e poi Modifica:

Seleziona Indirizzo IP assegnato staticamente e inserisci l'indirizzo IP, la subnet mask e il nome host e salva le modifiche selezionando Avanti:

Ora seleziona Hostname/DNS e inserisci il nome host (es. server1.example.com) e i nameserver (es. 8.8.8.8 e 8.8.4.4):

Ora seleziona Routing e inserisci il gateway predefinito e premi OK:

Per configurare il firewall (se non lo hai configurato durante l'installazione di base), seleziona Sicurezza e utenti> Firewall in Yast:

Voglio installare ISPConfig alla fine di questo tutorial che viene fornito con il proprio firewall. Ecco perché ora disabilito il firewall OpenSUSE predefinito. Naturalmente, sei libero di lasciarlo acceso e configurarlo secondo le tue esigenze (ma in seguito non dovresti usare nessun altro firewall in quanto molto probabilmente interferirà con il firewall di OpenSUSE).

Seleziona Disabilita l'avvio automatico del firewall e Arresta il firewall ora, quindi premi Avanti:

Premi Fine e lascia Yast:

Successivamente, dovresti verificare con

ifconfig

se la configurazione di rete è corretta. In caso contrario (ad esempio, se manca eth0), riavvia il sistema...

reboot

... e controlla di nuovo la configurazione di rete in seguito:ora dovrebbe essere corretta.

5 Installa aggiornamenti

Ora installiamo gli ultimi aggiornamenti dai repository di openSUSE. Corri

zypper update 

E quindi riavvia il server poiché molto probabilmente hai installato anche alcuni aggiornamenti del kernel:

reboot 

6 Installa alcuni pacchetti di base

Corri

zypper install  findutils readline glibc-devel findutils-locate gcc flex lynx compat-readline4 db-devel wget gcc-c++ subversion make vim telnet cron iptables iputils man man-pages nano pico sudo perl-TimeDate

7 quota su journal

Per installare la quota, esegui

zypper install  quota

Modifica /etc/fstab in modo che assomigli a questo (ho aggiunto ,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 ai punti di montaggio / e /srv):

vi /etc/fstab
/dev/disk/by-id/ata-VBOX_HARDDISK_VB1d06c935-e9b5de19-part1 swap                 swap       defaults              0 0
/dev/disk/by-id/ata-VBOX_HARDDISK_VB1d06c935-e9b5de19-part2 /                    ext4       acl,user_xattr,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0        1 1
/dev/disk/by-id/ata-VBOX_HARDDISK_VB1d06c935-e9b5de19-part3 /srv                 ext4       acl,user_xattr,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0        1 2
proc                 /proc                proc       defaults              0 0
sysfs                /sys                 sysfs      noauto                0 0
debugfs              /sys/kernel/debug    debugfs    noauto                0 0
usbfs                /proc/bus/usb        usbfs      noauto                0 0
devpts               /dev/pts             devpts     mode=0620,gid=5       0 0

Quindi esegui:

mount -o remount /
mount -o remount /srv

quotacheck -avugm
quotaon -avug

Non preoccuparti se vedi questi messaggi di errore:sono normali quando esegui quotacheck per la prima volta:

server1:~ # quotacheck -avugm
quotacheck:Scansione /dev/sda2 [/] eseguita
quotacheck:Impossibile stabilire il vecchio file di quota utente:Nessun file o directory di questo tipo
quotacheck:Impossibile stabilire il vecchio gruppo quota file:nessun file o directory di questo tipo
quotacheck:impossibile stabilire il vecchio file di quota dell'utente:nessun file o directory di questo tipo
quotacheck:impossibile stabilire il vecchio file di quota del gruppo:nessun file o directory di questo tipo
quotacheck:Verificate 3872 directory e 32991 file
quotacheck:vecchio file non trovato.
quotacheck:vecchio file non trovato.
quotacheck:scansione /dev/sda3 [/srv] eseguita
quotacheck:Impossibile stabilire il vecchio file di quota utente:nessun file o directory di questo tipo
quotacheck:Impossibile eseguire il controllo del vecchio file di quota del gruppo:nessun file o directory di questo tipo
quotacheck:Impossibile stabilire il file di quota del vecchio utente:nessun file o directory di questo tipo
quotacheck:impossibile stabilire il vecchio file di quota del gruppo:nessun file o directory di questo tipo
quotacheck:6 directory e 0 file selezionati
quotacheck:vecchio file non trovato.
quotacheck:vecchio file non trovato.
ser ver1:~ #

Il server perfetto - OpenSUSE 12.2 x86_64 (Apache2, Dovecot, ISPConfig 3) - Pagina 4

8 Installa Postfix, Dovecot, MySQL

Corri

zypper install  postfix postfix-mysql  mysql-community-server libmysqlclient-devel dovecot21 dovecot21-backend-mysql pwgen cron python

Se ricevi il seguente messaggio, seleziona per disinstallare exim:

Problema: postfix-2.8.11-2.6.1.x86_64 è in conflitto con exim fornito da exim-4.77-2.1.3.x86_64
 Soluzione 1: le seguenti azioni verranno eseguite:
  non installare postfix-2.8 .11-2.6.1.x86_64
  non installare postfix-mysql-2.8.11-2.6.1.x86_64
 Soluzione 2: disinstallazione di exim-4.77-2.1.3.x86_64

Scegli dal sopra soluzioni per numero o salta, riprova o annulla [1/2/s/r/c] (c): <-- 2

Potrebbe anche essere necessario disinstallare patterns-openSUSE-minimal_base-conflicts-12.2-5.5.1.x86_64:

Problema: patterns-openSUSE-minimal_base-conflicts-12.2-5.5.1.x86_64 confligge con python fornito da python-2.7.3-3.6.1.x86_64
 Soluzione 1: disinstallazione di patterns-openSUSE-minimal_base-conflicts- 12.2-5.5.1.x86_64
 Soluzione 2: non installare python-2.7.3-3.6.1.x86_64

Scegli dal sopra soluzioni per numero o salta, riprova o annulla [1 /2/s/r/c] (c): <-- 1

Crea il seguente collegamento simbolico:

ln -s /usr/lib64/dovecot/modules /usr/lib/dovecot

A questo punto ho dovuto riavviare perché altrimenti MySQL si rifiutava di iniziare con l'errore:

Failed to issue method call: Unit mysql.service failed to load: No such file or directory. See system logs and 'systemctl status mysql.service' for details. 
reboot 

Avvia MySQL, Postfix e Dovecot e abilita l'avvio dei servizi all'avvio.

systemctl abilita mysql.service
systemctl avvia mysql.service

systemctl abilita postfix.service
systemctl avvia postfix.service

systemctl abilita dovecot.service
systemctl avvia dovecot.service

Ora installo il pacchetto getmail:

zypper install  getmail

Per proteggere l'installazione di MySQL, eseguire:

mysql_secure_installation

Ora ti verranno poste diverse domande:

server1:~ # mysql_secure_installation




NOTA: L'ESECUZIONE DI TUTTE LE PARTI DI QUESTO SCRIPT È CONSIGLIATA PER TUTTI MySQL
      SERVER IN PRODUZIONE UTILIZZATA! PER FAVORE, LEGGERE ATTENTAMENTE OGNI PASSO!


Per accedere a MySQL per proteggerlo, avremo necessità della password
corrente per l'utente root. Se hai appena installato MySQL e
non hai impostato la password root, la password sarà vuota,
quindi dovresti premere invio qui.

Invio password corrente per root (inserire per nessuno):<-- ENTER
OK, password utilizzata con successo, andando avanti...

L'impostazione della password di root assicura che nessuno possa accedere a MySQL
utente root senza l'autorizzazione appropriata.

Impostare la password root? [S/n] <-- S
Nuova password: <-- yourrootsqlpassword
Reinserire nuova password: <-- yourrootsqlpassword
Password aggiornata con successo!
Ricaricamento delle tabelle dei privilegi. .
 ... Successo!


Per impostazione predefinita, un'installazione MySQL ha un utente anonimo, consentendo a chiunque
di accedere a MySQL senza deve avere un account utente creato per
loro. Questo è destinato solo a test e a rendere l'installazione
andare un po' più agevole. Dovresti rimuoverli prima di trasferirti in un ambiente di produzione.

Rimuovere utenti anonimi? [S/n] <-- S
 ... Successo!

Normalmente, a root dovrebbe essere consentito di connettersi da 'localhost'. Questo
garantisce che qualcuno non riesca a indovinare la password root dalla rete.

Disconsentire l'accesso root da remoto? [S/n] <-- S
 ... Successo!

Per impostazione predefinita, MySQL viene con un database denominato 'test' a cui chiunque può
accedere. Questo è anche destinato solo a test, e dovrebbe essere rimosso
prima di trasferirsi in un ambiente di produzione.

Rimuovere database di test e accedere ad esso? [S/n] <-- S
 - Dropping database di test...
 ... Successo!
 - Rimozione privilegi sul database di test...
 ... Successo !

Ricaricare le tabelle di privilegi garantirà che tutte le modifiche apportate finora
diventeranno immediatamente effettive.

Ricaricare le tabelle privilegi adesso? [S/n] <-- S
 ... Successo!

Pulizia ...



Tutto fatto! Se hai completato tutti i passaggi precedenti, l'installazione di MySQL
dovrebbe essere protetta.

Grazie per utilizzare MySQL!


server1:~ #

Ora la tua configurazione MySQL dovrebbe essere protetta.

9 Amavisd-new, Spamassassin e Clamav

Installa gli antivirus Amavisd-new, Spamassassin e Clamav. Corri

zypper install  amavisd-new clamav clamav-db zoo unzip unrar bzip2 unarj perl-DBD-mysql

Apri /etc/amavisd.conf...

vi /etc/amavisd.conf

... e aggiungi la riga $myhostname con il tuo hostname corretto sotto la riga $mydomain:

[...]
$mydomain = 'example.com';   # a convenient default for other settings
$myhostname = "server1.$mydomain";
[...]

Quindi crea un collegamento simbolico da /var/run/clamav/clamd a /var/lib/clamav/clamd-socket:

mkdir -p /var/run/clamav
ln -s /var/lib/clamav/clamd-socket /var/run/clamav/clamd

OpenSUSE 12.2 ha una directory /run per la memorizzazione dei dati di runtime. /run è ora un tmpfs e /var/run è ora collegato a /run da tmpfs e quindi svuotato al riavvio.

Ciò significa che dopo un riavvio, la directory /var/run/clamav che abbiamo appena creato non esisterà più e quindi clamd non si avvierà. Quindi creiamo ora il file /etc/tmpfiles.d/clamav.conf che creerà questa directory all'avvio del sistema (vedi http://0pointer.de/public/systemd-man/tmpfiles.d.html per maggiori dettagli):

vi /etc/tmpfiles.d/clamav.conf
D /var/run/clamav 0755 root root -

Prima di avviare amavisd e clamd, dobbiamo modificare lo script init /etc/init.d/amavis - Non sono stato in grado di avviare, arrestare e riavviare amavisd in modo affidabile con lo script init predefinito:

vi /etc/init.d/amavis

Commenta le seguenti righe nella sezione di inizio e fine:

[...]
    start)
        # ZMI 20100428 check for stale pid file
        #if test -f $AMAVIS_PID ; then
        #       checkproc -p $AMAVIS_PID amavisd
        #       if test $? -ge 1 ; then
        #               # pid file is stale, remove it
        #               echo -n "(stale amavisd pid file $AMAVIS_PID found, removing. Did amavisd crash?)"
        #               rm -f $AMAVIS_PID
        #       fi
        #fi
        echo -n "Starting virus-scanner (amavisd-new): "
        $AMAVISD_BIN start
        #if ! checkproc amavisd; then
        #    rc_failed 7
        #fi
        rc_status -v
        #if [ "$AMAVIS_SENDMAIL_MILTER" == "yes" ]; then
        #    rc_reset
        #    echo -n "Starting amavis-milter:"
        #    startproc -u vscan $AMAVIS_MILTER_BIN -p $AMAVIS_MILTER_SOCK > /dev/null 2>&1
        #    rc_status -v
        #fi
        ;;
    stop)
        echo -n "Shutting down virus-scanner (amavisd-new): "
        #if checkproc amavisd; then
        #    rc_reset
            $AMAVISD_BIN stop
        #else
        #    rc_reset
        #fi
        rc_status -v
        #if [ "$AMAVIS_SENDMAIL_MILTER" == "yes" ]; then
        #    rc_reset
        #    echo -n "Shutting down amavis-milter: "
        #    killproc -TERM $AMAVIS_MILTER_BIN
        #    rc_status -v
        #fi
        ;;
[...]

Poiché abbiamo modificato lo script init, dobbiamo eseguire

systemctl --system daemon-reload

adesso.

Per abilitare i servizi, eseguire:

systemctl abilita amavis.service
systemctl abilita clamd.service
systemctl avvia amavis.service
systemctl avvia clamd.service

10 Installa il server Web Apache 2 con PHP5, Python, WebDAV

Installa Apache2 e suphp. Corri:

zypper install  apache2 apache2-mod_fcgid

Installa PHP5:

zypper install  php5-bcmath php5-bz2 php5-calendar php5-ctype php5-curl php5-dom php5-ftp php5-gd php5-gettext php5-gmp php5-iconv php5-imap php5-ldap php5-mbstring php5-mcrypt php5-mysql php5-odbc php5-openssl php5-pcntl php5-pgsql php5-posix php5-shmop php5-snmp php5-soap php5-sockets php5-sqlite php5-sysvsem php5-tokenizer php5-wddx php5-xmlrpc php5-xsl php5-zlib php5-exif php5-fastcgi php5-pear php5-sysvmsg php5-sysvshm ImageMagick curl apache2-mod_php5
zypper install http://download.opensuse.org/repositories/server:/php/openSUSE_12.2/x86_64/suphp-0.7.1-5.1.x86_64.rpm

Quindi esegui questi comandi per abilitare i moduli Apache (incluso WebDAV):

a2enmod suexec
a2enmod rewrite
a2enmod ssl
a2enmod azioni
a2enmod suphp
a2enmod fcgid
a2enmod dav
a2enmod dav_fs
a2enmod dav_lock
chown root:www /usr/sbin/suexec2
chmod 4755 /usr/sbin/suexec2

a2enflag SSL

Per aggiungere il supporto per Python, esegui:

zypper install  apache2-mod_python
a2enmod python 

Quindi installiamo phpMyAdmin:

zypper install  phpMyAdmin

Per essere sicuri di poter accedere a phpMyAdmin da tutti i siti web creati tramite ISPConfig in seguito, utilizzando /phpmyadmin (es. http://www.example.com/phpmyadmin) e /phpMyAdmin (es. http://www.example.com/phpMyAdmin) ), apri /etc/apache2/conf.d/phpMyAdmin.conf...

vi /etc/apache2/conf.d/phpMyAdmin.conf

... e aggiungi i seguenti due alias proprio all'inizio:

Alias /phpMyAdmin /srv/www/htdocs/phpMyAdmin
Alias /phpmyadmin /srv/www/htdocs/phpMyAdmin
[...]

Avvia Apache:

systemctl abilita apache2.service
systemctl avvia apache2.service

10.1 PHP-FPM

A partire dalla prossima ISPConfig 3.0.5, ci sarà una modalità PHP aggiuntiva che puoi selezionare per l'utilizzo con Apache:PHP-FPM. Se prevedi di utilizzare questa modalità PHP, ha senso configurare il tuo sistema ora in modo che in seguito, quando esegui l'aggiornamento a ISPConfig 3.0.5, il tuo sistema sia preparato (l'ultima versione di ISPConfig al momento in cui scriviamo è ISPConfig 3.0 .4.6).

Per usare PHP-FPM con Apache, abbiamo bisogno del modulo mod_fastcgi Apache (per favore non confonderlo con mod_fcgid - sono molto simili, ma non puoi usare PHP-FPM con mod_fcgid). Possiamo installare PHP-FPM e mod_fastcgi come segue:

mod_fastcgi è disponibile da un repository di terze parti che possiamo abilitarlo come segue:

zypper --gpg-auto-import-keys addrepo --name "Third-party modules for the Apache HTTP server. (Apache_openSUSE_12.2)" http://download.opensuse.org/repositories/Apache:/Modules/Apache_openSUSE_12.2/ apache-third-party-12.2

Successivamente installiamo mod_fastcgi e PHP-FPM:

zypper install  apache2-mod_fastcgi php5-fpm

Sfortunatamente c'è un bug nel pacchetto apache2-mod_fastcgi che non permette l'uso della direttiva FastCgiExternalServer all'interno di una sezione (vedi Come costruire mod_fastcgi per Apache2 su OpenSUSE 12.2). Ecco perché dobbiamo ricostruire mod_fastcgi:

zypper install apache2-devel

wget http://www.fastcgi.com/dist/mod_fastcgi-2.4.6.tar.gz
tar xvfz mod_fastcgi-2.4.6.tar.gz
cd mod_fastcgi-2.4.6/
cp Makefile.AP2 Makefile

ln -s /usr/include/apache2-worker/mpm.h /usr/include/apache2/
make top_dir=/usr/share/apache2
make top_dir=/usr/share/apache2 install

Prima di avviare PHP-FPM, rinomina /etc/php5/fpm/php-fpm.conf.default in /etc/php5/fpm/php-fpm.conf:

mv /etc/php5/fpm/php-fpm.conf.default /etc/php5/fpm/php-fpm.conf

Modifica i permessi della directory di sessione di PHP:

chmod 1733 /var/lib/php5 

Quindi apri /etc/php5/fpm/php-fpm.conf...

vi /etc/php5/fpm/php-fpm.conf

... e cambia error_log in /var/log/php-fpm.log:

[...]
error_log = /var/log/php-fpm.log
[...]

Non esiste un file php.ini per PHP-FPM in OpenSUSE 12.2, quindi copiamo la CLI php.ini:

cp /etc/php5/cli/php.ini /etc/php5/fpm/

Quindi apri /etc/php5/fpm/php.ini...

vi /etc/php5/fpm/php.ini

... e imposta cgi.fix_pathinfo su 0:

[...]
; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI.  PHP's
; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok
; what PATH_INFO is.  For more information on PATH_INFO, see the cgi specs.  Setting
; this to 1 will cause PHP CGI to fix its paths to conform to the spec.  A setting
; of zero causes PHP to behave as before.  Default is 1.  You should fix your scripts
; to use SCRIPT_FILENAME rather than PATH_TRANSLATED.
; http://php.net/cgi.fix-pathinfo
cgi.fix_pathinfo=0
[...]

Quindi crea i collegamenti di avvio del sistema per php-fpm e avvialo:

systemctl abilita php-fpm.service
systemctl avvia php-fpm.service

PHP-FPM è un processo demone che esegue un server FastCGI sulla porta 9000, come puoi vedere nell'output di

netstat -tapn

server1:~ # netstat -tapn
Connessioni Internet attive (server e stabilite)
Proto Recv-Q Send-Q Indirizzo locale           Indirizzo estero         Stato       PID/nome del programma
tcp        0      0:0.0:80 0.0.0.0:* ASCOLTA 2329 /nginx
TCP 0 0 0.0.0.0:22 0.0.0.0:* ASCOLTA 1204 /SSHD
TCP 0 0 127.0.1:9000 0.0.0.0.0 :* Ascolta 2511 /php-fpm.conf)
TCP 0 0 0.0.0.0:3306 0.0.0.0:* Ascolta 2059 /Mysqld
TCP 0 0 192.168.0.100:22 192.168.0.199:1632 Istituito 1284/0
tcp        0      0 :::22                  :::*                  ASCOLTA      1204/sshd
server1:~ #

Quindi abilita i seguenti moduli Apache...

a2enmod actions
a2enmod fastcgi
a2enmod alias

... e riavvia Apache:

systemctl restart apache2.service

Il server perfetto - OpenSUSE 12.2 x86_64 (Apache2, Dovecot, ISPConfig 3) - Pagina 5

11 Installa PureFTPd

Installa il demone FTP pure-ftpd. Corri:

zypper install  pure-ftpd

systemctl abilita pure-ftpd.service
systemctl avvia pure-ftpd.service

Ora configuriamo PureFTPd per consentire sessioni FTP e TLS. FTP è un protocollo molto insicuro perché tutte le password e tutti i dati vengono trasferiti in chiaro. Utilizzando TLS, l'intera comunicazione può essere crittografata, rendendo così l'FTP molto più sicuro.

OpenSSL è necessario per TLS; per installare OpenSSL, eseguiamo semplicemente:

zypper install  openssl

Apri /etc/pure-ftpd/pure-ftpd.conf...

vi /etc/pure-ftpd/pure-ftpd.conf

Se vuoi consentire FTP e Sessioni TLS, imposta TLS su 1:

[...]
# This option can accept three values :
# 0 : disable SSL/TLS encryption layer (default).
# 1 : accept both traditional and encrypted sessions.
# 2 : refuse connections that don't use SSL/TLS security mechanisms,
#     including anonymous sessions.
# Do _not_ uncomment this blindly. Be sure that :
# 1) Your server has been compiled with SSL/TLS support (--with-tls),
# 2) A valid certificate is in place,
# 3) Only compatible clients will log in.

TLS                      1
[...]

Se desideri accettare solo sessioni TLS (senza FTP), imposta TLS su 2:

[...]
# This option can accept three values :
# 0 : disable SSL/TLS encryption layer (default).
# 1 : accept both traditional and encrypted sessions.
# 2 : refuse connections that don't use SSL/TLS security mechanisms,
#     including anonymous sessions.
# Do _not_ uncomment this blindly. Be sure that :
# 1) Your server has been compiled with SSL/TLS support (--with-tls),
# 2) A valid certificate is in place,
# 3) Only compatible clients will log in.

TLS                      2
[...]

Per non consentire affatto TLS (solo FTP), impostare TLS su 0:

[...]
# This option can accept three values :
# 0 : disable SSL/TLS encryption layer (default).
# 1 : accept both traditional and encrypted sessions.
# 2 : refuse connections that don't use SSL/TLS security mechanisms,
#     including anonymous sessions.
# Do _not_ uncomment this blindly. Be sure that :
# 1) Your server has been compiled with SSL/TLS support (--with-tls),
# 2) A valid certificate is in place,
# 3) Only compatible clients will log in.

TLS                      0
[...]

Per utilizzare TLS, dobbiamo creare un certificato SSL. Lo creo in /etc/ssl/private/, quindi creo prima quella directory:

mkdir -p /etc/ssl/private/

Successivamente, possiamo generare il certificato SSL come segue:

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

Nome del Paese (codice di 2 lettere) [AU]:<-- Inserisci il nome del tuo Paese (ad es. "DE").
Nome Stato o Provincia (nome completo) [Stato-Stato]:<-- Inserisci il tuo Stato o nome della provincia.
Nome località (ad es. città) []:<-- Inserisci la tua città.
Nome organizzazione (ad es. azienda) [Internet Widgits Pty Ltd]:<-- Inserisci il nome dell'organizzazione (ad es. il nome della tua azienda).
Nome dell'unità organizzativa (ad es. sezione) []:<-- Inserisci il nome dell'unità organizzativa (ad es. "Dipartimento IT").
Nome comune (ad es. IL TUO nome) []:<-- Inserisci il nome di dominio completo del sistema (ad es. "server1.example.com").
Indirizzo e-mail []:<-- Inserisci il tuo indirizzo e-mail.

Modifica le autorizzazioni del certificato SSL:

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

Infine riavvia PureFTPd:

systemctl restart pure-ftpd.service 

Questo è tutto. Ora puoi provare a connetterti usando il tuo client FTP; tuttavia, dovresti configurare il tuo client FTP per utilizzare TLS - vedi il prossimo capitolo come farlo con FileZilla.

12 Installa BIND

Il server dei nomi BIND può essere installato come segue:

zypper install  bind

Crea i link di avvio del sistema BIND e avvialo:

systemctl abilita named.service
systemctl avvia named.service

13 Installa Webalizer e AWStats

Poiché ISPConfig 3 ti consente di scegliere se desideri utilizzare Webalizer o AWStats per creare le statistiche del tuo sito Web, installiamo entrambi:

zypper install  webalizer perl-DateManip
zypper install http://download.opensuse.org/repositories/network:/utilities/openSUSE_12.2/noarch/awstats-7.0-14.1.noarch.rpm

14 Installa fail2ban

fail2ban può essere installato come segue:

zypper install  fail2ban

15 Installa Jailkit

Jailkit può essere installato in questo modo:

zypper install http://download.opensuse.org/repositories/security/openSUSE_12.2/x86_64/jailkit-2.13-1.3.x86_64.rpm

16 Sincronizzare l'orologio di sistema

Se desideri sincronizzare l'orologio di sistema con un server NTP, procedi come segue:

zypper install  xntp

Quindi aggiungi i collegamenti di avvio del sistema per ntp e avvia ntp:

systemctl abilita ntp.service
systemctl avvia ntp.service

17 Installa rkhunter

rkhunter può essere installato come segue:

zypper install  rkhunter

18 Installa SquirrelMail

Per installare il client webmail di SquirrelMail, esegui:

zypper install  squirrelmail-beta

Quindi creiamo gli alias /webmail e /squirrelmail proprio all'inizio di /etc/apache2/conf.d/squirrelmail.conf in modo che sia possibile accedere a SquirrelMail da qualsiasi vhost (ad esempio http://www.example.com/webmail o http://www.example.com/squirrelmail):

vi /etc/apache2/conf.d/squirrelmail.conf
Alias /squirrelmail /srv/www/htdocs/squirrelmail
Alias /webmail /srv/www/htdocs/squirrelmail
[...]

Quindi creiamo la directory /srv/www/htdocs/squirrelmail/data e gli diamo autorizzazioni sufficienti in modo che il gruppo www possa scriverci:

mkdir /srv/www/htdocs/squirrelmail/data
chown root:www /srv/www/htdocs/squirrelmail/data
chmod 770 /srv/www/htdocs/squirrelmail/data

Quindi riavvia Apache:

systemctl restart apache2.service

Quindi configura SquirrelMail:

/srv/www/htdocs/squirrelmail/config/conf.pl

Dobbiamo dire a SquirrelMail che stiamo usando Dovecot:

ATTENZIONE:
  Il file "config/config.php" è stato trovato, ma è per
  una versione precedente di SquirrelMail. È possibile ancora
  leggere i predefiniti da questo file ma tieni informato che molte
  preferenze cambiano tra le versioni. Si raccomanda di
  iniziare con un config.php pulito per ogni aggiornamento che fai
 . Per fare questo, spostare config/config.php fuori distanza.

Continuare il caricamento con il vecchio config.php [y/N]? <-- y

Vuoi che smetta di avvisarti [y/N]? <-- y

Configurazione di SquirrelMail : Leggi: config.php (1.5.0)
------- ------------------------------------
Menu principale --
1. Preferenze dell'organizzazione
2. Impostazioni server
3. Cartella predefinita
4. Opzioni generali
5. Interfaccia utente
6. Rubriche di indirizzi
7. Messaggio del giorno (MOTD)
8. Plugin
9. Database
10. Impostazioni della lingua
11. Modifiche

D. Imposta impostazioni predefinite per server IMAP specifici

C   Attiva colore
S   Salva dati
Q   Esci

Comando >> <-- D


Configurazione di SquirrelMail : Leggi: config.php
---------------------------------------- ------------------------------
Mentre abbiamo costruito SquirrelMail, abbiamo scoperto alcune
preferenze che funzionano meglio con alcuni server che non funzionano quindi
bene con altri. Se seleziona il server IMAP, questa opzione verrà
imposta alcune impostazioni predefinite per quel server.

Tieni nota che dovrai sempre andare attraverso e assicurarti
tutto è corretto. Questo non cambia tutto. Ci sono
solo alcune impostazioni che verranno modificate.

Seleziona il server IMAP:
    bincimap    =server Bincimap IMAP
    courier     ==server IMAP Courier
    cyrus       = Cyrus IMAP server
    dovecot     = Dovecot Secure IMAP server
    exchange    = Microsoft Exchange IMAP server
    hmailserver = hMailServer
    macosx      = Mac OS X Mailserver
    mercury32   = Mercury /32
    uw          = server IMAP dell'Università di Washington
    gmail       =accesso IMAP agli account di posta di Google (Gmail)

    chiudi        = Non cambiare nulla

Comando >> <-- dovecot


SquirrelMail Configuration : Leggi: config.php
------------------- --------------------------------------
Mentre abbiamo costruito SquirrelMail, noi hanno scoperto alcune
preferenze che funzionano meglio con alcuni server che non funzionano quindi
bene con altri. Se seleziona il server IMAP, questa opzione verrà
imposta alcune impostazioni predefinite per quel server.

Tieni nota che dovrai sempre andare attraverso e assicurarti
tutto è corretto. Questo non cambia tutto. Ci sono
solo alcune impostazioni che verranno modificate.

Seleziona il server IMAP:
    bincimap    =server Bincimap IMAP
    courier     ==server IMAP Courier
    cyrus       = Cyrus IMAP server
    dovecot     = Dovecot Secure IMAP server
    exchange    = Microsoft Exchange IMAP server
    hmailserver = hMailServer
    macosx      = Mac OS X Mailserver
    mercury32   = Mercury /32
    uw          = server IMAP dell'Università di Washington
    gmail       =accesso IMAP agli account di posta di Google (Gmail)

    chiudi        = Non cambiare nulla

Comando>> dovecot

imap_server_type =dovecot
default_folder_prefix =
cush_folder =cestt = false
         default_sub_of_inbox = false
show_contain_subfolders_op tion = false
            optional_delimiter = rileva
                 delete_folder = false
      force_username_lowercase = true

Premi invio per continuare... <-- ENTER


Configurazione di SquirrelMail : Leggi: config.php (1.5.0)
----------------------------------------- -----------------------------
Menu principale --
1. Preferenze dell'organizzazione
2. Impostazioni server
3. Cartella predefinita
4. Opzioni generali
5. Interfaccia utente
6. Rubriche di indirizzi
7. Messaggio del giorno (MOTD)
8. Plugin
9. Database
10. Impostazioni della lingua
11. Modifiche

D. Imposta impostazioni predefinite per server IMAP specifici

C   Attiva colore
S   Salva dati
Q   Esci

Comando >> <-- S


SquirrelMail Configuration : Leggi: config.php (1.5.0)
---------------------- -----------------------------------
Menu principale --
1. Preferenze dell'organizzazione
2. Impostazioni server
3. Cartella predefinita
4. Opzioni generali
5. Interfaccia utente
6. Rubriche di indirizzi
7. Messaggio del giorno (MOTD)
8. Plugin
9. Database
10. Impostazioni della lingua
11. Modifiche

D. Imposta impostazioni predefinite per server IMAP specifici

C   Attiva colore
S   Salva dati
Q   Esci

Comando >> S

Dati salvati in config.php



Attivazione dei plugin completata; dati di registrazione salvati in plugin_hooks.php

Premi invio per continuare... <-- INVIO


Configurazione di SquirrelMail : Leggi: config.php (1.5.0 )
--------------------------------------------- ------------
Menu principale --
1. Preferenze dell'organizzazione
2. Impostazioni server
3. Cartella predefinita
4. Opzioni generali
5. Interfaccia utente
6. Rubriche di indirizzi
7. Messaggio del giorno (MOTD)
8. Plugin
9. Database
10. Impostazioni della lingua
11. Modifiche

D. Imposta impostazioni predefinite per server IMAP specifici

C   Attiva colore
S   Salva dati
Q   Esci

Comando >> <-- Q

Dopo aver creato un sito Web in ISPConfig, puoi accedere a SquirrelMail utilizzando gli alias /webmail o /squirrelmail:

Il server perfetto - OpenSUSE 12.2 x86_64 (Apache2, Dovecot, ISPConfig 3) - Pagina 6

19 Configurazione ISP 3

Prima di installare ISPConfig 3, assicurati che la directory /var/vmail/ esista:

mkdir /var/vmail/

Scarica la versione corrente di ISPConfig 3 e installala. Il programma di installazione di ISPConfig configurerà per te tutti i servizi come Postfix, Dovecot, ecc. Non è più necessaria una configurazione manuale come richiesto per ISPConfig 2.

Ora hai anche la possibilità di consentire all'installatore di creare un vhost SSL per il pannello di controllo di ISPConfig, in modo che sia possibile accedere a ISPConfig utilizzando https:// invece di http://. Per ottenere ciò, premi semplicemente INVIO quando vedi questa domanda:Vuoi una connessione sicura (SSL) all'interfaccia web di ISPConfig (y,n) [y]:.

cd /tmp
wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar xfz ISPConfig-3-stable.tar.gz
cd ispconfig3_install /installa/

Ora avvia il processo di installazione eseguendo:

php -q install.php

server1:/tmp/ispconfig3_install/install # php -q install.php


----------------------- -------------------------------------------------- -------
 _____ ___________   _____              __ _         ____
||_   _/  ___| ___ \ /  __ \            / _(_)       /__  \
  | | \ `--.| |_/ / | /  \/ ___  _ __ | |_ _  __ _    _/ /
  | | `--. \  __/  | | / _ \| '_ \| _| |/ _` | |_ |
 _| |_/\__/ / | | \__/\ (_) | | | | | | | (_| | ___\ \
 \___/\____/\_|     \____/\___/|_| |_|_| |_|\__, | \____/
                                                                                __/ |
                                           |___/
------------------------------------- -------------------------------------------


>> Configurazione iniziale

Sistema operativo: openSUSE o compatibile, versione sconosciuta.

    Di seguito saranno qualche domande per la configurazione primaria quindi fai attenzione.
    I valori predefiniti sono tra [parentesi] e possono essere accettati con .
    Tocca "chiudi" (senza virgolette) per interrompere il programma di installazione.


Seleziona lingua (en,de) [en]: <-- ENTER

Modalità di installazione (standard, esperto) [standard]: <-- ENTER

Nome host completo qualificato (FQDN) del server, es server1.domain.tld  [server1.example.com]: <-- ENTER

nome host server MySQL [localhost]: <-- ENTER

MySQL nome utente root [root]: <-- ENTER

password root MySQL []: <-- yourrootsqlpassword

database MySQL per creare [dbispconfig]: <-- ENTER

charset MySQL [utf8]: <-- ENTER

Generazione di una chiave privata RSA a 2048 bit
............................ ................++++
................................ ......................++++
scrittura nuova chiave privata in 'smtpd.key'
-----
Stai per essere chiesto di inserire le informazioni che saranno incorporate
nella richiesta di certificato.
Quello che stai per inserire è quello che viene chiamato un nome distinto o un DN.
Lì sono pochi campi ma puoi lasciare alcuni vuoti
Per alcuni campi ci sarà un valore predefinito,
Se inserisci '.', il campo rimarrà vuoto.
--- --
Paese (codice di 2 lettere) [AU]: <-- ENTER
Stato o Provincia Nome (nome completo) [Stato-Stato]: <-- ENTER
Località Nome ( ad esempio, città) []: <-- ENTER
Nome dell'organizzazione (ad esempio azienda) [Internet Widgits Pty Ltd]: <-- ENTER
Nome dell'unità organizzativa (ad esempio, setta ion) []: <-- ENTER
Nome comune (ad es. IL TUO nome) []: <-- ENTER
Indirizzo e-mail []: <-- ENTER
Configurazione Jailkit
Configurazione Dovecot
Configurazione Spamassassin
Configurazione Amavisd
Configurazione Getmail
Configurazione Pureftpd
Configurazione BIND
Configurazione Apache
Configurazione Vlogger
Configurazione Apps vhost
Configurazione Bastille Firewall
Configurazione Fail2ban
Installazione ISPConfig
ISPConfig Port [8080]: <-- ENTER

Vuoi un protetto (SSL ) connessione all'interfaccia web ISPConfig (y,n) [y]: <-- ENTER

Generazione chiave privata RSA, modulo lungo 4096 bit
........+ +
................................................++
e è 65537 (0x10001)
Stai per essere chiesto di inserire informazioni che saranno incorporate
nella richiesta di certificato.
Quello che stai per inserire è quello che viene chiamato un nome distinto o un DN .
Ci sono alcuni campi ma puoi lasciare alcuni vuoti
Per alcuni campi ci sarà un valore predefinito,
Se inserisci '.', il campo rimarrà vuoto.
-----
Nome del paese (codice di 2 lettere) [AU]:<-- ENTER
Stato o Provincia (nome completo) [Stato-Stato]: <-- ENTER
Nome località (ad esempio città) []: <-- ENTER
Nome organizzazione (ad es. azienda) [Internet Widgits Pty Ltd]: <-- ENTER
Nome dell'unità organizzativa (ad es. sezione) []: <-- ENTER
Nome comune (ad es. IL TUO nome) []:<-- INVIO
Indirizzo e-mail []: <-- INVIO

Inserisci i seguenti attributi 'extra'
da inviare con la richiesta di certificato
Una sfida password []: <-- ENTER
Un nome di azienda opzionale []: <-- ENTER
scrittura chiave RSA
Configurazione DBServer
Installazione ISPConfig crontab
no crontab per root
no crontab per getmail
Riavvio servizi ...
reindirizzamento a systemctl
reindirizzamento a systemctl
reindirizzamento a systemctl
reindirizzamento a systemctl
reindirizzamento a systemctl
reindirizzamento a systemc tl
reindirizzamento a systemctl
reindirizzamento a systemctl
Installazione completata.
server1:/tmp/ispconfig3_install/install #

Pulisci la directory /tmp:

cd /tmp
rm -rf /tmp/ispconfig3_install
rm -f /tmp/ISPConfig-3-stable.tar.gz

Apri /etc/suphp.conf...

vi /etc/suphp.conf

... e assicurati che contenga x-httpd-suphp="php:/srv/www/cgi-bin/php" invece di x-httpd-suphp="php:/srv/www/cgi-bin/php5 " verso la fine del file:

[...]
[handlers]
;Handler for php-scripts
x-httpd-suphp="php:/srv/www/cgi-bin/php"
[...]

Successivamente puoi accedere a ISPConfig 3 in http(s)://server1.example.com:8080/ o http(s)://192.168.0.100:8080/ (http o https dipende da cosa hai scelto durante l'installazione). Accedi con il nome utente admin e la password admin (dovresti cambiare la password predefinita dopo il primo accesso):

19.1 Manuale di ISPConfig 3

Per imparare a usare ISPConfig 3, consiglio vivamente di scaricare il manuale ISPConfig 3.

Su circa 300 pagine, copre il concetto alla base di ISPConfig (amministratore, rivenditori, clienti), spiega come installare e aggiornare ISPConfig 3, include un riferimento per tutti i moduli e i campi dei moduli in ISPConfig insieme a esempi di input validi e fornisce tutorial per le attività più comuni in ISPConfig 3. Descrive anche come rendere più sicuro il tuo server e include una sezione per la risoluzione dei problemi alla fine.

19.2 App ISPConfig Monitor per Android

Con l'app ISPConfig Monitor, puoi controllare lo stato del tuo server e scoprire se tutti i servizi funzionano come previsto. Puoi controllare le porte TCP e UDP ed eseguire il ping dei tuoi server. In aggiunta a ciò, puoi utilizzare questa app per richiedere dettagli dai server su cui è installato ISPConfig (tieni presente che la versione minima di ISPConfig 3 installata con supporto per l'app ISPConfig Monitor è 3.0.3.3! ); questi dettagli includono tutto ciò che sai dal modulo Monitor nel pannello di controllo di ISPConfig (ad es. servizi, log di posta e di sistema, coda di posta, informazioni su CPU e memoria, utilizzo del disco, quota, dettagli del sistema operativo, registro RKHunter, ecc.) e ovviamente , poiché ISPConfig è compatibile con più server, puoi controllare tutti i server controllati dal tuo server master ISPConfig.

Per le istruzioni di download e utilizzo, visitare http://www.ispconfig.org/ispconfig-3/ispconfig-monitor-app-for-android/.

  • OpenSUSE:http://www.opensuse.org/
  • Configurazione ISP:http://www.ispconfig.org/

Panels
  1. Il server perfetto – CentOS 7 (Apache2, Dovecot, ISPConfig 3)

  2. Il server perfetto - OpenSUSE 12.3 x86_64 (Apache2, Dovecot, ISPConfig 3)

  3. Il server perfetto - OpenSUSE 12.3 x86_64 (nginx, Dovecot, ISPConfig 3)

  4. Il server perfetto - Fedora 15 x86_64 [ISPConfig 3]

  5. Il server perfetto - CentOS 6.1 x86_64 con Apache2 [ISPConfig 3]

Il server perfetto - CentOS 6.3 x86_64 (Apache2, Courier, ISPConfig 3)

Il server perfetto - Ubuntu 13.04 (Apache2, BIND, Dovecot, ISPConfig 3)

Il server perfetto - CentOS 6.4 x86_64 (nginx, Dovecot, ISPConfig 3)

Il server perfetto - CentOS 6.4 x86_64 (Apache2, Dovecot, ISPConfig 3)

Il server perfetto - Debian Wheezy (Apache2, BIND, Dovecot, ISPConfig 3)

Il server perfetto - CentOS 7 x86_64 (nginx, Dovecot, ISPConfig 3)