Site alwaysdata

Quelques améliorations

Ces dernières semaines, nous avons essentiellement travaillé sur des aspects peu visibles d’alwaysdata. Rien de transcendant, pas de nouvelles fonctionnalités extraordinaires, mais je suis sûr que certaines améliorations raviront certains d’entre vous.

Perfectionnement de notre firewall en sortie

Jusqu’à présent, notre firewall était assez simpliste : en sortie, seuls certains ports classiques étaient autorisés : HTTP, SMTP, FTP, etc. Désormais, tous les ports sont autorisés, à quelques exceptions près (P2P et IRC notamment). Cela ouvre la voie à de nombreuses applications auparavant impossibles. Par exemple, déclencher l’allumage de votre ordinateur via Wake-On-LAN :)

Parallèlement, un mécanisme de logging a été mis en place pour ces ports non standards. Cela nous permet de détecter et bannir automatiquement les utilisateurs qui voudraient utiliser leur compte pour des activités malicieuses.

Authentification SMTP optionnelle, renforcement de l’anti-spam en sortie

L’authentification SMTP est devenue optionnelle lorsque vous êtes sur nos serveurs (HTTP, SSH). Vous n’avez donc plus besoin de spécifier de nom d’utilisateur et mot de passe lorsque vous configurez vos applications. Naturellement, vous devrez toujours vous authentifier si vous souhaitez utiliser nos serveurs SMTP depuis l’extérieur, par exemple votre poste de travail.

Par ailleurs, tous les emails envoyés depuis nos SMTP sont désormais passés à l’anti-spam. Jusqu’à présent, certains ne l’étaient pas, à cause de limitations techniques. Cela va donc contribuer à améliorer la réputation de nos serveurs SMTP.

Lutte contre le phishing

Grâce à notre pack gratuit, des comptes de phishing s’ouvrent hélas régulièrement chez alwaysdata, jusqu’à ce que nous les détections et fermions. Néanmoins, il arrive parfois que certains comptes passent à travers et restent en opération plusieurs semaines.

Nous avons depuis peu renforcé (encore !) notre lutte contre ces comptes malicieux. Nous ne rentrerons pas dans les détails, mais les mesures prises semblent avoir considérablement réduit le nombre de comptes frauduleux.

Grâce à cela, nous avons pu éliminer la vérification de l’IP à l’inscription. Pour lutter contre le phishing, nous avions auparavant utilisé un service externe qui, à partir d’une adresse IP, renvoyait un taux de risque d’avoir à faire à un fraudeur. Hélas, cela donnait lieu à nombreux faux-positifs. C’est terminé.

Le SSL en beta

Le SSL tourne déjà depuis plusieurs semaines en beta sur certains comptes. La seule chose qu’il manque avant le lancement officiel, c’est rénover notre système interne de facturation qui n’est pas capable aujourd’hui de gérer les options payantes sur un pack.

Si vous avez besoin de SSL, contactez-nous directement. Cela ne vous coûtera rien tant que nous sommes en beta, vous n’aurez qu’à nous fournir le certificat (et la clé).

Amélioration du serveur WebDAV

Notre serveur WebDAV a récémment amélioré sa compatibilité avec certains clients, notamment Windows 7 et XBMC. Pensez-y, cela permet d’accéder à vos fichiers alwaysdata en natif sur la quasi-totalité des OS, c’est extrêmement pratique !

Rénovation du monitoring

Nous avons commencé à rénover notre système interne de monitoring pour détecter (et corriger) plus tôt les problèmes. Nous avons aussi dans les cartons une application qui affiche l’état en temps réel des services alwaysdata. Elle est déjà développée, mais nous la déploierons lorsque nous aurons terminé nos travaux sur EC2 (pour éviter de l’héberger sur notre architecture principale).

Les vraies grosses nouveautés sont toujours prévues pour… bientôt ;)

PHP 5.3 disponible

