Categorías
Servidores

Programación de una tarea mediante CRON

Programación temporal

En esta parte de la configuración podemos definir cuándo queremos que se ejecute nuestra tarea incluso cómo queremos que se repita.

Tenemos que pensar que los parámetros son números y es bastante fácil así, el orden es minutos, hora, día, mes, día de la semana.

Para ejecutar las tarea el dia 18 de Mayo a las 17:47 todos los años escribiremos lo transformamos a minutos=47 hora=17 día=18 mes=5 todos los años=* el siguiente ejemplo seria 47 17 18 5 *

Cuando quieras indicar que se ejecute cualquiera que sea estos valores usaremos un asterisco *.

Ejemplos de códigos para ejecutar cron

42 23 * * 6Todos los sabados a las once y cuarenta y dos.
34 1 1 * 1Todos los día 1 de cada mes que sean lunes a la una y treinta y cuatro minutos.
*/5 * * * *Cada 5 minutos, sin importar día, ni mes, ni hora.
0 */4 * * *Cada 4 horas
0 2,3,7 * * *Se ejecuta a las 2:00, a las 3:00 y a las 7:00
0 0 * * 5Cada viernes a las 00:00
0 0 * * *Cada día a las 00:00
00 2 1,10,20 * *Tarea que se ejecutará los días uno, diez y veinte de cada mes a las dos de la mañana.
15 * * * 2,4Tarea que se ejecutará todos los martes y los jueves quince minutos pasada la hora en punto
30 23 * * 0Esta tarea se ejecutará todos los domingos a las once y media.

Numeración de los dias de la semana para CRON

Hay que tener cuidado con los días de la semana ya que no empiezan por 1, sino por 0, o en su defecto utilizar Fri, en lugar de 5.

0SunDomingo
1MonLunes
2TueMartes
3WedMiercoles
4ThuJueves
5FriViernes
6SatSábado
Categorías
Servidores

Que se puede hacer con htaccess

Bloquear IP con .htaccess

Para bloquear acceso por IP desde .htaccess debemos ingresar el siguiente código:

order allow,deny
deny from 10.10.10.10
deny from 192.168.0.
deny from all

Las líneas anteriores le indican al servidor de apache que prohíba el acceso de las IP mencionadas.

La segunda IP solo tiene 3 numeros, no es una error, con ello le diremos a apache que bloquee todo el rango de IP de la 192.168.0.1 a la 192.168.0.255.

Bloquear todas las IP menos la tuya

Supongamos que tenemos una web en la que solo queremos que accedan ciertas IP, un panel de gestión, una web administrativa. etc etc..

order allow,deny
allow from 10.10.10.10
deny from all

Donde la IP 10.10.10.10 hay que reemplazarla por su IP, podemos establecer una rango como en el ejemplo anterior.

order allow,deny
allow from 10.10.10.
deny from all

Esto bloqueará todas las IP menos el rango 10.10.10.* donde * es cualquier número entre 0 y 256

Bloquear bots por el user agent

Es muy difícil, además de extenso bloquear bots, mediantes ip, así que podemos utilizar el user agent

RewriteCond %{QUERY_STRING} .
RewriteCond %{HTTP_USER_AGENT} 11A465|Ahrefs|ArchiveBot|AspiegelBot|Baiduspider|bingbot|BLEXBot|Bytespider|CCBot|Curebot|Daum|Detectify|DotBot|Grapeshot|heritrix|Kinza|LieBaoFast|Linguee|LMY47V|MauiBot|Mb2345Browser|MegaIndex|MicroMessenger|MJ12bot|MQQBrowser|PageFreezer|PiplBot|Riddler|Screaming.Frog|Search365bot|SearchBlox|Seekport|SemanticScholarBot|SemrushBot|SEOkicks|serpstatbot|Siteimprove.com|Sogou.web.spider|trendictionbot|TurnitinBot|UCBrowser|weborama-fetcher|Vagabondo|VelenPublicWebCrawler|YandexBot|YisouSpider [NC]
RewriteRule ^.* - [F,L]
Categorías
Servidores

