Kategorie: Linux

Parfait serveur sur Ubuntu 18.04 nginx, MySQL, PHP, Postfix, LIER, Dovecot, Pure-FTPD z panelem ISPConfig 3.1

Dans le tutoriel d'aujourd'hui, je vais décrire le processus de préparation d'un serveur web fonctionnant entièrement avec panneau gratuit pour la gestion du ISPConfig.
Des conseils ont été préparés sous la dernière version d'Ubuntu 18.04

Pour commencer faire des changements dans le nom d'hôte du système. Cette étape a été décrit dans ce guide.

Nous enregistrons en tant que commande root:

sudo -s

J'entre le mot de passe. Ensuite, installez notre éditeur de fichier texte préféré, par exemple, nano:

apt-get install nano

L'étape suivante consiste à des dépôts fixes dans /etc/apt/sources.list

nous les commandons:

nano /etc/apt/sources.list

Le fichier devrait ressembler à ceci:

#

# deb cdrom:[Ubuntu-Server 18.04 LTS _Bionic Beaver_ - Release amd64 (20180425.1)]/ bionic main restricted

#deb cdrom:[Ubuntu-Server 18.04 LTS _Bionic Beaver_ - Release amd64 (20180425.1)]/ bionic 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/ bionic main restricted
# deb-src http://de.archive.ubuntu.com/ubuntu/ bionic main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb http://de.archive.ubuntu.com/ubuntu/ bionic-updates main restricted
# deb-src http://de.archive.ubuntu.com/ubuntu/ bionic-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/ bionic universe
# deb-src http://de.archive.ubuntu.com/ubuntu/ bionic universe
deb http://de.archive.ubuntu.com/ubuntu/ bionic-updates universe
# deb-src http://de.archive.ubuntu.com/ubuntu/ bionic-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/ bionic multiverse
# deb-src http://de.archive.ubuntu.com/ubuntu/ bionic multiverse
deb http://de.archive.ubuntu.com/ubuntu/ bionic-updates multiverse
# deb-src http://de.archive.ubuntu.com/ubuntu/ bionic-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/ bionic-backports main restricted universe multiverse
# deb-src http://de.archive.ubuntu.com/ubuntu/ bionic-backports main restricted universe 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 bionic partner
# deb-src http://archive.canonical.com/ubuntu bionic partner

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

Ensuite, nous faisons une mise à jour des référentiels et des mises à jour du système:

apt-get update
apt-get upgrade

Pour être un bon fonctionnement sûr du système et d'enregistrer toutes les modifications faire la commande de redémarrage du système:

reboot

Après le redémarrage, re-log pour le compte root sur le système et apporter des changements dans la coquille du système.
Nous pouvons faire cette commande:

dpkg-reconfigure dash

La communication sélectionner l'option qui est pas bien:

Use dash as the default system shell (/bin/sh)? 

Éteignez AppArmor

AppArmor est une extension de sécurité (podobne do SELinux), qui devrait fournir une sécurité renforcée. vérifier, est installé, et, le cas échéant, retirer. Je ne pense pas que nous en avons besoin de mettre en place un système sécurisé et provoque généralement plus de problèmes que d'avantages.

La désactivation se fera en exécutant la commande:

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

Nous synchroniser l'heure sur un serveur avec le serveur NTP

apt-get -y install ntp ntpdate

installer Postfix, Dovecot, MariaDB, phpMyAdmin, rkhunter, binutils

point mineur ici pour installer la désinstallation posfixa nécessaire sendmail. Nous pouvons faire cette commande:

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

Ensuite, installez tous les paquets:

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

Le programme d'installation vous demandera un 2 options que vous sélectionnez comme ci-dessous:

General type of mail configuration: 

Uruchamiamy TLS / SSL avec Postfix

fichier d'édition:

nano /etc/postfix/master.cf

Et puisque nous commentons la section smtpd_client_restrictions = permit_sasl_authenticated,rejeter

L'ensemble devrait ressembler à ceci:

