Installer son propre serveur web (part.2)

Publié par TB dans: Computing | HowTo | Techniques informatiques

Le 10 mai 2009, modifié le 11 juin 2009 à 23 h 05 min, 550 visites

 

Installation et administration d’un serveur WEB sous FREEBSD

 
Ce billet fait suite au billet initial précédent Installer son propre serveur web (part.1)
 
Chapitres « Installer son propre serveur web »

Post-installation

Après installation de FreeBSD, l’ordinateur est rebooté. Il faut effectuer les paramétrages d’usage afin d’avoir une installation personnalisée et confortable ; à ce stade, la machine n’est pas configurée pour le réseau et la sécurité du système n’est pas appliquée ; aucun logiciel n’est installé… la phase de post-installation est donc impérative.

Changement du mot de passe « root »

• Au login, indiquez le super-utilisateur root sur la console; il n’y a pas de mot de passe. Au prompt #, changez le mot de passe root par mesure de sĂ©curitĂ©.

# passwd root
Changing local password for root
New Password: xxxxxx
Retype New Password: xxxxxx
#

Créer un utilisateur d’usage en accès privilégié

Ajouter un utilisateur d’usage pour un accès au serveur. Il est fortement déconseillé d’utiliser le super-utilisateur root en direct sur le système. En effet, il est recommandé de disposer d’un utilisateur standard qui permettra un accès restreint puis d’autoriser le passage en mode SU à cet utilisateur (norme de sécurité).

Remarque - l’utilisateur root est interdit en accès telnet ou ssh.

• CrĂ©ez l’utilisateur usrwin avec le mot de passe de votre choix et en forcant la crĂ©ation au groupe wheel (le groupe wheel pour « conduisant » la machine est supĂ©rieur en droit par rapport au groupe admin ; groupe d’administrateur expĂ©rimentĂ©) ; ceci autorisant un passage en mode SU le cas Ă©chĂ©ant.

# adduser
Username: usrwin
Full name: USRWIN
Uid (Leave empty for default):
Login group [usrwin]: wheel
Login group is wheel. Invite usrwin into other groups? []:
Login class [default]:
Shell (sh csh tcsh nologin) [sh]:
Home directory [/home/usrwin]:
Use password-based authentication? [yes]:
Use an empty password? (yes/no) [no]:
Use a random password? (yes/no) [no]:
Enter password: xxxxxxx
Enter password again: xxxxxxx
Lock out the account after creation? [no]:
Username   : usrwin
Password   : *****
Full Name  : USRWIN
Uid        : 1001
Class      :
Groups     : wheel
Home       : /home/usrwin
Shell      : /bin/sh
Locked     : no
OK? (yes/no): yes
Add another user? (yes/no): no
Goodbye!
#

Créer un utilisateur d’usage pour les transferts FTP

• Ajouter un utilisateur d’usage pour les Ă©changes FTP. Cet utilisateur est important pour la suite de l’installation, nous verrons son utilitĂ© lors des chapitres suivants.

# adduser
Username: ftpwww
Full name: FTPWWW
Uid (Leave empty for default):
Login group [ftpwww]: www
Login group is www. Invite usrwin into other groups? []:
Login class [default]:
Shell (sh csh tcsh nologin) [sh]:
Home directory [/home/ftpwww]:
Use password-based authentication? [yes]:
Use an empty password? (yes/no) [no]:
Use a random password? (yes/no) [no]:
Enter password: xxxxxxx
Enter password again: xxxxxxx
Lock out the account after creation? [no]:
Username   : ftpwww
Password   : *****
Full Name  : FTPWWW
Uid        : 1002
Class      :
Groups     : www
Home       : /home/ftpwww
Shell      : /bin/sh
Locked     : no
OK? (yes/no): yes
Add another user? (yes/no): no
Goodbye!
#

Configurer les services réseaux

Nombre de services réseaux existent sur UNIX mais par mesure de sécurité, nous allons activer que ceux qui sont importants. Dans notres cas, seul le protocole FTP est autorisé.

• Editez le fichier /etc/inetd.conf avec l’éditeur vi, et dĂ©commentez la ligne concernant ftp ; toutes les autres sont commentĂ©es avec le symbole #.

