Aller au contenu


Photo

[TUTO] Guide mise en place d'un serveur sous FreeBSD


  • Veuillez vous connecter pour répondre
13 réponses à ce sujet

#1 exdeus

exdeus

    Modérateur

  • Moderateurs
  • 351 messages

Posté 14 June 2010 - 19:22

Note : Ce tutoriel est encore en pleine élaboration et peux contenir des erreurs. Merci d'en tenir compte

Guide de mise en place d'un serveur sous FreeBSD


Intro

FreeBSD est l'un des UNIX les plus célèbres avec NetBSD et son fork, openBSD.
Réputé pour sa robustesse, cet OS se prête parfaitement à l'installation d'un serveur.
De plus il est compatible avec les binaires Linux !
Si vous souhaitez en savoir plus sur FreeBSD je vous invite à consulter la page Wikipedia.

Il existe un fork "out-of-the-box" avec KDE 4.x, disponible ici : http://www.pcbsd.org/.
Mais nous ne nous intéresseront ici qu'a l'installation d'une FreeBSD en ligne de commande sans serveur X.

I ) Installation

A ) Matériel Requis


  • Un PC : oui c'est mieux Image IPB, FreeBSD est disponible pour les architectures i386, AMD64, ia64, pc98, sparc et PowerPc.
  • Une image d'installation : pour chacune des architectures vous trouverez une netinstall, une image DVD et CD ainsi qu'une image USB.
  • Une connexion internet : indispensable pour une netinstall.
NB : Pour ce tutoriel j'utilise une netinstall i386 dans une VM Virtualbox, n’hésitez pas à faire de même pour un premier essai

B ) Action !

Insérez le média d'installation sur la machine qui va nous serveur en pensant bien à sélectionner le boot adéquat. Vous devriez accéder au menu suivant :

Image IPB

Après avoir admiré le joli dessin ASCII vous pouvez appuyer sur 1, plusieurs informations défilent à l'écran puis un interface type ncurses se lance.

Image IPB


Que c'est beau Image IPB, sélectionner votre langue préférée (français = 75), puis appuyer sur [OK]

Image IPB


Puis on vous demande de choisir votre keymap (type de clavier), jusque là c'est pas trop dur Image IPB

Image IPB


On arrive maintenant sur le sysinstal Main Menu, l'ergonomie du bousin est un peu douteuse mais faut faire avec ...
Je vous invite à sélectionnez l'option Standard avec les flèches directionnelles puis à appuyé sur la touche entrée.
Une fenêtre d'avertis
sement vous indique que le programme d'installation va lancer fdisk, appuyer simplement sur entré.

Image IPB


On se retrouve donc face a l'interface de fdisk, je ne m’étendrai pas outre mesure sur le partitionnement, google est votre ami
Pour utiliser le disque entier appuyez simplement sur A, fdisk se charge du reste.

Image IPB


Il ne reste plus qu'a appuyer sur Q pour finaliser et écrire la table de partition.

Image IPB


Sysinstall nous demande s'il faut installer un programme de multiboot (grub-like), je doute que vous ne souhaitiez installer Windows 7 en multiboot sur votre serveur. Sélectionnez donc Standard, encore une fois.
Une nouvelle fenêtre nous informe de la suite des évènements, appuyez simplement sur entrée

Image IPB


Comme avant, appuyez simplement sur A (auto)
Une fenêtre vous demande quel programme installer, sélectionnez une installation complète
Puis une autre fenêtre vous demande si vous souhaitez utiliser la collection de Ports BSD
Répondez évidement [YES], les ports sont à FreeBSD ce que sont les paquets à Debian et consorts Image IPB
On vous demande ensuite de sélectionner la sources d'installation, si vous avez booter sur une netinstall vous devez choisir de passer par un FTP

Image IPB

Si vous choisissez d'installer via FTP, cette fenêtre vous demandera de configurer le réseau


Sinon, libre à vous de choisir Image IPB

Commence alors un long processus d'installation sans barre de progression -----> Allez vous chercher une bière Image IPB
Une fois l'installation terminée, l'installeur vous pose encore quelque question comme les identifiant/mdp ou encore l'activation de la compatibilité Linux (répondez positivement à cette dernière).



Image IPB
La fenêtre de création d'utilisateur



Penser a mettre votre utilisateur dans le groupe Wheel
Si vous ne créer pas d'utilisateur maintenant il faudra soit relancer sysinstall soit utiliser la commande adduser.


Image IPB
Le plus "dur" est derrière nous Image IPB


Le système devrai rebooter, pensez a enlever le média d'installation, et sauter à la seconde partie du tuto : la configuration

NB : pour relancer le système d'installation a tout moment vous pourrez entrer "sysinstall" dans un shell

II ) Configuration

