Archives de catégorie : Linux

Tout ce qui parle de linux

KVM: Communication entre invité en mode pont

Cette article est un pense bête et peut aussi servir aux personnes utilisant kvm en mode bridge (pont).

KVM est configuré en mode pont pour permettre la communication entre l’hôte et les invités. Il arrive que les invités ne puissent pas communiquer entre eux. Cela est du à des règles de filtrage du pont au niveau de l’hôte.

Attention! Si vous perdez la connectivité entre invités suite à une mise à jour, penser à revoir le fichier suivant.

Pour régler le problème, il faut ajouter au fichier suivant les informations:

/etc/sysctl.conf
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0

Si vous n’utilisez pas IPV4, ajouter que les informations concernant IPV6 et vice et versa

Source:
https://wiki.libvirt.org/page/Networking#Host_configuration_2
https://wiki.debian.org/BridgeNetworkConnections

Mise en place d’un gestionnaire de paquet centralisé (NEXUS)

Construction du gestionnaire avec Docker

Nous allons installer NEXUS via Docker. Il faut donc connaître un peu Docker, avoir installé les outils nécessaires. Nous les verrons au fur et à mesure.

De base, NEXUS n’est pas pas packagé avec la gestion des paquets pour les distribution se basant sur débian (apt). Il existe un plugin nexus-repository-apt. Attention, le plugin n’est pas supporté par NEXUS, prenez vos responsabilités. Le conteneur contenant le plugin apt se sert du conteneur de base pour ajouter le plugin.

Il va falloir construire le conteneur à partir des sources sur github.

Pour cela, se placer à l’endroit désiré:

cd /home/pierre/Documents

Cloner le dépot officiel du plugin nexus-repository-apt, n’oubliez pas la ligne 2

git clone https://github.com/sonatype-nexus-community/nexus-repository-apt.git
cd nexus-repository-apt/

Se placer sur le bon tag, le master n’est pas nécessairement celui que vous voullez

git checkout UpdateToThreeDotFourteen

Lancer le build, n’oubliez pas le point à la fin de la ligne

docker build -t nexus-repository-apt:3.14.0 .
  • nexus-repository-apt correspond au nom du conteneur construit localement
  • 3.14.0 correspond à la version

Lancer le conteneur

Directement via ligne de commande

docker run -d -p 8081:8081 --name nexus -v /media/raid5/nexus-data:/nexus-data nexus-repository-apt:3.14.0
  • -d, faire tourner le docker en tant que daemon
  • -p 8081:8081, mappe le port 8081 de l’hôte au port 8081 dans le conteneur
  • --name nexus, nom du conteneur
  • -v /media/raid5/nexus-data:/nexus-data, mappe le répertoire /media/raid5/nexus-data de l’hôte au répertoire/nexus-data du conteneur. Docker se débrouille pour créer et monter le répertoire dans le conteneur. Nous faisons cela pour la persistance des données
  • nexus-repository-apt:3.14.0 nexus-repository-apt correspond au nom du conteneur construit localement, 3.14.0, correspond à la version

Vérifier que tous fonctionne bien:

docker ps
CONTAINER ID        IMAGE                         COMMAND                  CREATED             STATUS              PORTS                    NAMES
36be3444152e        nexus-repository-apt:3.14.0   "sh -c ${SONATYPE_DI…"   4 weeks ago         Up 4 weeks          0.0.0.0:8081->8081/tcp   nexus

Connectez-vous à votre gestionnaire de dépôt:

localhost:8081 ou ip-hote:8081

Via SystemD

Créer un service nexus à l’aide du fichier suivant (/etc/systemd/system/nexus.service)


[Unit]
Description=nexus docker service
After=syslog.target docker.service

[Service]
ExecStartPre=-/usr/bin/docker kill nexus
ExecStartPre=-/usr/bin/docker rm nexus
ExecStart=/usr/bin/docker run \
  --name nexus \
  --publish 8081:8081 \
  --volume /media/raid5/nexus-data:/nexus-data \
  nexus-repository-apt:3.14.0