Can’t add or remove any databases en plesk

Error: Unable to remove some of the selected databases. The user specified as a definer (‘root’@’localhost’) does not exist

# plesk db
MariaDB [psa]> CREATE USER 'root'@'localhost' IDENTIFIED BY 'password';
MariaDB [psa]> GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost';
MariaDB [psa]> FLUSH PRIVILEGES;
MariaDB [psa]> exit;

Pongo el hilo del error en ingles… por si aclaran algo mas

Categorías
Servidores

¿Como configurar DKIM en Plesk con un DNS externo?

Pasos a seguir dentro de Plesk

Opción Herramientas y configuración > Configuración del servidor de correo, busca la opción de Protección antispam DKIM y activa Permitir la firma del correo saliente.

Buscas el dominio al que quieres agregar la firma, opción
Configuración de correo una vez allí activa la opción
Usar el sistema de protección antispam DKIM para la firma de mensajes de email salientes.

Hasta aqui todo lo que tienes que hacer dentro del panel de control del Plesk

Pasos a seguir en la Consola SSH

Inicie sesión en el servidor a través de SSH

Las claves privadas se encuentran en el directorio de dominio correspondiente /etc/domainkeys/, por ejemplo, /etc/domainkeys/midominio.com

Para recrear una clave pública desde un privado, ejecute lo siguiente:

# openssl rsa -in /etc/domainkeys/midominio.com/default -pubout -out public.key

El archivo se verá algo como…

# cat public.key
-----BEGIN PUBLIC KEY----- 
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC+aOU9Dw2Qedi6qOEcpbGQ3pHV dsjj564sa++dsaChx6k6I7s1UqeCzaHpKXKLIY4GA601gloVCnnTumZ/5TxnviB Hg1a2lsatt/gCj2pl61a+uALM1oRdgPhxPYefloFpi0lau8thV6u9BYTfUgfqIF+dvFIVlu0MULsWDDJfwIDAQAB 
-----END PUBLIC KEY----- 

Pasos en el Servidor DNS Externo

Copie los datos del archivo de clave pública en el registro TXT para que el dominio lo agregue en un servidor DNS externo.

default._domainkey.example.com IN TXT v=DKIM1;k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC+aOU9Dw2Qedi6qOEcpbGQ3pHV dsjj564sa++dsaChx6k6I7s1UqeCzaHpKXKLIY4GA601gloVCnnTumZ/5TxnviB Hg1a2lsatt/gCj2pl61a+uALM1oRdgPhxPYefloFpi0lau8thV6u9BYTfUgfqIF+dvFIVlu0MULsWDDJfwIDAQAB
Categorías
Servidores

Xenserver: you have reached the maximum number of virtual disks allowed for this virtual machine

you have reached the maximum number of virtual disks allowed for this virtual machine check your settings and try again

Para poder añadir más de 2 discos duros a una virtual machine de Xen Server, solo tienes que instalar las Xenserver tools en el cliente y luego en el gestor activar el/los discos que necesites.

Categorías
Servidores

Activar urlrewrite para el funcionamiento de wordpress en un iis

Quita los mensajes de error detallados de IIS y añade las reglas de rewrite de URL remplazando el contenido de tu fichero web.config

<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="wordpress" patternSyntax="Wildcard">
<match url="*"/>
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
</conditions>
<action type="Rewrite" url="index.php"/>
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>

Categorías
Servidores

Mantener un sitio Web siempre arrancado en el IIS

El IIS por defecto arranca un sitio web en la primera petición de un cliente, y lo mantiene arrancado durante un tiempo establecido (20min), pasado este tiempo, si no hay ninguna petición de ningún cliente, el IIS para el sitio web y recicla sus recursos.

