Choix de la configuration pour Postfix

Bonsoir, :006

Pas bcp de changement. :blush: Ce week-end j’ai parcouru tes réponses et écouter la moitié de la conférence de sonntag http://www.iletaitunefoisinternet.fr/lemail-par-benjamin-sonntag/. 8) J’essaye de comprendre l’architecture globale, d’y associer les bons paquets et ensuite de plonger dans le paramétrage. Je suis lent à la comprenette et la semaine j’ai pas bcp de temps pour m’y mettre. :mrgreen: So… J’ai aussi fait une nouvelle version de ma zone DNS. J’en suis à la version 7. Je préfère avancer doucement. Evidemment pour toi c’est plan-plan je comprends. Ma qui va piano va sano comme aurait pu dire mon grand-père. Donc prochain avancement le week-end prochain. Je ne pourrai pas consacrer bcp de temps au paramétrage avant. :083 Merci pour ta relance. Ne désespère pas. A bientôt donc. :smiley:

Re :006 ,

Petite précision avant d’aller me coucher. Mon serveur SMTP ne répond pas. Tu vois j’en suis pas bien loin. J’ai essayé en telnet et avec l’outil MXToolbox. Mon serveur SMTP n’envoie rien une fois que la connexion a été acceptée. :confused: Je cherche…

Bonsoir, :006

Je suis presque arrivé à la fin de la conférence de Sonntag et j’ai le sentiment d’être coincé car je ne peux pas déclarer d’enregistrement PTR au niveau de la zone DNS que Gandi me permet de gérer. Cela va donc m’empêcher de valider mon reverse DNS. J’ai lu sur certains forums que c’était à mon FAI de le faire. Or, j’ai également lu sur ces mêmes forums que peu de FAI le font… :12 Une idée de comment contourner cela ?

A+

Bonjour Vincentsan, mon seul interlocuteur :023,

Bon j’ai trouvé le lien dans ma console d’administration chez Free pour créer mon reverse DNS. Ce soir je teste avec MXtool pour voir le résultat. Je dois attendre 24 heures pour la propagation. Je pense avoir lever pas mal des problèmes que j’avais avec la zone DNS et je me sens maintenant prêt pour avancer avec Postfix.

J’utilise la commande nmap pour m’assurer que les ports dont j’ai besoin sont ouverts. Exemple avec le port 25 qui est ouvert.

[code]srv-web-idlas:/etc/postfix# nmap -p25 192.168.0.51

Starting Nmap 6.47 ( http://nmap.org ) at 2016-01-16 15:28 CET
Nmap scan report for srv-web-idlas.latriadedubienetre.fr (192.168.0.51)
Host is up (0.000085s latency).
PORT STATE SERVICE
25/tcp open smtp

Nmap done: 1 IP address (1 host up) scanned in 1.15 seconds[/code]

J’ai mis en oeuvre la redirection sur mon routeur Free pour les protocoles courrier, http, ssh dont j’ai besoin.

Mais je n’arrive pas à faire causer mon serveur smtp :

srv-web-idlas:/etc/postfix# telnet srv-web-idlas.latriadedubienetre.fr 25 Trying 192.168.0.51... Connected to srv-web-idlas.latriadedubienetre.fr. Escape character is '^]'. Connection closed by foreign host. srv-web-idlas:/etc/postfix#

Mon serveur n’envoie pas son entête. Pourquoi ? :mrgreen:

J’attends tes pistes avec impatience et je continue de chercher en lisant la documentation de Postfix. 8)

A bientôt donc. :017

PS : voici ce que me dit Postfix pour l’instant

[code]srv-web-idlas:/etc/postfix# service postfix status -l
● postfix.service - LSB: Postfix Mail Transport Agent
Loaded: loaded (/etc/init.d/postfix)
Drop-In: /run/systemd/generator/postfix.service.d
└─50-postfix-$mail-transport-agent.conf
Active: active (running) since sam. 2016-01-16 14:58:06 CET; 34min ago
Process: 2066 ExecStop=/etc/init.d/postfix stop (code=exited, status=0/SUCCESS)
Process: 2395 ExecReload=/etc/init.d/postfix reload (code=exited, status=0/SUCCESS)
Process: 2251 ExecStart=/etc/init.d/postfix start (code=exited, status=0/SUCCESS)
CGroup: /system.slice/postfix.service
├─2365 /usr/lib/postfix/master
├─2408 pickup -l -t unix -u -c
├─2409 qmgr -l -t unix -u
├─2432 tlsmgr -l -t unix -u -c
├─2530 proxymap -t unix -u
└─2531 anvil -l -t unix -u -c

