Script pour supprimer des snapshots sous ZFS

Adminstration Server Linux No Comments »

Récemment j’ai eu un petit bug sur un de nos serveurs de fichier NexentaStor, une des tâches de snapshot a bugué. Elle créait un snapshot toutes les 5 minutes.

Voici donc un petit script à exécuter pour supprimer l’ensemble des snapshots

#!/bin/bash
for snapshot in $(zfs list -H -t snapshot | cut -f 1)
do
zfs destroy $snapshot
done

 

WPAD : Auto-configuration d’un serveur proxy

Administration des Réseaux, Adminstration Server Linux 4 Comments »

Web Proxy Auto-Discovery. Il s’agit d’un protocole imaginé par Microsoft, qui permet d’effectuer automatiquement le paramétrage du server proxy de son navigateur.

Server DNS

Par défaut le browser cherche le sous-domaine wpad du domaine dans le quel on est connecté ensuite il lira a la racine de de ce domaine le fichier wpad.dat (http://wpad.mondomaine.lan/wpad.dat
Voici un exemple de ligne a mettre dans votre BIND

intranet        A       172.16.1.100
wpad            CNAME   intranet

Server DHCP

Dans la config du server DHCP il faut ajouter l’option 252, et lui indiqué le lien du fichier de configuration, les lignes suivante doivent se mettre en dehors d’une définition de range

option wpad-url    code 252 = text;
option wpad-url     "http://wpad.mondomaine.lan/wpad.dat\n";

Server WEB

Il faut maintenant configurer un vhost pour ce sous domaine


 DocumentRoot /home/website/wpad
 ServerName wpad.mondomaine.lan
 ServerAlias 172.16.1.100
 AddType application/x-ns-proxy-autoconfig .dat
 AddType application/x-ns-proxy-autoconfig .pac
 Redirect permanent /wpad.dat /proxy.pac
 
 Options FollowSymLinks MultiViews
 AllowOverride All
 Order allow,deny
 allow from all
 

Le fichier de config

Dans notre exemple nous avons définit la racine du vhost là /home/website/wpad

On crée le fichier proxy.pac

vi /home/website/wpad/proxy.pac

et on copie le code suivant

function FindProxyForURL(url, host)
{
if( shExpMatch(url, "!https:*") || isPlainHostName(host) || dnsDomainIs(host, ".mondomaine.lan"))
return "DIRECT";
else
return "PROXY srvproxy:3128";
}

Cette fonction va permettre de définir quand utiliser le proxy et de spécifier le proxy en question. Ici on se connecte directement au machine du même domaine par contre tous le reste utilise le proxy

Plugins Fail2Ban pour Munin

Adminstration Server Linux, Sécurité 14 Comments »

Ne trouvant pas mon bonheur parmi les plugins munin pour fail2ban j’ai décidé de l’écrire moi même. Le plugins s’adapte automatiquement à votre fail2ban car il récupère les jails activées.

On crée le fichier /usr/share/munin/plugins/fail2ban et on le remplit le avec le code ci-dessous

#! /bin/bash

PROGNAME=fail2ban
STATEDIR=/var/lib/munin/plugin-state
LISTJAIL=$(fail2ban-client status | grep " Jail list:" | sed 's/`- Jail list:\t\t//g' | sed 's/,//g')

if [ "$1" = "config" ]
then
 echo 'system.type ABSOLUTE'
 echo 'graph_title Fail2ban'
 echo 'graph_vlabel Number of ban'
 echo 'graph_category Security'
 for f  in $LISTJAIL; do
 echo "$f.label $f"
 done
 exit 0
fi

for f  in $LISTJAIL; do
 echo "$f.value $(fail2ban-client status $f | grep " Currently banned:" | sed 's/   |- Currently banned:\t//g')"
done

Ensuite on active le plugins en créant le lien symbolyque

ln -s /usr/share/munin/plugins/fail2ban /etc/munin/plugins/

Il faut également élever les privilèges de munin pour qu’il puisse utiliser fail2ban

vi /etc/munin/plugin-conf.d/munin-node

On ajoute à la fin :

[fail2ban]
user root

On termine on redémarrant munin

/etc/init.d/munin-node restart

Et vous devriez avoir après quelques jours un graphique semblable 🙂

Graph Munin Fail2ban

Graph Munin Fail2ban

Bloquer les scans de dossier par dictionnaire sur votre serveur WEB

Administration des Réseaux, Adminstration Server Linux 4 Comments »

Je vous expliquais hier comment se protéger des scans Dfind. Aujourd’hui nous allons aller un peu plus loin dans la sécurisation de son server web en bannisant tous requêtes se faisant directement sur l’ip et non via un nom de domaine.

Concrètement dans les logs d’apache vous devriez avoir quelque chose de semblable :

[Fri May 01 14:52:11 2009] [error] [client 24.123.67.41] client denied by server configuration: /var/www/phpMyAdmin
[Fri May 01 14:52:11 2009] [error] [client 24.123.67.41] client denied by server configuration: /var/www/PHPMYADMIN
[Fri May 01 14:52:11 2009] [error] [client 24.123.67.41] client denied by server configuration: /var/www/phpmyadmin/main.php
[Fri May 01 14:52:12 2009] [error] [client 24.123.67.41] client denied by server configuration: /var/www/pHpMyAdMiN
[Fri May 01 14:52:12 2009] [error] [client 24.123.67.41] client denied by server configuration: /var/www/PhPmYaDmIn
[Fri May 01 14:52:13 2009] [error] [client 24.123.67.41] client denied by server configuration: /var/www/phpMYadmin
[Fri May 01 14:52:13 2009] [error] [client 24.123.67.41] client denied by server configuration: /var/www/PHPmyadmin
[Fri May 01 14:52:13 2009] [error] [client 24.123.67.41] client denied by server configuration: /var/www/PHPMYadmin
[Fri May 01 14:52:14 2009] [error] [client 24.123.67.41] client denied by server configuration: /var/www/phpmyADMIN

On  commence par préparer apache, en effet on va déclarer un vhost qui s’occupera de traiter les requêtes sur l’IP

On crée le dossier /var/empty et on lui donne les droits adéquats pour que apache puisse lire le dossier

mkdir /var/empty
chown www-data:www-data -R /var/empty
chmod 664 -R /var/empty

Ensuite vous créez le vhost

vi /etc/apache2/sites-available/nodnsuse

Et vous copier les lignes suivantes dedans :


        DocumentRoot /var/empty/
        
                Order Deny,Allow
                Deny from All
        

Vous activez le vhost et relancez apache2

a2ensite nodnsuse
/etc/init.d/apache2 restart

On installe Fail2Ban si vous ne l’avez pas encore fait

apt-get update && apt-get install fail2ban

On edit le fichier jail.conf pour y ajouter la nouvelle règle

vi /etc/fail2ban/jail.conf

On ajoute à la fin du fichier les lignes suivantes :

[apache-nodnsuse]

enabled = true
port    = http,https
filter  = apache-nodnsuse
logpath = /var/log/apache*/*error.log
maxretry = 1
banTime = 86400

On ajoute le fichier de détection

vi /etc/fail2ban/filter.d/apache-nodnsuse.conf

Et on y ajoute :

[Definition]
failregex = [[]client []] client denied by server configuration: /var/empty/.*
ignoreregex=

Vous redémarrez enfin Fail2Ban et consulter les logs pour voir qui sera le premier gagnant

/etc/init.d/fail2ban restart && tail -f -n 30 /var/log/fail2ban.log

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS Connexion
ipv6 ready