lunes, 13 de febrero de 2017

SSH KEYGEN

- SSH - 






Vamos a explicar como en unos pequeños pasos realizar una conexión mediante ssh con claves privadas y publicas entre 2 maquinas. 

Primero vamos a generar las claves que se necesitan para la autenticación, para hacer todo esto se debe tener instalado en ambas máquinas el ssh.

Comando: apt-get install openssh-server 



Para generar la clave que necesitamos escogemos la máquina principal, la que se va a conectar con otra remota, debemos usar en esta máquina

Comando: ssh-keygen -t rsa -b 4096


Con la clave generada debemos pasársela a la otra máquina, se necesita saber la ip de esta
máquina remota, por tanto usaremos el comando: ifconfig.

*** Una vez hecho, debemos meter el archivo con la llave a la carpeta autorized.keys

Cuando hayamos hecho el paso anterior, enviaremos la clave a la maquina remota para que pueda identificarnos.

Comando utilizado: ssh-copy-id luisdonat@luisd
Comando: ssh-copy-id username@hostname



Finalmente,  si nos conectamos mediante ssh ya no pedirá la clave de acceso:

Comando utilizado: ssh luisdonat@192.168.22.25
Comando: ssh username@iplocal





jueves, 9 de febrero de 2017

BALANCEO DE CARGAS

BALANCEO DE CARGAS CON NGINX - APACHE2



Lo primero que necesitamos para el balanceo son 2 máquinas virtuales, con adaptador puente ambas.

En cada una de las dos debemos tener instalado nginx y apache2

apt-get install apache2
ap-get install nginx


Ahora vamos a configurar la parte de nginx de tal forma que quedará así:

Lo que primero que debemos hacer es, crear una copia de seguridad del default de nginx,


cp /etc/nginx/sites-available/default /etc/nginx/sites-available/luisd
 
El archivo default quedará asi:

** Debemos cambiar los puertos a 8080 (recomendable)


El archivo luisd quedará así


Ahora necesitaremos realizar el reseteo de nginx de esta forma:



Una vez hecho, sin ningún error previo, debemos realizar el enlace simbólico, con el comando 


ln -s /etc/nginx/sites-available/luisd /etc/nginx/sites-enabled



Ahora deberemos reiniciar otra vez el servicio nginx de la misma forma que antes.

service nginx restart


Ahora es el momento de la comprobación en la ip de la parte servidora.


-- Como podemos observar, en la misma ip salen los index.html de cada una de las maquinas una en nginx y otra apache




SSL Virtual Host en Apache2

SLL VIRTUAL HOST


Primero:

Habilitaremos el modulo ssl de Apache2: a2enmod ssl

Y reiniciaremos dicho servicio con el siguiente comando: /etc/init.d/apache2 restart




Siguiente hacer:


Como vemos ahora https esta activo y escuchando:



Por consiguiente vamos a crear las key

Aqui con este comando realizaremos la creacion del certificado


Una vez hecho observamos el fichero que conlleva dos claves.
-- Las debemos separar en dos ficheros



Una vez hecho eliminamos el fichero completo que conlleva ambas llaves juntas.



Segundo:


Ahora, haremos una copia del certificado SSL para no perder la original, crearemos una copia para nuestro vhost


Una vez hecha vamosa modificar el archivo, que se quedará de esta forma:

Y lo configuraremos: 
  1. Asegurate que asignas tu IP en la linea de <VirtualHost xxx.xxx.xxx.xxx:443> 
  2. Modificamos el ServerAdmin y ServerName 
  3. Ajusta las rutas de DocumentRoot y Directory si fuese necesario




Debemos poner los nombres de los ficheros de las keys




Luego comprobaremos y nos dirá que la conexión no es segura por tanto debemos verificarlo.

Confirmamos la excepción de seguridad y seguimos.



AQUÍ PODEMOS OBSERVAR LA SEGURIDAD








martes, 24 de enero de 2017

Crear usuarios y contraseñas para poder acceder a una parte de la web

Crear usuarios y contraseñas para poder acceder a una parte de la web


ÍNDICE

1 - Instalación Webmin
2 - Activación Modulos
  2.1 - Configuración del Modulo
3 - Creación y validación de usuario
4 - Acceso al directorio protegido

1 - Instalación Webmin

Si está utilizando la versión DEB del webmin, primero descargar el archivo desde la página de descargas , o ejecutar el comando:

wget http://prdownloads.sourceforge.net/webadmin/webmin_1.831_all.deb

