Annonce

Réduire
Aucune annonce.

[Serveur Web] Installation Serveur 3NMP

Réduire
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • Tutoriel [Serveur Web] Installation Serveur 3NMP

    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 :
    Code:
    http://packages.netbsdfr.org/latest/6.0/amd64/packages/All
    (remplacer amd64 par i386 si votre plateforme est de type i386)

    Maintenant on peut mettre à jour la base de donné avec la commande :
    Code:
    # pkgin up
    puis on installe Nginx et naxis simplement avec cette commande
    Code:
    # pkgin in nginx
    On s'assure que le serveur démarre au démarrage de la machine :
    Code:
    # pc /usr/pkg/share/examples/rc.d/nginx /etc/rc.d/
    # echo "nginx=YES" >> /etc/rc.conf
    Le démarrage du serveur ce fait avec cette commande :
    Code:
    # /etc/rc.d/nginx start
    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 :
    Code:
    # pkgin in php54-fpm
    puis on l'ajoute au démarrage :
    Code:
    # cp /usr/pkg/share/examples/rc.d/php_fpm /etc/rc.d
    # echo "php_fpm=YES" >> /etc/rc.conf
    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 :
    Code:
    # pkgin in mysql-server-5.1
    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

    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;
    }
    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 :
    Code:
    listen = /tmp/fcgi-php.sock
    Maintenant on va préparer le lancement du serveur
    On démarre PHP-FPM avec ceci :
    Code:
    # /etc/rc.d/php-fpm start
    Puis on vérifie la syntaxe du fichier de configuration de nginx.
    Code:
    # nginx -t
    Si les résultats sont bon on peut charger la nouvelle configuration
    Code:
    # nginx -s reload
    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)
    Code:
    $ cat > test.php
    <?php phpinfo(); ?> 
    ^D
    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
    Code:
    # cp /usr/pkg/share/examples/nginx/conf/naxsi_core.rules \
    /usr/pkg/etc/nginx
    On ajoute dans la section http du fichier nginx.conf la ligne suivante :
    Code:
    include /usr/pkg/etc/nginx/naxsi_core.rules
    Maintenant reste plus qu'a créer un fichier naxsi.rules dans le dossier nginx
    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;
    Il faut ensuite créer une Location denied. Exemple :
    Code:
    include /usr/pkg/etc/nginx/naxsi.rules;
    C'est bon c'est terminé suffit de recharger encore une fois les paramètres du serveur Nginx avec ceci :
    Code:
    # nginx -s reload
    Normalement maintenant vous avez un serveur 3NMP stable et fonctionnelle.
    Je ferai bientôt un autre tutoriel présentant quelque optimisation
Chargement...
X