You are on page 1of 37

Curso: Introducción a las Aplicaciones y Servicios de Internet bajo Linux. SERVIDOR DE PÁGINAS WEB (Apache).

La World Wide Web (WEB) es el servicio de Internet, que sin duda alguna ha sufrido el mayor crecimiento de todos cuantos pueblan esta inmensa red de araña que hoy es la red. Es más, casi el 70 % del ancho de banda total se debe a accesos a través de páginas web (formato html) o derivados de éstas. La forma en que se visualiza la información no tiene parangón con ninguno de los otros formatos, y por si esto fuera poco lasa perspectivas que abre el comercio electrónico creando una nueva relación entre el/la client@ virtual y la empresa aún más virtual, hace que el futuro sea desconocido en el viejo arte de la compra y la venta de objetos, o sea del mercado “único” y la globalización del mercado. Como es de esperar en todo hay sus buenas y sus malas razones de ser, sólo depende de l@s usuari@s de estos sistemas, el buen o mal uso de los mismos. En este módulo aprenderemos a configurar el servidor Web Apache en nuestros servidores. Cada uno de los ficheros que intervienen en la configuración son en si mismos pequeños mundos que nos llevarían probablemente a dedicarles tanto tiempo como dura el curso entero, pero como eso no es posible, si intentaremos descifrar de ellos lo que nos interesa y lo demás lo dejaremos para el futuro cuando estos ficheros, a veces tan grandes, no sean ya un misterio para nosotr@s. Tratar con un servidor que es capaz de hacer muchas cosas y sobre todo ser el servidor web más utilizado del mundo conlleva un tanto de respeto y mucha humildad por nuestra parte, por lo que trataremos de ir pasito a pasito y con buena letra ¿eh? Nuestra versión de RedHat 9 incluye también otro servidor llamado TUX, que seguramente será algo más sencillo, pero desde luego no tan popular como Apache, eso seguro. Como en todos los servidores vistos hasta ahora, suponemos que el servidor está instalado en el momento de la instalación de RedHat Linux 9, y por lo tanto no es necesario hacer mucho más allá en ese respecto. Si esto es así también se encontrará funcionando en el sistema cada vez que este arranque. Por ahí comenzaremos a trabajar, lo primero es ver cómo arrancar/parar el servidor, cómo decirle que arranque en el momento de inicio del sistema y decirle que funcione en los niveles de ejecución 3 y 5 de nuestro sistema ¿lo recordáis? Por si acaso no ¡vamos a ello!

VER SI EL SERVIDOR ESTÁ INSTALADO
Para ver si efectivamente está instalado nuestro servidor, lo podemos ver de varias formas, la primera y más sencilla es ejecutar el comando rpm para que nos lo diga el propio gestor de aplicaciones: [root@casiopea /root]# rpm –qa|grep httpd Este comando nos devolverá todos los paquetes instalados cuyos nombres tengan la palabra httpd. Esto es muy útil ya que más adelante necesitaremos instalar 3 programas dependientes de httpd que el servidor no instala por defecto para configurar un servidor https:// ó seguro. Además esto nos proporciona la posibilidad de ver la versión de los programas instalados. Nosotr@s trabajaremos con la versión de apache 2.0.47. Otra forma de verlo, es invocando al gestor gráfico de paquetes rpm mediante el comando: [root@casiopea /root]# redhat-config-packages Este gestor ya le conocemos por haberlo utilizado previamente, es sencillo, gráfico y nos permite ver si efectivamente apache está instalado. Para gustos los se hicieron los colores J. A mi me parece más potente el rpm –q pero depende para qué, uno es más rápido y funciona mejor….

________________________________________________________________________________ CFIE 2 Valladolid. Febrero-Marzo 2004. Módulo 4. Servidor Páginas Web. Pág 1

Curso: Introducción a las Aplicaciones y Servicios de Internet bajo Linux. INICIO / PARO DEL SERVIDOR
Iniciar y parar el servidor es algo tan sencillo y que tendremos que hacer tantas veces hasta que el fichero de configuración esté afinado, que nos va a parecer mentira con la soltura que iniciaremos y pararemos el servidor… pero no preocuparse que, siempre que se haga correctamente, a él no le duele lo más absoluto J El inicio del servidor, se puede hacer igualmente de mil maneras pero yo voy directamente al grano esta vez y lo apago desde un lugar y lo enciendo desde otro ¿vale? [root@casiopea /root]# /sbin/service httpd stop [root@casiopea /root]# /etc/rc.d/init.d/httpd start También se le puede rearrancar mediante: [root@casiopea /root]# /sbin/service httpd restart y lo apaga y lo enciende a la vez… y ya estaría apagado. y ya estaría funcionando, aunque nada más.

Si no hay ningún problema más (o sea en los ficheros de configuración) veréis que todo va a las mil maravillas y el servidor hace lo que le pedís. Bueno pararlo casi siempre lo hace de todos modos, el problema es arrancarlo si algo no anda bien, y a veces os aseguro que ocurrirá…

ARRANQUE EN EL INICIO y EN NIVELES 3 y 5
Esto también lo hemos visto en los anteriores servicios de Internet, aunque yo pesadito de mi, os lo seguiré comentando por si acaso. Necesitamos que los servidores, y sólo ellos tengan un demonio httpd funcionado y lo hagan en los niveles 3 y 5 de Linux. Esto ya lo conté antes y bla, bla, bla. Pero no necesitamos que los clientes tengan un servidor funcionando si no lo van a utilizar ¿no? Así que aquí la tarea, al igual que en los servidores vistos ya, es necesario parar y no arrancar en el inicio el servidor Apache. ¿Cómo se hace esto? 1. Arranque en el Inicio del Servidor /Apagado del cliente [root@casiopea /root]# chkconfig httpd on / off 2. Funcionamiento en el nivel 3 de Linux (Texto multiusuario)/ Apagado del cliente [root@casiopea /root]# chkconfig -- level 3 httpd on /off 3. Funcionamiento en el nivel 5 de Linux (Gráfico multiusuario) / Apagado del cliente [root@casiopea /root]# chkconfig --level 5 httpd on /off 4. Por último, la comprobación de que todo va bien [root@casiopea /root]# chkconfig -- list httpd Todo ha ido perfectamente hasta aquí y nuestro servidor se encuentra en el estado que le corresponde estar ¿si? Perdonad que sea tan plasta con esto, pero realmente es importante. En este momento, el servidor ya está listo para ser configurado, y como es novedad desde la versión de Apache 2.0 en adelante, los ficheros de configuración necesarios para poner en marcha el servidor han pasado de ser varios (srm.conf, httpd.conf y access.conf a parte de en cada directorio del sitio web del .htaccess

________________________________________________________________________________ CFIE 2 Valladolid. Febrero-Marzo 2004. Módulo 4. Servidor Páginas Web. Pág 2

Curso: Introducción a las Aplicaciones y Servicios de Internet bajo Linux.
para valorar los permisos locales al directorio) a configurarse un único fichero httpd.conf, eso si más largo y complejo como era de esperar J. La localización del fichero httpd.conf a partir de la versión RedHat 8 (verdadera pionera de los cambios) se encuentra en /etc/httpd/conf y, como es lógico nos cansaremos de editarlo, cambiar cosillas, entrar y salir de él para afinarlo. Como os comentaba antes, a partir de la versión 8 de RedHat existen dos formas de configurar este macro fichero, una de ellas, la de siempre… a pedalillo (recomendable en parte) y la otra con la ayuda de un gestor gráfico (ayuda bastante al principio como todo lo gráfico, pero se queda cojo a la hora de tocar partes importantes), así que probaremos ambas opciones y conseguiremos nuestro objetivo. No es por asustar, pero lo primero que vamos a hacer es listar el fichero completo (ya se que es una pasada, pero luego iremos viendo partes y nos ayudará mucho tenerlo. Esta es una versión acabada y completa del que yo he diseñado para montar los ejemplos… y casi sirve para lo que nos proponemos) ahí va: ################################################################################################ ## httpd.conf - configuration for the Apache web server # # Generated automatically... if you edit manually, the changes will be lost # the next time you run "apacheconfig". # ### Sección 1: Configuración Global # # The directives in this section affect the overall operation of Apache, # such as the number of concurrent requests it can handle or where it # can find its configuration files. # # # Don't give away too much information about all the subcomponents # we are running. Comment out this line if you don't mind remote sites # finding out what major optional modules you are running ServerTokens OS # # ServerRoot: The top of the directory tree under which the server's # configuration, error, and log files are kept. # # NOTE! If you intend to place this on an NFS (or otherwise network) # mounted filesystem then please read the LockFile documentation # (available at <URL:http://httpd.apache.org/docs-2.0/mod/core.html#lockfile>); # you will save yourself a lot of trouble. # # Do NOT add a slash at the end of the directory path. # ServerRoot "/etc/httpd" # # ScoreBoardFile: File used to store internal server process information. # If unspecified (the default), the scoreboard will be stored in an # anonymous shared memory segment, and will be unavailable to third-party # applications. # If specified, ensure that no two invocations of Apache share the same # scoreboard file. The scoreboard file MUST BE STORED ON A LOCAL DISK. # #ScoreBoardFile run/httpd.scoreboard

________________________________________________________________________________ CFIE 2 Valladolid. Febrero-Marzo 2004. Módulo 4. Servidor Páginas Web. Pág 3