janv. 16 15:30:38 srv-web-idlas postfix/master[2365]: warning: /usr/lib/postfix/smtpd: bad command startup – throttling
janv. 16 15:30:38 srv-web-idlas postfix/master[2365]: warning: process /usr/lib/postfix/smtpd pid 2533 exit status 1
janv. 16 15:31:38 srv-web-idlas postfix/smtpd[2534]: warning: dict_nis_init: NIS domain name not set - NIS lookups disabled
janv. 16 15:31:38 srv-web-idlas postfix/smtpd[2534]: error: open database /etc/postix/virtual.db: No such file or directory
janv. 16 15:31:38 srv-web-idlas postfix/smtpd[2534]: error: open database /etc/postfix/spam.db: No such file or directory
janv. 16 15:31:38 srv-web-idlas postfix/smtpd[2534]: connect from unknown[185.13.37.206]
janv. 16 15:31:38 srv-web-idlas postfix/smtpd[2534]: warning: SASL: Connect to private/auth failed: No such file or directory
janv. 16 15:31:38 srv-web-idlas postfix/smtpd[2534]: fatal: no SASL authentication mechanisms
janv. 16 15:31:39 srv-web-idlas postfix/master[2365]: warning: process /usr/lib/postfix/smtpd pid 2534 exit status 1
janv. 16 15:31:39 srv-web-idlas postfix/master[2365]: warning: /usr/lib/postfix/smtpd: bad command startup – throttling[/code]

Hello,

Déjà il semblerait que ta connexion à la base de données ne soit pas opérationnelle :

C’est un premier problème !

Ensuite quand tu fais ton telnet fais-le sur la boucle locale (127.0.0.1) tu verras ce que te renvoie la commande. Une fois que ça marchera comme ça tu verras pour le FQDN.

Les indications suivantes ne sont valables et testée qu’avec Debian 8. Pour ubuntu PAS DE GARANTIES ça devrait le faire mais voir si apparmor veut bien

Pour tes ports, il faut les ouvrir sur ta box et rediriger le 25 vers l’@IP de ta machine ainsi que le 143 (imap) le 443 et 80 (https, http). Nmap c’est bien mais à tester depuis l’extérieur (le web) ! Il faut faire du NAT, sur ton lan ce sera forcément ouvert. Mais tu veux pouvoir envoyer des mails vers l’internet…

Désactive le sasl dans un premier temps, ça sera + facile d’avancer.

Pour les paquets fais ça :

Root_pass=TON_MOT_DE_PASSE_MARIADB
echo "debconf-set-selections <<< 'mariadb-server mysql-server/root_password password ${Root_pass}'
debconf-set-selections <<< 'mariadb-server mysql-server/root_password_again password ${Root_pass}'" > /tmp/mysql
bash /tmp/mysql
rm /tmp/mysql
apt-get update && apt-get upgrade -y --force-yes
apt-get install -y --force-yes apache2 libapache2-mod-php5 php5-gd php5-mcrypt php-pear openssl postfix postfix-mysql ssl-cert courier-authdaemon courier-authlib courier-authlib-mysql courier-authlib-userdb courier-base courier-imap courier-pop gamin courier-maildrop spamassassin amavisd-new  clamav-base libclamav6 clamav-daemon clamav-freshclam mariadb-server php5-mysql

Fais un

et tapes:

1. Ok 2. Site internet 3. Ok 4. Nom de domaine FQDN : srv-web-idlas.latriadedubienetre.fr 5. Ok

Ensuite il te faudra une base sql pour postfix. Je te conseille de copier tout ça dans un script que tu exécutes en tapant :

Sinon tu tapes tout mais pas d’erreur de frappe et pense à supprimer les antislash d’échappement sinon rien ne marchera !

[code]## Modifie les 2 lignes suivantes à ta convenance
Root_pass=TON_MOT_DE_PASSE_MARIADB
Postfix_pass=LE_MOT_DE_PASSE_QUI_TE_SIED

cat > /tmp/postfix_sql << EOF
GRANT ALL PRIVILEGES ON postfix.* TO “postfix”@“localhost” IDENTIFIED BY “${Postfix_pass}”;
FLUSH PRIVILEGES;
EOF

mysqladmin --user=root --password=${Root_pass} create postfix

mysql --user=root --password=${Root_pass} < /tmp/postfix_sql
rm -rf /tmp/postfix_sql

cd /tmp

echo "USE postfix;

CREATE TABLE `domaines` (
`domaine` varchar(255) NOT NULL default ‘’,
`etat` tinyint(1) NOT NULL default ‘1’,
PRIMARY KEY (`domaine`)
) ENGINE=MyISAM;

CREATE TABLE `comptes` (
`email` varchar(255) NOT NULL default ‘’,
`password` varchar(255) NOT NULL default ‘’,
`quota` int(10) NOT NULL default ‘0’,
`etat` tinyint(1) NOT NULL default ‘1’,
`imap` tinyint(1) NOT NULL default ‘1’,
`pop3` tinyint(1) NOT NULL default ‘1’,
PRIMARY KEY (`email`)
) ENGINE=MyISAM;

CREATE TABLE `alias` (
`source` varchar(255) NOT NULL default ‘’,
`destination` text NOT NULL,
`etat` tinyint(1) NOT NULL default ‘1’,
PRIMARY KEY (`source`)
) ENGINE=MyISAM;" >> tables.sql

mysql --user=root --password=${Root_pass} postfix < /tmp/tables.sql
rm -rf /tmp/tables.sql

cat > /etc/postfix/mysql-virtual_domaines.cf << EOF
hosts = 127.0.0.1
user = postfix
password = ${Postfix_pass}
dbname = postfix
select_field = 'virtual’
table = domaines
where_field = domaine
additional_conditions = AND etat=1
EOF

