Servidor web y Samba
Servidor web ¿Qué es?
Cuando se usa el término “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 están escritos en html (Lenguaje de marcado) o en otros
lenguajes dinámicos 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 páginas
web”, es decir, responder a peticiones de los navegadores vía 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: páginas jsp (java web)
● lighttpd: FreeBSD
Servidor HTTP Apache
Apache es un servidor HTTP bastante utilizado por su configuración y su
flexibilidad.
Puede asignar peticiones a sus procesos hijos, lo que permite que el servidor
funcione de forma más dinámica.
Apache permite agregar módulos de funcionalidad. Con ésto se evita reiniciar
el servidor. Sólamente se debe leer de nuevo su configuración al añadir un
módulo.
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 módulo apache
● a2dismod : deshabilita un módulo del servidor web apache
● a2ensite : habilita un sitio web configurado en conf.d
● a2dissite : deshabilita un sitio web
● apache2 -l : lista de módulos compilados
Configuración /etc/apache2
● Configuración principal en el archivo apache2.conf / httpd.conf
● ports.conf : configuración de puertos, el puerto ssl debe agregarse aquí
● conf.d/ : configuraciones específicas de servidor web
● sites-available/ : archivos de configuración para sitios web
● sites-enabled/ : sitios web que actualmente están siendo usados
● Los módulos se encuentran en:
o /etc/apache2/mods-available/ : módulos disponibles
o /etc/apache2/mods-enabled/ : módulos cargados
● Páginas web se almacenan en /var/www o /srv/www
Parámetros de httpd.conf / apache2.conf
ServerRoot: El directorio donde se encuentran los archivos de configuración.
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: Dirección de correo electrónico del administrador
ServerName: Nombre del anfitrión. No corresponde con el nombre de la
máquina.
Directorios, Alias y Ubicaciones
a. Etiqueta <Directory> … </Directory>
Permiten agrupar directivas que se aplicarán 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 ejecución de scripts CGI
● FollowSymLinks → Ordena que el servidor siga enlaces simbólico
● All → Todas las opciones
Directorios, Alias y Ubicaciones
● DirectoryIndex: Específica archivos HTML o CGI por defecto. Se buscará
index.php o después 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: específica si el archivo .htaccess puede sobrescribir las
configuraciones globales de apache para ese directorio específico
La etiqueta <Location> permite aplicar las mismas directivas de <Directory>
pero basadas en la URL
Directorios, Alias y Ubicaciones
b. Alias
Permite crear un atajo entre el árbol lógico 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
búsqueda de la página “help”.
Anfitriones Virtuales
Se crean para administrar varios sitios web en el mismo servidor.
NameVirtualHost: Especifica la dirección IP donde se recibirán las peticiones.
<VirtualHost> : Esta etiqueta utiliza esa dirección IP para definir un anfitrión
Adicionar en /etc/apache2/sites-enabled/000-default después del virtualhost por defecto,
el siguiente ejemplo:
Anfitriones Virtuales
NameVirtualHost 192.168.1.3
<VirtualHost 192.168.1.3>
ServerAdmin
[email protected]
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
<Directory /var/www/innovaco>
Options FollowSymLinks Multiviews
AllowOverride None
</Directory>
</VirtualHost>
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
Archivo .htaccess
Permite configurar parámetros para los directorios y subdirectorios sin
necesidad de modificar el archivo de configuración principal de Apache.
El sufijo “access” se utiliza porque en este archivo se especifican parámetros
de seguridad. Permiten bloquear a usuarios por su dirección IP y/o dominio,
bloquear bots y arañas web (bots).
Este archivo también sirve para modificar las URL’s, permitiendo que éstas
sean menos extensas (usan el módulo rewrite).
Configurar sitios web personales
Sitios al estilo artemisa.unicauca.edu.co/~ecaldon
Módulo userdir.mod: Permite crear sitios web personales
1. Crear enlace virtual de los módulos 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 módulos que se acaban de ingresar.
# Include /etc/apache2/mods-available/userdir.conf
# Include /etc/apache2/mods-available/userdir.load
En debian, estos módulos se incluyen automáticamente a través de las
sentencias Include mods-enabled/*.load e Include mods-enabled/*.conf del
archivo de configuración 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
<Directory /home/*/web>
Options Indexes Multiviews FollowSymLinks
Allowoverride None
Order allow,deny
allow from all
</Directory>
Sitios web con ssl
Secure Sockets Layer = Capa de Conexión Segura. SSL utiliza criptografía
para autenticar el servidor en una conexión.
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
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: <contraseña>
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: <Tu organización>
Organizational Unit Name (eg, section) []: <Tu departamento>
Common Name (eg, YOUR name) []: <Nombre de sevidor en el DNS o Direccion
IP>
Email Address []: <email>
#No pongas nada en lo siguiente
Please enter the following 'extra' attributes to be sent with your certificate request
A challenge password []: <contraseña>
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
# mv servidor.key servidor.crt /etc/apache2/ssl
# chmod 500 /etc/apache2/ssl/servidor*
Sitios web con ssl
Configuración de Apache para SSL:
1.
Instalar el módulo SSL en Apache
#a2enmod ssl
1. Revisar el archivo /etc/apache2/ports.conf
NamemeVirtualHost *:80
NameVirtualHost *:8080
Listen 80
Listen 8080
<IfModule mod_ssl.c>
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
Sitios web con ssl
2. Editar el archivo /etc/apache2/sites-available/default-ssl
<VirtualHost *:443>
ServerAdmin <<webmaster@tudomonio>>
ServerName <<www.tudominio.com>>
ServerAlias <<tud
Comentarios de: Servidor web y Samba (0)
No hay comentarios