a continuación, ejecute el comando:

dpkg --install webmin_1.831_all.deb

La instalación se realiza de forma automática a / usr / share / webmin , el nombre de usuario de administración establece en la raíz y la contraseña para la cuenta de root actual. Ahora debería ser capaz de conectarse a Webmin en la URL http: // localhost: 10000 / . O si se accede a él de forma remota, sustituya localhost con la dirección IP de su sistema.

Si Debian aviso de dependencias que faltan, se puede instalar con el comando:

apt-get install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl apt-show-versions python

2 - Activación Modulos

Primeramente debemos tener instalados ciertos modulos para poder trabajar correctamente. 
El modulo que necesitaremos es el auth_basic.


Una vez hecho esto es conveniente reiniciar todo webmin para que se actualizen los modulos.

2.1 - Configuración de los modulos.

Para configurar el modulo de auth_basic, debemos acceder a Webmin -> Otros -> Directorios web protegidos -> Agregar protección para un nuevo directorio

La interfaz es la siguiente y debemos configurarlo de la siguiente forma:


Debemos tener en cuenta la configuración de apache.

Ruta: /etc/apache2/apache2.conf



3 - Creación y validación de usuario

Una vez hemos creado la configuración del modulo en Webmin debemos crear un usuario para poder loguearnos luego con nuestra propia clave.

Así seria la interfaz y la configuración:


- Si queremos contraseña la ponemos si no, dejamos el último campo vacío, como observamos en la imagen.

4 - Acceso al directorio protegido

Una vez todo configurado, observamos:

Nos pide usuario y contraseña dependiendo como hayamos configurado, debemos introducir con o sin contraseña.

Recordar: Debemos entrar por el fichero configurado de apache y por la ruta configurada anteriormente en el modulo.

En mi caso: ssl.projecte.lan.luis





Dar permiso a los usuarios locales del servidor para poder publicar web (userdir)

USERDIR


ÍNDICE

1 - Crear la Estructura del Directorio
2 - Otorgar Permisos
3 - Crear una Página de Prueba para cada Virtual Host
4 - Crear Nuevos Archivos Virtual Host
 4.1 - Crear el Archivo Virtual Host






1- Crear la Estructura del Directorio


El primer paso que necesitamos es crear la estructura de directorios que mantendrán la información de nuestro sitio.

Nuestro documento raíz (el directorio principal en el cual Apache busca el contenido para mostrar) será configurado en directorios individuales dentro de la ruta /var/www. 

Luego crearemos los directorios aquí para los dos virtual hosts que pretendemos configurar.

 Dentro de cada uno de estos directorios crearemos un directorio denominado public_html el cual mantendrá la información pública del sitio y sus respectivos archivos. Esto nos dará más flexibilidad en nuestro alojamiento.

Para asegurarnos, para cada uno de nuestros sitios, vamos a crear los directorios así:


2 - Otorgar Permisos

Ahora tenemos la estructura de los directorios para neustros archivos, pero el usuario root es el propietario de ellos. Si queremos que nuestro usuario regular pueda modificar los archivos en nuestro directorio web, necesitamos cambiar el propietario haciendo lo siguiente:

sudo chown -R $USER:$USER /var/www/html/public_html

La variable $USER tomará el valor del usuario con el cual actualmente estás identificado. 
Al hacer esto, nuestro usuario regular ahora es propietario de los directorios public_html donde se almacenará nuestro contenido. Debemos además modificar los permisos un poco para asegurarnos que el permiso de lectura pueda ser aplicado a archivos y directorios para que las páginas puedan ser desplegadas correctamente:

sudo chmod -R 755 /var/www

3 - Crear una Página de Prueba para cada Virtual Host

Actualmente tenemos la estructura en su lugar. 

Vamos a crear contenido para mostrar. Solo vamos a hacer una demostración, así que nuestras páginas serán muy simples. Solo crearemos un archivo index.html para cada sitio. Podemos abrir un archivo index.html mediante un editor escribiendo:

nano /var/www/html/public_html/index.html 

o bien creamos primero el fichero con: 

touch /var/www/html/public_html/index.html

En este archivo, crea un documento HTML simple que indicara que el sitio está conectado. Mi archivo quedó así:




4 - Crear Nuevos Archivos Virtual Host

Los archivos Virtual Host son archivos que contienen información y configuración específica para el dominio y que le indican al servidor Apache como responden a las peticiones de varios dominios. 