cat > /etc/postfix/mysql-virtual_comptes.cf << EOF
hosts = 127.0.0.1
user = postfix
password = ${Postfix_pass}
dbname = postfix
table = comptes
select_field = CONCAT(SUBSTRING_INDEX(email,’@’,-1),’/’,SUBSTRING_INDEX(email,’@’,1),’/’)
where_field = email
additional_conditions = AND etat=1
EOF

cat > /etc/postfix/mysql-virtual_aliases.cf << EOF
hosts = 127.0.0.1
user = postfix
password = ${Postfix_pass}
dbname = postfix
table = alias
select_field = destination
where_field = source
additional_conditions = AND etat=1
EOF

cat > /etc/postfix/mysql-virtual_aliases_comptes.cf << EOF
hosts = 127.0.0.1
user = postfix
password = ${Postfix_pass}
dbname = postfix
table = comptes
select_field = email
where_field = email
additional_conditions = AND etat=1
EOF

cat > /etc/postfix/mysql-virtual_quotas.cf << EOF

echo “INSERT INTO `domaines` ( `domaine` , `etat` ) VALUES (‘domainex’, ‘1’);” >> indomain.sql
sed -i “s/domainex/latriadedubienetre.fr/” /tmp/indomain.sql
mysql --user=root --password=${Root_pass} postfix < /tmp/indomain.sql
rm -rf /tmp/indomain.sql

echo “INSERT INTO `comptes` ( `email` , `password` , `quota` , `etat` , `imap` , `pop3` ) VALUES
(‘contact@domaine’, ENCRYPT( ‘pass_user1’ ) , ‘0’, ‘1’, ‘1’, ‘1’);” >> Postfix_tables2

sed -i “s/domaine/latriadedubienetre.fr/” /tmp/Postfix_tables2
sed -i “s/contact/philippe/” /tmp/Postfix_tables2
sed -i “s/pass_user1/${Postfix_pass}/” /tmp/Postfix_tables2
mysql --user=root --password=${Root_pass} postfix < /tmp/Postfix_tables2
rm -rf /tmp/Postfix_tables2[/code]

Ensuite tu ajuste un peu les droits :

groupadd -g 5000 vmail useradd -g vmail -u 5000 vmail -d /var/spool/vmail/ -m

Le fameux /etc/mailname :
echo srv-web-idlas.latriadedubienetre.fr > /etc/mailname

Le main.cf (dans un premier temps commente la section TLS parameters) !

[code]## On définit quelques variables :
myhostname=srv-web-idlas

A ajuster le cas échéant mais ça devrait le faire à moins que tu ne joues avec les masques

IP_network=192.168.0.0
prefixe=/24

cat > /etc/postfix/main.cf << EOF
smtpd_banner = ${myhostname} ESMTP $mail_name (Debian/GNU)
biff = no
disable_vrfy_command = yes
smtpd_helo_required = yes

TLS parameters

smtpd_tls_cert_file=/usr/lib/courier/imapd.pem
smtpd_tls_key_file=/usr/lib/courier/imapd.pem
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_tls_auth_only = yes

appending .domain is the MUA’s job.

append_dot_mydomain = no

Impose au client SMTP de démarrer la session SMTP par une commande Helo (ou ehlo)

smtpd_helo_required = yes

Desactive la commande SMTP VRFY. Arrête certaine technique pour avoir des adresses email

disable_vrfy_command = yes

Pour faire simple, il est conseillé d’utiliser le reverse DNS de votre serveur.

myhostname = srv-web-idlas.latriadedubienetre.fr
home_mailbox = Maildir/
myorigin = /etc/mailname
mydestination = srv-web-idlas.latriadedubienetre.fr, localhost.latriadedubienetre.fr, srv-web-idlas, localhost
relayhost =
mynetworks = 127.0.0.0/8, $IP_network$prefixe
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all

virtual_alias_maps = mysql:/etc/postfix/mysql-virtual_aliases.cf,mysql:/etc/postfix/mysql-virtual_aliases_comptes.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual_domaines.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual_comptes.cf
virtual_mailbox_base = /var/spool/vmail/
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000

#virtual_create_maildirsize = yes
#virtual_mailbox_extended = yes
#virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql-virtual_quotas.cf
#virtual_mailbox_limit_override = yes
#virtual_maildir_limit_message = “La boite mail de votre destinataire est pleine, merci de rééssayer plus tard.”
#virtual_overquota_bounce = yes

adresses d’expedition

smtpd_sender_restrictions =
permit_mynetworks,
warn_if_reject reject_unverified_sender

adresses de destination

smtpd_recipient_restrictions =
permit_mynetworks,
reject_unauth_destination,
reject_non_fqdn_recipient

client

smtpd_client_restrictions =
permit_mynetworks
inet_protocols = all
EOF[/code]

Pour la taille des pièces jointes (ajuster la variable mailsize si besoin) :

mailsize=20 sed -i "34imessage_size_limit = $(($mailsize +1))240000" /etc/postfix/main.cf

On Ajuste encore les droits :

chgrp postfix /etc/postfix/mysql-virtual_*.cf chmod u=rw,g=r,o= /etc/postfix/mysql-virtual_*.cf

Tu peux reboot postfix :

Et faire un premier check

Tu arrêtes postfix

la commande suivante assure la compatibilité avec le SRV pop3/imap pour la base de donnes des alias ==> l’authentification se fait au niveau du SRV pop3/imap

