New translation

Submitted by:   Marc Fonvieille <marc@blackend.org>
This commit is contained in:
Sebastien Gioria 2002-04-16 21:07:13 +00:00
parent 4ca89233e8
commit c0eaa47073
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=12813
5 changed files with 1135 additions and 0 deletions
fr_FR.ISO8859-1/articles

View file

@ -21,6 +21,8 @@ SUBDIR+= committers-guide
SUBDIR+= zip-drive
SUBDIR+= ddwg
SUBDIR+= euro
SUBDIR+= java-tomcat
SUBDIR+= dialup-firewall
ROOT_SYMLINKS+= new-users

View file

@ -0,0 +1,21 @@
#
# The FreeBSD Documentation Project
# The FreeBSD French Documentation Project
#
# $FreeBSD$
# Original revision: 1.1
#
DOC?= article
FORMATS?= html
INSTALL_COMPRESSED?=gz
INSTALL_ONLY_COMPRESSED?=
SRCS= article.sgml
DOC_PREFIX?= ${.CURDIR}/../../..
.include "${DOC_PREFIX}/share/mk/doc.project.mk"

View file

@ -0,0 +1,416 @@
<!--
The FreeBSD Documentation Project
The FreeBSD French Documentation Project
$FreeBSD$
$Id: article.sgml,v 1.1 2002-04-16 21:07:13 gioria Exp $
Original revision: 1.24
-->
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> %man;
<!ENTITY % urls PUBLIC "-//FreeBSD//ENTITIES Common Document URL Entities//FR"> %urls;
<!ENTITY % abstract PUBLIC "-//FreeBSD//ENTITIES DocBook Abstract Entities//FR"> %abstract;
<!ENTITY % artheader PUBLIC "-//FreeBSD//ENTITIES DocBook ArtHeader Entities//FR"> %artheader;
<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//FR"> %translators;
<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN"> %man;
<!ENTITY rel.current CDATA "3.2">
]>
<article lang="fr">
<articleinfo>
<title>Coupe-feu pour connexion par modem avec FreeBSD</title>
<authorgroup>
<author>
<firstname>Marc</firstname>
<surname>Silver</surname>
<affiliation>
<address><email>marcs@draenor.org</email></address>
</affiliation>
</author>
</authorgroup>
<pubdate>$FreeBSD$</pubdate>
<abstract>
<para>Cet article expose comment mettre en place un coupe-feu
utilisant une connexion PPP par modem avec FreeBSD et IPFW, et
spécifiquement l'utilisation de coupe-feux pour une connexion par
modem avec adresse IP dynamique. Ce document ne couvre pas en
premier lieu la configuration de votre connexion PPP.</para>
&abstract.license;
&abstract.disclaimer;
&trans.a.fonvieille;
</abstract>
</articleinfo>
<sect1 id="preface">
<title>Préface</title>
<para>Coupe-feu pour connexion par modem avec FreeBSD</para>
<para>Ce document couvre le processus requit pour configurer un
coupe-feu avec FreeBSD quand votre fournisseur d'accès vous
assigne une adresse IP dynamique. Alors que de nombreux efforts
ont été fait afin de rendre ce document aussi instructif et
correct que possible, vous êtes encouragés à envoyer vos
commentaires/suggestions à l'adresse
<email>marcs@draenor.org</email>.</para>
</sect1>
<sect1 id="kernel">
<title>Options du noyau</title>
<para>La première chose dont aurez besoin est de recompiler votre
noyau. Si vous avez besoin de plus d'informations sur comment
recompiler un noyau, alors le meilleur endroit pour commencer est
la <ulink URL="../../books/handbook/kernelconfig.html">section de
configuration du noyau du manuel</ulink>. Vous devez rajouter les
options suivantes dans le fichier de configuration de votre
noyau:</para>
<variablelist>
<varlistentry>
<term><literal>options IPFIREWALL</literal></term>
<listitem>
<para>Intègre au noyau le code de filtrage de paquets.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>options IPFIREWALL_VERBOSE</literal></term>
<listitem>
<para>Envoie les paquets tracés au système de traces.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>options
IPFIREWALL_VERBOSE_LIMIT=<replaceable>100</replaceable></literal></term>
<listitem>
<para>Limite le nombre de paquets similaires tracés. Cela
évite que votre fichier de traces soit submergé de nombreuses
entrées répétées. <replaceable>100</replaceable> est une
valeur raisonnable, mais vous pouvez l'ajuster en fonction
de vos besoins.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>options IPDIVERT</literal></term>
<listitem>
<para>Autorise le <emphasis>détournement</emphasis> des
sockets, cela sera explicité plus tard.</para>
</listitem>
</varlistentry>
</variablelist>
<para>Il y a d'autres éléments <emphasis>optionnels</emphasis> que
vous pouvez rajouter dans le noyau pour plus de sécurité. Ils ne
sont pas requis pour avoir un filtrage de paquets qui fonctionne,
mais il se peut que quelques utilisateurs un peu plus paranoïaques
désirent les utiliser.</para>
<variablelist>
<varlistentry>
<term><literal>options TCP_DROP_SYNFIN</literal></term>
<listitem>
<para>Cette option ignore les paquets TCP avec les indicateurs
SYN et FIN activés. Cela empêche certains utilitaires tel
que nmap etc... d'identifier la pile TCP/IP de la machine,
mais cela rompt le support des extensions RFC1644. Cela
<emphasis>n'est pas</emphasis> recommandé si la machine
héberge un serveur web.</para>
</listitem>
</varlistentry>
</variablelist>
<para>Ne pas redémarrer une fois que vous avez recompilé le noyau.
Avec un peu de chance, nous n'aurons besoin de redémarrer qu'une
fois pour achever l'installation du coupe-feu.</para>
</sect1>
<sect1 id="rcconf">
<title>Modifier <filename>/etc/rc.conf</filename> pour charger le
coupe-feu</title>
<para>Nous avons maintenant besoin de quelques modifications de
<filename>/etc/rc.conf</filename> afin de signaler notre
coupe-feu. Ajoutez simplement les lignes suivantes:</para>
<programlisting>firewall_enable="YES"
firewall_script="/etc/firewall/fwrules"
natd_enable="YES"
natd_interface="tun0"
natd_flags="-dynamic"</programlisting>
<para>Pour plus d'informations sur la fonction de ces éléments
jetez un coup d'oeil à <filename>/etc/defaults/rc.conf</filename>
et lisez la page de manuel &man.rc.conf.5;.</para>
</sect1>
<sect1>
<title>Désactiver la traduction d'adresse réseau de PPP</title>
<para>Il se peut que vous utilisiez déjà la traduction d'adresse
réseau (NAT) intégrée à PPP. Si c'est le cas alors vous aurez à
la désactiver, étant donné que nos exemples utilisent &man.natd.8;
pour faire la même chose.</para>
<para>Si vous avez déjà un ensemble d'options pour démarrer
automatiquement PPP, cela doit probablement ressembler à
ceci:</para>
<programlisting>ppp_enable="YES"
ppp_mode="auto"
ppp_nat="YES"
ppp_profile="<replaceable>profile</replaceable>"</programlisting>
<para>Si c'est le cas, retirez la ligne
<literal>ppp_nat="YES"</literal>. Vous aurez aussi besoin de
retirer les lignes <literal>nat enable yes</literal> ou
<literal>alias enable yes</literal> de
<filename>/etc/ppp/ppp.conf</filename>.</para>
</sect1>
<sect1 id="rules">
<title>Le jeu de règles pour le coupe-feu</title>
<para>Nous avons presque terminé. Tout ce qu'il reste à faire est
de définir les règles du coupe-feu et alors nous pourrons
redémarrer, et notre coupe-feu devrait fonctionner. Je me suis rendu
compte que chacun désirera quelque chose de légèrement différent
quand il est question de son ensemble de règles. Ce que j'ai
essayé de faire est d'écrire un ensemble de règles qui conviendra
à la plupart des utilisateurs de modems. Vous pouvez bien
évidement le modifier selon vos besoins en utilisant les règles
suivantes comme fondation pour votre propre ensemble de règles.
Tout d'abord commençons avec les bases du filtrage fermé. Ce que
vous voulez faire est de refuser tout par défaut et ensuite
n'autoriser que les choses dont vous avez vraiment besoin. Les
règles devraient être ordonnées de façon à autoriser tout d'abord
puis ensuite refuser. Le principe est que vous ajoutez les règles
pour vos autorisations, et ensuite tout est refusé. :)</para>
<para>Maintenant, créons le répertoire <filename
class="directory">/etc/firewall</filename>. Aller dans ce
répertoire et éditez le fichier <filename>fwrules</filename> comme
nous l'avons spécifié dans <filename>rc.conf</filename>. S'il
vous plaît, notez que vous pouvez changer le nom de ce fichier
pour celui que vous désirez. Ce guide donne juste un exemple de
nom de fichier.</para>
<para>Maintenant, jettons un coup d'oeil à cet exemple de fichier de
coupe-feu, qui est minutieusement commenté.</para>
<programlisting># Règles du coupe-feu
# Ecrit par Marc Silver (marcs@draenor.org)
# http://draenor.org/ipfw
# Librement distribuable
# Définie la commande du coupe-feu (comme dans /etc/rc.firewall)
# pour une référence aisée. Facilite la lecture.
fwcmd="/sbin/ipfw"
# Vide les règles actuelles avant rechargement.
$fwcmd -f flush
# Détourne tous les paquets à travers l'interface tunnel
$fwcmd add divert natd all from any to any via tun0
# Autorise toutes les données de ma carte réseau et de l'hôte local.
# Soyez sûr de changer votre carte réseau (la mienne était fxp0) avant
# de redémarrer. :)
$fwcmd add allow ip from any to any via lo0
$fwcmd add allow ip from any to any via fxp0
# Autorise toute les connexions dont je suis l'initiateur.
$fwcmd add allow tcp from any to any out xmit tun0 setup
# Une fois les connexions établies, les autorise à rester ouvertes.
$fwcmd add allow tcp from any to any via tun0 established
# Tous le monde sur internet est autorisé à se connecter aux services
# suivants sur la machine. Cet exemple autorise spécifiquement les
# connexions à ssh et apache.
$fwcmd add allow tcp from any to any 80 setup
$fwcmd add allow tcp from any to any 22 setup
# Ceci envoie un RESET à tous les paquets ident.
$fwcmd add reset log tcp from any to any 113 in recv tun0
# Autorise les requettes DNS sortantes SEULEMENT vers les serveurs
# spécifiés.
$fwcmd add allow udp from any to <replaceable>x.x.x.x</replaceable> 53 out xmit tun0
# Autorise leur retour avec les réponses... :)
$fwcmd add allow udp from <replaceable>x.x.x.x</replaceable> 53 to any in recv tun0
# Autorise l'ICMP (pour permettre à ping et traceroute de fonctionner).
# Vous pouvez peut-être désirer désactiver ceci, mais je pense que cela
# réponds à mes besoins de les conserver ainsi.
$fwcmd add allow icmp from any to any
# Bloque tout le reste.
$fwcmd add deny log ip from any to any</programlisting>
<para>Vous disposez désormais d'un coupe-feu tout à fait fonctionnel
qui autorisera les connexions sur les ports 80 et 22 et tracera
tout autre tentative de connexion. Maintenant, vous devriez être
en mesure de redémarrer sans risques et votre coupe-feu devrait se
lancer sans problèmes. Si vous trouvez une quelconque erreur ou
expérimentez des problèmes, ou que vous avez des suggestions pour
améliorer ce document, s'il vous plaît écrivez-moi.</para>
</sect1>
<sect1>
<title>Questions</title>
<qandaset>
<qandaentry>
<question>
<para>Pourquoi utilisez-vous &man.natd.8; et &man.ipfw.8;
alors que vous pourriez utiliser les filtres intégrés à
&man.ppp.8;?
</para>
</question>
<answer>
<para>Je serais honnête et dirais qu'il n'y a aucune raison
définitive pour que j'utilise <command>ipfw</command> et
<command>natd</command> plutôt que les filtres intégrés à
<command>ppp</command>. D'après les discussions que j'ai eu
avec de nombreuses personnes le consensus semble être
qu'<command>ipfw</command> est certainement plus
puissant et configurable que les filtres
<command>ppp</command>, mais ce qu'il apporte dans la
fonctionnalité il le perd en facilité d'utilisation. Une
des raisons de mon utilisation est que je préfère que le
filtrage de paquets soit fait au niveau du noyau plutôt que
par un programme utilisateur.</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>J'obtiens des messages du type <errorname>limit 100
reached on entry 2800</errorname> et après cela je ne vois
plus jamais de refus dans mes traces. Mon coupe-feu
fonctionne-t-il toujours?
</para>
</question>
<answer>
<para>Cela signifie simplement que le nombre maximal de
traces pour la règle a été atteint. La règle fonctionne
toujours, mais elle n'enregistrera plus de trace jusqu'au
moment ou vous réinitialiserez les compteurs de traces.
Vous pouvez réinitialiser les compteurs de traces avec la
commande <command>ipfw resetlog</command>. Alternativement,
vous pouvez augmenter la limite de trace dans la
configuration de votre noyau avec l'option
<option>IPFIREWALL_VERBOSE_LIMIT</option> comme décrit
précédemment. Vous pouvez également changer cette limite
(sans recompiler votre noyau ou avoir à redémarrer) en
utilisant la valeur &man.sysctl.8;
net.inet.ip.fw.verbose_limit.</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>Si j'utilise des adresses privées en interne, comme
dans la plage 192.168.0.0, pourrais-je ajouter une commande
comme <literal>$fwcmd add deny all from any to
192.168.0.0:255.255.0.0 via tun0</literal> aux règles du
coupe-feu pour prévenir les tentatives externes de
connexions vers les machines internes?</para>
</question>
<answer>
<para>Une réponse simple est non. La raison de cela est que
<command>natd</command> effectue la traduction d'adresse
pour <emphasis>tout</emphasis> ce qui sera détourné à
travers le périphérique <devicename>tun0</devicename>. En
ce qui concerne les paquets entrant, ces derniers ne
parleront qu'à l'adresse IP dynamiquement assignée et
<emphasis>non pas</emphasis> au réseau interne. Notez que
cependant vous pouvez ajouter une règle comme
<literal>$fwcmd add deny all from 192.168.0.4:255.255.0.0 to
any via tun0</literal> qui limiterait un hôte de votre réseau
interne de sortir via le coupe-feu.</para>
</answer>
</qandaentry>
<qandaentry>
<question>
<para>Il doit y avoir quelque chose d'erroné. J'ai suivi vos
instructions à la lettre et maintenant tout est bloqué.</para>
</question>
<answer>
<para>Ce guide suppose que vous utilisez
<emphasis>userland-ppp</emphasis> aussi le jeu de règle
donné intervient sur l'interface
<devicename>tun0</devicename>, qui correspond à la première
connexion établie avec &man.ppp.8; (a.k.a.
<emphasis>user-ppp</emphasis>). Les connexions
supplémentaires utiliseront <devicename>tun1</devicename>,
<devicename>tun2</devicename> et ainsi de suite.</para>
<para>Vous devriez également noter que &man.pppd.8; utilise
à la place l'interface <devicename>ppp0</devicename>, donc
si vous établissez une connexion avec &man.pppd.8; vous
devez remplacer <devicename>tun0</devicename> par
<devicename>ppp0</devicename>. Une façon rapide d'éditer
les règles du coupe-feu pour refléter ce changement est
présentée ci-dessous. Le jeu de règles original est
sauvegardé sous <filename>fwrules_tun0</filename>.</para>
<screen> &prompt.user; <userinput>cd /etc/firewall</userinput>
/etc/firewall&prompt.user; <userinput>su</userinput>
<prompt>Password:</prompt>
/etc/firewall&prompt.root; <userinput>mv fwrules fwrules_tun0</userinput>
/etc/firewall&prompt.root; <userinput>cat fwrules_tun0 | sed s/tun0/ppp0/g > fwrules</userinput>
</screen>
<para>Pour savoir si vous utilisez actuellement &man.ppp.8; ou
&man.pppd.8; vous pouvez examiner la sortie
d'&man.ifconfig.8; une fois que la connexion est établie.
E.g., pour une connexion faite par &man.pppd.8; vous verriez
quelque chose comme ceci (on ne montre que les lignes
importantes):</para>
<screen> &prompt.user; <userinput>ifconfig</userinput>
<emphasis>(skipped...)</emphasis>
ppp0: flags=<replaceable>8051&lt;UP,POINTOPOINT,RUNNING,MULTICAST&gt; mtu 1524</replaceable>
inet <replaceable>xxx.xxx.xxx.xxx</replaceable> --&gt; <replaceable>xxx.xxx.xxx.xxx</replaceable> netmask <replaceable>0xff000000</replaceable>
<emphasis>(skipped...)</emphasis>
</screen>
<para>D'autre part, pour une connexion faite avec &man.ppp.8;
(<emphasis>user-ppp</emphasis>) vous devriez voir quelque
chose de similaire à:</para>
<screen> &prompt.user; <userinput>ifconfig</userinput>
<emphasis>(skipped...)</emphasis>
ppp0: flags=<replaceable>8010&lt;POINTOPOINT,MULTICAST&gt; mtu 1500</replaceable>
<emphasis>(skipped...)</emphasis>
tun0: flags=<replaceable>8051&lt;UP,POINTOPOINT,RUNNING,MULTICAST&gt; mtu 1524</replaceable>
<emphasis>(IPv6 stuff skipped...)</emphasis>
inet <replaceable>xxx.xxx.xxx.xxx</replaceable> --&gt; <replaceable>xxx.xxx.xxx.xxx</replaceable> netmask <replaceable>0xffffff00</replaceable>
Opened by PID <replaceable>xxxxx</replaceable>
<emphasis>(skipped...)</emphasis></screen>
</answer>
</qandaentry>
</qandaset>
</sect1>
</article>