[...]
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,rejeter
#  -o smtpd_reject_unlisted_recipient = pas
#  -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,rejeter
#  -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,rejeter
#  -o smtpd_reject_unlisted_recipient = pas
#  -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,rejeter
#  -o milter_macro_daemon_name = ORIGINAIRE
[...]

Après avoir fait des changements pour faire redémarrer posfixa

service postfix restart

Nous voulons, Aby MariaDB / MySQL est non seulement sur localhost. Par conséquent, nous éditons le fichier /etc/mysql/mariadb.conf.d/50-server.cnf (pour MariaDB ou /etc/mysql/my.cnf (dla MySQL) et commentaires sur la ligne bind-address = 127.0.0.1:

nano /etc/mysql/mariadb.conf.d/50-server.cnf

nous ajoutons # la liaison d'adresse

[...]
# 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
[...]

Définir le mot de passe root serveur MySQL et passer la configuration de base avec la commande:

mysql_secure_installation

Nous répondons à des questions telles que:

Entrez le mot de passe actuel pour root (pour entrer dans aucune): 

Nous avons mis la méthode d'authentification par mot de passe natif, afin que nous puissions plus tard PHPMyAdmin pour se connecter en tant qu'utilisateur racine:

écho "update mysql.user set plugin = 'mysql_native_password' where user='root';" | racine de MySQL

Modification fichier /etc/mysql/debian.cnf et définir le mot de passe root

nano /etc/mysql/debian.cnf

Sous les regards de fichiers modifiés comme celui-ci:

# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host = localhost
user = root
password = HASLO ROOT
socket = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
host = localhost
user = root
password = HASLO ROOT
socket = /var/run/mysqld/mysqld.sock
basedir = /usr

Modifier votre /etc/mysql/my.cnf et le suivi MySQL Hashage locale

nano /etc/mysql/my.cnf

Le fichier devrait ressembler à ceci:

[...]
# 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
[...]

Nous faisons un serveur commande restart mysql:

service mysql restart

Installation Amavisd nouveau, SpamAssassin, et ClamAV

apt-get -y install amavisd-new spamassassin clamav clamav-daemon 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 postgrey

Pour mettre à jour les signatures antivirus ClamAV et démarrer le clamd passer les commandes suivantes:

freshclam
service clamav-daemon start

la mise à jour la base de données de virus peut prendre un certain temps, s'il vous plaît soyez patient.

Vous pouvez ignorer l'erreur suivante lorsque vous démarrez freshclam.

ERREUR: /var/log/clamav/freshclam.log is locked by another process
ERROR: Problem with internal logger (UpdateLogFile = /var/log/clamav/freshclam.log).

programme amavisd-new contient maintenant une erreur dans Ubuntu 18.04, qui empêche la signature correcte des e-mails avec DKIM. Exécutez la commande suivante, pour attacher amavisd-new.

cd /tmp
wget https://git.ispconfig.org/ispconfig/ispconfig3/raw/stable-3.1/helper_scripts/ubuntu-amavisd-new-2.11.patch
cd /usr/sbin
cp -pf amavisd-new amavisd-new_bak
patch 

Nous faisons installer Nginx, PHP 7.2 (PHP-FPM), et fcgiwrap

Nginx commande install:

apt-get install nginx

Nous retirons le serveur web Apache:

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

Démarrez le serveur Nginx

service nginx start

installer PHP

apt-get -y install php7.2-fpm

Ensuite, nous recherchons des modules PHP et leur installation sera fait.

apt-cache search php7.2
apt-get -y install php7.2 php7.2-common php7.2-gd php7.2-mysql php7.2-imap php7.2-cli php7.2-cgi php-pear mcrypt imagemagick libruby php7.2-curl php7.2-intl php7.2-pspell php7.2-recode php7.2-sqlite3 php7.2-tidy php7.2-xmlrpc php7.2-xsl memcached php-memcache php-imagick php-gettext php7.2-zip php7.2-mbstring php-soap php7.2-soap

Modifier le fichier php.ini

Apportez les modifications 2 lignes

nano /etc/php/7.2/fpm/php.ini

et le changement:

cgi.fix_pathinfo=0

et

date.timezone="Europe/Warsaw"

Nous faisons commande reload php:

service php7.2-fpm reload

Installez le package FCIWRAP grâce à lui ispconfig il prendra soin de la configuration correcte de vhost.

apt-get -y install fcgiwrap

Nous installons et configurons phpMyAdmin

apt-get -y install phpmyadmin php-mbstring php-gettext

et configurer

Web server to reconfigure automatically: 

Instalacja Let's Encrypt

apt-get -y install certbot
certbot register

ISPConfig vous permet également de gérer (forme / Modifier / effacer) listes de diffusion Mailman. Si vous souhaitez utiliser cette fonctionnalité, Mailman installer comme suit:

apt-get -y install mailman

Sélectionnez au moins une langue, par exemple, .:

Languages to support: 

Nous commander et de répondre aux questions

newlist mailman
root @ server1:~# newlist mailman
Enter the email of the person running the list: 
Hit enter to notify mailman owner... 

root @ server1:~ #

modifier / etc / alias et add:

nano /etc/aliases

## mailman mailing list
mailman:              "|/var/lib/mailman/mail/mailman post mailman"
mailman-admin:        "|/var/lib/mailman/mail/mailman admin mailman"
mailman-bounces:      "|/var/lib/mailman/mail/mailman bounces mailman"
mailman-confirm:      "|/var/lib/mailman/mail/mailman confirm mailman"
mailman-join:         "|/var/lib/mailman/mail/mailman join mailman"
mailman-leave:        "|/var/lib/mailman/mail/mailman leave mailman"
mailman-owner:        "|/var/lib/mailman/mail/mailman owner mailman"
mailman-request:      "|/var/lib/mailman/mail/mailman request mailman"
mailman-subscribe:    "|/var/lib/mailman/mail/mailman subscribe mailman"
mailman-unsubscribe:  "|/var/lib/mailman/mail/mailman unsubscribe mailman"

reload, restatartujemy course postfix et Mailman

newaliases
service postfix restart
service mailman start

Installer pure-ftpd et quotas

apt-get -y install pure-ftpd-common pure-ftpd-mysql quota quotatool

Modifier / etc / default / pure-ftpd-common et ensemble de la manière suivante

nano /etc/default/pure-ftpd-common
[...]
STANDALONE_OR_INETD=standalone
[...]
VIRTUALCHROOT=true
[...]

Exécutez TLS et SSL pour serveur FTP:

écho 1 > /etc/pure-ftpd/conf/TLS
mkdir -p /etc/ssl/private/
openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem

Nous donnons ci-dessous vos coordonnées comme:

Country Name (2 letter code) [AU]: 

Nous donnons chmod et redémarrez le serveur FTP

chmod 600 /etc/ssl/private/pure-ftpd.pem
service pure-ftpd-mysql restart

Installation d'un BIND serveur DNS

apt-get -y install bind9 dnsutils haveged
systemctl enable haveged
service haveged start

Installation Vlogger, webalizer, et AWStats

apt-get -y install vlogger webalizer awstats geoip-database libclass-dbi-mysql-perl

Nous faisons /etc/cron.d/awstats édition d'un fichier et de commentaires à ce sujet de la manière décrite ci-dessous:

nano /etc/cron.d/awstats
#MAILTO=root

#*/10 * * * * www-data [ -x /usr/share/awstats/tools/update.sh ] && /usr/share/awstats/tools/update.sh

# Generate static reports:
#10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] && /usr/share/awstats/tools/buildstatic.sh

Installation Jailkit

apt-get -y install build-essential autoconf automake1.11 libtool flex bison debhelper binutils
cd /tmp 
wget http://olivier.sessink.nl/jailkit/jailkit-2.19.tar.gz
tar xvfz jailkit-2.19.tar.gz
cd jailkit-2.19
echo 5 > debian/compat

La version actuelle Jailkit 2.19 Il a une erreur de syntaxe, ce qui rend impossible de compiler. Pour résoudre ce problème, ouvert debian / changelog en utilisant nano:

nano debian/changelog

Et ajoutez la ligne suivante dans la 5, suivie d'une ligne vide:

 -- Olivier   Wed, 18 nov 2015 20:38:44 +0100

Nous faisons recompilation

./debian/rules binary
cd ..
dpkg -i jailkit_2.19-1_*.deb
rm -rf jailkit-2.19*

UFW et installer fail2ban

apt-get -y install fail2ban
apt-get -y install ufu

Ensuite, créez un fichier:/etc / fail2ban / jail.local avec le contenu suivant:

nano /etc/fail2ban/jail.local
[pure-ftpd]
enabled  = true
port     = ftp
filter   = pure-ftpd
logpath  = /var/log/syslog
maxretry = 3

[dovecot]
enabled = true
filter = dovecot
action = iptables-multiport[name=dovecot-pop3imap, port="pop3,pop3s,La tâche principale de Fail2Ban est de bloquer les suspects,imaps", protocol=tcp]
logpath = /var/log/mail.log
maxretry = 5

[postfix]
enabled  = true
port     = smtp
filter   = postfix
logpath  = /var/log/mail.log
maxretry = 3

Nous faisons des services de rechargement

s

ervice fail2ban restart

Installation Roundcube WebMail

apt-get -y install roundcube roundcube-core roundcube-mysql roundcube-plugins javascript-common libjs-jquery-mousewheel php-net-sieve tinymce

Lorsque vous choisissez la configuration comme suit:

Configure database for roundcube with dbconfig-common? 

modifier /Etc/roundcube/config.inc.php le fichier et changer l'hôte par défaut

nano /etc/roundcube/config.inc.php
$config['default_host'] = 'localhost';

Installation ISPConfig 3.1

Certes, nous nous arrêtons Apache, Nous retirons et redémarrez Nginx

service apache2 stop
update-rc.d -f apache2 remove
service nginx restart

Nous saisissons la dernière version de la pédale et déballer ISPConfig.

cd /tmp 
wget -O ispconfig.tar.gz https://git.ispconfig.org/ispconfig/ispconfig3/repository/archive.tar.gz?ref=stable-3.1
tar xfz ispconfig.tar.gz
cd ispconfig3*/install/

Exécutez le script d'installation:

php -q install.php

Nous répondons à des questions telles que:

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


>> Initial configuration

Operating System: Ubuntu 18.04 C'EST (Bionic Beaver)

Following will be a few questions for primary configuration so be careful.
Default values are in [brackets] and can be accepted with .
Tap in "quit" (without the quotes) to stop the installer.


Select language (en,de) [en]: 

la fin du script a été installé et est disponible à l'adresse https://ipserwera:8080

Les données par défaut à la connexion admin panneau mot de passe admin

De cette façon, nous avons un serveur web entièrement opérationnel et configuré une fois que les bases de données du serveur de messagerie et ftp.

source: https://www.howtoforge.com/tutorial/perfect-server-ubuntu-18.04-with-apache-php-myqsl-pureftpd-bind-postfix-doveot-and-ispconfig/

Linux

Zobacz komentarze

  • Salut,
    Au début, je vous remercie pour le tutoriel, spadł mi z nieba :)
    Mais j'ai un problème: le point: nano /etc/postfix/master.cf
    Ma configuration est légèrement différente de votre, par exemple,. Je n'ai pas l'option smtpd_client_restrictions = permit_sasl_authenticated,rejeter

    Je joins à ce que je:

    # chroot type de service privé unpriv réveil commande maxproc + args
    # (Oui) (Oui) (non) (jamais) (100)

    smtp inet n - y smtpd
    #smtp inet n et 1 postscreen
    #passe smtpd - y smtpd
    #unix dnsblog - et 0 dnsblog
    #unix tlsproxy - et 0 tlsproxy
    #soumission inet n y smtpd
    # -o syslog_name = postfix / soumission
    # -o smtpd_tls_security_level = Crypter
    # -o smtpd_sasl_auth_enable = yes
    # -o smtpd_tls_auth_only = yes
    # -o smtpd_reject_unlisted_recipient = pas
    # -o smtpd_client_restrictions = $ mua_client_restrictions
    # -o smtpd_helo_restrictions = ftua_helo_restrictions
    # -o smtpd_sender_restrictions = $ mua_sender_restrictions
    # -o smtpd_recipient_restrictions
    # -o smtpd_relay_restrictions = permit_sasl_authenticated,rejeter
    # -o milter_macro_daemon_name = ORIGINAIRE
    #smtps inet n y smtpd
    # -o syslog_name = postfix / smtps
    # -o smtpd_tls_wrappermode = yes
    # -o smtpd_sasl_auth_enable = yes
    # -o smtpd_reject_unlisted_recipient = pas
    # -o smtpd_client_restrictions = $ mua_client_restrictions
    # -o smtpd_helo_restrictions = ftua_helo_restrictions
    # -o smtpd_sender_restrictions = $ mua_sender_restrictions
    # -o smtpd_recipient_restrictions
    # -o smtpd_relay_restrictions = permit_sasl_authenticated,rejeter
    # -o milter_macro_daemon_name = ORIGINAIRE
    #628 inet n et qmqpd
    unix n y de ramassage 60 1 ramasser
    unix n y de nettoyage 0 nettoyer
    unix n n qmgr 300 1 qmgr

    Y at-il quelque chose de mal, je l'ai fait à l'étape précédente? Est est simplement une version plus récente de postfix et quelque chose d'autre appelé?

    • Jest to zapewne nowsza wersja ;)
      Lignes directrices pour un certain temps déjà.
      O ile od komentujesz to co podałem w poradniku całość będzie działać poprawnie :)

      Notez que lorsque vous avez vos entrées #hasz

  • Contient une erreur dans le fichier de code:
    nano /etc/mysql/my.cnf
    Parce que le contenu du fichier de sous-titres:
    nano /etc/mysql/mariadb.conf.d/50-server.cnf

  • Bonjour,
    Malheureusement, après tout cornette, serveur Postfix et en cours d'exécution ISPConfig mais malheureusement, il ne fonctionne pas non plus phpmyadmin ou Roundcube. La deuxième question concerne ce, J'ai un domaine dans az.pl et je ne sais pas comment diriger vers votre serveur à la maison. J'ai une adresse IP variable mais il change tous les quelques mois. Quelqu'un est-il capable de me aider dans la configuration du serveur ?

  • Après l'installation, il ne va pas installer d'autres bogues php:

    dpkg: package de traitement d'erreur pure-ftpd-mysql (--configurer):
    Le sous-processus de script de post-installation du package installé pure-ftpd-mysql a renvoyé un état de sortie d'erreur 127
    Des erreurs ont été rencontrées lors du traitement:
    pure-ftpd-mysql

    • A Essayez-le:
      apt-get install -y inetutils-inetd
      update-inetd
      et
      apt --fix-broken install

