Ruta

Servidores

servidor

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".

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 ?

Hay muchas lista negras y servicio como el pretendemos hacer, por ejemplo:

Los motivos por lo que quiero crear uno mucho más particular y nuestro es:

  • No encuentro ninguno en Español :-)
  • El uso de sus bases datos no lo veo sencillo.
  • Aunque formandose un poco seguro que se puede utilizar sus bases datos, no creo que sea fácil añadir una IP para el bloque más inmediato.

 ¿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.

 

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.

En web es fundamental revisrar el log de acceso como log de errores, donde podremos comprobar que peticios y errores se producieron en tu web

Hay aplicaciones muy interesante que puede probar como :

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

En este link hace un pequeño analisis de algunas de ella.

Tambien puede utilizar metodos muchos mas caseros como utilizar una hoja calculo, el problema de esto es que los ficheros log suelen ser muy pesados y grandes.

Como cortar un fichero muy grande y pesado

Esto ficheros (log) suelen ser tan grandes que se hace muy pesado poder trabajar con esos ficheros. Lo podemos resolvemos desde terminal de linux con la instrucción split , que es un comando que divide un fichero en pedazos.

La mayoría de la veces nos interesa hacer la division por lineas.

split -l 24000 nombreficherooriginal  nombredestino[suffix]

La instrucción anterior lo que hace es dividir el fichero [nombreficheroriginal] cada 24000 lineas y crear tantos ficheros [nombredestino] que necesita con [suffix] por defecto letras.

Muchos veces no sabemos cuantas lineas tiene el fichero, podríamos dividir por peso con:

split nombreficherooriginal  -b 20MB nombrefichero[suffix]

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

Programa de lectura de ficheros desde terminal

