• Accueil
  • Curriculum vitae
  • Contact
David Mercereau Le savoir n'est rien s'il n'est pas partagé

Tag Archives: Serveur

pongSmtp.pl – Tester le bon fonctionnement de votre serveur mail

28 février 2013 13 h 11 min / 1 Comment / David

J’ai mis en place un bébé service pour tester du bon fonctionnement d’un serveur SMTP. En gros vous envoyer un email à ping [arobase] zici [point] fr (en l’occurrence) et vous recevrez en retour un email “pong” avec les entêtes du message reçu par le serveur.

Le mettre en place à la maison

Pré-requis : Perl & un serveur smtp configuré (pour moi c’est Postfix)

Ensuite 4 commandes et c’est réglé :

Shell
1
2
3
4
$ mkdir /opt/pongsmtp
$ wget "http://forge.zici.fr/p/pongsmtp/source/file/master/pongSmtp.pl" -O /opt/pongsmtp/pongSmtp.pl
$ echo "ping: \"| perl /opt/pongsmtp/pongSmtp.pl\"" >> /etc/aliases
$ newaliases

Note : Si vous mettez en place ce script n’hésitez pas à m’en faire part. Une petite liste de “ping@dom1.com, ping@dom2.com….” peut être intéressante…

  • Le site du bébé projet
  • Le code source
  • Le service ping.zici.fr

Rien de plus à ajouter… si vous voyez des améliorations n’hésite pas !

Posted in: Informatique, Zici / Tagged: auto-hebergement, contributions, perl, planet-libre, pongSmtp, serveur

[rkhunter] Warning The file properties have changed

9 janvier 2013 6 h 00 min / 2 Comments / David

Rkhunter sert à détecter les rootkits, portes dérobées et exploits. Il se base en partie sur les Inodes des exécutables. Après avoir fait des aptitude safe-upgrade. vos exécutables changent…  Il faut donc en avertir Rkhunter…

Après mon premier upgrade j’ai reçu le mail suivant :

1
2
3
4
5
6
7
8
Warning: The file properties have changed:
File: /bin/bash
Current inode: 21372580 Stored inode: 44044163
 
Warning: The file properties have changed:
File: /usr/sbin/cron
Current inode: 25046249    Stored inode: 44305975
[...]

Il faut donc mettre la base Rkhunter à jour avec les nouveaux inodes.

Méthode manuel :

Lancer les commandes suivantes :

Shell
1
2
$ rkhunter --update
$ rkhunter --propupd

Méthode automatique

Si comme moi, vous êtes un chouilla fainéant créer le script /etc/apt/apt.conf.d/98-rkhunter avec le contenu suivant :

Shell
1
2
3
4
5
$ cat /etc/apt/apt.conf.d/98-rkhunter
DPkg::Post-Invoke {
    "rkhunter --update;"
    "rkhunter --propupd";
};

Ainsi la base Rkhunter sera remis à jour à chaque fois que vous utiliserez apt/aptitude.

Astuce trouvé sur le forum debian-fr.org

Posted in: Informatique / Tagged: apt, auto-hebergement, debian, hebergement, planet-libre, rkhunter, sécurité, serveur, ubuntu

Script de sauvegarde Mysql par base “mysql_dump.sh”

5 décembre 2012 12 h 00 min / David

EDIT – 13/05/2013 : v0.3 du script avec prise en compte des suggestions d’améliorations de David M + Trap

EDIT – 06/12/2012 : v0.2 du script avec prise en compte des commentaires de l’article

Un énième script de sauvegarde à plat de bases Mysql sur internet. Celui-ci crée un fichier texte (.sql) par base et compresse le tout ensuite.

J’utilise ce script depuis plus de 3 ans, ça tourne bien et surtout ça dépanne bien !

Attention : ce script est à coupler avec un système de sauvegarde complet et distant…

Préparation

Il faut créer un utilisateur Mysql (appelé dump) avec des droits restreints en lecture sur toutes les bases :