ExecStop=-/usr/bin/docker stop nexus
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
  • ExecStartPre, commande à lancer avant le start
  • --name, nom du conteneur, il doit être unique
  • --publish, mappage du port 8081 au port 8081 du conteneur, seul port ouvert du conteneur
  • --volume, mappe le répertoire /media/raid5/nexus-data de l’hôte au répertoire/nexus-data du conteneur. Docker se débrouille pour créer et monter le répertoire dans le conteneur. Nous faisons cela pour la persistance des données

Mise à jour de SystemD avec le nouveau service


systemctl daemon-reload

Permettre au service de démarrer lors du démarrage de la VM ou du PC


systemctl enable nexus.service

Mise à disposition derrière Apache

Créer le fichier de configuration d’Apache:

nano /etc/apache2/sites-available/exemple.com.conf

Contenu du fichier:

Protocols http/1.1
<VirtualHost *:80>
 ServerAdmin contact@exemple.com
 ServerName exemple.com
 Redirect permanent / https://exemple.com/
 ErrorLog ${APACHE_LOG_DIR}/error.log
 CustomLog ${APACHE_LOG_DIR}/access.log combined
<virtualhost>

<virtualhost *:443="">
 ServerAdmin contact@exemple.com
 ServerName exemple.com
 Protocols h2 http/1.1

 ErrorLog ${APACHE_LOG_DIR}/error_ssl.log
 CustomLog ${APACHE_LOG_DIR}/access_ssl.log common
 LogLevel warn

 SSLEngine on
 SSLProtocol all -SSLv2 -SSLv3
 SSLHonorCipherOrder on
 SSLCertificateFile /etc/letsencrypt/live/exemple.com/fullchain.pem
 SSLCertificateKeyFile /etc/letsencrypt/live/exemple.com/privkey.pem

 AllowEncodedSlashes NoDecode
 RequestHeader set X-Forwarded-Proto "https"
 ProxyPass / http://p-nexus:8081/ nocanon
 ProxyPassReverse / http://p-nexus:8081/
<virtualhost>
  • ServerName, nom du serveur sur internet ou dans votre réseau
  • Redirect permanent met en place une redirection permanente sur une connexion sécurisé
  • Protocols définit les protocoles disponible, nous indiquons ici que nous préférons utiliser http2

Voila, nexus est fonctionnel.

PS: une fois le conteneur monté, il faut attendre un peu que Nexus démarre. Ca prend un peu de temps, entre une minute pour un Nexus vierge à 20 minutes pour un Nexus avec des données

Commande Linux en vrac

Taille d’un répertoire:

du -hs /media/raid5/
2,3T	/media/raid5/

Chercher du texte dans les fichiers d’un répertoire:

grep -rnw '/repertoire/de/recherche/du/texte' -e 'texte recherché'
  • -r or -R Recherche récursive,
  • -i ignore la casse
  • -n indique le numéro de ligne dans le fichier trouvé
  • -w pour chercher le mot entier.
  • -l (petit L) pour donner uniquement le nom des fichiers trouvés
  • --include=\*.{c,h} uniquement les fichiers .c et .h
  • --exclude=*.o exclure les fichiers .o
  • --exclude-dir={dir1,dir2,*.dst} exclut le repertoire dir1, dir2 et tous les répertoires répondant au regex *.dst

source: https://stackoverflow.com/questions/16956810/how-do-i-find-all-files-containing-specific-text-on-linux

Historique des cron

grep CRON /var/log/syslog
Jun 13 07:17:01 hostname CRON[11824]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jun 13 08:17:01 hostname CRON[11900]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jun 13 09:17:01 hostname CRON[11977]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jun 13 10:17:01 hostname CRON[13108]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jun 13 10:30:01 hostname CRON[13483]: (root) CMD (docker exec --user www-data nc php -f /var/www/html/cron.php)
Jun 13 10:45:01 hostname CRON[14134]: (root) CMD (docker exec --user www-data nc php -f /var/www/html/cron.php)
Jun 13 11:00:01 hostname CRON[15160]: (root) CMD (docker exec --user www-data nc php -f /var/www/html/cron.php)
Jun 13 11:17:01 hostname CRON[15439]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)

