cx42net
Bonjour tout le monde !
Dans ma quete de la compréhension de l'environnement Unix/Linux, j'ai une grosse question à vous poser 🙂
Voila, je vais monter un serveur, qui contiendra :
* Samba pour le partage de fichier
* Un serveur Web (Apache, MySQL, PHP, FTP, Imap, SMTP)
* Un serveur IRC (Hybrid-Irc)
* Un server SubVersion
F* reeplayer (pour Free :p)
Mais voila, j'aimerai pas que tous ces services démarrent en Root (par sécurité)
En plus, j'ai des fichiers confidentiels accessibles par Samba, Freeplayer, mais je ne voudrais pas qu'il soient accessibles par les autres (apache, mysql, php, irc, ftp et subversion).
Dans l'idée, je vais vous donner la structure de comment je veux faire, mais j'aimerai votre avis avant de me lancer :
Je vais créer chaques utilisateurs pour chaques serveur :
User :
webUser (Pour les servers Apache, MySQL, PHP, IMAP et SMTP)
ftpUser (pour le server FTP)
smbUser (pour le serveur Samba)
ircUser (pour le serveur IRC)
playerUser (pour le freePlayer)
svnUser (pour le serveur SubVersion)
et différents groupes
smb_playerGroup (Qui permettra l'acces au repertoire /data (mes données privées))
web_ftpUser (Pour le serveur web)
Au niveau des acces :
* Le repertoire contenant des documents privés (accessibles par samba et freeplayer), je ne veux pas qu'il soit accessible online, juste par le réseau (Samba ne devra fonctionnera QUE par le reseau local !), donc que les utilisateurs autre que samba et freeplayer ne puissent pas avoir acces au repertoire (appelons le /data), je pense donc lui mettre les droits 770 pour smbUser/smb_playerGroup (le groupe smb_playerGroup aura les utilisateurs smbUser et playerUser), le serveur Samba tournera en smbUser/smbUser
* svnUser lancera le serveur subversion, son repertoire home (/home/svnUser) contiendra les fichiers des applications gérée par subversion, et accesible en ftp, en chmod 700 avec svnUser/svnUser
* L'utilisateur webUser aura acces qu'au repertoire /var/www/ (est-ce que je le spécifie comme son dossier home ?), avec un droit 700 en webUser/webUser, il sera aussi accessible par ftp pour l'utilisateur webUser
* L'utilisateur ftpUser lancera le serveur FTP et permettra d'acceder à différents repertoires, accessible en reseau local et depuis internet :
/home/ftp/ avec
./moi/ pour l'utilisateur "moi"
./macopine/ pour l'utilisateur "macopine"
(en fonction de l'utilisateur)
/var/www/ pour l'utilisateur webUser
/home/svnUser/ pour l'utilisateur svnUser
* ircUser aura acces à aucun repertoire, aucun home, aucune session ne pourra etre démarrée par lui (il ne pourra pas se connecter au pc), le serveur irc tournera par cette utilisateur et c'est tout ! 🙂
Je voudrais votre avis et savoir ce que vous en pensez niveau sécurité et accès.
Le repertoire /data qui contient mes données privées sont des mp3 que j'ai rippé de CD que j'ai (donc légaux) mais que, pour une raison évidente, je ne veux pas partager sur internet (accessible par apache, ftp, ou autre), c'est pour ca que je veux restreindre l'accès un max, juste pour le freeplayer et samba (quand je veux les écouters depuis un autre post, en ajouter, modifier, etc!) C'est pour moi le plus important, de restreindre cet acces donc je vous fait énormément confiance quant à ce que vous direz 🙂
J'ai pensé à utiliser les Vservers, mais j'ai déjà tenté avec le pc que j'ai (un vieux cyrix !!), ca m'a pris une nuit pour compiler le noyau, pour avoir un kernel panic. Je peux pas trop me permettre de tester plusieurs fois la compilation, vu le temps que ca prends, donc je ferai autrement :p
J'attends vos avis pour optimiser la structure de mon serveur (qui contiendra tous ces serveurs) avant de me lancer dans l'installation/configuration 🙂
Merci de vos aides 🙂
eponyme
Je vais etre honnete, j'ai pas eu le courage de tout lire. Mais le fait d'attribuer un user pour chaque service ou groupe de service est une tres bonne idée. Tellement bonne qu'elle est déja prévue par défaut !
Si tu utilise system-config-user, et que tu affiche les utilisateurs systèmes tu verra que des utilisateur apache, ftp, et peut etre meme smb existent.
epo
cx42net
lol j'ai bien pensé que personne ne lirait tout :p trop long !
En fait, ma principale inquiétude, c'est que si je met un utilisateur pour chaque services, si quelqu'un arrive a "pirater" le service apache, irc, ou ftp, pourra-t-il acceder au donnée /data (mes données privées) accessibles uniquement par samba et freeplayer ? (excepté biensur si son attaque le mêne en root ! :p) ? c'est ma principale inquiétude ! Bloquer chaques serveur (grace aux utilisateurs) pour leur fonctions, et c'est tout !
mickey
En général, le seul compte qui est "piraté", c'est le compte root. Si le pirate y arrive, il a accés à tout.
Un
lien qui peut t'intéresser.
cx42net
uep ... c'est ca mon soucis ...
Peut-on désactiver le compte root ? ou quelque chose du genre ? (arreter l'ordi si kkn se connecte en root, désactiver le réseau) ou je ne sais quoi (genre faire une action spéciale en root sinon le pc s'arrete dans les 5 sec.
Bref une parade du root quoi ! :p
mickey
Si tu veux faire un serveur, j'imagine qu'il sera connecté 24h/24 et que tu ne seras pas connecté en permanence. Donc il faut oublier l'intervention de root.
Le compte root ne doit évidement pas être désactivé, puisque logiquement, un serveur s'administre, .....avec un administrateur.
Dans le cas d'un serveur, (contrairement à un poste utilisateur) SELinux est une piste à suivre, et évidement, sécuriser le mot de passe root.
Toutes les infos sont disponibles sur le net pour raliser ce que tu veux faire. Personnellement, je ne suis pas expert en réseaux et je ne peux t'en conseiller plus. Mais d'après ce que j'en sais, rares sont les attaques sur un serveur linux car il faut quand même un minimum de compétences en hacking et les vrais hackers ont des cibles plus importantes que ton serveur (sans vouloir te vexer). Il reste les hackeurs du dimanche pré-pubères mais qui ne parvieindrons pas à grand chose si tu sécurises ton mdp root. Encore une fois, je ne suis pas expert du tout, donc, n'hésites pas à faire des recherches avant de te lancer dans l'aventure. 🙂
proxy
Pour avoir quelques serveurs sur le Net, je peux vous dire que toutes les nuits , je compte des centaines de tentatives de connexions sur mes serveurs. Tous les users imaginables (prénoms + comptes systèmes) y passent plus bien sur root.
Donc pour un serveur SSH, désactiver root of course, ne pas mettre des comptes basés sur des mots du dictionnaire, configurer SSH pour flinguer l"IP au bout de 3 tentatives infructueuses, etc ..
Pour Apache, attention aux cgi-bin, awstats, phpMyAdmin, etc ... Installer si besoin, ces outils dans des répertoires protégés.
cx42net
En fait, je comptais parametrer ssh pour n'autoriser la connexion qu'en local, avec un blocage du serveur (ou ip ?) au bout de 3 essais infructeux.
Pour me permettre de me connecter à mon serveur à distance, je passerai par une autre machine qui tourne en permanence, avec elle aussi un serveur ssh, mais une station de travail plus qu'autre chose.
Pour Apache, merci de l'info Proxy 🙂 Tu dit que phpMyAdmin doit être installé dans un repertoire protégé, mais le repertoire par défaut ne convient pas ? si je met les droits 700 pour l'utilisateur apache, ca devrait faire l'affaire nan ? ou c'est pas suffisant ?
"et les vrais hackers ont des cibles plus importantes que ton serveur (sans vouloir te vexer)" => ohh je suis vexé !! 😉
Nan bien au contraire, je prefere qu'ils s'attèlent à quelque chose de plus complexe :p mais ca me dérangerai d'avoir ma bande passante bouffé par de l'upload pour du warez ou je ne sais quoi !! :p
J'hésite, une fois terminé, à mettre mon serveur à la merci des pirates : c'est à dire ouvrir pendant une semaine mon serveur au public (déclarer l'ip et quelques infos) et demander à ce que les "pirates" me retourne la liste des services utilisé, les utilisateurs, les groupes, et le contenu d'un fichier accessible qu'en root ! S'ils y arrivent, c'est que mon serveur craint, sinon c'est que je pourrai dormir tranquile. L'inconvénient, c'est qu'étant déclarer, il le restera tant que mon ip ne changera pas :/
Bref, c'est du boulot !! :p
eponyme
A mon avis ce genre de "challenge" publique est franchement risqué. Certains en on fait l'amer expérience.
cx42net
je pense aussi :p