Shell
1
2
$ mysql -u root -p -e "CREATE USER 'dump'@'localhost' IDENTIFIED BY 'LEMOTDEPASSE';"
$ mysql -u root -p -e "GRANT SELECT , SHOW DATABASES , LOCK TABLES , SHOW VIEW ON * . * TO 'dump'@'localhost' IDENTIFIED BY 'LEMOTDEPASSE' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;"

Le script

Copier le contenu du script dans un fichier mysql_dump.sh puis faite un chmod +x mysql_dump.sh afin de le rendre exécutable. Ajouter ensuite ce script dans vos tâches crons pour qu’il s’exécute toutes les nuits (par exemple).

Note : les remarques sont les bienvenus…

mysql_dump.sh
Shell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#!/bin/bash
 
# Inspiré d'un script trouvé sur phpnews.fr (plus en ligne)
# Version 0.3 13/05/2013
 
# Script sous licence BEERWARE
 
set -eu
 
## Paramètres
USER='dump'
PASS='LEMOTDEPASSE'
# Répertoire de stockage des sauvegardes
DATADIR="/var/backups/mysql"
# Répertoire de travail (création/compression)
DATATMP=$DATADIR
# Nom du dump
DATANAME="dump_$(date +%d.%m.%y@%Hh%M)"
# Compression
COMPRESSIONCMD="tar -czf"
COMPRESSIONEXT=".tar.gz"
# Rétention / rotation des sauvegardes
RETENTION=30
# Exclure des bases
EXCLUSIONS='(information_schema|performance_schema)'
# Email pour les erreurs (0 pour désactiver
EMAIL=0
# Log d'erreur
exec 2> ${DATATMP}/error.log
 
## Début du script
 
ionice -c3 -p$$ &>/dev/null
renice -n 19 -p $$ &>/dev/null
 
function cleanup {
    if [ "`stat --format %s ${DATATMP}/error.log`" != "0" ] && [ "$EMAIL" != "0" ] ; then
        cat ${DATATMP}/error.log | mail -s "Backup MySQL $DATANAME - Log error" ${EMAIL}
    fi
}
trap cleanup EXIT
 
# On crée sur le disque un répertoire temporaire
mkdir -p ${DATATMP}/${DATANAME}
 
# On place dans un tableau le nom de toutes les bases de données du serveur
databases="$(mysql -u $USER -p$PASS -Bse 'show databases' | grep -v -E $EXCLUSIONS)"
 
# Pour chacune des bases de données trouvées ...
for database in ${databases[@]}
do
    echo "dump : $database"
    mysqldump -u $USER -p$PASS --quick --add-locks --lock-tables --extended-insert $database  > ${DATATMP}/${DATANAME}/${database}.sql
done
 
# On tar tous
cd ${DATATMP}
${COMPRESSIONCMD} ${DATANAME}${COMPRESSIONEXT} ${DATANAME}/
chmod 600 ${DATANAME}${COMPRESSIONEXT}
 
# On le déplace dans le répertoire
if [ "$DATATMP" != "$DATADIR" ] ; then
    mv ${DATANAME}${COMPRESSIONEXT} ${DATADIR}
fi
 
# Lien symbolique sur la dernier version
cd ${DATADIR}
set +eu
unlink last${COMPRESSIONEXT}
set -eu
ln ${DATANAME}${COMPRESSIONEXT} last${COMPRESSIONEXT}
 
# On supprime le répertoire temporaire
rm -rf ${DATATMP}/${DATANAME}
 
echo "Suppression des vieux backup : "
find ${DATADIR} -name "*${COMPRESSIONEXT}" -mtime +${RETENTION} -print -exec rm {} \;

Posted in: Informatique / Tagged: auto-hebergement, bash, debian, linux, mysql, planet-libre, sauvegarde, script, serveur, shell

Xsshfs v0.5 – Interface graphique pour Xsshfs (Perl/Glade)

14 novembre 2012 12 h 40 min / David

