Apache2 : système de blacklist

Après avoir installé mon serveur web (Apache) et un serveur d’applications J2EE (GlassFish) je me suis vite rendu compte, après une semaine d’exécution, que les logs du serveur prennaient de plus en plus de place. En regardant rapidement les fichiers de logs on se rend très vite compte que le serveur se fait “spammer” des URL du type : phpmyadmin, admin, mysql, … J’ai décidé de mettre en place un système de blacklistage instégré à Apache. Configuration de Apache Pour cela il faut installer le module mod_rewrite (inclus par défaut avec Apache2). On ajoute donc les règles dans le fichier de configuration d’apache (/etc/apache2/sites-avaible/) RewriteEngine On RewriteMap hosts-deny txt:/etc/apache2/hosts.deny RewriteCond ${hosts-deny:%{REMOTE_HOST}|NOT-FOUND} !=NOT-FOUND [OR] RewriteCond ${hosts-deny:%{REMOTE_ADDR}|NOT-FOUND} !=NOT-FOUND RewriteRule ^/.* - [F]</pre> Ainsi les adresses IP ou nom de domaine listés dans le fichier /etc/apache2/hosts.deny recevront le code réponse : 403 Forbidden. On crée le fichier /etc/apache2/hosts.deny : adresse_ip - nom_de_domaine - Penser à ajouter le tiret “-” à la fin de chaque entrée dans ce fichier. Page d’erreur personnalisée Si vous voulez rediriger les adresses blacklilstées vers une page personnalisée il faut modifier les règles dans le fichier de configuration de Apache : Remplacez : RewriteRule ^/.* - [F] Par :...

Read article

Passerelle entre Apache et Tomcat

Dans le but de déployer mes applications J2ee j’ai installé GlassFish (avec Tomcat). Je souhaitais pouvoir utiliser ce serveur sur le port 80 tout en ayant Apache qui écoute sur ce port. Apache et Tomcat étant des produits développés par la même équipe il existe une solution très simple pour faire interagir les deux serveurs. Configuration de Apache Il faut installer le module Jk de Apache : apt-get install libapache2-mod-jk a2enmod mod_jk On va ensuite créer un VirtualHost dans la configuration de Apache /etc/apache2/sites-available/default : <VirtualHost demo.mkhelif.fr:80> ServerName demo.mkhelif.fr ServerAdmin [email protected] JkMount / worker1 JkMount /* worker1 </VirtualHost> On configure le module *Jk **/etc/apache2/mods-available/jk.load* : LoadModule jk_module /usr/lib/apache2/modules/mod_jk.so JkWorkersFile /etc/apache2/workers.conf JkLogFile /var/log/apache2/mod_jk.log JkLogLevel info JkLogStampFormat "[%a %b %d %H:%M:%S %Y] " On crée alors le fichier /etc/apache2/workers.conf : workers.java_home=/path/to/jre/ ps=/ worker.list=worker1 worker.worker1.port=8009 worker.worker1.host=localhost worker.worker1.type=ajp13 worker.worker1.lbfactory=1 Apache est désormais configuré pour rediriger toutes les requêtes du domaine demo.mkhelif.fr vers Tomcat par AJP. Il faut configurer Tomcat pour écouter sur ce port. Tomcat en standalone Pour configurer Tomcat en version standalone (sans serveur d’applications), il suffit de modifier le fichier server.xml pour ajouter le connecteur AJP : <Connector port="8009" enableLookups="false" debug="0" redirectPort="8443" protocol="AJP/1.3" serverAdresse="127.0.0.1" /> Il suffit alors de redémarrer Tomcat et...

Read article

Serveur de mails multi-domaines

Ayant voulu créer un serveur de mail avec des comptes et des domaines virtuels je me suis très vite rendu compte que les différents tutoriels ne fonctionnaient pas dans ma configuration. J’ai donc décidé de créer ce billet pour présenter le fonctionnement d’une telle infrastructure et comment la mettre en place. Infrastructure du serveur Le serveur va se composer de quatre services : l’agent de livraison (Postfix), le serveur de mails IMAP (Courier) et le serveur web (Apache + PHP) et la base de données (MySQL). Pour accéder au mails j’ai décidé d’utiliser RoundCube et PostfixAdmin pour administrer les utilisateurs, les alias et les domaines. Création du compte virtuel On va d’abord créer un utilisateur sur le serveur qui stockera les mails des utilisateurs : addgroup --gid 20001 virtual adduser --uid 20001 --gid 20001 virtual Installation des services On va commencer par le plus simple : Apache et MySQL. On va tout simplement les récupérer dans les dépots : apt-get install apache2 mysql-server-5.0 php5 php5-mysql php5-gd Je n’aborderai pas ici la configuration d’Apache ni de PHP (penser juste à activer l’extension pour MySQL si ce n’est pas fait). Base de données Il faut créer la base de données que vont...

Read article

MySQL Workbench

MySQL Workbench est désormais disponible. C’est un outil graphique permettant de concevoir des bases de données. L’outil est fait pour les développeurs et les administrateurs de bases de données. Il se veut simple d’utilisation tout en permettant des actions avancées sur la base de données. L’outil fourni des assistants permettant d’optimiser le schéma de la base de données et de corriger les erreurs pouvant dégrader les performances du serveur.

Read article

JavaOne 2008

Cette année, la session de JavaOne aura lieu du 6 au 9 mai, au programme il y en a pour tous les gouts : Java SE/EE/ME, JavaFX, Web 2.0, SOA et Enterprise integration, etc… Java Standard Edition (Java SE) Cette session technique abordera des sujets techniques, avec beaucoup d’exemples de code qui montreront comment créer des applications pérennes, évolutives et portables. Voici les différents sujets qui seront abordés : Le langage Java et ses APIs. Sécurité. Réseau. Gestion de la concurrence. Garbage Collector. Surveillance et management. JRE. OpenJDK. Performances et évolution. Les nouveautés de Java 7. Java Enterprise Edition (Java EE) Voici les différents sujets abordés : Les APIs actuelles et futures, les standards et spécifications. Modélisation, persistance et base de données. Qualité : sécurité, administration, disponibilité, évolution, fiabilité, portabilité et performances. Services Web et inter-opérabilités avec d’autres plateformes. Technologies portables et téléphonie. Open Source. Techniques de tests et de débuggage. Études de cas réels. Java Micro Edition (Java ME) Mobile Service Architecture (MSA) et les nouvelles fonctionnalités. Mobile Web Services. Développement pour des lecteurs Blu-ray. Ajax mobile. Services de données et multimédias. Desktop GUI (Graphical User Interfaces) : Swing et autres technologies. Graphics : Java2D, JOGL, JAI, … Médias...

Read article