Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 26/01/2015, à 01:31

Valentin2105

[Votre AVIS] Sécurité Serveur

Bonjour,

J'aimerai un peu "tester" la sécurité de mon serveur,

J'aimerai vos avis sur ma configuration :

--------------------------
-------- SSH -----------
--------------------------

- Port élevé sur TCP
- Protocol 2
- Login Root bloqué
- Login sur un seul user autorisé
- Mot de passe de 16 caractères
- Fail2ban ban l'IP après 3 ratés


--------------------------
-------- Apache2 -----
--------------------------

- Page d'accueil static (sans PHP, bootstrap simple)
- Login à la partie admin avec .htaccess
- Fail2ban ban l'IP après plusieurs ratés
- Token cachés (Prod)
- Rewrite automatique en HTTPS

--------------------------

Le tout est supervisé par LogWatch, avec un script Iptables avec seulement les ports voulus d'ouvert.
J'ai également un SAMBA sur mon réseau local.

Au niveau d'Apache, j'aimerai savoir si un formulaire de login en PHP (avec login:mpd dans Base MySQL) est plus sécuritaire qu'un .htaccess ?
Tout ce que je met dans mon dossier protégé par le .htaccess est vraiment innaccessible sans le pass ? Car il pourrait avoir des données sensibles.

( Par exemple si j'ai des applications webs avec de possibles failles derrière mon Htaccess, est-ce un risque ? )

Ce serveur à seulement SSH, HTTP, HTTPS de routé vers Internet,

Quelles possibles failles peuvent m'exposé sur ces ports ?

Merci de me donner une nouvelle vision,

Cordialement,

Valentin

Dernière modification par Valentin2105 (Le 26/01/2015, à 01:33)

Hors ligne

#2 Le 26/01/2015, à 10:12

tiramiseb

Re : [Votre AVIS] Sécurité Serveur

Valentin2105 a écrit :

--------------------------
-------- SSH -----------
--------------------------

- Port élevé sur TCP
- Protocol 2
- Login Root bloqué
- Login sur un seul user autorisé
- Mot de passe de 16 caractères
- Fail2ban ban l'IP après 3 ratés

Port élevé, login root bloqué, login sur un seul utilisateur, fail2ban : tout ça c'est soit de la sécurité par l'obscurité, soit des choses à faire "en tout dernier" : pas besoin de tout ça pour avoir un serveur sécurisé.

Concernant le mot de passe, je te conseillerais plutôt d'utiliser une connexion par clé SSH et désactiver complètement le mot de passe.

Pour ma part j'ai SSH en port 22, je me connecte uniquement en root, je n'ai pas d'autre utilisateur, le mot de passe est totalement désactivé, je n'utilise pas fail2ban. Il n'y a absolument aucun risque vu que le seul moyen d'entrer dans la machine est d'utiliser ma clé SSH (avec phrase de passe bien sûr).


Valentin2105 a écrit :

--------------------------
-------- Apache2 -----
--------------------------

- Page d'accueil static (sans PHP, bootstrap simple)
- Login à la partie admin avec .htaccess
- Fail2ban ban l'IP après plusieurs ratés
- Token cachés (Prod)
- Rewrite automatique en HTTPS

--------------------------

Quand tu parles de "page d'accueil" tu parles de la page quand on demande direct l'adresse IP sans donner de virtualhost ? Alors c'est une bonne idée, oui. Ou alors si tu parles de ton site directement, il faudrait faire un audit complet pour voir ce que ça dit : la page d'accueil n'a rien de spécial par rapport à d'autres pages.

Pour le login, il faut que l'authentification soit forte (mot de passe, bla bla bla). Et évite .htaccess, configure plutôt directement ton serveur dans les fichiers de conf d'Apache :
https://www.maccagnoni.eu/2014/02/apach … -htaccess/

La redirection systématique en HTTPS est clairement une bonne idée.
Je ne sais pas ce que tu veux dire par "token cachés".
Fail2ban n'est pas indispensable.



Valentin2105 a écrit :

Le tout est supervisé par LogWatch

Boarf, pour ma part je n'utilise pas d'analyseur de log.
Par contre j'ai une vraie supervision en place, avec surveillance de pas mal d'indicateurs (processus en fonctionnement, nombre d'utilisateurs connectés, utilisation CPU, utilisation disques, etc).

Valentin2105 a écrit :

un script Iptables avec seulement les ports voulus d'ouvert.
[...]
Ce serveur à seulement SSH, HTTP, HTTPS de routé vers Internet

Inutile car les ports fermés n'ont pas besoin de pare-feu pour être fermés.
Il y a un bon article à ce propos dans ce numéro de LP (page 34) :
http://boutique.ed-diamond.com/linux-pr … ue-87.html

Valentin2105 a écrit :

J'ai également un SAMBA sur mon réseau local.

Transmission de données et des authentifications en clair sur ton réseau ? Attention si n'importe qui peut s'y connecter.

Valentin2105 a écrit :

Au niveau d'Apache, j'aimerai savoir si un formulaire de login en PHP (avec login:mpd dans Base MySQL) est plus sécuritaire qu'un .htaccess ?
Tout ce que je met dans mon dossier protégé par le .htaccess est vraiment innaccessible sans le pass ? Car il pourrait avoir des données sensibles.

( Par exemple si j'ai des applications webs avec de possibles failles derrière mon Htaccess, est-ce un risque ? )

Tu te questionnes sur la possibilité de failles dans des applis web derrière ton authentification, c'est un très bon questionnement : selon ce que je comprends du peu que tu montres de ton serveur, cette authentification est alors le point le plus sensible de ta sécurité.

La partie protégée par ton "htaccess" (ou, dans le futur, par ta conf d'Apache, cf le lien de mon blog ci-dessus) est-elle bien en HTTPS ? C'est très important : que tes données soient chiffrées.

htaccess ou base SQL, l'essentiel est que personne ne puisse deviner ni récupérer ton mot de passe. La protection accordée par le htaccess dépend de ce que tu y mets : tu n'as pas montré la conf alors on ne peut pas affirmer que tout est sécurisé. De même, si une innocente requête dans une autre partie de ton site permet de remonter le contenu de ta base de mots de passe, toute ta sécurité est mise à mal.

-------------------


Enfin, tu n'as pas évoqué la base de la base de la sécurité informatique : ton serveur est constamment à jour ? La distribution utilisée est encore supportée ? Tu reçois des alertes quand des mises à jour de sécurité sont dispo ? Tu les appliques immédiatement ?


D'après moi, les quatre piliers de la sécurité informatique sont :
- le maintien à jour du système et des logiciels ;
- une méthode d'authentification solide ;
- la limitation et la bonne configuration des serveurs en écoute ;
- la confiance à n'accorder aux autres que quand il n'y a pas de doute.


Aucune règle de pare-feu, aucun fail2ban, aucun htaccess et aucun changement de port ne corrigeront une erreur de configuration dans Apache, qui donnerait par exemple accès à tout ton système de fichiers en lecture.

Hors ligne

#3 Le 26/01/2015, à 10:16

ssdg

Re : [Votre AVIS] Sécurité Serveur

Pour la partie SSH:
Pourquoi ne pas passer par un couple clef publique/privée? entre 8 caractères et un challenge sur 2048 (ou plus) bits, je choisi le second wink
Pour la parti HTTP et les questions qui suivent:
la conf à l'air bien, tout dépend du htacccess.
Pareil pour la partie "vraiment inaccessible".

Pour la partie si un formulaire en php, je ne vois pas trop l'intéret. Par contre, je vois le danger. Faire rentrer un programme de plus, c'est faire rentrer des probabilités des failles.

Je crois que si le htaccess bloque, il ne bloque pas le retour du script mais son appel. (tout son appel) du coup, je dirais que le code de php n'est jamais appellé. Et encore moins les scripts php.

Pour la relation port/failles, c'est couvert dessus. Un port ouvert n'est généralement pas une faille (sauf vulnérabilité dans le noyau linux, mais il faut y aller)


s'il n'y a pas de solution, c'est qu'il n'y a pas de problème... ou pas.

Hors ligne

#4 Le 26/01/2015, à 10:20

tiramiseb

Re : [Votre AVIS] Sécurité Serveur

Par contre, je vois le danger. Faire rentrer un programme de plus, c'est faire rentrer des probabilités des failles.

Je n'y avais pas pensé. C'est parfaitement vrai.
Au moins avec "htaccess" (ou, mieux, la config dans Apache) il n'y a pas de risque d'erreur de PHP dans l'écran de login smile

Je crois que si le htaccess bloque, il ne bloque pas le retour du script mais son appel. (tout son appel) du coup, je dirais que le code de php n'est jamais appellé

Je confirme.

Dernière modification par tiramiseb (Le 26/01/2015, à 10:21)

Hors ligne

#5 Le 26/01/2015, à 12:27

Valentin2105

Re : [Votre AVIS] Sécurité Serveur

ssdg a écrit :

Pourquoi ne pas passer par un couple clef publique/privée? entre 8 caractères et un challenge sur 2048 (ou plus) bits, je choisi le second wink

Je l'ai mis en place, mais j'y accède depuis plusieurs machines, je vais déployer mes clés et fermer l'authentification par mot de passes !

Ensuite pour HTTP j'ai pas était très clair,

Dans sites-enabled, j'ai que "default-ssl"

Mon répertoire WWW se décompose comme ceci :

--------------------------------------------------------------------------------------------
Accueil - OUVERT (Static Bootstrap avec liens vers admin) --------------
-------- Admin - Protégé par HTAccess + Ban IP ------------------------------
------------------ Plusieurs outils PHP (qui peuvent contenir des failles) ---
--------------------------------------------------------------------------------------------
Ma question était donc, Est-ce que mon dossier Admin et tous ce qu'il contient (App + Fichiers) sont sécurisés seulement avec un .htaccess ?

Vis à vis du serveur, il s'agit d'un Debian Wheezy, à jours, avec le minimum de paquet installés (le nécéssaire).

Merci pour vos réponses en tout cas.

PS : Des outils de supervision à suggèrer ?

Dernière modification par Valentin2105 (Le 26/01/2015, à 12:30)

Hors ligne

#6 Le 26/01/2015, à 12:32

tiramiseb

Re : [Votre AVIS] Sécurité Serveur

Je l'ai mis en place, mais j'y accède depuis plusieurs machines, je vais déployer mes clés

Attention, ne déploie pas ta clé privée sur plusieurs machines, il vaut mieux mettre une clé privée par machine (sauf bien sûr si ce sont TES machines, avec TON authentification sur TON compte).

fermer l'authentification par mot de passes

Désactive carrément le mot de passe, du coup personne ne pourra non plus se connecter à partir d'un terminal local ou par un quelconque autre moyen.

Sur mes serveurs je ne configure pas le serveur SSH en ce sens : l'authentification par mot de passe reste possible, mais le mot de passe du seul utilisateur est inutilisable.

Dans sites-enabled, j'ai que "default-ssl"

Tu as gardé la configuration par défaut ?
Ou alors as-tu juste gardé le nom de fichier ?
As-tu bien mis en place ta propre configuration, adaptée à ton besoin ?

Tiens, tant qu'on y est, je te conseille de mettre ton arborescence sous /srv (/srv/www par exemple), ce serait + propre...

Est-ce que mon dossier Admin et tous ce qu'il contient (App + Fichiers) sont sécurisés seulement avec un .htaccess ?

Notre réponse est toujours la même : ça dépend de ce qu'il y a dans ton .htaccess.
Et, encore une fois, évite le .htaccess, configure directement Apache, c'est mieux.

PS : Des outils de supervision à suggèrer ?

Pour ma part j'utilise Zabbix mais si ce n'est que pour un seul serveur, c'est un peu gros... Éventuellement Xymon, je l'utilisais dans une vie antérieure et ça me semblait pas si mal...

Dernière modification par tiramiseb (Le 26/01/2015, à 12:35)

Hors ligne

#7 Le 26/01/2015, à 12:54

Valentin2105

Re : [Votre AVIS] Sécurité Serveur

Pour la clé, j'utilise bien une clé par périphériques.

Concrétement, comment désactiver le mot de passe pour le seul utilisateur (autre que root) ?

Pour ma configuration d'Apache2, il s'agit bien de la config par défaut, avec qques modifications (Caché version d'apache ...).

Mon Htaccess contient ceci :

AuthType Basic
AuthName "Restricted Access"
AuthUserFile /var/www/admin/.htpasswd
Require user valentin

Mon default-site-ssl contient :


<IfModule mod_ssl.c>
<VirtualHost _default_:443>
        ServerAdmin mon-mail

        DocumentRoot /var/www
        <Directory />
                Options FollowSymLinks
                AllowOverride All
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined

        SSLEngine on
        SSLCertificateFile    /etc/apache2/SSL/server.crt
        SSLCertificateKeyFile /etc/apache2/SSL/server.key

SSLProtocol -ALL +TLSv1 +TLSv1.1 +TLSv1.2
SSLHonorCipherOrder On
SSLCipherSuite ECDHE-RSA-AES128-SHA256:AES128-GCM-SHA256:HIGH:!MD5:!aNULL:!EDH:!RC

En fait j'ai besoin d'avoir la page d'accueil "ouverte", pour afficher des infos, des liens ...
Parcontre, ma partie Admin, doit être sécurisé, et toutes les Apps contenus dans ce dossiers, doivent être innacessible sans se logguer (et l'IP est ba après 3 erreurs).

Le Htaccess me garantit pas ça  ?

Cordialement et encore merci pour vos réponses.

Dernière modification par Valentin2105 (Le 26/01/2015, à 12:55)

Hors ligne

#8 Le 26/01/2015, à 14:30

tiramiseb

Re : [Votre AVIS] Sécurité Serveur

comment désactiver le mot de passe pour le seul utilisateur

L'argument -l de la commande passwd.

Le Htaccess me garantit pas ça  ?

Ton htaccess, assez basique, me semble suffire.
Cela dit, mettre dans la config d'Apache c'est mieux, comme l'explique l'article pour lequel je t'ai donné un lien.

Hors ligne