Xsshfs est une interface graphique pour SSHFS développé par mes soins. Ce dernier sert à monter sur son système de fichier, un autre système de fichier distant, à travers une connexion SSH. L’avantage est de manipuler les données distantes avec n’importe quel gestionnaire de fichier.

  • Le site du projet
  • Téléchargement : xsshfs_0.5-all.deb xsshfs_0.5-all_src.tar.gz
  • Le changelog

Vite vite, je veux le tester

Pour les Debian/ubuntu

Graphiquement télécharger le deb ici

Sinon en 4 commandes c’est fini :

meuhwa:~$ sudo apt-get install sshfs ssh-askpass libgtk2-gladexml-perl perl libimage-librsvg-perl liblocale-gettext-perl libconfig-tiny-perl
meuhwa:~$ wget http://xsshfs.zici.fr/files/xsshfs_current.deb
meuhwa:~$ sudo dpkg -i xsshfs_current.deb
meuhwa:~$ rm xsshfs_current.deb

Installation à partir du dépôt source

Il faut préalablement avoir installé les dépendances suivantes :  sshfs, ssh-askpass, perl, libgtk2-gladexml-perl, libimage-librsvg-perl, liblocale-gettext-perl, libconfig-tiny-perl

meuhwa:~$ wget -O xsshfs.zip http://forge.zici.fr/p/xsshfs/source/download/master/
meuhwa:~$ unzip xsshfs.zip
meuhwa:~$ cd xsshfs-master
meuhwa:~$ perl xsshfs.pl

Les nouveauté de la version 0.5

  • Paramétrer les valeurs par défauts des champs de connexions
  • Normalisation FreeDesktop
  • Traduit en 3 langues (c’est toujours 3 fois plus que dans la version 0.4)
  • Possibilité de “reprendre” une connexion enregistré
  • …

1
Sources : <a href="http://doc.ubuntu-fr.org/sshfs" target="_blank">http://doc.ubuntu-fr.org/sshfs</a>

Posted in: Informatique / Tagged: contributions, debian, linux, perl, planet-libre, serveur, ssh, xsshfs

emailPoubelle.php – script libre d’email jetable

7 août 2012 6 h 09 min / David

Ayant un serveur & des noms de domaines, j’utilise pour chaque site où je m’inscrit une adresse email spécifique. Je fonctionnais jusqu’à présent en catch-all (*@mercereau.info -> MonEm@il) mais c’est quand même le meilleur moyen de prendre du SPAM. Du coup j’ai fais une mini interface en PHP pour créer des alias facilement (des emails poubelles) & j’ai évidemment publier les sources ! (A installer sans modération)

Présentation

emailPoubelle.php est donc une page qu’il faut typiquement inclure dans votre site.

Le script dépend de Postfix & de la lib pear Net_DNS2.

  • Démo en production
  • Page du projet
  • Téléchargement
  • Ticket  (Note : vous pouvez utiliser le compte anonymous/respect sinon créer un email jetable pour vous inscrire:-p )

Installation

Installation des dépendances :

srv:~$ pear install Net_DNS2

Télécharger & décompresser les sources :

