Certificats SSL pour Apache avec Let’S Encrypt

Adminstration Server Linux, Debian, Sécurité No Comments »

Petit « How-to » pour l’installation de certificats SSL Let’s Encprypt pour Apache.
On install Git pour pouvoir récupérer l’environnement Let’S Encrypt

git clone https://github.com/letsencrypt/letsencrypt

On install ensuite l’environement

git clone https://github.com/letsencrypt/letsencrypt

On coupe temporairement Apache

service apache stop

On lance ensuite la commande

cd letsencrypt
./letsencrypt-auto certonly --standalone -d www.mondomaine.be --email moi@mondomaine.be --agree-tos

Il faut ensuite reconfigurer le vhost en ajoutant/remplaçant les lignes suivante

SSLEngine on
SSLProtocol -all -SSLv3 +TLSv1.2
SSLCipherSuite ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM

SSLCertificateFile /etc/letsencrypt/live/www.mondomaine.be/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/www.mondomaine.be/privkey.pem

On relance finalement apache

service apache2 restart && service apache2 status

Authentification NTLM sur GLPI (Apache/Debian)

Administration des Réseaux, Adminstration Server Linux, Debian, Windows Seven No Comments »

imagesUtiliser l’authentification via LDAP/Active Directory c’est bien, mais il faut retaper son login/mot de passe à chaque fois.

Une solution est d’utiliser l’authentification NTLM au niveau d’Apache

La suite de ce tuto/mémo par du principe que votre installation de GLPI fonctionne déjà

Version:

  • Apache : 2.2.22
  • Debian 7.1

Installation des paquets nécessaire :

aptitude install libapache2-authenntlm-perl

Et ensuite on active le module apache

a2enmod authnz_ldap

Configuration:

La configuration d’apache est assez simple

vi /etc/apache2/conf.d/glpi

Ensuite on l’édite comme ceci:

Alias /glpi /usr/share/glpi
Alias /helpdesk /usr/share/glpi

PerlModule Apache2::AuthenNTLM


  DirectoryIndex index.php
  Options FollowSymLinks
  PerlAuthenHandler Apache2::AuthenNTLM
  AuthType ntlm,basic
  AuthName paipartners
  require valid-user
  PerlAddVar ntdomain "mondomaine.com dc1 dc2"
  PerlSetVar defaultdomain mondomaine.com
  PerlSetVar splitdomainprefix 1
  PerlSetVar ntlmdebug 0
  PerlSetVar ntlmauthoritative off

Dans un premier temps, il est utile de mettre ntlmdebug à 1 voir 2 pour avec des logs

Configuration du client

Sur Windows 7 il faut modifier ou créer une clé registre

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]
 "LmCompatibilityLevel"=dword:00000001

Si le GLPI ne se trouve pas dans l’intranet, il faut également l’ajouter aux sites de confiances de IE

Configuration de GLPI

Il faut se rendre en super-admin dans :

Accueil >Configuration >Authentification >Autre méthode d’authentification

Et ajouter dans « Champs de stockage de l’identifiant dans la requête HTTP »

REMOTE_USER

Ensuite on termine par un reload d’Apache

apache2ctl restart

 

 

 

Update : Installation de Cacti et des plugins Network Weathermap et Discovery

Adminstration Server Linux, Debian, Supervision 4 Comments »

Le tuto précédent étant dépassé, je ai refait l’installation à partir d’une debian squeeze et cacti 0.8.7g. Pour les détails et/ou explication référez vous à l’ancien tuto

Installation du serveur LAMP

aptitude update && aptitude full-upgrade
aptitude install apache2 mysql-server php5 php5-cli snmp rrdtool phpmyadmin php-pear unzip patch

Installation de cacti

aptitude install cacti cacti-spine

Installation du Plugin Architecture