Je sais que cette nouvelle réjouira beaucoup d’entre vous : PHP 5.3 est enfin disponible chez alwaysdata. Plus précisément : la version 5.3.2 est désormais installée et sélectionnable dans l’administration, ainsi que la 5.2.13 rajoutée au passage. Comme d’habitude, rien ne change automatiquement : c’est à vous de passer à 5.3 volontairement, si vous le souhaitez. Les nouveaux comptes, eux, sont par défaut en 5.3.

Cette version aura mis du temps à être disponible pour plusieurs raisons. La première, c’est que nous étions très occupés par la nouvelle architecture, entre autres. La seconde, c’est que le déploiement d’une nouvelle version majeure d’un langage (que ce soit PHP, Python ou Ruby) est une opération beaucoup plus compliquée qu’il n’y paraît. Le support de plusieurs versions d’un même langage non compatibles entre elles (par exemple, PHP 5.2 et 5.3) demande de gros efforts de cohabitation, et même des développements internes assez conséquents. C’est la raison pour laquelle alwaysdata est probablement l’un des seuls hébergeurs à vous proposer simultanément autant de versions différentes de PHP, Python et Ruby.

Message personnel à tous les Rubyistes : la version 1.9.1 est sur les rails, encore un peu de patience :)

alwaysdata en chinois | 中文alwaysdata

Après l’italien et l’arabe, voici le chinois qui arrive chez alwaysdata. Un grand merci à Rex Zhasm, Gang et un troisième traducteur anonyme pour leur travail conjoint ; chacun d’eux gagne un pack 10 Go.

Pour information, la Chine est le 3e pays – après la France et les États-Unis – en nombre de visiteurs arrivant sur notre page d’accueil. Cette version chinoise risque donc de faire grimper cette proportion en 2010, ce dont nous sommes ravis.

alwaysdata en arabe | ألويزدة بالعربية

L’arrivée de la traduction italienne a fait des émules, et c’est aujourd’hui la version arabe qui est disponible. Un grand merci à Nabil Hadaoui, épaulé d’Aghilès Aït-Larbi, qui auront réalisé la totalité de la traduction… en 2 jours ! Une part non négligeable de nos clients étant maghrébins, cela leur permettra d’utiliser désormais notre interface avec le confort de leur langue maternelle.

La vague d’internationalisation d’alwaysdata ne s’arrête toutefois pas là avec une version chinoise qui arrive à grands pas. Et puisque c’est bientôt Noël et que nous avons été sages, nous aimerions beaucoup voir des versions allemandes, portugaises et russes d’alwaysdata – je rappelle qu’un pack 10 go est offert pour toute traduction dans une nouvelle langue :)

“Aghilès Aït-Larbi”

alwaysdata in italiano

J’ai la joie de vous annoncer que l’italien est la quatrième langue à être disponible chez alwaysdata ! Toute l’équipe se joint à moi pour remercier très chaleureusement Roberto qui a pris l’initiative de cette traduction et l’a réalisée en un temps record.

Cela me donne l’occasion de dire qu’une vraie internationalisation d’alwaysdata fait partie des objectifs de 2010. Pour le moment, seule l’administration est traduite, de nombreux autres parties ne le sont pas : webmail, forum (avec des sections par langue), site de présentation, documentation…

Par ailleurs, nous offrons désormais un pack 10 Go à celui ou celle qui traduira alwaysdata dans une nouvelle langue (il vous suffit d’aller sur notre interface dédiée). Le pack sera gratuit tant que notre volontaire assure les (rares) mises à jour de texte – en moyenne moins d’une dizaine par mois.

Et la prochaine langue disponible pourrait bien être le hindi…

Actualité du moment

Un peu plus d’un mois après notre dernier billet, voici l’occasion de faire le point sur ce qui nous occupe en ce moment.

Migration du serveur HTTP : tout le monde est sur le nouveau serveur. Rien à signaler, les performances sont excellentes (en ce qui concerne uniquement la partie HTTP – code PHP/Python/Ruby) et nous n’allons pas tarder à commander un autre serveur pour anticiper l’afflux de nouveaux utilisateurs.