Tu relances postfix
/etc/init.d/postfix start

Tu créés l’arborescence pour tes utilisateurs :

Tu recharges la conf de postfix :

Voilà pour Postfix.

Pour courier :

On active le module mysql

petit backup avant de tripatouiller :

On tripatouille !!!

## Ajuster la ligne suivante en fonction de ce que tu a modifié tout à l'heure
Postfix_pass=LE_MOT_DE_PASSE_QUI_TE_SIED

cat > /etc/courier/authmysqlrc << EOF
MYSQL_SERVER            localhost
MYSQL_USERNAME          postfix
MYSQL_PASSWORD          ${Postfix_pass}

MYSQL_PORT              0

MYSQL_DATABASE          postfix
MYSQL_USER_TABLE        comptes
MYSQL_CRYPT_PWFIELD     password
MYSQL_UID_FIELD         5000
MYSQL_GID_FIELD         5000

MYSQL_LOGIN_FIELD       email
MYSQL_HOME_FIELD        "/var/spool/vmail/"
MYSQL_MAILDIR_FIELD     CONCAT(SUBSTRING_INDEX(email,'@',-1),'/',SUBSTRING_INDEX(email,'@',1),'/')
EOF[/code]

Tu relances les services courier :
[code]/etc/init.d/courier-authdaemon restart
/etc/init.d/courier-imap restart
/etc/init.d/courier-pop restart[/code]

Tu finalise l'arborescence des répertoires utilisateurs :
[code]domaine=latriadedubienetre.fr
contact=philippe

cd /var/spool/vmail/${domaine}
maildirmake ${contact}
maildirmake -f Sent ${contact}
maildirmake -f Queue ${contact}
maildirmake -f junkmail ${contact}
maildirmake -f virus ${contact}
maildirmake -f Drafts ${contact}
maildirmake -f Trash ${contact}
chown -R vmail:vmail /var/spool/vmail/[/code]

Tu crées un premier utilisateur ([b]modifie la variable pass_user !!!!!!!![/b]):
[code]cd /tmp
domaine=latriadedubienetre.fr
contact=philippe
pass_user=TON_MOT_DE_PASSE_POUR_PHILIPPE
Root_pass=TON_MOT_DE_PASSE_MARIADB

echo "INSERT INTO \`comptes\` ( \`email\` , \`password\` , \`quota\` , \`etat\` , \`imap\` , \`pop3\` ) VALUES 
('contact@domaine', ENCRYPT( 'pass_user1' ) , '0', '1', '1', '1');" >> user1.sql
sed -i "s/domaine/${domaine}/" /tmp/user1.sql
sed -i "s/contact/${contact}/" /tmp/user1.sql
sed -i "s/pass_user1/$pass_user/" /tmp/user1.sql
mysql --user=root --password=${Root_pass} postfix < /tmp/user1.sql
rm -rf /tmp/user1.sql

Tu envoies ton 1er mail et tu actives l’utilisateur philippe :

[code]cat > /tmp/telnet << EOF
mail from: philippe@$latriadedubienetre.fr
rcpt to: philippe@latriadedubienetre.fr
data
Subject: Autotest
Le compte philippe@latriadedubienetre.fr est actif !
Cordialement,
La DSI de ${Domaine}
.
quit
EOF

telnet 127.0.0.1 25 < /tmp/telnet
rm -rf /tmp/telnet[/code]

Tu peux tester l’authentification :

Tu devrais avoir quelque chose comme ça (à part le Encrypted password) :

[code]Authentication succeeded.

  Authenticated: philippe@latriadedubienetre.fr  (uid 5000, gid 5000)              
 Home Directory: /var/spool/vmail/                                        
        Maildir: latriadedubienetre.fr/philippe/                                   
          Quota: (none)                                                   

Encrypted Password: ahDZHR7ytFoL6
Cleartext Password: (none)
Options: (none) [/code]

Tu peux relancer postfix

Pour Spamassassin et Amavis, Clamav j’ai un peu la flemme de détailler alors voilà :

[code]sa-update
sed -i “s|ENABLED=0|ENABLED=1|” /etc/default/spamassassin
groupadd -g 5001 spamd
useradd -u 5001 -g spamd -s /sbin/nologin -d /var/lib/spamassassin spamd
mkdir /var/lib/spamassassin 2> /tmp/err.Super
chown spamd:spamd /var/lib/spamassassin
echo “import USER
if ($LOGNAME ne “”)
{
xfilter “spamc -u $LOGNAME”
}
else
{
xfilter “spamc -u $USER”
}” >> /etc/courier/maildroprc

echo "rewrite_header Subject [***** SPAM SCORE *****]
required_score 2.0
#to be able to use SCORE we need report_safe set to 0
#If this option is set to 0, incoming spam is only modified by adding some “X-Spam-” headers and no changes will be made to the body.
report_safe 0

Enable the Bayes system

use_bayes 1
use_bayes_rules 1

Enable Bayes auto-learning

bayes_auto_learn 1

Enable or disable network checks

skip_rbl_checks 0
use_razor2 0
#use_dcc 0
use_pyzor 0" >> /etc/spamassassin/local.cf
sed -i “s|# use_bayes 1| use_bayes 1|” /etc/spamassassin/local.cf
sed -i “s|# bayes_auto_learn 1| bayes_auto_learn 1|” /etc/spamassassin/local.cf
sed -i “s|# | |” /etc/amavis/conf.d/15-content_filter_mode
sed -i “s|#------------ Do not modify anything below this line -------------||” /etc/amavis/conf.d/50-user
sed -i s"|1; # ensure a defined return||" /etc/amavis/conf.d/50-user
echo "@local_domains_acl = qw(.);
$log_level = 2;
$syslog_priority = ‘debug’;

$sa_tag_level_deflt = 2.0; # add spam info headers if at, or above that level

$sa_tag2_level_deflt = 6.31; # add ‘spam detected’ headers at that level

$sa_kill_level_deflt = 8.0; # triggers spam evasive actions

$sa_dsn_cutoff_level = 10; # spam level beyond which a DSN is not sent

$final_spam_destiny = D_PASS;

$final_spam_destiny = D_REJECT; # default

$final_spam_destiny = D_BOUNCE; # debian default

$final_spam_destiny = D_DISCARD; # ubuntu default, recommended as sender is usually faked

#------------ Do not modify anything below this line -------------
1; # ensure a defined return" >> /etc/amavis/conf.d/50-user
echo “amavis unix - - - - 2 smtp
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
-o disable_dns_lookups=yes
-o max_use=20
127.0.0.1:10025 inet n - - - - smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_delay_reject=no
-o smtpd_client_restrictions=permit_mynetworks,reject
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o smtpd_data_restrictions=reject_unauth_pipelining
-o smtpd_end_of_data_restrictions=
-o mynetworks=127.0.0.0/8
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
-o smtpd_client_connection_count_limit=0
-o smtpd_client_connection_rate_limit=0
-o receive_override_options=no_header_body_checks,no_unknown_recipient_checks
” >> /etc/postfix/master.cf
sed -i “30i-o content_filter=” /etc/postfix/master.cf
sed -i “31i-o receive_override_options=no_header_body_checks” /etc/postfix/master.cf
sed -i “s|-o content_filter=| -o content_filter=|” /etc/postfix/master.cf
sed -i “s|-o receive_override_options=no_header_body_checks| -o receive_override_options=no_header_body_checks|” /etc/postfix/master.cf
echo “content_filter = amavis:[127.0.0.1]:10024” >> /etc/postfix/main.cf
sed -i “s|#@bypass_v|@bypass_v|” /etc/amavis/conf.d/15-content_filter_mode
sed -i “s|#@bypass_spam|@bypass_spam|” /etc/amavis/conf.d/15-content_filter_mode
chown -R amavis /var/lib/amavis/tmp
usermod -a -G amavis clamav
chmod g+rx -R /var/lib/amavis/tmp
/etc/init.d/clamav-freshclam restart
/etc/init.d/clamav-daemon start
/etc/init.d/spamassassin restart
/etc/init.d/postfix restart

echo “23 4 */2 * * root /usr/bin/sa-update --no-gpg &> /dev/null” >> /etc/crontab[/code]

Si tu veux activer TLS (dé-commenter la section TLS parameter du main.cf si tu l’a commenté):

apt-get install -y courier-imap-ssl sed -i "s|ADDRESS=0|ADDRESS=0.0.0.0|" /etc/courier/imapd /etc/init.d/courier-imap restart ;/etc/init.d/courier-authdaemon restart; /etc/init.d/courier-imap-ssl restart; /etc/init.d/postfix restart

Voilà. Je te laisse un peu chercher pour roundcube. Fais déjà ça, on verra plus tard. Si tu galères trop, désinstalle tout et recommence. Il n’y a que ça à faire.

Courage

Bonjour Vincentsan, :006

Quel message. Ca valait le coup d’attendre. :114 Par contre je ne suis pas vraiment prêt à tout réinstaller car j’ai mes deux sites internet qui tournent maintenant sur la machine sur laquelle j’installe l’email. :018

J’ai déjà des éléments de réponse que je vais te transmettre maintenant.

Le problème avec la db virtual a été réglé avec un postmap.

Pour ce qui est de la connexion en local, je n’y arrive pas :

srv-web-idlas:/etc/postfix# telnet 127.0.1.1 25 Trying 127.0.1.1... Connected to 127.0.1.1. Escape character is '^]'. Connection closed by foreign host.

Par contre je peux dialoguer sur le port imap.

[code]srv-web-idlas:/etc/postfix# telnet srv-web-idlas.latriadedubienetre.fr 143
Trying 192.168.0.51…
Connected to srv-web-idlas.latriadedubienetre.fr.
Escape character is ‘^]’.

  • OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE AUTH=PLAIN] Dovecot ready.
    10 login philippe blablabla…
    10 OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MULTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS SPECIAL-USE BINARY MOVE] Logged in
    11 close
    11 BAD No mailbox selected.
    12 logout
  • BYE Logging out
    12 OK Logout completed.
    Connection closed by foreign host.[/code]

Mon serveur tourne bien sous Debian 8. :slightly_smiling:

Tous les ports dont j’ai besoin ont été redirigé sur ma freebox.

NAT, je vois ce que c’est mais qu’entends-tu pas ‘faire du NAT’ ? Et oui je veux pouvoir envoyer du mail vers l’internet sans utiliser le smtp de mon fournisseur. :dance:

