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

14 posts in this topic

Posted · Report post

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 rolleyes.gif, 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 :

capture1zw.png

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.

capture2jo.png

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

capture3o.png

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

capture4r.png

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é.

capture5p.png

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.

capture6s.png

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

capture7ao.png

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

capture8.png

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 cool.gif

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

capture9s.png

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

Sinon, libre à vous de choisir wink.gif

Commence alors un long processus d'installation sans barre de progression -----> Allez vous chercher une bière laugh.gif

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).

capture11m.png

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.

capture10g.png

Le plus "dur" est derrière nous tongue.gif

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 cool.gif

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
excl.gif Il faudra peut être redémarrer pour pouvoir utiliser zsh Plein de question se posent dans nos cœur de petit geek tongue.gif
  • 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
). 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 :
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 cool.gif
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 :
  1. pkg_info :
    liste et décrit les divers logiciels pré-compilés installés
  2. pkg_version
    : récapitule les versions de tous les logiciels pré-compilés installés et compare les versions installé au dernières disponibles
  3. pkg_add :
    installer un logiciel pré-compilé
  4. pkg_delete
    : supprime un logiciel pré-compilé
L'option
-r
de
pkg_add l
ui 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
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 wink.gif

4 people like this

Share this post


Link to post
Share on other sites

Posted · Report post

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.

Share this post


Link to post
Share on other sites

Posted (edited) · Report post

Bonjour,

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

Edited by sloshy

Share this post


Link to post
Share on other sites

Posted · Report post

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

Share this post


Link to post
Share on other sites

Posted · Report post

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

Share this post


Link to post
Share on other sites

Posted · Report post

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

Share this post


Link to post
Share on other sites

Posted · Report post

Tu avais essayer il y a combien de temps ? et avec quel version ?

La compatibilité a beaucoup progressée

Share this post


Link to post
Share on other sites

Posted · Report post

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à ! )

Share this post


Link to post
Share on other sites

Posted · Report post

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 ;)

Share this post


Link to post
Share on other sites

Posted · Report post

excl.gif 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.

Share this post


Link to post
Share on other sites

Posted · Report post

merci également pour ce tuto.

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

Share this post


Link to post
Share on other sites

Posted · Report post

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.info/index.php/FreeBSD

Share this post


Link to post
Share on other sites

Posted · Report post

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)

Share this post


Link to post
Share on other sites

Posted · Report post

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à : )

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now