Lo recomentable es utilizar instruccione de terminal que nos faciliten la lectura de estos ficheros sin necesidad de tener cargar todo el fichero, comando como :

  • head
  • tail
  • less
  • cat ( esto para una lectura rápida y no son muchos ficheros.

 

 

Si nuestro cliente ya tiene el dominio contractado a Arsys y este no quiere transferir el control de su dominio a vosotros, lo que se puede hacer es cambiar las DNS del dominio y apuntarlo a vuestro servidor.

Hay varias formas de realizarlo, pasar simplemente los Registros de DNS de la web o el registro completo, para que en vuestro servidor puedan contralar todos los servicios del dominio.

  • Correo
  • Ftp
  • Web
  • ...

Esto implica que el cliente seguirá pagando el dominio al registrador Arsys.

Comando Interesantes en terminal de linux para conocer los registros DNS

dig nombredominio

host nombredominio

 

¿Cuanto tarda la propagación de DNS ?

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

Esto no es fijo, ya influyen bastantes factores para propagación de las DNS y por experiencia, en muchas ocasiones 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

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.

  • https://www.whatsmydns.net/
  • http://viewdns.info/: Esta puede comprobar muchas más cosas, aparte de las DNS

Comandos de linux interesantes conocer datos de tus dominios

dig

Aunque realmente aun no me apaño con el

host

Comando que utilizo más...

" Comunicáros que está entrada es bastante particular, para uso interno de nuestos técnicos "

OBJETIVO:

Especificar el funcionamiento y procesos necesarios para le uso de nuestros servidores locales ( SERVIDORES DE DESARROLLO )

DATOS DE NUESTRO SERVIDORES LOCALES:

El servidor local que utilizamos tiene las siguientes caracteristicas:

  • Apache 2.0 Handler
  • PHP/5.5.9-1ubuntu4.9
  • Librería php5-xsl
  • Librería php5-tidy
  • Librería php5-curl
  • Librería php5-sqlite

En principio con estás librerías tenemos cubiertas las necesidades de los proyectos webs que tenemos en momento activos.

USUARIOS EN NUESTRO SERVIDOR DE DESARROLLO

Luego nuestro técnico de sistemas nos prepara el servidor, para que nuestro area de trabajo sea distinta para cada usuario y exista un servidor desarrollo unico, controlado con git.

Teniendo en cuenta que el motor de bases de datos será el mismo para todos, es decir, si:

ricardo.local/phpmyadmin

olalla.local/phpmyadmin

desarrollo.local/phpmyadmin

Veremos las mismas bases de datos todos...

El tema de los permisos ,nos obliga utiliza ACLś , donde el tanto usuario del sistema como el usuario de apache ( www-data ) sean los propietario de los ficheros y directorios de trabajo.

Para ello anotamos instrucciones y pasos a seguir para realizar una instalación en nuestro directorio de trabajo (www)

- Copiamos ficheros o descomprimimos ficheros zip directamente en la directorio de trabajo.

- Comprobamos que los permisos sean: 664 para ficheros y 775 para directorios.

Una vez comprobado los permisos o puestos los correctos, podremos instalar si lo requiere.

JOOMLA EN SERVIDOR DESARROLLO

La mayoria de nuestros proyectos web son realizados con Joomla, por eso nuestro servidor local debe estár preparado para el uso de está aplicación.

Por ello una vez tengamos copiados los ficheros , podríamos instalarlos con el propio instalador de Joomla, el cual se ejecuta llamando al directorio/installation

Donde debemos conectar a la base de datos que acabamos de crear , y donde después de indicarle el usuario , nos crearía un fichero configuration.php, una vez terminado nos debería borrar el directorio instalation.

INSTALAR DESDE JOOMLA EN SERVIDOR LOCAL

Para poder instalar una  componente, modulo, plugin o plantilla en nuestro Joomla desde el servidor local, hay que tener en cuenta que tiene que estar el zip dentro del directorio de trabajo, ya que sino nos da un error de permisos.

 

NOTA: ESTA ENTRADA ES UNA GUIA PARA NUESTROS TÉCNICOS NO CREO QUE OS SEA UTIL PARA TODOS LOS USUARIOS.

El cambiar una web, el correo y otros servicios de un servidor a otro, siempre es un proceso delicado, por lo que aquí anotaremos los pasos que realizaremos para hacer el cambio.

  1. Analizamos los servicios que tiene:
    1. Ctas email que tiene, sus contraseñas o generamos nuevas, redirecciones.
    2. Subdominios
    3. Cta ftp y otros servicios que tenga.
  2. Realizamos copia de sus datos
    1. Los fichero del public_html
    2. Copia fichero ftp y otros si fuera necesario
  3. Organizamos su proyecto y servicios en local ( creando un nuevo proyecto en local para el nuevo servidor y asi poder registrar generar fichero datos nuevo.
  4. Cambiamos DNS , ya que nosotros tendremos acceso con otro dominio al servidor antiguo y a sus servicios.( suele ser dominio principal del servidor)
  5. Creamos la Particion en el nuevo servidor, este paso esperando unos poco minutos, el nuevo servidor ya reconoce las DNS.
  6. Entramos en cpanel del nuevo servidor y creamos ctas de servicios y email.
  7. Realizamos instalamos y copiamos los datos del servidor anterior en el nuevo, los email utilizamos imapcopy para poder copiarlos.

Nosotros trabajamos con dos servidores:

  • Servidores Produccion: Aquellos que está publicos en la red.
  • Servidores Desarrollo: Aquellos que está en local.

Por ello en este post pretendemos :

1.- Indicar los permisos de ficheros y directorios de cada uno de los servidores.

2.- Utilizar Access Control Lists (ACL) para el servidor produccion,  consiguiendo que tenga varios propietarios los ficheros y directorios.

En nuestros SERVIDORES PRODUCCIÓN los permisos habituales para ficheros y directorios son de 640 y 750 , es decir permiso de lectura y escritura para propietario , y permiso de lectura para el grupo y otros.

Para ficheros y directorios: 640 ( -rw-r--r-- ) y 750 ( drwxr-xr-x )

En nuestros SERVIDORES DESARROLLOS (SERVIDORES LOCALES) los permisos cambian , ya que trabajamos con ACLs , y los permisos ideales son :

Para ficheros y directorios: 664 ( -rw-rw--r-- ) y 775 ( drwxr-rwxr-x )

Nuestros servidores de producción no solemos revisar los permisos, ya que por defecto determinamos que solo se puedan subir ficheros con esos permisos al subirlos.

Los problemas nos surgen en el servidor de DESARROLO, el servidor local de nuestros programadores, los permisos suelen dar mucha más problemas por ello debemos conocer a fondo como ver, cambiar  los permisos de los ficheros y directorios.

Instrucciones para conocer los permisos desde terminal linux

Si realmente necesitas conocer la gestion de permisos de usuario y grupos usuarios de linux te recomiendo que veas esté link.

Alguna de estás instrucciones nos la facilito "Guillermo- Técnico de sistemas" que nos facilito en su momento nos son muy utiles para ver los permisos de los ficheros y directorios.

¡ Muchísimas Gracias ! -- Desde aquí... :-)

1.- MOSTRAR PERMISOS EN FORMATO NUMERO DE FICHEROS

Si quiere conocer los permiso en formato octal de un solo fichero:

stat -c%a nombrefichero

Pero si lo queremos es que muestre todos los ficheros pero en formato octal:

find /ruta -type f -exec stat -c "%a %n" {} ';'

Al poner -type f , nos muestra los ficheros solamente y no directorios. Muestra todos los ficheros incluidos en el interior de directorios hijos.

2.- MOSTRAR PERMISOS EN FORMATO NUMERO DE DIRECTORIOS

find /ruta -exec stat -c "%a %n" {} ';'

 Al poner  -type d , nos muestra los permisos en numero de los directorios que hay dentro de la ruta indicada.

3.-CAMBIAR PERMISOS DE FICHEROS Y DIRECTORIOS DENTRO DE UNA RUTA

find /ruta -type f -exec chmod 644 {} ';'

find /ruta -type d -exec chmod 755 {} ';'

Cambia los permisos de todos los ficheros y directorios poniendo los permisos 644 y 755 , recordar que para servidores locales ( nuestros) debemos poner 664 y 775 .

4.- COMPROBAR AQUELLOS FICHEROS Y DIRECTORIOS QUE NO TIENE ESOS PERMISOS.

Al trabajar con proyectos grandes, como puede ser una Web en Joomla, esto tiene muchísimos directorios y ficheros, por lo que controlar con las instrucciones anteriores si tiene los permisos correctos, es bastante complejo.

Por ello nosotros utilizamos las siguientes instrucciones en las que nos filtra los ficheros y directorios que NO tengan los permisos bien.

find /ruta -type d ! -perm 775 -exec stat -c "%a %n" {} ';'
find /ruta -type f ! -perm 664 -exec stat -c "%a %n" {} ';'

COSAS QUE QUEDAN POR RESOLVER

El objetivo de está entrada es tener todas la instrucciones necesarias para ver los permisos, de ficheros , que nosotros habitualmente necesitamos en nuestros servidores locales ( PRODUCCION ) por ello aquí anotamos los problemas que vamos encontrando.

PROBLEMA CON EL DIRECTORIO OCULTO GIT

Al realizar el cambio de permisos de todos los ficheros y directorios de un proyecto, si este está tenemos creado un repositorio de git, con las instrucciones anteriores intentan cambiar los permisos del directorio oculto de git ( .git), algo que no debería.

PROBLEMA DE PERMISOS DE FICHEROS SUBIDOS DESDE CMS EN LOCAL

Aunque nuestro técnico configuro el servidor con ACLś, cuando cargamos un fichero desde el CMS este le da los permisos 755 o 644, por lo que el usuario del sistema no tiene permisos a modifica o eliminar ese fichero. ¡ PROBLEMA ! EN SERVIDOR LOCAL CON CONTROLADOR DE VERSIONES (GIT) , QUE INTENTA CAMBIAR ESOS PERMISOS A EL DIRECTORIO OCULTO .GIT SI PONEMOS LA RUTA DE LA RAIZ DEL PROYECTO.

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

 

¿ Qué es un DOMINIO y PARA QUÉ?

Definición de Wikipiedia:
Un dominio de Internet es una red de identificación asociada a un grupo de dispositivos o equipos conectados a la red Internet.

Nosotros lo definimos como:

El nombre ( legible para humanos ) de la IP de nuestro servidor (hosting), hay que también tener en cuenta que un SERVIDOR puede haber muchos dominios en él. Si quieres ver que otras web comparten tu IP, que están hay alojadas en el servidor donde está alojada tu web, lo puedes ver en http://viewdns.info/reverseip/

El sistema de nombres de dominios (DNS) se encarga de traducir ese nombre en la ip de donde encontrar el servidor, para propagar las DNS se utilizan principalmente 13 host en todo el mundo.

Sin la ayuda del sistema de nombres de dominio, los usuarios de Internet tendrían que acceder a cada servicio web utilizando la dirección IP y además, reduciría el número de webs posibles, ya que actualmente es habitual que una misma dirección IP sea compartida por varios dominios, siendo el servidor que se encuentra en esa ip el resuelva los dominios que tiene.

En definitiva un dominio es el nombre que identifica a que servidor tiene que ir para ver o enviar la información. ( como un apartado de correos..) Un dominio tiene varios registros que indican donde ir en cada petición como ejemplo: Registro WWW es el que indica IP en caso peticiones vía WEB

Metodos para resolver el nombre de un dominio.

En el siguiente link que encontré puedes ver de forma grafica y muy bien explicada el funcionamiento de resolver DNS.

Sistema de nombre de dominio:

Los root servers son los encargados de identificar y propogar las DNS de un sus respectivas zonas y dominios raiz.

Inicialmente existian 13, pero me imagino que ahora son algunos más.

Sistema identificacion de nuestro proveedor ISP:

Nuestro proveedor internet, también nos proporciona las ip y la conexion directa los sitios que ya conoce.

 

Sistema de nuestro propio equipo:

Un sistema operativo tiene varios metodos para conocer la ip de un dominio:

El más típico es el cache que nos queda en nuestro navegador, el cual ya nos conecta directamente a los sitios que ya visitamos.

Otras formas es a traves del fichero hosts.

Fichero Hosts

El fichero hosts en la actualizadad tambien es utilizado para bloquear o redirigir web a IP que nos interese.

Ejemplo:

" Tenemos una web en produccion ( publicada) en un servidor, pero queremos realizar una copia de esta web ( web desarrollo) en un servidor, para que nuestro equipo al poner el nombre dominio vaya a nuestra web desarrollo, solo tenemos que añadir la linea ip con el dominio"

Hay que tener en cuenta lo util y peligroso de este fichero si es manipulado.

¿ Como saber si se propaga bien las dns de nuestro dominio ?

Existen varias herramientas en internet para saber que dns y si estan propagando en internet.

Listado servidores de Dns de DMOZ.

 

 

 

Subcategorías