PDA

Afficher la version complète : Sécurité pour un serveur HTTP



calenfeaion
01/03/2006, 16h45
Bonjour à tous,

Voilà, toujours dans l'idée de monté mon propre serveur HTTP avec ma connection personnel, je me pose des questions de sécurité.
Quelles sont les précautions à prendre pour ne pas se faire hacker à la première visite ?

Merci d'avance,
Calen

PS: Les scripts dynamiques executés sur le serveur seront: PHP, MySQL et Java.

galagann
01/03/2006, 18h47
Salux,

Dans un premier temps, c'est de s'assurer que le Firewall fonctionne bien, puis d'avoir les programmes à jour même les modules, avoir aussi un système stable et bien configurer.

calenfeaion
01/03/2006, 19h22
Bonjour,
Merci pour ta réponse !
Mais, qu'entends-tu par "un système stable et bien configurer" ?

Et, juste pour savoir, une Suse ferait-elle l'affaire pour un serveur HTTP et FTP ?

EDIT: Je précise une petite chose, je suis derrière un routeur...

tyrtamos
01/03/2006, 20h40
Bonjour,

Pour vérifier que ton parefeu est solide, il y a des sites qui propose de le tester (google: test firewall).

Pour la sécurité de base, il y a un chapitre "sécurité" dans le manuel apache2 (malheureusement en anglais).

Tyrtamos

offworld
02/03/2006, 09h50
Continuer les gars, je ferai un wiki de perles.

calenfeaion
02/03/2006, 14h04
Continuer les gars, je ferai un wiki de perles.[/b]

Hmhm...

Sinon, ta pas des conseils à me donner, des liens ou des truc pour m'aider ?
Parce que là, tu m'aides pas beaucoup...

Au faite, j'ai regardé pour les tests et un des sites me dis qu'un port fermé peut être exploité, vous avez confirmation ?

tyrtamos
02/03/2006, 17h23
<div class='quotetop'>Citation </div>
Continuer les gars, je ferai un wiki de perles.[/b]

Oui, c'est vraiment pas malin: http://www.alionet.org/style_emoticons/<#EMO_DIR#>/dry.gif

Pour les ports, le mieux c'est quand le port n'apparait pas: il ne dit pas qu'il est fermé, il ne dit rien, comme s'il n'existait pas. C'est le cas pour le parefeu de mon routeur.

Pour le reste, je laisse offworld répondre...

Tyrtamos

offworld
02/03/2006, 17h31
Le probleme c'est que tu n'a pas de probleme, la seul reponse qu'il serai possible de te donné, ferais environ quelque 2000 pages de forum, chose que personne ne fera, ou alors d'aller lire des cours sur des sites de securités, de configuration de serveur, de mise en place de firewall, de détecteur d'intrusion, etc...


Affiche moi le rapport de ce site, ce sera toujours sympa.

calenfeaion
02/03/2006, 19h16
En faite je en demandes pas un expliquatif de tout ce que je dois faire mais simplement
des liens vers des sites qui pourrait me mettre sur la voie car j'ai déjà fait des recherches
mais les meilleurs résultats que j'obtiennes sont des sites qui me disent que je dois mettre
des .htaccess http://www.alionet.org/style_emoticons/<#EMO_DIR#>/dry.gif

Sachant que tu t'interresses à la sécu tu aurais sûrement des liens de ce styles, non?

<div class='quotetop'>Citation </div>
ou alors d'aller lire des cours sur des sites de securités, de configuration de serveur, de mise en place de firewall, de détecteur d'intrusion, etc...[/b]
Justement, n'aurais-tu pas des adresses ?

Sinon déso de m'être mal exprimé

Ps: J'ai déjà çà (http://olivieraj.free.fr/fr/linux/information/firewall/) et je crois même que c'est toi qui à donné le link http://www.alionet.org/style_emoticons/<#EMO_DIR#>/wink.gif

tyrtamos
03/03/2006, 10h09
Bonjour,

Comme le sujet m'intéresse aussi, j'ai cherché un peu.

Je te suggère de regarder:

La doc des grandes distrib linux réputées pour faire du serveur web:

debian:
http://www.debian.org/doc/manuals/securing...o/index.fr.html (http://www.debian.org/doc/manuals/securing-debian-howto/index.fr.html)

Red Hat:
http://www.europe.redhat.com/documentation/

Suse server (la doc admin fait quand meme 69Mo!):
http://www.novell.com/documentation/sles9/index.html

Tu peux aussi voir du coté de Lea (utilise le google local pour chercher sur Lea):
http://lea-linux.org/cached/index/Reseau-w...che_protec.html (http://lea-linux.org/cached/index/Reseau-web-Apache_protec.html)
http://lea-linux.org/cached/index/Admin-ad...plus-secur.html (http://lea-linux.org/cached/index/Admin-admin_plus-secur.html)

Ainsi qu'ici:
http://www.guilde.asso.fr/ressources/contrib/
http://www.edgar-bonet.org/info/securite.html

