Histoire de bien tester la montée en charge du binz, l'Hébergeur hexagonal réalise des opérations de "lâcher" de microVKS un peu comme les truites ou les faisans d'élevage au moment de l'ouverture de la pêche ou de la chasse.
J'ai donc sauté sur l'occasion pour dégotter une petite bestiole gratos pour l'ajouter à mon cheptel personnel: 128 Mo de RAM , 1vCPU , 5Go de disque , y'a pas de quoi rêver piloter le décollage de la fusée Ariane mais ça laisse tout de même de quoi s'amuser.


Comme c'est indiqué, pas de port 25 = pas de serveur de courrier et par défaut les vKS ne permettent pas d'installer de VPN donc du coup, je sors de mes habitudes de mes LAMP ( Linux, Apache , Mysql, PHP) pour tenter l'install de lighttpd et php , histoire de se monter un micro serveur web.
Préparation de base du microVKS
Au départ, je suis donc pas à pas mon mémo décrit ici .
J'ai juste laissé finalement dans l'exemple qui nous occupe le port 22 pour le ssh (au lieu d'adopter un port spécifique). Sinon le processus de préparation est le même ( config ssh, firewall , fail2ban , portsentry , ...)
Par rapport à cette installation de base, je rajoute une installation de Munin avec l'installation de munin-node sur ce petit vKS et la configuration de munin sur le grapheur distant. Voir là pour les manips détaillées. Il faut alors penser à rajouter les règles iptables nécessaires dans notre script pare-feu. Du coup pour exemple, avec les règles iptables à rajouter quant à Munin et une adaptation à nos besoin du moment ça donne ça:
#!/bin/sh
### BEGIN INIT INFO
# Provides: iptables
# Required-Start:
# Should-Start:
# Required-Stop:
# Should-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-description: iptables
# Description: Firewall
### END INIT INFO
### RAZ
iptables -t filter -F
iptables -t filter -X
### FERMETURE TOTALE PAR DEFAUT
iptables -t filter -P INPUT DROP
iptables -t filter -P FORWARD DROP
iptables -t filter -P OUTPUT DROP
### MAINTIEN DES CONNEXIONS EXISTANTES
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
### AUTORISATION DU LOOPBACK
iptables -t filter -A INPUT -i lo -j ACCEPT
iptables -t filter -A OUTPUT -o lo -j ACCEPT
### AUTORISATION DU PING
iptables -t filter -A INPUT -p icmp -j ACCEPT
iptables -t filter -A OUTPUT -p icmp -j ACCEPT
### AUTORISATIONS LIEES AUX SERVICES
# SSH port 22
iptables -t filter -A OUTPUT -p tcp --dport 22 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 22 -j ACCEPT
# DNS
iptables -t filter -A OUTPUT -p tcp --dport 53 -j ACCEPT
#iptables -t filter -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT
#iptables -t filter -A INPUT -p udp --dport 53 -j ACCEPT
# HTTP
iptables -t filter -A OUTPUT -p tcp --dport 80 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT
# HTTPS
iptables -t filter -A OUTPUT -p tcp --dport 443 -j ACCEPT
#iptables -t filter -A INPUT -p tcp --dport 443 -j ACCEPT
# Munin
#iptables -t filter -A OUTPUT -p tcp --dport 4949 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 4949 -j ACCEPT
Port 22 et règles assorties, autorisation des trafics sortant de base ( http , https , dns , ftp ) et autorisation du trafic entrant pour les services qu'on souhaite ouvrir: noeud Munin et serveur web sur le port 80.
Avec tout ça on a une bonne base préalable pour l'installation du serveur web.
J'ai tendance à rajouter aussi logwatch pour avoir un mail régulier de suivi de log. Sur un micro VKS avec port 25 bolqué et donc pas de possibilité d'utiliser postfix, ça demande une configuration un peu particulière : logwatch avec ssmtp .
Installation du serveur web lighttpd
Compte tenu des ressources limitées de ce micro vKS, je me suis dit qu'il fallait viser light et que c'était donc l'occasion de tester ce serveur web alternatif à Apache2. Pour en savoir plus sur lighttpd voir ici ou là. Voire directement sur le site officiel.
Pour l'installation sur Debian, comme d'hab' rien de compliqué. On passe en root et :
#apt-get install lighttpd
et c'est installé et démarré. La configuration se situe dans le fichier /etc/lighttpd/lighttpd.conf qu'on va donc directement aller vérifier pour modif éventuelle selon besoins.
#nano /etc/lightppd/lightppd.conf
et voilà le contenu :
server.modules = (
"mod_access",
"mod_alias",
"mod_compress",
"mod_redirect",
# "mod_rewrite",
)
server.document-root = "/var/www"
server.upload-dirs = ( "/var/cache/lighttpd/uploads" )
server.errorlog = "/var/log/lighttpd/error.log"
server.pid-file = "/var/run/lighttpd.pid"
server.username = "www-data"
server.groupname = "www-data"
index-file.names = ( "index.php", "index.html",
"index.htm", "default.htm",
" index.lighttpd.html" )
url.access-deny = ( "~", ".inc" )
static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )
include_shell "/usr/share/lighttpd/use-ipv6.pl"
dir-listing.encoding = "utf-8"
server.dir-listing = "enable"
compress.cache-dir = "/var/cache/lighttpd/compress/"
compress.filetype = ( "application/x-javascript", "text/css", "text/html", "text/plain" )
include_shell "/usr/share/lighttpd/create-mime.assign.pl"
include_shell "/usr/share/lighttpd/include-conf-enabled.pl"
A priori tout nous va bien. Quand on est habitué à un serveur web, on repère vite les quelques données fondamentales: répertoire www de base ( ici /var/www ) , user du serveur web ( ici www-data) etc ...
On note directement la présence de la définition d'un chemin de log error.log mais à contrario, n configuration de base lightppd ne produit pas de log "access.log" avec un enregistement complet de son activité... Personnellement je préfère avoir ce log donc j'ai activé le log access.log. Pour cela, il faut activer un "module" avec une commande spécifique. Comme souvent dans ce genre de procédé la commande lighttpd-enable-mod crée un lien entre le bon fichier de /etc/lighttpd/conf-available et /etc/lighttpd/conf-enabled . Pas besoin de toucher à la configuration principale donc.
En l'occurence ça donne:
#lighttpd-enable-mod accesslogsuivi d'un
#service lighttpd force-reload
puis d'une vérification dans /var/log/lighttpd/error.log qu'il n'y pas d'erreur après ce changement de config. Une fois le bon module activé, on a un /var/log/lighttpd/access.log qui va se créer dès qu'on accède au serveur web.
Et c'est tout pour le moment. Lighttpd est en place et tourne . Vérification en appelant http://ip_du-serveur dans un navigateur:


