GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Il server perfetto - Ubuntu 15.04 (Vivid Vervet) con Apache, PHP, MySQL, PureFTPD, BIND, Postfix, Dovecot e ISPConfig 3

Questo tutorial esiste per queste versioni del sistema operativo

  • Ubuntu 20.04 (Fossa Focale)
  • Ubuntu 18.04 (castoro bionico)
  • Ubuntu 17.10 (Artful Aardvark)
  • Ubuntu 17.04 (Zesty Zapus)
  • Ubuntu 16.10 (Yakkety Yak)
  • Ubuntu 16.04 (Xenial Xerus)

In questa pagina

  1. Manuale ISPConfig 3
  • 1. Nota preliminare
  • 2. Modifica /etc/apt/sources.list e aggiorna la tua installazione Linux
  • 3. Modifica la shell predefinita
  • 4. Disattiva AppArmor
  • 5. Sincronizza l'orologio di sistema
  • 6. Installa Postfix, Dovecot, MariaDB, phpMyAdmin, rkhunter, binutils
  • 7. Installa Amavisd-new, SpamAssassin e Clamav
  • Questo tutorial mostra l'installazione di un server server di hosting Web Ubuntu 15.04 (Vivid Vervet) con Apache2, Postfix, Dovecot, Bind e PureFTPD per prepararlo all'installazione di ISPConfig 3. Il sistema risultante fornirà un Web, Mail, Mailinglist, DNS e server FTP.

    ISPConfig 3 è un pannello di controllo del webhosting che permette di configurare i seguenti servizi tramite un browser web:server web Apache o nginx, server di posta Postfix, server Courier o Dovecot IMAP/POP3, server dei nomi MySQL, BIND o MyDNS, PureFTPd, SpamAssassin, ClamAV , e tanti altri. Questa configurazione copre l'installazione di Apache (anziché nginx), BIND (anziché MyDNS) e Dovecot (anziché Courier).

    Manuale ISPConfig 3

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

    Su più di 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.

    1. 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. Prima di procedere oltre è necessario disporre di un'installazione minima di base di Ubuntu 15.04 come spiegato nel tutorial.

    2. Modifica /etc/apt/sources.list e aggiorna la tua installazione Linux

    Modifica /etc/apt/sources.list. Commenta o rimuovi il CD di installazione dal file e assicurati che i repository Universe e Multiverse siano abilitati. In seguito dovrebbe apparire così:

    nano /etc/apt/sources.list
    #

    # deb cdrom:[Ubuntu-Server 15.04 _Vivid Vervet_ - Release amd64 (20150422)]/ vivid main restricted

    #deb cdrom:[Ubuntu-Server 15.04 _Vivid Vervet_ - Release amd64 (20150422)]/ vivid main restricted

    # See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
    # newer versions of the distribution.
    deb http://de.archive.ubuntu.com/ubuntu/ vivid main restricted
    deb-src http://de.archive.ubuntu.com/ubuntu/ vivid main restricted

    ## Major bug fix updates produced after the final release of the
    ## distribution.
    deb http://de.archive.ubuntu.com/ubuntu/ vivid-updates main restricted
    deb-src http://de.archive.ubuntu.com/ubuntu/ vivid-updates main restricted

    ## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
    ## team. Also, please note that software in universe WILL NOT receive any
    ## review or updates from the Ubuntu security team.
    deb http://de.archive.ubuntu.com/ubuntu/ vivid universe
    deb-src http://de.archive.ubuntu.com/ubuntu/ vivid universe
    deb http://de.archive.ubuntu.com/ubuntu/ vivid-updates universe
    deb-src http://de.archive.ubuntu.com/ubuntu/ vivid-updates universe

    ## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
    ## team, and may not be under a free licence. Please satisfy yourself as to
    ## your rights to use the software. Also, please note that software in
    ## multiverse WILL NOT receive any review or updates from the Ubuntu
    ## security team.
    deb http://de.archive.ubuntu.com/ubuntu/ vivid multiverse
    deb-src http://de.archive.ubuntu.com/ubuntu/ vivid multiverse
    deb http://de.archive.ubuntu.com/ubuntu/ vivid-updates multiverse
    deb-src http://de.archive.ubuntu.com/ubuntu/ vivid-updates multiverse

    ## N.B. software from this repository may not have been tested as
    ## extensively as that contained in the main release, although it includes
    ## newer versions of some applications which may provide useful features.
    ## Also, please note that software in backports WILL NOT receive any review
    ## or updates from the Ubuntu security team.
    deb http://de.archive.ubuntu.com/ubuntu/ vivid-backports main restricted universe multiverse
    deb-src http://de.archive.ubuntu.com/ubuntu/ vivid-backports main restricted universe multiverse

    deb http://security.ubuntu.com/ubuntu vivid-security main restricted
    deb-src http://security.ubuntu.com/ubuntu vivid-security main restricted
    deb http://security.ubuntu.com/ubuntu vivid-security universe
    deb-src http://security.ubuntu.com/ubuntu vivid-security universe
    deb http://security.ubuntu.com/ubuntu vivid-security multiverse
    deb-src http://security.ubuntu.com/ubuntu vivid-security multiverse

    ## Uncomment the following two lines to add software from Canonical's
    ## 'partner' repository.
    ## This software is not part of Ubuntu, but is offered by Canonical and the
    ## respective vendors as a service to Ubuntu users.
    # deb http://archive.canonical.com/ubuntu vivid partner
    # deb-src http://archive.canonical.com/ubuntu vivid partner

    Quindi esegui

    apt-get update

    per aggiornare il database del pacchetto apt e

    apt-get upgrade

    per installare gli ultimi aggiornamenti (se presenti). Se vedi che un nuovo kernel viene installato come parte degli aggiornamenti, dovresti riavviare il sistema in seguito:

    reboot

    3. Modifica la shell predefinita

    /bin/sh è un collegamento simbolico a /bin/dash, tuttavia abbiamo bisogno di /bin/bash, non di /bin/dash. Pertanto facciamo questo:

    dpkg-reconfigure dash

    Utilizzare dash come shell di sistema predefinita (/bin/sh)? <-- No

    In caso contrario, l'installazione di ISPConfig avrà esito negativo.

    4. Disattiva AppArmor

    AppArmor è un'estensione di sicurezza (simile a SELinux) 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 AppArmor stava causando il problema). Pertanto lo disabilito (questo è un must se vuoi installare ISPConfig in un secondo momento).

    Possiamo disabilitarlo in questo modo:

    service apparmor stop 
    update-rc.d -f apparmor remove
    apt-get remove apparmor apparmor-utils

    5. Sincronizza l'orologio di sistema

    È una buona idea sincronizzare l'orologio di sistema con un NTP (n rete t ora p rotocol) su Internet quando si esegue un server fisico. Nel caso in cui tu esegua un server virtuale, dovresti saltare questo passaggio. Corri

    apt-get install ntp ntpdate

    e l'ora del tuo sistema sarà sempre sincronizzata.

    6. Installa Postfix, Dovecot, MariaDB, phpMyAdmin, rkhunter, binutils

    Per installare postfix dobbiamo assicurarci che sendmail non sia installato e funzionante. Per interrompere e rimuovere sendmail esegui questo comando:

    service sendmail stop; update-rc.d -f sendmail remove

    Il messaggio di errore:

    Failed to stop sendmail.service: Unit sendmail.service not loaded.

    Va bene, significa solo che sendmail non è stato installato, quindi non c'era nulla da rimuovere.

    Ora possiamo installare Postfix, Dovecot, MariaDB (come sostituto di MySQL), rkhunter e binutils con un solo comando:

    apt-get install postfix postfix-mysql postfix-doc mariadb-client mariadb-server openssl getmail4 rkhunter binutils dovecot-imapd dovecot-pop3d dovecot-mysql dovecot-sieve sudo

    Ti verranno poste le seguenti domande:

    Create a self-signed SSL certificate? <-- yes
    Host name: <-- server1.example.com
    General type of mail configuration: <-- Internet Site
    System mail name: <-- server1.example.com

    Quindi apri le porte TLS/SSL e di invio in Postfix:

    nano /etc/postfix/master.cf

    Decommenta le sezioni di invio e smtps come segue:aggiungi la riga -o smtpd_client_restrictions=permit_sasl_authenticated, rifiuta entrambe le sezioni e lascia tutto successivamente commentato:

    [...]
    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=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=permit_sasl_authenticated,reject
    #  -o milter_macro_daemon_name=ORIGINATING
    [...]

    Riavvia Postfix in seguito:

    service postfix restart

    Vogliamo che MySQL ascolti su tutte le interfacce, non solo su localhost, quindi modifichiamo /etc/mysql/my.cnf e commentiamo la riga bind-address =127.0.0.1:

    nano /etc/mysql/mariadb.conf.d/mysqld.cnf
    [...]
    # 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
    [...]

    Ora impostiamo una password di root in MariaDB. Corri:

    mysql_secure_installation

    Ti verranno poste queste domande:

    Enter current password for root (enter for none): <-- press enter
    Set root password? [Y/n] <-- y
    New password: <-- Enter the new MariaDB root password here
    Re-enter new password: <-- Repeat the password
    Remove anonymous users? [Y/n] <-- y
    Disallow root login remotely? [Y/n] <-- y
    Reload privilege tables now? [Y/n] <-- y

    Quindi riavviamo MariaDB:

    service mysql restart

    Ora controlla che la rete sia abilitata. Corri

    netstat -tap | grep mysql

    L'output dovrebbe essere simile a questo:

    [email protected]:~# netstat -tap | grep mysql
    tcp        0      0 *:mysql                 *:*                     LISTEN      24603/mysqld    
    [email protected]:~# 

    7. Installa Amavisd-new, SpamAssassin e Clamav

    Per installare amavisd-new, SpamAssassin e ClamAV, eseguiamo

    apt-get install 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

    La configurazione di ISPConfig 3 utilizza amavisd che carica internamente la libreria dei filtri SpamAssassin, quindi possiamo fermare SpamAssassin per liberare un po' di RAM:

    service spamassassin stop 
    update-rc.d -f spamassassin remove

    Modifica il file di configurazione del clamd:

    nano /etc/clamav/clamd.conf

    e cambia la riga:

    AllowSupplementaryGroups false

    a:

    AllowSupplementaryGroups true 

    E salva il file. Per iniziare usa clamav

    freshclam
    service clamav-daemon start


    Ubuntu
    1. Il server perfetto - Ubuntu 15.10 (Wily Werewolf) con Apache, PHP, MySQL, PureFTPD, BIND, Postfix, Dovecot e ISPConfig 3

    2. Il server perfetto - Ubuntu 15.10 (nginx, MySQL, PHP, Postfix, BIND, Dovecot, Pure-FTPD e ISPConfig 3)

    3. Il server perfetto - Ubuntu 16.10 (Yakkety Yak) con Apache, PHP, MySQL, PureFTPD, BIND, Postfix, Dovecot e ISPConfig 3.1

    4. Il server perfetto - Ubuntu 17.04 (Zesty Zapus) con Apache, PHP, MySQL, PureFTPD, BIND, Postfix, Dovecot e ISPConfig 3.1

    5. Il server perfetto - Ubuntu 17.10 (Artful Aardvark) con Apache, PHP, MySQL, PureFTPD, BIND, Postfix, Dovecot e ISPConfig 3.1

    Il server perfetto CentOS 7.6 con Apache, PHP 7.2, Postfix, Dovecot, Pure-FTPD, BIND e ISPConfig 3.1

    Il server perfetto - Ubuntu 20.04 con Apache, PHP, MariaDB, PureFTPD, BIND, Postfix, Dovecot e ISPConfig 3.2

    Il server perfetto CentOS 8 con Apache, PHP, Postfix, Dovecot, Pure-FTPD, BIND e ISPConfig 3.2

    Il server perfetto - Ubuntu 14.04 (Apache2, PHP, MySQL, PureFTPD, BIND, Dovecot, ISPConfig 3)

    Il server perfetto - Debian 9 (Stretch) con Apache, BIND, Dovecot, PureFTPD e ISPConfig 3.1

    Il server perfetto - Ubuntu 14.10 con Apache, PHP, MySQL, PureFTPD, BIND, Postfix, Dovecot e ISPConfig