Apache incluye un archivo Virtual Host por defecto denominado 000-default.conf que podemos usar para saltarnos al punto. Realizaremos una copia para trabajar sobre ella y crear nuestro Virtual Host para cada dominio. Iniciaremos con un dominio, configuralo, copialo para el segundo dominio, y después realiza los ajustes necesarios. 

La configuración por defecto de Ubuntu requiere que cada archivo de configuración de Virtual Host termine en .conf.

4.1  Como crear el Archivo Virtual Host


Empezando por copiar el archivo para el primer dominio:



Podemos usar la herramienta a2ensite para habilitar cada uno de nuestros sitios haciendo esto:

sudo a2ensite luisd.com.conf

Cuando hayas concluido, deberás reiniciar Apache para asegurarte de que tus cambios surtan efecto:

sudo service apache2 restart

Finalmente, observamos en el navegador el resultado, poniendo la IP + alt gr 4 + nombre de usuario y el resultado es:

** Como podemos observar el lo que pusimos en el fichero index.html


viernes, 20 de enero de 2017

Creación de Virtual Hosts i convinación en el DNS

-------------------------------------

CREACIÓN DE VIRTUAL HOSTS Y CONVINACIÓN EN EL DNS

-------------------------------------



                                   1- ¿Que es un Virtual Host?
                                   2- ¿ Que es un DNS ?
                                   3- ¿Para que sirve un DNS?
                                   4- Creacion de Virtual Host
                                   5- Configuración de VHost
                                   6- Creación de VHost con CName







1- ¿Que es un Virtual Host?

Resultado de imagen de virtual host
El alojamiento compartido o alojamiento virtual, en inglés Virtual hosting, es una de las modalidades más utilizadas por las empresas dedicadas al negocio del alojamiento web. Dependiendo de los recursos disponibles, permite tener una cantidad variable de dominios y sitios web en una misma máquina.
Es, generalmente, la forma más económica de alojamiento web y ha supuesto una pequeña revolución ya que sus reducidos costes (generalmente menos de 5€ mensuales) han hecho posible que muchos profesionales hayan podido llevar su actividad también al mundo online.



2- ¿ Que es un DNS ?


                                              Resultado de imagen de dns images


El sistema de nombres de dominio1 (DNS, por sus siglas en inglés, Domain Name System) es un sistema de nomenclatura jerárquico descentralizado para dispositivos conectados a redes IP como Internet o una red privada. Este sistema asocia información variada con nombre de dominio asignado a cada uno de los participantes. Su función más importante es "traducir" nombres inteligibles para las personas en identificadores binarios asociados con los equipos conectados a la red, esto con el propósito de poder localizar y direccionar estos equipos mundialmente.



3- ¿Para que sirve un DNS?

Cuando un usuario va a entrar en una página Web sólo tiene que poner el nombre del dominio en la barra de direcciones como por ejemplo www.google.com. 

En realidad lo que deberíamos hacer para entrar en www.google.com es escribir una secuencia de números que serían la dirección IP de www.google.com 

Lo que hace el servicio de DNS (sistema de nombres de dominio) es traducir esos números en caracteres mucho más fáciles de recordar por lo que no tenemos que aprender secuencias de números que serían muy difíciles de recordar.

4- Creacion de Virtual Host

Pre-Requisitos

-
Antes de empezar este tutorial, deberías crear un usuario no-root siguiendo los pasos del 1 al 4 en esa guía. Además necesitas tener instalado Apache para poder continuar los siguientes pasos. 

- Si no lo has hecho aún, puedes instalar Apache en tu servidor mediante 
apt-get: -> sudo apt-get update -> sudo apt-get install apache2 

- Después de completar estos pasos, podemos empezar.

- Primeramente vamos al fichero que hemos creado, projecte.lan.luis



- Por consiguiente debemos ir a la zona inferior del fichero y poner las rutas tanto la del cliente para que se comunique como la del servidor para que se puedan comunicar.



- Una vez realizado esto debemos ir a crear la configuración para que todo esté bien comunicado y no de fallos.

- La configuración se quedaría asi:

- Especificaríamos el DocumentRoot --> ruta dónde está el documento de configuración. 


- Creamos un index.html para observar si funciona correctamente.

- Comprobamos que efectivamente funciona con la configuración previamente hecha.


  6- Creación de VHost con CName

- También podemos configurarlo con CNAME que es más efectivo: 
Aqui un ejemplo: