HOAB

History of a bug

Postfix et 10/10 aux tests antispam

Rédigé par gorki Aucun commentaire

Le problème :

Après avoir installé un serveur de mail. Gmail refusait les mails envoyés depuis ce serveur.

"Our system has detected that this message does 550-5.7.1 not meet IPv6 sending guidelines regarding PTR records and 550-5.7.1 authentication. Please review 550-5.7.1  https://support.google.com/mail/?p=ipv6_authentication_error for more 550 5.7.1 information"

Et là, il faut suivre les conseils vagues de Google, heureusement d'autres sites sont de meilleurs aides, exemple :  https://www.mail-tester.com/

Le contexte :

- un serveur de mail + un nom de domaine (MONDOMAINE)

- un deuxième serveur de mail qui envoie des mails sur ce même domaine

Solution :

Suivre les recommendations du site mail-tester :)

Cela m'a conduit à :

Déclarer des enregistrements DNS sur MONDOMAINE pour autoriser mon deuxième serveur à envoyer des mails :

SERVEUR2.MONDOMAINE IN    A   IP-SERVEUR-2
MONDOMAINE.	IN	TXT	"v=spf1 ip4:IP-SERVEUR-2 include:mx.ovh.com"
MONDOMAINE.	IN	SPF	"v=spf1 ip4:IP-SERVEUR-2 include:mx.ovh.com"

Vérifier que le postfix de mon 2eme serveur est identifié avec SERVEUR2.MONDOMAINE

  • maintenant les serveurs SMTP reçevant nos mails savent que le deuxième serveur est autorisé à les envoyé.
  • que le nom de domaine SERVEUR2.MONDOMAINE est cohérent avec qui est déclaré dans postfix
  • ne pas avoir configurer postfix en openrelay, mais ça il faut l'avoir fait exprès

Il faut aussi installer des signatures DKIM en sortant :

mail._domainkey.MONDOMAINE.	IN TXT    ( "v=DKIM1;t=s;k=rsa; p=clepublic" )
  • on aurait pu avoir glustork à la place comme selecteur ! C'est aussi le principe d'avoir X domaines et X sélecteur pour avoir des clés de chiffrement différentes
glustork._domainkey.MONDOMAINE.	IN TXT    ( "v=DKIM1;t=s;k=rsa; p=clepublic" )
  • des outis pour vérifier les DNS existent sur le Web (ici, , ...)
  • mais un petit DIG suffit aussi :
dig mail._domainkey.<domaine>.fr TXT @dnsserver.com

 

Postfix sous debian en multidomaines

Rédigé par gorki Aucun commentaire

Le problème :

Comme d'autres, installer un serveur de mail sous une Debian.

En multidomaines.

Avec plusieurs serveurs de mails.

Solution :

Il y a d'excellent tutos sur Internet qui m'ont ammené quasiment la solution sur un plateau :

Solution générale :

  1. postfix (SMTP + STARTTLS only)
  2. délégation d'authentification à dovecot via SASL
  3. dovecot pour IMAP + POP (en STARTTLS only aussi)
  4. base de données pour les domaines multiples  via postfixadmin

