[owncloud] Quelques commandes utiles lors d’une migration

Hello,

Venant de migrer d’un serveur dédié à un autre mon instance owncloud, quelques commandes utiles.

Copie de dossier d’un serveur à un autre :

scp -r -P xxx dossier1/ user@server:dossier2/
  • le -P xxx indique le port si vous l’avez modifié (ce qui est mon cas)
  • dossier1/ : dossier depuis votre serveur source
  • user@server : utilisateur et domaine du serveur cible
  • dossier2/ : dossier dans lequel sera déposé vos données, attention ce dossier doit se trouver dans le dossier /home/user de votre serveur cible

Plus de détails sur la commande scp

On se place sur le serveur cible sur /home/user/ et on déplace le dossier vers l’espace owncloud

mv dossier1/ /var/www/owncloud/data/userowncloud/files/

Plus de détails sur la commande mv

On modifie les droits pour les attribuer à www-data

chown -R www-data:www-data dossier1/

Plus de détails sur la commande chown 

Une fois la migration terminée, un petit scan ne fait pas de mal !

sudo -u www-data php /var/www/owncloud/occ files:scan --all --verbose

Plus de détails sur la commande occ d’owncloud.


Par contre, j’ai rencontré des soucis de suppression depuis l’interface owncloud ou sur mon poste, j’ai dû supprimé la table des fichiers lockés.

On passe owncloud en mode maintenance

sudo -u www-data php /var/www/owncloud/occ maintenance:mode --on

Dans phpMyAdmin, on vide la table des fichiers lockés

delete from oc_file_locks

Et on remet en marche !

sudo -u www-data php /var/www/owncloud/occ maintenance:mode --off

En cadeau, pour connaître la taille d’un dossier

du -hs dossier1/

Plus de détails sur la commande du

Enjoy !

Personnaliser les commandes Unix / .bashrc

Hello !

Par défaut, lorsque vous arrivez sur un serveur, vous avez accès aux commandes Unix mais rapidement, à l’usage, vous vous rendez compte que vous utilisez toujours les mêmes ! 

Alors pour gagner du temps, rien de mieux que de se créer quelques raccourcis en créant ses propres commandes.

Pour cela, ouvrer le fichier « .bashrc » dans votre dossier root

cd /root/
vi .bashrc

Et modifier votre fichier de la sorte

# You may uncomment the following lines if you want `ls' to be colorized:
export LS_OPTIONS='--color=auto'
eval "`dircolors`"
alias ls='ls $LS_OPTIONS'
alias ll='ls $LS_OPTIONS -al'
alias l='ls $LS_OPTIONS -lA'

# Some more alias to avoid making mistakes:
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

On enregistre le tout et on oublie pas de rafraîchir le script.

source .bashrc

Enjoy !

Maitriser l’accès root à son serveur web / Sécurisation de SSH

Après avoir expliquer en détail comment corriger les avertissements de rkhunter (outil de surveillance de failles sur un serveur, cf. post consacré), je précisais qu’il était vivement conseillé de ne pas autoriser les accès root sur son serveur. Ci-dessous, une méthode de sécurisation de l’accès root.

Sécurisation de SSH
Editer le fichier

vi /etc/ssh/sshd_config

Et modifier les propriétés suivantes :

Port 2222 # Changer le port par défaut
PermitRootLogin no # Ne pas permettre de login en root
Protocol 2 # Protocole v2
AllowUsers ooznet # N'autoriser qu'un utilisateur précis

et redémarrez le service:

/etc/init.d/ssh restart

Recevoir un mail en cas de connexion avec Root
Vous pouvez éditer le fichier /root/.bashrc qui est exécuté au démarrage d’une session root pour envoyer un e-mail de notification. De cette façon, vous serez prévenu lorsqu’un login est effectué.

vi /root/.bashrc

Ajoutez la ligne (en modifiant l’adresse e-mail de destination) :

echo 'Accès Shell Root le ' `date` `who` | mail -s `hostname` Shell Root de `who | cut -d"(" -f2 | cut -d")" -f1` monitoring@monitoring.com

Créer un utilisateur
Tout d’abord, créer l’utilisateur :

sudo useradd [options] identifiant

et modifier son mot de passe :

passwd identifiant

Se connecter à son serveur web
Dorénavant, il n’est plus possible de vous connecter à votre serveur web avec root. Il faut donc se connecter avec Kitty par exemple via SSH sur le port 2222 (ou autre en fonction de ce que vous avez configuré dans le fichier sshd_config) avec le nouvel utilisateur créé. Ensuite, il vous faut prendre la main sur votre serveur en root via la commande :

