Servidores Web e Servidores de Aplicacións: Diferenzas entre revisións

De Wiki do Ciclo ASIR do IES de Rodeira
Saltar á navegación Saltar á procura
Liña 117: Liña 117:


''Apache'' implementa a autenticación e a autorización mediante módulos. Os principais módulos involucrados son:
''Apache'' implementa a autenticación e a autorización mediante módulos. Os principais módulos involucrados son:
;Tipos de Autenticación: '''mod_auth_basic''' que proporciona autenticación básica, na que a password viaxa en claro, e '''mod_auth_digest''' no que a password viaxa cifrada con [[wikipedia:MD5|MD5]]
;Tipos de Autenticación: '''mod_auth_basic''' que proporciona autenticación básica, na que a password viaxa en claro, e '''mod_auth_digest''' no que a password viaxa cifrada con [[wikipedia:MD5|MD5]]. Os navegadores soportan na súa maioría a autenticación básica, mentras que a ''digest'' está menos soportada. A directiva a utilizar é '''AuthType'''.
;Proveedores de Autenticación: Indican o modo en que se comproba a parella de ''usuario:contrasinal'' e se especifican coa directiva '''AuthBasicProvider''' ou '''AuthDigestProvider'''. Proveedores comúns son ''mod_authn_anon'',''mod_authn_dbd'',''mod_authn_dbm'',''mod_authn_file'',''mod_authnz_ldap''.
;Módulos de Autorización: Indican como se obteñen os permisos sobre os recursos e se especifican coa directiva '''Require'''. Módulos comúns son ''mod_athnz_ldap'', ''mod_authz_dbm'', ''mod_authz_groupfile'',''mod_authz_host'',''mod_authz_owner'' e ''mod_authz_user''.





Revisión como estaba o 15 de outubro de 2013 ás 21:14

Servidores de Aplicacións

Os servidores de aplicacións proporcionan un marco de traballo integrado para a realización de aplicacións web no que o servidor se encarga de procesos comúns como a xestión do acceso ás bases de datos ou o soporte de configuracións de alta dispoñibilidade permitindo ao programador de aplicacións centrarse na lóxica da mesma.

Os servidores de aplicacións manteñen ademáis un entorno de execución de aplicación, común as peticións de todos os clientes, de xeito que é simple compartir información entre estos, e impoñen unha estructura de aplicación que fai relativamente simple a separación entre a lóxica e a presentación da aplicación.

Boxinfo info.png
Os recursos que necesita cada aplicación se indican nun ficheiro de configuración dentro da mesma, e o servidor se encarga de xestionalos e proporcionarllos cando os precise. Este ficheiro se chama en .NET web.config e en Tomcat ROOT.xml.

Os servidores de aplicacións máis empregados hoxe en día son os basados en JAVA como Apache Tomcat ou en .NET como o IIS.


Servidores Web

A misión dos servidores Web e cargar e enviarlle aos clientes os documentos solicitados. Para que o servidor dispoña de capacidade de proceso é necesario engadirlle os módulos correspondentes as tecnoloxías a empregar: SSI, CGI ou as linguaxes de scripting desexadas, como PHP.

Os servidor web máis utilizado no mundo con moita diferencia é o Apache Web Server, seguido polo Microsoft IIS.

Apache Web Server

Apache é a base do que se coñece por entornos LAMP, formados polo Sistema Operativo Linux, o Servidor Web Apache, a Linguaxe de Scripting PHP e o Xestor de Bases de Datos MySQL de uso xeral na Web.

Estructura do Apache

En Debian o apache almacena a súa configuración en /etc/apache2, co seguinte formato:

apache2.conf
Almacena a configuración do servidor (en outras distribucións chámase httpd.conf) incluindo ficheiros que se atopan en outros lugares. Debian trocea o ficheiro en varias carpetas para facilitar a xestión, aínda que ao final a configuración global residirá neste ficheiro.
envvars
Conten variables de entorno relativas ao funcionamento do servidor web.
magic
Almacena bytes de identificación de varios tipos de arquivo.
ports
Configura os portos dende o que Apache servirá as páxinas
conf.d
Neste directorio se configuran os permisos de acceso do servidor a diversos sitios.
mods-available
Neste directorio atópanse os módulos Apache instalados no sistema. Para activalos, é necesario crear un enlace aquí dende a carpeta mods-enabled
mods-enabled
Este directorio contén enlaces aos módulos de mods-available que se atopan activos.
sites-available
Este directorio almacena a configuración dos sitios web virtuais configurados. Para activalos é necesario crear un enlace aquí dende a carpeta sites-enabled
sites-enabled
Este directorio conten enlaces aos sitios web de sites-available que se atopan activos.

Servidores Virtuais

O protocolo http indica na cabeceira da petición o nome do servidor web ao que se lle realiza a solicitude. Esto o aproveitan os servidores web para seleccionar cal dos sitios que albergan deben servir, o que posibilita que un único servidor cunha única dirección IP poda atender varios sitios web ao mesmo tempo coñecidos como Sitios Virtuais.

En Apache a configuración dos sitios virtuais realízase mediante a directiva VirtualHost. Vexamos un exemplo de creación dun sitio virtual chamado www.virtualhost.com.

  • En primeiro lugar debemos crear un ficheiro en /etc/apache2/sites-available coa configuración do sitio. Podemos chamalo, por exemplo, www.virtualhost.com
  <VirtualHost *:80>
     ServerName www.virtualhost.com
     DocumentRoot /var/sites/virtualhost
  </VirtualHost>
