SYN, SYN-ACK, ACK …

Steal This Blog

Archives Posts

VMware Server et Virtual Router Redundany Protocol (VRRP)

mars 3rd, 2009 by Corbier

Selon Wikipédia :

Virtual Router Redundancy Protocol (protocole de redondance de routeur virtuel, VRRP) est un protocole non propriétaire redondant décrit dans la RFC 3768 dont le but est d’augmenter la disponibilité de la passerelle par défaut servant les hôtes d’un même sous-réseau.

Le fonctionnement de VRRP est le suivant :

Chaque Routeur Virtuel utilise une adresse mac de l’IANA ces adresses mac sont réversées et vont de 00:00:5e:00:01:00 à 00:00:5e:00:01:ff (on peut donc avoir 256 routeurs virtuels par segment Ethernet)

Les routeurs communiquent entre eux via l’adresse multicast réservée 224.0.0.18 associé à la mac réservé 00:00:5e:00:01:02

Comme l’indique le paquet capturé suivant :

Frame 6 (70 bytes on wire, 70 bytes captured)
Ethernet II, Src: IETF-VRRP-virtual-router-VRID_02 (00:00:5e:00:01:02), Dst: IPv4mcast_00:00:12 (01:00:5e:00:00:12)
Internet Protocol, Src: 192.168.130.160 (192.168.130.160), Dst: 224.0.0.18 (224.0.0.18)
Virtual Router Redundancy Protocol

Afin d’utiliser une IP virtuelle associés a plusieurs routeurs nous utilisons le Common Address Redundancy Protocol ou CARP.

Selon wikipédia :

Common Address Redundancy Protocol ou CARP est un protocole permettant à un groupe d’hôtes sur un même segment réseau de partager une adresse IP.

Dans le cadre de préparation de labs, j’ai voulu émulé l’ensemble de via une solution freebsd (Pfsense) sous VMware Server. Cependant l’adresse virtuel CARP ne pouvait pas être utilisé. Les réponses ARP était bien présente mais le ping et tout les autres services était indisponible.

Le module kernel vmnet drop tout les paquets ethernet que ne sont pas à destination :

  • d’elle même
  • d’une addresse de broadcast FF:FF:FF:FF:FF:FF
  • d’une addresse de multicast

Cependant le bloc de IANA est manquant !!!Les packets sont donc droppés.

Afin de valider et corriger le module noyau, il faut éditer le driver.c contenu dans /usr/lib/vmware/modules/source

Le fichier qui nous intéresse est dans l’archive vmnet.tar. Il faut extraire cette archive.

tar xvf vmnet.tar

cd vmnet-only

Ensuite nous devons localiser la fonction VNetPacketMatch qui est responsable du matching de paquet.

*
*———————————————————————-
*
* VNetPacketMatch –
*
*      Determines whether the packet should be given to the interface.
*
* Results:
*      TRUE if the pasket is OK for this interface, FALSE otherwise.
*
* Side effects:
*      None.
*
*———————————————————————-
*/

Bool
VNetPacketMatch(const uint8   *destAddr, // IN: destination MAC
const uint8   *ifAddr,   // IN: MAC of interface
const uint8   *ladrf,    // IN: multicast filter
uint32   flags)          // IN: filter flags
{
/*
* Return TRUE if promiscuous requested, or unicast destined
* for interface, or broadcast (and broadcast requested), or
* if multicast (and all multicast, or this specific
* multicast MAC, was requested).
*/

return ((flags & IFF_PROMISC) || MAC_EQ(destAddr, ifAddr) ||
((flags & IFF_BROADCAST) && MAC_EQ(destAddr, broadcast)) ||
((destAddr[0] & 0×1) && (flags & IFF_ALLMULTI ||
(flags & IFF_MULTICAST &&
VNetMulticastFilter(destAddr, ladrf)))));
}

Il faut ajouter les lignes suivantes ajoutant le support des paquets de IANA :