[quote]
Pour les paquets fais ça :
Code:
Root_pass=TON_MOT_DE_PASSE_MARIADB
echo “debconf-set-selections <<< ‘mariadb-server mysql-server/root_password password ${Root_pass}’
debconf-set-selections <<< ‘mariadb-server mysql-server/root_password_again password ${Root_pass}’” > /tmp/mysql
bash /tmp/mysql
rm /tmp/mysql
apt-get update && apt-get upgrade -y --force-yes
apt-get install -y --force-yes apache2 libapache2-mod-php5 php5-gd php5-mcrypt php-pear openssl postfix postfix-mysql ssl-cert courier-authdaemon courier-authlib courier-authlib-mysql courier-authlib-userdb courier-base courier-imap courier-pop gamin courier-maildrop spamassassin amavisd-new clamav-base libclamav6 clamav-daemon clamav-freshclam mariadb-server php5-mysql[/quote]

Là je dois dire que je comprends pas bien ce que je dois faire ? :blush:

Pour le reste je vais très largement m’inspirer que ce que tu écris et comparer avec ce que j’ai en adaptant.

En résumé :

PREMIER GROS PROBLEME : telnet localhost 25 qui ne fonctionne pas ? :013
DEUXIEME GROS PROBLEME : le smtpd_banner qui n’est pas reconnu par MXTOOL car semble-t-il le reverse DNS que j’ai enregistré via ma console d’administration de Free n’a pas encore été activé. Il me retourne toujours une adresse free soit lar91-3-88-127-146-45.fbx.proxad.net.

En tout les cas, merci de cet accompagnement. Je continue. :think:

A+ :pray:

Voilà le dernier status de Postfix après la mise en commentaire de SASL et la correction d’un erreur de typo concernant la bd virtual. Dans main.cf j’avais /etc/postix/virtualécris . :mrgreen: Rien à voir avec postmap donc.

[code]srv-web-idlas:/etc/postfix# service postfix status -l
● postfix.service - LSB: Postfix Mail Transport Agent
Loaded: loaded (/etc/init.d/postfix)
Drop-In: /run/systemd/generator/postfix.service.d
└─50-postfix-$mail-transport-agent.conf
Active: active (running) since dim. 2016-01-17 15:09:01 CET; 7min ago
Process: 2991 ExecStop=/etc/init.d/postfix stop (code=exited, status=0/SUCCESS)
Process: 2413 ExecReload=/etc/init.d/postfix reload (code=exited, status=0/SUCCESS)
Process: 3039 ExecStart=/etc/init.d/postfix start (code=exited, status=0/SUCCESS)
CGroup: /system.slice/postfix.service
├─3152 /usr/lib/postfix/master
├─3221 pickup -l -t unix -u -c
└─3222 qmgr -l -t unix -u

janv. 17 15:09:30 srv-web-idlas postfix/smtpd[3183]: warning: dict_nis_init: NIS domain name not set - NIS lookups disabled
janv. 17 15:09:30 srv-web-idlas postfix/smtpd[3183]: connect from unknown[84.14.192.171]
janv. 17 15:09:32 srv-web-idlas postfix/smtpd[3183]: NOQUEUE: reject: RCPT from unknown[84.14.192.171]: 550 5.1.1 <philippe.idlas@latria…01.net>
janv. 17 15:09:32 srv-web-idlas postfix/smtpd[3183]: disconnect from unknown[84.14.192.171]
janv. 17 15:11:08 srv-web-idlas postfix/master[3152]: reload – version 2.11.3, configuration /etc/postfix
janv. 17 15:13:30 srv-web-idlas postfix/smtpd[3206]: warning: dict_nis_init: NIS domain name not set - NIS lookups disabled
janv. 17 15:13:30 srv-web-idlas postfix/smtpd[3206]: connect from unknown[62.210.170.127]
janv. 17 15:13:32 srv-web-idlas postfix/smtpd[3206]: NOQUEUE: reject: RCPT from unknown[62.210.170.127]: 550 5.1.1 <philippe.idlas@latri…re.com>
janv. 17 15:13:32 srv-web-idlas postfix/smtpd[3206]: disconnect from unknown[62.210.170.127]
janv. 17 15:13:40 srv-web-idlas postfix/master[3152]: reload – version 2.11.3, configuration /etc/postfix[/code]

Un dernier point concernant mysql. Je préfère faire avec hash pour l’instant pour ne pas encore rajouter une couche de difficultés. En espérant que tu comprennes. :005 J’ai vraiment envie de comprendre ce que je fais et pas seulement recopier ce que tu me proposes. :smiley: J’apprécie tout cela. Merci bcp.

Good day, sunshine :023

Je peux me connecter en localhost sur le port.

srv-web-idlas:/etc/postfix# telnet localhost 25 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 srv-web-idlas ehlo philippe@latriadedubienetre.fr 250-srv-web-idlas.latriadedubienetre.fr 250-PIPELINING 250-SIZE 502400000 250-ETRN 250-STARTTLS 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN MAIL FROM: philippe@latriadedubienetre.fr 250 2.1.0 Ok RCPT TO: philippe@latriadedubienetre.fr 501 5.5.2 <philippe?latriadedubienetre.fr>: Helo command rejected: Invalid name quit 221 2.0.0 Bye Connection closed by foreign host.