Udostępnij
Opublikowane przez
Linux

articles récents

KeePass2 2.52 w Ubuntu 22.04

Le guide ci-dessous décrit comment installer KeePass sur Ubuntu. Całość wykonamy za pomocą kilku poleceń

2 years temu

Installation de l'éditeur Master PDF dans Ubuntu 22.04

Master PDF Editor est un programme PDF complet, qui comprend de nombreuses fonctionnalités. Oprócz tworzenia i edycji

2 years temu

iotop - surveillance de la mémoire

Iotop jest prostym narzędziem dla systemów Uniksowych umożliwiającym monitorowanie użycia dowolnego nośnika pamięci flash/hdd/ssd w

2 years temu

Exécutez plusieurs commandes dans une tâche cron

Vous pouvez séparer deux ou plusieurs commandes avec des points-virgules (;), Point-virgule (;): służy do oddzielania

2 years temu

Changer les données exif d'une photo dans le terminal Linux

Poniższy poradnik opisuje w jaki sposób za pomocą konsoli możemy dokonać edycji danych zdjęcia exif.

2 years temu

Installation du serveur Rocket.Chat sur Rocky Linux 8

Le guide suivant décrit comment installer Rocket.Chat sur Rocky Linux 8 Całość bardzo prosto zainstalujemy

2 years temu