((destAddr[0] == 0) && (destAddr[1] == 0) &&
(destAddr[2] == 0x5e) && (destAddr[3] == 0) &&
(destAddr[4] == 1))

Ce qui nous donne la fonction suivante :

return ((flags & IFF_PROMISC) || MAC_EQ(destAddr, ifAddr) ||
((flags & IFF_BROADCAST) && MAC_EQ(destAddr, broadcast)) ||
((destAddr[0] == 0) && (destAddr[1] == 0) &&
(destAddr[2] == 0x5e) && (destAddr[3] == 0) &&
(destAddr[4] == 1)) ||
((destAddr[0] & 0×1) && (flags & IFF_ALLMULTI ||
(flags & IFF_MULTICAST &&
VNetMulticastFilter(destAddr, ladrf)))));

Sauvegardez et recompilez le module :

make vmnet.ko

Il nous reste à copié le nouveau module au bon endroit

cp vmnet.ko  /lib/modules/`uname -r`/misc/vmnet.ko

/etc/init.d/vmware restart

Nous avons désormais un VMware Server fonctionnelle.

Archives Posts

Apache2 et SSL

mai 15th, 2008 by Corbier

Durant mon stage, j’ai été amené à créer une page web Apache avec SSL.

Depuis la version 2.2 d’Apache, la commande « apache2-certificate-ssl » n’existe plus, ce qui permettait la création de certificat. Du coup, on reprend les bonnes manières, à vous les fanas du terminal. Pour pouvoir créer un certificat, il faut biensûr le paquet openssl.

Voici un script permettant de créer le certificat :


openssl req -config openssl.cnf -new -out site.csr
openssl rsa -in privkey.pem -out site.key
openssl x509 -in site.csr -out site.cert -req -signkey site.key -days 365
openssl x509 -in site.cert -out site.der.crt -outform DER

Activez le module SSL :
a2enmod ssl

Rajouter le port 443 au fichier ports.conf :
Listen 80
Listen 443

Rajouter ces lignes au fichier apache2.conf :

SSLMutex default
SSLRandomSeed startup builtin
SSLSessionCache none

Lors d’une création de virtualhost rajouter ces lignes :
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/site.cert
SSLCertificateKeyFile /etc/apache2/ssl/site.key

Vérifier si le module est bien activé dans /etc/apache2/mods-enabled/

ssl.conf
ssl.load

Filed under Linux, Securité, system having 11 Comments »

Archives Posts

Installation Zimbra + Synchro Funambol

avril 29th, 2008 by Corbier

Présentation de Zimbra

Zimbra est l’une des plus performante messagerie unifiée dans le monde Open Source. Cette plateforme permet de centraliser toutes les données de l’entreprise (contacts, calendriers, notes, documents). En plus du rôle de serveur de messagerie, cette solution intègre un système anti-spam et d’un antivirus.

Zimbra existe en plusieurs versions (Open Source, Network Edition, …) mais ce tutorial est adapté exclusivement à la version Open Source. Pour plus d’information, un comparatif est disponible sur le site http://www.zimbra.com/products/product_editions.html

Ce document a pour but de vous montrer l’installation d’un serveur Zimbra sur un serveur Linux puis d’interagir Zimbra avec un serveur Funambol.

Funambol est un serveur de synchronisation permettant de transférer sur des clients (Outlook, Mobile phone, Smartphone) tous les contacts et calendriers d’un compte zimbra.

La première partie du document concernera l’installation de Zimbra puis en second temps, nous verrons le fonctionnement du serveur Funambol.

Installation de Zimbra

Téléchargez la dernière version de Zimbra Open Source Edition sur le site officiel :

http://www.zimbra.com/community/downloads.html
Placez le fichier téléchargé dans le répertoire /usr/src/ puis l’extraire :

cd /usr/src/

tar -xvfz Zimbra-5.0.2.tgz

Avant d’installer Zimbra, téléchargez les paquets nécessaires :

