Dangereux hackers d'intérêt public

Depuis jeudi et jusqu’à samedi soir, en plein Paris, le festival Hackito Ergo Sum réunit la crème des hackers sur les questions de sécurité. Un enjeu fondamental. Mais que ne semble pas saisir le législateur. Un projet de loi européen étend les sanctions contre les hackers, sans véritable débat sur le contre-pouvoir qu’ils représentent à l’heure où les États étendent leurs contrôles sur les réseaux.

Source : owni.fr

Appliquer une configuration Varnish a chaud

Il est possible de recharger/changer de configuration Varnish a chaud. Pour cela utilisez varnishadm

  • Lister les VLC chargé
  • boot : configuration initial
  • 201204121052 : configuration précédemment chargé manuellement

Lister les configurations

vcl.list

Compile la configuration

Charge run.vcl et le nome 201204121059

vcl.load 201204121059 /usr/local/etc/varnish/run.vcl

Activer une configuration

Applique la configuration se nommant 201204121059

vcl.use 201204121059

Déconnexion

quit

Conserver l'IP du client derrière un reverse proxy

Lorsque Nginx est placé derrière un reverse proxy, celui ci avec une configuration de base logera L’IP des visiteur avec celle du reverse proxy et non avec L’IP des visiteurs.

Cela peut poser des problèmes par exemple dans le cas ou vous utilisez Akismet comme anti-spam pour vos commentaires.

Pour cela, dans varnish ajouter après

sub vcl_recv {

la ligne

set req.http.X-Forwarded-For = client.ip;

puis dans la configuration Nginx, dans la configuration http, ajouter

[Lire]

Sécuriser la configuration Nginx pour WordPress

Configuration de base pour le CMS WordPress

server {
  listen      192.168.1.1:80 default_server;
  server_name  _;
  • listen: Configuration pour le vhost par default (les accès a des server_name inconu par Nginx arriveront dans ce vhost)
  • server_name: _ indique le vhost par default, mettez vos ou votre server_name si vous voulez pas faire un vhost par default
  root        /var/www/domaine.ltd/www;
  index       index.php;

N’oublier pas de modifier le “root”

  location = /favicon.ico     {   allow all;  log_not_found off;  access_log off; }
  location = /robots.txt      {   allow all;  log_not_found off;  access_log off; }

On désactive les log et on ne log pas les not found pour ces deux fichiers

[Lire]

Postfix – Spécifier une IP différente en fonction du domaine de l'émetteur

sender_dependent_default_transport_maps va permettre, en fonction de l’émetteur de l’email sur votre serveur de spécifier une IP précise.

echo "/@domain-src-1\.ltd$/ domain_src_1:"  > /usr/local/etc/postfix/outgoingips.regexp
echo "/@domain-src-2\.ltd$/ domain_src_2:" >> /usr/local/etc/postfix/outgoingips.regexp
echo "/@domain-src-3\.ltd$/ domain_src_3:" >> /usr/local/etc/postfix/outgoingips.regexp

Création des routes, ajouter dans master.cf les " entrées " suivante

domain_src_1   unix -       -       n       -       -       smtp
    -o smtp_bind_address=192.168.0.1
    -o smtp_helo_name=domain-src-1.ltd
    -o syslog_name=postfix-domain_src_1
domain_src_2   unix -       -       n       -       -       smtp
    -o smtp_bind_address=192.168.0.2
    -o smtp_helo_name=domain-src-2.ltd
    -o syslog_name=postfix-domain_src_2
domain_src_3   unix -       -       n       -       -       smtp
    -o smtp_bind_address=192.168.0.3
    -o smtp_helo_name=domain-src-3.ltd
    -o syslog_name=postfix-domain_src_3

Puis ajouter dans main.cf :

[Lire]

Analyser les requêtes MySQL

Percona a développé un outils permettant de parser les logs tcpdump et les slow query MySQL.

Cela nous permet donc de pouvoir rapidement localiser les requêtes lentes.

Pour avoir le top10 des requêtes lentes en " direct " via tcpdump :

tcpdump -i en0 port 3306 -s 65535 -c 10000 -x -n -q -tttt | pt-query-digest --type tcpdump --report-format=profile --limit=10

Via le slow query log :

pt-query-digest --limit=10 /var/log/mysql/slow.log

Détail sur l'utilisation de la mémoire vive par MySQL

L’utilisation maximum de la mémoire vive par MySQL se calcule de la manière suivante d’après mysqltuner.pl :

key_buffer_size + max_tmp_table_size + ( read_buffer_size + read_rnd_buffer_size + sort_buffer_size + thread_stack + join_buffer_size ) * max_connections

max_tmp_table_size : si tmp_table_size > max_heap_table_size -> max_heap_table_size sinon tmp_table_size

Configurer Varnish pour Drupal

Dans cet article, uniquement les spécificité de configuration pour Drupal seront indiqué

Dans la vcl_recv, on nettoie les cookies si vous ne l’avez pas déjà fait :

set req.http.Cookie = regsuball(req.http.Cookie, "(^|;\s*)(__[a-z]+|has_js)=[^;]*", "");
set req.http.Cookie = regsub(req.http.Cookie, "^;\s*", "");
if (req.http.Cookie ~ "^\s*$") {
    unset req.http.Cookie;
}

On spécifie ce qu’il faut cacher, ou pas :

if (req.url ~ "^/sites/") {
    unset req.http.Cookie;
}
if (req.url ~ "^/misc/") {
    unset req.http.Cookie;
}
if (req.url ~ "^/modules/.*\.(js|css)\?") {
    unset req.http.Cookie;
}
if (req.url ~ "cron.php") {
    return (pass);
}