2008-06 Archives

26-06-2008 14:57:00

[Web] Plusieurs charsets dans la meme page

Aujourd'hui je suis tombé sur la nécessité d'appeler un script distant javascript formaté en ISO-8859-1 dans un Joomla qui lui tourne en UTF-8. J'ai tout d'abord testé de transformer Joomla en ISO-8859-1 en modifiant l'appel de la balise meta charset="utf-8". Pour cela j'ai du modifiler le fichier libraries/joomla/factory.php et j'ai modifié la ligne suivante :

'charset'       => 'utf-8',
par
'charset'       => 'iso-8859-1',
Je navigue sur le Joomla et la la page appelant le javascript s'affiche niquel mais le reste du site affiche de partout des erreurs d'encodage vu que la base est en UTF-8 Comme je ne vais pas m'amuser a recréer toute la base MySQL, je vais chercher une autre solution. Je vais donc tenter d'utiliser du dhtml et ajouter avant et apres ma balise script d'appel distant le script suivant :
<script>document.charset="iso-8859-1";</script>
<script src="http://monsite.com/page.html"></script>
<script>document.charset="utf-8";</script>
Cette technique d'attribution dynamique de charset va bien fonctionner avec IE7 mais pas avec mozilla firefox. En cherchant un peu, j'ai trouvé une technique beaucoup plus simple qui est de donner le charset directement dans la balise <script>. On obtient alors :
<script src="http://monsite.com/page.html" 
charset="iso-8859-1"></script>
Et la , Oh miracle, cela marche sous les 2 navigateurs.


Posté par cloud | permalien | dans : Coding

25-06-2008 16:49:53

[Wifi] Carte Intel 2200BG sous FreeBSD 7.0

J'ai voulu installer la carte wifi de mon portable du boulot sous FreeBSD 7.0 . Je commence par vérifier si ma carte est reconnu avec un lspci

[root@ ~]# lspci
...
01:02.0 Network controller: Intel Corporation PRO/Wireless 2200BG Network Connection (rev 05)
...
Cependant elle n'est pas chargé quand je fais un ifconfig -a .
On va donc devoir utiliser un driver particulier pour la faire fonctionner, le iwi_firmware. Il fallait avant la version 7 de FreeBSD utiliser les ports pour l'installer mais ce n'est plus nécessaire maintenant. Pour info, je tourne avec un noyau GENERIC.
Je commence donc par modifier le fichier /boot/loader.conf afin de charger les bons modules au démarrage. J'y met :
if_iwi_load="YES"
iwi_bss_load="YES"
iwi_ibss_load="YES"
iwi_monitor_load="YES"
wlan_load="YES"
firmware_load="YES"
legal.intel_iwi.license_ack=1
La derniere ligne permet d'accepter la licence que réclame le module iwi .

Maintenant 2 possibilités:
-on reboot pour charger le tout :)
-on fait un kldload de chaque module + un kenv legal.intel_iwi.license_ack=1 afin de charger la licence et ca marche

On test avec un ifconfig -a et la on voit apparait notre interface iwi0 :
[root@ ~]# ifconfig -a
iwi0: flags=8802 metric 0 mtu 1500
        ether 00:0e:35:30:ec:3c
        media: IEEE 802.11 Wireless Ethernet autoselect
        status: no carrier
        ssid "" channel 1 (2412 Mhz 11b)
        authmode OPEN privacy OFF bmiss 10 scanvalid 60 bgscan
        bgscanintvl 300 bgscanidle 250 roam:rssi11b 7 roam:rate11b 1 bintval 0
Il ne reste plus qu'a configurer le wifi en suivant le manuel FreeBSD ou en utilisant wpa_supplicant comme je l'explique ici


Posté par cloud | permalien | dans : FreeBSD

24-06-2008 15:18:41

[How To] Installation de Snort

J'ai mis en ligne un petit article que j'ai écrit sur l'installation de Snort et Base sous FreeBSD 7.0 qui est un IDS assez puissant quand il est bien configuré.
Le lien ici : http://blog.madpowah.org/articles/snort/index.html


