Blog geekesque... ou pas

Aller au contenu | Aller au menu | Aller à la recherche

Mot-clé - serveur

Fil des billets - Fil des commentaires

10/10/2011

Créer un patch et l'utiliser

Lorsqu'on développe une (ou des) application(s), il y a fréquemment des mises à jour à faire.

Très souvent, et moi le premier, la méthode la plus simple consiste à purement et simplement écraser ce que l'on a mis en place par les nouveaux fichiers, ce qui peut parfois être lourd (en quantité transférée) alors que les modifications sont mineures, et comporte des risques dûs au transfert FTP.

Heureusement, si votre application est gérée par SVN (je le conseille fortement) et si vous avez accès à l'hébergement de votre application par SSH (ce qui est malheureusement rarement le cas dans le cadre des applications web), diff et patch vont vous simplifier grandement le travail.

Lire la suite...

18/04/2011

Réveiller un NAS

Si vous êtes l'heureux possesseur d'un NAS, vous appréciez très certainement son économie d'énergie et le fait qu'il se mette "à l'arrêt" lorsqu'il n'est pas sollicité depuis un certain temps.

Enfin, ceci est de la théorie parce qu'en pratique, si vous êtes plutôt Linux que MacOS ou Windows, il va falloir chercher un peu. J'ai moi-même cherché et j'ai trouvé sur un forum une contribution de themadmax.

Je me permet donc de traduire (et expliquer) la contribution.

Lire la suite...

21/03/2010

Script de sauvegarde automatique

Ce petit script permet de générer des archives horodatées de répertoires sur une machine unix. Il suffit que tar et gunzip soient installés et de configurer les 4 variables, puis d'ajouter une entrée pour ce script dans crontab.

Dans cet exemple, le but est de sauvegarder le répertoire /home/g33kzone/public_html/ (le site) et /var/lib/mysql/g33kzone/ (la base MySQL du site) dans le répertoire /home/backups/. Les fichiers de sauvegarde seront nommés archive_YYYYMMDD.tgz, c'est à dire archive_20100321.tgz pour l'archive du 21 mars 2010.

L'option "VERBOSE" permet d'avoir un affichage des fichiers archivés, elle est à utiliser pour le debug ou si vous voulez enregistrer l'activité d'archivage dans un fichier de log.

#!/bin/bash
 
###############################################
#  Configuration
###############################################
# Destination
BACKUP_DIR="/home/backups/"
# Directories to save
FILESYSTEMS="/home/g33kzone/public_html /var/lib/mysql/g33kzone/"
 
# basename of the archive file
BASE_NAME="archive_"
 
# Would you like to get detailed information from tar and gzip? 0=false,
# 1=true
VERBOSE=0
 
# DO NOT EDIT BELOW THIS LINE
#--------------------------------------------------------
###############################################
#     Application Variables - DO NOT EDIT #
###############################################
# Day of the week;
NOW=`date +"%Y%m%d"`
# Script name
SCRIPTNAME="Backup Script"
# Version
VERSION=0.01
######## Do some error checking #########
# Does backup dir exist?
if [ ! -d $BACKUP_DIR ]
  then
    echo "The specified backup directory $BACKUP_DIR does not exist. Operation canceled."
    exit 1
fi
######## Run Backup #########
LEVEL=0
if [ $VERBOSE -eq 1 ]
  then
    tar cvfz $BACKUP_DIR/$BASE_NAME.$NOW."tgz" $FILESYSTEMS
  else
    tar cfz $BACKUP_DIR/$BASE_NAME.$NOW."tgz" $FILESYSTEMS
fi
 
exit 0

01/12/2009

Comment changer un mot de passe Mysql oublié

Copie du billet Comment changer un mot de passe Mysql oublié de Johann Denoyer

Ca peut arriver d'oublier le mot de passe root de mysql, ou reprendre en main un serveur d'un ancien administrateur ayant quitté l'entreprise un peut rapidement. Donc je vous présente ici comment changer le mot de passe root d'un serveur mysql.

Lire la suite...

26/06/2009

Limitation de l'accès SSH

Parfois, lors d'une mise à jours d'un serveur par exemple, il peut être intéressans de limiter l'accès SSH au seul utilisateur root. Pour faire cela, c'est très simple: il suffit de mettre la raison dans un fichier /etc/nologin et les autres utilisateurs se verront refuser l'accès, avec comme raison le contenu du fichier.

Pour ré-autoriser l'accès, supprimez le fichier.

Bloquer les attaques "brute force" avec iptables

Iptables est l'interface en ligne de commande permettant de configurer Netfilter, qui est un module du noyau Linux qui offre la possibilité de contrôler, modifier et filtrer les paquets IP, et de suivre les connexions. Il fournit ainsi les fonctions de pare-feu, de partage de connexions internet et d'autorisation du trafic réseau.

Il est possible de configurer iptables pour automatiquement bloquer les adresses IP qui feraient trop de tentatives d'accès à votre serveur, un peu à la manière de fail2ban mais sans installer de module complémentaire.

Lire la suite...

15/04/2009

Bug avec xml_parse_into_struct()

J'ai eu la surprise de constater qu'un système qui utilisait xml_parse_into_struct() et fonctionnait très bien sur la plupart des serveurs me faisait perdre l'entité & sur un autre serveur.

Après de longues recherches, il s'avère que c'est un bug qui existait dans libxlm en 2004 et qui a décidé de revenir dans la version 2.6.32. La solution est donc de prendre une autre version de libxml, soit inférieure (toute version 2.6 hormis la 2.6.32) ou bien de passer en 2.7.3 ou supérieure.

Les serveurs sous debian ne sont pas impactés, un correctif faisant parti des mises à jour.

12/03/2009

Apache avec de multiples utilisateurs

Lorsqu'on installe apache sur un serveur, celui-ci fonctionne sous l'utilisateur www-data ou apache. Cela permet de limiter ses droits d'accès, ce qui est une sécurité pour le serveur, mais cela pose un problème pour les fichiers créés par le site ou envoyés par formulaire, car ils n'appartiennent pas au propriétaire du site.

Ceci fait que si l'on ne modifie pas les droits d'accès de l'utilisateur (par exemple en le mettant dans le même groupe qu'apache) ou les permissions par défaut des fichiers, le webmaster ne pourra pas détruire un fichier de son site si ce n'est pas lui qui l'a mis en ligne.

Heureusement, une solution existe, c'est de faire fonctionner chaque sous-processus d'apache en tant que propriétaire du site.

Pour ce faire, il suffit de déclarer dans les définitions des sites sous quel propriétaire et sous quel groupe le site doit s'éxecuter:

<VirtualHost *>
   ServerName server1
   AssignUserID user1 group1
</VirtualHost>
 
<VirtualHost *>
   ServerName server2
   AssignUserID user2 groips
</VirtualHost>