pid" # # Timeout: The number of seconds before receives and sends time out. # KeepAliveTimeout 15 ## ## Server-Pool Size Regulation (MPM specific) ## # prefork MPM # StartServers: number of server processes to start # MinSpareServers: minimum number of server processes which are kept spare # MaxSpareServers: maximum number of server processes which are kept spare # MaxClients: maximum number of server processes allowed to start # MaxRequestsPerChild: maximum number of requests a server process serves <IfModule prefork. # TimeOut 300 # # KeepAlive: Whether or not to allow persistent connections (more than # one request per connection). Pág 4 . Módulo 4. Servidor Páginas Web. # PidFile "/var/run/httpd. # # PidFile: The file in which the server should record its process # identification number when it starts.Curso: Introducción a las Aplicaciones y Servicios de Internet bajo Linux. Set to 0 to allow an unlimited amount. Set to "Off" to deactivate. Febrero-Marzo 2004. for maximum performance.c> StartServers 2 MaxClients 150 MinSpareThreads 25 MaxSpareThreads 75 ________________________________________________________________________________ CFIE 2 Valladolid. # We recommend you leave this number high.c> StartServers 8 MinSpareServers 5 MaxSpareServers 20 MaxClients 150 MaxRequestsPerChild 100 </IfModule> # worker MPM # StartServers: initial number of server processes to start # MaxClients: maximum number of simultaneous client connections # MinSpareThreads: minimum number of worker threads which are kept spare # MaxSpareThreads: maximum number of worker threads which are kept spare # ThreadsPerChild: constant number of worker threads in each server process # MaxRequestsPerChild: maximum number of requests a server process serves <IfModule worker. # MaxKeepAliveRequests 100 # # KeepAliveTimeout: Number of seconds to wait for the next request from the # same client on the same connection. # KeepAlive false # # MaxKeepAliveRequests: The maximum number of requests to allow # during a persistent connection.

so LoadModule log_config_module modules/mod_log_config.0) # #Listen 12.1:80 # # Load config files from the config directory "/etc/httpd/conf.0.conf # # Dynamic Shared Object (DSO) Support # # To be able to use the functionality of a module which was built # have to place corresponding `LoadModule' lines at this location # directives contained in it are actually available _before_ they # Statically compiled modules (those listed by `httpd -l') do not # to be loaded here.56.34. # # Change this to Listen on specific IP addresses as shown below to # prevent Apache from glomming onto all bound IP addresses (0.so LoadModule auth_digest_module modules/mod_auth_digest.0.1:80 Listen 10.so LoadModule env_module modules/mod_env. # Include conf.1. Servidor Páginas Web.so LoadModule include_module modules/mod_include. in addition to the default.so LoadModule auth_anon_module modules/mod_auth_anon.so LoadModule auth_module modules/mod_auth. # # Example: # LoadModule foo_module modules/mod_foo. ThreadsPerChild 25 MaxRequestsPerChild 0 </IfModule> # perchild MPM # NumServers: constant number of server processes # StartThreads: initial number of worker threads in each server process # MinSpareThreads: minimum number of worker threads which are kept spare # MaxSpareThreads: maximum number of worker threads which are kept spare # MaxThreadsPerChild: maximum number of worker threads in each server process # MaxRequestsPerChild: maximum number of connections per server process <IfModule perchild. Módulo 4.so LoadModule cern_meta_module modules/mod_cern_meta. Pág 5 .d/ssl.168.so as a DSO you so the are used.so # LoadModule access_module modules/mod_access. See also the <VirtualHost> # directive.10.so LoadModule mime_magic_module modules/mod_mime_magic.d". need ________________________________________________________________________________ CFIE 2 Valladolid.c> NumServers 5 StartThreads 5 MinSpareThreads 5 MaxSpareThreads 10 MaxThreadsPerChild 20 MaxRequestsPerChild 0 </IfModule> # # Listen: Allows you to bind Apache to specific IP addresses and/or # ports.78:80 Listen 192.Curso: Introducción a las Aplicaciones y Servicios de Internet bajo Linux. Febrero-Marzo 2004.0.so LoadModule auth_dbm_module modules/mod_auth_dbm.so LoadModule expires_module modules/mod_expires.

so alias_module modules/mod_alias. # in which case these default settings will be overridden for the # virtual host being defined. On SCO (ODT 3) use "User nouser" and "Group nogroup". which responds to any requests that aren't handled by a # <VirtualHost> definition. # .so vhost_alias_module modules/mod_vhost_alias. On HPUX you may not be able to use shared memory as nobody. # don't use Group #-1 on these systems! # User apache Group apache # # ServerAdmin: Your address.com # ________________________________________________________________________________ CFIE 2 Valladolid.so mime_module modules/mod_mime. Servidor Páginas Web. where problems with the server should be # e-mailed. such # as error documents. you must run # httpd as root initially and it will switch.so rewrite_module modules/mod_rewrite.so info_module modules/mod_info. These values also provide defaults for # any <VirtualHost> containers you may define later in the file.g.so dav_module modules/mod_dav.so status_module modules/mod_status.so imap_module modules/mod_imap.so userdir_module modules/mod_userdir.so usertrack_module modules/mod_usertrack.so setenvif_module modules/mod_setenvif. # # All of these directives may appear inside <VirtualHost> containers.so negotiation_module modules/mod_negotiation. Febrero-Marzo 2004.Curso: Introducción a las Aplicaciones y Servicios de Internet bajo Linux. and the # suggested workaround is to create a user www and use that user. LoadModule LoadModule LoadModule LoadModule LoadModule LoadModule LoadModule LoadModule LoadModule LoadModule LoadModule LoadModule LoadModule LoadModule LoadModule LoadModule LoadModule LoadModule LoadModule LoadModule LoadModule headers_module modules/mod_headers.so cgi_module modules/mod_cgi.so dav_fs_module modules/mod_dav_fs.so # # ExtendedStatus controls whether Apache will generate "full" status # information (ExtendedStatus On) or just basic information (ExtendedStatus # Off) when the "server-status" handler is called. # NOTE that some kernels refuse to setgid(Group) or semctl(IPC_SET) # when the value of (unsigned)Group is above 60000.so unique_id_module modules/mod_unique_id.so dir_module modules/mod_dir. # # User/Group: The name (or #number) of the user/group to run httpd as. The default is Off. # #ExtendedStatus On ### Sección 2: onfiguración Principal del servidor # # The directives in this section set up the values used by the 'main' # server.so actions_module modules/mod_actions. e. # # # If you wish httpd to run as a different user or group. # . admin@your-domain.so speling_module modules/mod_speling. Módulo 4. This address appears on some server-generated pages.so asis_module modules/mod_asis.so autoindex_module modules/mod_autoindex. Pág 6 .

and documents contained therein must be world-readable. # # The path to the end user account 'public_html' directory must be # accessible to the webserver userid. but we recommend you specify # it explicitly to prevent problems during startup. Servidor Páginas Web. # DocumentRoot "/var/www/html" # # Disable autoindex for the root directory. Apache will use the Hostname and Port supplied # by the client.apache. all requests are taken from this directory. # # If this is not set to valid DNS name for your host. # This can often be determined automatically. # <LocationMatch "^/$"> Options -Indexes ErrorDocument 403 /error/noindex. # You will have to access it by its address anyway.org # # ServerName gives the name and port that the server uses to identify itself. # UseCanonicalName on # # DocumentRoot: The directory out of which you will serve your # documents. Febrero-Marzo 2004. Pág 7 . # When set "Off". This usually means that ~userid # must have permissions of 711. # ServerName www.html#forbidden # <IfModule mod_userdir.html </LocationMatch> # # UserDir: The name of the directory that is appended onto a user's home # directory if a ~user request is received. Módulo 4. # UserDir "disable" UserDir "enable" capi paco ________________________________________________________________________________ CFIE 2 Valladolid.c> # # UserDir is disabled by default since it can confirm the presence # of a username on the system (depending on home directory # permissions).org # # UseCanonicalName: Determines how Apache constructs self-referencing # URLs and the SERVER_NAME and SERVER_PORT variables. ~userid/public_html must have permissions # of 755.Curso: Introducción a las Aplicaciones y Servicios de Internet bajo Linux.org/docs/misc/FAQ. When set "On". and this will make # redirections work in a sensible way. By default. the client will only receive a "403 Forbidden" message. ServerAdmin admin@clavesoft. # Otherwise. but # symbolic links and aliases may be used to point to other locations. # # If your host doesn't have a registered DNS name. server-generated # redirections will not work.infoedu. enter its IP address here. # # See also: http://httpd. and present a # default Welcome page if no other index page is present. Apache will use the value of the # ServerName directive. See also the UseCanonicalName directive.

html. such as applications # or images.htaccess and . Servidor Páginas Web.types file (or equivalent) is # to be found.ht"> Order allow.Curso: Introducción a las Aplicaciones y Servicios de Internet bajo Linux. If most of your content is binary. # DirectoryIndex index.org/~* # # To enable requests to /~user/ to serve the user's public_html # directory. The MultiViews Option can be used for the # same purpose. Febrero-Marzo 2004.html default. UserDir http://www.html index.types" # # DefaultType is the default MIME type the server will use for a document # if it cannot otherwise determine one. # # The index.infoedu. you may want to use "application/octet-stream" instead to # keep browsers from trying to display binary files as though they are # text. # <IfModule mod_mime_magic. Módulo 4. "text/plain" is # a good value. # If your server contains mostly text or HTML documents.c> # MIMEMagicFile /usr/share/magic. Pág 8 .htaccess # # The following lines prevent . use this directive instead of "UserDir disable": # UserDir public_html </IfModule> # # DirectoryIndex: sets the file that Apache will serve if a directory # is requested. # <Files ~ "^\.deny Deny from all </Files> # # TypesConfig describes where the mime. such as from filename extensions.htpasswd files from being # viewed by Web clients. See also the AllowOverride directive. but it is much slower. # TypesConfig "/etc/mime.mime MIMEMagicFile conf/magic </IfModule> ________________________________________________________________________________ CFIE 2 Valladolid. # DefaultType text/plain # # The mod_mime_magic module allows the server to use various hints from the # contents of the file itself to determine its type.htm default. The MIMEMagicFile # directive tells the module where the hint definitions are located.var file (a type-map) is used to deliver content# negotiated documents.htm # # AccessFileName: The name of the file to look for in each directory # for access control information. # AccessFileName .