Ou se trouve une commande

whereis docker
docker: /usr/bin/docker /etc/docker /usr/share/man/man1/docker.1.gz

type -a docker
docker est /usr/bin/docker

redirection de port avec ssh

Vous êtes loin de vos serveur.
Vous désirez vous connecter à une ressource (hors ligne) de votre serveur exemple.fr
Nous allons utilisé un tunnel ssh

ressource désirée => https://exemple.fr:8443/maxview/manager/login.xhtml

La commande SSH à taper est la suivante:

ssh -L 8000:localhost:8443 exemple.fr -p 10145

-p 10145 correspond au port ssh d’écoute du serveur exemple.fr
-L 8000 port local redirigé ver le port 8443 du serveur

Dans votre navigateur, lancer http://localhost:8000/maxview/manager/login.xhtml

nettoyage des anciens kernels

Au gré des mises à jour, vous pouvez vous trouver avec plusieurs kernels installés, mais pas utilisés. Si vous avez besoin de faire de la place, il semble judicieux de les retirer de votre système. nous allons voir comment installer le dernier kernel et retirer les anciens.

D’abord, Il faut savoir quelle est la version courante du kernel pour ne pas le supprimer.

uname -r
4.9.0-5-amd64

Nous allons chercher si une mise à jour existe. Elle se caractérise par  une version plus récente avec un « un« .
Les deux premiers caractères à gauche vous donnent des indications sur l’état du paquet
Première colonne : souhait
i : Install (à installer)
r : Remove (à supprimer)
u : Unknown (inconnu)
p : Purge (à supprimer avec les fichiers de configuration)
h : Hold (à conserver)
Seconde colonne : état
i : Installed (installé)
c : Config-files (fichier(s) de configuration existant)
u : Unpacked (dé-compressé)
n : Not Installed (non installé)
f : Failed-config (problème de configuration)
h : Half-installed (installé partiellement)

apt-get update
****
dpkg -l 'linux-image*'
Souhait=inconnU/Installé/suppRimé/Purgé/H=à garder
| État=Non/Installé/fichier-Config/dépaqUeté/échec-conFig/H=semi-installé/W=attend-traitement-déclenchements
|/ Err?=(aucune)/besoin Réinstallation (État,Err: majuscule=mauvais)
||/ Nom                      Version           Architecture      Description
+++-========================-=================-=================-======================================================
rc  linux-image-4.9.0-3-amd6 4.9.30-2+deb9u5   amd64             Linux 4.9 for 64-bit PCs
ii  linux-image-4.9.0-5-amd6 4.9.65-3+deb9u2   amd64             Linux 4.9 for 64-bit PCs
un  linux-image-4.9.0-6-amd6 4.9.82-1+deb9u3   amd64             Linux 4.9 for 64-bit PCs
ii  linux-image-amd64        4.9+80+deb9u4     amd64             Linux for 64-bit PCs (meta-package)

Si vous avez besoin d’installer une version plus récente comme ici, lancer la commande suivante.
Pour chez vous, remplacer le numéro de version et « amd64 » par votre architecture ou « generic » si vous n’en avez pas spécifié.

apt-get install linux-image-4.9.0-6-amd64

Démarrer de nouveau votre machine pour que la version courante du kernel soit la dernière installée.

reboot

Vérifier

uname -r
4.9.0-6-amd64

Nous pouvons maintenant supprimer les anciennes versions.
un conseil: ne supprimer pas tout de suite la dernière version utilisé. Vérifier d’abord que tout va bien avec le nouveau kernel. Nous ne sommes jamais à l’abri de surprise!!!

apt-get purge linux-image-4.9.0-3-amd64
apt-get purge linux-image-X.X.X-X-amd64

Normalement, apt-get s’occupe de tout mais nous allons tout de même mettre à jour Grub.

update-grub2 

