Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
linuxed:serverlinuxed [2016/12/11 16:46] – ↷ Liens modifiés en raison d'un déplacement. madko | linuxed:serverlinuxed [2021/07/27 07:41] (Version actuelle) – madko | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
~~ODT~~ | ~~ODT~~ | ||
+ | |||
====== Configuration du serveur Linuxed ====== | ====== Configuration du serveur Linuxed ====== | ||
===== Système d' | ===== Système d' | ||
+ | |||
Distribution GNU/Linux CentOS 6.x (pour du support à long terme). | Distribution GNU/Linux CentOS 6.x (pour du support à long terme). | ||
===== Services ===== | ===== Services ===== | ||
+ | |||
* Serveur SMTP avec Postfix | * Serveur SMTP avec Postfix | ||
* Antispam & Antivirus avec Amavis/ | * Antispam & Antivirus avec Amavis/ | ||
Ligne 11: | Ligne 14: | ||
* Serveur de bases de données MySQL | * Serveur de bases de données MySQL | ||
* Serveur Web Apache | * Serveur Web Apache | ||
- | * Serveur de tunnels VPN OpenVPN | + | * Serveur de tunnels VPN OpenVPN |
Ces différents services sont maintenant répartis dans différentes VMs. | Ces différents services sont maintenant répartis dans différentes VMs. | ||
+ | |||
===== Configuration du serveur DNS ===== | ===== Configuration du serveur DNS ===== | ||
- | Voir [[: | + | Voir [[: |
===== Configuration de la Messagerie ===== | ===== Configuration de la Messagerie ===== | ||
Cheminement d'un mail: | Cheminement d'un mail: | ||
- | - postfix :25 => sqlgrey :10030 (pour gestion liste grise) | + | - postfix :25 ⇒ sqlgrey :10030 (pour gestion liste grise) |
- | - postfix | + | - postfix |
- | - amavisd | + | - amavisd |
- | - postfix | + | - postfix |
==== Postfix ==== | ==== Postfix ==== | ||
=== Pré-requis === | === Pré-requis === | ||
- | => Attention, le package postfix de Fedora 8 ne supporte pas MySQL, il faut donc le recompiler pour activer le support. Le support MySQL est necessaire pour la gestion des comptes simplifiés avec Cyrus (webcyradm etc). | + | ⇒ Attention, le package postfix de Fedora 8 ne supporte pas MySQL, il faut donc le recompiler pour activer le support. Le support MySQL est necessaire pour la gestion des comptes simplifiés avec Cyrus (webcyradm etc). |
Le support de MySQL est présent avec le paquet postfix de CentOS 6. | Le support de MySQL est présent avec le paquet postfix de CentOS 6. | ||
Ligne 36: | Ligne 42: | ||
Postgrey est utiliser pour gérer la liste grise. | Postgrey est utiliser pour gérer la liste grise. | ||
+ | < | ||
- | | + | # yum install postgrey |
- | => Ne pas oublier de modifier le fichier /// | + | </code> |
+ | |||
+ | ⇒ Ne pas oublier de modifier le fichier /// | ||
Sur RedHat/ | Sur RedHat/ | ||
Ligne 47: | Ligne 56: | ||
L' | L' | ||
- | | + | < |
- | + | # yum install postfix | |
+ | |||
+ | </ | ||
=== Configuration de postfix === | === Configuration de postfix === | ||
- | | + | |
- | Voici le fichier de configuration /// | + | Voici le fichier de configuration /// |
< | < | ||
- | queue_directory | + | alias_database |
+ | alias_maps = hash:/etc/ | ||
+ | broken_sasl_auth_clients = yes | ||
command_directory = /usr/sbin | command_directory = /usr/sbin | ||
+ | config_directory = / | ||
+ | # AntiVirus / AntiSpam | ||
+ | content_filter = smtp-amavis: | ||
daemon_directory = / | daemon_directory = / | ||
+ | data_directory = / | ||
+ | debug_peer_level = 2 | ||
+ | disable_vrfy_command = yes | ||
+ | html_directory = no | ||
+ | inet_protocols = ipv4 | ||
mail_owner = postfix | mail_owner = postfix | ||
+ | mailbox_transport = lmtp: | ||
+ | mailq_path = / | ||
+ | manpage_directory = / | ||
+ | message_size_limit = 20480000 | ||
+ | mydestination = $myhostname, | ||
mydomain = linuxed.net | mydomain = linuxed.net | ||
+ | mynetworks = 192.168.0.0/ | ||
myorigin = $mydomain | myorigin = $mydomain | ||
- | inet_interfaces | + | newaliases_path |
- | mydestination = $myhostname, | + | queue_directory |
- | unknown_local_recipient_reject_code | + | readme_directory |
- | mynetworks | + | recipient_delimiter = + |
relay_domains = $mydestination | relay_domains = $mydestination | ||
- | alias_maps | + | sample_directory |
- | alias_database = hash:/etc/aliases | + | |
sender_canonical_maps = mysql:/ | sender_canonical_maps = mysql:/ | ||
- | virtual_alias_maps = mysql:/ | ||
- | transport_maps = mysql:/ | ||
- | recipient_delimiter = + | ||
- | |||
- | mailbox_transport = lmtp: | ||
- | cyrus_destination_recipient_limit=1 | ||
- | | ||
- | debug_peer_level = 2 | ||
- | debugger_command = | ||
- | | ||
- | xxgdb $daemon_directory/ | ||
sendmail_path = / | sendmail_path = / | ||
- | newaliases_path = / | ||
- | mailq_path = / | ||
setgid_group = postdrop | setgid_group = postdrop | ||
- | html_directory | + | smtpd_tls_auth_only |
- | manpage_directory | + | smtp_tls_note_starttls_offer |
- | sample_directory | + | smtpd_client_restrictions |
- | readme_directory | + | smtpd_data_restrictions |
+ | smtpd_helo_required = yes | ||
+ | smtpd_helo_restrictions = permit_sasl_authenticated, | ||
+ | smtpd_recipient_restrictions = permit_sasl_authenticated, | ||
smtpd_sasl_auth_enable = yes | smtpd_sasl_auth_enable = yes | ||
+ | smtpd_sasl_local_domain = | ||
smtpd_sasl_security_options = noanonymous | smtpd_sasl_security_options = noanonymous | ||
- | smtpd_sasl_local_domain = | + | smtpd_sender_restrictions = check_client_access hash:/ |
- | broken_sasl_auth_clients = yes | + | # |
- | smtpd_helo_restrictions = permit_sasl_authenticated, | + | smtpd_tls_CAfile = / |
- | smtpd_sender_restrictions = check_client_access hash:/ | + | # |
- | smtpd_recipient_restrictions | + | smtpd_tls_cert_file |
- | smtpd_client_restrictions | + | # |
- | content_filter | + | smtpd_tls_key_file = / |
- | smtpd_helo_required | + | smtpd_tls_loglevel = 1 |
+ | smtpd_tls_received_header | ||
+ | smtpd_tls_session_cache_timeout = 3600s | ||
+ | smtpd_use_tls = yes | ||
+ | tls_random_source = dev:/ | ||
+ | transport_maps = mysql:/ | ||
unknown_local_recipient_reject_code = 550 | unknown_local_recipient_reject_code = 550 | ||
- | disable_vrfy_command | + | virtual_alias_maps |
- | smtpd_data_restrictions | + | smtpd_sender_login_maps |
</ | </ | ||
Et voici le fichier /// | Et voici le fichier /// | ||
+ | |||
< | < | ||
smtp inet n | smtp inet n | ||
Ligne 141: | Ligne 167: | ||
smtp-amavis | smtp-amavis | ||
127.0.0.1: | 127.0.0.1: | ||
+ | |||
</ | </ | ||
Le fichier pour la resolution canonique dans la base MySQL /// | Le fichier pour la resolution canonique dans la base MySQL /// | ||
+ | |||
< | < | ||
hosts = [DB HOST] | hosts = [DB HOST] | ||
Ligne 153: | Ligne 181: | ||
where_field = username | where_field = username | ||
additional_conditions = and status = ' | additional_conditions = and status = ' | ||
+ | |||
</ | </ | ||
Le fichier pour la resolution des domaines gérés par le serveur /// | Le fichier pour la resolution des domaines gérés par le serveur /// | ||
+ | |||
< | < | ||
hosts = [DB HOST] | hosts = [DB HOST] | ||
Ligne 164: | Ligne 194: | ||
select_field = domain_name | select_field = domain_name | ||
where_field = domain_name | where_field = domain_name | ||
+ | |||
</ | </ | ||
Le fichier pour la resolution des domaines à relayer /// | Le fichier pour la resolution des domaines à relayer /// | ||
+ | |||
< | < | ||
hosts = [DB HOST] | hosts = [DB HOST] | ||
Ligne 175: | Ligne 207: | ||
select_field = transport | select_field = transport | ||
where_field = domain_name | where_field = domain_name | ||
+ | |||
</ | </ | ||
Le fichier pour la table des transports /// | Le fichier pour la table des transports /// | ||
+ | |||
< | < | ||
hosts = [DB HOST] | hosts = [DB HOST] | ||
Ligne 186: | Ligne 220: | ||
select_field = transport | select_field = transport | ||
where_field = domain_name | where_field = domain_name | ||
+ | |||
</ | </ | ||
Le fichier pour la gestion des comptes virtuels /// | Le fichier pour la gestion des comptes virtuels /// | ||
+ | |||
< | < | ||
hosts = [DB HOST] | hosts = [DB HOST] | ||
Ligne 194: | Ligne 230: | ||
password = [DB PASS] | password = [DB PASS] | ||
dbname = [DB NAME] | dbname = [DB NAME] | ||
- | table = virtual | + | table = virtual |
- | select_field = dest | + | select_field = dest |
where_field = alias | where_field = alias | ||
- | additional_conditions = and status = ' | + | additional_conditions = and status = ' |
</ | </ | ||
- | Coté Mysql, voici la [[: | + | Coté Mysql, voici la [[: |
+ | |||
+ | Pour changer le mot de passe d'un compte: | ||
+ | < | ||
+ | |||
+ | update accountuser set password=encrypt(" | ||
+ | |||
+ | </ | ||
==== Pam avec support MySQL ==== | ==== Pam avec support MySQL ==== | ||
+ | |||
Pour la partie authentification des utilisateurs en pop/imap il faut installer le support mysql pour pam avec le package pam_mysql: | Pour la partie authentification des utilisateurs en pop/imap il faut installer le support mysql pour pam avec le package pam_mysql: | ||
- | | + | < |
+ | # yum install pam_mysql | ||
+ | |||
+ | </ | ||
+ | |||
+ | Le fichiers /// | ||
- | Le fichiers /// | ||
< | < | ||
#%PAM-1.0 | #%PAM-1.0 | ||
Ligne 214: | Ligne 263: | ||
account required | account required | ||
passwdcolumn=password crypt=1 logtable=log logmsgcolumn=msg logusercolumn=user loghostcolumn=host logpidcolumn=pid logtimecolumn=time | passwdcolumn=password crypt=1 logtable=log logmsgcolumn=msg logusercolumn=user loghostcolumn=host logpidcolumn=pid logtimecolumn=time | ||
+ | |||
</ | </ | ||
==== Amavis/ | ==== Amavis/ | ||
+ | |||
Pour l' | Pour l' | ||
- | | + | < |
+ | # yum install amavisd-new clamav spamassassin | ||
- | Voir le fichier de configuration d' | + | </ |
+ | |||
+ | Voir le fichier de configuration d' | ||
Voici le contenu du fichier / | Voici le contenu du fichier / | ||
- | < | + | < |
+ | |||
+ | # Use system logger. | ||
LogSyslog yes | LogSyslog yes | ||
Ligne 243: | Ligne 299: | ||
# Path to a local socket file the daemon will listen on. | # Path to a local socket file the daemon will listen on. | ||
- | LocalSocket / | + | LocalSocket / |
+ | |||
+ | </ | ||
Mettre à jour la base antivirus: | Mettre à jour la base antivirus: | ||
- | freshclam | + | |
+ | < | ||
+ | freshclam | ||
+ | |||
+ | </ | ||
==== Cyrus ==== | ==== Cyrus ==== | ||
+ | |||
Pour la partie collecte de mails coté utilisateur, | Pour la partie collecte de mails coté utilisateur, | ||
- | | + | < |
+ | # yum install cyrus-imapd | ||
+ | |||
+ | </ | ||
Configuration du fichier /// | Configuration du fichier /// | ||
+ | |||
< | < | ||
# standard standalone server implementation | # standard standalone server implementation | ||
Ligne 295: | Ligne 363: | ||
# this is only necessary if caching TLS sessions | # this is only necessary if caching TLS sessions | ||
tlsprune | tlsprune | ||
- | | + | |
# index mailboxes | # index mailboxes | ||
squat cmd=" | squat cmd=" | ||
squat cmd=" | squat cmd=" | ||
} | } | ||
+ | |||
</ | </ | ||
- | => Attention: squat est assez gourmand. Pourquoi est-il en double?? | + | ⇒ Attention: squat est assez gourmand. Pourquoi est-il en double?? |
Configuration de la partie collecte des mails, avec le fichier /// | Configuration de la partie collecte des mails, avec le fichier /// | ||
+ | |||
< | < | ||
postmaster: postmaster@domaine.com | postmaster: postmaster@domaine.com | ||
Ligne 328: | Ligne 398: | ||
unixhierarchysep: | unixhierarchysep: | ||
virtdomains: | virtdomains: | ||
+ | |||
</ | </ | ||
Pour migrer d'un serveur Cyrus vers un autre serveur Cyrus, il faut synchroniser les fichiers des comptes cyrus, ainsi que les fichiers des boites mails. Il faut bien sur arreter cyrus sur les 2 machines. | Pour migrer d'un serveur Cyrus vers un autre serveur Cyrus, il faut synchroniser les fichiers des comptes cyrus, ainsi que les fichiers des boites mails. Il faut bien sur arreter cyrus sur les 2 machines. | ||
- | | + | < |
- | # rsync -azC --progress / | + | # rsync -azC --progress / |
+ | # rsync -azC --progress / | ||
- | => Attention: penser à restaurer les contextes SELinux avec la commande restorecon sur ces répertoires. | + | </code> |
+ | |||
+ | ⇒ Attention: penser à restaurer les contextes SELinux avec la commande restorecon sur ces répertoires. | ||
Pour générer le certificat: | Pour générer le certificat: | ||
- | | + | < |
- | # openssl rsa -in key.pem -out new.key.pem | + | # openssl req -new -nodes -out req.pem -keyout key.pem |
+ | # openssl rsa -in key.pem -out new.key.pem | ||
+ | |||
+ | </ | ||
A faire signer ensuite par un CA. Ou on signe soi-même: | A faire signer ensuite par un CA. Ou on signe soi-même: | ||
- | | + | |
- | # cat ca-cert >> new.key.pem | + | < |
+ | # openssl x509 -in req.pem -out ca-cert -req -signkey new.key.pem -days 999 | ||
+ | # cat ca-cert>> | ||
+ | |||
+ | </ | ||
+ | |||
+ | Pour administrer cyrus: | ||
+ | |||
+ | < | ||
+ | cyradm --user cyrus localhost | ||
+ | |||
+ | </ | ||
+ | |||
+ | Pour voir un quota: | ||
+ | |||
+ | < | ||
+ | localhost> | ||
+ | | ||
+ | |||
+ | </ | ||
+ | |||
+ | Pour changer un quota: | ||
+ | |||
+ | < | ||
+ | sq user/ | ||
+ | |||
+ | </ | ||
==== web-cyradm ==== | ==== web-cyradm ==== | ||
- | Il s'agit d'une interface web d' | + | |
+ | Il s'agit d'une interface web d' | ||
Il est necessaire d' | Il est necessaire d' | ||
- | | + | < |
+ | |||
+ | # yum install php-pear-DB | ||
+ | |||
+ | </ | ||
==== Saslauthd ==== | ==== Saslauthd ==== | ||
- | L' | + | |
+ | L' | ||
< | < | ||
pwcheck_method: | pwcheck_method: | ||
mech_list: plain login | mech_list: plain login | ||
saslauthd_version: | saslauthd_version: | ||
+ | |||
</ | </ | ||
- | Mais c'est le contenu du fichier /// | + | Mais c'est le contenu du fichier /// |
< | < | ||
pwcheck_method: | pwcheck_method: | ||
#mech_list: plain login | #mech_list: plain login | ||
- | # | + | # |
# | # | ||
mech_list: plain login cram-md5 digest-md5 | mech_list: plain login cram-md5 digest-md5 | ||
Ligne 372: | Ligne 484: | ||
sql_passwd: facteur | sql_passwd: facteur | ||
sql_select: SELECT password FROM accountuser WHERE username=' | sql_select: SELECT password FROM accountuser WHERE username=' | ||
+ | |||
</ | </ | ||
Il faut ensuite indiquer à saslauthd d' | Il faut ensuite indiquer à saslauthd d' | ||
+ | |||
< | < | ||
# Directory in which to place saslauthd' | # Directory in which to place saslauthd' | ||
Ligne 387: | Ligne 501: | ||
# for the list of accepted flags. | # for the list of accepted flags. | ||
FLAGS=" | FLAGS=" | ||
+ | |||
</ | </ | ||
Pour que postfix dispose des mécanismes SASL, il faut au minimum installer le paquet cyrus-sasl-plain: | Pour que postfix dispose des mécanismes SASL, il faut au minimum installer le paquet cyrus-sasl-plain: | ||
- | # yum install cyrus-sasl-plain | + | < |
+ | # yum install cyrus-sasl-plain | ||
+ | |||
+ | </ | ||
+ | |||
+ | ⇒ Attention à SELinux qui par défaut peut bloquer les connexions mysql depuis saslauthd. | ||
- | => Attention à SELinux qui par défaut peut bloquer les connexions mysql depuis saslauthd. | ||
==== Webmails ==== | ==== Webmails ==== | ||
+ | |||
Il existe squirrelmail et roundcube dans la categorie des excellents webmail. | Il existe squirrelmail et roundcube dans la categorie des excellents webmail. | ||
- | | + | < |
+ | # yum install squirrelmail | ||
+ | |||
+ | </ | ||
ou | ou | ||
- | | + | < |
+ | # yum install roundcube | ||
+ | |||
+ | </ | ||
Il peut manquer certaines dépendances pour roundcube, notemment php-mcrypt: | Il peut manquer certaines dépendances pour roundcube, notemment php-mcrypt: | ||
- | | + | < |
- | + | # yum install php-mcrypt | |
+ | |||
+ | </ | ||
=== SquirrelMail === | === SquirrelMail === | ||
La configuration se fait dans / | La configuration se fait dans / | ||
- | | + | |
- | # / | + | < |
+ | # / | ||
+ | |||
+ | </ | ||
==== Activation des services ==== | ==== Activation des services ==== | ||
+ | |||
Maintenant que tout est configuré, il ne faut pas oublier d' | Maintenant que tout est configuré, il ne faut pas oublier d' | ||
- | | + | |
- | # chkconfig saslauthd on | + | < |
- | # chkconfig mysqld on | + | # chkconfig postfix on |
- | # chkconfig cyrus-imapd on | + | # chkconfig saslauthd on |
- | + | # chkconfig mysqld on | |
+ | # chkconfig cyrus-imapd on | ||
+ | |||
+ | </ | ||
===== Apache ===== | ===== Apache ===== | ||
Ligne 429: | Ligne 566: | ||
Pour activer IPv6 sur lighttpd, voici le contenu du fichier / | Pour activer IPv6 sur lighttpd, voici le contenu du fichier / | ||
- | < | + | |
+ | < | ||
+ | server.use-ipv6 = " | ||
+ | |||
+ | </ | ||
===== Migration ===== | ===== Migration ===== |