Esto indica que o servidor virtual aceptará conexións en todas as IP da máquina (*), no porto 80. Que o servidor atenderá ás peticións de www.virtualhost.com e que os documentos están situados na carpeta /var/sites/virtualhost.
  • Logo debemos activar o sitio, e decir, crear un enlace dende /etc/apache2/sites-enabled. O faremos co script a2ensite:
   a2ensite www.virtualhost.com
Supoñendo que o ficheiro se chame www.virtualhost.com, que non ten por qué.

Configuracións de Seguridade

Alias, Directory, Location

Mediante Directory e Location facilitamos acceso a determiñadas carpetas ao servidor Web e configuramos os seus permisos de acceso. Directory indica o camiño no árbore de directorios do sistema ao directorio a configurar, mentras que Location indica o camiño dende o árbore do sitio web:

   <Directory /var/lib/mywebapp>
   ....
   </Directory>
  <Location /documents>
  ....
  </Location>

Para posibilitar o acceso a directorios que residen fora do árbore do sitio web é necesario empregar a directiva Alias. Por exemplo:

  Alias /myapp /var/lib/mywebapp

Posibilitará o acceso dos clientes aos documentos situados en /var/lib/mywebapp poñendo /myapp detrás da URL do sitio.

Boxinfo info.png
As configuracións de seguridade se poden crear en tres sitios: A nivel de servidor (en conf.d ou apache2.conf), a nivel de host virtual (dentro do VirtualHost) ou a nivel de Directory ou Location

Order, Allow, Deny

Unhas das directivas de seguridade máis importantes a nivel de permisos de acceso son Allow e Deny. Estas directivas se evalúan na orde especificada coa directiva Order.

  • Si especificamos Order Allow,Deny, en primeiro lugar se procesarán todas as directivas Allow, si ningunha directiva Allow permite o acceso, o acceso se denega. Logo procesarán as directivas Deny, e si algunha o prohíbe se denegará o acceso.
  • Si especificamos Order Deny,Allow, en primeiro lugar se procesarán todas as directivas Deny, si ningunha directiva Deny o impide se permite o acceso. Se non, se procesarán as directivas Allow si sigue sen coincidir ningunha entrada se denega o acceso.

O uso de Allow e Deny pode ser:

Allow/Deny from address
Allow/Deny from url
Allow/Deny from all

Options

Mediante Options se poden activar o desactivar certas características dentro do servidor web, do sitio virtual ou dun directorio, dependendo do lugar en que a situemos.

A sintaxe é:

Options [+|-]option [[+|-]option] ...
Options All
Options None
Por defecto o valor é Options All.

Os valores a activar ou desactivar en Options son:

All
Activa todas as opcións salvo MultiViews.'E a opción por defecto
ExecCGI
Permite a execución de CGI.
FollowSymLinks
Permite seguir os enlaces simbólicos. Únicamente funciona no arquivo .htaccess ou dentro dun Directory
Includes
Permite a execución de Server Side Includes (SSI)
IncludesNOEXEC
Permite a execución de Server Side Includes (SSI) pero desactivando a execución de CGI e comandos externos.
Indexes
Permite a listaxe do contido dun directorio no cliente.
MultiViews
Activa a posibilidade de variar o contido enviado en función as características anunciadas polo navegador, como o idioma (Negociación do Contido).
SymLinksIfOwnerMatch
Permite seguir os enlaces simbólicos únicamente si o destiño é do mesmo propietario que a orixe.

Autenticación

Boxinfo info.png
A Autenticación é o proceso de verificación de identidade dun cliente, e a Autorización é o proceso polo que se determiña o nivel de permisos de acceso á información de un determinado cliente a partir da súa identificación

Apache implementa a autenticación e a autorización mediante módulos. Os principais módulos involucrados son:

Tipos de Autenticación
mod_auth_basic que proporciona autenticación básica, na que a password viaxa en claro, e mod_auth_digest no que a password viaxa cifrada con MD5. Os navegadores soportan na súa maioría a autenticación básica, mentras que a digest está menos soportada. A directiva a utilizar é AuthType.
Proveedores de Autenticación
Indican o modo en que se comproba a parella de usuario:contrasinal e se especifican coa directiva AuthBasicProvider ou AuthDigestProvider. Proveedores comúns son mod_authn_anon,mod_authn_dbd,mod_authn_dbm,mod_authn_file,mod_authnz_ldap.
Módulos de Autorización
Indican como se obteñen os permisos sobre os recursos e se especifican coa directiva Require. Módulos comúns son mod_athnz_ldap, mod_authz_dbm, mod_authz_groupfile,mod_authz_host,mod_authz_owner e mod_authz_user.


Configuración de Seguridade a Nivel de Administrador de Sitio

Http Seguro

Internet Information Services

IIS é o servidor proporcionado pola plataforma Windows Server, e proporciona un servidor de aplicacións .NET, xunto cun Servidor Web capaz de executar ASP e ampliable mediante módulos. Igual que o Apache, soporta servidores virtuais, configuración de seguridade a nivel de directorio, autenticación e http seguro.