apt-get install sudo libidn11 fetchmail libpcre3 libgmp3c2 libxml2 libstdc++6 openssl libltdl3 perl

Maintenant, exécutez le script install.sh :

cd /usr/src/Zimbra-5.0.2/

./install.sh

Normalement, le script trouvera les paquets téléchargés précédemment. S’il manque des paquets, téléchargez les via « apt » ou sur les sites officiels.
L’assistant Zimbra vous proposera désormais d’installer les services Zimbra que vous souhaitez. Répondez « Y » pour installé sinon « N ».

Install zimbra-ldap [Y]

Install zimbra-logger [Y]

Install zimbra-mta [Y]

Install zimbra-snmp [Y]

Install zimbra-store [Y]

Install zimbra-apache [Y]

Install zimbra-spell [Y]

Install zimbra-proxy [N]

Ensuite, il vous dira que le système a été modifié et si vous voulez continuer l’installation, répondez « Y » :

The system will be modified. Continue? [N] Y

Il va maintenant installer les services Zimbra sélectionnés auparavant. Cette étape est assez longue :

zimbra-core……zimbra-core_5.0.2_GA_1975.DEBIAN4.0_i386.deb…done

zimbra-ldap……zimbra-ldap_5.0.2_GA_1975.DEBIAN4.0_i386.deb…done

zimbra-logger……zimbra-logger_5.0.2_GA_1975.DEBIAN4.0_i386.deb…done

zimbra-mta……zimbra-mta_5.0.2_GA_1975.DEBIAN4.0_i386.deb…done

zimbra-snmp……zimbra-snmp_5.0.2_GA_1975.DEBIAN4.0_i386.deb…done

zimbra-store……zimbra-store_5.0.2_GA_1975.DEBIAN4.0_i386.deb…done

zimbra-apache……zimbra-apache_5.0.2_GA_1975.DEBIAN4.0_i386.deb…done

zimbra-spell……zimbra-spell_5.0.2_GA_1975.DEBIAN4.0_i386.deb…done

Si vous n’avez pas d’enregistrement MX sur votre serveur DNS, il va vous afficher un message d’erreur :

DNS ERROR resolving MX for zimbra.ace-service.fr

It is suggested that the domain name have an MX record configured in DNS

C’est alors qu’il va vous suggérer de changer de domaine. Si vous souhaitez changer de domaine, tapez « Yes », sinon « No ». L’installation continuera normalement même si vous n’avez pas d’enregistrement MX, c’est seulement un message à titre informatif.

Change domain name? [Yes] No

Ensuite, il vous affiche un menu pour connaître les informations manquantes pour continuer l’installation. Les informations manquantes sont précédées des caractères « ** ».

Dans mon exemple, je dois renseigner le mot de passe Admin :

******* +Admin Password UNSET

Pour cela je tape le numéro 3 pour accéder au menu « zimbra-store » où se trouve le sous-menu Admin password. Puis le 4 pour définir le mot de passe Admin.

Après avoir défini le mot de passe, tapez « r » pour revenir au menu général.

Enfin, tapez « a » pour continuer l’installation.
Après avoir défini les fichiers de sauvegarde, zimbra va procéder au démarrage des services installés :

Save configuration data to a file? [Yes]

Save config in file: [/opt/zimbra/config.14265]

The system will be modified – continue? [No] Yes

Liens web zimbra :

  • Zimbra Admin : https://votre_domaine:7071
  • Zimbra User : http://votre_domaine/

L’installation de zimbra est terminée. Toutes les configurations se passent dans l’interface Admin de Zimbra (Gestion des comptes, Alias, services, domaines, …)

Funambol : Serveur de synchronisation

Présentation de Funambol

Funambol est une suite logicielle permettant la synchronisation de données telles qu’un carnet d’adresses, un calendrier ou des emails, entre plusieurs ordinateurs et/ou périphériques portables.
Dans notre tutorial, Funambol nous servira de serveur de synchronisation entre un client outlook et un zimbra.