Posté par cloud | permalien | dans : FreeBSD, OpenSource, Security

19-06-2008 23:45:25

[Java] Recuperer un argument d'une expression reguliere en JAVA

J'ai eu besoin de récupérer un certain argument d'une interface et j'ai eu du mal a trouver de l'aide pour arriver a cela, je vais donc expliquer ca ici :

Le but de l'exercice est de récupérer le nom d'une interface dans une regle PF. D'habitude je me sert de la methode matches de la classe String pour vérifier si une expression existe mais je n'ai pas eu a récupérer une valeur de cette chaine. J'ai donc procédé comme cela :

//Pattern de la regle PF que l'on compile
Pattern pattern = Pattern.compile("((pass|block) +(in|out) +(log)? +on +(\\$)?([a-zA-Z_0-9.]+))");
//On crée un matcher qui va vérifier le pattern
Matcher m = pattern.matcher(line);
//S'il y a correspondance
if (m.find()) {
	//On affiche le contenu du 6e group, c'est a dire de la chaine entre les 6e "( )"
	System.out.println(m.group(6));
}
Et grace a cela on peut récupérer ce que l'on veut :)


Posté par cloud | permalien | dans : Fun / Divers, Coding

19-06-2008 16:25:04

[Metasploit] Installer Metasploit 3.1 sur FreeBSD 7.0

J'ai voulu installer metasploit sur ma FreeBSD par les ports. je fais mon make install et la il me dit d'aller sur le site pour accepter le contrat et telecharger metasploit 3.0

Due to licensing restrictions you have to accept the Metasploit 
Framework
License before downloading framework-3.0.tar.gz. Please direct 
your
web browser to http://metasploit.com/projects/Framework/msf3/ to read 
and
accept the license. Once downloaded, save framework-3.0.tar.gz
in /usr/ports/distfiles and try again.
Je vais sur le site et la je vois qu'une version 3.1 est disponible et semble de bien plus belle taille. Comme je suis tétu, je télécharge quand meme cette version, puis vais voir mon /usr/ports/security/metasploit/Makefile . La version est a 3.0, je la change donc en 3.1 :
PORTNAME=       metasploit
DISTVERSION=    3.1
PORTREVISION=   1
Je tente un make install clean et la, ca me pete une erreur de checksum ce qui semble normal :)
Je compile alors de la maniere suivante :
make install clean NO_CHECKSUM="YES" WITHOUT_BDB="YES"
Le WITHOUT_BDB="YES" est mis pour éviter une erreur sur la compilation de la dépendance subversion.

Et la, magie, ca compile niquel :)

Posté par cloud | permalien | dans : FreeBSD, OpenSource, Security

17-06-2008 14:35:06

[Mantis] Supprimer le Sign up de Mantis

Quand on utilise Mantis pour gerer ses projets, on a pas forcement envi que quelqu'un puisse s'inscrire et voir les projets enregistré en public. On va donc supprimer la possibilité de s'enregistrer sur la page d'accueil.
Pour cela, nous allons ajouter la ligne suivante dans le fichier config_inc.php :

$g_allow_signup                 = OFF;
Et voila plus de probleme :)


Posté par cloud | permalien | dans : OpenSource, Security

12-06-2008 12:10:24

[Apache] Redirection HTTP en HTTPS

On veut parfois sécuriser ses connexions en forcant ses visiteurs a se logger sur du https. Pour cela on va donc faire un Vhost qui redirige toutes les connexion http sur la meme pages en https grace au mod_rewrite d'Apache. On obtient cela :

<VirtualHost *:80>
        ServerName vhost.site.com
        CustomLog /var/log/site-access.log combined
        ErrorLog /var/log/site-error.log
        <IfModule mod_rewrite.c>
                RewriteEngine on
                RewriteLog /var/log/site_https_rewrite.log
                RewriteLogLevel 1
                RewriteCond %{SERVER_PORT} !^443$
                RewriteRule ^/(.*) https://%{SERVER_NAME}/$1 [L,R]
        </IfModule>
</VirtualHost>
On redémarre Apache et on va sur http://vhost.site.com . Si tout va bien, on est directement redirigé sur https://vhost.site.com


