Off Road

Chris’ blog

Off Road header image 4

Articles de 'network'

Microsoft Search Server 2008

15.12.2008 16:55 · Aucun Commentaire

Vincent vient de m’apprendre que Microsoft a un Search Server 2008 Express (gratuit)

http://www.microsoft.com/EnterpriseSearch/

Ca nous permettrait d’avoir une page web pour faire une recherche sur tous nos dossiers réseaux avec une indexation rendant enfin la chose rapide.

Je n’ai pas étudié encore ce logiciel mais il semble qu’il faille l’utiliser avec Sharepoint Portal pour afficher la page de recherche.

[Lire la suite →]

Tags: IT · Server · fr · network · windows

Spamassassin can learn from Exchange before 2007

08.12.2008 19:16 · Aucun Commentaire

I found a better way of teaching Spamassassin from Exchange. But it works trough IMAP. And Exchange 2007 doesn’t allow imap to access to public folders any more :-(

http://sstern.ccim.com/2006/07/14/training-sitewide-spam-filters/

here is a copy-paste :

How does one enable end-user training of a site-wide Bayesian spam filter for SpamAssassin when the users are reading mail through Microsoft Exchange and the filtering takes place on several Linux MX servers?

We have created two public folders, should-be-spam and should-be-ham. We created an exchange user, spamiam, that has full rights to these folders. End-users move misclassified mail from their inbox or junk-mail folder into the appropriate should-be public folder.

At the top of every hour, this script is run on the one MX server:

/usr/local/scripts/get_ham_spam
#! /bin/sh
rm -f /var/spool/mail/spamiam
touch /var/spool/mail/spamiam
chown spamiam:mail /var/spool/mail/spamiam
su spamiam -c 'fetchmail -a -K -f
/usr/local/scripts/spamiam.fetchmailrc -r "Public Folders/should-
be-spam"'
cat /var/spool/mail/spamiam >> /var/www/html/spamstuff/should-be-spam
sa-learn --spam --mbox /var/www/html/spamstuff/should-be-spam
rm -f /var/spool/mail/spamiam
touch /var/spool/mail/spamiam
chown spamiam:mail /var/spool/mail/spamiam
su spamiam -c 'fetchmail -a -K -f
/usr/local/scripts/spamiam.fetchmailrc -r "Public Folders/should-
be-ham"'
cat /var/spool/mail/spamiam >> /var/www/html/spamstuff/should-be-ham
sa-learn --ham --mbox /var/www/html/spamstuff/should-be-ham

/usr/local/scripts/spamiam.fetchmailrc
poll exchange.xxxx.com
proto imap
user spamiam
password xxxxxxxxx
is spamiam here

At 15 past each hour, the two other mail servers use wget to grab the
should-be files to their local /tmp and run sa-learn.

get-ham-spam
#! /bin/sh
cd /tmp
rm -f should-be-spam should-be-ham
wget -q http://xxx.xxx.com/spamstuff/should-be-spam
wget -q http://xxx.xxx.com/spamstuff/should-be-ham
sa-learn --spam --mbox should-be-spam
sa-learn --ham --mbox should-be-ham

The files are included in logrotate on the source server, so they get zero’d every Sunday
morning.

[Lire la suite →]

Tags: IT · Server · en · mail · network

Relay SMTP avec Exchange 2007

16.11.2008 21:55 · Aucun Commentaire

Pour obtenir un relay SMTP autorisant le relais à la mode exchange 2003 mais sur exchange 2007 ce n’est pas si évident.

On pense que l’option est si évidente qu’on va trouver une fenêtre avec une case à cocher, eh ben non !

Comme nous l’indique le blog de la team exchange, il faut créer un nouveau connecteur d’envoie personalisé ;

y autoriser les connexions anonymes comme dans les images ci-dessous :

Cela autorise les connexions mais pas encore le relay, pour le relay il va falloir lancer une commande :

Get-ReceiveConnector “NOM_DU_CONNECTEUR” | Add-ADPermission -User “ANONYMOUS LOGON” -ExtendedRights “ms-Exch-SMTP-Accept-Any-Recipient”

Comme j’avais déjà un connecteur sur le port 25, j’ai du attribuer une 2e adresse ip à ma carte réseau. Une ip par connecteur.

[Lire la suite →]

Tags: IT · Server · fr · mail · network

Exchange 2007 et les domaines en .local

14.11.2008 02:03 · Aucun Commentaire

J’ai constaté que comme moi de nombreuses personnes avaient des soucis avec les domaines du genre domaine.local et exchange.

“le nom sur le certificat de sécurité n’est pas valide ou ne correspond pas au nom de ce site”.

On comprend pourquoi en lançant la commande “get-clientaccessserver | fl” dans le shell d’exchange 2007 ou en faisant un ctrl+click droit sur l’icone d’outlook 2007 et en lançant alors “tester la configuration automatique de la messagerie”.

En effet on voit alors des horreurs du genre https://serveur.domaine.local/…… , forcément on a installé un certificat pour https://mail.domaine.com alors les arlertes s’enchaînent.

Heureusement le site : http://www.exchangeninjas.com/set-allvdirs nous founi un script tout prêt qui change toutes les entrées concernées automatiquement.

Créez un fichier rename_vhost.ps1 contenant :

# Script to allow you to set all virtual directories to a common name like mail.company.com

Start-Transcript

# Variables

[string]$UMExtend = “/UnifiedMessaging/Service.asmx”
[string]$OABExtend = “/OAB”
[string]$SCPExtend = “/Autodiscover/Autodiscover.xml”
[string]$EWSExtend = “/EWS/Exchange.asmx”
[string]$ConfirmPrompt = “Set this Value? (Y/N)”
[string]$NoChangeForeground = “white”
[string]$NoChangeBackground = “red”

Write-host “This will allow you to set the virtual directories associated with Autodiscover provided services to the name you provide.”
Write-host “”
[string]$base = Read-host “Base name of virtual directory (e.g. mail.company.com)”
write-host “”
# =======================================================
# Validate if a third party trusted certificate is being used
# because BITS won’t use untrusted certificates
[string]$set = Read-host “Is the certificate being used an internally generated certificate? (Y/N)”
Write-host “”

if ($set -eq “Y”)    {
[string]$OABprefix = “http://”
}    else    {
[string]$OABprefix = “https://”
}

# =======================================================
# Build the Autodiscover URL and set the SCP Value

Write-host “Setting Autodiscover Service Connection Point” -foregroundcolor Yellow
write-host “”

$SCPURL = “https://” + $base + $SCPExtend

[array]$SCPCurrent = Get-ClientAccessServer

Foreach ($value in $SCPCurrent) {
Write-host “Looking at Server: ” $value.name
Write-host “Current SCP value: ” $value.AutoDiscoverServiceInternalUri.absoluteuri
Write-host “New SCP Value:     ” $SCPURL
[string]$set = Read-host $ConfirmPrompt
write-host “”

if ($set -eq “Y”)    {
Set-ClientAccessServer -id $value.identity -AutoDiscoverServiceInternalUri $SCPURL
}    else {
write-host “Autodiscover Service Connection Point internal value NOT changed” -foregroundcolor $NoChangeForeground -backgroundcolor $NoChangeBackground
}
}

# =======================================================
# Build the EWS URL and set the internal Value

Write-host “Setting Exchange Web Services Virtual Directories” -foregroundcolor Yellow
write-host “”

$EWSURL = “https://” + $base + $EWSExtend

[array]$EWSCurrent = Get-WebServicesVirtualDirectory

Foreach ($value in $EWSCurrent) {
Write-host “Looking at Server: ” $value.server
Write-host “Current Internal Value: ” $value.internalURL
Write-host “New Internal Value:     ” $EWSUrl
[string]$set = Read-host $ConfirmPrompt
write-host “”

if ($set -eq “Y”)    {
Set-WebServicesVirtualDirectory -id $value.identity -InternalURL $EWSURL
} else {
write-host “Exchange Web Services Virtual Directory internal value NOT changed” -foregroundcolor $NoChangeForeground -backgroundcolor $NoChangeBackground
}

Write-host “Looking at Server: ” $value.server
Write-host “Current External Value: ” $value.externalURL
Write-host “New External Value:     ” $EWSUrl
[string]$set = Read-host $ConfirmPrompt
write-host “”

if ($set -eq “Y”)    {
Set-WebServicesVirtualDirectory -id $value.identity -ExternalURL $EWSURL
} else {
write-host “Exchange Web Services Virtual Directory external value NOT changed” -foregroundcolor $NoChangeForeground -backgroundcolor $NoChangeBackground
}
}

# ======================================================
# Build the OAB URL and set the internal Value

Write-host “Setting OAB Virtual Directories” -foregroundcolor Yellow
write-host “”

$OABURL = $OABprefix + $base + $OABExtend

[array]$OABCurrent = Get-OABVirtualDirectory

Foreach ($value in $OABcurrent) {
Write-host “Looking at Server: ” $value.server
Write-host “Current Internal Value: ” $value.internalURL
Write-host “New Internal Value:     ” $OABUrl
[string]$set = Read-host $ConfirmPrompt
write-host “”

if ($set -eq “Y”)    {
Set-OABVirtualDirectory -id $value.identity -InternalURL $OABURL
} else {
write-host “OAB Virtual Directory internal value NOT changed” -foregroundcolor $NoChangeForeground -backgroundcolor $NoChangeBackground
}

Write-host “Looking at Server: ” $value.server
Write-host “Current External Value: ” $value.externalURL
Write-host “New External Value:     ” $OABUrl
[string]$set = Read-host $ConfirmPrompt
write-host “”

if ($set -eq “Y”) {
Set-OABVirtualDirectory -id $value.identity -ExternalURL $OABURL
} else {
write-host “OAB Virtual Directory external value NOT changed” -foregroundcolor $NoChangeForeground -backgroundcolor $NoChangeBackground
}
}

# =======================================================
# Build the UM URL and set the internal Value

Write-host “Setting UM Virtual Directories” -foregroundcolor Yellow
write-host “”

$UMURL = “https://” + $base + $UMExtend

[array]$UMCurrent = Get-UMVirtualDirectory

foreach ($value in $UMCurrent) {
Write-host “Looking at Server: ” $value.server
Write-host “Current Internal Value: ” $value.internalURL
Write-host “New Internal Value:     ” $UMUrl
[string]$set = Read-host $ConfirmPrompt
write-host “”

if ($set -eq “Y”) {
Set-UMVirtualDirectory -id $value.identity -InternalURL $UMURL
} else {
write-host “UM Virtual Directory internal value NOT changed” -foregroundcolor $NoChangeForeground -backgroundcolor $NoChangeBackground
}

Write-host “Looking at Server: ” $value.server
Write-host “Current External Value: ” $value.externalURL
Write-host “New External Value:     ” $UMUrl
[string]$set = Read-host $ConfirmPrompt
write-host “”

if ($set -eq “Y”) {
Set-UMVirtualDirectory -id $value.identity -ExternalURL $UMURL
} else {
write-host “UM Virtual Directory external value NOT changed” -foregroundcolor $NoChangeForeground -backgroundcolor $NoChangeBackground
}
}
Stop-Transcript

Si vous le lancez dans l’Exchange Management Shell, il vous demander quel nom vous voulez attribuer, puis vous demandera de confirmer chaque changement sur chaque serveur. Il est rassurant de pouvoir choisir N.

[Lire la suite →]

Tags: IT · Server · fr · mail · network · windows

Supprimer les dossiers publics d’un Serveur Exchange 2007

05.11.2008 19:49 · Aucun Commentaire

Lorsque j’essayais de supprimer un serveur exchange 2007 de notre organisation, après avoir transféré tous les réplicas, la désinstallation échouait systématiquement à cause de réplicas.

J’ai trouvé les commandes suivantes qui sont radicales mais fonctionnent :

Pour effacer tous les dossiers publics utilisateurs d’un serveur :

Get-PublicFolder -Server <server containing the public folder database> "\" -Recurse -ResultSize:Unlimited | Remove-PublicFolder -Server <server containing the public folder database> -Recurse -ErrorAction:SilentlyContinue

Pour effacer tous les dossiers publics système d’un serveur :

Get-PublicFolder -Server <server containing the public folder database> "\Non_Ipm_Subtree" -Recurse -ResultSize:Unlimited | Remove-PublicFolder -Server <server containing the public folder database> -Recurse -ErrorAction:SilentlyContinue

Pour vérifier que tous les dossiers publics ont bien été effacé :

Get-PublicFolderStatistics -Server <server containing the public folder database>

Nos dossiers publics n’ont pas été supprimés et j’ai enfin pu désinstaller exchange de ce serveur récalcitrant.

[Lire la suite →]

Tags: IT · Server · fr · mail · network · windows

Google Gear ok, mais en Anglais !

04.11.2008 19:23 · Aucun Commentaire

Ayant décidé d’utiliser Google Docs pour faciliter le travail colaboratif je me suis retrouvé confronté à l’obstacle habituel : comment je fais pour travailler sur mon document sans avoir internet ? comme dans le train par exemple.

A celà Google a répondu par Google Gear. C’est un plug in pour Firefox, Internet Explorer ou Safari qui permet à tout site l’utilisant de vous demander si vous autorisez Google Gear à être activé pour ce site. Je l’ai fait pour Google Docs après avoir cherché un moment pourquoi je n’avais pas la demande.

Finalement, c’était parce que j’avais google docs en Français, à peine passé en Anglais US google gear a pu m’afficer la fenêtra tant attendue.

[Lire la suite →]

Tags: IT · fr · network

Wifi à 300Mbits avec time capsule

17.10.2008 20:56 · Aucun Commentaire

En bloquant une de nos time capsule en 802.11n sans garder la compatibilité avec les normes Wifi b et g j’ai eu une surprise

Je n’obtenais plus la vitesse de connexion 130Mbits habituelle mais 300Mbits !!!

J’ai constaté que le 11n en 2.4GHz donnait à nouveau le 130Mbits, c’est donc le fait de passer à 5GHz qui permet une telle vitesse.

Heureusement car je travaille sur des images disques de plusieurs Giga (vive Parallels) c’est donc une grande joie de doubler la vitesse. Je ne vais plus mettre des heures pour ma sauvegarde time machine, mais seulement des heures… enfin moins d’heures quoi…

Un début de réponse est sur wikipedia :

Le 802.11n a été conçu pour pouvoir utiliser les fréquences 2,4 GHz ou 5 GHz. Les premiers adaptateurs 802.11n actuellement disponibles sont généralement simple-bande à 2,4 GHz, mais des adaptateurs double-bande (2,4 GHz ou 5 GHz, au choix) ou même double-radio (2,4 GHz et 5 GHz simultanément) sont également disponibles. Le 802.11n saura combiner jusqu’à 8 canaux non superposés, ce qui permettra en théorie d’atteindre une capacité totale effective de presque un gigabit par seconde.

La norme 802.11a (baptisée Wi-Fi 5) permet d’obtenir un haut débit (dans un rayon de 10 mètres : 54 Mbit/s théoriques, 27 Mbit/s réels). La norme 802.11a spécifie 52 canaux de sous-porteuses radio dans la bande de fréquences des 5 GHz (bande U-NII = Unlicensed ‘- National Information Infrastructure), huit combinaisons, non superposées sont utilisables pour le canal principal.

Je comprend donc que le 802.11a est aussi en 5GHz contrairement aux b et g… ainsi, en essayant de rester compatible avec les b et g on reste en 2.4GHz et donc la norme 11n reste plafonée à 150Mbits.

[Lire la suite →]

Tags: IT · apple · fr · network

Surveillance SNMP sur les Imprimantes

15.10.2008 17:44 · Aucun Commentaire

Toutes nos imprimantes ont la possibilité d’être surveillées en SNMP. Il devient intéressant d’avoir une vue d’ensemble sur une page web.

Au départ j’ai utilisé le PHP pour récupérer les numéros MIB utiles à la configuration de Nagios pour ajouter les imprimantes à notre monitoring. Puis il s’est avéré plus utile de garder la page PHP lorsque Canon nous appelait pour savoir si telle ou telle imprimante fonctionnait bien (ils sont capables de recevoir des messages pour le début de pannes, mais pas pour leur fin… vive le 21e siècle chez Canon).

Donc j’utilise la commande suivante sous linux

snmpwalk -Oa -v1 -c public x.x.x.x mib-2.43.18.1.1.8

x.x.x.x étant l’adresse IP ou le nom DNS de l’imprimante.

Cela m’a donné un code PHP ressemblant à ceci (bien sûr c’est un code écrit rapidement que j’améliorerais à l’usage) :

$printers = array(
“impr-irc2880-01″,
“impr-irc2880-02″,
“impr-irc2880-03″,
“impr-irc2880-04″,
“impr-irc2880-05″,
“impr-c1-01″,
“impr-c1-02″,
“impr-tech-01″);

$html = “”;

//recupération des messages dans un tableau $printers_tab
foreach($printers as $printer){

//on echape d’éventuelles commandes shell
$printer = escapeshellcmd($printer);

//-Oa permet d’éviter d’avoir des messages en Hexa
//mib-2.43.18.1.1.8 semble dans notre cas rassembler tous les messages d’erreurs
$cmd = “snmpwalk -Oa -v1 -c public $printer mib-2.43.18.1.1.8″;

//$output n’est pas correctement vidé à chaque usage de exec
unset($output);
exec($cmd,$output,$retourne);

//si la commande Shell a retourné une erreur on l’affiche (parfois juste une erreur dans l’adresse)
if($retourne != 0)
$printers_tab[$printer][0] = “erreur({$retourne})<br/>\n”;

//sinon, s’il n’y a aucun message on place un message indiquant que tout est “OK”
else{
$nbmsg = count($output);
if($nbmsg == 0) $printers_tab[$printer][0] = “OK”;
//et sinon on récupère tous les messages
else
for($i=0; $i < $nbmsg; $i++)
$printers_tab[$printer][$i] = $output[$i];
}
}

/****************************************************************************
* $printers_tab["nom_imprimante"][0-n] contient tous les messages à afficher par imprimante
***************************************************************************/

//affichage dans une liste
$html.= ”
<!– liste des imprimantes –>
<div id=’imprimantes’>
<ul id=’liste_imprimantes’>
“;

//pour chaque imprimante
foreach($printers_tab as $name=>$messages){

$html.= ”
<li ><a href=’http://$name/’ target=’_blank’>$name</a><ul>”;

//pour chaque message correspondant à l’imprimante $name
foreach($messages as $message){

$message = trim($message);

//les 30 premieres caractère correpondent à SNMPv2-SMI::mib-2.43.18.1.1.8.
//je garde les derniers numéros pour tenter d’en comprendre la logique
$afficher = substr($message, 30);
//moins de 30 caractères correspond à un message non attendu qu’on affichera
if(empty($afficher))
$afficher = $message;

$html.= ”
<li class=’message_impr’>$afficher</li>”;
}
$html.= ”
</ul></li>”;
}

$html.= ”
</ul><br style=’clear:both;’ />
<p>(Interrogation de SNMPv2-SMI::mib-2.43.18.1.1.8)
</p>
</div>
“;

J’obtiens un affichage de ce genre :

*           impr-irc2880-01
o             1.191 = STRING: “The M toner is low.”

*           impr-irc2880-02
o             OK

*           impr-irc2880-03
o             1.279 = STRING: “The M toner is low.”
o             1.280 = STRING: “Paper is out.”

*           impr-irc2880-04
o             1.206 = STRING: “Paper is out.”

*           impr-irc2880-05
o             OK

*           impr-c1-01
o             OK

*           impr-c1-02
o             OK

*           impr-tech-01
o             1.56 = STRING: “Powersave activ..”
(Interrogation de SNMPv2-SMI::mib-2.43.18.1.1.8)

[Lire la suite →]

Tags: IT · dev · fr · network

Netasq et SSH

29.09.2008 10:59 · Aucun Commentaire

Que ce soit avec notre Netasq F200, ou les F50 et F60, nos sessions SSH étaient toutes interrompues en cas d’inactivité et je ne trouvais pas d’option dans la configuration du firewall pour éviter celà.

Après avoir demandé directement à Netasq, j’ai obtenu la réponse suivante :

“Lorsqu’il n’y a plus d’activité sur la session SSH, aucun paquet ne transite entre le client et le serveur.
De ce fait, le firewall ne vois plus la connexion active, et au bout de quelques temps, il ferme la connexion.

La seule solution et d’utiliser du keepalive dans vos clients ssh. Le keepalive permettra au firewall de maintenir la connexion dans sa table pour ne pas la couper.

Avec putty, il y a une section “connection” qui vous permettra de mettre du keep alive, si vous utilisez le client ssh sous linux vous devez modifier le fichier ssh_config et ajouter : ServerAliveInterval 5 (pour une fréquence de 5 secondes)”

Pour ma part j’ai donc modifier mon fichier /home/chris/.ssh/config en ajoutant des keep alive :

Host *.company.net *.company.com *.companygroup.com
port 22
protocol 2
PubKeyAuthentication yes
PasswordAuthentication no
ForwardX11 yes
ForwardX11Trusted yes
User chris
ServerAliveInterval 5

Host 192.168.100.1 mini
protocol 2
PubKeyAuthentication yes
PasswordAuthentication no
User gonzo
ServerAliveInterval 5

Host *
protocol 2
PubKeyAuthentication yes
PasswordAuthentication yes
User chris
ServerAliveInterval 5

[Lire la suite →]

Tags: IT · fr · network

Maitre d’opération et relation d’approbation Active Directory

24.09.2008 17:05 · 1 Commentaire

Lorsqu’on a plusieurs domaines, comme dans le cas d’une approbation inter domaine, le maitre d’opération prend tout son sens. En effet ce role est attribué à un Controleur de Domaine pour assurer la communication avec les autres domaines.

Il ne faut pas que le maître d’opération soit un serveur possédant le Catalogue Globale… donc si on a plusieurs domaines et qu’on a N contoleurs de domaines, on ne peut en avoir que N-1 qui auront le catalogue globale… j’espère pour vous que vous n’avez pas que 2 DC sinon c’est pas terrible…

[Lire la suite →]

Tags: IT · Server · fr · network · windows