Servidores

Si buscamos en la WIKIPEDIA , la definición de "SERVIDOR",  se refiere a un nodo que pertenece a red provee a otros nodo denominados clientes.

Siendo un nodo un punto de conexión y unión de varios elementos.

Lo más común es denominar SERVIDOR aun ORDENADOR que ofrece servicios a otros ordenadores dentro de una red y en más concreto a los que ofrecen "ALOJAMIENTO WEB".

Subcategorías

Ratio: 5 / 5

Inicio activadoInicio activadoInicio activadoInicio activadoInicio activado

Comandos básicos para Iniciar/Reiniciar/Parar apache

Start Iniciar servidor

service apache2 start

Restart Reinciar servidor

service apache2 restart

Start Parar servidor

service apache2 stop

Saber que modulos tenemos instalado en Apache2

Con el comando:

a2query -m 

Nos muestra un listado de los modulos activos.

Fichero principal de configuración de Apache2

El fichero principal de configuración de nginx es el fichero apache2.conf. Se localiza en:

/etc/apache2/

En la misma carpeta se encuentra el fichero ports.conf donde se indican los puertos que voy a utlizar en los virtualHost.

 

Localización archivos .conf que contienen los virtual host de los sites

 

Ruta donde localizar los virtualhost disponibles para instalarlos en el servidor

/etc/apache2/sites-available/

 

Ruta donde localizar los virtualhost que ya están corriendo en el servidor

/etc/apache2/sites-enabled/


Habilitar/deshabilitar sites

En apache habilitar un site es mucho más sencillo. Dejo los comandos básicos.

Por ejemplo, para habilitar un site cuyo archivo de configuración se llama blog.conf:

sudo a2ensite blog.conf
service apache2 reload

Esto creará un enlace simbólico en la carpeta sites-enabled y reiniciará el servidor para dejar el site blog habilitado.

¿Y si quiero eliminar algún site? Bastará con deshabilitarlo y reiniciar apache2 con los comandos:

sudo a2dissite blog.conf
service apache2 reload


Actualizando permisos y/o propietarios del site

Después de actualizar algún fichero en tu site es posible que hayas perdido los permisos o que el usuario del fichero haya cambiado. Tanto para apache como para nginx se suele utilizar mucho estos 2 comandos:

Dar como propietario www-data a la carpeta apache2 y a todos sus ficheros/carpetas hijas.

sudo chown -R www-data:www-data /var/www/html/apache

Cambiar los permisos a la carpeta apache y a todos sus ficheros/carpetas hijas

sudo chmod -R 775 /var/www/html/apache

r=read, w=write, x=execute

Owner: 7=rwx, Group: 5=r-x, Other: 5=r-x
Modulos Apache2

Otros comandos muy útiles son aquellos que te permiten cargar módulos o listar los disponibles. Por ejemplo para instalar php en apache2 vas a necesitar cargar un módulo concreto. En mi caso para la versión 7.2 yo tengo php7_module.

Para los modulos de configuración de apache

Habilitar módulo conf

a2enconf php7.2-fpm

Deshabilitar módulo conf

a2disconf php7.2-fpm

Para los modulos generales de apache

Habilitar módulo proxy fcgi

a2enmod proxy_fcgi

Deshabilitar módulo proxy fcgi

a2dismod proxy_fcgi

 

Después de estas instrucciones hay que reiniciar apache.

Listar módulos disponibles:

foouser@fooserver:~# apache2ctl -t -D DUMP_MODULES

Respuesta:


Loaded Modules:
core_module (static)
so_module (static)
watchdog_module (static)
http_module (static)
log_config_module (static)
logio_module (static)
version_module (static)
unixd_module (static)
access_compat_module (shared)
...
...
authz_host_module (shared)
authz_user_module (shared)
autoindex_module (shared)
deflate_module (shared)
dir_module (shared)
env_module (shared)
filter_module (shared)
mime_module (shared)
mpm_prefork_module (shared)
negotiation_module (shared)
php7_module (shared)
proxy_module (shared)
proxy_fcgi_module (shared)
reqtimeout_module (shared)
rewrite_module (shared)
setenvif_module (shared)
status_module (shared)

Puedes ir a las carpetas

/etc/apache2/conf-enabled
/etc/apache2/conf-available

Para comprobar los módulos tipo conf habilitados/disponibles.