Après redémarrage et login avec votre couple identifiant/mdp, vous devriez arriver sur un prompt tout ce qui a de plus classique. Le shell par défaut est sh, nous allons installer zsh dans un but purement pédagogique histoire d'avoir un vrai shell (afin de comprendre le principe des ports).
Vous pouvez choisir bash ou un autre, peut importe il s'agit juste d'apprendre Image IPB

Image IPB

Le premier boot \o/, a moins que vous n'ayez ajouter l'user au groupes adaptée, loggez vous en root



A )
Installation de nouveau logiciels

Pour installer zsh rien de plus simple, dans le shell (en root)

pkg_add -r zsh

Image IPB Il faudra peut être redémarrer pour pouvoir utiliser zsh

Plein de question se posent dans nos cœur de petit geek Image IPB

  • C'est quoi les ports ?

Il s'agit d'une des grandes forces de FreeBSD. Chaque port est un ensemble de fichiers informatifs précisant où trouver les sources d'une application, éventuellement quelles corrections apporter, comment compiler, et quels sont les programmes ou bibliothèques dont l'application dépend (ces programmes et bibliothèques sont simplement appelées dépendances). Par extension, un port est une application portée sur FreeBSD. À l'été 2008, il y a plus de 17 000 ports.

Chaque port peut être installé sous forme binaire ou package (système équivalent aux fichiers .rpm, .deb, etc. des distributions Linux) ou compilé depuis les dernières sources (équivalent des pkgsrc de NetBSD). Le système est fait de telle manière qu'avec une seule commande, les sources de l'application et des dépendances sont téléchargées, compilées et installées sur le système d'exploitation.

Source : Wikipedia

Comme sous linux il est donc possible d'utiliser un systeme de paquet ou de compiler

a ) Le systeme de paquet et la commande pkg-*


A ne pas confondre avec le format de chez sony Image IPB

C'est le gestionnaire de paquet pré-compilé (on peut faire le parallèle avec APT ou RPM dans le monde Linux).
Les droit commandes a connaitre pour l'utiliser sont :

  • pkg_info : liste et décrit les divers logiciels pré-compilés installés
  • pkg_version : récapitule les versions de tous les logiciels pré-compilés installés et compare les versions installé au dernières disponibles
  • pkg_add : installer un logiciel pré-compilé
  • pkg_delete : supprime un logiciel pré-compilé
L'option -r de pkg_add lui indique de passer en mode "automatique" dans la mesure ou il va chercher sur le serveur par défaut la version la plus récente du logiciel demandé
pour plus d'info : man pkg_add

Sans auto-complétion comment connaitre le nom exact des ports ?


les ports sont disponibles ici
mais vous pouvez également lancer : sysinstall > Configure > Package > Source
pour obtenir une liste ordonnée des logiciels pré-compilés disponibles

b ) compilation depuis le répertoire usr/ports/

Plutôt que d'utiliser les paquet pré-compiler il peut être intéressant de compiler soi même depuis les sources
Je vais détailler ici la procédure à suivre, pas à pas B)

Dans un premier temps rendez vous dans le répertoire où sont répertoriés tout les ports

cd /usr/ports

Jusque là, j'espère que tout le monde suit.
On va maintenant créer un index des ports disponibles (opération à ne faire qu'une fois)

make index

Là encore un certains temps peut s’écouler avant la fin de l'indexation, prenez un coca sinon vous pourrez plus conduire :lol:
On va enfin pouvoir chercher le paquet qui nous interesse avec la commande suivante

make search name=" nom du programme"

Sachant que vous pouvez utiliser des jokers avec le caractère "*"
Vous devriez obtenir tout un tas d'informations sur les ports qui correspondent à votre recherche. (Nom, description, siteweb, et chemin (path))
C'est cette derniere donnée qui nous interesse, il ne nous reste plus qu'a nous rendre dans le repertoire concerné ...

cd /usr/ports/.../...

... pour configurer la compilation ...

make config

.... et enfin installer le programme

make install clean

Voila votre programme installer, configurer et fonctionel B)

;) un redémarrage peut néanmoins s’avérer nécessaire


B ) Logiciels à installer
/configurer

  • Un éditeur de texte : Vi est installer par défaut, je recommande plutôt emacs ou nano en plus léger
  • le zshrc : Sur un serveur sans interface graphique, il est important d'avoir un shell correctement personalisé avec un prompt agréable et des alias sympa
  • Un navigateur en mode texte : je préconise elinks qui est un fork de links avec gestion du CSS et la couleur
III ) Le serveur

A ) Installation de Apache + Mysql + PHP

Commencer par installer les ports suivant :

  • apache22
  • mysql60-server
  • php5-session
  • php5-extensions