Ante la siguiente petición el IIS deberá volver a iniciar el sitio web, este proceso suele ser costoso, y es lo que ocasiona que la primera petición pueda costar un par de segundos.

Si tenemos un sitio web que sea critico y no queremos que nos ocurra esto, tenemos varias opciones.

Categorías
Servidores

Como crear un CDN con windows server 2016

Voy a ir apuntando las cosas que he realizado para tener un seguimiento

Parece ser que Windows Server ha incorporado DNS policies para gestionar el trafico.

1 Paso Crear la zona primaria

2 Paso a través de powershell crear las subredes correspondientes, parece ser que solo se pueden añadir a través de powershell.

Add-DnsServerClientSubnet -Name "America" -IPv4Subnet 192.0.0.0/24,182.0.0.0/24 
Add-DnsServerClientSubnet -Name "Europa" -IPv4Subnet 141.1.0.0/24,151.1.0.0/24

Podemos consultar las subredes con

Get-DnsServerClientSubnet

Una vez que las subredes de cliente estén en su lugar, el siguiente paso es dividir la zona «midominio.com» en dos ámbitos de zona diferentes, cada uno para América y Europa.

Un ámbito de la zona es una instancia única de la zona. Una zona DNS puede tener varios ámbitos de zona, con cada ámbito de zona que contiene su propio conjunto de registros DNS.

El mismo registro puede estar presente en múltiples ámbitos, con diferentes direcciones IP.

De forma predeterminada, existe un ámbito de zona en las zonas DNS. Este ámbito de zona tiene el mismo nombre que la zona y las operaciones de DNS heredadas funcionan en este ámbito.

Add-DnsServerZoneScope -ZoneName "midominio.com" -Name "AmericaZoneScope"
Add-DnsServerZoneScope -ZoneName "midominio.com" -Name "EuropaZoneScope"

El siguiente paso es agregar los registros que representan el host del servidor web en los dos ámbitos de zona: AmericaZoneScope y EuropaZoneScope.

En AmericaZoneScope, se agrega el registro midominio.com con la dirección IP 192.0.0.1, que se encuentra en un datacenter americano; Y en EuropaZoneScope se agrega el mismo registro (midominio.com) con la dirección IP 141.1.0.1 en el datacenter europeo.

Add-DnsServerResourceRecord -ZoneName "midominio.com" -A -Name "www" -IPv4Address "192.0.0.1" -ZoneScope "AmericaZoneScope
Add-DnsServerResourceRecord -ZoneName "midominio.com" -A -Name "www" -IPv4Address "141.1.0.1" -ZoneScope "EuropaZoneScope"

Añadimos los siguientes registros también se agregan al ámbito de zona predeterminado para garantizar que el resto del mundo todavía puede acceder al servidor web midominio.com desde cualquiera de los dos centros de datos.

Add-DnsServerResourceRecord -ZoneName "midominio.com" -A -Name "www" -IPv4Address "192.0.0.1"
Add-DnsServerResourceRecord -ZoneName "midominio.com" -A -Name "www" -IPv4Address "141.1.0.1"

Una vez creadas las subredes y las particiones (ámbitos de zona), el siguiente paso es crear políticas que conecten estos dos, de manera que cuando la consulta proceda de una fuente en la subred de cliente de América, la respuesta se devuelve desde el ámbito de América De la zona y así sucesivamente. No se requieren directivas para asignar el ámbito de la zona predeterminada.

Add-DnsServerQueryResolutionPolicy -Name "AmericaPolicy" -Action ALLOW -ClientSubnet "eq,AmericaSubnet" -ZoneScope "AmericaZoneScope,1" -ZoneName "midominio.com"
Add-DnsServerQueryResolutionPolicy -Name "EuropaPolicy" -Action ALLOW -ClientSubnet "eq,EuropaSubnet" -ZoneScope "EuropaZoneScope,1" -ZoneName "midominio.com"

+INFO