El resto de módulos se encuentran en:

/usr/lib/apache2/modules/

Por ejemplo para ver los módulos conf habilitados:

foouser@fooserver:/etc/apache2/conf-enabled# ls 
charset.conf
other-vhosts-access-log.conf
security.conf
localized-error-pages.conf
php7.2-fpm.conf
serve-cgi-bin.conf

Estos directorios son útiles para investigar problemas relacionados con la carga de módulos. Por ejemplo el módulo existe pero no lo tienes habilitado.

 

La instalación de apache consume tiempo y es normal encontrar algunos problemas con los módulos (sobre todo cuando cambias de versión de PHP o subes de versión del S.O). Hay mucha documentación en internet para resolver estos problemas.

Ratio: 5 / 5

Inicio activadoInicio activadoInicio activadoInicio activadoInicio activado

La idea poder acceder a directorios de nuestro servidor local apache con dominios o subdominios. Lo primero es saber que ficheros vamos tocar en nuestro Linux.

- /etc/hosts   -> Este fichero lo podemos editar añadiendo el nuevo dominio y apuntando a la IP del servidor local.

Y los archivos de configuracion de apache estan en : /etc/apache2/sites-available

Encontramos los ficheros de configuración de todos los dominios para ese apache , es ahi donde debemos crear un fichero con el nuevo host., indicando la ruta.

Ejemplo:
Instalamos miweb en carpeta : www/laravel/miweb

Queremos acceder a ella con el subdominio miweb.dominio.es

Pues lo que hacemos es añadir a host:

127.0.0.1    localhost dominio.es
127.0.0.1       miweb.dominio.es  miweb
# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
	<VirtualHost _default_:80>
	# The ServerName directive sets the request scheme, hostname and port that
	# the server uses to identify itself. This is used when creating
	# redirection URLs. In the context of virtual hosts, the ServerName
	# specifies what hostname must appear in the request's Host: header to
	# match this virtual host. For the default virtual host (this file) this
	# value is not decisive as it is used as a last resort host regardless.
	# However, you must set it for any further virtual host explicitly.
	#ServerName www.example.com

	ServerAdmin webmaster@localhost
	DocumentRoot /home/www/public/miweb
	ServerName miweb.midominio.es
	ServerAlias miweb

	<Directory />
		Options FollowSymLinks
		AllowOverride None
	</Directory>
	<Directory /home/www/public/miweb >
		Options Indexes FollowSymLinks Includes ExecCGI
		AllowOverride All
		Order Deny,Allow
		Allow from all
		Require all granted
	</Directory>

	# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
	# error, crit, alert, emerg.
	# It is also possible to configure the loglevel for particular
	# modules, e.g.
	#LogLevel info ssl:warn

	ErrorLog ${APACHE_LOG_DIR}/miweb_error.log
	CustomLog ${APACHE_LOG_DIR}/miweb_access.log combined

	# For most configuration files from conf-available/, which are
	# enabled or disabled at a global level, it is possible to
	# include a line for only one particular virtual host. For example the
	# following line enables the CGI configuration for this host only
	# after it has been globally disabled with "a2disconf".
	#Include conf-available/serve-cgi-bin.conf
< /VirtualHost >

Ahora creamos el fichero miweb.conf en /etc/apache2/sites-available , donde ponermos:

 

 

 

 

Ratio: 3 / 5

Inicio activadoInicio activadoInicio activadoInicio desactivadoInicio desactivado

¿ Qué son las DNS de un dominio?

 "Domain Name System", el sistema de nombres de dominio es básicamente la agenda internet que organiza e identifica dominios en la dirección IP física.

Registro NS

"Name Server" son registros de los servidores que comunicarán la información del DNS de un dominio. Es donde nos permite crear luego los demas registros de dominio, suele disponer de servidor de nombres principales y secundarios para tu dominio.

Es donde tenemos ir cuando queremos cambiar o ver nuestros registros para ese dominio.

Registro SOA

Es un registro principal de DNS donde puedes encontrar los valores:

  • serial: Indica normalmente la fecha de la ultima actualizacion.
  • Dirección correo del administrador de zona del dominio.
  • Valor TTL: Tiempo que se indica a los servidores DNS que debe esperar para volver a comprobar si existen actualizaciones.
  • Refresh: Tiempo que debe esperar un servidor de nombre secundario para comprobar nuevos valores de registro.
  • Reintento: Numero de segundos debe esperar después de un intento fallido de recuperación de datos del servidor primario.
  • Caducidad: El tiempo máximo que servidor de nombre secundario tendra los valores , antes expirarlos.
  • Minimo TTL: El numero de segundo que tiene activo los registros en NS caché antes volver a preguntar, esto para registros no defenidos por dominio.

 

Registro A :

El regisrto A principal, tiene que tener uno cada dominio, ya  proporciona la información sobre la IP donde está alojado el dominio

Registro CNAME:

Registro Canonical Name que sirve para identificar alias o subominios equivalentes a un dominio. No puede usar direcciones IP.

Registro  MX:

 Mail Exchange que es el registro que asocia el servidor de correo electrónico al dominio.

Registro TXT:

En este registro podremos poner varios valores como SPF que es el valida el envió de correo, es decir certifica quienes somos a los demas servidores, sin este valor cualquiera podrían enviar correos en nuestro nombre y no sabríamos decir fuimos nosotros.

 

¿Cuanto tarda la propagación de DNS ?

El tiempo que los registradores de dominios nos comentan es de 36 a 72 horas para los cambios de DNS para estar totalmente en vigor.

Aunque esto no es fijo, ya influyen bastantes factores para propagación de las DNS y normalmente tarda mucho menos, aunque no siempre, hay algún cambio de DNS que nos da guerra:

 Posible problemas:

  1. Lo dominios nacionales y no internacionales tardan un poco más. , sobretodo si es nacional (.es), aunque si vamos red.es podremos ver que DNS tiene enseguida.
  2. Que tu proveedor de internet, tarde más de lo habitual en actualizar.

Este es el motivo de está entrada, con la intencion de recopilar herramientas y comandos que utilizamos para comprobar que la propagación es correcto.

 

Herramientas on-line para ver propagación DNS o si son correctas.

Lo primero es interesante borrar los cache de los servidores de nombres de DNS

A parte hay otras herramientas interesantes, hay varias paginas que nos ayudan a identificar como va la propagación de las DNS, aquí voy poniendo alguna que voy encontrado y es bastante curiosa.

Comandos de linux interesantes conocer datos de tus dominios

dig

Con  comando dig podemos indicar el servidor dns y el dominio y nos indicará que dns tiene. Por ejemplo

dig @8.8.8.8 svigo.es ns

De esta forma nos va indicar:

dnsSvigo

 

dig 8.8.8.8  dominio.xxx ANY

Nos indica todos los registros de eses dominio que tiene en cache el Servidor de Nombres de Dominio (Domain Name Servers o DNS) de Google

Como saber los subdominios que tiene un dominio.

Aunque no tiene mucho ver con el tema de propagación, gestión y control de DNS, lo pongo me parece que es intersante. :-)

Primero googleando un poco encuentro.

dig @ns01.dominio.com dominio.com axfr

Pero lo probe en varios dominios y siempre es fallido, por lo que me puse a buscar un poco mas encontre una esta web:

https://omnisint.io/  web que habla de herramientas Rapid7

Donde tiene una API con curl puede hacer una consulta y te da listado subdominios, y funciona.

curl https://sonar.omnisint.io/subdomains/dominio.com

Donde devuelve lista subdominios.

 

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado

¿ Que es http y https ?

HTTP es el acrónimo de Hypertext Transfer Protocol (en español protocolo de transferencia de hiper texto).  que utilizan los elementos de software de la arquitectura web (clientes, servidores, proxies) para comunicarse, está comunicacion no esta cifrada, si alguien interfiere se pone en medio de esos paquete que enviamos para comunicarnos, el texto es plano y legible.

En cambio, el protocolo HTTPS usa una conexión segura mediante un cifrado SSL y por tanto los datos viajan de un modo seguro de un lugar a otro, ya que si obtuvieran esos paquetes no podrían leerlos ya que estan cifrados, para conseguir esos tenemos que instalar en nuestro servidor un certificado valido.

¿ Que pasa si no utilizo https y no instalo ningún certificado ?

A parte del riesgo que corres de que puedan interferir la comunicación y verla, pues que poco a poco tanto buscadores , como navegadores penalizan mas este tipo de conexiones, por lo no conseguiras trafico a tu web y mas problemas de conexión.