su -

Enjoy !

Donner l’accès distant à une base de données MySQL

Voilà, dans le cadre d’une migration, j’ai dû autoriser sur mon serveur l’accès à ma base de données MySQL dont voici la marche à suivre :

Etape n ° 1: Se connecter via ssh

Se connecter via ssh sur son serveur en root (via Kitty) et saisir la ligne de commande suivante pour donner l’autorisation de l’écoute du port au niveau du firewall :

/sbin/iptables -A INPUT -i eth0 -p tcp --dport 3306 -j ACCEPT

 

Etape n ° 2: Permettre la mise en réseau

Toujours sur le serveur, il s’agit de modifier le fichier de configuration my.inf avec l’éditeur de texte vi

vi /etc/my.cnf

Repérer la ligne avec la balise [mysqld], assurez-vous que la ligne skip-networking est commentée par « # » (ou supprimez la ligne) et ajouter la ligne suivante :

Bind-address = xxx.xxx.xxx.xxx # l'adresse ip du serveur hébergeant votre bdd

Pour connaître l’adresse IP de son serveur, un petit ifconfig avec lecture du résultat : eth0 … inet adr:xxx.xxx.xxx.xxx

Par exemple, si l’adresse de votre serveur est 88.45.121.23 :

[mysqld]
set-variable=local-infile=0
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
bind-address=88.45.121.23

Enregistrer et quitter le fichier (:wq!, cf. Vi, les raccourcis de l’éditeur de texte), puis redémarrer le service mysqld :

/etc/init.d/mysqld restart

 

Etape n ° 3: Accorder l’accès à l’adresse IP distante

Tout d’abord, connecter vous à mysql en ligne de commande :

mysql -u root -p mysql

Puis saisissez votre mot de passe (l’utilisateur ayant tous les privilèges peut également être admin, tout dépend de votre configuration mysql).

Il s’agit ensuite de donner les droits à un utilisateur de se connecter à distance via la commande suivante :

mysql> GRANT ALL ON base_test.* TO user_test@'xxx.xxx.xxx.xxx' IDENTIFIED BY 'pwd_test';

  • base_test : la base de données nécessitant un accès à distance
  • user_test : l’utilisateur qui doit y accéder
  • xxx.xxx.xxx.xxx : l’adresse IP du serveur contenant la bdd (88.45.121.23 dans notre exemple)
  • pwd_test : le mot de passe de l’utilisateur

Se déconnecter de mysql.

mysql> exit

 

Etape n ° 4: Tester le résultat

Il est possible de tester les différentes actions réalisées via une commande mysql ou telnet :

mysql -u user_test –h 88.45.121.23 –p
telnet 88.45.121.23 3306

Enjoy !

WordPress – Problème lors d’une mise à jour ?

Si vous voyez apparaître ce message :

Une mise à jour automatique de WordPress a échoué en cours de route ; vous pouvez tenter de la relancer.

Rien de bien méchant, certainement une mise à jour de WordPress ou d’un des ses plugins qui s’est interrompu en cours de màj. La méthode à suivre pour résoudre le problème est toute simple, il faut supprimer à la racine du dossier où se trouve le blog le fichier .maintenance

Je viens d’avoir ce soucis :

  • Via SSH (en utilisant le programme Putty), connexion en root sur mon serveur,
  • direction /var/www/vhosts/idys.fr/httpdocs/blog/,
  • un ll -a pour afficher tous les fichiers même ceux cachés
  • puis un rm -f .maintenance pour supprimer le fichier en question.

C’est certainement possible en FTP en affichant les fichiers cachés dans l’explorateur (lu sur certains blogs) mais personnellement, je n’ai pas réussi alors passage par SSH (réservé aux connaiseurs).

Tout est revenu dans l’ordre, ouf !

Enjoy !

Différences de version de la bibliothèque MySQL ?

Hello,

Si vous rencontrez ce message d’erreur dans PhpMyAdmin, notamment suite à une mise à jour de LAMP, voilà ce qu’il signifie exactement.

Message d’erreur:

La version de votre bibliothèque MySQL (5.0.77) diffère de la version de votre serveur MySQL (5.1.54). Ceci peut occasionner un comportement imprévisible.

En fait, la version du client, à savoir PHP est configurée pour fonctionner avec la version 5.0.77 de MySQL. Or, en mettant à jour MySQL sur le serveur, celle-ci est montée pour devenir 5.1.54 d’où l’incohérence !