cd /tmp
wget  http://mirror.cactiusers.org/downloads/plugins/cacti-plugin-0.8.7g-PA-v2.8.tar.gz
tar xvf cacti-plugin-0.8.7g-PA-v2.8.tar.gz
cd cacti-plugin-arch
cp cacti-plugin-0.8.7g-PA-v2.8.diff /usr/share/cacti/site/
cd /usr/share/cacti/site/
patch -p1 -N < cacti-plugin-0.8.7g-PA-v2.8.diff
mysql -u root -p cacti < /tmp/cacti-plugin-arch/pa.sql
vi include/config.php

Remplacer

$url_path = "/";

par

$url_path = "/cacti/";

Installation du Plugin Network Weathermap

cd  /usr/share/cacti/site/plugins
wget http://www.network-weathermap.com/files/php-weathermap-0.97a.zip
unzip php-weathermap-0.97a.zip
vi weathermap/editor.php

Remplacer

$ENABLED=false;

par

$ENABLED=true;
chown www-data weathermap/configs -R
chown www-data /usr/share/cacti/site/plugins/weathermap/output -R

Activation du plugin

-> User Management -> admin -> cocher [Plugin Management]

-> Plugin Management

aptitude update && aptitude full-upgrade

aptitude install apache2 mysql-server php5 php5-cli snmp rrdtool phpmyadmin php-pear unzip patch

Les paquets suivants ont des dépendances non satisfaites :
apache2-mpm-prefork: Est en conflit avec: apache2-mpm qui est un paquet virtuel
apache2-mpm-worker: Est en conflit avec: apache2-mpm qui est un paquet virtuel
Les actions suivantes permettront de résoudre ces dépendances :

Conserver les paquets suivants dans leur version actuelle :
1)     apache2-mpm-worker [Non installé]

Accepter cette solution ? [Y/n/q/?]Y

aptitude install cacti cacti-spine

ATTENTION : le répertoire d’installation a changé !                                                                                                        │
libphp-adodb n’est plus installé dans /usr/share/adodb. Le nouveau chemin d’installation (« include path » pour php) est maintenant /usr/share/php/adodb.  │
Veuillez mettre à jour votre fichier php.ini. Par ailleurs, vous devrez peut-être également modifier la configuration de votre serveur web.

cd /tmp
wget  http://mirror.cactiusers.org/downloads/plugins/cacti-plugin-0.8.7g-PA-v2.8.tar.gz
tar xvf cacti-plugin-0.8.7g-PA-v2.8.tar.gz

cd cacti-plugin-arch
cp cacti-plugin-0.8.7g-PA-v2.8.diff /usr/share/cacti/site/
cd /usr/share/cacti/site/

patch -p1 -N < cacti-plugin-0.8.7g-PA-v2.8.diff
mysql -u root -p cacti < /tmp/cacti-plugin-arch/pa.sql

vi include/config.php
$url_path = « /cacti/ »;

cd  /usr/share/cacti/site/plugins
wget http://www.network-weathermap.com/files/php-weathermap-0.97a.zip

vi weathermap/editor.php
$ENABLED=true;

chown www-data weathermap/configs -R

chown www-data /usr/share/cacti/site/plugins/weathermap/output -R

Installation de Cacti et des plugins Network Weathermap et Discovery

Administration des Réseaux, Adminstration Server Linux, Debian, Supervision 33 Comments »

Introduction

Cacti est un logiciel libre de supervision serveur basé sur la puissance de stockage de données de RRDTool. Il fonctionne grâce à un serveur web équipé d’une base de données et du langage PHP. Il peut-être considéré comme le successeur de MRTG et également comme une interface d’utilisation de RRDTool.

Il permet de représenter graphiquement divers statuts de périphériques réseau utilisant SNMP ou encore grâce à des scripts (Bash, PHP, Perl, VBs…) pour avoir par exemple l’espace disque restant ou bien la mémoire utilisée, la charge processeur ou le ping d’un élément actif. Les données sont récoltées auprès des différents agents SNMP (ou auprès des scripts locaux) grâce à un script php.

L’intérêt de ce logiciel réside principalement dans son principe de modèles (Templates) qui permet de créer de manière générique les graphiques afin de pouvoir les réutiliser. De manière générale, tout est modèle sous Cacti. Cela est avantageux lorsque de nombreuses données identiques doivent être observées, mais cela peut se révéler fastidieux à configurer lorsque les données sont hétérogènes.