View file

@ -0,0 +1,24 @@
#
# The FreeBSD Documentation Project
# The FreeBSD French Documentation Project
#
# $FreeBSD$
# Original revision: 1.1
#
DOC?= article
FORMATS?= html
INSTALL_COMPRESSED?=gz
INSTALL_ONLY_COMPRESSED?=
SRCS= article.sgml
DOC_PREFIX?= ${.CURDIR}/../../..
.include "${DOC_PREFIX}/share/mk/doc.project.mk"

View file

@ -0,0 +1,672 @@
<!--
The FreeBSD Documentation Project
The FreeBSD French Documentation Project
$FreeBSD$
$Id: article.sgml,v 1.1 2002-04-16 21:07:13 gioria Exp $
Original revision: 1.1
-->
<!-- Copyright (c) 2002, Hiten Pandya, Victoria Chan, All rights reserved.
Redistribution and use in source (SGML DocBook) and 'compiled' forms
(SGML, HTML, PDF, PostScript, RTF and so forth) with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code (SGML DocBook) must retain the above
copyright notice, this list of conditions and the following
disclaimer as the first lines of this file unmodified.
2. Redistributions in compiled form (transformed to other DTDs,
converted to PDF, PostScript, RTF and other formats) must reproduce
the above copyright notice, this list of conditions and the
following disclaimer in the documentation and/or other materials
provided with the distribution.
THIS DOCUMENTATION IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS AND CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS DOCUMENTATION, EVEN IF ADVISED
OF THE POSSIBILITY OF SUCH DAMAGE.
-->
<!--
Written by Victoria Chan <vkchan@kendryl.net>. The original document can
be found at: http://www.kendryl.net/jdk13-1.html.
-->
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
<!ENTITY % urls PUBLIC "-//FreeBSD//ENTITIES Common Document URL Entities//FR"> %urls;
<!ENTITY % abstract PUBLIC "-//FreeBSD//ENTITIES DocBook Abstract Entities//FR"> %abstract;
<!ENTITY % artheader PUBLIC "-//FreeBSD//ENTITIES DocBook ArtHeader Entities//FR"> %artheader;
<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//FR"> %translators;
<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN">
<!--
URL Entities. These are in place, to allow wrapping long URLs to the 80th
column.
-->
<!ENTITY wwwurl "http://www.FreeBSD.org">
<!ENTITY ftpurl "ftp://ftp.FreeBSD.org">
<!ENTITY sunurl "http://www.sun.com">
<!ENTITY tomcaturl "http://jakarta.apache.org/tomcat">
<!-- The Download URL is too long! :-) -->
<!ENTITY tomcat403 "http://jakarta.apache.org/builds/jakarta-tomcat-4.0/release/v4.0.3/bin/"> %man;
<!ENTITY rel.current CDATA "3.2">
]>
<article lang="fr">
<!-- START of Article Metadata -->
<articleinfo>
<title>Java et Jakarta Tomcat sous FreeBSD</title>
<authorgroup>
<author>
<firstname>Victoria</firstname>
<surname>Chan</surname>
<affiliation>
<address><email>vkchan@kendryl.net</email></address>
</affiliation>
</author>
<author>
<firstname>Hiten</firstname>
<surname>Pandya</surname>
<affiliation>
<address><email>hiten@uk.FreeBSD.org</email></address>
</affiliation>
</author>
</authorgroup>
<copyright>
<year>2002</year>
<holder role="mailto:vkchan@kendryl.net">Victoria Chan</holder>
<holder role="mailto:hiten@uk.FreeBSD.org">Hiten Pandya</holder>
</copyright>
<pubdate>$FreeBSD$</pubdate>
<abstract>
<para>Ce document est pr&eacute;sent&eacute; dans l'espoir de rendre plus
facile, pour quiconque en aurait besoin, la mise en place de
Java et son fonctionnement sous FreeBSD, avec le moins d'ennuis
possibles. Pr&eacute;parez vous &agrave; passer une journ&eacute;e enti&egrave;re sur un tel
projet &eacute;tant donn&eacute; que cela prendra du temps &agrave; assembler tous
les &eacute;l&eacute;ments et &agrave; les compiler individuellement, puis comme un
tout. On montrera aussi comment installer les c&eacute;l&egrave;bres Servlet
Jakarta Tomcat et JSP container sur le syst&egrave;me d'exploitation
FreeBSD.</para>
&abstract.license;
&abstract.disclaimer;
&trans.a.fonvieille;
</abstract>
</articleinfo>
<!-- END of Article Metadata-->
<sect1>
<title>Introduction</title>
<para>Le langage de programmation Java naquit le <literal>23 Mai
1995</literal>. On s'attendrait qu'apr&egrave;s tout ce temps, les
applications Java soient faciles &agrave; installer et pr&ecirc;tes &agrave;
fonctionner &agrave; partir d'un simple logiciel pr&eacute;-compil&eacute; ou port&eacute;
sur FreeBSD, de ce fait le rendant accessible pour les
<quote>masses</quote>. Ce n'est pas le cas, malheureusement,
car la distribution de Java est contr&ocirc;l&eacute;e tr&egrave;s &eacute;troitement par
Sun Microsystems, qui en interdit la redistribution. Toutes les
Applets Java doivent &ecirc;tre compil&eacute;es &agrave; partir du code source,
ainsi que le Kit de D&eacute;veloppement Java de Sun Microsystems.
Tous ces ingr&eacute;dients doivent &ecirc;tre m&eacute;lang&eacute;s ensemble dans le bon
ordre, assembl&eacute;s, et compil&eacute;s par l'utilisateur final. Avec
une telle philosophie de distribution, il est de mon opinion que
Java sera toujours l'apanage uniquement de d&eacute;veloppeurs ou de
hackers. J'ai certainement trouv&eacute; cela vrai quand j'ai d&ucirc;
servir quelques pages <filename>.jsp</filename> pour un client
sur mon serveur web, et que j'ai eu besoin de faire fonctionner
<filename role="package">www/jakarta-tomcat</filename> avec
<filename role="package">www/apache13</filename> sur mon syst&egrave;me
FreeBSD.</para>
<para>L'installation de Tomcat est tout ce qui a de plus simple,
mais la difficult&eacute; je l'ai eu quand j'ai essay&eacute; de faire
fonctionner le Kit de D&eacute;veloppement Java sur FreeBSD 4.x, comme
Sun Microsystems fournit seulement des binaires pour Linux,
Solaris et Windows NT. Cela signifie que j'ai d&ucirc; compiler mon
propre JDK pour FreeBSD. J'ai commenc&eacute; par chercher de la
documentation sur l'Internet. J'ai rapidement constat&eacute; qu'il y
avait plus de code source et de patches que n&eacute;cessaire, mais
tr&egrave;s peu de documentation sur qu'il faut faire apr&egrave;s avoir tout
r&eacute;cup&eacute;r&eacute;.</para>
<para>Dans cet article, vous trouverez comment installer le Kit de
D&eacute;veloppement Java pour FreeBSD, et comment le faire fonctionner
avec Tomcat. Une section <xref linkend="ref"> est &eacute;galement
fournie pour davantage de lecture.</para>
</sect1>
<sect1>
<title>L'environnement Java</title>
<para>Assurez-vous que vous disposez d'un catalogue des
logiciels port&eacute;s r&eacute;cents car <command>make</command> &eacute;chouera
s'il essaye de compiler des sources plus anciennes. Vous
pouvez mettre &agrave; jour l'int&eacute;gralit&eacute; du catalogue de logiciels
port&eacute;s en utilisant <application>CVSup</application>. Voir
<ulink url="&wwwurl;/doc/en_US.ISO8859-1/books/handbook/cvsup.html"></ulink>
pour plus d'information. Vous pouvez aussi t&eacute;l&eacute;charger
manuellement les logiciels port&eacute;s dont vous avez besoin depuis
<ulink url="&ftpurl;/pub/FreeBSD/branches/-current/ports/"></ulink>.</para>
<note>
<para>Vous aurez besoin de l'<literal>Emulation Linux</literal>
(Linux-ABI) activ&eacute;e dans la configuration de votre
noyau. Ajoutez simplement l'option suivante &agrave; votre
fichier de configuration du noyau et recompilez-le. Les
instructions sur la compilation d'un noyau peuvent &ecirc;tre
trouv&eacute;es dans le manuel de FreeBSD.</para>
<programlisting>options COMPAT_LINUX</programlisting>
<para>L'option ci-dessus ajoutera le support Linux-ABI &agrave; votre noyau, une
fois ce dernier recompil&eacute;.</para>
</note>
<para>La liste des d&eacute;pendances qui n&eacute;cessitent d'&ecirc;tre install&eacute;es
manuellement dans un certain ordre est donn&eacute;e ci-dessous. Les
d&eacute;pendances qui sont automatiquement t&eacute;l&eacute;charg&eacute;es ne sont pas
&eacute;num&eacute;r&eacute;es ici.</para>
<itemizedlist>
<listitem>
<para><filename role="package">java/jdk13</filename></para>
</listitem>
<listitem>
<para><filename role="package">java/linux-jdk13</filename></para>
</listitem>
<listitem>
<para><filename role="package">archivers/gtar</filename></para>
</listitem>
<listitem>
<para><filename role="package">archivers/bzip2</filename></para>
</listitem>
<listitem>
<para><filename role="package">archivers/unzip</filename></para>
</listitem>
<listitem>
<para><filename role="package">archivers/zip</filename></para>
</listitem>
</itemizedlist>
<para>Vous aurez besoin r&eacute;cup&eacute;rer ce qui suit:</para>
<procedure>
<step>
<para>T&eacute;l&eacute;chargez <filename>bsd-jdk131-patches-5.tar.gz</filename>
&agrave; partir de
<ulink url="http://www.eyesbeyond.com/freebsddom/java/jdk13.html"></ulink>
et placez-le sous <filename>/usr/ports/distfiles</filename>.</para>
</step>
<step>
<para>Ensuite lancez votre navigateur internet et aller sur
<ulink url="http://java.sun.com/j2se/1.3/download-linux.html"></ulink>
et trouvez SDK downloads. Cliquez sur le bouton
<quote>continue</quote> en-dessous de <quote>GNUZIP Tar Shell
Script</quote>. Soyez s&ucirc;r d'avoir lu chaque mot de la page de
licence avant de cliquer sur le bouton <quote>Accept</quote>!
Cela vous emm&egrave;nera sur une page au titre de <quote>Download
Java(TM) 2 SDK, Standard Edition 1.3.1_02</quote>. Descendez
vers le bas de la page et cliquer sur le bouton <quote>HTTP
download</quote>. Quand la bo&icirc;te de dialogue <quote>File
Download</quote> s'affiche, soyez s&ucirc;r de cliquer sur le bouton
<quote>Open</quote> plut&ocirc;t que le bouton <quote>Save</quote>.
Une nouvelle bo&icirc;te <quote>File Download</quote> s'affichera -
cette fois-ci choisissez <quote>Save</quote> et vous serez en
mesure de sauvegarder le fichier
j2sdk-1_3_1_02-linux-i386.bin. Placez le dans
/usr/ports/distfiles.</para>
</step>
<step>
<para>Aller sur <ulink
url="http://www.sun.com/software/java2/download.html"></ulink>.
Dans le tableau sous <literal>Produce Description</literal>,
appel&eacute; <literal>Java 2 SDK 1.3.1</literal>, aller sur la
cellule de droite et cliquer <quote>download</quote>. Cela
vous am&egrave;nera sur la page <quote>Sign On</quote> o&ugrave; vous devez
vous identifier si vous avez d&eacute;j&agrave; un compte, ou vous
enregistrer pour acc&eacute;der. Une fois identifi&eacute;, vous arriverez
&agrave; la page <quote>Legal</quote>, o&ugrave; vous devez accepter la
licence; descendez (en lisant la licence) et cliquer sur le
bouton <quote>Continue</quote>. La page suivante est la page
<quote>Receipt</quote>. C'est l&agrave; que vous sauverez le
fichier demand&eacute;. Vous serez en mesure de choisir l'endroit le
plus proche de vous. Cliquer sur <quote>Java 2 SDK, Standard
Edition, version 1.3.1</quote>. Sauvez le fichier
<filename>j2sdk-1_3_1-src.tar.gz</filename> dans le r&eacute;pertoire
<filename>/usr/ports/distfiles/</filename>.</para>
</step>
</procedure>
<note>
<para>Il est tr&egrave;s important que vous lisiez l'Accord de
Licence qui a &eacute;t&eacute; &eacute;mis par Sun Microsystems Corp. Il y a
plusieurs restrictions sur l'utilisation de Java, que vous devez
respecter. Le projet FreeBSD ne prends aucune responsabilit&eacute;s
pour vos actes.</para>
<para>N'effacer aucun des fichiers t&eacute;l&eacute;charg&eacute;s, car ils seront
n&eacute;cessaires pour compiler certains logiciels natifs port&eacute;s pour
FreeBSD, ce dont on parlera plus tard.</para>
</note>
<para>Maintenant que vous avez rassembl&eacute; tous les fichiers source et
logiciels port&eacute;s, vous devez commencer la compilation par
<filename role="package">java/linux-jdk13</filename>:</para>
<screen>&prompt.root; cd /usr/ports/archivers/gtar; make all install clean</screen>
<screen>&prompt.root; cd /usr/ports/archivers/unzip; make all install clean</screen>
<screen>&prompt.root; cd /usr/ports/archivers/zip; make all install clean</screen>
<para>Et finalement:</para>
<screen>&prompt.root; cd /usr/ports/java/linux-jdk13</screen>
<screen>&prompt.root; make all install clean</screen>
<para>Une fois que vous avez compil&eacute;
<filename role="package">java/linux-jdk13</filename>, vous devez
le tester, afin d'&ecirc;tre s&ucirc;r qu'il fonctionne comme pr&eacute;vu. Pour
cela faire:</para>
<screen>&prompt.root; cd /usr/local/linux-jdk1.3.1/bin</screen>
<screen>&prompt.root; ./java-version</screen>
<para>La sortie de la commande ci-dessus devrait &ecirc;tre comme suit:</para>
<programlisting>java version "1.3.1_02"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1_02-b02)
Classic VM (build 1.3.1_02-b02, green threads, nojit)</programlisting>
<para>Si vous n'avez pas obtenu la r&eacute;ponse correcte, vous devez faire:</para>
<screen>&prompt.root; cd /usr/ports/java/linux-jdk13</screen>
<screen>&prompt.root; make deinstall</screen>
<para>Et v&eacute;rifiez que <filename>/usr/local</filename> ne contient
pas un r&eacute;pertoire <filename>linux-jdk1.3.1</filename> . Si vous
trouvez une partie de ce r&eacute;pertoire, effacez-le. Relancer
la <literal>compilation et l'installation</literal> pour <filename
role="package">java/linux-jdk13</filename>.</para>
<para>Pour fabriquer le <literal>Kit de D&eacute;veloppement Java
1.3.1</literal> natif pour FreeBSD, faire ce qui suit:</para>
<procedure>
<step>
<para>Soyez s&ucirc;r d'avoir le fichier
<filename>j2sdk-1_3_1-src.tar.gz</filename> dans votre
<filename>/usr/ports/distfiles</filename>. Ce fichier est
requit pour appliquer l'<quote>ensemble de patches</quote>
abord&eacute; ci-dessous.</para>
</step>
<step>
<para>Vous aurez besoin de t&eacute;l&eacute;charger l'<quote>l'ensemble de
patches</quote> pour compiler le port. Le fichier correspondant
est appel&eacute; <filename>bsd-jdk131-patches-6.tar.gz</filename>.
Vous devrez &eacute;galement v&eacute;rifier l'int&eacute;grit&eacute; des fichiers en
comparant avec les sommes de contr&ocirc;le <acronym>MD5</acronym>
suivantes. L'ensemble de patches est appel&eacute; <literal>Patch-set
6</literal>.</para>
<programlisting>
MD5 (bsd-jdk131-patches-6.tar.gz) = 9cade10b81d6034fdd2176bef32bdbf9
</programlisting>
<para>L'ensemble de patches est disponible depuis:
<ulink url="http://www.eyesbeyond.com/freebsddom/java/index.html"></ulink></para>
</step>
</procedure>
<para>La derni&egrave;re proc&eacute;dure discut&eacute;e pr&eacute;c&eacute;demment (compiler le
<literal>jdk</literal>) prendra du temps.</para>
</sect1>
<sect1>
<title>Configuration de Jakarta Tomcat</title>
<sect2>
<title>Vue d'ensemble</title>
<para>Java devient de plus en plus populaire pour
l'&eacute;laboration de solutions diverses et adaptables
ind&eacute;pendantes de la plateforme. Un des besoins croissant de
Java est le march&eacute; de l'<literal>ASP (Application Service
Provider)</literal>. Java est la solution parfaite pour ce
type de march&eacute;s avec les avantages suivants:</para>
<itemizedlist>
<listitem>
<para>Ind&eacute;pendance de la plateforme</para>
</listitem>
<listitem>
<para>Engagement &agrave; &eacute;chelle industrielle</para>
</listitem>
<listitem>
<para>Adaptabilit&eacute;</para>
</listitem>
<listitem>
<para>Performance fiable</para>
</listitem>
<listitem>
<para>Distribu&eacute;, Multi-thread&eacute;, S&eacute;curis&eacute; etc...</para>
</listitem>
</itemizedlist>
<para>Une technologie tr&egrave;s importante et en pleine croissance qui
a &eacute;merg&eacute;e de Java est <acronym>JSP</acronym> (JavaServer Pages).</para>
<para><acronym>JSP</acronym> (JavaServer Pages) est une
technologie c&ocirc;t&eacute; serveur introduite par <literal>Sun Microsystems
Corp.</literal>, qui fournie une mani&egrave;re simple de g&eacute;n&eacute;rer du
contenu dynamique &agrave; partir de pages <acronym>HTML</acronym>. Elle
utilise les balises <acronym>XML</acronym> avec des scriptlets
Java pour encapsuler et s&eacute;parer la logique de la conception et
de l'affichage. Quand une page <acronym>JSP</acronym> est
invoqu&eacute;e, elle est dynamiquement convertie en Servlet et trait&eacute;e
par le serveur pour produire la page r&eacute;sultante
<acronym>HTML/XML</acronym> pour le client. Quand
<acronym>JSP</acronym> est utilis&eacute; de pair avec JavaBeans, il
est alors possible de produire des applications diverses et
adaptables, qui peuvent &ecirc;tre combin&eacute;es avec la puissance et la
performance de FreeBSD.</para>
<para><application>Tomcat</application> est une impl&eacute;mentation
open-source des Servlets Java et des technologies de pages
JavaServer, d&eacute;velopp&eacute;e dans le cadre du projet Jakarta &agrave;
l'Apache Software Foundation. Tomcat met en oeuvre une nouvelle
structure Servlet (appel&eacute;e Catalina) qui est bas&eacute;e sur une toute
nouvelle architecture avec les sp&eacute;cifications Servlet 2.3 et
<acronym>JSP</acronym> 1.2. Il inclut de nombreuses
caract&eacute;ristiques suppl&eacute;mentaires qui font de lui une plateforme
utile pour le d&eacute;veloppement et le d&eacute;ploiement d'applications et
de services web. En bref, Tomcat est un serveur d'application
&eacute;crit &agrave; 100% en pur Java.</para>
<para>Tomcat est utilis&eacute; dans de nombreuses situations, et n'est
pas limit&eacute; aux Serveurs d'Application. Il fournit une plateforme
ouverte pour d&eacute;velopper des services extensibles de gestion web et
du contenue. Quand Tomcat est utilis&eacute; avec un syst&egrave;me FreeBSD
optimis&eacute;, il peut fournir des services hautement fiables et
rapides.</para>
<para>Veuillez vous r&eacute;f&eacute;rer &agrave; la section <xref linkend="ref"> pour
plus d'informations sur Tomcat et <acronym>JSP</acronym>. La
section suivante d&eacute;montrera comment construire
l'<quote>environnement Tomcat</quote> pour FreeBSD. La version
de Tomcat utilis&eacute;e dans ce guide est la
<literal>4.0.3</literal>. Cette version contient la correction
de bogues majeurs, et les mises &agrave; jour/changements
suivants:</para>
<itemizedlist>
<listitem>
<para><literal>Sp&eacute;cification JSP 1.2</literal></para>
</listitem>
<listitem>
<para><literal>Sp&eacute;cification Java Servlet 2.3</literal></para>
</listitem>
<listitem>
<para><literal>Compatibilit&eacute; compl&egrave;te avec Java Servlet 2.2
et la sp&eacute;cification JSP 1.1</literal></para>
</listitem>
</itemizedlist>
</sect2>
<sect2>
<title>L'environnement Tomcat pour FreeBSD</title>
<para>Il est tr&egrave;s simple d'installer Tomcat sur une machine
FreeBSD, apr&egrave;s l'installation de l'environnement Java
n&eacute;cessaire, ce que nous avons fait pr&eacute;c&eacute;demment.</para>
<para>Afin d'installer Tomcat sur FreeBSD, suivez la proc&eacute;dure
ci-dessous:</para>
<procedure>
<step>
<para>Suivez les &eacute;tapes pr&eacute;c&eacute;dentes pour installer
l'environnement Java n&eacute;cessaire.</para>
</step>
<step>
<para>Configurez une variable d'environnement
<envar>JAVA_HOME</envar> qui pointe sur le r&eacute;pertoire o&ugrave;
vous avez install&eacute; le JDK (l'exemple suivant pointe sur une
version native du JDK):</para>
<screen>&prompt.root; setenv JAVA_HOME /usr/local/jdk1.3.1 (pour l'interpr&eacute;teur C Shells)</screen>
<screen>&prompt.root; export JAVA_HOME=/usr/local/jdk1.3.1 (pour l'interpr&eacute;teur Bourne Shells)</screen>
<para>Cette variable d'environnement devrait &ecirc;tre rendue
permanente en l'ajoutant soit dans
<filename>.profile</filename> soit
<filename>.cshrc</filename>, en fonction de l'interpr&eacute;teur
de commandes que vous utilisez. Cette variable est cruciale
pour le fonctionnement de tous programmes Java, incluant
Tomcat lui-m&ecirc;me.</para>
</step>
<step>
<para>T&eacute;l&eacute;chargez la <quote>distribution binaire</quote> de Tomcat sur le site de Jakarta, qui est situ&eacute; &agrave;
<literal><ulink url="&tomcat403"></ulink></literal>. Le fichier &agrave;
t&eacute;l&eacute;charger est appel&eacute;
<filename>jakarta-tomcat-4.0.3.tar.gz</filename>.</para>
</step>
<step>
<para>Le fichier compress&eacute;e et archiv&eacute; que nous avons
t&eacute;l&eacute;charg&eacute; &agrave; l'&eacute;tape pr&eacute;c&eacute;dente utilise des
<quote>Extensions GNU</quote> sp&eacute;ciales. Afin de le
d&eacute;-archiver et le d&eacute;compresser, nous aurons besoin
d'installer <literal>GNU Tar (<filename
role="package">archivers/gtar</filename>)</literal>, en
faisant ce qui suit:</para>
<screen>&prompt.root; cd /usr/ports/archivers &amp; &amp; make all install clean</screen>
</step>
<step>
<para>D&eacute;-archivez et d&eacute;compressez le fichier
<filename>jakarta-tomcat-4.0.3.tar.gz</filename> dans le r&eacute;pertoire
<filename>/usr/local</filename> et renommez le r&eacute;pertoire en
<filename>tomcat-4.0</filename> pour une r&eacute;f&eacute;rence
ais&eacute;e:</para>
<screen>&prompt.root; cd /usr/local</screen>
<screen>&prompt.root; gtar zxvf jakarta-tomcat-4.0.3.tar.gz</screen>
<screen>&prompt.root; ls jakarta*</screen>
<screen>jakarta-tomcat-4.0.3</screen>
<screen>&prompt.root; mv jakarta-tomcat-4.0.3 tomcat-4.0</screen>
<para>Vous pouvez effacer
<filename>jakarta-tomcat-4.0.3.tar.gz</filename> si vous le
d&eacute;sirez.</para>
</step>
</procedure>
<note>
<para><literal>L'installation en utilisant le code source est en
dehors du cadre de ce document. Veuillez vous r&eacute;f&eacute;rer aux
fichiers suivants pour un compl&eacute;ment d'information sur la
compilation &agrave; partir des sources, disponibles dans votre
r&eacute;pertoire Tomcat:</literal></para>
<itemizedlist>
<listitem>
<para><filename>/usr/local/tomcat-4.0/README.txt</filename></para>
</listitem>
<listitem>
<para><filename>/usr/local/tomcat-4.0/BUILDING.txt</filename></para>
</listitem>
</itemizedlist>
</note>
</sect2>
<sect2>
<title>Utiliser Tomcat - Les bases</title>
<para>Maintenant que nous avons termin&eacute; l'installation de
Tomcat. L'exemple suivant montre comment d&eacute;marrer le serveur
Tomcat:</para>
<screen>&prompt.root; cd /usr/local/tomcat-4.0/bin</screen>
<screen>&prompt.root; ./startup.sh (pour le lancement de Tomcat)</screen>
<para>Vous pouvez v&eacute;rifier si votre serveur Tomcat a d&eacute;marr&eacute; en
visitant l'URL suivante:
<literal>http://127.0.0.1:8080</literal> ou
<literal>http://localhost:8080</literal>. Pour arr&ecirc;ter
Tomcat:</para>
<screen>&prompt.root; cd /usr/local/tomcat-4.0/bin</screen>
<screen>&prompt.root; ./shutdown.sh</screen> <para>(pour l'arr&ecirc;t de Tomcat)</para>
<para>Les fichiers <filename>startup.sh</filename> et
<filename>shutdown.sh</filename> sont des interfaces &agrave; la
proc&eacute;dure ex&eacute;cutable <filename>catalina.sh</filename> se
trouvant dans le m&ecirc;me r&eacute;pertoire; Si vous d&eacute;sirez lancer
Tomcat automatiquement au d&eacute;marrage faites:</para>
<screen>&prompt.root; cd /usr/local/etc/rc.d</screen>
<screen>&prompt.root; ln -s /usr/local/tomcat-4.0/bin/catalina.sh</screen>
<para>Editez le fichier <filename>catalina.sh</filename>, et
ajoutez ce qui suit au d&eacute;but du fichier (apr&egrave;s la bo&icirc;te de
commentaires):</para>
<programlisting>JAVA_HOME=/usr/local/jdk1.3.1</programlisting>
<para>Si votre port <literal>8080</literal> est utilis&eacute; par un
autre service, vous pouvez le changer en &eacute;ditant le fichier
<filename>server.xml</filename> dans votre r&eacute;pertoire
<filename>conf/</filename> de Tomcat. Dans l'exemple
ci-dessous, le port sera chang&eacute; pour 80, en supposant qu'il
n'y a aucun service tournant sur ce port.</para>
<screen>&prompt.root; cd /usr/local/tomcat-4.0/conf</screen>
<screen>&prompt.root; fgrep -n 8080 server.xml</screen>
<screen>~65: By default, a non-SSL HTTP/1.1 Connector is established on port 8080.</screen>
<screen>~89: port="8080" minProcessors="5" maxProcessors="75"</screen>
<screen>&prompt.root; cat server.xml | sed s/8080/80/ > server.xml</screen>
</sect2>
</sect1>
<sect1 id="ref" xreflabel="r&eacute;f&eacute;rence">
<title>R&eacute;f&eacute;rence</title>
<informaltable>
<tgroup cols="1">
<tbody>
<row>
<entry>
<ulink url="&wwwurl;/java">Le project Java de FreeBSD</ulink>
</entry>
</row>
<row>
<entry>
<ulink url="http://java.sun.com">JavaSoft. Home of Java</ulink>
</entry>
</row>
<row>
<entry>
<ulink
url="&sunurl;/software/communitysource/java2/licensing.html">The
Sun Community Source Licensing for Java</ulink>
</entry>
</row>
<row>
<entry>
<ulink url="&tomcaturl">La page Jakarta Tomcat</ulink>
</entry>
</row>
<row>
<entry>
<ulink
url="http://java.sun.com/docs/index.html">Documentation
J2SE</ulink>
</entry>
</row>
<row>
<entry>
<ulink url="&wwwurl;/ports/java.html">La section Java
des logiciels port&eacute;s sous FreeBSD</ulink>
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<sect2>
<title>Conclusion</title>
<para>Finalement, nous sommes &agrave; la fin de l'article et nous
disposons d'une version de Tomcat qui fonctionne. Nous
esp&eacute;rons que vous avez appris les bases de l'installation et de
la compilation du Kit de D&eacute;veloppement Java sur FreeBSD, avec
l'installation de la distribution binaire du serveur
d'application Tomcat publi&eacute; par l'Apache Software Foundation.
La section <xref linkend="ref"> contient des pointeurs vers des
ressources suppl&eacute;mentaires sur ce sujet, certaines sous forme
papier, d'autres disponibles sur l'Internet, ou les deux.</para>
<para>La chose la plus importante est l'espace disque. Je sugg&egrave;re
d'avoir <literal>700MO</literal> ou plus d'espace libre dans
<filename>/usr</filename>. J'esp&egrave;re que cet article vous a aid&eacute;
&agrave; sa mani&egrave;re. Pour les questions, les commentaires, les
compliments, ou les plaintes, veuillez les envoyez &agrave;
<ulink url="mailto:vkchan@kendryl.net">Victoria
Chan</ulink>.</para>
</sect2>
</sect1>
</article>