It works comme dirait l'autre ...
On voit directement l'appel par l'IP n'ouvre pas de page par défaut . Il faut pour cela créer un index.html dans /var/www le répertoire racine par défaut :
#nano /var/www/index.html
En mettant un truc du style, pompé sur la page par défaut d'Apache2 (le célèbre "It works")
<html><body><h1>Welcome</h1>et en appelant http://ip_du_serveur comme tout à l'heure on obtient alors ça :
<p>This is the default web page for this server.</p>
<p>The web server software is running well but it seems you try a wrong way to access his content. Sorry, try again!</p>
</body></html>


Dans un bon anglais bien perrave qui fait plaisir à voir (Essayez de faire mieux quand même!)
Maintenant qu'on a un zouli serveur web tout neuf, autant essayer de diffuser autre chose qu'une page web en pur html et écrite dans un anglais approximatif. Or bien souvent, un site internet "dynamique" est souvent basé sur le langage php. Il faut donc ajouter et configurer les éléments nécessaires aux sites en php.
Installation et configuration de php pour lighttpd.
C'est en l'occurence différent de ce qu'on a l'habitude de faire machinalement pour Apache2 et le fonctionnement de php avec lightppd passe par l'utilisation en mode cgi. Du coup, l'installation de php se fait par :
#apt-get install php5-cgi
Il faut ensuite activer la prise en charge de php par lighttpd en activant les modules nécessaires comme expliqué plus haut . ici il s'agit d'activer fastcgi et fastcgi-php donc :
#lighttpd-enable-mod fastcgi
#lighttpd-enable-mod fastcgi-php
#service lighttpd force-reload
On créée un fichier de test dans /var/www :
#nano /var/www/info.php
avec ce contenu:
<?php phpinfo(); ?>
et on teste :

Tout est OK , on a donc un serveur Linux Lighttpd php LLP en lieu d'un LAMP .
A ce stade voilà un état de conso des ressources sur notre micro vKS:

Il nous reste donc les 2/3 de nos 128 Mo pour faire tourner le serveur.
Et avec ça on peut faire tourner plein de trucs nécessitant un serveur web et php mais pas de Base de donnée comme MySQL. Cas pratique avec un petit blog Pluxml qui me sert en particulier pour valoriser mon égo en partageant ces quelques bribes de connaissances.
Outre ce petit serveur web , on peut aussi monter une seedbox sur ce micro vKS : seedbox avec transmission sur micro vKS.
;)
11 commentaires
mercredi 04 juillet 2012 à 20:26 jdrien a dit : #1
mercredi 04 juillet 2012 à 22:42 sorrodje a dit : #2
jeudi 05 juillet 2012 à 11:45 Sorrodje a dit : #3
dimanche 08 juillet 2012 à 17:17 bobi a dit : #4
mercredi 11 juillet 2012 à 11:28 Sorrodje a dit : #5
samedi 14 juillet 2012 à 12:56 bobi a dit : #6
samedi 14 juillet 2012 à 14:00 Sorrodje a dit : #7
samedi 14 juillet 2012 à 18:45 bobi a dit : #8
samedi 14 juillet 2012 à 21:42 Sorrodje a dit : #9
samedi 14 juillet 2012 à 23:11 bobi a dit : #10
dimanche 19 août 2012 à 13:56 Le débutant a dit : #11