Version des logiciels utilisés

Debian : Net Install Squeeze
Cacti : 0.8.7e-1.1
Plugin Architecture : 2.6

Installation du server LAMP

Une fois la distribution installée et la configuration réseau faites, on met à jour les dépôts et on met tous a jour, même si normalement tous doit être déjà à jour

aptitude update && aptitude full-upgrade

On installe maintenant le server apache2 avec php5 et mysql-server, plus d’autre outil nécessaire a cacti

aptitude install apache2 mysql-server php5 php5-cli snmp rrdtool phpmyadmin php-pear

Réponse aux questions durant l’installation :
Nouveau mot de passe du superutilisateur de MySQL : superpass
Confirmation du mot de passe du superutilisateur de MySQL : superpass
Serveur web à reconfigurer automatiquement: Apache2
Faut-il configurer la base de données de phpmyadmin avec dbconfig-common : oui
Mot de passe de l’administrateur de la base de données : superpass
Mot de passe de connexion MySQL pour phpmyadmin : laisser vide, il sera générer aléatoirement

Votre server web est fonctionnel, vous pouvez tester en allant sur http://ip-du-server/phpmyadmin

Installation de Cacti

aptitude install cacti cacti-spine

Réponse aux questions durant l’installation :
Faut-il configurer la base de données de cacti avec dbconfig-common : oui
Mot de passe de l’administrateur de la base de données : superpass
Mot de passe de connexion MySQL pour cacti : laisser vide, il sera générer aléatoirement
Type de serveur web: Apache2

Si tous c’est bien dérouler vous devriez avoir accès à l’interface de Cacti via cette adresse http://ip-du-server/cacti
Le login:password par défaut est admin:admin, il vous sera demandé de le changer immédiatement au premier login.
C’est terminer pour la partie installation de cacti

Installation du Plugin Architecture

Une grande force de Cacti est sa faculté d’utiliser des autres outils dans des plugins intégrés à son interface. L’avantage sera alors de pouvoir gérer plusieurs logiciels avec une seule plate-forme.

On le trouve sur le site http://cactiusers.org/downloads/

On commence par installer de quoi dézip et ensuite on télécharge l’archive

aptitude install unzip
cd /tmp
wget  http://mirror.cactiusers.org/downloads/plugins/cacti-plugin-0.8.7e-PA-v2.6.zip
unzip cacti-plugin-0.8.7e-PA-v2.6.zip

On copie les fichiers pré modifié dans cacti

cd /tmp/cacti-plugin-arch/files-0.8.7e
cp -r * /usr/share/cacti/site/

On met à jour la base de données

mysql -u root -p cacti < pa.sql

On va maintenant configurer et corriger quelque bug dans la configuration

cd /usr/share/cacti/site/
vi include/global.php

À la ligne 56 remplacer

$config['url_path'] = '/';

Par

$config['url_path'] = '/cacti/';

À la ligne 202 remplacer

include($config["library_path"] . "/adodb/adodb.inc.php");

Par

include("/usr/share/php/adodb/adodb.inc.php");

Le Plugin Architecture est installé et configuré, vous pouvez l’activé dans les permissions des utilisateurs
utilites -> user management -> admin -> Realm Permissions
Cochez Plugin Management

Ajout de plugins

On se place dans le dossier plugins de Cacti

cd  /usr/share/cacti/site/plugins

Network Weathermap

PHP Weathermap est un outil particulièrement utile qui génère des cartes graphiques pour mesurer les bandes passantes (en pourcentage ou en absolu) de vos liens réseaux.
Les cartes vont vous montrer s’il existe des goulots d’étranglements (bottlenecks) sur votre réseau et ainsi vous permettre de mettre à jour le bon lien réseau au lieu de les mettre à jour au hasard et à grand frais.

wget http://www.network-weathermap.com/files/php-weathermap-0.96a.zip
unzip php-weathermap-0.96a.zip
rm php-weathermap-0.96a.zip