Bon j’ai des soucis avec les noms d’utilisateurs. philippe est pourtant un utilisateur unix et je l’ai déclaré dans virtual aussi.

Le seul problème qui me reste concerne le smtp_banner. Voir ce que me dit MXToolbox :

Hello,

Que renvoie :

/etc/init.d/postfix check

Si tout est bien configuré il ne devrait pas y avoir d’insultes…

En ce qui concerne Dovecot, je n’ai pas testé, il faudra demander de l’aide ailleurs, pas le temps de m’y mettre.

Pour les paquets c’est simple, tu installes tout, tu en aura besoin, avec ça tu auras toutes les dépendances installées. (Debconf permet d’éviter qu’apt-get ne te promt pour le passwd root de mysql).

Mysql ou MariaDb c’est un peu hard mais ça tourne bien maintenant (surtout mariadb ==> + libre, + performant). Tu peux le faire comme tu veux mais je te propose une manière de faire. Si tu veux faire autrement, no pb pour moi. Mais je ne pourrais pas t’aider beaucoup plus.

En tout cas le meilleur conseil que je puisse te donner est de travailler avec un labo de test sur des vm. Il ne me paraît pas raisonnable de tatoner sur une machine en prod qui herberge des sites :013 !!
Tu devrais déjà faire tourner ton service sur ton lan sans te préoccuper d’internet pour le moment. Tu refais tout avec un nom de domaine local : test.lan, mondomaine.local

Apparemment il te manques aussi un enregistrement IN A + IN PTR sur ton SRV smtp au niveau de ton DNS. le champs MX ne suffira pas.

Faire du NAT signifie pour moi : faire de la Translation d’Adresses Réseau.

Sauf si tu en as vraiment besoin je n’ouvrirai pas le ssh depuis l’extérieur. Si c’est vraiment nécessaire, tu changes le numéro du port (ex 2655) et tu blindes avec fail2ban + Netfilter + TcpWrapper.

Courage pour la suite.

Y en a un qui boude… c’est pas tellement fengshui comme attitude :smiley:

hello :005

Bon j’ai tout cassé ! Faire et défaire… Je n’avais pas noté ce que j’avais fait donc j’étais comme qui dirait perdu. :angry: Donc, reformatage des disques, re galette mais sans couronne, debian wheezy à la place. Partitionnement manuel histoire d’appliquer ce que j’ai appris la première fois. Création de volumes RAID et de volumes logiques qui vont bien avec les bonnes tailles pour les bons points de montage. 8) Le système est tout propret, prêt à accueillir un serveur web et un serveur mail. :033

Je m’y remets donc ce week-end. Le cahier et le stylo sont prêts. Il me reste plus qu’à écrire mon plan de bataille et zouh ! Stay tuned ! Je vais bientôt avoir à nouveau besoin de ton aide et de ton humour. Sur ce, je vais me coucher. :006

Hello,

Coup dur chez les mous ! As-tu pu faire un backup de tes sites avant de tout formater ? Et tes bases de données ?
Je te conseille plutôt Jessie que Wheezy, le support sera plus long et les paquets plus à jour, sans parler du noyau.
Comptes-tu travailler enfin sur des VM de test ? Sinon tu risques de tout casser encore une fois…

À+

:006

Je ne te le fais pas dire. Bon en fait c’est bien la debian 8.0 donc Jessie que j’ai installé. Côté sites, pani problem je les garde toujours sur mon autre PC que j’utilise comme serveur FTP. Je crois qu’une VM de test s’impose en effet. :wink: Merci de me le rappeler. :think:

J’écris mon plan de bataille d’abord et puis je m’y mets. :017

See you soon.

Bonjour Vincentsan (et tous les autres :041 ),

Le temps passe et je suis, pour l’instant, en train de peaufiner la configuration de mon serveur web qui tourne sous Apache2. :smiley: C’est un peu plus long que prévu (comme toujours :blush: ) mais j’avance. Je suis pour l’instant bloqué sur une faille de sécurité que je n’arrive pas à lever : empêcher qu’une demande http ou https puisse se faire sur l’adresse IP de mon serveur (je parle bien sûr de l’adresse IP publique de ma freebox). Bon ce n’est pas vraiment une faille de sécurité mais si je n’arrive pas à empêcher cela, s’en en sera une, pardi ! :wink:

Donc le serveur de messagerie ça sera après. Cela dit c’est reculer pour mieux sauter car au boulot je vais installer un serveur sous Esxi et faire tourner dessus deux machines virtuelles : un serveur proxy et un serveur de domaine. Donc cela va me préparer à la mise en place de ton environnement de test, n’est-ce pas Vincentsan ? :stuck_out_tongue:

Petit message pour te (vous) dire donc que je n’ai pas lâché le morceau, même si c’est long. :geek:

Cordialement.

Hello,

Pour ça Netfilter peut faire le taf mais au niveau de la machine derrière la NAT (ton SRV dans ton LAN) :

Tu drop tout ce qui entre et tu ouvre juste ce dont tu as besoin :

[code]# Le réseau autorisé :
$IP_Allowed=192.168.0.0/24

On remet tout à zéro :

