Catégorie : Réseau

Messagerie Zimbra – outils pour dépanner


I’ve install CentOS 6 (Basic server). ( … create a user other than root, configure a static ip address and update the system)
I’ve install dependencies :
[CODE]sudo yum install nc libidn gmp openssh[/CODE]

I’ve modified DNS configuration on my domain provider ( OVH ).
I made mistake : I first create a host with a name « mail » before changing it to the name of my zimbra server.

So the final DNS configuration is the following :

I’ve configure my router to do NAT on port 25 to the local ip address of my zimbra server

I’ve install DNSMasq on the zimbra server for DNS SPLIT
/etc/dnsmasq.conf file :

/etc/hosts file :
[CODE] localhost.localdomain localhost myserver

/etc/resolv.conf file :
I know it shoud be :

But the file is configured by DHCP whith these value :
; generated by /sbin/dhclient-script

I put the install file ‘zcs-NETWORK-8.0.5_GA_5839.RHEL6_64.20130910124005.tgz’ and my XML licence in the home directory of the server.
I have untar and launch ‘./’ to start the installation.

I had error but was able to fix it ( I forget the hosts file … )
Finally, I configure the admin password, put the licence path and file name.

Then I run some test :
su – zimbra
zmcontrol status[/CODE]

that gave me

[CODE][zimbra@myserver ~]$ zmcontrol status
antispam Running
antivirus Running
convertd Running
ldap Running
logger Running
mailbox Running
memcached Running
mta Stopped
postfix is not running
opendkim Running
proxy Running
snmp Running
spell Running
stats Running
zmconfigd Running

Even after doing
zmcontrol start

I did some more testing :
[CODE][myuser@myserver ~]$ dig mx

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <<>> mx
;; global options: +cmd
;; Got answer:
;; ->>HEADER< ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0



;; Query time: 32 msec
;; WHEN: Fri Nov 29 16:27:30 2013
;; MSG SIZE rcvd: 56

Two things that are wrong :
This DNS server is still using my old hostname « mail » instead of « myserver » … I think I have to wait for world wide DNS replication.
The local machine is not using my local DNSMasq … may be because of the resolv.conf file. That have to be fix through the DHCP server.


Today, I’ve changed the network configuration to static IP on the server.
I’ve also tested the dig command. External DNS now give the correct host name.
But the internal DNS is not answering.
I check the /etc/resolv.conf. the file contain the necessary information.
I check the status of dnsmasq :
[myuser@myserver ~]$ sudo /etc/init.d/dnsmasq status
[sudo] password for myuser:
dnsmasq is stopped
Ok, dnsmask is not starting at boot … I have to fix that

If I do
[myuser@myserver ~]$ su
Mot de passe :
[root@myserver myuser]# su – zimbra
[zimbra@myserver ~]$ zmcontrol start

I get :

Starting mta…Failed.
Starting saslauthd…already running.
postfix failed to start

In the zimbra.log file i get this error:

myserver postfix/master[4711]: fatal: bind port 25: Address already in use
[myuser@myserver ~]$ sudo lsof -i TCP:25
[sudo] password for myuser:
master 1943 root 12u IPv4 14783 0t0 TCP localhost.localdomain:smtp (LISTEN)
master 1943 root 13u IPv6 14785 0t0 TCP localhost.localdomain:smtp (LISTEN)

What that master process ?

That the system postfix. Weird, is-it install with the basic server centOS installation ?

[myuser@myserver ~]$ sudo /etc/init.d/postfix status
[sudo] password for myuser:
master (pid 1943) is running…

So I stop it.
[myuser@myserver ~]$ sudo /etc/init.d/postfix stop
Stopping postfix : [ OK ]
[zimbra@myserver ~]$ zmcontrol start
Starting zmconfigd…Done.
Starting logger…Done.
Starting convertd…Done.
Starting mailbox…Done.
Starting memcached…Done.
Starting proxy…Done.
Starting antispam…Done.
Starting antivirus…Done.
Starting opendkim…Done.
Starting snmp…Done.
Starting spell…Done.
Starting mta…Done.
Starting stats…Done.
Now it looks like it should work better.
I have to check if mails are going in and out in the real world.


It’ all good !

Serveur IRC

Solution unrealIRC