Je te suggère aussi d'acheter un bon bouquin sur apache (O'Reilly ?) et/ou sur la sécurité (j'en ai un de http://www.editions-eni.com).

Je te suggère aussi de ne pas baisser les bras! Le problème, c'est qu'offworld a raison, mais que cela conduit à ne plus rien tenter.

Or, il faut relativiser. Si tu as un pc dédié serveur en utilisation d'amateur, le pire qu'il puisse t'arriver c'est quoi ? que tu te fasses pirater ? Cela représentera une blessure d'orgueil et quelques heures pour tout réinstaller. Tu n'as pas d'infos "secret défense", ou d'infos commerciales sensibles, et tu ne gagnes pas d'argent avec ton serveur. Tu n'auras que des attaques de gens qui veulent s'amuser, ou qui veulent t'utiliser comme relais (c'est peut-etre d'ailleurs cela le plus dangereux si ça concerne des activités illégales...).

Si tu as une ligne adsl standard, tu ne risques pas d'accueillir de gros débit. Si tu surveilles ta ligne, tu verras les utilisations anormales.

Ce serait bien d'avoir une machine dédiée et non reliée au reste du réseau local (fonction dmz du routeur, et pas de samba ni nfs). Un pc de récupération par exemple. Il n'a pas besoin d'etre puissant (pas de graphique).

Un bon parefeu bien règlé dans les 2 sens, et, comme l'a dit galagann, des programmes à jour et une bonne config. Pour les programmes à jour, il faut aussi surveiller les programmes php trouvés sur le net (forum, wiki, ...) qui ont souvent des trous.

Tu peux mettre le minimum vital pour que le serveur fonctionne et pas plus (=pas de kde, pas de serveur mail, pas de serveur dns,...). Tu peux interdire cgi, perl,... et ne laisser que php et mysql. Moins il y en aura, moins il y aura de trous...

Des mots de passes compliqués (mélange de majuscules/minuscules/chiffres), qu'on ne peut pas trouver dans un dictionnaire, en particulier pour root. Utilisation de shadow (/etc/shadow contient les mots de passe au lieu de /etc/passwd, mais lisible seulement par root).

Il faut éviter que apache donne des infos trop précises sur la config (cf fichiers de config).

Pas d'exécutable dans les répertoires du site (à part .php!).

Ne donner que le minimum de permission. Vérifier que les utilisateurs ne peuvent pas remonter l'arborescence linux (chroot). Eviter qu'on puisse lister le contenu des répertoires en l'absence d'index.html (il y a une option pour cela). Placer des .htaccess partout ou c'est nécessaire (mais il vaut mieux verrouiller en standard et libérer avec .htaccess que le contraire). Vérifier que les fichiers de config sont inaccessibles.

Dans la conception du site, vérifier systématiquement les données de formulaires avant de les utiliser pour éviter les tentatives de remontée de l'arborescence ("../")ou d'exécution shell (apostrophe inverse en particulier) ou les saisies trop longues (tentative de dépassement de buffer).

Etc... Je ne suis pas spécialiste de cette question (et de loin), mais je pense que quelques heures de recherche sur le web, ainsi qu'un bon bouquin sur apache et/ou sur la sécurité des serveurs ajouteront une vingtaine de mesures concrètes du meme calibre qui ramèneront ton risque à un niveau acceptable (dans ton contexte).

Mais au fait, ce serait bien d'avoir une telle check-list dans Aliowiki, non? Au travail les spécialistes!!

En tout cas, sache que meme si tu appliquais les milliers de pages écrites sur le sujet de la sécurité, il restera toujours des trous: ceux qui sont découverts tous les jours...

Bon amusement !

Tyrtamos

devloop
03/03/2006, 10h54
T'as pas vraiment de soucis à avoir quand à la sécurité de ton serveur Apache...
Ce qui pose problème c'est plutot les applications web (php, cgis) que tu installeras sur ton site...
Par exemple mieux vaut éviter awstats et phpBB qui sont réputés pour leurs failles http://www.alionet.org/style_emoticons/<#EMO_DIR#>/tongue.gif
Sinon MySQL n'est un pas langage de script et Java ne posera pas de problèmes de sécurité s'il s'agit d'applets (donc exécuté dans le navigateur du visiteur)
Après si tu codes toi-meme tes scripts php il est préférable de lire quelques docs sur la programmation sécurisée histoire d'éviter d'insérer une faille toute les 5 lignes http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif

ps: de nouveau avec un caméléon dans mon moteur http://www.alionet.org/style_emoticons/<#EMO_DIR#>/wink.gif

calenfeaion
04/03/2006, 14h38
Merci beaucoup pour le temps que tu as passé à me répondre tyrtamos !
Je vais lire tout ça http://www.alionet.org/style_emoticons/<#EMO_DIR#>/mad.gif

Pour les scripts exécutés ce sera mes scripts donc ce n'est pas une mauvaise idée
de se renseigné sur la sécurisation des scripts en PHP http://www.alionet.org/style_emoticons/<#EMO_DIR#>/rolleyes.gif

Pour ce qui est de Java je ne crois pas que se seront des applets mais plutôt
des scripts exécutés coté serveur, mais bon, ce n'est pas pour tout de suite.

Encore merci pour vos réponses !
Calen