Petite correction d’un bug connu

vi /usr/share/cacti/site/plugins/weathermap/setup.php

À la ligne 146 remplacer

if($_REQUEST["action"] == 'viewmapcycle')

Par

if (isset( $_REQUEST["action"] ) && $_REQUEST["action"] == 'viewmapcycle')

Discovery

Ce plugin ajoute la possibilité de découvrir automatiquement tous les périphériques d’un sous-réseau qui ne sont pas surveillées par Cacti et vous indique si SNMP est activé.
Disponible sur cactiusers.org

mkdir discovery
cd discovery/
wget http://cactiusers.org/downloads/discovery.zip
unzip discovery-0.8.5.zip
rm discovery-0.8.5.zip

Activation des plugins

Pour activer les plugins il suffit de remplir un tableau dans le fichier de configuration global

cd  /usr/share/cacti/site/
vi include/global.php

À la ligne 44 on remplace

$plugins = array();
//$plugins[] = 'thold';

Par

$plugins = array(
	'weathermap',
	'disco’
	) ;

Et enfin dans utilites -> user management -> admin -> Realm Permissions
Cochez:
Plugin -> Weathermap: Configure/Manage
Plugin -> Weathermap: View
View Host Auto-Discovery

Finalisation

On termine l’installation par créer le dossier rra si il n’a pas été créé automatiquement et on change le propriétaire des fichiers pour que tous fonctionne bien

mkdir  /usr/share/cacti/site/rra
chown www-data: -R usr/share/cacti/site

C’est fini, il ne vous reste plus cas ajouter vos devices et créer votre carte réseau.

Liens additionnels

Installation et configuration du mod_security pour apache2 sous Debian

Adminstration Server Linux, Debian, Sécurité 14 Comments »

Le module Security est une sorte de firewall pour Apache qui apporte une solution aux problèmes de sécurité et d’attaques applicatives web. En effet, malgrés le déploiement de mesures de sécurité élevées sur un serveur web, il est toujours possible qu’une simple erreur de programmation dans un script « cgi » ou « php » mette en péril l’intégrité et la confidentialité des données stockées.
Pour faire simple ce module bloque les requêtes pouvant être dangereuses.
Exemple en image :

modsecurity

Installation.

Ce module n’est pas installé de base avec Apache, je vais vous proposer deux méthodes à vous de choisir la votre :
L’installation par la commande dpkg est très simple, wget doit être installé sur votre système.

wget http://etc.inittab.org/~agi/debian/libapache-mod-security2/mod-security-common_2.5.9-1_all.deb
wget http://etc.inittab.org/~agi/debian/libapache-mod-security2/libapache-mod-security_2.5.9-1_i386.deb

Installation du paquet :

dpkg -i mod-security-common_2.5.9-1_all.deb libapache-mod-security_2.5.9-1_i386.deb

Voila le module est installé. Maintenant on active ce dernier auprès d’Apache.

 a2enmod mod-security

L’installation du module Security est terminée

Configuration

La configuration du module Security consiste dans sa plus grande partie à ajouter des règles “de filtrage”.
Ces règles sont séparées en plusieurs fichiers (blacklist, proxy, règles de bases, rootkits, etc…).
On créé un répertoire modsecurity2 dans le répertoire /etc/apache2/, on se place dedans et on télécharge les règles.

mkdir /etc/apache2/modsecurity2/
cd /etc/apache2/modsecurity2/
wget http://www.gotroot.com/downloads/ftp/mod_security/2.0/apache2/apache2-gotrootrules-modsec2.0-latest.tar.gz

Une fois le téléchargement terminé nous allons décompresser l’archive contenant les règles.

tar zxvf apache2-gotrootrules-modsec2.0-latest.tar.gz

Puis créez un fichiers nommé mod_security pour y ajouter les lignes suivantes :

vi /etc/apache2/conf.d/mod_security
# A adapter en fonction de la version du module qui est utilisé.


# Analyse uniquement les requêtes dynamiques.
#SecFilterEngine DynamicOnly