sudo apt-get install build-essential
  1. gunzip -d Unreal3.2.X.tar.gz
  2. tar xvf Unreal3.2.X.tar
  3. cd Unreal3.2
To build the ircd, run:
Answer these questions to the best of your knowledge. 
Generally if your not sure, the default will work just fine!

If you specified an alternative location during ./Config you also need
to run "make install".

If you are new, then you need to create your own configfile:

copy doc/example.conf to your main UnrealIRCd directory and call
it unrealircd.conf .
Then open it in an editor and carefully modify it, consult the docs
(doc/unreal32docs.html, or online:
for more information about every block/setting.
Common problems are explained in the FAQ, which is located at: .

Just type: ./unreal start
Note that after booting the errors are usually logged to ircd.log,
so check that file if you have any problems.
Again, check the FAQ (and docs) if you have any boot problems.



Solution ircd-hybrid + ZNC + hybserv

Howto setup the Ultimate IRC Server
September 23, 2012 by Christopher Sexton

While I like Campfire and HipChat and those other tools for group collaboration there is just something nice about using an IRC channel. Probably the most compelling reason is that I am going to have my IRC client running anyway for other channels — so it would be nice to just add a server and use the same client I am already using.

At Radius we had been using a public server for a little bit of communication, but the converstaions starting becoming more technical and wasn’t happy having things go through someone else’s server, and be unencrypted. So I decided to setup my own. I give you the ultimate irc setup:
The Ultimate IRC Server

The ultimate server consists of a few components:

The IRC server itself (ircd-hybrid)
an IRC bouncer (ZNC)
a way to tunnel port 443 to the bouncer
and maybe a bot that can post funny pictures of cats for you

I am using Ubuntu Server 12.04.1 LTS (ami-137bcf7a) running on a micro instance.
Install the IRC Server

sudo apt-get install ircd-hybrid
sudo vim /etc/ircd-hybrid/ircd.motd

Create the password required to be the Oper:

WARNING: Please do not mix up the mkpasswd program from /usr/sbin with this one. If you are root, typing mkpasswd will run that one instead and you will receive a strange error.

/usr/bin/mkpasswd super-secret

Edit the config file, this is well documented and there are plenty of little tweaks you can make but make a couple little changes now:

sudo vim /etc/ircd-hybrid/ircd.conf

Comment out the host parameter in the listen section (about line 130 in the default ubuntu config)

host = “″;

to be

#host = “″;

And increase the max_clients in the serverinfo section:

max_clients = 2;

to be

max_clients = 512;

This will open the server up to external connections (Note: make sure you configure your instance to have these ports open, e.g. in EC2 you will need to edit the security profile and open ports 443, 6664, and 6667), and allow more than 2 folks to connect from the same IP (which is important since we will have everyone connect via ZNC running on this machine).

Now restart the server

sudo /etc/init.d/ircd-hybrid restart

Now you should be able to fire up your favorite client and see if you can get it to connect to the server. Once you have proven it works, time to move onto the bouncer.
Install the IRC Bouncer

Originally I followed the guide from Dustin Davis but have a few tweaks:

sudo apt-get install znc
znc –makeconf

Follow the guides to setup the server. I mostly choose the defaults, and enabled all the modules

What port would you like ZNC to listen on? (1025 to 65535): 6664
Would you like ZNC to listen using SSL? (yes/no) [no]: yes
Would you like to create a new pem file now? (yes/no) [yes]: yes
Listen Host (Blank for all ips):
Number of lines to buffer per channel [50]: 1000
Would you like to keep buffers after replay? (yes/no) [no]: yes

Configure ZNC to use the brand new IRC server that we just installed:

IRC server (host only):
[] Port (1 to 65535) [6667]: 6667
[] Password (probably empty):
Does this server use SSL? (yes/no) [no]:
Would you like to add another server for this IRC network? (yes/no) [no]: no
Would you like to add a channel for ZNC to automatically join? (yes/no) [yes]: yes
Would you like to add another channel? (yes/no) [no]: no
Would you like to set up another user (e.g. for connecting to another network)? (yes/no) [no]: no
Launch ZNC now? (yes/no) [yes]: no

Now you can run ZNC as that user and verify it works, and make tweaks to the config.

vi .znc/configs/znc.conf

or with the webadmin module by pointing a browser to


To verify that this works with your local client you should just have to change the port from 6667 to 6664. If you want to compare settings my initial config file looked something like this.
Make ZNC a system daemon

At the end of the config keep it running and connect to it from your local IRC client to make sure things are working. Once you have proven it works time to set it up as a daemon that starts at boot. I used Henner’s guide when I first set this up.

killall znc # just to make sure

Create the user and group

sudo addgroup –system znc
sudo adduser –system –no-create-home –ingroup znc znc

Create the init script, I have the one I use up here

sudo vim /etc/init.d/znc

It’s pretty big, so you may want to curl it down

curl > /etc/init.d/znc

Copy over the ZNC config files to /etc, and update permissions

sudo mkdir /etc/znc
sudo mv /home/$USER/.znc/* /etc/znc/
rm -R /home/$USER/.znc
chown -R znc:znc /etc/znc
sudo chown -R znc:znc /etc/znc
sudo chmod +x /etc/init.d/znc

Start ‘er up

sudo /etc/init.d/znc start

Setup port forwarding

Forward from 443 to 6664 to work around firewalls.

This step is not required if your network does not block the ports we are using. But it is still nice to use in case you ever find yourself on one. Also you would not want to do this on a server that is serving webpages over https.

sudo apt-get install rinetd
sudo vim /etc/rinetd.conf

Edit that file to include a new forwarding rule 443 6664

Restart rinetd

sudo /etc/init.d/rinetd restart

If you enabled the webadmin module in ZNC you should now be able to point your browser to https://yourhostname and edit your ZNC config (and let folks edit their accounts, configure modules and change passwords). Yes, ZNC uses the same port for IRC connections and for the admin page.

Now you should have an irc server running on port 6667, a bouncer running on port 6664, and a tunnel for the bouncer from port 443.

I just used the web admin module to setup accounts for everyone on my team. I wound up turning off external access to 6667 so that I didn’t have to secure ircd, and everyone just goes through ZNC.

You might want to setup an bot to do your bidding, I use radbot. You should fork 🙂


Le fichier « resolv.conf » permet d’indiquer le ou les domaines de recherche et les différents serveurs DNS à utiliser.

Ainsi, lorsqu’un client recherche une adresse en dehors du nom de domaine local ( par exemple), dnsmasq (l’application que nous allons utiliser pour les services de DHCP et de DNS) va interroger les serveurs listés dans resolv.conf. Dnsmasq va alors garder le résultat dans un cache pour les requêtes futures

Par exemple, dans un réseau local, nous pourrions avoir un serveur DNS à l’adresse chargé de gérer le domaine « ». En cas de défaillance du DNS local, nous pourrions faire appel aux serveurs DNS de Google (ou du fournisseur d’accès). Dans ce cas, le contenu du fichier « /etc/resolv.conf », pourrait ressembler à cela :


La première ligne indique l’adresse du serveur DNS du réseau local. En cas de défaillance de ce serveur, les serveurs suivants seront utilisés.

La dernière ligne permet d’indiquer le nom du domaine géré par le serveur DNS local. Par exemple, si nous cherchons à contacter le serveur « MonServeur », le système cherchera en fait à contacter l’adresse complète « », car le nom du serveur indiqué ne comportait pas le domaine de recherche.

Présentation et installation de resolvconf

Le paquet « resolvconf » permet de gérer très finement le contenu du fichier « /etc/resolv.conf » servant à la résolution des noms en fonction du type de connexion utilisé et en récupérant les informations à différents endroits statiques ou dynamiques (clients ppp, dhcp ou autres).


sudo aptitude install resolvconf

Sur ma machine, le paquet était déjà installé.

Une fois le paquet « resolvconf » installé, il ne faut plus modifier le fichier « /etc/resolv.conf », car le contenu de celui-ci sera automatiquement géré et remplacé par « resolvconf ».

Utilisation de resolvconf avec une interface de type « eth0 »

Le configuration de ce type d’interface est faite dans le fichier « /etc/network/interfaces ».

Par exemple, pour une interface de type « eth0 », il faut ajouter les lignes « dns-nameservers » et « dns-search » au contenu du fichier « /etc/network/interfaces ». Exemple

iface eth0 inet dhcp

Pour vérifier que tout fonctionne correctement, il faut commencer par désactiver l’interface « eth0 » :

sudo ifdown eth0

Après cette commande, le fichier « /etc/resolv.conf » doit être vidé et devrait donc ressembler à cela :

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)

Et après l’activation de l’interface « eth0 » :

sudo ifup eth0

Le fichier « /etc/resolv.conf » devrait ressembler à cela :

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)

Remarque : Il est possible de personnaliser le message d’avertissement des deux premières lignes (pour le mettre par exemple en français) en modifiant le contenu du fichier « /etc/resolvconf/resolv.conf.d/head »

Logiciel de contrôle à distance

Quels logiciels peuvent permettre de prendre la main à distance sur une autre machine à travers internet ?
Dans l’idéal, ce serait une application rapide à lancer, pré-configurée.
Deux types :

CentOS 6 – serveur de messagerie Zimbra

!! Article en cours de rédaction !!

Prérequis :
Une installation de CentOS6

Dans l’exemple :
le domaine a pour nom :
la machine qui fait tourner zimbra se nomme : zimbra

Disk Partitioning Setup
The disk partition should be set up as follows:
•The Mount Point/RAID Volume size for the Boot partition (/)should be 100MB.
•The Swap partition should be set to twice the size of the RAM on yourmachine.
•The Root partition (/) should be set with the remaining disk space size.

CentOS 6 – Controleur de domaine – Samba4

!! Article en cours de rédaction !!

hostname : monserveur
Realm et DNS domain name :
NT4 domain name : ad
IP :
Rôle serveur : DC


Sur le serveur


Désactiver le firewall et SELinux

[root@ ~]# /etc/rc.d/init.d/iptables stop
iptables: Flushing firewall rules:
[ OK ]
iptables: Setting chains to policy ACCEPT: filter
[ OK ]
iptables: Unloading iptables modules:
[ OK ]
[root@ ~]#chkconfig iptables off
[root@ ~]#chkconfig ip6tables off

Héberger un serveur FTP

Prérequis :

Avoir une machine virtuelle de disponible.
Je vais utiliser une installation de Ubuntu server 12.04 LTS (voir article précédent).

Rediriger une adresse web vers l’IP dynamique du routeur

Création d’un compte sur un site de DNS dynamique.

Si comme beaucoup de monde, vous avez un routeur qui dispose d’une adresse ip dynamique, il va vous falloir utiliser un DNS dynamique :

Allez sur pour vous créer un profil.

Ajouter un hôte (host).

Gestion d’un domaine sous Ubuntu – 7 – Configurer des clients Ubuntu

Article en cours de modifications

7 – Configurer des clients Ubuntu

Les clients vont être configurés de sorte que le répertoire Home soit monté à partir du serveur et que la paire utilisateur / mot de passe soit vérifié par ldap et kerberos.

Nous n’allons pas aborder l’installation d’une machine sous Ubuntu, néanmoins, pendant l’installation, je vous recommande de créer un utilisateur local, par exemple « localadmin” dont le nom ne sera pas utilisé sur le réseau. Nous l’utiliserons pour configurer la machine.

D’autre part, lors de l’installation, il est important d’utiliser le nom d’hôte FQDN pour renseigner le nom de la machine, par exemple : monpc.exemple.local

Si vous travaillez sur une machine qui a déjà été installé, alors il suffit de modifier le fichier /etc/hosts et changer la ligne : monpc

par monpc.exemple.local monpc


Gestion d’un domaine sous Ubuntu – 6 – Gestion des comptes utilisateurs

6 – Gestion des comptes utilisateurs

OpenLDAP et Kerberos fonctionnent, voyons comment gérer les utilisateurs et les groupes


Nous allons d’abord installer quelques scripts de base pour la gestion de ldap :

sudo aptitude install ldapscripts

Puis, modifier le fichier de configuration « /etc/ldapscripts/ldapscripts.conf » :

Gestion d’un domaine sous Ubuntu – 5 – NFS

5 – NFS

NFS est un protocole qui permet d’accéder à des fichiers à travers le réseau.

il est intéressant d’associer NFS à Kerberos pour que les utilisateurs retrouvent leurs fichiers quelque soit la machine utilisé. Pour cela, il faudra prévoir un espace de stockage sur un serveur.

Nous allons voir la configuration de NFS et utiliser Kerberos pour le sécuriser.

Installation des paquets NFS