26 octobre 2007
Turkish Star Wars
11 octobre 2007
OpenVPN avec OpenBSD et Windows
Partie serveur
Installation
Tout d'abord, installer le package OpenVPN. Avec OpenBSD 4.1:
pkg_add ftp://ftp.openbsd.org/pub/OpenBSD/4.1/packages/i386/openvpn-2.0.6p0.tgz
OpenVPN utilise SSL pour sécuriser le réseau virtuel. Afin de garantir cette sécurité, SSL se base sur un système de clefs publiques (ou certificats d'identité) et de clefs privées.
Les clefs privées permettent de crypter les données et doivent rester protégées sur les postes concernés. Elles sont stockées dans des fichiers .key. Les clefs publiques permettent de décrypter ces données, et sont stockées dans des fichiers .crt. Elles doivent être présentes sur les postes qui reçoivent ces données.
Le certificat racine représente l'entité qui gère les autorisations d'accès au réseau (ici, notre serveur). Il est matérialisé par le fichier ca.crt.
Après avoir créé ce certificat, le serveur peut générer d'autres certificats qui lui permettront, ainsi qu'aux machines qui y seront autorisées, de se connecter au VPN.
Configuration pour la génération de clefs
Créer un répertoire /etc/openvpn/ en exécutant :
mkdir /etc/openvpn
Dans ce répertoire, nous allons faire une copie conforme des scripts présents dans la documentation:
cp -R /usr/local/share/examples/openvpn/easy-rsa/ /etc/openvpn/
Il faut éditer ensuite les caractéristiques des certificats à générer :
vi /etc/openvpn/easy-rsa/vars
Par exemple:
export KEY_COUNTRY=FR
export KEY_PROVINCE=07
export KEY_CITY="PRIVAS"
export KEY_ORG="OpenVPN-TEST"
export KEY_EMAIL="mon.email@mondomaine.fr"
Les clefs seront générées dans le répertoire /etc/openvpn/easy-rsa/keys/ . Se placer dans /etc/openvpn/easy-rsa/ et initialiser ce répertoire:
cd /etc/openvpn/easy-rsa/
. ./vars && ./clean-all
Générer le certificat racine:
./build-ca
Generating a 1024 bit RSA private key
............++++++
...........++++++
writing new private key to 'ca.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [FR]:
State or Province Name (full name) [07]:
Locality Name (eg, city) [PRIVAS]:
Organization Name (eg, company) [OpenVPN-TEST]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:OpenVPN-CA
Email Address [mon.email@mondomaine.fr]:
Le script va poser une série de questions. La seule à laquelle il faut obligatoirement donner une réponse est Common Name.
Génération de clefs
Pour générer la clef du serveur :
./build-key-server server
De la même manière que précédemment, le script va poser une série de questions. Répondre server à la question Common Name. Ensuite, répondre y aux deux questions Sign the certificate? [y/n] et 1 out of 1 certificate requests certified, commit? [y/n].
Il est ensuite possible de générer des clefs pour le (ou les) poste(s) client(s):
./build-key client1
./build-key client2
./build-key client3
...
Pour générer des clefs protégées par un mot de passe, utiliser le script build-key-pass au lieu de build-key.
Génération de paramètres Diffie Hellman (nécessaires à l'échange des clefs) :
./build-dh
Generating DH parameters, 1024 bit long safe prime, generator 2
This is going to take a long time
.................+...........................................
...................+.............+.................+.........
......................................
Configuration du serveur
OpenVPN se configure par l'intermédiaire du fichier /etc/openvpn/openvpn.conf :
vi /etc/openvpn/openvpn.conf
Le fichier de référence se trouve dans /usr/local/share/examples/openvpn/sample-config-files/server.conf. Voici un exemple de configuration:
# port sur lequel écoute le serveur
port 5550
# protocole utilisé (udp est plus approprié
# pour encapsuler du tcp)
proto udp
# périphérique à utiliser (ici, /dev/tun0)
dev tun0
# Certificat racine (à distribuer aux clients)
ca ca.crt
# Clef publique du serveur
cert server.crt
# Clef privée du serveur (à garder secrète)
key server.key
# Paramètres de Diffie Hellman
dh dh1024.pem
# Caractéristiques du réseau à mettre en place
server 172.16.0.0 255.255.255.0
# Fichier associant à chaque client qui se connecte
# une adresse IP
ifconfig-pool-persist ipp.txt
keepalive 10 120
# Activer la compression
comp-lz
# Exécuter avec l'utilisateur _openvpn
# et le groupe _openvpn
user _openvpn
group _openvpn
# Conserver les clefs et autres paramètres en
# mémoire (après les changements d'UID et de GID)
persist-key
persist-tun
# Niveau de détails du fichier journal
verb 5
Lancement du service au démarrage
Comme d'habitude sous OpenBSD, éditer le fichier /etc/rc.local et y ajouter:
if [ -x /usr/local/sbin/openvpn ]; then
echo -n ' openvpn'
/usr/local/sbin/openvpn --config /etc/openvpn/openvpn.conf --daemon > /dev/null 2>&1
fi
Fichier journal séparé
Par défaut, les messages de log d'OpenVPN sont publiés via syslog dans /var/log/messages. Pour qu'ils apparaissent dans un fichier séparé, ajouter les lignes suivantes dans /etc/syslog.conf :
!openvpn
*.* /var/log/openvpn.log
créer ensuite le nouveau fichier :
touch /var/log/openvpn.log
Protection avec pf
Packet Filter est le firewall d'OpenBSD. Voici un exemple de règles à ajouter à /etc/pf.conf pour ne laisser passer que les paquets qui concernent le protocole de partage réseau sous Windows (SMB) sur l'interface VPN du serveur :
# Définition de l'interface réseau correspondant au VPN
vpn_if="tun0"
[...]
# Bloquer tous les paquets entrants
block in on $vpn_if
# Laisser passer les paquets sortants
pass out on $vpn_if keep state
[...]
# Laisser passer les paquets entrants de type SMB
pass in on $vpn_if inet proto udp from any to ($vpn_if) port {netbios-ns, netbios-dgm}
pass in on $vpn_if inet proto tcp from any to ($vpn_if) port {netbios-ssn, microsoft-ds}
Partie client
Installation et configuration
Pour Windows, installer OpenVPN GUI. Ensuite, ouvrir son répertoire de configuration à partir du menu démarrer -> tous les programmes -> OpenVPN -> OpenVPN configuration file directory.
Copier dans ce répertoire le certificat racine ca.crt ainsi que les clefs générés précédemment pour le poste client, client1.crt et client1.key, à partir du serveur.
Sous windows, les fichiers de configuration OpenVPN sont munis de l'extension ovpn. En créer un dans ce même répertoire ; par exemple, privas.ovpn.
Le fichier de référence est C:\Program Files\OpenVPN\sample-config\client.ovpn. Voici un exemple de configuration:
; Mode (client ou serveur)
client
; Adresse IP du serveur OpenVPN
remote 209.85.135.147
; Port sur lequel écoute le serveur
port 5550
dev tun
; Activation de la compression
comp-lzo
; Certificat racine du serveur
ca ca.crt
; Certificat attribué au client
cert client1.crt
; Clef attribuée client
key client.key
Il ne reste plus qu'à cliquer droit sur l'icône d'OpenVPN puis cliquer sur Connect.

Désactiver un certificat sur le serveur
Dans certains cas, il peut être souhaitable d'annuler l'accès au VPN par le biais de clefs précédemment générées (vol d'un portable, ...). Pour ce faire, utiliser le script revoke-full:
cd /etc/openvpn/easy-rsa && . ./vars && ./revoke-full client1
Un fichier crl.pem est alors généré dans /etc/openvpn/easy-rsa/keys. Il contient la liste de certificats révoqués, et doit être accessible par l'utilisateur _openvpn (en effet, ce fichier est vérifié chaque fois qu'une connexion est faite). Pour cela, on peut déplacer le fichier vers /etc/openvpn :
mv /etc/openvpn/easy-rsa/keys/crl.pem /etc/openvpn/
puis faire un lien vers le répertoire où il a été généré:
ln -sf /etc/openvpn/crl.pem /etc/openvpn/easy-rsa/keys/
De cette manière, le fichier sera accessible par l'utilisateur _openvpn, et sera mis à jour lorsqu'on fera de nouveau appel à revoke-full.
Ajouter cette ligne dans /etc/openvpn/openvpn.conf :
crl-verify /etc/openvpn/crl.pem
afin qu'un contrôle soit effectué à chaque connexion au VPN. Redémarrer OpenVPN.
Conclusion
OpenVPN est un peu plus complexe à mettre en place qu'une solution comme Hamachi. Cependant, sa configuration de base reste relativement simple. Il est possible de l'utiliser en mode bridge. On peut s'y connecter via un proxy http. De plus, il ne dépend pas d'un serveur tiers, et est disponible sur un plus grand nombre de platformes.
Plus d'informations sur http://openvpn.net/howto.html#quick.
Libellés : bsd, informatique, unix, windows
08 octobre 2007
Répéter, déformer, amplifier
(Source: cet article sur com.f-cad.com, plus de détails ici).
Libellés : médias, rigolo, télé
06 octobre 2007
828
Libellés : demo, informatique
04 octobre 2007
Carnivàle, suite

Voici donc une série télé dont l'univers reconstitue une Amérique des années 30 en déroute après le crash de 1929. Elle suit d'un côté l'évolution d'une fête foraine hétéroclite, et de l'autre celle d'un prêtre méthodiste et de son entourage. Certains des personnages mis en scène sont doués de pouvoirs surnaturels. Ils appartiennent à une lignée partagée en deux maisons qui s'affrontent, Ombre et Lumière.

Les décors sont soignés, la photo exceptionnelle. Les personnages sont travaillés, et le jeu des acteurs impeccable. L'ambiance sonore dégage une impression de calme et de puissance. Tous ces éléments forment un ensemble vraiment exceptionnel.

Faute de moyens et d'audience (l'intrigue un poil tordue rendant la série difficile à prendre en cours de route), seulement 2 des saisons ont pu être réalisées sur les 6 prévues. Qu'à cela ne tienne, le tout parait d'excellente facture et apporte un peu d'oxygène dans l'univers télévisuel traditionnel.

Séries similaires : L'hôpital et ses Fantômes ; Twin Peaks.
Liens : le site officiel, et un site en Français sur le sujet.
