Salut, voici mon premier tutoriel
La Base :
Déjà on va voir ce qu'et un serveur 3NMP ... c'est un serveur web comme le célèbre Apache. Il est composé de plusieurs logiciel. Tout d'abord le système d'exploitation NetBSD en vers 6.0, de NGINX, de NAXSI, de MySQL et pour finir de PHP.
Je ne détaille pas l'installation de NetBSD.
Les installations ce ferons par paquet binaires (pkgin)
NGINX et NAXSI
Donc nginx est un serveur web / Reverse Proxy HTTP/ Proxy POP3/iMAP, son princiapl avantage est sa faible consommation de mémoire, ceci la placé au rang de second serveur web au niveau mondial (selon Netcraft). Naxsi quand à lui est un "Web Application FireWall)
Pour des questions de facilité nous allons utiliser le dépôt de netbsdfr, il faut modifié le fichier suivant : /usr/pkg/etc/pkgin/repositories.conf en y ajoutant la ligne suivante :
(remplacer amd64 par i386 si votre plateforme est de type i386)
Maintenant on peut mettre à jour la base de donné avec la commande :
puis on installe Nginx et naxis simplement avec cette commande
On s'assure que le serveur démarre au démarrage de la machine :
Le démarrage du serveur ce fait avec cette commande :
PHP-FPM
Contrairement à Apache, ce n'est pas un module qui gère le PHP mais un logiciel à part... la création de daemon est rend apparament plus rapide l’exécution des scripts PHP (selon le magazine GNU/Linux N°159)
Pour son intallation :
puis on l'ajoute au démarrage :
Le paramétrage de PHP-FPM ce trouve dans le fichier /usr/pkg/etc/php-fpm.conf et les directives dans /urs/pkg/etc/php.ini . Normalement vous n'avez pas besoin de modifié les paramètres par contre vérifié si l'utilisateur de PHP-FPM est identique à NGINX, ils sont à vérifié dans le fichier php-fpm.conf et nginx.conf
MySQL
C'est, je pense le plus simple il suffit de faire ceci :
Communication entre PHP et NGINX
On va donc créer une parti location dans le fihcier de configuration de nginx (nginx.conf) qui s'occupera des URI
La Location est à placer dans la section server, normalement elle est déjà présente, dans le fichier nginx.conf
On va fairre passé les fichiers PHP par un Socket, on doit le définir dans le php-fpm.conf :
Maintenant on va préparer le lancement du serveur
On démarre PHP-FPM avec ceci :
Puis on vérifie la syntaxe du fichier de configuration de nginx.
Si les résultats sont bon on peut charger la nouvelle configuration
Maintenant il reste plus qu'a tester en créant un script php qu'on mettra dans le root de l'arborescence connu par le serveur (souvent nommé www)
Et Naxsi on la oublié ?
Non non on a pas oublié Naxsi ^^' c'est parti pour sa configuration.
Lors de l'installation de nginx un fichier "d'exemple" a était créé /usr/pkg/share/examples/nginx/conf/naxsi_core.rules
On va le copier dans le répertoire de configuration de nginx
On ajoute dans la section http du fichier nginx.conf la ligne suivante :
Maintenant reste plus qu'a créer un fichier naxsi.rules dans le dossier nginx
Le contenu minimal du fichier naxsi.rules est :
Il faut ensuite créer une Location denied. Exemple :
C'est bon c'est terminé suffit de recharger encore une fois les paramètres du serveur Nginx avec ceci :
Normalement maintenant vous avez un serveur 3NMP stable et fonctionnelle.
Je ferai bientôt un autre tutoriel présentant quelque optimisation
La Base :
Déjà on va voir ce qu'et un serveur 3NMP ... c'est un serveur web comme le célèbre Apache. Il est composé de plusieurs logiciel. Tout d'abord le système d'exploitation NetBSD en vers 6.0, de NGINX, de NAXSI, de MySQL et pour finir de PHP.
Je ne détaille pas l'installation de NetBSD.
Les installations ce ferons par paquet binaires (pkgin)
NGINX et NAXSI
Donc nginx est un serveur web / Reverse Proxy HTTP/ Proxy POP3/iMAP, son princiapl avantage est sa faible consommation de mémoire, ceci la placé au rang de second serveur web au niveau mondial (selon Netcraft). Naxsi quand à lui est un "Web Application FireWall)
Pour des questions de facilité nous allons utiliser le dépôt de netbsdfr, il faut modifié le fichier suivant : /usr/pkg/etc/pkgin/repositories.conf en y ajoutant la ligne suivante :
Code:
http://packages.netbsdfr.org/latest/6.0/amd64/packages/All
Maintenant on peut mettre à jour la base de donné avec la commande :
Code:
# pkgin up
Code:
# pkgin in nginx
Code:
# pc /usr/pkg/share/examples/rc.d/nginx /etc/rc.d/ # echo "nginx=YES" >> /etc/rc.conf
Code:
# /etc/rc.d/nginx start
Contrairement à Apache, ce n'est pas un module qui gère le PHP mais un logiciel à part... la création de daemon est rend apparament plus rapide l’exécution des scripts PHP (selon le magazine GNU/Linux N°159)
Pour son intallation :
Code:
# pkgin in php54-fpm
Code:
# cp /usr/pkg/share/examples/rc.d/php_fpm /etc/rc.d # echo "php_fpm=YES" >> /etc/rc.conf
MySQL
C'est, je pense le plus simple il suffit de faire ceci :
Code:
# pkgin in mysql-server-5.1
On va donc créer une parti location dans le fihcier de configuration de nginx (nginx.conf) qui s'occupera des URI
Code:
location ~ \.php$ { fastcgi_pass unix:/tmp/fcgi-php.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_buffers 256 4k; incldue /usr/pkg/etc/nginx/fastcgi_params; }
On va fairre passé les fichiers PHP par un Socket, on doit le définir dans le php-fpm.conf :
Code:
listen = /tmp/fcgi-php.sock
On démarre PHP-FPM avec ceci :
Code:
# /etc/rc.d/php-fpm start
Code:
# nginx -t
Code:
# nginx -s reload
Code:
$ cat > test.php <?php phpinfo(); ?> ^D
Non non on a pas oublié Naxsi ^^' c'est parti pour sa configuration.
Lors de l'installation de nginx un fichier "d'exemple" a était créé /usr/pkg/share/examples/nginx/conf/naxsi_core.rules
On va le copier dans le répertoire de configuration de nginx
Code:
# cp /usr/pkg/share/examples/nginx/conf/naxsi_core.rules \ /usr/pkg/etc/nginx
Code:
include /usr/pkg/etc/nginx/naxsi_core.rules
Le contenu minimal du fichier naxsi.rules est :
Code:
SecRulesEnabled; DeniedURL "/denied"; CheckRule "$SQL >= 8" BLOCK; CheckRule "$RFI >= 8" BLOCK; CheckRule "$TRAVERSAL >= 4" BLOCK; CheckRule "$EVADE >= 4" BLOCK; CheckRule "$XSS >= 8" BLOCK;
Code:
include /usr/pkg/etc/nginx/naxsi.rules;
Code:
# nginx -s reload
Je ferai bientôt un autre tutoriel présentant quelque optimisation