démarrer  de nouveau la machine.

c’est fini.

installer WordPress sous Debian

WordPress est à la base un moteur de blog qui s’est enrichi pour devenir un système de gestion de contenu (CMS).

Nous allons installer WordPress dans une Debian 7 (Wheezy). Pour faciliter la rédaction de mon document, nous réaliserons toutes les étapes en ligne de comande dans un terminal administrateur.

Prérequi WordPress

WordPress a besoin de:

  • Un Serveur HTTP, nous utiliserons Apache
  • Un serveur de base de donnée, nous utiliserons MySQL
  • PHP (language de programation pour produire des pages webs dynamiques

Apache

Normallement, si vous avez, lors de votre installation de Debian, coché la case d’installation du serveur HTTP, Apache devrait déjà être installé. Pour vérifier, lancer la commande apt-get update pour faire une mise à jour de l’état d’installation des packets, puis lancer aptitude search ‘apache2‘. Vous obtiendrez quelque chose comme ceci.

# aptitude search 'apache2'
i   apache2                                                      - Métapaquet pour le serveur HTTP Apache
p   apache2-dbg                                                  - symboles de débogage pour Apache
p   apache2-doc                                                  - Documentation du serveur HTTP Apache
v   apache2-mpm                                                  - 
p   apache2-mpm-event                                            - serveur HTTP Apache - modèle géré par événements
p   apache2-mpm-itk                                              - MPM multiutilisateur pour Apache&amp;amp;amp;nbsp;2.2
p   apache2-mpm-prefork                                          - serveur HTTP Apache - modèle traditionnel «&amp;amp;amp;nbsp;non-threaded&amp;amp;amp;nbsp;»
i A apache2-mpm-worker                                           - serveur HTTP Apache - modèle multi-processus
p   apache2-prefork-dev                                          - en-têtes de développement Apache - MPM sans fils d'exécution
p   apache2-suexec                                               - programme standard suexec pour le mod suexec d'Apache&amp;amp;amp;nbsp;2
p   apache2-suexec-custom                                        - programme suexec configurable pour mod_suexec de Apache&amp;amp;amp;nbsp;2
p   apache2-threaded-dev                                         - en-têtes de développement Apache - MPM avec fils d'exécution
i A apache2-utils                                                - programmes utilitaires pour serveurs web
i A apache2.2-bin                                                - fichiers binaires communs pour le serveur HTTP Apache
i A apache2.2-common                                             - serveur HTTP Apache (fichiers communs)
p   libapache2-authcassimple-perl                                - Apache2 module to authentificate trough a CAS server
....
p   libapache2-webauth                                           - Apache 2 modules for WebAuth authentication
p   libapache2-webkdc                                            - Apache 2 modules for a WebAuth authentication KDC
p   rt4-apache2                                                  - Apache 2 specific files for request-tracker4
p   torrus-apache2                                               - Universal front-end for Round-Robin Databases (for apache 2.x) (depreca

Si Apache est installé, vous devriez avoir un petit « i » en début de ligne avant ‘apache2‘. Donc pas besoin d’aller plus loin pour l’instant.

Si ce n’est pas le cas, lancer la commande:

#apt-get install apache2

C’est tout pour apache.

MySQL

Normallement, si vous avez, lors de votre installation de Debian, coché la case d’installation du serveur de base de données, ‘MysQL-Server’ devrait déjà être installé. Pour vérifier, lancer la commande apt-get update pour faire une mise à jour de l’état d’installation des packets, puis lancer aptitude search ‘mysql-server‘. Vous obtiendrez quelque chose comme ceci.

# aptitude search 'mysql-server'
p   mysql-server                                                 - MySQL database server (metapackage depending on the latest version)
p   mysql-server-5.5                                             - serveur de bases de données MySQL - binaires et configuration
v   mysql-server-core                                            - 
p   mysql-server-core-5.5                                        - binaires du serveur de bases de données MySQL
v   virtual-mysql-server                                         - 

Ici, nous voyons que le serveur MySQL n’est pas installé, indiqué par le ‘p‘ devant ‘mysql-server‘. Nous allons donc l’installer. Si chez vous, ‘mysql-server‘ est déjà installé, ne pas exécuter la commande d’installation suivante.

#apt-get install mysql-server

Pendant le processus d’installation, il va vous être demandé de compléter certainne information. Je vais mettre des copies d’écran pour vous accompagner dans le processus d’installation.

La première information demandée est le mot de passe administrateur de MySQL. Faire en sorte de bien le définir et ne pas le perdre.

MysqlServer

Valider et retaper le mot de passe administrateur pour vérifier qu’il n’y a pas eu d’erreur de frappe.

MySQLServeurConfirmationA la fin de l’installation de MySQL, si tout s’est bien passé, vous devriez obtenir ceci.

[ ok ] Starting MySQL database server: mysqld ..
[info] Checking for tables which need an upgrade, are corrupt or were 
not closed cleanly..
Paramétrage de libhtml-template-perl (2.91-1) ...
Paramétrage de mysql-server (5.5.38-0+wheezy1) ...

PHP

Php n’est pas sistématiquement installé. Pour vérifier, taper la commande que vous commencez à connaître: aptitude search ‘php5*’. Cela donne quelque chose comme ca:

# aptitude search 'php5*'
p   cakephp                                                      - MVC rapid application development framework for PHP
p   cakephp-instaweb                                             - Development webserver for CakePHP applications
....
p   php5                                                         - langage de script côté serveur, inclus dans du HTML (méta-paquet)
....
v   php5-mssql                                                   - 
p   php5-mysql                                                   - modules MySQL pour PHP5
p   php5-mysqlnd                                                 - MySQL module for php5 (Native Driver)
....
p   suphp-common                                                 - Common files for mod suphp
p   uphpmvault                                                   - upload recovery images to HP MediaVault2 via Ethernet

Les lignes, qui nous intéressent, sont php5 et php5-mysql. Elles doivent être installé (petit ‘i‘ au début de la ligne). Si ce n’est pas le cas, installer ces deux packets:

#apt-get install php5 php5-mysql

Voila! C’est tout pour les prérequis. Nous allons maintenant installer WordPress.

Worpess

installation de WordPress

Au jour d’aujourd’hui (18-01-2015), la version courante de WordPress est la version 4.1. Nous allons la télécharger, la décompresser, préparer la base de donnée et l’installer.

Téléchargement de WordPress

Lancer la commande suivante

#wget https://fr.wordpress.org/wordpress-4.1-fr_FR.zip

Pour vérifier que le fichier est bien téléchargé, lancer:

# ls -l
total 6896
-rw-r--r-- 1 user user      65 oct.   6 22:06 bash_profile
-rw-r--r-- 1 user user      61 oct.   6 00:08 bash_profile~
drwxr-xr-x 2 user user    4096 oct.   2 22:52 Bureau
drwxr-xr-x 2 user user    4096 oct.   2 22:52 Documents
drwxr-xr-x 2 user user    4096 oct.   2 22:52 Images
drwxrwxr-x 3 user user    4096 oct.   6 21:44 lorrainng
drwxr-xr-x 2 user user    4096 oct.   2 22:52 Modèles
drwxr-xr-x 2 user user    4096 oct.   2 22:52 Musique
drwxr-xr-x 2 user user    4096 oct.   2 22:52 Public
drwxr-xr-x 4 user user    4096 oct.  11 12:48 Téléchargements
drwxr-xr-x 2 user user    4096 oct.   2 22:52 Vidéos
-rw-r--r-- 1 root   root   7016086 sept.  4 19:05 wordpress-4.1-fr_FR.zip

Le fichier ‘wordpress-4.1-fr_FR.zip’ est bien présent. Nous pouvons continuer.

Si vous voullez télécharger la dernière version directement, aller sur le site de wordpress france et passer la sourie sur le bouton de téléchargement, cliquer droit et selectionner ‘copier l’adresse du lien‘. Puis télécharger cette dernière version en tapant:

#wget 'adresse du lien collée ici'

Décompression et autorisation de WordPress

Nous décompresserons WordPress dans le répertoire /var/www/ et lui donnerons les bonnes autorisations.

#unzip wordpress-4.1-fr_FR.zip -d /var/www

Changer le groupe des répertoires et fichier dans wordpress.

#chgrp -R www-data /var/www/

Pour pouvoir installer des modules, charger des images, faire des mises à jour, il faut changer les autorisations d’écriture du répertoire ‘wp-content‘ dans le répertoire d’installation de WordPress.

#chmod 2775 -R /var/www/wordpress/wp-content/

Préparation de la base de donnée

WordPress lors de l’installation ne crée pas la base de donnée qu’il va utiliser. Il faut donc la créer manuellement, ainsi que l’utilisateur qui va être autorisé à s’y connecter et faire les modifications nécessaires.

Lancer le client mysql en tant que root (-u = définit l’utilisateur, -p demande le mot de passe):

# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 43
Server version: 5.5.38-0+wheezy1 (Debian)

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

Creation de la base de donnée ‘wordpress

mysql> CREATE DATABASE wordpress  DEFAULT CHARACTER SET utf8   DEFAULT COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)

Création de l’utilisateur (wpdb) et attribution des droits sur la base de donnée (wordpress)

mysql> grant all privileges on wordpress.* to wpdb identified by 'password';
Query OK, 0 rows affected (0.00 sec)

Normallement, c’est bon. Nous allons tout de même vérifier que la connection à Mysql pour la base de donnée wordpress se fait bien. Quitons le client mysql pour nous reconnecter en tant que wpdb. Nous quitterons de nouveau le client MySQL pour revenir dans le shell.

mysql> exit
Bye
root@machine:/home/user# mysql -u wpdb -p wordpress
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 44
Server version: 5.5.38-0+wheezy1 (Debian)

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> exit

La base de donnée est prête, les droits sont données, nous allons maintenant réaliser l’installation de WordPress.

Installation de WordPress

wp-config.php

Pour faire au plus rapide, nous allons d’abord copier le fichier wp-config-sample.php vers wp-config.php et donner les droits en écriture.

#cp /var/www/wordpress/wp-config-sample.php /var/www/wordpress/wp-config.php
#chown root:www-data /var/www/wordpress/wp-config.php
#chmod 2755 /var/www/wordpress/wp-config.php

Nous allons maintenant modifier le fichier pour nos besoins.

PS: navigation dans nano => avec les flèches du clavier. Possibilité de coller du texte en placant le curseur au préalable à l’endroit désiré.

#nano /var/www/wordpress/wp-config.php

Chercher les lignes suivante:

// ** Réglages MySQL - Votre hébergeur doit vous fournir ces informations. ** //
/** Nom de la base de données de WordPress. */
define('DB_NAME', 'votre_nom_de_bdd');

/** Utilisateur de la base de données MySQL. */
define('DB_USER', 'votre_utilisateur_de_bdd');

/** Mot de passe de la base de données MySQL. */
define('DB_PASSWORD', 'votre_mdp_de_bdd');

/** Adresse de l'hébergement MySQL. */
define('DB_HOST', 'localhost');

/** Jeu de caractères à utiliser par la base de données lors de la création des tables. */
define('DB_CHARSET', 'utf8');

/** Type de collation de la base de données. 
  * N'y touchez que si vous savez ce que vous faites. 
  */
define('DB_COLLATE', '');

et sles modifier en:

// ** Réglages MySQL - Votre hébergeur doit vous fournir ces informations. ** //
/** Nom de la base de données de WordPress. */
define('DB_NAME', 'wordpress');

/** Utilisateur de la base de données MySQL. */
define('DB_USER', 'wpdb');

/** Mot de passe de la base de données MySQL. */
define('DB_PASSWORD', 'password');

/** Adresse de l'hébergement MySQL. */
define('DB_HOST', 'localhost');

/** Jeu de caractères à utiliser par la base de données lors de la création des tables. */
define('DB_CHARSET', 'utf8');

/** Type de collation de la base de données. 
  * N'y touchez que si vous savez ce que vous faites. 
  */
define('DB_COLLATE', '');

Tout en restant dans nano, il faut aussi modifier les données suivantes dans le même fichier:

Supprimer les lignes suivantes:

define('AUTH_KEY',         'put your unique phrase here'); 
define('SECURE_AUTH_KEY',  'put your unique phrase here'); 
define('LOGGED_IN_KEY',    'put your unique phrase here'); 
define('NONCE_KEY',        'put your unique phrase here'); 
define('AUTH_SALT',        'put your unique phrase here'); 
define('SECURE_AUTH_SALT', 'put your unique phrase here'); 
define('LOGGED_IN_SALT',   'put your unique phrase here'); 
define('NONCE_SALT',       'put your unique phrase here'); 

et les remplacer par les lignes générées dans le lien indiqué dans le commantaire juste au dessus des lignes à modifier (à la date du 11/10/14, https://api.wordpress.org/secret-key/1.1/salt/):

saltEnregistrer le fichier avec la combinaison des touches CTRL + O et quitter nano avec CTRL + x.

Voila, nous sommes prêt à lancer l’installation.

Installation de WordPress

Pour ce faire, allé dans votre navigateur préféré et taper l’adresse suivante: localhost/wordpress/wp-admin/install.php. Vous devriez avoir la page suivante.

WordpressInstallRemplir ce qu’il faut et valider. Vous obtiendrez la page suivante:

Cliquer sur connexion.

SuccesInstallWordpressVoila! c’est fini et installé.

 

 

Installation du serveur TFTP sous Debian

TFTP signifie en Français « Protocole simplifié de transfert de fichiers ». TFTP est donc utilisé pour transférer des fichiers de manière simple dans un réseau privé. Je l’utilise pour démarer mes OS via le réseau et pour mettre à jour les firmwares de mes équipements réseaux et sauvegarder leur configuration.

Dans ce tutoriel pour installer un serveur tftp sous linux et plus particulièrement sous Debian, je vais détailler comment procéder et donner quelque explication.

Installation:

On utilise le paquet tftpd-hda qui se trouve dans les dépôts Debian (commande à saisir dans un terminal root ou en étant sudo):


root@server:/home/user# apt-get install tftpd-hpa

On doit ensuite créer le répertoire ou seront stockés les fichiers dont nous avons besoins sur le réseau via TFTP (/media/raid5/Install/tftp dans mon cas).


root@server:/home/user# mkdir /media/raid5/Install/tftp

Attention! nous venons de créer le répertoire en tant que root. Il faut changer le propiétaire et le groupe pour le répertoire.


root@server:/home/user# chown tftp:tftp /media/raid5/Install/tftp

Ensuite, donner les droits sur le répertoire:

Le 2 devant 777 spécifie que les fichiers créés dans le répertoire appartiendront toujours au groupe tftp.


root@server:/home/user# chmod 2777 /media/raid5/Install/tftp

Pour vérifier les droits:


root@server:/home/user# ls -lAh /media/raid5/Install/ |grep tftp
drwxrwsr-x  2 tftp   tftp 4,0K août  18 19:52 tftp

Une dernière chose, l’installation crée un utilisateur tftp avec comme « home » le répertoire /srv/tftp. Nous allons modifier le home de l’utilisateur tftp:


root@root:/home/user# usermod --home /media/raid5/Install/tftp tftp

Sécurité:

L’utilisation d’un service TFTP ne requière pas de compte et de mot de passe spécifique sur le serveur. Du fait qu’il n’y ait pas d’autentification, tftpd-hda n’autorisera que les fichiers publiquement accessible (o+r) à être lu, sauf si un permission spécifique a été précisée. Un fichier pourra être modifié seulement si il existe déjà. Par défaut, de nouveaux fichiers ne peuvent pas être créés à moins de préciser l’option –create.

Le serveur TFTP devrait être paramétré pour s’exécuter avec le privilège le plus bas possible. Pour cela,  utiliser le parametre –user pour spécifier l’ID du service tftpd-hpa et créer un utilisateur spécifique avec peu de privilège. Lors de l’installation, l’utilisateur tftp est créé.

L’acces aux fichiers peut et devrait être restreint en invoquant tftpd-hpa avec une liste de répertoire. Cela se fait via le parametre TFTP_DIRECTORY= et permet de limiter l’access aux fichiers inclus dans le répertoite défini. Si possible, il est recommander d’utiliser le paramètre –secure pour ch-rooter le tout une fois que le serveur est lancer.

Ajout d’un utilisateur local au groupe tftp pour l’écriture en local:

Après la procédure d’installation ci-dessus,  seuls les membres du groupe tftp ont le droit d’écrire dans l’arborescence du service TFTP. Tous les utilisateurs du système ont le droit de lire le contenu de cette même arborescence. Pour autoriser un utilisateur à écrire dans le répertoire /media/raid5/Install/tftp/, il suffit de l’ajouter au groupe système dédié. Voici un exemple :


root@server:/home/user# adduser user tftp
Ajout de l'utilisateur « user » au groupe « tftp »...
Ajout de l'utilisateur user au groupe tftp
Fait.

Configuration du service tftp:

Fichier de configuration:

Il se trouve pour Debian dans le répertoire : « /etc/default/tftpd-hpa »

Par défaut, voici son contenu

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure"

Nous allons le personnaliser via la commande:


root@server:/home/user# nano /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/media/raid5/Install/tftp"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure"

On redémare le service:


root@server:/home/user# service tftpd-hpa restart

Creation du fichier désiré sur le serveur tftp:

PS: J’ai choisi de ne pas autoriser la création de fichier via le service tftpd-hpa. Je les créerai moi même directement sur le serveur.


root@server:/home/user# touch /media/raid5/Install/tftp/nom du fichier désiré
root@server:/home/user# chmod 775 /media/raid5/Install/tftp/nom du fichier désiré
root@server:/home/user# chown tftp:tftp /media/raid5/Install/tftp/nom du fichier désiré

Réseau et firewall:

La partie réseau et firewall a été rédigé par Loïc BLOT, cf (son blog). Je n’ai fait que le reprendre.

Le TFTP est un protocole particulier basé sur le port 69 UDP et un port aléatoire. Le soucis vient du fait, que les réponses sont envoyées depuis et sur un port aléatoire. De ce fait vos firewall ne peuvent pas laisser passer tous ces flux, ce serait extrêmement dangeureux.

Afin d’activer le TFTP, il faut ajouter des règles de NAT et d’autorisation :


iptables -I FORWARD -p udp --dport tftp -j ACCEPT
iptables -t nat -A POSTROUTING -p udp --destination-port tftp -j MASQUERADE

et ensuite activer le module noyau de netfilter permettant de nater correctement les réponses TFTP:


modprobe nf_nat_tftp

Vérification:

Installer le packet tftp: apt-get install tftp
Se connecter au serveur tftp: tftp 192.168.10.13
Lancer le mode verbeur pour voir ce qui se passe: tftp>  verbose
Récrupérer le fichier désiré: tftp> get c800-universalk9-mz.SPA.153-3.M.bin
Lire le résultat qui normallement doit être bon et quiter: tftp> quit
En restant dans le répertoire courant, vérifier que le fichier a bien été reçu: root@server:/home/user# ls


root@server:/home/user# apt-get install tftp
root@server:/home/user# tftp 192.168.10.13
tftp>  verbose
tftp> get c800-universalk9-mz.SPA.153-3.M.bin
tftp> getting from 192.168.10.13:c800-universalk9-mz.SPA.153-3.M.bin to c800-universalk9-mz.SPA.153-3.M.bin [netascii]
Received 68390499 bytes in 26.9 seconds [20359837 bit/s]
tftp> quit
root@server:/home/user# ls
c800-universalk9-mz.SPA.153-3.M.bin

Voila!