¿ Que certificado debo poner ?

Aquel que sea una autoridad certificadora, muchos proveedores hosting ofrecen ellos algun servicio que te instala un certificado, nosotros utilizamos Let's Encrypt, que es una de las primeras autoridades certificadoras que lo ofrecen de manera gratuita.

¿ Como puedo instalar en mi servidor Let's Encrypt ?

Nosotros utilizamos Certbot que es  una herramienta de software gratuita y de código abierto para usar automáticamente certificados Let's Encrypt en sitios web administrados manualmente para habilitar HTTPS.

Esta herramienta utilizas la consola, existe para muchos sistemas operativos, pero nosotros aquí como siempre solo para Linux y especial para Debian, en la pagina oficial Certbot puede ver las instrucciones de instalación y configuración.( ESTA PARTE CONFIGURACION NOS LA SALTAMOS YA QUE A NOSOTROS YA NOS LA HIZO NUESTRO TÉCNICO9

¿ Como actualizo el certificado Let's Encrypt en nuestro servidor con Certbot?

Esta parte es muy particular de cada uno, nosotros anotamos lo que hacemos nosotros para actualizar en nuestro servidor que tiene CPANEL y permite añadir y modificar certificados.

En nuestro equipo tenemos instalado certbot.

Ratio: 5 / 5

Inicio activadoInicio activadoInicio activadoInicio activadoInicio activado

¿ Como configurar la hora de los emails ?

Si detectamos que la hora que muestran los email, no es la correcta, seguramente es porque esta pillando la hora del servidor, que no será misma de nuestra localidad, para cambiarlo tenemos que ir configuracion global,

seleccionar configuracion global horde

Luego simplemente tenemos que seleccionar idioma y hora , luego selecionar meridiano horario.

configuracion hora horde

Esto fue lo que me mandaron los nuevos propietarios de hosteurope, Godaddy,

Esto está muy bien para una cuenta email, pero que pasa muchas cuentas email

¿ Como eliminar los email que ya no necesitamos de nuestro gestor cliente Horde ?

Por defecto al hacer clic en eliminar en nuestros gestor correo Horde, el email nos queda en nuestra bandeja entrada tachado.

imagen-varios2

Eso es algo bastante incordioso, por lo que lo mejor es que ese correo lo envie a la bandeja de papelera y no lo mantega en la bandeja entrada.

Para ello vamos >>Opciones > Correo

imagen-varios3

Y Mensajes , seleccionamos "Elimininación y traslado de mensajes"

 imagen-varios4

Si marcamos "¿Trasladar mensajes eliminados a la papelera en vez de marcarlos como eliminados en el buzón actual?” , al guardarlo, podemos definir a qué carpeta queremos que nos los mueva,normalmente es a la “Papelera”

imagen-varios5

Fuente del Post y recorte pantallas.

Nuestro agradacimiento a https://www.hostinet.com/formacion/correo-electronico/como-eliminar-nuestros-emails-desde-webmail-en-horde/

 

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado

Objetivo de nuestra lista negra spam

El objetivo principal, es tener una tabla única de todas las ip que realizan spam a nuestras web y correos, de esta forma podremos aplicar bloqueos directos a estas ips en todas las web que gestionamos.

Pretendemos realizar esta lista publica, para que otros puedan consultar si existe alguna IP en nuestra tabla.

También tendremos un formulario para aquellos que quieran corregir esa situación.

¿ Por que una lista propia ?

Aunque hay muchas web que se dedican a ello, algunos ejemplos:

El hecho de que queramos tener nosotros nuestra propia base de datos , no implica que no particemos en los proyectos anteriores, ya que los vemos necesarios y muy interesantes.

La cuestion es que vemos como incomveniente lo siguiente:

  • No encuentro ninguno en Español :-)
  • El uso de sus bases datos no lo veo sencillo.
  • Una gestion personaliza con las incidencias.

 ¿Donde y nombre ?

Lo haremos en un subdominio de nuestro dominio, el nombre la web será, "Anti-spam".

¿ Herramientas que vamos utilizar ?

Joomla y componente recibo , adaptado.

 

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado

Lo primero que debemos identificar que servicios queremos cambiar: web, el correo y ftp.

