Deblan blog

Informatique

[TIPS] Rocketchat : désactiver SSL sans l'interface d'administration

C'est en testant le logiciel franz, un outil qui permet de centraliser les clients web de pas mal de services de messageries dont Skype, Messenger et surtout Rocketchat. Comme j'ai ma propre instance de rocket, j'ai directement ajouté mon adresse mais manque de bol, ma version n'était pas compatible. Alors je me suis empressé de récupérer un build récent et j'ai mis à jour tout ça ! D'ailleurs, c'est plutôt simple car je n'ai eu qu'à remplacer le code source…

Bref, ça fonctionnait :

Rocketchat deblan

Et en regardant toutes les nouveautés, j'ai par malheur forcé SSL alors que l'instance est derrière un proxy… Pourtant c'était écrit noir sur blanc mais je n'ai pas lu. Quoiqu'il en soit, impossible d'accéder à l'interface et j'ai du attaquer directement la base mongodb. J'ai lancé la commande mongo et je suis arrivé sur un shell.

> show dbs # Permet récupérer la liste des bases
> use rocketchat # J'indique dans quelle base de je veux travailler
# Je ne sais pas s'il y a plus sexy mais mongo est une première !
# Je passe simplement la valeur de l'option "Force_SSL" à false et j'enregistre
> db.rocketchat_settings.find({_id: "Force_SSL"}).forEach(function(o) { 
    o.value = false; 
    db.rocketchat_settings.save(o);
});

Une fois Rocketchat relancé, tout est rentré dans l'ordre !


Nouvelle version de Gist

Je viens de publier une nouvelle version de Gist, une application en ligne qui permet de publier du code en ligne et de le versionner. Les modifications apportées concernent la page qui liste ses gists quand on a un compte. Elle contient à présent une pagination et il est possible de filtrer et supprimer les gists. Cette suppression n'est cependant pas complète : seul l'enregistrement en base de données disparaît. Comme le répertoire de gists est un dépôt git, il n'est pas possible de supprimer définitivement le gist et ses clônes.

Gist

Si vous souhaitez mettre à jour votre instance, rien de bien compliqué :

La documentation est disponible sur mon Gitnet et Github.


Validation de fichier CSV en PHP

Je publie aujourd'hui une première version fonctionnelle et presque totalement testée d'un validateur de fichier CSV : deblan/csv-validator. J'ai décidé de m'appuyer sur les contraintes de validation proposées dans Symfony.

Pour installer ce composant, il faut passer par composer :

composer require deblan/csv-validator dev-master

Voici un exemple simple et concret :

C'est sous lience BSD donc éclatez-vous avec !


t411-console : plugin Oh My Zsh

Un court article pour publier un plugin qui permet d'auto-compléter les commandes de t411-console dans ZSH via Oh My Zsh.

Il faut à présent l'activer en modifiant la liste des plugins dans votre .zshrc : plugins=(... t411)

Enjoy :)


[TIPS] Postfix - Blacklister des emails

Si vous hébergez vos emails, l'arrivée massives de SPAM sera est très vite une réalité.

J'utilise plusieurs outils pour filtrer la majorité des mails indésirables :

  • système de greylist
  • SpamAssassin
  • Test SPF

Malgré tout ce n'est pas suffisant et j'ai décidé de blacklister manuellement une série d'emails, domaines et même un tld. Postfix permet de gérer ça très facilement. Il faut éditer /etc/postfix/main.cf et ajouter ces lignes :

smtpd_sender_restrictions =
    reject_unknown_sender_domain
    check_sender_access hash:/etc/postfix/sender_access regexp:/etc/postfix/sender_access_regexp

Il s'agit maintenant d'alimenter /etc/postfix/sender_access et /etc/postfix/sender_access_regexp. Voici un contenu type pour les 2 fichiers :

# /etc/postfix/sender_access
waukyne.com REJECT
welcome.aexp.com REJECT
womenstrapparfum.com REJECT
yourluxuryguide.com REJECT
zichoster.com REJECT
boyduj.com REJECT
asseight.com REJECT
mail184.wdc02.mcdlv.net REJECT

# /etc/postfix/sender_access_regexp
/\.biz$/ REJECT

Quand vous modifiez l'un des fichiers, il est nécessaire d'utiliser postmap :

# postmap /etc/postfix/sender_access
# service postfix reload

Il est maintenant rapide et simple de blacklister efficacement des expéditeurs.

Si des gens sont intéressés par mes listes, voici mes 2 configurations actuelles :