Migration du serveur SQL : nous attendons la livraison du nouveau serveur. Nous migrerons vers PostgreSQL 8.4 et MySQL 5.1. Une période d’une à deux semaines de pré-production (avec réplication des bases en production) est prévue, permettant à ceux qui le désirent de vérifier que leur site fonctionne normalement. Les incompatibilités devraient toutefois être minimales. Une fois le nouveau serveur en place (début octobre si la livraison ne tarde pas trop), les performances seront à nouveau excellentes sur tous les plans.

Nouvelles versions : de PHP (5.2.10), Python (2.6 et 3.1) et Ruby (1.8.7). Elles sont sélectionnables depuis l’administration alwaysdata, section Environnement.

Activation d’APC en PHP : le fameux accélérateur PHP est désormais activé chez tout le monde, pour des performances encore meilleures.

Nouvelle version de Roundcube : le webmail est passé à la version 0.3. Plus fonctionnelle, plus stable, plus jolie.

Rançon du succès : nous avons été victimes de notre premier DDoS la semaine dernière, d’où une indisponibilité d’une partie des comptes le 16 septembre dernier entre 1h et 2h du matin. Nous avons considérablement renforcé notre système de protection et sommes désormais immunes à des DDoS modérés comme celui-ci.

Et ensuite : nous travaillons d’arrache-pied sur ce qui nous permettra une révolution des fonctionnalités. Estimation prévue : courant octobre. D’autres fonctionnalités (nouveau système de statistiques, nouveau serveur WebDAV) ne vont pas tarder à arriver.

Filtrage des emails + quelques améliorations mineures

Nous proposons déjà, depuis plus d’un an, la possibilité d’écrire vos propres règles de filtrage email au format Sieve. Très peu d’entre vous l’utilisent, sûrement en raison de sa complexité et de sa difficulté à déboguer.

Nous lançons aujourd’hui une nouvelle interface permettant de créer facilement des règles de filtrage. Il vous suffit d’indiquer :

  • un champ sur lequel appliquer la règle. Par exemple, l’expéditeur ;
  • un type de condition. Par exemple, « est égal à » ;
  • un paramètre pour la condition. Par exemple, « contact@alwaysdata.com » ;
  • une action. Par exemple, « déplacer dans le dossier » ;
  • un paramètre pour l’action. Par exemple, « alwaysdata ».

Et voilà, avec cet exemple, tous les mails ayant comme expéditeur « contact@alwaysdata.com » arriveront automatiquement dans le dossier « alwaysdata ». De nombreux autres champs, conditions et actions sont disponibles. Ce peut être pratique, par exemple, pour gérer vos mailing-lists : les mails avec un en-tête « Reply-To » égal à « django-developers@googlegroups.com » sont stockés dans un dossier « django-dev ».

Ces règles de filtrage sont exécutées côté serveur, à la réception (via Sieve). C’est un avantage sur les filtres de votre client mail (Thunderbird ou Outlook, par exemple) puisqu’elles ne dépendent pas d’une application. Que vous lisiez vos emails avec votre client lourd, via le webmail ou avec votre téléphone portable, ces règles seront toujours exécutées.

Ces règles de filtrage sont accessibles en cliquant sur le bouton « Règles de filtrage » sur la page de modification d’une adresse email. N’hésitez pas à nous faire des retours, notamment si vous désirez davantage de champs ou conditions.

D’autres améliorations mineures ont également été déployées ces derniers jours :

  • apparition d’un menu « Messages » dans l’administration alwaysdata pour revoir la liste des emails que nous vous avons envoyés ;
  • la page des Factures a été remaniée pour la rendre (espérons) un peu plus claire ;
  • mod_xsendfile a été rajouté. Nous vous recommandons de l’utiliser, si possible, pour envoyer des fichiers depuis vos applications ;
  • l’administration alwaysdata est désormais protégée contre les attaques de type CSRF ;
  • nous chiffrons désormais les mots de passe SSH via Blowfish (bcrypt) plutôt que crypt, moins sécurisé. Si vous êtes parano comme nous, nous vous encourageons à redéfinir le mot de passe de vos utilisateurs SSH.