El cambio necesita un nivel conocimiento tecnico de sistema medio, aquí  creamos las siguiente guia para poder cambiar tu web de servidor.

  1. Analizamos los servicios que tiene:
    1. Ctas email 
    2. Directorio public_html para esa web, ya que puede existir redirecciones.
    3. Base de datos si hay
    4. Subdominios
    5. Cta ftp y otros servicios que tenga.
  2. Nos fijamos en los requisitos tecnicos
    1. Version de php
    2. Espacio y uso disco de todos los servicios.
    3. Trafico ( ya que hay servidores limita ese trafico)
  3. Realizamos copia de sus datos
    1. Copia de la web
    2. Copia fichero ftp
    3. Copia de email
  4. Realizamos prueba en local de la web, para versi podemos cambiar versiones php y actualizarla al máximo.
  5. Preparamos el servidor nuevo con lo requisitos y creando la cuenta email.
  6. Realizamos instalamos y copiamos los datos del servidor anterior en el nuevo, los email utilizamos imapcopy para poder copiarlos ( algo complejo, por ello recomiendo hacer copia en gestores correo alternativo, si tiene correos importantes)
  7. Cambiar DNS y registros del dominio para apuntar al nuevo servidor.
Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado

Si en algún momento tienes la necesidad de revisar los logs de tu sistema, necesitas armarte de valor y paciencia, ya que suele ser una tareas bastante engorrosa.

Cuando tienes una web es fundamental revisar los logs de tu servidor, ya que podremos comprobar que todo va correctamente, los registros de log habituales en un sistema con apache son : log de acceso y log errores, donde encontraras los errores de php.

Hay aplicaciones muy interesante que puedes probar como :

  • Splunk
  • Sumo Logic
  • LogStash
  • GrayLog
  • Loggly
  • PaperTrails
  • ...

En este link hace un pequeño analisis de algunas de ella, aunque nosostros somo de la vieja escuela y utilizamos la terminal.

El primero y gran problema es que suele ser los ficheros log suelen ser muy grandes y comprimidos.

Como cortar un fichero muy grande y pesado

Con la instrucción split , ser puede dividir un fichero en pedazos.

Hay muchas veces que podemos necesitar dividir los ficheros:

Lo podemos hacer por lineas:

split -l 24000 nombreficherooriginal  nombredestino[suffix]

Explicacion del comando anterior:
El comando anteriorr lo que hace es dividir el fichero [nombreficheroriginal] cada 24000 lineas y crear tantos ficheros [nombredestino] con [suffix] por defecto letras.

Dividir por peso:

split nombreficherooriginal  -b 20MB nombrefichero[suffix]

En el ejemplo anterior , lo que hace es dividir el fichero en bloque de 20MB

Programas de lectura de ficheros desde terminal

Somos pro terminal por naturaleza y por edad :-) , por ello lo recomendamos , utilizar programar a ejecutar desde terminal que nos faciliten la lectura de estos ficheros sin necesidad utilizar aplicaciones pesada, incluso desde termnal podermo cargar todo el fichero, con programas como :

  • head
  • tail
  • cat
  • less

 Tail para leer log

 Con la siguiente instrucción nos lee constantemente las ultimas lineas del log que le indiquemos

tail -f error.log

Este programa queda activo mientras no lo canceles con CTRL+c, por lo que si se produce un error te va añadiendo lineas.

Me parece super interesante tenerlo activo mientras estas programando en proyecto y estas en desarrollo.

Cat para leer logs

Este nos hace un lectura rápida del fichero, no muestra el texto por pantalla, todo de un sopetón.

cat error.log

Si el fichero estuviera comprimido, como error.log.2.gz, algo típico en servidores para guardar históricos de errores, pues la instruccion seria este otro comando:

zcat error.log2.gz

No muestra el fichero entero por pantalla.

Less para leer ficheros.

La gran diferencia entre less y cat es que pagina, es decir less nos muestra la primera pagina del fichero, luego pulsando la [barra espaciadora] nos muestra la siguiente, asi sucesivamente hasta termine el fichero.

 

 

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado

Para crear una cuenta WHM simplemente debemos seguir los pasos que nos indica al crear una cuenta nueva.

WHM-1

Y en configuracion de DNS marcar utilizar los servidores de dns que se expecifique en los registros del agente que lo registro, así de esta forma tomará las dns actuales del dominio, no teniendo que esperar al cambio de estás.

WHM-2