noviembre 28, 2015

Apache Tomcat seguro



Programas necesarios
1.     Java JRE
2.     Tomcat 7.0
Creacion del keystore


¿Qué es un keystore?
Es un "contenedor" de los certificados de seguridad para uso del servidor java , en este caso tomcat 7.0 ,es decir , un archivo que va a servir para guardar los certificado que usa el servidor web a la hora de usar el protocolo HTTPS.

Para habilitar el uso de conexiones seguras por el protocolo https en tomcat seguiremos los siguientes pasos:
Primero procederemos a crear el denominado keystore de certificados para tomcat , es decir , el almacén de claves donde se encuentran los certificados que va a usar nuestro servidor.

Para ello al estar tomcat programado en java, podemos usar una herramienta contenida en el JDK de java,esta herramienta es la keytool.

Crearemos el keystore de la siguiente forma.


1.     Abrimos el cmd
2.     Introducimos el comando

%JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA -keystore \path\to\my\keystore
(Java home es la ruta donde está instalado java)
*Si no sabemos o no queremos usar java home haremos lo que sigue


1.     Abrimos el cmd.
2.     Vamos abriendo los directorios hasta conseguir (Usando cd ..):
C:\>
C:\>cd "Archivos de programa"
C:\Archivos de programa>cd Java
C:\Archivos de programa\Java>cd jre7
C:\Archivos de programa\Java\jre7>cd bin
Una vez en bin introducimos el comando para crear el keystore

C:\Archivos de programa\Java\jre7\bin> keytool -genkey -alias tomcat -keyalg RSA
-keystore \path\to\my\keystore\nombreArchivoKeystore
-keystore – Sirve para indicar la ruta donde se creara el archivo

Es importante fijarse bien y que la ruta donde se va a guardar el archivo exista , en el ejemplo la carpeta key hay que crearla si queremos que se guarde en ella.

C:\Archivos de programa\Java\jre7\bin> keytool -genkey -alias tomcat \
-keyalg RSA -keystore "C:\Archivos de programa\Apache Software Foundation\Tomcat 7.0\key\llave"
Introduzca la contrase±a del almacen de claves:
Volver a escribir la contraseña nueva:
┐Cuales son su nombre y su apellido?
  [Unknown]:  entidad
┐Cual es el nombre de su unidad de organizacion?
  [Unknown]:  organizacion
┐Cual es el nombre de su organizacion?
  [Unknown]:  organizacion
┐Cual es el nombre de su ciudad o localidad?
  [Unknown]:  se
┐Cual es el nombre de su estado o provincia?
  [Unknown]:  se
┐Cual es el codigo de pais de dos letras de la unidad?
  [Unknown]:  Es
┐Es correcto CN=entidad, OU=organizacion, O=organizacion, L=se, ST=se, C=Es?
  [no]:  si


Es muy importante que en el ultimo paso pulsemos enter y no cambiemos la contraseña , si no hacemos esto java lanzara una excepción y el archivo keystore no se creara.

Introduzca la contraseña de clave para
        (INTRO si es la misma contraseña que la del almacen de claves):
Una vez ejecutado este comando se creara un archivo en la ruta especificada, en este caso en la carpeta key se creara un archivo llave.

Este archivo keystore ya contiene un certificado autofirmado para usar en el servidor.


Habilitar ssl en el Tomcat

Para habilitar SSL en tomcat usando la configuración JSSE debemos modificar el conector en el archivo server.xml

El archivo server.xml esta en la ruta

C:\Archivos de programa\Apache Software Foundation\Tomcat 7.0\conf


Como vamos a usar el certificado autofirmado incluido en el keystore creado y como en este tutorial no tenemos la librería APR , el conector usara la configuración JSSE, como podremos ver al ir al archivo server.xml.

Dentro de este archivo debemos buscar las siguentes lineas , que indican la configuracion actual del conector para el puerto 8443

Y debemos modificar el conector para que quede de la siguiente forma,cambiando los parametros de keystoreFile por la ruta donde se encuentra el archivo creado anteriormente y el keystorePass ,que no es otra que la contraseña que le pusimos al archivo keystore.

port="8443" SSLEnabled="true" maxThreads="200"
scheme="https" secure="true"
keystoreFile="ruta archivo keystore"
keystorePass="contraseña keystore" clientAuth="false"
sslProtocol="TLS" />
Después de esto guardamos y reiniciamos el tomcat y nos vamos al navegador que no sea chrome por ejemplo firefox y ponemos la dirección:

https://direccion_servidor:8443/

nos saldrá que el certificado del servidor no es seguro , procedemos hacer click en entender los riesgos y añadirlo como excepción de seguridad.