Posté par cloud | permalien | dans : OpenSource, Security

11-06-2008 20:29:16

[FreeBSD] Installation de PostgreSQL sur FreeBSD

Postgresql est une SGBD tres puissant et malheureusement moins utilisé que MySQL par exemple alors qu'il est bien plus performant. Nous allons ici voir une installation sous freeBSD. Tout d'abord nous allons installer le port :

cd /usr/ports/databases/postgresql81-server
make config
make install clean
Nous allons ensuite ajouté dans /etc/rc.conf la ligne afin de pouvoir le lancer :
postgresql_enable="YES"
On tente alors de le démarrer
/usr/local/etc/rc.d/postgresql start
"/usr/local/pgsql/data/postgresql.conf": No such file or directory
On obtiens une belle erreur car il ne trouve pas le fichier de conf. Nous allons donc initialiser tout ca avec la commande :
/usr/local/etc/rc.d/postgresql initdb
/usr/local/etc/rc.d/postgresql start
On se retrouve avec un serveur qui tourne.

Maintenant on va créré un utilisateur avec les droits admins et créer une base de donnée. Pour ca on se met en utilisateur pgsql
su pgsql
Ensuite on crée un utilisateur :
[root@freebsd:~] # su pgsql
$ /usr/local/bin/createuser cloud
Shall the new user be allowed to create databases? (y/n) y
Shall the new user be allowed to create more new users? (y/n) y
CREATE USER
Enfin on crée une base de donnée avec cet utilisateur :
[cloud@freebsd:/usr/home/cloud] $ /usr/local/bin/createdb mydb
Et voila, ca marche. On installera ensuite un client comme pgadmin3 afin de la manipuler.

Un petit lien fort utile qui m'a aidé : http://www.freebsddiary.org/postgresql.php


Posté par cloud | permalien | dans : FreeBSD, OpenSource

10-06-2008 13:23:00

[FreeBSD] Forum francophone d'aide Freebsd-fr.eu

J'ai mis en place un forum pour la communauté francophone FreeBSD afin de pouvoir poster sur différents problemes et aider a résoudre les problemes d'autres personnes. En espérant vous y voir nombreux :)

Son adresse : http://www.freebsd-fr.eu


Posté par cloud | permalien | dans : FreeBSD, OpenSource, Security, Fun / Divers

04-06-2008 15:28:05

[Fun] Goosh.org, le google prompt !

Voici une petite url bien sympa : http://goosh.org.
C'est nue interface pour utiliser google en simulant un prompt et qui demontre desuite qu'un prompt permet de naviguer et de chercher une information bien plus vite que n'importe quelle interface graphique :) . A mettre en favori d'urgence !


Posté par cloud | permalien | dans : Fun / Divers

02-06-2008 20:49:05

[FreeBSD] Mise a jour FreeBSD sur un Kimsufi

Voici un petit tuto pour updater son système FreeBSD sur un serveur Kimsufi.

On commence tout d'abord par charger via csup les sources que l'on souhaite et on configure notre noyau. Puis on compile tout ca :

make buildworld
make buildkernel KERNCONF=NOMDUNOYAU
make installkernel KERNCONF=NOMDUNOYAU
Une fois cela terminé, on va booter en mode rescue-pro depuis le manager. Une fois loggé on va monter le disque dans le /tmp par exemple :
mkdir /tmp/a
mount /dev/ad0s1a /tmp/a
mount -t devfs none /tmp/a/dev
mount -t procfs none /tmp/a/proc
On va ensuite se logger dedans via un chroot :
chroot /tmp/a /usr/local/bin/bash
Il ne nous reste plus qu'a finir la mise a jour :
cd /usr/src
mergemaster -p
make installworld
mergemaster
On quitte le chroot et on umount les partitions :
exit
umount /tmp/a/proc
umount /tmp/a/dev
umount /tmp/a
On remet le boot en mode hd depuis le manager et on reboot. C'est terminé :)


Posté par cloud | permalien | dans : FreeBSD, Security, Fun / Divers