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-installationAprè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Ă©seauxNombre 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Ă©marrageUn 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Ă©marrageIl 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 hostsLe 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 tempsAfin 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 rootIl 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. |