Mise en place de funambol

Rendez vous sur la page http://funambol.com/opensource/downloads.php

  • Fichier binaire pour installer le serveur sous linux

  • Fichier exécutable permet de configurer le serveur à distance sur un windows

Coté serveur placez votre binaire dans /usr/src puis rendez votre fichier exécutable :

cd /usr/src/

chmod 777 funambol-6.5.14.bin

Lancez le script :

./funambol-6.5.14.bin

Le script vous affichera la licence Funambol, rendez-vous en bas de la page et répondez « Yes » :

Do you agree to the above license terms? [yes or no]

yes

Laissez par défaut le répertoire d’installation /opt :

Directory to extract Funambol [/opt] <return to accept>?

Le serveur est bien installé et vous pouvez le démarrer.
Afin d’intégrer Zimbra au serveur de synchronisation, télécharger la dernière version du module Zimbra à l’adresse https://sourceforge.net/project/showfiles.php?group_id=219645

Placez le fichier téléchargé dans le dossier /opt/Funambol/ds-server-modules puis renommez le en ZimbraConnector :

cd /opt/Funambol/ds-server/modules
mv ZimbraConnector-0.4.96.s4j ZimbraConnector.s4j

Renseignez le nouveau module dans le fichier de configuration « install.properties » :

nano /opt/Funambol/ds-server/install.properties

Rajoutez le nom du module à la fin du fichier à la ligne « modules-to-install » :

modules-to-install=foundation-6.5.10,…,funambol-email-connector-6.5.9,ZimbraConnector

Pour appliquer les changements, lancez le script « install-modules.sh » à partir du répertoire « ds-server » :

cd /opt/Funambol/ds-server

./bin/install-modules-sh

Répondez « y » pour installer ou mettre à jour les modules

Coté serveur, tout est installé.

Nous allons désormais utiliser le logiciel sous windows pour attaquer le serveur Funambol/zimbra à distance. Après l’avoir téléchargé et installé, lancez-le.
Pour vous connectez au serveur, il vous suffit de cliquer droit sur Funambol Administrative Tool à gauche de la fenêtre puis « Login ». A la prochaine fenêtre, rentrez votre adresse IP de votre serveur Funambol puis laissez les paramètres par défaut (login = admin et password = sa et port = 8080).

Une fois connecté au serveur, vous devrez avoir les 3 modules suivants apparents :

L’étape suivante consiste à supprimer les champs suivants dans l’arboresence Modules > Foundation > FunambolFoundationConnector :

  • PIM Calendar SyncSource — cal; event; scal; stask; task
  • PIM Contact SyncSource — card; scard

Ensuite, nous allons ajouter des champs dans le module Zimbra > FunambolZimbraConnector :

Modules > zimbra > FunambolZimbraConnector>CalendarSyncSource

Ajouter les champs suivants : cal, event, scal, stask and task.

  • Source URI = cal,event,scal,stask,task

  • Name = cal,event,scal,stask,task

  • Zimbra URL = http://<hostname>:port/service/soap/

  • secure URL = https://<hostname>:port/service/soap/

Modules > zimbra > FunambolZimbraConnector>ContactSyncSource

Ajouter les champs card and scard.

  • Source URI = card, scard

  • Name = card, scard

  • Zimbra URL = http://<hostname>:port/service/soap/

  • secure URL = https://<hostname>:port/service/soap/

Modules > zimbra > FunambolZimbraConnector>GALContactSyncSource

  • Source URI = zimbraGalContacts

  • Name = zimbraGalContacts

  • Zimbra URL = http://<hostname>:port/service/soap/

  • secure URL = https://<hostname>:port/service/soap/

Maintenant, pour synchroniser vos contacts et agendas, téléchargez et installez le logiciel client Outlook sur le site http://funambol.com/opensource/downloads.php

Après installation, un plugin va s’ajouter dans votre client de messagerie et vous pourrez configurez vos différentes options selon vos besoins.

