## Machine virtuelle MAIL Cette machine est destinée à accueillir le serveur d'envoi, réception et consultation de courriel de l'association. ### Matériel virtuel CPU : 2 RAM : 1000 Mio Stockage de masse : 50 Gio ### Logiciel Système d'exploitation : Debian GNU/Linux-libre 11 (Bullseye) Noyau : Linux-libre LTS (`linux-libre-lts` des dépôts https://linux-libre.fsfla.org) Sécurités de la maintenance : `etckeeper`, `mollyguard`, `git`, `tig`, `screen` Serveur IMAP (et authentification) : `courier` Mail Transfer Agent : `postfix` Webmail : `roundcube` (**upstream**) Serveur http : `nginx` ### Caractéristiques notables Domaine : mail.a-lec.org Adresse ipv4 publique : 80.67.176.33 Adresse ipv4 interne : 192.168.1.201 Adresse ipv6 publique : 2001:910:1021::201 ### Configuration MTA
# See /usr/share/postfix/main.cf.dist for a commented, more complete version \# Debian specific: Specifying a file name will cause the first \# line of that file to be used as the name. The Debian default \# is /etc/mailname. \#myorigin = /etc/mailname smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU) biff = no \# appending .domain is the MUA's job. append_dot_mydomain = no \# Uncomment the next line to generate "delayed mail" warnings \#delay_warning_time = 4h readme_directory = no \# See http://www.postfix.org/COMPATIBILITY_README.html -- default to 2 on \# fresh installs. compatibility_level = 2 \# TLS parameters smtpd_tls_cert_file=/etc/letsencrypt/live/mail.a-lec.org/fullchain.pem smtpd_tls_key_file=/etc/letsencrypt/live/mail.a-lec.org/privkey.pem smtpd_tls_security_level = may smtpd_tls_auth_only = yes smtpd_tls_mandatory_protocols=!SSLv2,!SSLv3 smtpd_tls_protocols=!SSLv2,!SSLv3 smtpd_tls_loglevel = 1 smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtp_tls_cert_file=/etc/letsencrypt/live/mail.a-lec.org/fullchain.pem smtp_tls_key_file=/etc/letsencrypt/live/mail.a-lec.org/privkey.pem smtp_tls_security_level = may smtp_tls_note_starttls_offer = yes smtp_tls_mandatory_protocols=!SSLv2,!SSLv3 smtp_tls_protocols=!SSLv2,!SSLv3 smtp_tls_loglevel = 1 smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache \# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for \# information on enabling SSL in the smtp client. smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination smtpd_sender_restrictions = reject_unknown_sender_domain myhostname = mail.a-lec.org alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases myorigin = /etc/mailname mydestination = $myhostname, a-lec.org, mail.a-lec.org, localhost, os-k.eu relayhost = mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.169.1.0/24 mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = all inet_protocols = all home_mailbox = Maildir/ virtual_alias_maps = hash:/etc/postfix/virtual mailbox_command = \## DKIM smtpd_milters = unix:var/run/opendkim/opendkim.sock non_smtpd_milters = unix:var/run/opendkim/opendkim.sock \## Ralentissement pour les serveurs problématiques transport_maps = hash:/etc/postfix/transport slow_destination_concurrency_limit = 3 slow_destination_rate_delay = 3s maximal_queue_lifetime = 1d \## Forwarding pour mails du bureau recipient_bcc_maps = hash:/etc/postfix/recipient_bcc message_size_limit = 524288000 smtp_helo_name = $mydomain
### Configuration serveur web (nginx)
server { set_real_ip_from 192.169.1.1; real_ip_header proxy_protocol; listen 443 ssl proxy_protocol; listen [::]:443 ssl; ssl_certificate /etc/letsencrypt/live/mail.a-lec.org/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/mail.a-lec.org/privkey.pem; # managed by Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot # Add index.php to the list if you are using PHP root /var/www/html/roundcube; server_name mail.a-lec.org; client_max_body_size 100M; # Add index.php to the list if you are using PHP index index.html index.htm index.php; location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. try_files $uri $uri/ /index.php?q=$uri&$args; } # pass PHP scripts to FastCGI server # location ~ \.php$ { include snippets/fastcgi-php.conf; # # With php-fpm (or other unix sockets): fastcgi_pass unix:/run/php/php7.4-fpm.sock; # # With php-cgi (or other tcp sockets): # fastcgi_pass 127.0.0.1:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ^~ /data { deny all; } }