iptables -F
iptables --delete-chain

On accepte tout le traffic sortant et on interdit le forwarding

iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

On supprime toutes les chaînes utilisateurs.

/sbin/iptables -X

On drop tout le trafic entrant.

iptables -P INPUT DROP

On accepte le traffic entrant connecté et pour le ssh

iptables -t filter -A INPUT -p tcp -i eth0 -s $IP_Allowed --dport ssh -j ACCEPT
iptables -A INPUT -m state --state “ESTABLISHED,RELATED” -j ACCEPT

Les règles en question pour le http et https

iptables -t filter -A INPUT -p tcp -i eth0 -s $IP_Allowed --dport 80 -j ACCEPT
iptables -t filter -A INPUT -p tcp -i eth0 -s $IP_Allowed --dport 443 -j ACCEPT[/code]

==> Ensuite tu mets tout ça dans un petit script init.d et tu l’invoques à chaque démarrage.

Mais si ton SRV web est hébergé chez toi (derrière ta box) seules les machines du réseau 192.168.0.0/24 ($IP_Allowed) pourront y accéder.

Si tu veux empêcher les requêtes sur les ports 80 et 443 sur ton IP publique en provenance du WAN il faut voir avec Free mais je ne pense pas que ce soit possible. En tout cas pas pour un particulier.
Mais si c’est bien ce que tu veux faire, tu ne pourras pas héberger ton site web chez toi.

Courage !

:006 Vincentsan,

En effet. L’objectif est quand même d’héberger mon site chez moi ainsi que quelques autres. Donc je ne filtrerai pas sur $IP_ALLOWED. Netfilter est un autre gros morceau à voir en effet avant d’être réellement en production + les autres CLAMAV, SQUID et DANSGUARDIAN… Mais je verrai cela avec le serveur courriel aussi. En tout cas, merci pour cette configuration que je garde au chaud. :041
Pour ce qui est de ma problématique, :think: il semble après quelques tests et de nombreuses lectures que ce n’est pas l’adresse public que je peux ‘filtrer’ mais l’adresse de ma passerelle sur mon réseau (soit 192.168.X.Y). Déjà. :laughing: Ensuite, j’ai compris que ce que je cherche à faire correspond à la gestion dans APACHE par nom de domaine (à différencier de la gestion par IP). C’est mon cas puisque j’héberge plusieurs sites derrière une seule adresse IP fixe. :023 Quand on gère des VIRTUALHOSTS par nom dans APACHE, le serveur web les liste par ordre alphabétique et va systématiquement allouer un ‘default server’ aux requêtes qui ne peuvent pas être allouées aux vhosts déclarés (qui correspondent à des noms de domaines ou de sous-domaines). :115 Pour faire cela, APACHE choisi comme ‘default server’ le premier de sa liste. Donc quand je tape ‘latriadedubienetre.fr’ dans un navigateur, le DNS de Gandi envoie la requête vers mon serveur à l’adresse publique de ma Free box qui l’envoie sur mon serveur web via ma redirection. La requête qui arrive est une requête HTTP/1.1 qui comporte comme nom de ‘Host’ le nom de mon domaine. Ce domaine est déclaré dans APACHE comme un vhost avec un chemin pour accéder au fichier ‘index’ qui s’exécute et renvoie donc la page d’accueil sur le poste client. :119 Idem avec mon deuxième site que j’héberge. Problèmatique : quid quand un internaute tape l’adresse publique de ma Free box ? Eh ben, c’est là qu’APACHE renvoie la même page que celle de mon deuxième site car c’est ce domaine qui a été retenu par APACHE comme ‘default server’. Ce que j’aimerai faire, c’est de renvoyer une page d’erreur ou bien une page que je créerai pour ce seul objectif. C’est ce mécanisme que je ne maîtrise pas encore et sur lequel je continue mes recherches. :smiley:
A côté de cela et pour ne pas rester bloqué sur un seul problème, j’ai choisi MEZZANINE comme outil de publication sur internet et je travaille en parallèle sur la migration de mes sites. C’est un CMS construit sur DJANGO et donc PYTHON. Bonne soirée et à bientôt.

Salut,

A ta place je créerais un virtual host qui écoute sur toutes les IP

<VirtualHost *:80>
ServerName localhost
DocumentRoot /var/www/html

ensuite tu l’actives et tu indiques le FQDN de chaque site dans les autres vohsts dans la directive VirtualHost.
Dans le répertoire html, tu mets un fichier html dans lequel tu écris ce que tu veux. Comme un message d’erreur ou autre.
A tester, je n’ai jamais essayé de régler ce problème.

A +

Hello,
alors du nouveau ?
Ca marche ?

Salut vincentsan,

Je me suis noyé. C’est un trop gros morceau à faire en si peu de temps. Donc je suis en train de tout lâcher pour l’instant. Je reprendrai ce fil plus tard quand j’aurai vraiment du temps à y consacrer pendant la journée. Soit pendant des congés ou pas avant ma retraite c’est-à-dire dans 4 ans. Plus la même énergie à 58 ans qu’à 30! Mais c’est un projet qui me tient à coeur car communiquer sans être espionner est un vrai défi. Merci pour ton intérêt. Et vous, vos projets avancent-ils comme vous le souhaitez ?