# Active le filtrage.
SecFilterEngine On

# Rejette les requêtes ayant le status 500.
SecFilterDefaultAction "deny,log,status:500"

# Quelques règles de bases.
SecFilterScanPOST On
SecFilterCheckURLEncoding On
SecFilterCheckCookieFormat On
SecFilterCheckUnicodeEncoding Off
SecFilterNormalizeCookies On
# Active la version 1 (RFC 2965) cookies
SecFilterCookieFormat 1

# Ne donne aucune précision sur le serveur web.
SecServerResponseToken Off

# Scanner le flux de sortie.
#SecFilterScanOutput On
#SecFilterOutputMimeTypes "(null) text/html text/plain"

# Autorise presques toutes les valeurs de bytes.
SecFilterForceByteRange 1 255

# Masquer le serveur.
#fake server banner - NOYB used - no one needs to know what we are using
SecServerSignature "NOYB"

#SecUploadDir /tmp
#SecUploadKeepFiles Off

# Only record the interesting stuff
SecAuditEngine RelevantOnly
SecAuditLog logs/audit_log

# Configuration du module de debuggage.
SecFilterDebugLevel 0
SecFilterDebugLog /var/logs/apache2/modsec_debug_log

# Règles d'exlusion.
# Cette ligne doit rester devant les autres.
Include /etc/apache2/modsecurity2/exclude.conf

# Règles de protections.
Include /etc/apache2/modsecurity2/rules.conf

# Règles dédiées au spam.
Include /etc/apache2/modsecurity2/blacklist.conf

# Règles de filtrage des hotes, proxy, etc...
Include /etc/apache2/modsecurity2/blacklist2.conf

# Règles interdisant certains client, robots, etc...
Include /etc/apache2/modsecurity2/useragents.conf

# Protection contre les rootkits.
Include /etc/apache2/modsecurity2/rootkits.conf

# Règle empéchant l'utilisation du serveur comme proxy.
# A utiliser seulement si le serveur n'est pas en mod proxy.
Include /etc/apache2/modsecurity2/proxy.conf

# Quelques règles de plus, uniquement pour Apache2.
Include /etc/apache2/modsecurity2/apache2-rules.conf

La configuration du module est terminé, il ne reste plus qu’a relancer Apache.

/etc/init.d/apache2 restart

Mise à jour des règles.

Un script a été conçu pour permettre le téléchargement des nouvelles règles automatiquement.
Cette méthode nécessite l’ajout d’une tâche dans votre crontab.

Dans le répertoire /etc/cron.d/ nous allons créer un fichier modsecurity contenant ceci :

vi /etc/cron.d/modsecurity
# Tout les jours à 5h30 du matin.
30 5 * * * /etc/apache2/modsecurity2/modsec.sh

Ce script bash a été adapté pour une distribution Debian, il aura pour nom modsec.sh et sera placé dans /etc/apache2/modsecurity2/

vi /etc/apache2/modsecurity2/modsec.sh
#!/bin/sh

# Autoupdater for modsec rulesets.
 #
 # This script will attempt to update your rulefiles, and restart apache.
 # If it apache does not start after changing rules, it will roll back to
 # the old ruleset and restart apache again.
 #
 # Version: $Id: modsec.sh,v 1.1 2005/06/29 18:07:53 olei Exp $
 # URL: http://cs.evilnetwork.org/cycro
 # Copyright 2005, All Rights Reserved

APACHESTART="/usr/sbin/apache2ctl start"
 MODSECPATH="/etc/apache2/modsecurity2 "
 APACHEPID="/var/run/apache2.pid"

##########################################################################
 ######### you probably don't need to change anything below here ##########
 ##########################################################################

# urls
 BLACKLIST="http://www.gotroot.com/downloads/ftp/mod_security/blacklist.conf"
 RULES="http://www.gotroot.com/downloads/ftp/mod_security/rules.conf"
 APACHE2="http://www.gotroot.com/downloads/ftp/mod_security/apache2-rules.conf"

# internal
 PID=`cat ${APACHEPID}`
 UPDATED=0

