Servidor web y Samba - Universidad del Cauca - ?· Servidor web y Samba . Servidor web ¿Qué es? ...…

  • View
    212

  • Download
    0

Embed Size (px)

Transcript

  • Servidor web y Samba

  • Servidor web Qu es?

    Cuando se usa el trmino servidor web puede hacer referencia al equipo de

    computo (hardware) como al software que gestiona las peticiones http.

    En el servidor web (hw) se alojan una gran cantidad de archivos que

    generalmente estn escritos en html (Lenguaje de marcado) o en otros

    lenguajes dinmicos como ruby, php, python, etc.

    Debido a la complejidad del mantenimiento de un servidor web casero, se

    recurre a empresas que ofrecen este servicio denominado hosting que junto

    con un dominio de internet puede hacerse de su propio servidor web.

  • Servidor web Qu es?

    El servidor web como software tiene como principal tarea ofrecer pginas

    web, es decir, responder a peticiones de los navegadores va http (clientes) y

    enviarles los datos que solicitan.

  • Programas para servidores web

    Existen muchos servidores web (programas):

    Apache: Apache foundation

    nginx: Igor Sysoev (cache)

    IIS (Internet Information Services): Microsoft

    Apache Tomcat: pginas jsp (java web)

    lighttpd: FreeBSD

  • Servidor HTTP Apache

    Apache es un servidor HTTP bastante utilizado por su configuracin y su

    flexibilidad.

    Puede asignar peticiones a sus procesos hijos, lo que permite que el servidor

    funcione de forma ms dinmica.

    Apache permite agregar mdulos de funcionalidad. Con sto se evita reiniciar

    el servidor. Slamente se debe leer de nuevo su configuracin al aadir un

    mdulo.

  • Servidor HTTP Apache

    Comandos:

    /etc/init.d/httpd start #Comando para iniciar el servicio

    /etc/init.d/httpd stop #Comando para detener el servicio

    /etc/init.d/httpd restart #Comando para reiniciar el servicio

    /etc/init.d/httpd reload #Comando para revisar las configuraciones del

    servicio, sin reiniciar

    # service apache2 [start | stop | restart | reload | status] => debian

  • Servidor HTTP Apache

    Comandos:

    a2enmod : habilita un mdulo apache

    a2dismod : deshabilita un mdulo del servidor web apache

    a2ensite : habilita un sitio web configurado en conf.d

    a2dissite : deshabilita un sitio web

    apache2 -l : lista de mdulos compilados

  • Configuracin /etc/apache2

    Configuracin principal en el archivo apache2.conf / httpd.conf

    ports.conf : configuracin de puertos, el puerto ssl debe agregarse aqu

    conf.d/ : configuraciones especficas de servidor web

    sites-available/ : archivos de configuracin para sitios web

    sites-enabled/ : sitios web que actualmente estn siendo usados

    Los mdulos se encuentran en:

    o /etc/apache2/mods-available/ : mdulos disponibles

    o /etc/apache2/mods-enabled/ : mdulos cargados

    Pginas web se almacenan en /var/www o /srv/www

  • Parmetros de httpd.conf / apache2.conf

    ServerRoot: El directorio donde se encuentran los archivos de configuracin.

    Ej: /etc/httpd ; /etc/apache2

    Listen: Puerto(s) por donde apache recibir peticiones. Por defecto, puerto 80.

    User: Usuario creado para los procesos Apache

    Group: Grupo de usuarios para los procesos Apache

    ServerAdmin: Direccin de correo electrnico del administrador

    ServerName: Nombre del anfitrin. No corresponde con el nombre de la

    mquina.

  • Directorios, Alias y Ubicaciones

    a. Etiqueta

    Permiten agrupar directivas que se aplicarn a directorios y subdirectorios.

    Opciones:

    Indexes Muestra el contenido del directorio como un listado si no

    hay archivos HTML por defecto (index.html index.php)

    ExecCGI Autoriza la ejecucin de scripts CGI

    FollowSymLinks Ordena que el servidor siga enlaces simblico

    All Todas las opciones

  • Directorios, Alias y Ubicaciones

    DirectoryIndex: Especfica archivos HTML o CGI por defecto. Se buscar

    index.php o despus index.html

    allow: Indica permisos para los clientes. Pueden ser todos, un dominio,

    una IP, una subred, un par red/subred, entre otros. Para denegar permisos

    se utiliza deny. Se determina el orden por la directiva Order.

    AllowOverride: especfica si el archivo .htaccess puede sobrescribir las

    configuraciones globales de apache para ese directorio especfico

    La etiqueta permite aplicar las mismas directivas de

    pero basadas en la URL

  • Directorios, Alias y Ubicaciones

    b. Alias

    Permite crear un atajo entre el rbol lgico del sitio web y una ruta del sistema

    de archivos.

    Ej:

    Alias /help /usr/share/doc/html

    Aqu se reemplaza /var/www/html/help por /usr/share/doc/html para la

    bsqueda de la pgina help.

  • Anfitriones Virtuales

    Se crean para administrar varios sitios web en el mismo servidor.

    NameVirtualHost: Especifica la direccin IP donde se recibirn las peticiones.

    : Esta etiqueta utiliza esa direccin IP para definir un anfitrin

    Adicionar en /etc/apache2/sites-enabled/000-default despus del virtualhost por defecto,

    el siguiente ejemplo:

  • Anfitriones Virtuales

    NameVirtualHost 192.168.1.3

    ServerAdmin ecaldon@innova.co

    DocumentRoot /var/www/innovaco

    ServerAlias innova.co

    ServerName www.innova.co

    LogLevel warn

    ErrorLog /var/log/apache2/innova-error.log

    CustomLog /var/log/apache2/innova-access.log combined

  • Anfitriones Virtuales

    Options FollowSymLinks Multiviews

    AllowOverride None

    Order allow, deny

    allow from all

    Reiniciar el servicio web: service apache2 restart

  • Anfitriones Virtuales

    Configurar en /etc/hosts el dominio www.innova.co:

    192.168.1.3 www.innnova.co innova.co

    Abrir un navegador e ir a http://www.innova.co , se mostrar el sitio web

    alojado en /var/www/innova

    www.innova.cowww.innnova.cohttp://www.innova.co
  • Archivo .htaccess

    Permite configurar parmetros para los directorios y subdirectorios sin

    necesidad de modificar el archivo de configuracin principal de Apache.

    El sufijo access se utiliza porque en este archivo se especifican parmetros

    de seguridad. Permiten bloquear a usuarios por su direccin IP y/o dominio,

    bloquear bots y araas web (bots).

    Este archivo tambin sirve para modificar las URLs, permitiendo que stas

    sean menos extensas (usan el mdulo rewrite).

  • Configurar sitios web personales

    Sitios al estilo artemisa.unicauca.edu.co/~ecaldon

    Mdulo userdir.mod: Permite crear sitios web personales

    1. Crear enlace virtual de los mdulos en /etc/apache2/mods-enabled:

    # cd /etc/apache2/mods-enabled

    # ln -s ../mods-available/userdir.conf userdir.conf

    # ln -s ../mods-available/userdir.load userdir.load

    Otra posobilidad es usar el comando a2enmod:

    # a2enmod userdir

  • Configurar sitios web personales

    2. Incluir dentro del dominio los mdulos que se acaban de ingresar.

    # Include /etc/apache2/mods-available/userdir.conf

    # Include /etc/apache2/mods-available/userdir.load

    En debian, estos mdulos se incluyen automticamente a travs de las

    sentencias Include mods-enabled/*.load e Include mods-enabled/*.conf del

    archivo de configuracin apache2.conf

    2. Reiniciar el servidor web

    2. Crear el directorio public_html en el directorio del usuario y un archivo

    index.html dentro de l.

  • Configurar sitios web personales

    Si se quiere cambiar el directorio por defecto para los sitios web personales,

    configurarlo en /etc/apache2/sites-enabled/000-default :

    UserDir web

    Options Indexes Multiviews FollowSymLinks

    Allowoverride None

    Order allow,deny

    allow from all

  • Sitios web con ssl

    Secure Sockets Layer = Capa de Conexin Segura. SSL utiliza criptografa

    para autenticar el servidor en una conexin.

    Certificados de seguridad, sitios el estilo https://www.imperialviolet.org/

    #apt-get install openssl

    1. Generar llave privada RSA de 1024 bits y usando triple DES

    #openssl genrsa -des3 -out servidor.key 1024

    https://www.imperialviolet.org/
  • Sitios web con ssl

    2. Guardar llave privada

    # mv servidor.key servidor.key.old

    # openssl rsa -in servidor.key.old -out servidor.key

    Enter pass phrase for servidor.key.old:

    writing RSA key

  • Sitios web con ssl

    3. Crear un CSR (Certificate Signing Request):

    # openssl req -new -key servidor.key -out servidor.csr

    Country Name (2 letter code) AU:ES

    State or Province Name (full name) Some-State:Madrid

    Locality Name (eg, city) []:Madrid

    Organization Name (eg, company) Internet Widgits Pty Ltd:

    Organizational Unit Name (eg, section) []:

    Common Name (eg, YOUR name) []:

    Email Address []:

    #No pongas nada en lo siguiente

    Please enter the following 'extra' attributes to be sent with your certificate request

    A challenge password []:

    An optional company name []:

  • Sitios web con ssl

    Para crear un certificado autofirmado:

    #openssl x509 -req -days 365 -in servidor.csr -signkey servidor.key -

    out servidor.crt

    Este certificado no ser reconocido por los navegadores.

    4. Guardar los archivos en el directorio /etc/apache2/ssl

    # mkdir /etc/apache2/ssl