Aun así nos seguirá apareciendo el https tachado y tendremos que confiar en el certificado, para ello pulsamos en entiendo los riegos y añadir excepción de seguridad , y ya aparecerá la pagina sin ninguno problema.


Referencia: https://csi2altair.wikispaces.com/Apache+Tomcat+seguro



enero 31, 2015

Instalar phpMyAdmin en Centos por Consola.


Listamos los paquetes para verificar la disponibilidad de la descarga.

#yum list phpmyadmin




Enviamos a Instalar

#yum install phpMyAdmin


Luego iniciamos el servidor web  Apache

#service httpd start

Verificamos is el servicio esta levantado en el navegador

http://127.0.0.1/        -> desde la misma PC
ó
http://192.168.10.180/   -> desde la otra PC del mismo segmento de Red.


Si tiene  problemas con el acceso desde otra PC puede ser por los permisos de acceso.

Ejecutamos el siguiente comando en la consola para el acceso.
#iptable -I INPUT 4 -m state --state NEW -p tcp --dport 80 -j ACCEPT

#service iptables save

Volvemos a verificar el acceso en el navegador.
http://127.0.0.1/        -> desde la misma PC
ó
http://192.168.10.180/   -> desde la otra PC del mismo segmento de Red.

Configuramos el phpMyAdmin para administrar la base de datos Mysql

#vim /etc/httpd/conf.d/phpMyAdmin.conf

Allow from All   #añadimos esta línea y guardamos



Verificamos que el gestor Mysql este levantado 

http://192.168.10.180/phpMyAdmin/index.php





enero 28, 2015

Configuración de Red LAN en Centos 6.4

Pasos para configurar la IP de la PC en Centos Linux

1. Verificamos la la configuración de la IP con el siguiente comando:
      #ifconfig -a
     eth0      Link encap:Ethernet  HWaddr 00:0C:29:50:A6:3C
               inet addr:0.0.0.0  Bcast:0.0.0.0  Mask:0.0.0.0
               inet6 addr: fe80::20c:29ff:fe50:a63c/64 Scope:Link
               UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
               RX packets:468 errors:0 dropped:0 overruns:0 frame:0
               TX packets:219 errors:0 dropped:0 overruns:0 carrier:0
               collisions:0 txqueuelen:1000
               RX bytes:79709 (77.8 KiB)  TX bytes:35821 (34.9 KiB)
               Interrupt:19 Base address:0x2000

    lo            Link encap:Local Loopback
               inet addr:127.0.0.1  Mask:255.0.0.0
               inet6 addr: ::1/128 Scope:Host
               UP LOOPBACK RUNNING  MTU:16436  Metric:1
               RX packets:0 errors:0 dropped:0 overruns:0 frame:0
              TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0
              RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

2 Escogemos al opción eth0 para la configuración de la RED
       #vi /etc/sysconfig/network-scripts/ifcfg-eth0

3 Comenzamos a modificar los cambios
     DEVICE=eth0
     HWADDR=00:0C:29:50:A6:3C
     TYPE=Ethernet
     UUID=8f6f3086-529b-4570-95cc-ee69c5df31a0
     ONBOOT=yes
     NM_CONTROLLED=yes
     BOOTPROTO=none
     IPADDR=192.168.43.22
     NETMASK=255.255.255.0
     GATEWAY=192.168.43.21
     DNS1=192.168.43.1

4 Reiniciamos el servicio de red y listo
       #service network restart

5 Verificamos la configuración 
     #ifconfig -a

eth0      Link encap:Ethernet  HWaddr 00:0C:29:50:A6:3C
          inet addr:192.168.43.22  Bcast:192.168.43.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe50:a63c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1059 errors:0 dropped:0 overruns:0 frame:0
          TX packets:383 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:212997 (208.0 KiB)  TX bytes:62425 (60.9 KiB)
          Interrupt:19 Base address:0x2000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:19 errors:0 dropped:0 overruns:0 frame:0
          TX packets:19 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:2624 (2.5 KiB)  TX bytes:2624 (2.5 KiB)

6 Realizamos un ping

# ping 192.168.43.22
PING 192.168.43.22 (192.168.43.22) 56(84) bytes of data.
64 bytes from 192.168.43.22: icmp_seq=1 ttl=64 time=0.048 ms
64 bytes from 192.168.43.22: icmp_seq=2 ttl=64 time=0.055 ms
64 bytes from 192.168.43.22: icmp_seq=3 ttl=64 time=0.058 ms
64 bytes from 192.168.43.22: icmp_seq=4 ttl=64 time=0.054 ms