IPSec VPN avec NAT & PAT

Voici un petit aperçu d’une configuration d’un ASA avec un IOS 8.x pour permettre de faire du NAT et du PAT par dessus un tunnel VPN pour certaines adresses.

Alors c’est quoi le NAT ?
Translation d’une adresse vers une autre adresse.

Wikipédia

C’est quoi le PAT ?
Translation des adresses et des ports.

Wikipédia

Pour pouvoir faire notrre NAT/PAT par dessus le VPN nous allons utiliser le “Policy NAT” et le “Policy PAT”. Ce sont deux jolis termes pour définir simplement des conditions que doivent rencontrer les paquets pour être translatés.

Nous utiliserons pour l’exemple les 2 adresses suivantes:
Firewall 1:
Adresse : 87.231.17.9
Type : ASA 5500 Serie

Firewall 2:
Adresse : 81.164.192.51
Type : NetASQ
(Boite noire)

Nous n’avons pas la main sur le NetASQ et pour l’exemple, nous le considérerons comme une boite noire.
Définition des options:
Création de la phase 1
[text]crypto isakmp policy 11
authentication pre-share
encryption aes
hash md5
group 2
lifetime 86400[/text]
Création de la phase 2
[text]access-list <mon_access_list> extended permit ip <network> <netmask> <network> <netmask>
crypto ipsec transform-set <mon_transform_set> esp-aes esp-md5-hmac
crypto map <ma_map> 20 match address <mon_access_list>
crypto map <ma_map> 20 set peer 81.164.192.51
crypto map <ma_map> 20 set transform-set <mon_transform_set>
crypto map <ma_map> 20 set security-association lifetime seconds 3600[/text]

Définition du tunnel:

[text]tunnel-group 81.164.192.51 type ipsec-l2l
tunnel-group 81.164.192.51 ipsec-attributes
pre-shared-key <mon_secret_partage>[/text]

NAT (Avec Policy-NAT):

[text]access-list <mon_poll> extended permit ip host <address> <network> <netmask>
static (inside,outside) <ext_address> access-list <mon_poll>[/text]

PAT (Avec Policy-PAT):
[text]access-list <mon_poll> extended permit ip <network> <netmask> <network> <netmask>
global (outside) 4 <mon_adresse_de_sortie>
nat (inside) 4 access-list <mon_poll>[/text]

Rsyslog / Centreon / Mod::Syslog

Voici un petit truc pour permettre de ne plus avoir un ip mais le nom de votre appareil dans les “logs” de Rsyslog au sein de l’interface de Centreon.

C’est en perl,
c’est vite fait,
mais ca fonctionne

[perl]
#!/usr/bin/perl
use warnings;
use strict;
use DBI;
my $user=”";
my $pass=”";
my $db=”DBI:mysql:Centreon:localhost”;
my $con = DBI->connect($db,$user,$pass) || die “Connection Error”;
my $query = $con->prepare(”SELECT h.host_name,h.host_address FROM host h WHERE h.host_address IS NOT NULL”);
my $address;
my $name;
$query->execute();
while (($name,$address) = $query->fetchrow_array()){
print “$addresst$namen”;
}
$query->finish();
$con->disconnect();
[/perl]

En exécutant le script de cette manière :

[shell]
#!/bin/sh
HOSTS=’/etc/hosts’
HOSTS_ORIG=’/etc/hosts.orig’
printf "#Hosts (Original)n" > $HOSTS
cat $HOSTS_ORIG >> $HOSTS
printf "#Centreonn" >> $HOSTS
perl /usr/local/hostsrebuild/hosts.pl >> $HOSTS
[/shell]

Le tout dans un cron:

[text]
@daily sh /usr/local/hostsrebuild/rebuild.sh
[/text]

Ca permette de mettre à jour votre fichier /etc/hosts de manière assez transparente.

Fedora 10, Probleme de clavier

Suite à une mise à jour,
je ne sais pas pourquoi,
mais il m’était impossible de m’authentifier sur ma machine sans devoir “chipotter” aux propriétés du clavier.

Chose résolue maintenant,
en faisant un petit nettoyage du fichier :
/var/lib/gdm/.gconf/apps/gdm/simple-greeter/%gconf.xml

Ce fichier contient en fait les dernières langues et les derniers claviers utilisés.
Ce qui permettra à l’avenir de n’avoir que le clavier “Belgium” sélectionné dans mon cas.