Ce document prmet également une synhcronisation avec les clients :

  • Windows Mobile PocketPC

  • Windows Mobile SmartPhone

  • IPod

Filed under Linux, system having 13 Comments »

Archives Posts

Forensic sur log apache avec pyflag

avril 17th, 2008 by Corbier

Contexte

Dans le cadre de mon travail je suis parfois obliger de faire des retours sur incident dans le cadre de dysfonctionement ou d’attaque.

J’ai donc choisi d’utiliser pyflag.

L’installation se fait facilement a coup de ./configure make make install

Récupération des log’s

J’ai donc récupéré les logs httpd sur le serveur du client ainsi que les logs tomcat. Le problême constaté est que le service tomcat tombe régulièrement (genre tous les deux jours).

Une fois pyflag configuré, il nous reste à nous connecter à l’adresse http://127.0.0.1:8000

Afin d’intégrer les log apache, il est nécessaire de créer un log Preset qui contiendra l’ensemble des log à analyser.

Un assistant apparaît pour injecter les logs. Quelques points me semble essentiel.

Sélectionnez Apache Log ;)

Ainsi que le format debian_forensic cliquez sur next et les logs apparaissent sous la forme de tableau

Ensuite il nous reste a nommer notre preset.

Cliquez sur Load a Log file

Sélectionner les logs a injecter dans le base mysql

L’upload est assez rapide.

Je peux donc travailler sur mes log’s

La suite au prochaine épisode :p

Archives Posts

Telechargement Zimbra

avril 16th, 2008 by Corbier

Il s’avère que dans ma société nous travaillons avec zimbra. J’ai créer quelques petits scripts qui permettent de faciliter la vie. Ayant besoin d’avoir toutes les versions de zimbra sous le coude pour faire des tests, j’ai créer ce script qui permet de télécharger les dernieres versions de zimbra. Il vous suffira de mettre le script dans votre cron et le tour est joué.


#######ChangeLOG##################
#Createur : Maussion Frederic
#Contact : fmaussion@starxpert.fr
#Date de creation : 16/04/08
###################################

### VARIABLES ###

# Recuperation de la version de zimbra afin de pouvoir creer les repertoires
version=`wget -q -O – http://www.zimbra.com/community/downloads.html | grep HTTP | grep -oe ‘\(\w*.\)\{2\}\w*.GA\+’ | sed -e ‘s/_GA//g’ |sort -u | tail -1`
#Definition des repertoires ou seront telecharger les archives de zimbra
NE= »/opt/iso/zimbra/NE »
OSE= »/opt/iso/zimbra/OSE »

## Dossier et telechargement ##

# Creation des dossier
echo « mkdir $NE/$version » > /tmp/get.sh
echo « mkdir $OSE/$version » >> /tmp/get.sh

# Telechargement des versions NE
echo « cd $NE/$version » >> /tmp/get.sh
wget –quiet http://www.zimbra.com/products/downloads.html -O – | sed -n ‘s/.*\(http:\/\/.*tgz\).*/\1/p’ |sort -u
| sed -e ‘s/http/wget -c http/g’ >> /tmp/get.sh

# Telchargement des versions OSE
echo « cd $OSE/$version » >> /tmp/get.sh
wget –quiet http://www.zimbra.com/community/downloads.html -O – | sed -n ‘s/.*\(http:\/\/.*tgz\).*/\1/p’ |sort -u
| sed -e ‘s/http/wget -c http/g’ >> /tmp/get.sh

## Script temporaire ##

# Toutes les commandes ci-dessus sont envoyees vers un script temporaire
# Changement des permissions afin de le rendre executable
chmod a+x /tmp/get.sh

# Execution du script
/tmp/get.sh

# Supression du script
rm -r /tmp/get.sh

voila qui permettra de telecharger la totalité des versions, aussi bien Network que Open Source.

Filed under Linux, scripting, system having 2 Comments »

« Previous Entries