echo -n "Changing PWD: "
 cd ${MODSECPATH}
 echo `pwd`

# blacklist
 echo -n "Updating blacklist.conf: "
 /usr/bin/wget -t 30 -O blacklist.conf.1 -q ${BLACKLIST}
 if [ `md5sum blacklist.conf | cut -d " " -f1` != `md5sum blacklist.conf.1 | cut -d " " -f1` ] ; then
 /bin/mv blacklist.conf blacklist.conf.bak
 /bin/mv blacklist.conf.1 blacklist.conf
 UPDATED=`expr $UPDATED + 1`
 echo "ok."
 else
 echo "allready up to date."
 /bin/rm -f blacklist.conf.1
 fi

# rules
 echo -n "Updating rules.conf: "
 /usr/bin/wget -t 30 -O rules.conf.1 -q ${RULES}
 if [ `md5sum rules.conf | cut -d " " -f1` != `md5sum rules.conf.1 | cut -d " " -f1` ] ; then
 /bin/mv rules.conf rules.conf.bak
 /bin/mv rules.conf.1 rules.conf
 UPDATED=`expr $UPDATED + 1`
 echo "ok."
 else
 echo "allready up to date."
 /bin/rm -f rules.conf.1
 fi

# apache2 rules
 echo -n "Updating apache2-rules.conf: "
 /usr/bin/wget -t 30 -O apache2-rules.conf.1 -q ${APACHE2}
 if [ `md5sum apache2-rules.conf | cut -d " " -f1` != `md5sum apache2-rules.conf.1 | cut -d " " -f1` ] ; then
 /bin/mv apache2-rules.conf apache2-rules.conf.bak
 /bin/mv apache2-rules.conf.1 apache2-rules.conf
 UPDATED=`expr $UPDATED + 1`
 echo "ok."
 else
 echo "allready up to date."
 /bin/rm -f apache2-rules.conf.1
 fi

# try restart
 if [ "$UPDATED" -gt "0" ]; then
 echo -n "Restarting apache: "
 /bin/kill -HUP ${PID} 2>/dev/null
 # did it work?
 if `/bin/kill -CHLD ${PID} >/dev/null 2>&1`; then
 echo "ok."
 exit 0
 fi
 echo "error. Apache not running."

# blacklist
 echo -n "Rolling back blacklist.conf: "
 /bin/mv blacklist.conf blacklist.conf.new
 /bin/mv blacklist.conf.bak blacklist.conf
 echo "ok."

# rules
 echo -n "Rolling back rules.conf: "
 /bin/mv rules.conf rules.conf.new
 /bin/mv rules.conf.bak rules.conf
 echo "ok."

# apache2 rules
 echo -n "Rolling back apache2-rules.conf: "
 /bin/mv apache2-rules.conf apache2-rules.conf.new
 /bin/mv apache2-rules.conf.bak apache2-rules.conf
 echo "ok."

# try starting httpd again
 `${APACHESTART}`
 PID=`cat ${APACHEPID}`

# did that fix the problem?
 if `/bin/kill -CHLD ${PID} >/dev/null 2>&1`; then
 echo "That did the trick."
 exit 0
 fi

echo "Fatal: Apache still not running! Run apache2ctl -t to find the error."
 exit 999
 fi

Il faut rendre ce script exécutable.

chmod +x /etc/apache2/modsecurity2/modsec.sh

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

Redirection vers https avec Apache2

Adminstration Server Linux No Comments »

La manip suivante explique comment rediriger automatiquement les visiteurs d’un vhost en HTTP vers un en HTTPS

Première étape activer le mode REWRITE

a2enmod rewrite

Ensuite on édite le fichier de déclaration du vhost et on ajoute


ServerName monsite.be
ErrorLog /var/log/apache2/error.log
CustomLog /var/log/apache2/access.log combined
RewriteEngine on
RewriteLog /var/log/apache2/https_rewrite.log
RewriteLogLevel 1
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [L,R]

On termine en redémarrant apache

/etc/init.d/apache2 restart

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