# $FreeBSD: src/etc/inetd.conf,v 1.73 2007/07/05 09:46:53 delphij Exp $
#
# Internet server configuration database
#
# Define *both* IPv4 and IPv6 entries for dual-stack support.
# To disable a service, comment it out by prefixing the line with '#'.
# To enable a service, remove the '#' at the beginning of the line.
#
ftp     stream  tcp     nowait  root    /usr/libexec/ftpd       ftpd -l
#ftp    stream  tcp6    nowait  root    /usr/libexec/ftpd       ftpd -l
#ftp    stream  tcp     nowait  root    /usr/libexec/lukemftpd  ftpd -l -r
#ftp    stream  tcp6    nowait  root    /usr/libexec/lukemftpd  ftpd -l -r
#ssh    stream  tcp     nowait  root    /usr/sbin/sshd          sshd -i -4
#ssh    stream  tcp6    nowait  root    /usr/sbin/sshd          sshd -i -6
#telnet stream  tcp     nowait  root    /usr/libexec/telnetd    telnetd
#telnet stream  tcp6    nowait  root    /usr/libexec/telnetd    telnetd
#shell  stream  tcp     nowait  root    /usr/libexec/rshd       rshd
#shell  stream  tcp6    nowait  root    /usr/libexec/rshd       rshd
#login  stream  tcp     nowait  root    /usr/libexec/rlogind    rlogind
#login  stream  tcp6    nowait  root    /usr/libexec/rlogind    rlogind
#finger stream  tcp     nowait/3/10 nobody /usr/libexec/fingerd fingerd -s
#finger stream  tcp6    nowait/3/10 nobody /usr/libexec/fingerd fingerd -s
#
# run comsat as root to be able to print partial mailbox contents w/ biff,
# or use the safer tty:tty to just print that new mail has been received.
#comsat dgram   udp     wait    tty:tty /usr/libexec/comsat     comsat
#
# ntalk is required for the 'talk' utility to work correctly
#ntalk  dgram   udp     wait    tty:tty /usr/libexec/ntalkd     ntalkd
#tftp   dgram   udp     wait    root    /usr/libexec/tftpd      tftpd -l -s /tftpboot
#tftp   dgram   udp6    wait    root    /usr/libexec/tftpd      tftpd -l -s /tftpboot
#bootps dgram   udp     wait    root    /usr/libexec/bootpd     bootpd
#
# "Small servers" -- used to be standard on, but we're more conservative
# about things due to Internet security concerns.  Only turn on what you
# need.
#
…

Remarque - pour enregistrer avec l’éditeur vi, pressez la touche Escape puis tapez w! et pressez Entrée. Pour quitter, pressez la touche Escape et tapez Q puis validez avec la touche Entrée

Configurer l’interface réseau

• Configurez l’interface rĂ©seau physique principale pour activer le service rĂ©seau local et Internet (ex: fxp0 pour une architecture X86, gem0 pour un Sparc SunFire V120).

# vi /etc/ifconfig.fxp0

• Si vous avez plusieurs cartes rĂ©seaux alors vous devez avoir autant de fichier que d’interface. Le fichier doit ĂŞtre comme suit (exemple : adresse IP 172.10.0.40 avec netmask 255.255.255.0) :

inet 172.10.0.40 netmask 255.255.255.0

Remarque - Pour connaitre le nom de l’interface, vérifiez le nom du device dans la log de démarrage du serveur (/var/log/message) ou avec la commande dmesg ; en effet, cette log liste tous les drivers vus par FreeBSD au démarrage.

Remarque - Si rc.conf est configuré avec l’argument ifconfig_driver, il n’est pas nécessaire de faire cette opération (Cf. chapitre suivant).

• Cette log se trouve dans /var/log et le fichier est nommĂ© messages. On y trouve toutes les informations matĂ©rielles. Rechercher le nom de device liĂ© Ă  la carte rĂ©seau.

# cd /var/log
# more messages

• Ou tapez la commande suivante

# dmesg | more

Configurer les DNS

• Configurez les serveurs DNS (dans notre exemple, ce sont les serveurs du FAI Free). Ne pas mettre l’adresse 127.0.0.1 en nameserver car ceci ralentit les accès aux sites WEB.

# vi /etc/resolv.conf

• Le fichier doit ĂŞtre renseignĂ© comme suit (directive search par obligatoire) ; indiquez les serveurs DNS du FAI concernĂ© :

nameserver 212.27.40.240
nameserver 212.27.40.241
nameserver 212.27.53.252
nameserver 212.27.54.252

Configurer les démons au démarrage

Un certain nombre de services et paramétres doivent être activés au démarrage du serveur pour le rendre exploitable ; pour la plupart, c’est l’activation de différents démons et pour d’autres l’indication de paramétres système. Un fichier de configuration général existe sur FreeBSD et simplifie ces réglages.

• Editez le fichier /etc/rc.conf avec l’éditeur vi