Quelques notes sur les difficultés que j'ai rencontré :

  • une architecture de postfix : http://loic.marrot.free.fr/travaux/rapportProjetMessagerie.html
  • Un peu de vocabulaire sur les protocoles :
    • SMTP : pour envoyer des mails à un serveur de mail (depuis un client mail ou entre les serveurs de mails)
    • POP : du client mail au serveur mail pour aller récupérer ses mails
    • IMAP : idem que POP, mais il y a un échange pour synchroniser l'état du client et du serveur. Ainsi on peut avoir la même vision de ses mails depuis plusieurs endroits
    • SASL : protocole pour déléguer l'authentificaiton à un tiers. Exemple ici, postfix se base sur Dovecot pour savoir si un utilisateur est connu ou non. Entre Postfix et Dovecot, on fait du SASL
    • STARTTLS : afin de sécuriser les échanges par défaut non chiffré des différents protocoles (POP, IMAP, SMTP), on peut démarrer une session sécurisé à partir d'une connexion non sécurisée à la base. On démarre le TLS (sucesseur de SSL) : STARTTLS.
    • IMAPS, POPS : variante de POP et IMAP directement en TLS, mais peu usité, au profit du STARTTLS
    • Pour chacun de ces protocoles, il y a des ports par défaut que l'on retrouve dans /etc/services
  • Il est possible d'ajouter des logs en ajoutant "-v" aux différents démons postfix (cf la documentation officielle)
  • Le hostname de la machine et le DNS doivent être cohérent ! (cf hostame & postfix)
  • Posftixadmin & Thunderbird portable sont bien pratique pour tester des clients mails
  • Multiple domaines :
    • mydestination ne doit pas contenir les hosts virtuels stockés en BDD Mysql (voir virtual_mailbox_domains)
  • Pour le lien avec Dovecot
    • J'ai ajouté une ligne dans /etc/postfix/master.cf, comme indiqué dans certains tutoriaux plus haut
    • Je n'ai pas activé l'option #  -o smtpd_sasl_type=dovecot sur submission dans master.cf mais ajouté ces options dans main.cf
# SASL SMTPS
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
  • Bien valider l'authentification
    • pour Dovecot, utiliser le paramètre "ssl=required"
    • le paramètre smtpd_tls_auth_only peut-être mis à "no" le temps des tests, le mettre à "yes" ensuite
    • pour tester l'authentification (extrait d'ici) :
