Configuration d’un serveur dédié pour votre blog
Nous allons dans ce billet détaillé l’installation d’un serveur Wordpress (moteur de blog) sur une machine Linux Ubuntu. Vous aurez ainsi une plate-forme de blogging libre !
Installation du système GNU/Linux
On commence par mettre à jour notre système:
sudo aptitude update sudo aptitude safe-upgrade
Mise en place des règles de Firewall:
#!/bin/bash ######################## # Nicolargo - 28/10/2009 # Regle de Firewall # Serveur hebergeant: # - SSH # - HTTP ######################## # Debut # Chargement des modules externes pour le suivi des connexions FTP modprobe ip_conntrack modprobe ip_conntrack_ftp # On commence par effacer toutes les regles iptables -F iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP # On autorise les flux locaux iptables -A INPUT -i lo -j ACCEPT # On autorise les flux des connexions etablies iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT #-------------------------- # Autorise les flux entrant #-------------------------- # SSH serveur iptables -A INPUT -p tcp --dport ssh -j ACCEPT # Web serveur iptables -A INPUT -p tcp --dport http -j ACCEPT #-------------------------- # Autorise les flux sortant #-------------------------- iptables -A OUTPUT -p tcp --dport domain -j ACCEPT iptables -A OUTPUT -p udp --dport domain -j ACCEPT iptables -A OUTPUT -p udp --dport ntp -j ACCEPT iptables -A OUTPUT -p tcp --dport http -j ACCEPT iptables -A OUTPUT -p tcp --dport https -j ACCEPT #-------------------------- # On drop-and-logue le reste #-------------------------- # En cas d'attaque de type Syn-Flood iptables -N syn-flood iptables -A syn-flood -m limit --limit 10/second --limit-burst 15 -j RETURN iptables -A syn-flood -j LOG --log-prefix "SYN flood: " iptables -A syn-flood -j DROP # UDP iptables -A INPUT -p udp -j LOG --log-prefix "IPTABLES UDP-IN: " iptables -A INPUT -p udp -j DROP iptables -A OUTPUT -p udp -j LOG --log-prefix "IPTABLES UDP-OUT: " iptables -A OUTPUT -p udp -j DROP # TCP iptables -A INPUT -p tcp -j LOG --log-prefix "IPTABLES TCP-IN: " iptables -A INPUT -p tcp -j DROP iptables -A OUTPUT -p tcp -j LOG --log-prefix "IPTABLES TCP-OUT: " iptables -A OUTPUT -p tcp -j DROP # Fin
Automatisation du lancement des règles au démarrage du serveur:
/etc/init.d/iptables.sh chmod a+x /etc/init.d/iptables.sh sudo update-rc.d iptables.sh defaults
Installation de LAMP
sudo install apache2 mysql-server php5 php5-mysql phpmyadmin
Configuration du serveur Apache
Test d’Apache en entrant l’adresse de votre serveur (http://@IPduserveur/) dans un navigateur Web: ”It works!”
On désactive se site par défaut avec les commandes suivantes:
sudo a2dissite default /etc/init.d/apache2 reload
Nous allons maintenant configurer le serveur Apache pour gérer les adresses virtuelles. Il faut dans un premier temps déclarer dans votre DNS une nouvelle entrée qui fait pointer le nom de domaine vers l’adresse IP du serveur (blog.mondomaine.com A @IPduserveur).
Pour tester votre DNS (attention la mise à jour peut prendre un certain temps):
ping blog.mondomaine.com PING blog.mondomaine.com () 56(84) bytes of data. 64 bytes from blog.mondomaine.com (@IPduserveur): icmp_seq=1 ttl=47 time=111 ms 64 bytes from blog.mondomaine.com (@IPduserveur): icmp_seq=2 ttl=47 time=110 ms 64 bytes from blog.mondomaine.com (@IPduserveur): icmp_seq=3 ttl=47 time=110 ms ...
On configure ensuite le serveur Apache pour cette adresse:
# cd /etc/apache2/sites-available # sudo vi virtualhosts
NameVirtualHost @IPduserveur <VirtualHost @IPduserveur> ServerName @IPduserveur DocumentRoot /var/www/default </VirtualHost> <VirtualHost blog.mondomaine.com> ServerName blog.mondomaine.com DocumentRoot /var/www/blog </VirtualHost&>
On créer ensuite les arborescences correspondantes:
cd /var/www sudo mkdir default sudo mkdir blog sudo chown -R www-data:www-data *
Puis on active le site:
sudo a2ensite virtualhosts sudo /etc/init.d/apache2 reload
Configuration de MySQL
On accède au logiciel phpMyAdmin qui va nous permettre de configurer une base de donnée pour notre blog Wordpress. Pour cela, il faut saisir l’URL suivante dans votre navigateur: http://blog.mondomaine.com/phpmyadmin/
Puis ensuite saisir le nom de la base de donnée (par exemple blog) et enfin cliquer sur Créer:
PS: il est possible (et conseillé) de créer un utilisateur dédié pour pour accéder à cette base de donnée. Le plus simple est de créer un utilisateur (avec comme nom “blog”) puis de demander la création de la base de donnée correspondante. Les droits seront ainsi fixés automatiquement.
Installation de Wordpress
La dernière version de Wordpress 2.9 arrivera dans les bacs dans les prochains jours. Nous allons donc utiliser la version stable actuelle (Wordpress 2.8.6) pour illustrer ce billet.
On commence par télécharger les sources:
wget http://wordpress.org/latest.zip
Puis on décompresse l’archive:
unzip latest.zip
Il faut ensuite déplacer le répertoire wordpress dans la bonne arborescence de votre serveur. Ainsi, si vous souhaitez accéder à votre blog par l’adresse http://blog.mondomaine.com/, il faut copier le contenu du répertoire de la manière suivante (on prendre cette hyp:
sudo cp -r ./wordpress/* /var/www
Par contre si vous souhaitez que votre blog soit accessible par l’adresse http://blog.mondomaine.com/blog/, il faut saisir la commande:
sudo mv wordpress /var/www/blog
Il faut ensuite éditer le fichier wp-config.php:
cd /var/www cp wp-config-sample.php wp-config.php sudo chmod a+r wp-config.php vi wp-config.php
Puis éditer le fichier selon votre configuration:
define('DB_NAME', 'blog'); define('DB_USER', 'blog'); define('DB_PASSWORD', 'monmotdepasse'); define('DB_HOST', 'localhost'); define('DB_CHARSET', 'utf8'); define('DB_COLLATE', '');
Enfin on finalise l’installation en allant à l’URL: http://blog.mondomaine.com/wp-admin/install.php
Pour résumer
Votre blog est maintenant accessible par l’adresse http://blog.mondomaine.com/
L’interface d’administration se trouve à l’adresse: http://blog.mondomaine.com/wp-admin/
Bon blog !