uncomment the # following directives. # LogLevel warn # # The following directives define some format nicknames for use with # a CustomLog directive (see below). emerg. # #CustomLog logs/access_log combined ________________________________________________________________________________ CFIE 2 Valladolid. if you *do* # define per-<VirtualHost> access logfiles. transactions will be # logged therein and *not* in this file.Curso: Introducción a las Aplicaciones y Servicios de Internet bajo Linux. Contrariwise.132 (off).apache. # alert. # # HostnameLookups: Log the names of clients or just their IP addresses # e.62.g.. If you *do* define an error logfile for a <VirtualHost> # container. # The default is off because it'd be overall better for the net if people # had to knowingly turn this feature on. # LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b" common LogFormat "%{Referer}i -> %U" referer LogFormat "%{User-agent}i" agent # # The location and format of the access logfile (Common Logfile Format). # If you do not define any access logfiles within a <VirtualHost> # container. Pág 9 . and referer information # (Combined Logfile Format) you can use the following directive. # HostNameLookups Off # # ErrorLog: The location of the error log file. since enabling it means that # each client request will result in AT LEAST one lookup request to the # nameserver. error. warn. Módulo 4. # If you do not specify an ErrorLog directive within a <VirtualHost> # container. Febrero-Marzo 2004.org (on) or 204. # # CustomLog logs/access_log common CustomLog logs/access_log combined # # If you would like to have agent and referer logfiles. that host's errors will be logged there and not here. # Possible values include: debug. www. notice. Servidor Páginas Web. agent.129. they will be logged here. error messages relating to that virtual host will be # logged here. # #CustomLog logs/referer_log referer #CustomLog logs/agent_log agent # # If you prefer a single logfile with access. crit. # ErrorLog "/var/log/httpd/error_log" # # LogLevel: Control the number of messages logged to the error_log. info.

Pág 10 . If the fakename is slash-terminated. # this out if # Alias /manual be changed to the ServerRoot/manual/. you may comment this out. # Alias /icons/ "/var/www/icons/" # # This should # the manual.com/bar ________________________________________________________________________________ CFIE 2 Valladolid. Módulo 4. # Set to one of: On | Off | EMail # ServerSignature on # # Aliases: Add here as many aliases as you need (with no limit). DAVLockDB /var/lib/dav/lockdb </IfModule> # # ScriptAlias: This controls which directories contain server scripts. except that # documents in the realname directory are treated as applications and # run by the server when requested rather than as documents sent to the client.. You may comment you do not care for the documentation.Curso: Introducción a las Aplicaciones y Servicios de Internet bajo Linux. # The same rules about trailing "/" apply to ScriptAlias directives as to # Alias. Servidor Páginas Web. and if the fakename omits the # trailing slash. This allows you to tell the clients where to look for the relocated document. mod_cgid has Scriptsock <path> # for setting UNIX socket for communicating with cgid. # # We include the /icons/ alias for FancyIndexed directory listings. The alias provides even if you choose to move your DocumentRoot. # ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" <IfModule mod_cgid.example. # #Scriptsock logs/cgisock </IfModule> # # # # # # Redirect allows you to tell clients about documents which used to exist in your server's namespace. Example: Redirect permanent /foo http://www. "/var/www/manual" <IfModule mod_dav_fs. Febrero-Marzo 2004. but do not anymore. # mod_status and mod_info output etc. # # Optionally add a line containing the server version and virtual host # name to server-generated pages (error documents.c> # Location of the WebDAV lock database. The format is # Alias fakename realname # # Note that if you include a trailing / on fakename then the server will # require it to be present in the URL. # Set to "EMail" to also include a mailto: link to the ServerAdmin.c settings. only "/icons/". but not CGI generated documents). So "/icons" isn't aliased in this # example. the realname must also omit it.c> # # Additional to mod_cgid. then the # realname must also be slash terminated. FTP directory listings. # ScriptAliases are essentially the same as Aliases. If you # do not use FancyIndexing.