https://blogs.technet.microsoft.com/networking/2015/05/11/geo-location-based-traffic-management-using-dns-policies/
https://docs.microsoft.com/es-es/windows-server/networking/dns/deploy/dns-policies-overview

Lo podemos comprobar a través de whatsmydns.net

Comandos del powershell para el DNS de microsoft:

  • DnsServerRecursionScope agregar. Este cmdlet crea un nuevo ámbito recursividad en el servidor DNS. Ámbitos de recursión se usan por las directivas DNS para especificar una lista de servidores de reenvío para usarse en las consultas DNS.
  • Quitar DnsServerRecursionScope. Este cmdlet quita ámbitos recursividad existentes.
  • Conjunto DnsServerRecursionScope. Este cmdlet cambia la configuración de un ámbito de recursión existente.
  • Get-DnsServerRecursionScope. Este cmdlet recupera información sobre los ámbitos de recursión existentes.
  • DnsServerClientSubnet agregar. Este cmdlet crea una nueva subred del cliente DNS. Las subredes se usan por las directivas DNS para identificar dónde se encuentra un cliente DNS.
  • Quitar DnsServerClientSubnet. Este cmdlet quita subredes existentes del cliente DNS.
  • Conjunto DnsServerClientSubnet. Este cmdlet cambia la configuración de una subred existente del cliente DNS.
  • Get-DnsServerClientSubnet. Este cmdlet recupera información sobre subredes existentes del cliente DNS.
  • DnsServerQueryResolutionPolicy agregar. Este cmdlet crea una nueva directiva de resolución de consulta DNS. Directivas de resolución de consulta DNS se usan para especificar cómo hacerlo, o si se responde una consulta, en función de distintos criterios.
  • Quitar DnsServerQueryResolutionPolicy. Este cmdlet quita las directivas existentes de DNS.
  • Conjunto DnsServerQueryResolutionPolicy. Este cmdlet cambia la configuración de una directiva existente de DNS.
  • Get-DnsServerQueryResolutionPolicy. Este cmdlet recupera información sobre las directivas existentes de DNS.
  • Habilitar DnsServerPolicy. Este cmdlet permite políticas DNS existente.
  • Deshabilitar DnsServerPolicy. Este cmdlet deshabilita las directivas existentes de DNS.
  • DnsServerZoneTransferPolicy agregar. Este cmdlet crea una nueva directiva de transferencia de zona de servidor DNS. Directivas de transferencia de zona DNS especifican si deseas denegar o pasar por alto una transferencia de zona basada en distintos criterios.
  • Quitar DnsServerZoneTransferPolicy. Este cmdlet quita directivas de transferencia de zona de servidor DNS existentes.
  • Conjunto DnsServerZoneTransferPolicy. Este cmdlet cambia la configuración de una directiva de transferencia de zona de servidor DNS existente.
  • Get-DnsServerResponseRateLimiting. Este cmdlet recupera la configuración de RRL.
  • Conjunto DnsServerResponseRateLimiting. Este cmdlet cambia RRL settigns.
  • DnsServerResponseRateLimitingExceptionlist agregar. Este cmdlet crea una lista de excepciones RRL en el servidor DNS.
  • Get-DnsServerResponseRateLimitingExceptionlist. Este cmdlet recupera RRL excception listas.
  • Quitar DnsServerResponseRateLimitingExceptionlist. Este cmdlet quita una lista de excepciones RRL existente.
  • Conjunto DnsServerResponseRateLimitingExceptionlist. Este cmdlet cambia RRL listas de excepciones.
  • DnsServerResourceRecord agregar. Este cmdlet se ha actualizado para admitir el tipo de registro desconocido.
  • Get-DnsServerResourceRecord. Este cmdlet se ha actualizado para admitir el tipo de registro desconocido.
  • Quitar DnsServerResourceRecord. Este cmdlet se ha actualizado para admitir el tipo de registro desconocido.
  • Conjunto DnsServerResourceRecord. Este cmdlet se ha actualizado para admitir el tipo de registro desconocido