Nous allons indiquer au serveur tous les éléments liés au réseau, tels que l’adresse IP du routeur, le nom de la machine, les interfaces réseaux (si plusieurs cartes Ethernet) ; nous allons précisez aussi les servcies que nous souhaitons voir désactivé. Par exemple, nous ne volons plus utiliser SENDMAIL, alors nous forcons son arret.

• Le fichier doit ĂŞtre comme suit :

# -- sysinstall generated deltas -- # Thu Jun  4 13:17:33 2009
# -- sysinstall generated deltas -- # Wed Jun  3 14:17:01 2009
# Created: Wed Jun  3 14:17:01 2009
# Enable network daemons for user convenience.
# Please make all changes to this file, not to /etc/defaults/rc.conf.
# This file now contains just the overrides from /etc/defaults/rc.conf.
keymap="fr.iso.acc"
sshd_enable="YES"
defaultrouter="172.10.0.1"
hostname="eserverx330-0"
ifconfig_fxp0="inet 172.10.0.40 netmask 255.255.255.0"
ifconfig_fxp1="inet 172.10.0.41 netmask 255.255.255.0"
inetd_enable="YES"
ntpdate_enable="NO"
#
# FTP services
#
ftpsesame_enable="YES"
ftpsesame_flags="-i fxp0"

Remarque - les paramétres (nom, adresses, url, …) ne sont que des exemples et doivent être adaptés à vos besoins.

Problème de boot avec la séquence de démarrage

Il arrive parfois que le fichier rc.conf soit corrompu ; par exemple, un guillemet oublié et c’est le crash ! Vous ne pouvez plus booter. Voici la procédure pour corriger le problème.

• Le message suivant apparait. Faites EntrĂ©e pour accèder au shell.

/etc/rc.conf: 79: Syntax error: Unterminated quoted string
Enter full path name of shell or RETURN for /bin/sh:
#

• Tapez les commandes suivantes pour corriger votre fichier.

# mount –a –t ufs     # /usr/bin/vi /etc/rc.conf

Remarque - le clavier est certainement en anglais.

• Corrigez le fichier et enregistrez ; tapez la commande suivante pour quitter le shell.

# exit

Désormais, le système boote normalement…

Configurer les hosts

Le fichier hosts est important pour l’identification des machines du réseau ; il doit être renseigné avec précision et respecter les informations déjà saisies dans /etc/rc.conf.

• Editez le fichier /etc/hosts avec l’éditeur vi oĂą nous allons indiquer tous les hosts nĂ©cessaires au fonctionnement du serveur en rĂ©seau :

# $FreeBSD: src/etc/hosts,v 1.16.32.1 2009/04/15 03:14:26 kensmith Exp $
#
# Host Database
#
# This file should contain the addresses and aliases for local hosts that
# share this file.  Replace 'my.domain' below with the domainname of your
# machine.
#
# In the presence of the domain name service or NIS, this file may
# not be consulted at all; see /etc/nsswitch.conf for the resolution order.
#
#
::1                     localhost localhost.my.domain
127.0.0.1               localhost localhost.my.domain
#
# Imaginary network.
#10.0.0.2               myname.my.domain myname
#10.0.0.3               myfriend.my.domain myfriend
#
# According to RFC 1918, you can use the following IP networks for
# private nets which will never be connected to the Internet:
#
#       10.0.0.0        -   10.255.255.255
#       172.16.0.0      -   172.31.255.255
#       192.168.0.0     -   192.168.255.255
#
# In case you want to be able to connect to the Internet, you need
# real official assigned numbers.  Do not try to invent your own network
# numbers but instead get one from your network provider (if any) or
# from your regional registry (ARIN, APNIC, LACNIC, RIPE NCC, or AfriNIC.)
#
#
# back to FIREWALL
#
172.10.0.40             eserverx330-0 eserverx330 eserverx330.workgroup.net
172.10.0.41             eserverx330-1
#
# Another HOSTS
#
172.10.0.30             sunv100-0 sunv100 sunv100.workgroup.net
172.10.0.31             sunv100-1
172.10.0.20             sunv120-0 sunv120 sunv120.workgroup.net
172.10.0.21             sunv120-1

Configurer le domaine réseau

• Editez le fichier /etc/defaultdomain.

# vi /etc/defaultdomain

• Indiquez le nom correspondant Ă  votre domaine rĂ©seau ; utile pour des accès Windows (dans notre exemple, le domaine est workgroup.net):

workgroup.net

Rebooter le serveur

• Rebooter le serveur et controlez l’accès Ă  Internet avec nslookup.

# reboot

Une fois rebooté, accèdez au serveur via l’utilisateur root ; par la même occasion, controlez l’accès via l’utilisateur dit « d’usage ».