Sauvegardes : 30 jours de sérénité

Maintenant que nos soucis de stabilité et de performance sont derrière nous avec la mise en production des nouveaux serveurs, nous allons pouvoir nous rattraper avec de nouvelles fonctionnalités. Pour ouvrir le bal, un nouveau système de sauvegardes

Qui n’a jamais souhaité pouvoir retrouver des fichiers supprimés ou écrasés il y a plusieurs jours ? Jusqu’à présent, vous aviez accès à la sauvegarde de la veille. C’est bien, à condition d’être réactif et d’oublier week-ends et vacances…

Désormais, vous avez accès à la sauvegarde de chaque jour pour les 30 derniers jours. L’intégralité de votre compte est toujours sauvegardé : vos fichiers, vos emails, vos bases de données. Il suffit d’aller dans le répertoire ~/admin/backup/<date de la sauvegarde>/ pour récupérer vos données.

À bientôt pour d’autres nouveautés…

Modifications du php.ini

Depuis toujours, alwaysdata vous permet de modifier les options du php.ini, sans aucune restriction. Cette opération était toutefois assez fastidieuse : il fallait trouver la bonne page de notre wiki, créer un fichier php5.ini (ou php4.ini) depuis la version par défaut (que nous fournissons), effectuer les modifications sur le fichier puis, enfin, l’uploader sur nos serveurs.

Désormais, c’est beaucoup plus simple : un nouveau menu « Environnement > PHP » est apparu dans la console d’administration alwaysdata. Vous pourrez, sur cette page, indiquer très simplement les lignes que vous voulez rajouter au php.ini par défaut, et le tour est joué.

Par exemple, pour désactiver l’affichage des notices et porter la limite d’upload à 100 Mo, il suffit de rentrer :

error_reporting = E_ALL & ~E_NOTICE
upload_max_filesize = 100M

Nous étofferons rapidement cette page pour permettre de changer les paramètres les plus fréquents encore plus simplement.

Plusieurs utilisateurs SSH

Il est désormais possible de créer plusieurs utilisateurs SSH – autant que vous voulez. Cela ouvre la voie à des possibilités intéressantes comme partager un dépôt (Subversion, Git, etc.) en lecture seule.

Quelques détails techniques :

  • à chaque pack alwaysdata correspond un groupe (UNIX) du même nom ; chaque utilisateur SSH appartient à ce groupe. Un pack a forcément au moins un utilisateur du même nom : c’est l’utilisateur par défaut ;
  • le umask par défaut, qui était jusqu’à présent à 022, est passé à 002 ;
  • en conséquence, tous les fichiers créés jusqu’à maintenant dans votre pack ont les droits d’écriture sur l’utilisateur, pas sur le groupe. Cela veut dire que les utilisateurs SSH que vous créerez maintenant ne pourront pas modifier les fichiers existants. Pour pallier cela et donner au groupe les mêmes droits qu’à l’utilisateur, vous pouvez exécuter à la racine de votre pack la commande :

    find . -exec /bin/sh -c ‘echo “{}” && chmod g=`ls -ld “{}” | cut -c2-4` “{}”‘ \;

  • à vous de gérer les permissions de vos fichiers comme bon vous semble : vous avez toute la puissance (et les limitations) de la gestion de droits UNIX ;
  • parmi les limitations UNIX, vous ne pouvez pas changer le propriétaire d’un répertoire ou fichier. Contactez-nous si vous devez vraiment faire un chown.

N’hésitez pas à nous faire des retours et à nous dire dans quel but vous utilisez plusieurs utilisateurs SSH. Le support des ACLs peut notamment être envisageable si certains nous le demandent.

PS : la mise en production de cette fonctionnalité a provoqué quelques perturbations le 8 avril dernier, de 12h à 12h30. Les utilisateurs utilisant notre système d’environnement Python/Ruby ont été impactés et ont pu voir leur application ne plus démarrer momentanément. Nous vous présentons toutes nos excuses pour ce dérangement.