perl -MMIME::Base64 -e 'print encode_base64("username\0username\0password");'
  • swaks est outil super ! mais il ne faut oublier de préciser le serveur smtp (sinon il s'adresse directement au MX du domaine ciblé et ne passe pas par votre serveur !)
echo "This is the message body" | swaks --to web-4pDEEq@mail-tester.com --from "www-data@test.fr" --server localhost 25

Ca a suffit pour envoyer / recevoir des mails en TLS sur des noms de domaines que je maitrisais.

Pour ne pas être considéré comme spammeur, ce fut une autre histoire !

Passer de Windows à Linux au travail

Rédigé par gorki Aucun commentaire

Le problème :

Vouloir utiliser Linux alors que :

- 99% des collègues utilisent Windows

- le support ne supporte que Windows

Pourquoi utiliser Linux alors ?

- avoir un environnement de développement proche de l'environnement de production

- avoir un environnement un peu plus stable dans le temps (c'est relatif, si on s'occupe bien de Windows, ça marche bien aussi)

- maitriser mon environnement

- gérer des configurations réseaux différentes facilement

- parce que.

Solution :

Y'en a pas, Linux est trop éparpillé parmi X distributions, philosophie pour avoir un truc cohérent.

Donc on pioche des bouts, à droite et à gauche.

 

Mon choix : Debian + XFCE. J'aurais peut-être pu me lancer sur Ubuntu plutôt pour certaines problématiques ci-dessous.

Mon installation (j'ai 8Go de RAM) :

- squid ; proxy en local pour gérer mes environnements réseaux

- virtualbox : pour lancer le Windows "officiel" de mon entreprise. Ca mérite un article complet "Comment booter le windows d'origine sur son Linux", c'est assez facile en fait)

- pidgin : pour communiquer avec Office Communicator (hors partage d'écran)

- terminator : shell écrit en python (on peut ENFIN faire copier/coller avec le click droit)

- iceweasel : pour remplacer firefox (il suffit de reprendre le dossier profiles du Firefox de Windows) + flashplugin_nonfree..

- vlc : rien à dire à part qu'il ne bloque pas le screensaver sous XFCE

- sublimeText : pour tenter de remplacer l'irremplacable notepad++ (la puissante communauté des développeurs est éparpillée parmi X projets)

- audacious : winamp

- pdf : mon coeur balance encore, rien de terrible ou de bien intégrer avec XFCE je ne sais pas, pour l'instant

- redshift : pour diminuer les nuances de bleus de l'écran le soir (dés/activation via un raccourci et un shell :

#/bin/bash

pid=`pgrep redshift`
if [ -z "$pid" ] ; then
	echo "launch redshift"
	redshift -l 48.6:1.40 > /dev/null &
else
	echo "stop redshift"
	kill $pid
fi 

- des alias (ah linux !) :

alias gitl='git log --graph --decorate --oneline --all --pretty=format:'\''%C(yellow)%h%C(cyan)%d%Creset %s %C(white)- %an, %ar%Creset'\'' --date=relative'
alias gits='for d in `find . -name ".git"`; do  echo "processing $d ..."; git --git-dir=$d --work-tree=$d/.. status; done'
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -l'
alias ls='ls --color=auto'
alias mvn_default='cp ~/.m2/settings_normal.xml ~/.m2/settings.xml; echo "Maven Normal installed"'
alias mvn_proxy='cp ~/.m2/settings_proxy.xml ~/.m2/settings.xml; echo "Maven Proxy installed"'

# pour stopper le screensaver pendant la lecture des films... bug XFCE / VLC ?
alias screensaveroff='xset s off'

# pour exécuter git dans une série de sous-répertoires
function gitpro {
  rootdir=`pwd`
  for d in `find -maxdepth 1 -type d`; do
        echo -e "processing \e[34m$rootdir/$d\e[39m";
    cd $rootdir/$d
    git "$@";
  done
  cd $rootdir
}

 

Les problèmes sans doute inhérents à mon PC et XFCE :

- la configuration du son et des raccourcis du son : ça marche moyen, j'ai été obligé de modifier le raccourci ainsi :

amixer -D pulse set Master 1+ toggle sur XF86AudioMute

Sinon, la coupure du son marchait bien mais lors de la réactivation j'avais un des switchs suivant qui n'était pas activé dans AlsaMixer (Pense-bête des switches à activer : pcm  speaker  (switches), global  headphone)
 

- barre des tâches : ajouter un séparateur qui s'aggrandit pour utiliser toute la largeur de l'écran
 

- multiécran : faire un script pour le double écran (pas de détection automatique)

#!/bin/sh
# Get the modeline for your computer
# Get the modeline for your computer
# cvt <width> <height> <refresh-rate>
cvt 1920 1080 60

# You will get an output like this, which is a modeline for your computer
# 1920x1080 59.96 Hz (CVT 2.07M9) hsync: 67.16 kHz; pclk: 173.00 MHz
# Modeline "1920x1080_60.00"  173.00  1920 2048 2248 2576  1080 1083 1088 1120 -hsync +vsync

# You need to add the modeline to xrandr with the command : xrand --newmode 
xrandr --newmode "1920x1080_60.00"  173.00  1920 2048 2248 2576  1080 1083 1088 1120 -hsync +vsync

# Add the modeline to your monitor
# xrandr --addmode <monitor-code> <modeline-name>
# The monitor code you can get from running "xrandr", in my case it's CRT1 (dunno why CRT1)
xrandr --addmode DP1 1920x1080_60.00

xrandr --output HDMI2 --off --output HDMI1 --off --output DP1 --mode 1920x1080_60.00 --pos 0x0 --rotate normal --output eDP1 --mode 1600x900 --pos 96x1080 --rotate normal

 

Ce qui ne marche pas après 1 an d'utilisation :

- les outils corporate (partage d'écran avec Windows, clés de sécurités...etc ...)

- copier/coller d'image de Linux vers la VM Windows (obliger de passer par un fichier)

- ouverture de fichier sur montage samba de type : smb://, obligation de monter le répertoire sur le disque

 

Ce qui marche :

- Office (hors outlook et intégration comme sharepoint) via PlayOnLinux

- tous les outils de dev (Eclipse, git, maven, MAT, éditeur de texte...)

- musique / film

 

Ce qui est toujours compliqué :

- les drivers pour la carte SD

- le bluetooth (une sombre histoire de obex-data-server (bluetooth file receiving) demande un SDP server qui doit être dans  bluethoothd /usr/bin/python /usr/bin/blueman-applet)

- je n'ai pas testé la webcam

- theme bureau : c'est compliqué, c'est pas très beau

- eclipse est plutôt moche par rapport à Windows

- le désarchivage (sans doute lié à Thunar et Xarchiver... pas super ergonomique)

 

 

PlayOnLinux - Office 2010

Rédigé par gorki Aucun commentaire

Le problème :

L'installation d'Office 2010 sous Linux : Word, Excel, Powerpoint, Outlook.

Au départ l'installation plante : wine ne trouve pas libxext (cf ces recherches)

Puis il y avait un problèmes de polices Arial, Times new Roman non trouvée...

Solution :

Tout d'abord l'installation :

- je suis sous Debian / XFCE en architecture 64 bits. J'ai compris que malgré la présence de la librairie libxext6.so dans mon arborescence, wine recherchait la version 32 bits.

Donc comment installer la version 32bits de la librairie ? (réponse via ce site) :

sudo dpkg --print-architecture
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install wine32

On obtient ainsi la version 32bits de Wine.

Il reste à configurer PlayOnLinux pour utiliser la version 32 bits (dans Outils -> Versions de Wine, onglets 32bits, version 1.7.22 dans mon cas) et l'installation se passe correctement.

Ensuite les polices :

Une fois quelques documents ouverts, j'ai eu la mauvaise surprise d'avoir un affichage très moyen : je n'avais pas les bonnes polices d'écritures.

Après avoir tenter les solutions du net :

  1. To copy the fonts from my Windows "Fonts" folder to
/usr/share/fonts/truetype/ 
#and execute
fc-cache.
  1. To delete all "Arial" in the folders:
~/.PlayOnLinux/fonts
~/.PlayOnLinux/wineprefix/Office2010/drive_c/windows/Fonts/
  1. une personne était dans la même problématique et cette solution qui marche : installer le pack "Microsoft Fonts" via PlayOnLinux.

E5440 - touchpad super sensible

Rédigé par gorki Aucun commentaire

Le problème :

Lors de l'utilisation courante du clavier, le touchpad est un peu sensible et mon curseur se trouve déplacer lors de la frappe... (J'ai peut-être des grands pouces....)

Le raccourci "désactiver le touchpad" ne marche pas sous Debian Jessie + XFCE 1.10...

Solution :

A partir d'ici.

Récupérer l'identifiant du device avec :

xinput

Dans mon cas, le pad est :

⎜   ↳ AlpsPS/2 ALPS GlidePoint                	id=13	[slave  pointer  (2)]

Création d'un shell qui fait un switch on/off :

#!/bin/bash

INPUTID=$(xinput | grep GlidePoint | sed -r 's/.*id=([0-9]+).*/\1/')
if [ -f ~/opt/touchpad_off ] ; then
  xinput set-prop $INPUTID "Device Enabled" 1
  rm -f ~/opt/touchpad_off
else
  touch ~/opt/touchpad_off
  xinput set-prop $INPUTID "Device Enabled" 0
fi

Affectation du shell au raccourci clavier : XF86TouchpadToggle

Mise à jour :

Suite au reboot, l'identifiant du device peut-être modifié, on le récupère gâce à un petit parsing. Pour info, le comportement de sed varie sur les expressions régulières : http://hoab.fr/shaarli/?Jtv61Q

Mise à jour 2 :

Sous Cinnamon, plus de soucis, la touche est déjà reconnu, c'est du à GTK3 je crois

Fil RSS des articles de cette catégorie