• Testez la connexion Internet avec nslookup en indiquant le domaine google.fr ; le serveur doit renvoyer les adresses DNS.

on-authoritative answer:
Name:   google.fr
Address: 216.239.59.104
Name:   google.fr
Address: 74.125.77.104
Name:   google.fr
Address: 72.14.221.104
> exit
#

Configurer le serveur de temps

Afin d’avoir un serveur toujours à l’heure, nous allons utiliser le service NTP (serveur de temps Internet) pour ajuster l’heure en permanence. Il suffit de configurer le démon NTP.

• Il faut installer le service NTP, allez dans /usr/ports/net/ntp et compiler le programme.

# cd /usr/ports/net/ntp
# make
# make install

• Configurer le service en Ă©ditant le fichier /etc/ntp.conf.

# vi /etc/ntp.conf

• Indiquez les serveurs de temps comme suite ; vĂ©rifiez les dispositions sur Internet pour les serveurs francais. L’argument driftfile contient la dĂ©viation moyenne. Le mode broadcast est dĂ©sactivĂ© ; il permet en gĂ©nĂ©ral d’envoyer le temps sur le rĂ©seau Interne (LAN).

# This is the configuration file for NTP
# (Network Time Protocol). More info at
# www.NTP.org
 
# This computer will act as a stratum 2 time
# server, by referencing the following 4 or
# more stratum 1 time servers:
 
server 0.pool.ntp.org
server 1.pool.ntp.org
server 2.pool.ntp.org
server pool.ntp.org
 
# Since the clock on most PCs drifts around
# significantly, let's use a file to
# keep track of that drift and compensate
# for it:
 
driftfile /var/lib/ntp/ntp.drift
 
# This server will broadcast NTP timing signals
# over the Local Area Network (LAN)
 
# broadcast 172.10.0.255
 
# Let's setup a log file for NTP:
 
logfile /var/log/ntp.log

• Modifiez le fichier /etc/rc.conf pour ajouter les arguments suivants :

#
# NTP (Network Time Protocol) time-keeping program
# to set time on boot-up and adjust time while
# operating.
#
xntpd_enable="YES"
xntpd_program="/usr/local/bin/ntpd"
xntpd_flags="-A -g -N -c /etc/ntp.conf -p /var/run/ntpd.pid -l /var/log/ntpd.log"

Configurer l’heure

• Configurez l’heure courante sur le serveur si celle-ci n’est pas actualisĂ©e correctement. (Format= AAMMJJHHmm)

# date
Wed Oct 12 12:16:09 UTC 2005
# date 0510122121
Oct 12 21:21:00  date: date set by root
Oct 12 21:21:00  date: date set by root
Wed Oct 12 21:21:00 UTC 2005
#

Changement du shell root

Il est indispensable d’avoir un environnement de travail souple et convivial ; le shell BASH (Bourne-Again-Shell) est certainement le plus approprié pour son confort d’utilisation.

Remarque - par mesure de sécurité, nous allons activer le user root de secours, nommé toor ; changeons son mot de passe ; accès indispensable en cas de problème avec root.

• Changez le mot de passe de l’utilisateur toor :

# passwd toor
 
New Password: xxxxxxx
 
Retype New Password: xxxxxxx
 
#

• Passons Ă  l’installation de BASH proprement dite ; une compilation est nĂ©cessaire car ce n’est pas installĂ© d’origine.

# cd /usr/ports/shells/bash
# make
# make install

• BASH se trouve donc installĂ© dans /usr/local/bin ; il va falloir changer le SHELL par dĂ©faut.

# pw usermod root -c "" -s /usr/local/bin/bash

• Une fois la commande executĂ©e, il suffit de se dĂ©loguer puis de se relogue. Le prompt suivant apparaĂ®t :

[root@eserverx330-0 /u]#
 
 

Dans la troisième partie de cet article, nous verrons comment installer le serveur de base de données MYSQL et le serveur web APACHE.

Aucun commentaire pour “Installer son propre serveur web (part.2)”

Les commentaires sont fermés.

Visiteurs

Publicité

Warts Republic utilise les réseaux sociaux pour partager ses articles. Warts Republic est enregistré chez Blogasty 09, Flickr, Splush, You Tube, G1 Blog, Facebook, Diggons, Paperblog. Warts Republic bloque les SPAMS avec Askimet. Warts Republic vous recommande les navigateurs de dernière génération tels Firefox, Safari ou IExplorer 7 pour un affichage optimisé.

Tous droits réservés aux auteurs. Consultez la rubrique des droits légaux. Pour toute réclamation, contactez le webmaster, Pour tout autre contact professionel, adressez-vous directement à l'auteur.