Pour cela, il faut recompiler PHP et Apache !

Petite astuce pour trouver une chaine de caractères dans un fichier.

find . -name "*" -exec grep -Hn "5.1.54" {} \;

Enjoy !

MàJ PHP sous Plesk

On continue pour les petites astuces techniques qui peut-être serviront à d’autres. Dans notre configuration actuelle, un serveur dédié sous CentOS 5.5 avec une interface plesk, pour mettre à jour PHP (qui est une très vieille version dans la configuration de base), il suffit en s’étant connecté en SSH sur son serveur avec le login root d’exécuter les commandes suivantes :

Récupération de repository corrects

wget -q -O - http://www.atomicorp.com/installers/atomic.sh | sh

Lancement de la demande de mise à jour

yum update php mysql php-mysql

Plus d’infos disponibles sur ce post, notamment en cas de problème: http://forum.ovh.com/showthread.php?t=43174

Et voilà, passage de PHP 5.1.6 à 5.2.16 😀

Pour connaitre votre version de PHP, au choix, dans un fichier php:

phpinfo();

Ou en ligne de commande:

php -v

Enjoy !

Vi, les raccourcis de l’éditeur de texte

Dans le monde de l’administration serveur, il y a un outil indispensable, l’éditeur de texte Vi. Pas très convivial, il fonctionne sous GNU/Linux en ligne de commande. Exit le mode clic de la souris, tout est basé sur des raccourcis claviers et pas forcément les plus courants, pas de CTRL+C/CTRL+V !

Il existe 2 modes dans Vi, le mode Commande (mode par défaut pour exécuter des commandes), le mode Insertion (pour modifier, supprimer, déplacer).

Les raccourcis les plus utilisés

  • :w : sauvegarder
  • :q! : quitter sans sauvegarder
  • :wq : quitter Vi en sauvegardant les modifications sans message de confirmation (w = write, q = quitter)
  • dd : suppression d’une ligne entière
  • /motif : recherche le motif dans le texte

Continuer la lecture de « Vi, les raccourcis de l’éditeur de texte »

Correction des Warning de rkhunter (Plesk) – Suite

Hello,

Suite à un update de rkhunter, je me retrouve avec de nouveaux warnings et je vais donc détailler comment les résoudre.

Pour le premier warning, il s’agit de décommenter dans le fichier rkhunter.conf la ligne qui autorise ce dossier caché.

Warning: Hidden directory found: /dev/.udev
ALLOWHIDDENDIR=/dev/.udev

Les fichiers cachés trouvés par rkhunter, après avoir vérifié que ceux-ci sont valides, peuvent être intégré dans le test en les autorisant dans le fichier de configuration.

Warning: Hidden file found: /usr/share/man/man1/..1.gz: gzip compressed data, from Unix, max compression
Warning: Hidden file found: /usr/bin/.ssh.hmac: ASCII text
Warning: Hidden file found: /usr/bin/.fipscheck.hmac: ASCII text
Warning: Hidden file found: /usr/sbin/.sshd.hmac: ASCII text
ALLOWHIDDENFILE=/usr/share/man/man1/..1.gz
ALLOWHIDDENFILE=/usr/bin/.ssh.hmac
ALLOWHIDDENFILE=/usr/bin/.fipscheck.hmac
ALLOWHIDDENFILE=/usr/sbin/.sshd.hmac

Pour les derniers warning, j’ai autorisé les applications posant problème en ajoutant à la whitelist dans le fichier rkhunter.conf.

Warning: Application 'httpd', version '2.2.3', is out of date, and possibly a security risk.
Warning: Application 'sshd', version '4.3p2', is out of date, and possibly a security risk.
APP_WHITELIST="httpd sshd"

Enjoy !

Problème avec la fonction open_basedir

J’ai rencontré cette erreur à deux reprises en installant mes deux forums sur mon serveur à savoir ce joli message d’erreur:

[phpBB Debug] PHP Notice: in file /includes/functions.php on line 2387: file_exists() [function.file-exists]: open_basedir restriction in effect. File(.) is not within the allowed path(s): (/:/tmp/)

Comme je me suis fait avoir la première, j’ai galéré déjà plusieurs heures pour trouver la solution et malin que je suis, je ne me la suis pas noté et voilà que je galère à nouveau pour ce forum.

J’ai donc décidé par ce message de m’en faire un post-it qui pourrait servir à d’autres éventuellement.

Lire la suite…