NB : Je presente ici le couple traditionel Apache/Mysql mais rien ne vous empeche d'utiliser les logiciel alternatif tel que lighttpd ou nginx pour le serveur http et SQlite pour la db (Vous pouvez même jeter un coup d’œil du coté du "NoSQL")

Nous avons maintenant récupéré et installé tous les programmes nécessaires à la mise en place d'un serveur UAMP
Jusqu'ici rien de bien compliqué, il s'agit maintenant de mettre un peu les mains dans le cambouis pour une config au petit ognons ;)

On va commencer par lancer apache2 au démarrage
echo "apache22-enable=\"Yes\"" >>  /etc/rc.conf"

Puis on s'attaque à la configuration de apache à proprement parler.
Pour ce faire on édite le fichier de configuration principal de apache : httpd.conf
emacs /usr/local/etc/apache22/httpd.conf
Rendez vous à la ligne 148 ou vous devriez trouver ceci :
#ServerName www.yourdomain.com:80
Décommentez la ligne et remplacer la par :
ServerName localhost:80
On va commencer par travailler en local ;)






B ) Bases de sécurité




Merci à Hardisk, grand fan de FreeBSD, pour son aide et ses corrections.

C'est la fin de ce tutoriel j'essayerai de l'améliorer au fil du temps, Si vous avez des questions ou des commentaires à faire, n’hésitez pas Image IPB



Image IPB

Happiness is only real when shared, Christopher McCandless

Linux n'a pas été crée pour couler Microsoft, ça se sera un regrettable effet secondaire..


#2 Guest_Gordontesos_*

Guest_Gordontesos_*
  • Visiteurs

Posté 13 July 2010 - 15:00

Merci pour ce How-To, c'est instructif :D j'attend tes infos sur la sécurité d'un *BSD, et j'appliquerai ça dès que j'aurai l'occasion d'en installer un.

#3 sloshy

sloshy

    Petit nouveau

  • Membres
  • Pip
  • 63 messages

Posté 13 July 2010 - 15:18

Bonjour,
Je me réjoui de lire la suite, bonne continuation :D

Modifié par sloshy, 13 July 2010 - 15:19.

« Tout le monde se plaint de sa mémoire, personne ne se plaint de son jugement. »

#4 iMeee

iMeee

    Modo

  • Moderateurs
  • 177 messages

Posté 15 July 2010 - 10:18

Bravo pour ce tutoriel ! Peut être passerais-je sous FreeBSD pour mes prochains serveurs, je tenterais tout ça en VM ;)
Image IPB

#5 exdeus

exdeus

    Modérateur

  • Moderateurs
  • 351 messages

Posté 15 July 2010 - 10:31

Bravo pour ce tutoriel ! Peut être passerais-je sous FreeBSD pour mes prochains serveurs, je tenterais tout ça en VM ;)


Si tu utilise VirtualBox pense à faire un disque statique, j'ai eu quelques soucis avec un dynamique de 8 GB

Image IPB

Happiness is only real when shared, Christopher McCandless

Linux n'a pas été crée pour couler Microsoft, ça se sera un regrettable effet secondaire..


#6 Boni Be Good

Boni Be Good

    Korbenaute

  • Membres
  • PipPip
  • 398 messages

Posté 15 July 2010 - 10:41

Hello !
Merci beaucoup pour ce tutoriel. J'en ai pas trouver beaucoup sur le net.

J'ai essayer il y à quelque temps de monter un serveur *BSD. Mais je n'ai pas réussi. Pour cause, un matériel non compatible.
Du pour moi, *BSD est difficile à installer à ce niveau là.

Pouvez-vous m'éclairer à ce sujet ? Merci
Noblesse bien remisée, ne trouve jamais l'hiver à sa porte, non..., porte close

#7 exdeus

exdeus

    Modérateur

  • Moderateurs
  • 351 messages

Posté 15 July 2010 - 10:44

Tu avais essayer il y a combien de temps ? et avec quel version ?
La compatibilité a beaucoup progressée

Image IPB

Happiness is only real when shared, Christopher McCandless

Linux n'a pas été crée pour couler Microsoft, ça se sera un regrettable effet secondaire..


#8 Boni Be Good

Boni Be Good

    Korbenaute

  • Membres
  • PipPip
  • 398 messages

Posté 15 July 2010 - 10:51

Hum.. 3 ou 4 ans je crois. J'avais testé une PCBSD, une OPENBSD et une FREEBSD sans succès ;-(
Je m'y remettrais peut-être avec ton tuto ;)

J'ai trouvé quelques fautes d'orthographe et de typographie. Je te les notes ? ( Histoire d'avoir un tuto encore plus agréable à lire ;) bien qu'il le soit déjà ! )
Noblesse bien remisée, ne trouve jamais l'hiver à sa porte, non..., porte close

#9 exdeus