srv:~$ mkdir -p /www/emailPoubelle/postfix
srv:~$ cd /tmp
srv:~$ wget -O emailPoubelle.zip http://forge.zici.fr/p/emailpoubelle-php/source/download/master/
srv:~$ unzip emailPoubelle.zip
srv:~$ cp emailpoubelle-php-master/* /www/emailPoubelle

Configurer Postfix :

srv:~$ vi /etc/postfix/main.cf
[...]
virtual_alias_maps = hash:/www/emailPoubelle/postfix/virtual
srv:~$ touch /www/emailPoubelle/postfix/virtual
srv:~$ /usr/sbin/postmap /www/emailPoubelle/postfix/virtual
srv:~$ chown www-data /www/emailPoubelle/postfix/virtual
srv:~$ chown www-data /www/emailPoubelle/postfix/virtual.db

N’hésitez pas à me faire des retours, le modifier, le partager…. bref pleins de trucs en “er”!

La pluralité est une force !

Posted in: Informatique, Zici / Tagged: auto-hebergement, contributions, emailPoubelle, php, planet-libre, script, serveur

[Web-Dynamic-Dnsupdate] Administrer vos zones DNS sans base de données

3 août 2012 15 h 15 min / David

Présentation

Je voulais vous présenter le projet Web-Dynamic-Dnsupdate qui est une interface web d’administration DNS sans base de donné basé sur la lib pear Net_DNS2

Mon entreprise l’utilise et m’a permis de contribuer au projet (migration vers la lib Net_DNS2 car la lib Net_DNS est obsolète)

Voir la démo :

  • http://demo.zici.fr/dynamic-dnsupdate/

Les points forts :

  1. C’est très pratique pour avoir un zone toujours à jour (c’est souvent le problème des interfaces avec bases de données) ;
  2. Vous ne risquez pas de planter votre zone à cause d’une erreur de syntaxe. Le protocole ce charge de valider votre syntaxe ;
  3. Le projet a été conçu avec des GET afin qu’il soit possible de l’exploiter en ligne de commande / dans un script (exemple :
    lynx --auth login:motDePasse http://dns.exemple.com/dnsupdate.php?todo=recordAdd&rr=exemple.testdom2.com.+10800+IN+CNAME+exemple.com&domain=testdom2.com 
  4. Beaucoup de type d’enregistrements supportés :
    • Par le Wizard : A AAAA CNAME NS MX TXT PTR SPF
    • Sans Wizard : A NS CNAME SOA WKS PTR HINFO MX TXT RP AFSDB X25 ISDN RT NSAP SIG KEY PX AAAA LOC EID NIMLOC SRV ATMA NAPTR KX CERT DNAME OPT APL DS SSHFP IPSECKEY RRSIG NSEC DNSKEY DHCID NSEC3 NSEC3PARAM HIP TALINK CDS SPF TKEY TSIG URI CAA TA DLV

Les manques :

  1. Projet jeune ;
  2. Il n’est pas possible de créer des zones via l’interface ;

Autoriser l’update dans bind9

Deux petites lignes sont à indiquer dans les zones que vous souhaitez laisser mettre à jour via l’interface :

...
zone "testdom2.com" {
    type master;
    allow-transfer { 192.168.2.158;};
    allow-update { 192.168.2.158; };
    file "/var/lib/bind/testdom2.com/zone";
};
...
Posted in: Informatique / Tagged: auto-hebergement, contributions, dns, hebergement, php, planet-libre, serveur

[Debian squeeze] Serveur postfix + dovecot LDA avec OpenLdap

3 avril 2012 12 h 15 min / David

Un annuaire LDAP (avec le schéma misc) est déjà en place, nous souhaitons monter un serveur de mail SMTP/IMAPS en s’appuyant sur l’authentification de l’annuaire LDAP :

apt-get install postfix postfix-ldap dovecot-imapd

Postfix

Tout d’abord /etc/postfix/main.cf :

smtpd_banner = $myhostname
biff = no
append_dot_mydomain = no
readme_directory = no
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
myhostname = hostname.zici.fr
myorigin = /etc/mailname
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_command = /usr/lib/dovecot/deliver
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
luser_relay =
alias_maps = hash:/etc/aliases
virtual_mailbox_domains = zici.fr, mercereau.info, liencontrelien.zici.fr
virtual_alias_maps = hash:/www/zici/emailPoubelle/virtual
dovecot_destination_recipient_limit = 1
virtual_transport = dovecot
mailbox_transport = dovecot
dovecot_destination_recipient_limit = 1

Dans le fichier master.cf il suffit de rajouter la ligne suivante à la fin du fichier:

# Dovecot LDA
dovecot unix - n n - - pipe flags=DRhu user=vmail:mail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${recipient} -d ${user}

Dovecot

Il n’y a que 2 fichiers de conf, d’abord, /etc/dovecot/dovecot.conf

protocols = imap imaps
log_timestamp = "%Y-%m-%d %H:%M:%S "
mail_location = maildir:/var/mail/%n
mail_uid = 500
mail_gid = 8
mail_privileged_group = mail
protocol imap {
imap_client_workarounds = outlook-idle
}

protocol pop3 {
pop3_uidl_format = %08Xu%08Xv
}
protocol managesieve {
}
protocol lda {
postmaster_address = postmaster@zici.fr
auth_socket_path = /var/run/dovecot/auth-master
}
auth default {
mechanisms = plain login
passdb pam {
}
passdb ldap {
args = /etc/dovecot/dovecot-ldap.conf
}
userdb ldap {
args = /etc/dovecot/dovecot-ldap.conf
}
user = root
socket listen {
master {
path = /var/run/dovecot/auth-master
mode = 0600
user = vmail
group = mail
}
}
}
dict {
}
plugin {
}

et enfin /etc/dovecot/dovecot-ldap.conf

hosts = 127.0.0.1
auth_bind = yes
ldap_version = 3
base = ou=Utilisateur,dc=zici,dc=fr
user_attrs = uidNumber=500,gidNumber=8
user_filter = (&(objectClass=posixAccount)(cn=%n))
pass_filter = (&(objectClass=posixAccount)(cn=%n))
default_pass_scheme = SSHA

Astuce pour tester les filtres utiliser la commande

 ldapsearch -x -h localhost -b "ou=Utilisateur,dc=zici,dc=fr" '(&(objectClass=posixAccount)(cn=Utilisateur))'

Source :

  • http://www.404blog.net/?p=36
  • http://monblog.system-linux.net/blog/2011/05/12/ajouter-des-schemas-dans-votre-annuaire-openldap-avec-debian-squeeze/
  • http://www.rjsystems.nl/en/2100-d6-openldap-provider.php
Posted in: Non classé / Tagged: debian, dovecot, postfix, serveur

Post Navigation

1 2 Suivant »

Pas d’Anti-pub ?

Vous ne semblez pas disposer d'un filtre anti-pub sur votre navigateur. Je vous encourage à en installer un, c'est gratuit :

Télécharger un anti-publicité

Comprendre la démarche...

Articles récents

  • LA Licence Beerware
  • [FredgniX] diff et patch en dix minutes
  • pongSmtp.pl – Tester le bon fonctionnement de votre serveur mail
  • Linutop 3 – Adaptateur alimentation disque 2,5 pouces
  • Fabriquer un jeu de “Dames Chinoises”
  • [MiniTrick] Désactiver l’historique bash
  • Créer/publier un plugin wordpress simple : “Adblock invite”
  • Incitateur anti-pub… Pourquoi faire ?

Mots-clefs

anti-pub apt auto-hebergement bash bricolage commande contributions cours debian dep dns dovecot emailPoubelle grub hebergement ispconfig ldap libre linutop linux mail musique mysql ménage navigateur perl php planet-libre port postfix proxy publicité script serveur shell socks spam squid ssh sécurité ubuntu vie-privée windows wordpress xsshfs

Liens

  • Forge Zici Ma bébé forge
  • Xsshfs Interface Graphique pour sshfs
  • Zici.fr Services gratuits

Commentaires récents

  • David dans Script de sauvegarde Mysql par base “mysql_dump.sh”
  • David M. dans Script de sauvegarde Mysql par base “mysql_dump.sh”
  • David M. dans Script de sauvegarde Mysql par base “mysql_dump.sh”
  • David M. dans Script de sauvegarde Mysql par base “mysql_dump.sh”
  • Fred dans LA Licence Beerware
  • alexnogard dans [FredgniX] diff et patch en dix minutes
  • Nicolas dans pongSmtp.pl – Tester le bon fonctionnement de votre serveur mail
  • David dans [MiniTrick] Désactiver l’historique bash

Licence Beerware

Le contenu de ce blog est sous licence Beerware

Si on se rencontre un jour et que vous pensez que ce truc vaut le coup, vous pouvez me payer une bière en retour.

Le contenu de ce blog est sous licence Beerware
Infinity Theme by DesignCoral / WordPress