html .shtml . Servidor Páginas Web.gif) video/* /icons/binary.for /icons/dvi. # VersionSort is whether files containing version numbers should be # compared in the natural way.py /icons/f./icons/movie.shar . These are only displayed for # FancyIndexed directories.gif core /icons/back..ksh .gif .12.gif .Curso: Introducción a las Aplicaciones y Servicios de Internet bajo Linux.dvi /icons/uuencoded.c /icons/p. # IndexOptions FancyIndexing VersionSort NameWidth=* # # AddIcon* directives tell the server which icon to show for different # files or filename extensions. These are only displayed for FancyIndexed # directories.gif .gif ./icons/sound2. # AddIconByEncoding (CMP.gif README /icons/folder.gif .htm .zip /icons/a.right. Febrero-Marzo 2004.gif .tex /icons/bomb./icons/compressed.3.pdf /icons/text. # DefaultIcon /icons/unknown.3.wrl .gif . # # Directives controlling the display of server-generated directory listings.exe /icons/binhex./icons/text.gz . # # # FancyIndexing is whether you want fancy directory indexing or standard.gif) image/* (SND.vrm .gif .z .gif ./icons/image2. /icons/hand.gif) audio/* (VID. Módulo 4.gif .eps /icons/layout.gif .tar ________________________________________________________________________________ CFIE 2 Valladolid.uu /icons/script.tar' is placed before # `apache-1. Pág 11 .wrl.gif) x-compress x-gzip AddIconByType AddIconByType AddIconByType AddIconByType AddIcon AddIcon AddIcon AddIcon AddIcon AddIcon AddIcon AddIcon AddIcon AddIcon AddIcon AddIcon AddIcon AddIcon AddIcon AddIcon AddIcon AddIcon AddIcon AddIcon (TXT. so that `apache-1.vrml .Z .conf .tar'.gif .gz #AddDescription "tar archive" .tar /icons/world2.ps .gif ^^BLANKICON^^ # # DefaultIcon is which icon to show for files which do not have an icon # explicitly set.gif .tgz .sh .bin .gif .gif . # Format: AddDescription "description" filename # #AddDescription "GZIP compressed document" .9.csh .txt /icons/c.gz .hqx /icons/tar.gif) text/* (IMG.ai .gif ^^DIRECTORY^^ /icons/blank.gif # # AddDescription allows you to place a short description after a file in # server-generated indexes.iv /icons/compressed.gif .pl .tcl /icons/tex.

Norwegian Nynorsk (nn) .English (en) .html # # IndexIgnore is a set of filenames which directory indexing should ignore # and not include in the listing. # # HeaderName is the name of a file which should be prepended to # directory indexes.v *. # AddEncoding x-compress Z AddEncoding x-gzip gz tgz # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # DefaultLanguage and AddLanguage allows you to specify the language of a document.Korean (kr) Portugese (pt) .Luxembourgeois* (ltz) Spanish (es) . There is 'work in progress' to fix this and get the reference data for rfc1766 cleaned up. * It is generally better to not mark a page as * being a certain language than marking it with the wrong * language! DefaultLanguage nl Note 1: The suffix does not have to be the same as the language keyword --. Shell-style wildcarding is permitted.Estonian (et) French (fr) . # Despite the name similarity. Módulo 4. This means that all data going out without a specific language tag (see below) will be marked with this one. E. Servidor Páginas Web.Czech(cz) ________________________________________________________________________________ CFIE 2 Valladolid. You can then use content negotiation to give a browser a file in a language the user can understand. # IndexIgnore . and append to directory listings.g.Dutch (nl) .tgz # # ReadmeName is the name of the README file the server will look for by # default. the following Add* directives have nothing # to do with the FancyIndexing customization directives above.Greek-Modern (el) Italian (it) . You probably do NOT want to set this unless you are sure it is correct for all cases. Specify a default language. Febrero-Marzo 2004.t # # AddEncoding allows you to have certain browsers (Mosaic/X 2.Norwegian (no) .German (de) . 'Danmark/dk' versus 'Danish/da'. #AddDescription "GZIP compressed tar archive" . ReadmeName README.Curso: Introducción a las Aplicaciones y Servicios de Internet bajo Linux. Note 3: In the case of 'ltz' we violate the RFC by using a three char specifier. Note: Not all browsers support this.??* *~ *# HEADER* README* RCS CVS *. Note 2: The example entries below illustrate that in some cases the two character 'Language' abbreviation is not identical to the two character 'Country' code for its country. Danish (da) .Swedish (sv) .Catalan (ca) .html HeaderName HEADER.those with documents in Polish (whose net-standard language code is pl) may wish to use "AddLanguage pl .po" to avoid the ambiguity with the common suffix for perl scripts. Pág 12 .1+) uncompress # information on the fly.

tw AddLanguage hr . ________________________________________________________________________________ CFIE 2 Valladolid.dk AddLanguage nl . as the standard dictates that a page # is in iso-8859-1 (latin1) unless specified otherwise i.el AddLanguage it . # AddDefaultCharset ISO-8859-1 # # Commonly used filename extensions to character sets.ca AddLanguage es .cz AddLanguage ru .et AddLanguage fr . Specifying it as # a default does little harm.pt-br AddLanguage ltz . related to javascript and URL parsing # which encourage you to always set a default char set.he AddLanguage el .es AddLanguage sv .Croatian (hr) # AddLanguage da . Pág 13 .de AddLanguage he .Brazilian Portuguese (pt-br) . you # are merely stating the obvious. # # Just list the languages in decreasing order of preference.ru AddLanguage tw .se AddLanguage cz . This is # always a good idea and opens the door for future internationalisation # of your web site.en AddLanguage et .Curso: Introducción a las Aplicaciones y Servicios de Internet bajo Linux.it AddLanguage ja . unless you # are good at carefully testing your setup after each change. Servidor Páginas Web.po AddLanguage kr . You probably want to change this. # LanguagePriority en es da nl et fr de el it ja kr no pl pt pt-br ltz ca sv tw # # ForceLanguagePriority allows you to serve a result page rather than # MULTIPLE CHOICES (Prefer) [in case of a tie] or NOT ACCEPTABLE (Fallback) # [in case no accepted languages matched the available variants] # ForceLanguagePriority Prefer Fallback # # Specify a default charset for all pages sent out.pt AddLanguage nn . # Polish (pl) . should you ever want it. You probably # want to avoid clashes with the language extensions. Febrero-Marzo 2004.kr AddLanguage pt .e.ja AddLanguage pl . Módulo 4.ltz AddLanguage ca .tw AddLanguage zh-tw .no AddLanguage pt-br .nn AddLanguage no .Japanese (ja) # Russian (ru) .nl AddLanguage en . We have # more or less alphabetized them here. There are also some security # reasons in browsers.hr # # LanguagePriority allows you to give precedence to some languages # in case of a tie during content negotiation.fr AddLanguage de .

Big5 . # AddCharset GB2312 . Pág 14 .iso8859-4 .cgi # # For files that include their own HTTP headers: # ________________________________________________________________________________ CFIE 2 Valladolid. # See ftp://ftp.iso8859-1 .kis AddCharset ISO-2022-CN .arb AddCharset ISO-8859-7 .heb AddCharset ISO-8859-9 .latin9 .ucs4 AddCharset UTF-8 .isi. These can be either built into the server # or added with the Action directive (see below) # # To use CGI scripts outside of ScriptAliased directories: # (You will also need to add "ExecCGI" to the "Options" directive.koi8-ru AddCharset KOI8-ru .utf8 AddCharset big5 .cp-1251 .euc-tw AddCharset EUC-JP .ua AddCharset ISO-10646-UCS-2 . mostly): AddCharset WINDOWS-1251 .big5 # For russian.isi.latin2 .koi8-r .grk AddCharset ISO-8859-8 .iso2022-jp .cis AddCharset Big5 .trk AddCharset ISO-2022-JP .gb AddCharset utf-7 .jis AddCharset ISO-2022-KR .latin3 AddCharset ISO-8859-4 . # # See ftp://ftp.cyr .cen AddCharset ISO-8859-3 .b5 AddCharset EUC-TW .utf8 # The set below does not map to a specific (iso) standard # but works on a fairly wide range of browsers.iso2022-kr .euc-jp AddCharset EUC-KR .win-1251 AddCharset CP866 .tgz # # AddHandler allows you to map certain file extensions to "handlers": # actions unrelated to filetype.ucs2 AddCharset ISO-10646-UCS-4 .iso8859-8 .big5 .iso2022-cn . but it # does for some browsers). Note that # capitalization actually matters (it should not.iso-ru AddCharset ISO-8859-6 .) # #AddHandler cgi-script .latin7 .latin6 .iso8859-9 .iso8859-3 . # AddType application/x-tar . more than one charset is used (depends on client.edu/in-notes/iana/assignments/character-sets for # the official list of charset names and their respective RFCs # AddCharset ISO-8859-1 .latin4 AddCharset ISO-8859-5 .edu/in-notes/iana/assignments/character-sets # for a list of sorts.gb2312 .koi8-uk .latin1 AddCharset ISO-8859-2 .euc-kr AddCharset shift_jis .Curso: Introducción a las Aplicaciones y Servicios de Internet bajo Linux. Febrero-Marzo 2004.latin8 .types for specific file types.iso8859-6 . Módulo 4.cp866 AddCharset KOI8-r .iso8859-2 .iso8859-7 . Servidor Páginas Web.latin5 .sjis # # AddType allows you to add to or override the MIME configuration # file mime. But browsers support few.iso8859-5 .utf7 AddCharset utf-8 .

0 BrowserMatch "Java/1\.pl" #ErrorDocument 402 http://www. Módulo 4.0 BrowserMatch "JDK/1\. # # To parse . Format: Action media/type /cgi-script/location Format: Action handler-name /cgi-script/location # # Customizable error responses come in three flavors: # 1) plain text 2) local redirects 3) external redirects # # Some examples: #ErrorDocument 500 "The server made a boo boo.example. This fixes a # problem with Microsoft WebFolders which does not appropriately handle # redirects for folders with DAV methods.) # AddHandler type-map var # Filters allow you to process content before it is sent to the client.Curso: Introducción a las Aplicaciones y Servicios de Internet bajo Linux. # BrowserMatch "Mozilla/2" nokeepalive BrowserMatch "MSIE 4\.shtml # # # # # # # Action lets you define media types that will execute a script whenever a matching file is called. #AddHandler send-as-is asis # # For server-parsed imagemap files: # AddHandler imap-file map # # For type maps (negotiated resources): # (This is enabled by default to allow the Apache "It Worked" page # to be distributed in multiple languages.shtml files for server-side includes (SSI): # (You will also need to add "Includes" to the "Options" directive.0b2." nokeepalive downgrade-1.html #ErrorDocument 404 "/cgi-bin/missing_handler.com/subscription_info.0" force-response-1." #ErrorDocument 404 /missing. Pág 15 . Servidor Páginas Web.0 # # The following directive disables redirects on non-GET requests for # a directory that does not include the trailing slash.) # AddOutputFilter INCLUDES .0" force-response-1.0 BrowserMatch "RealPlayer 4\. # BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirectcarefully BrowserMatch "^WebDrive" redirect-carefully ________________________________________________________________________________ CFIE 2 Valladolid. This eliminates the need for repeated URL pathnames for oft-used CGI file processors.html # Alias /error/ "/var/www/error/" # # The following directives modify normal HTTP response behavior to # handle known problems with browser implementations.0" force-response-1. Febrero-Marzo 2004.0 force-response-1.

com #</IfModule> # End of proxy directives.your-domain.edu joes.allow # Deny from all # Allow from .com another-domain. # ("Full" adds the server version.your-domain. Módulo 4. # #<Location /server-status> # SetHandler server-status # Order deny.1 #CacheDefaultExpire 1 #NoCache a-domain.allow # Deny from all # Allow from .1 "Via:" headers.c> #ProxyRequests On # #<Proxy *> # Order deny. Pág 16 .com" to match your domain to enable. Uncomment the following lines to # enable the proxy server: # #<IfModule mod_proxy.garage-sale.Curso: Introducción a las Aplicaciones y Servicios de Internet bajo Linux. edit and uncomment the following lines: # (no cacheing without CacheRoot) # #CacheRoot "/etc/httpd/proxy" #CacheSize 5 #CacheGcInterval 4 #CacheMaxExpire 24 #CacheLastModifiedFactor 0.c be loaded). # #<Location /server-info> # SetHandler server-info # Order deny.com #</Location> # # Allow remote server configuration reports.your-domain.your-domain. ________________________________________________________________________________ CFIE 2 Valladolid.allow # Deny from all # Allow from .com #</Proxy> # # Enable/disable the handling of HTTP/1.com #</Location> # # Proxy Server directives. # Change the ".your-domain. with the URL of http://servername/server-status # Change the ". Febrero-Marzo 2004. with the URL of # http://servername/server-info (requires that mod_info. Servidor Páginas Web.com" to match your domain to enable. "Block" removes all outgoing Via: headers) # Set to one of: Off | On | Full | Block # #ProxyVia On # # To enable the cache as well. # # Allow server status reports.

org/docs-2. # # Please see the documentation at # <URL:http://httpd.apache.shtml <Directory "/mnt/usbhd01/pub/web_03/"> AllowOverride none </Directory> HostNameLookups off ________________________________________________________________________________ CFIE 2 Valladolid. This is indicated by the asterisks in the directives below.htm index.htm index.10. Most configurations # use only name-based virtual hosts so the server doesn't need to worry about # IP addresses.0.0/vhosts/> # for further details before you try to setup virtual hosts.lock" CoreDumpDirectory "/etc/httpd" # Defaults for virtual hosts # Logs # # Virtual hosts # # Virtual host Host Virtual por defecto <VirtualHost *> ServerAdmin admin@infoedu.htm index. Pág 17 .virtual1.shtml default.10. ### Sección 3: Definición de Host Virtuales # # VirtualHost: If you want to maintain multiple domains/hostnames on your # machine you can setup VirtualHost containers for them.org ServerName www.html <IfDefine HAVE_SSL> </IfDefine> LogLevel debug </VirtualHost> # Virtual host Virtual Host 0 <VirtualHost 10.org DirectoryIndex index.org DirectoryIndex index. # # Use name-based virtual hosting. Servidor Páginas Web.html default.php index. Módulo 4.0.Curso: Introducción a las Aplicaciones y Servicios de Internet bajo Linux.infoedu. # NameVirtualHost 10. # # You may use the command line option '-S' to verify your virtual host # configuration.html index. Febrero-Marzo 2004.1> DocumentRoot /mnt/usbhd01/pub/web_03/ ServerAdmin capi@infoedu.1 # Where do we put the lock and pif files? LockFile "/var/lock/httpd.

</VirtualHost> # # # # # # # # # # Each directory to which Apache has access can be configured with respect to which services and features are allowed and/or disabled in that directory (and its subdirectories). Pág 18 . primero con el gestor gráfico y luego a pelo editando y modificándolo a mano. Febrero-Marzo 2004. Note that from this point forward you must specifically allow particular features to be enabled . entonces empezaríamos a funcionar. en este macro fichero de configuración existen 3 secciones bien diferenciadas. Bien.conf y arrancar el servidor.deny </Directory> <Directory "/var/www/icons"> Options Indexes MultiViews AllowOverride None Allow from from all Order allow.so if something's not working as you might expect. <Directory "/"> Options FollowSymLinks AllowOverride None </Directory> <Directory "/var/www/html"> Options Indexes Includes FollowSymLinks AllowOverride None Allow from from all Order allow.deny </Directory> Como puede observarse. ________________________________________________________________________________ CFIE 2 Valladolid. Servidor Páginas Web. make sure that you have specifically enabled it below. J Una vez cambiados estos valores podríamos grabar estos datos en /etc/httpd/conf/httpd. la primera trata de los valores comunes a toda la configuración de apache. la segunda a la configuración del servidor por defecto y la tercera trata de los hosts virtuales que el servidor tiene definidos.Curso: Introducción a las Aplicaciones y Servicios de Internet bajo Linux. La parte seleccionada con amarillo son los bloques que más interesan conocer y por supuesto lo que nosotr@s vamos a cambiar del fichero que existe por defecto.conf. Módulo 4. Una vez copiada la información (ya vemos como hacer esto con las páginas que tenemos de prueba…) tendríamos todo listo… pero antes vamos a ver que significa todo esto que está escrito en httpd.deny </Directory> <Directory "/var/www/cgi-bin"> Options ExecCGI AllowOverride None Allow from from all Order allow.org/. como luego veremos en el entorno gráfico para él todo son hosts virtuales sólo que uno de ellos es el por defecto y luego vamos añadiendo los que nosotros queramos.infoedu. pero antes debemos hacer algunas cosillas… Lo primero sería copiar alguna información sobre la carpeta raíz que él tiene como Document Root que es exactamente /var/www/html/. sin más que entrar en el navegador y ejecutar http://www.

org/˜root/ En el gestor gráfico crearemos parte de los puntos 1 y 2 y 3 y a mano configuraremos httpd.0. la primera parte. En esta ventana inicial podemos ver varias cosas que podemos ir escribiendo: Nombre del servidor: www.org Direcciones de escucha del servidor y puertos de escucha: 192. Febrero-Marzo 2004.infoedu.org/~capi/ Sitio web personal del usuario paco (local) en http://www.org/~paco/ Probaremos la seguridad de no acceso a http://www.org Sitio web de host virtual llamado http://www.je.168. Vamos a crear cinco sitios web a saber: 1.infoedu. 6. 4.org.1 para instalar el host virtual http://www. Ojo si se configura por debajo del 1024 es necesario ser usuari@ root para configuarlo y si es por encima de 1024 lo puede hacer cualquier usuari@ -no rootAquí eso es todo. 2. El puerto definido para la escucha de servidores web es el 80.infoedu. 5. Módulo 4.org (lo configuramos antes en el servidor DNS ¿recordáis?) Dirección de e-mail del webmaster: admin@infoedu. básica.infoedu.org Sitio web personal del usuario capi (local) en http://www.1:80 y 10. 3.conf para el resto. de configuración la haremos con el gestor gráfico. Sitio web http://www.infoedu.infoedu.virtual1. CONFIGURACIÓN DE LOS PARÁMETROS A TRAVÉS DEL GESTOR GRÁFICO.1:80 (Se trata de un servidor multihomed y por lo tanto puedo utilizar ambas IP´s para que escuche ¿no? Además utilizaremos la dirección 10. [root@casiopea /root]# redhat-config-httpd invoca al gestor gráfico de configuración.infoedu.1. Como comentábamos antes.infoedu. aunque puede ponerse el que se quiera.org Sitio web seguro (SSL) en https://www.10.virtual1.0. Servidor Páginas Web.10.Curso: Introducción a las Aplicaciones y Servicios de Internet bajo Linux. Pág 19 . pasamos a la solapa Host Virtuales para ver más cosillas: ________________________________________________________________________________ CFIE 2 Valladolid. Equilibrado ¿no? Je.

Como puede observarse aparece el nombre que le hemos dado al nuevo sitio www. Páginas de Error: ________________________________________________________________________________ CFIE 2 Valladolid.0. Logging (logs del sitio).html y default. Volvemos a la configuración del servidor por defecto. sólo que con sus particularidades propias.infoedu.org y la IP 10.virtual1.10. Como os comentaba antes. Luego las veremos una a una. Variables de Entorno y Directorios. Febrero-Marzo 2004. Pág 20 . Módulo 4.htm por si acaso el sitio fue creado para ambientes típicos de Microsoft. entrando en la opción Modificar la configuración por defecto… Aquí vemos a la izquierda opciones de configuración del sitio. Se puede añadir por ejemplo default.1. todos los servidores son para él. 2. Lista de búsqueda de la página de directorio: Listado de nombres que queremos nosotr@s que el servidor “reconozca” cuando entramos en el sitio web sin ponerla explícitamente. ahora veamos las opciones de la derecha: 1. host virtuales sólo que el primero es el por defecto y los otros hay que definirles. Servidor Páginas Web.Curso: Introducción a las Aplicaciones y Servicios de Internet bajo Linux. Para agregar un host virtual -> Botón Añadir y pantallas iguales que las que veremos para el host virtual por defecto ahora mismo.

Pág 21 . así que cambiadlo hacia el valor -> Sin Búsqueda. Módulo 4. Qué hacer si se produce un error.Curso: Introducción a las Aplicaciones y Servicios de Internet bajo Linux. Febrero-Marzo 2004. si redirigimos a una página de error tipo. Servidor Páginas Web. aparece como Búsqueda inversa y debe decir: Sin búsqueda ya que en este caso cada vez que conecta con un sitio le pide al servidor DNS que le confirme a través de una búsqueda inversa que el servidor existe y bla. enviamos las solicitudes de error a otro servidor o lo dejamos tal cual está con las páginas por defecto. ________________________________________________________________________________ CFIE 2 Valladolid. En la solapa Variables de Entorno se colocan valores que pueden venir bien en el inicio del servidor (En nuestro caso es mucho arroz para un pollo… así que lo dejamos) La siguiente ventana Directorios si que vamos a verla: En esta opción veremos que el directorio que controla este sitio web a través de la dirección física /var/www/html/ corresponde con el sitio / (raíz) de nuestro sistema de Servidor de páginas. etc… (No lo tocamos) Vamos a la opción Logging (Cómo tratar los ficheros de log): Nos informa de donde deja los ficheros de log y sobre todo una variable que tenemos que cambiar y ahí no lo está: Búsqueda Inversa del DNS. bla bla y eso al final es tiempo de espera y bajo rendimiento.

También vemos cuanto tiempo se mantiene “viva” la conexión si no hay nuevas peticiones y cuántas peticiones (concurrentes) se pueden hacer por conexión. para nosotr@s y para cualquier servidor con pocos clientes está bien. Febrero-Marzo 2004.Curso: Introducción a las Aplicaciones y Servicios de Internet bajo Linux. tales como donde se almacena el PID generado por el proceso de arranque del demonio httpd. muy. Módulo 4. cual es el archivo de bloqueo y donde se produce el volcado del núcleo del servidor… A nosotr@s de aquí nos interesa saber una cosa. ya que si se perpetrara un ataque y se consiguiera… el /la atacante sería root también L y eso no mola nada. Servidor Páginas Web. Cuando se inicia el servidor de páginas web. el proceso debe arrancarse como usuari@ root (administrador) ya que es un proceso muy importante. nada. Pág 22 . nada por que el barco estaría conquistado en su totalidad… ¿Qué hacemos? Colocamos un/una usuari@ sin mayores permisos para que una vez arrancado el servidor. Volvemos Aceptando a la página principal del Sitio y ahora nos encontramos con la solapa Servidor que pasamos a ver: Esta ventana nos informa de cuestiones de almacenamiento de ficheros operativos del servidor. muy importante. la persona que entre no tenga más permisos que los que tenga est@ usuari@ (¡¡¡Qué a nadie en su sano juicio se le ocurra poner al usuari@ apache dentro del grupo de administradores!!! ó poner aquí root ¿eh?) BUENO J Vamos a ver la ventana de Ajustes de Rendimiento: Esta ventana permite configurar cuantas conexiones simultáneas se permiten hacer cómo máximo sin tener que recompilar el Kernel L de la máquina. Así mismo vemos que no se pueden hacer ________________________________________________________________________________ CFIE 2 Valladolid. pero luego una vez arrancado sería una “temeridad” mantener el servidor con el /la usuari@ root como responsable.

Curso: Introducción a las Aplicaciones y Servicios de Internet bajo Linux. u obtenerlo de una entidad certificadora oficial tal como la FNMT ó Verisign previo pago de un dinerito. es preciso el prefijo https:// en la invocación de la URL. Módulo 4. En la solapa Host Virtual existía otra opción llamada SSL ( Secure Socket Layer) o conexión de Sitio Web seguro en la que pueden verse: Habilitar el soporte SSL que debe estar marcado si se quiere que para este sitio web o sea www. y si esto lo hacen 150 clientes a la vez pueden dejar a nuestro servidor más tieso que la mojama. a lo cual le decimos Si. utilizando una combinación del protocolo SSL y un certificado de una autoridad certificadora (CA).org exista la posibilidad https://. Febrero-Marzo 2004.infoedu. El certificado aprobado por la CA proporciona autentificación para el servidor web seguro (La CA otorga su reputación a la certificación de la identidad de la organización que tiene el servidor).org y eso es otro cantar. Hasta aquí hemos definido la configuración normal del servidor http://www. así que nuestro servidor “sirve” una página y desconecta con el cliente. se utilizará la criptografía de clave pública para crear el par clave pública-clave privada. Ahora aparecen otra serie de opciones altamente importantes para el funcionamiento de un sitio web seguro (cifrado) origen-destino. Parece claro cuales son los motivos de la elección J ¿no? ________________________________________________________________________________ CFIE 2 Valladolid.org.infoedu. Para configurar el servidor s eguro. Pág 23 . con mayor rendimiento y se sirve a más clientes. Servidor Páginas Web. conexiones persistentes ya que esto significaría que el cliente “pillaría” al servidor todo el tiempo hasta que acabase de solicitarle páginas. Puede crear su propio certificado (llamado certificado “auto-firmado) que será nuestro caso de ejemplo. Para poder trabajar con seguridad son necesarios ciertos ajustes del servidor entre ellos que proporcione seguridad en las comunicaciones. Un servidor seguro utiliza un certificado de servidor para identificarse ante los navegadores.infoedu. pero os recuerdo que también necesitábamos configurar el servidor https://www. Cuando se lleva a cabo una comunicación mediante el cifrado SSL. hasta que ese cliente le pida más cosas y así sí que las cosas funcionan mejor. El protocolo SSL gestiona la comunicación cifrada y la autentificación mutua entre el servidor y el navegador (cliente).

rpm y se lo traga.rpm que hay ahí y lo copio al /root por ejemplo.con el comando: [root@casiopea /root]# rpm –i /root/apr-devel-version. Servidor Páginas Web. certificados. Estos son todos ellos: NOMBRE DEL PAQUETE httpd mod_ssl openssl httpd-devel httpd-manual openssh openssh-askpass openssh-askpass-gnome openssh-clients openssh-server openssl-devel stunnel UBICADO EN EL GRUPO Demonios/Entorno Sistema Demonios/Entorno Sistema Demonios/Entorno Sistema Desarrollo/Librerías Documentación Aplicaciones/Internet Aplicaciones/Internet Aplicaciones/Internet Aplicaciones/Internet Demonios/Entorno Sistema Desarrollo/Librerías Aplicaciones/Internet ¿OPCIONAL? No No No Si Si Si Si Si Si Si Si Si La mejor manera de ver si tenemos estos paquetes instalados es preguntarle al gestor de rpm: [root@casiopea /root]# rpm –qa|grep httpd [root@casiopea /root]# rpm –qa|grep openssl [root@casiopea /root]# rpm –qa|grep openssh [root@casiopea /root]# rpm –qa|grep stunnel para los paquetes que comienzan por hhtpd para los paquetes que comienzan por openssl para los paquetes que comienzan por openssh para los paquetes que comienzan por stunnel A mi servidor sólo le falta el paquete httpd-devel necesario por que contiene los ficheros Include que permiten Incluir módulos extra al servidor. y funcionar como un servidor SSL es necesario que una serie de programas estén instalados en nuestro sistema.rpm. luego: [root@casiopea /root]# rpm –i /root/httpd-devel-version.conf que debe ser retocado con las particularidades debidas a esta configuración.d/ssl. mucho más pequeño que su gran hermano httpd.rpm y se lo traga. cojo la versión de httpd-devel-version.rpm y también funciona… Luego pelín desconfiado compruebo que todo fue bien con el rpm –qa|grep nombres y me dice que están así que okeis mackeys… Continuamos EL FICHERO /etc/httpd/conf. Pág 24 . En ese momento me dice que el paquete tiene dependencias y que es preciso instalar también otros dos más: apr-devel-version.conf En algún lugar del fichero /etc/httpd/conf/httpd. Febrero-Marzo 2004.rpm y apr-util-devel-version. luego: [root@casiopea /root]# rpm –i /root/apr-util-devel-version. Arranco el gestor gráfico de rpm de KDE y le digo que instale httpd-develversion.conf.conf: ________________________________________________________________________________ CFIE 2 Valladolid. Para que nuestro sistema pueda generar claves. A continuación veremos este fichero. PAQUETES DE SEGURIDAD NECESARIOS PARA QUE TODO VAYA BIEN.d/ssl.rpm lo cual hago desde el interfaz de texto – el gráfico se queda tieso.conf nos informa que es preciso para funcionar con el módulo mod_ssl que sea cargado y además este hecho provoca que se configure un 2º fichero de configuración para el caso del sitio web seguro llamado /etc/httpd/conf. Módulo 4. Así que me voy al disco 2 de instalación.Curso: Introducción a las Aplicaciones y Servicios de Internet bajo Linux. concretamente antes de la carga de los módulos mediante la sentencia Include conf.d/ssl. y el módulo ssl_mod no viene montado por defecto.

Servidor Páginas Web.apache. # # When we also provide SSL we have to listen to the # standard HTTP port (see above) and to the HTTPS port # Listen 443 # # Dynamic Shared Object (DSO) Support # # To be able to use the functionality of a module which was built as a DSO you # ErrorLog logs/dummy-host.org/ for additional config examples and module docmentation.so # # # # Until documentation is completed. #SSLSessionCache none #SSLSessionCache shmht:/var/cache/mod_ssl/scache(512000) #SSLSessionCache shmcb:/var/cache/mod_ssl/scache(512000) ________________________________________________________________________________ CFIE 2 Valladolid. Módulo 4. # # Some MIME-types for downloading Certificates and CRLs # AddType application/x-x509-ca-cert . # It contains the configuration directives to instruct the server how to # serve pages over an https connection.com-access_log common ## ## ## ## ## ## SSL Global Context All SSL configuration in this context applies both to the main server and all SSL-enabled virtual hosts. Directives and features of mod_ssl are largely unchanged from the mod_ssl project for Apache 1. SSLPassPhraseDialog builtin # Inter-Process Session Cache: # Configure the SSL Session Cache: First the mechanism # to use and second the expiring timeout (in seconds). # # Do NOT simply read the instructions in here without understanding # what they do.example. Pág 25 .3.0/mod/mod_ssl.modssl. For detailing information about these # directives see <URL:http://httpd.com-error_log # CustomLog logs/dummy-host.crl # Pass Phrase Dialog: # Configure the pass phrase gathering process. # LoadModule ssl_module modules/mod_ssl. # The filtering dialog program (`builtin' is a internal # terminal dialog) has to provide the pass phrase on stdout.modssl.org/docs-2. see <URL:http://www. They're here only as hints or reminders.example. please check http://www. ########################################################################### # This is the Apache server configuration file providing SSL support. # The documents are still being prepared from material donated by the # modssl project.Curso: Introducción a las Aplicaciones y Servicios de Internet bajo Linux.crt AddType application/x-pkcs7-crl . If you are unsure # consult the online docs. You have been warned.org/docs/> for this info.html> # # For the moment. Febrero-Marzo 2004.

# WARNING! On some platforms /dev/random blocks if not enough entropy # is available. Keep in mind that if ________________________________________________________________________________ CFIE 2 Valladolid. If # the certificate is encrypted. So. SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL # Server Certificate: # Point SSLCertificateFile at a PEM encoded certificate. then you will be prompted for a # pass phrase. Keep in mind that if you've both a RSA and a DSA # certificate you can configure both in parallel (to also allow # the use of DSA ciphers. Read the mod_ssl User # Manual for more details. This means you then cannot use the /dev/random device # because it would lead to very long connection times (as long as # it requires to make more entropy available). A test # certificate can be generated with `make certificate' under # built time. use this one instead. etc. Servidor Páginas Web. Módulo 4. use this directive to point at the key file. But usually those # platforms additionally provide a /dev/urandom device which doesn't # block. Febrero-Marzo 2004.org ErrorLog logs/ssl_error_log TransferLog logs/ssl_access_log # SSL Engine Switch: # Enable/Disable SSL for this virtual host. if available.org:443 ServerAdmin adminweb@infoedu.crt/server. SSLMutex file:logs/ssl_mutex # Pseudo Random Number Generator (PRNG): # Configure one or more sources to seed the PRNG of the # SSL library.Curso: Introducción a las Aplicaciones y Servicios de Internet bajo Linux.crt/server-dsa. # See the mod_ssl documentation for a complete list. SSLRandomSeed startup builtin SSLRandomSeed connect builtin #SSLRandomSeed startup file:/dev/random 512 #SSLRandomSeed startup file:/dev/urandom 512 #SSLRandomSeed connect file:/dev/random 512 #SSLRandomSeed connect file:/dev/urandom 512 ## ## SSL Virtual Host Context ## <VirtualHost _default_:443> # General setup for the virtual host DocumentRoot "/var/www/html/ssl" ServerName www.crt #SSLCertificateFile /etc/httpd/conf/ssl.) SSLCertificateFile /etc/httpd/conf/ssl.infoedu. SSLSessionCache SSLSessionCacheTimeout dbm:/var/cache/mod_ssl/scache 300 # Semaphore: # Configure the path to the mutual exclusion semaphore the # SSL engine uses internally for inter-process synchronization.crt # # # Server Private Key: If the key is not combined with the certificate. SSLEngine on # SSL Cipher Suite: # List the ciphers that the client is permitted to negotiate. The seed data should be of good random quality. Note that a kill -HUP will prompt again. Pág 26 .

Types are # none.crt/ca-bundle. Use the provided # Makefile to update the hash symlinks after changes. optional.509 into a Basic Authorisation. This means that ________________________________________________________________________________ CFIE 2 Valladolid. # you've both a RSA and a DSA private key you can configure # both in parallel (to also allow the use of DSA ciphers.[0-9]+$/ #</Location> # # # # SSL Engine Options: Set various options for the SSL engine. etc.key # Server Certificate Chain: # Point SSLCertificateChainFile at a file containing the # concatenation of PEM encoded CA certificates which form the # certificate chain for the server certificate. "Dev"} \ # and %{TIME_WDAY} >= 1 and %{TIME_WDAY} <= 5 \ # and %{TIME_HOUR} >= 8 and %{TIME_HOUR} <= 20 ) \ # or %{REMOTE_ADDR} =~ m/^192\. Use the provided # Makefile to update the hash symlinks after changes. Alternatively # the referenced file can be the same as SSLCertificateFile # when the CA certificates are directly appended to the server # certificate for convinience. #SSLCARevocationPath /etc/httpd/conf/ssl.key/server-dsa.162\.crl/ca-bundle. #<Location /> #SSLRequire ( %{SSL_CIPHER} !~ m/^(EXP|NULL)/ \ # and %{SSL_CLIENT_S_DN_O} eq "Snake Oil. See the mod_ssl documentation # for more details. Servidor Páginas Web. require and optional_no_ca.key/server. #SSLCACertificatePath /etc/httpd/conf/ssl. Depth is a # number which specifies how deeply to verify the certificate # issuer chain before deciding the certificate is not valid. #SSLCertificateChainFile /etc/httpd/conf/ssl.crt #SSLCACertificateFile /etc/httpd/conf/ssl.key #SSLCertificateKeyFile /etc/httpd/conf/ssl. Módulo 4.crt # Certificate Revocation Lists (CRL): # Set the CA revocation path where to find CA CRLs for client # authentication or alternatively one huge file containing all # of them (file must be PEM encoded) # Note: Inside SSLCARevocationPath you need hash symlinks # to point to the certificate files.76\." \ # and %{SSL_CLIENT_S_DN_OU} in {"Staff".Curso: Introducción a las Aplicaciones y Servicios de Internet bajo Linux. Febrero-Marzo 2004. #SSLVerifyClient require #SSLVerifyDepth 10 # Access Control: # With SSLRequire you can do per-directory access control based # on arbitrary complex boolean expressions containing server # variable checks and other lookup directives.) SSLCertificateKeyFile /etc/httpd/conf/ssl. o FakeBasicAuth: Translate the client X. Pág 27 .crl # Client Authentication (Type): # Client certificate verification type and depth.crt/ca. Ltd.crl #SSLCARevocationFile /etc/httpd/conf/ssl. "CA". The syntax is a # mixture between C and Perl.crt # Certificate Authority (CA): # Set the CA certificate verification path where to find CA # certificates for client authentication or alternatively one # huge file containing all of them (file must be PEM encoded) # Note: Inside SSLCACertificatePath you need hash symlinks # to point to the certificate files.

one has to force some clients to use HTTP/1. # o CompatEnvVars: # This exports obsolete environment variables for backward compatibility # to Apache-SSL 1. # Notice: Most problems of broken clients are also related to the HTTP # keep-alive facility. Use this # to provide compatibility to existing CGI scripts. So one usually enables the # exportation for CGI and SSI requests only. i.0" and # "force-response-1. # Per default this exportation is switched off for performance reasons. #SSLOptions +FakeBasicAuth +ExportCertData +CompatEnvVars +StrictRequire <Files ~ "\. too.509 certificate.x. Servidor Páginas Web. Sioux 1.Curso: Introducción a las Aplicaciones y Servicios de Internet bajo Linux. Use # this when you receive I/O errors because of the standard approach where # mod_ssl sends the close notify alert.e.e. # o StrictRequire: # This denies access when "SSLRequireSSL" or "SSLRequire" applied even # under a "Satisfy any" situation.x. i. mod_ssl 2.e.*" \ nokeepalive ssl-unclean-shutdown \ ________________________________________________________________________________ CFIE 2 Valladolid. # o ssl-accurate-shutdown: # This forces an accurate shutdown when the connection is closed. Every entry in the user # file needs this password: `xxj31ZMTZzkVA'. SetEnvIf User-Agent ". no # SSL close notify alert is send or allowed to received. # o ExportCertData: # This exports two additional environment variables: SSL_CLIENT_CERT and # SSL_SERVER_CERT.0" for this. Use # this only for browsers where you know that their SSL implementation # works correctly. i. # the standard Auth/DBMAuth methods can be used for access control.x. # because the extraction step is an expensive operation and is usually # useless for serving static content. # Similarly. but in # practice often causes hanging connections with brain-dead browsers. Pág 28 . This can be used to import the certificates # into CGI scripts. Módulo 4. # o OptRenegotiate: # This enables optimized SSL connection renegotiation handling when SSL # directives are used in per-directory context. When you need a different shutdown # approach you can use one of the following variables: # o ssl-unclean-shutdown: # This forces an unclean shutdown when the connection is closed.0 to workaround # their broken HTTP/1.0 and Stronghold 2. # o StdEnvVars: # This exports the standard SSL/TLS related `SSL_*' environment variables. This is 100% SSL/TLS standard compliant. Use variable "nokeepalive" for this.*MSIE. a # SSL close notify alert is send and mod_ssl waits for the close notify # alert of the client. when it applies access is denied # and no other module can change it. so you usually additionally want to disable # keep-alive for those clients.0.1 implementation. Febrero-Marzo 2004.(cgi|shtml|phtml|php3?)$"> SSLOptions +StdEnvVars </Files> <Directory "/var/www/cgi-bin"> SSLOptions +StdEnvVars </Directory> # SSL Protocol Adjustments: # The safe and default but still SSL/TLS standard compliant shutdown # approach is that mod_ssl sends the close notify alert but doesn't wait for # the close notify alert from client. Use variables "downgrade-1. These contain the PEM-encoded certificates of the # server (always existing) and the client (only existing when client # authentication is used). # Note that no password is obtained from the user. The # user name is the `one line' version of the client's X. This violates # the SSL/TLS standard but is needed for some brain-dead browsers.

key/server. ya que ambos están vacíos y tienen más peligro que un saco de bombas J. 1024 bit long modulus ………………. Lo primero es lo primero.0 force-response-1. necesitamos borrar tanto la clave privada y el certificado que viene por defecto en nuestro sistema. minúsculas. Así que a la tarea: [root@casiopea /root]# rm /etc/httpd/conf/ssl.key/server. la IP de la máquina y su nombre de dominio es el mismo (o sea se va a migrar la máquina) pues entonces aquí van los lugares donde deben copiarse los ficheros de clave privada y el certificado existente: /etc/httpd/conf/ssl. Febrero-Marzo 2004.. Use this when you want a # compact non-error SSL logfile on a virtual host basis.crt Ahora vamos a crear una clave privada propia aleatoria. Pág 29 . downgrade-1.crt que tendrá que mover al sitio nuevo con los nombres que haya decidido poner en su configuración.x hacia 2.crt/server.X el lugar y nombre del almacén de claves y certificados son /etc/httpd/httpsd. Si por un casual alguien está migrando desde versiones de apache 1. Curiosamente es una de las variables que hay que cambiar en la pantalla SSL del gestor gráfico que antes veíamos. ¿Alguien se me pierde? Espero que no… INCISO.key/server.key [root@casiopea /root]# rm /etc/httpd/conf/ssl.Curso: Introducción a las Aplicaciones y Servicios de Internet bajo Linux. \ /usr/bin/openssl genrsa –des3 1024 > /etc/httpd/conf/ssl. CustomLog logs/ssl_request_log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" </VirtualHost> CERTIFICADOS EXISTENTES Si por un casual un@ ya tiene un certificado de una CA prestigiosa. Servidor Páginas Web.0. mayúsculas.++++++++++++++++++++++++e is 65537 (0x10001) Enter PEM pass phrase: Y comenzamos a rellenar lo que nos pida… ¡Ah la contraseña debe tener al menos 8 caracteres e incluir números. etc… y lo mismo para el certificado: ________________________________________________________________________________ CFIE 2 Valladolid. Nos ponemos sobre la carpeta /usr/share/ssl/certs/ de nuestro sistema y escribimos lo siguiente: [root@casiopea /root]# make genkey Y a continuación se realizarán una pregunta sobre la contraseña… pues nada a ello… me muestra algo así como: umask 77.0 # Per-Server Logging: # The home of a custom SSL log file.crt/server. signos de puntuación.key /etc/httpd/conf/ssl.key Generating RSA private key. Módulo 4.key y httpsd.crt para la llave privada y: para el certificado de servidor. GENERACIÓN DE CLAVE PRIVADA.

etc… y luego ya tiene creado el certificado.Curso: Introducción a las Aplicaciones y Servicios de Internet bajo Linux. Teclea en el navegador https://www. Febrero-Marzo 2004.key -x509 –days 365 –out /etc/httpd/conf/ssl. email. y Esto pone un 77 en Es de todos modos un problema deshabilitar la contraseña en el servidor seguro. Servidor Páginas Web.cnf Enter PEM pass phrase: <introduce aquí un password> Luego pide información a cerca del nombre de la empresa.org y verás esta “maravillosa página de bienvenida: ________________________________________________________________________________ CFIE 2 Valladolid. etc… y pagarles por un certificado temporal (1 año) de clase 1 o seimilar y aflojar un dinerito… That´s life.crt Using configuration from /usr/share/ssl/openssl. En nuestro caso nos vamos a generar uno auto-firmado para funcionar en clase ¿ok? Y nada más que para eso J.crt ¡Si los pierdes tienes que comprarlos de nuevo! Sólo queda arrancar de nuevo el demonio httpd y listo… a funcionar J.crt/server. pero si nuestro servidor fuera un Servidor seguro de comercio electrónico. [root@casiopea /root]# /usr/bin/openssl genrsa 1024 > /etc/httpd/conf/ssl. muy distinta ¿eh? Y seguramente tendríamos que ir a Verisign. ciudad. Pág 30 .key ownwer y group del fichero.infoedu. En el caso de un certificado “bueno” es conveniente hacer copia de seguridad de los archivos server. y nuestras máquinas no viven en un mundo real. Módulo 4. TRUCO.key/server. país. la realidad sería otra muy. \ /usr/bin/openssl req –new -key /etc/httpd/conf/ssl. haz lo siguiente. esto que hacemos es sólo por que esto es incurso. Recuerda la contraseña ya que deberás introducirla cada vez que entres en el sitio web seguro. Si no quieres tener que escribir cada vez que entres en el web seguro tu contraseña. Nos vamos a la carpeta /usr/share/ssl/certs y escribimos: [root@casiopea /root]# /usr/share/ssl/certs/make testcert y vemos algo así como: umask 77. Silcon.key como del server.key/server. y os recomiendo que no lo hagáis si vais a poner en marcha un servidor web seguro en producción.key/server. Te pide que la escribas una 2º vez para confirmar y ya está lista.key luego escribe lo siguiente para asegurarte que los permisos sobre el fichero de la clave son correctos: [root@casiopea /root]# chmod go-rwx /etc/httpd/conf/ssl. total esto es un ejemplín de cómo se hace bien. Clarito ¿no? J CREAR UN CERTIFICADO AUTO-FIRMADO (O SEA NADA SEGURO J) Como ya hemos dicho antes. FNMT.

Módulo 4.Curso: Introducción a las Aplicaciones y Servicios de Internet bajo Linux. Pág 31 . Y si quieres puedes ver también a estas alturas la página web no segura creada en http://www. Servidor Páginas Web.org/ ________________________________________________________________________________ CFIE 2 Valladolid.infoedu. Febrero-Marzo 2004.

No tendrá solapa SSL (ya que aquí no vamos a construir la versión https://. Servidor Páginas Web. Febrero-Marzo 2004. así invocamos de nuevo a redhat-config-htpd y vemos que al elegir la solapa Host Virtuales y pedir que se cree uno nuevo aparece lo siguiente: Como puede apreciarse en las opciones generales para este Host Virtual se le dice que dirección IP y como se llamará el Host.Curso: Introducción a las Aplicaciones y Servicios de Internet bajo Linux. Pág 32 . CONFIGURACIÓN DE UN HOST VIRTUAL EN EL SERVIDOR APACHE. Veremos las ventanas de logging: ________________________________________________________________________________ CFIE 2 Valladolid. las variables de entorno no vamos a definir ninguna. Ahora vamos a ver como configurar un Host Virtual a mayores con la herramienta gráfica. Módulo 4. pero bien es cierto que uno de ellos es considerado como Host por defecto y ese es el que hemos visto y hemos configurado hasta ahora –en sus versiones http:// y https://. la solapa de directorio tendrá el directorio raíz (/). Al comienzo de este módulo comentamos que todos los sitios web que se crean son considerados como Host Virtuales para Apache. en que directorio está el / de este servidor nuevo y poco más.

Para que el servidor DNS pueda saber quién es www.0.org y debería respondernos que la encuentra. Módulo 4.reverse) una entrada: 10.virtual1. Servidor Páginas Web.10.dns e infoeduorg.virtual1. Guardar los cambios en ambos y poner de nuevo en marcha el demonio named (/sbin/service named strart) Ahora hacemos un ping a la máquina www.virtual1 A 10.org se “enteren” de que hubo cambios y necesitan sincronizar con el master (Maestro) de nuevo.org. incluir (/var/named/infoeduorg. Y exactamente lo mismo con el fichero de zona incversa (/var/named/infoeduorg. Pág 33 .infoedu.10. AÑADIR ENTRADAS EN LOS FICHEROS DEL SERVIDOR DNS (infoeduorg.htm para el caso de que la página web de inicio del sitio se llamara default.1 PTR www. La página web que podría verse sería como esta: ________________________________________________________________________________ CFIE 2 Valladolid. Febrero-Marzo 2004. Cambiar el número de SERAL del fichero para que los servidores tipo Slave (Esclavos) de infoedu.org se “enteren” de que hubo cambios y necesitan sincronizar con el master (Maestro) de nuevo.infoedu.reverse). Aquí indicaremos las carpetas donde se colocarán los ficheros de logs específicos para este sitio Virtual (hay que crearlas a pedalillo… luego) y le decimos que No realice Búsquedas Inversas de DNS al igual y por los mismos motivos que en el Servidor anterior. editar el fichero de búsqueda directa del dominio infoedu. Por último La ventana de Configuración de Sitio: En la que puede verse que se añadió la entrada default.1 Cambiar el número de SERAL del fichero para que los servidores tipo slave (Esclavos) de infoedu.infoedu.org.Curso: Introducción a las Aplicaciones y Servicios de Internet bajo Linux.dns) una entrada exactamente esta: www.virtual1.htm como en algunas versiones de IIS (servidor de Microsoft).0.org tengo que parar el servidor mediante /sbin/service named stop.

Esta última opción que veremos en este módulo tiene mucho que ver con la posibilidad de que cada usuari@ que tenga una cuenta en un servidor pueda alojar su propia página web en su directorio personal. Gestor gráfico redhat-config-httpd ya que si lo hacemos nuestras configuraciones finales se perderán. A partir de ahora las modificaciones que haremos en el fichero /etc/httpd/conf/httpd. Pág 34 .conf serán definitivas. y una carpeta de inicio. Pues bien existe la posibilidad de decirle a nuestro servidor de páginas que nos habilite la posibilidad de que la carpeta /home/<nombre_usuari@> sea el directorio / de un sitio web personal para <nombre_usuario> y desde ahí se administre cada usuari@ la página como estime pertinente… (Eso no lo veremos). Cuando se crea una cuenta de usuari@ en un servidor Linux. De todos modos os anticipo que esta es la forma en que trabajan los proveedores de servicios Internet (ISP´s) con la mayoría de sus clientes J. normalmente se creará un nombre de usuari@. hechas a mano y además no entraremos más ene. Servidor Páginas Web. o sea en /home/<nombre_usuari@>. un grupo al que pertenece. ¿Entendido? La sección de texto que ahora nos interesa modificar del fichero httpd.conf es la siguiente: ________________________________________________________________________________ CFIE 2 Valladolid. Febrero-Marzo 2004. una contraseña personal. CONFIGURACIÓN DE SITIOS EN CARPETAS WEB PERSONALES DE USUARI@S.Curso: Introducción a las Aplicaciones y Servicios de Internet bajo Linux. Módulo 4.

Febrero-Marzo 2004.html UserDir UserDir UserDir UserDir UserDir UserDir Y por último le digo que en mi carpeta personal (bueno en todas las carpetas personales de l@s usuari@s habilitad@s a tener carpetas personales) existe una carpeta llamada public_html.html http://www.dominio. Módulo 4.dominio.dominio.c> # # UserDir is disabled by default since it can confirm the presence # of a username on the system (depending on home directory # permissions).org/~* veamos las posibilidades que yo tengo: Para visualizar la página de mi carpeta personal /home/capi/proa/index.com/~* http://www. # UserDir "disable" UserDir "enable" capi paco UserDir http://www. pero luego le digo SI para el usuario capi y el usuario paco (definidos previamente como usuarios del sistema local). ________________________________________________________________________________ CFIE 2 Valladolid. pero no de nada más… hago lo siguiente: [root@casiopea /root]# mkdir /home/capi/public_html y lo mismo para el usuario paco: [root@casiopea /root]# mkdir /home/paco/public_html. Servidor Páginas Web.com/capi/html/proa/index.org y veremos las siguientes páginas web de inicio para ambos usuarios.com/~capi/proa/index.com/*/html URL DE RUTA DE REFERENCIA ~capi/public_html/proa/index.com/users http://www. El formato de cómo podrán acceder a su página personal es mediante UserDir http://www.html en distintos formatos: DIRECTIVA USERDIR public_html /public/*/WWW /usr/local/web http://www.com/users/capi/proa/index.dominio. <IfModule mod_userdir.infoedu.infoedu. Pág 35 . Ahora le asigno permisos a la carpeta /home/capi y /home/paco: [root@casiopea /root]# chmod +711 /home/capi [root@casiopea /root]# chmod +711 /home/paco y lo mismo a paco y por ultimo a public_html de capi y paco: y lo mismo a paco: [root@casiopea /root]# chmod +755 /home/capi/public_html [root@casiopea /root]# chmod +755 /home/paco/public_html Ahora copiamos contenido de páginas web de ejemplo en /home/capi/public_html y /home/paco/public_html con a través del servidor ftp.dominio. use this directive instead of "UserDir disable": # UserDir public_html </IfModule> En este módulo le decimos a través del parámetro UserDir que no esté disponible en general para tod@s los usuari@s.html http://www. más bien que no esté disponible.dominio.org/~* # # To enable requests to /~user/ to serve the user's public_html # directory.html http://www.Curso: Introducción a las Aplicaciones y Servicios de Internet bajo Linux. Para asegurarme de crear estas carpetas y de que tengan los permisos apropiados de visualización.infoedu.html /public/capi/WWW/proa/index.html /usr/local/web/capi/proa/index.

Y para el usuario paco: ________________________________________________________________________________ CFIE 2 Valladolid. Pág 36 . Servidor Páginas Web. Febrero-Marzo 2004. Módulo 4.Curso: Introducción a las Aplicaciones y Servicios de Internet bajo Linux.

Febrero-Marzo 2004. Servidor Páginas Web. ________________________________________________________________________________ CFIE 2 Valladolid. y por seguridad.Curso: Introducción a las Aplicaciones y Servicios de Internet bajo Linux. todo es correcto. queremos probar a copiar contenido en /root/public_html y ver si la llamada a http://www. Por último. Pág 37 .infoedu.org/~root produce algún resultado inesperado… pero no. Módulo 4.