exdeus

    Modérateur

  • Moderateurs
  • 351 messages

Posté 15 July 2010 - 10:55

Effectivement ...
je pense pas qu'il y a de différence de compatibilité entre PCBSD et FreeBSD (l'un n'étant qu'une interface graphique out-the-box de l'autre)
Je t'encourage vivement à retenter "l'aventure" (la version 8.1 de FreeBSD sera bientôt de sortie d'ailleurs)

PS : tu peux m'envoyer les fautes en MP ;)

Image IPB

Happiness is only real when shared, Christopher McCandless

Linux n'a pas été crée pour couler Microsoft, ça se sera un regrettable effet secondaire..


#10 slipsale

slipsale

    Petit nouveau

  • Membres
  • Pip
  • 1 messages

Posté 09 October 2010 - 19:46

Image IPB Il faudra peut être redémarrer pour pouvoir utiliser zsh


> rehash

csh & tcsh sont des shells qui ne le font pas automatiquement.

On ne redémarre sa freebsd que pour changer le kernel ! naméo


EDIT:
Suggestions pour compléter ton article.
- Il y a à peu près 22 200 ports actuellement.
- Tu pourrais linker http://www.freshports.org/ qui est parfaitement à jours.
- L'arbre des ports change sans cesse, et pour des raisons de sécurité (failles en upstream) il est conseillé d'avoir un arbre des ports à jours (ie le HEAD du cvs), pour ça on peut utiliser csup ou portsnap
- Tu pourrais citer portaudit
- Pour la gestion des ports, pkg_install (pkg_*) et make sont des outils assez bas niveau, pour faire les choses plus facilement tu pourrais parler de psearch et portmaster.

EDIT 2:
Suggestion 2
- Pour parler de FreeBSD à des linuxiens faut expliquer ce que sont les jails et zfs.

#11 Y295b3R1cw==

Y295b3R1cw==

    Korbenaute

  • Membres
  • PipPip
  • 168 messages

Posté 13 November 2010 - 07:05

merci également pour ce tuto.
surtout l'asduce du disque à taille fixe, j'avais eu un souci à l'époque de mes test.

Image IPB


#12 lordzurp

lordzurp

    Petit nouveau

  • Membres
  • Pip
  • 10 messages

Posté 30 January 2012 - 22:11

Salut @ll :)

avec la sortie de FreeBSD 9, je refais l'install de mon serveur et j'ai fait quelques scripts pour avoir une config propre et (pour le moment) stable.
je vais les ajouter dans le wiki, ca sera + clair qu'ici

je ne pretends pas faire un tuto hyper detaillé, juste partager mes recherches et trouvailles autour de cet OS. c'est relativement commenté, mais il faudra passer par les pages de man et le handbook de FreeBSD pour bien comprendre les options. on n'est pas sur le site du zéro ici ;) (ils ont un très bon tuto sur FreeBSD, bien maintenu à jour)

edit : c'est arrivé ici : http://free.korben.i...dex.php/FreeBSD

#13 KikoololM4573R

KikoololM4573R

    Petit nouveau

  • Membres
  • Pip
  • 99 messages

Posté 02 February 2012 - 12:38

Plop ... à quand la sécurité ?? ^^

Par contre sur le wiki freebsd, le jail des IP d'un même réseau en /24 ... c'est une private joke ?

# jail.sharebox
ifconfig_lagg0_alias0="inet 192.168.1.10 netmask 255.255.255.0"
# jail.desktopX
ifconfig_lagg0_alias1="inet 192.168.1.11 netmask 255.255.255.0"
# jail.subsonic
ifconfig_lagg0_alias2="inet 192.168.1.12 netmask 255.255.255.0"
# jail.seedbox
ifconfig_lagg0_alias3="inet 192.168.1.13 netmask 255.255.255.0"
# jail.test
ifconfig_lagg0_alias4="inet 192.168.1.14 netmask 255.255.255.0"
# jail.virtualbox
ifconfig_lagg0_alias5="inet 192.168.1.15 netmask 255.255.255.0"

Sachant qu'ils sont sur le même réseau, si tu veux les jails, il faut les /31 (255.255.255.254) et non les /24 (255.255.255.0)
Semeur de paranoïa à mes heures perdues. ph34r!!!

#14 lordzurp

lordzurp

    Petit nouveau

  • Membres
  • Pip
  • 10 messages

Posté 03 February 2012 - 17:59

lol bien vu ;)

pour l'instant je m'en fous que les jails soient pas isolées du réseau, c'est plus pour faire une gestion logique des services et pas avoir trop de ports à la fois qui se melangent entre eux

je prévois une jail dédiée pour les services accessible de l'exterieur, mais sur une autre interface réseau avec une autre ip publique (cable powah), donc je verrai la sécurité à ce moment là : )