Categorías
Java

5 Razones por que debes aprender a Programar en Java

En este video explico cinco razones principales por que deberias aprender a prograamr en Java, y espero te anime a seguir mi curso.

Categorías
Java

Instalar el JDK de Java en Windows

En este video aprenderás a instalar el JDK 7 de java en sistema operativo windows de 32 o 64 bits. Ademas se resuelve elproblema de comando javac no encontrado cuando no se añade el compilador al PATH del sistema

 

Categorías
Programacion PHP

Agregar recaptcha a formulario en php

Muchas veces nos ha sucedido que tenemos un formulario de contacto en nuestro sitio pero de repente comienzan a llegarnos un monton de correos de spam, y todo por que no tenemos un método para minimizar que los bots spams envíen formularios de forma automatizada,si bien hay formas de como saltarse estos captchas, pero por lo menos disminuiremos la cantidad de correos de spam en nuestros buzones.

Explicare con un pequeño ejemplo como agregar el recaptcha al formulario y una vez validado lso datos envie un mensaje de felicitacion,que seria en lugar de enviar el correo electrónico, o un mensaje de error si algún dato no esta bien o no se resolvió correctamente el captcha.

 

Prerequisitios.

  • una cuenta en google para poder hacer uso del recaptcha
  • un servidor de pruebas(como wampp)
  • libreria recaptcha(https://code.google.com/p/recaptcha/downloads/list?q=label:phplib-Latest)

Lo primero sera crear nuestro formulario de contacto,y luego lo validamos con otro script

 

El codigo del formulario es el siguiente recpatcha.php:

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<title>Prueba Recatpcha</title>

<style type=”text/css”>
<!–
.formulario {
padding: 2px;
width: 400px;
margin-top: 5px;
margin-right: auto;
margin-bottom: 5px;
margin-left: auto;
}
#form1 label {
display: block;
}
–>
</style>
</head>

<body>
<form action=”validar.php” method=”post” name=”form1″ class=”formulario” id=”form1″>
<label>Nombre:</label><input name=”nombre” type=”text” />
<label>Edad:</label><input name=”edad” type=”text” />
<label>Asunto:</label><textarea name=”asunto” cols=”40″ rows=”5″></textarea>
<br />
    <!–Codigo mostrar repacatcha –>
       <?php
          require_once(‘rutalibreria/recaptchalib.php’);
          $publickey = “tupublickey”; // you got this from the signup page
          echo recaptcha_get_html($publickey);
        ?>
<input name=”enviar” type=”submit” value=”Enviar” />
</form>
</body>
</html>

El codigo es el de un formulario normal salvo donde esta el comentario en html  del codigo solo debes cambiar dos cosas, en la funcion requiere_once debes colocar la ruta donde descomprimiste la libreria de recaptcha, de preferencia en una carpeta llamada lib para mejor orden, y la clave publica la cual obtienes cuando te logueas con tu cuenta de google en este sitio

https://www.google.com/recaptcha

1

 

copiar las dos claves publica y privada

 

2

luego creamos otro archivo,llamado validar.php con el que comprobaremos  los datos introducidos antes de enviarlos

 

<?php
  require_once(‘rutalibreria/recaptchalib.php’);
  $privatekey = “tuclave”;
  $resp = recaptcha_check_answer ($privatekey,
                                $_SERVER[“REMOTE_ADDR”],
                                $_POST[“recaptcha_challenge_field”],
                                $_POST[“recaptcha_response_field”]);
if(empty($_POST[‘nombre’])){
echo ‘No ha ingresados tu nombre’;
echo ‘<br />’;
}
if(empty($_POST[‘nombre’])){
echo ‘No ha ingresados u nombre’;
echo ‘<br />’;
}
if(empty($_POST[‘asunto’])){
echo ‘No ha ingresados el asunto’;
echo ‘<br />’;
}
 //comprobando solucion de captcha      
  if (!$resp->is_valid) {
    // What happens when the CAPTCHA was entered incorrectly
    die (“The reCAPTCHA wasn’t entered correctly. Go back and try it again.” .
         “(reCAPTCHA said: ” . $resp->error . “)”);
  } else {
    // Your code here to handle a successful verification
    echo “Good job,you solve the captcha”;
  }

?>

en negrita marque la parte mas importante del codigo,lo demas es una validacion normal de los otros campos del formulario, observa que en el archivo validar es donde pegamos la clave privada ya que son valores que no estaran accesible a los usuarios y en la parte de presentacion(recaptcha.php) dejamos la clave publica, al final nuestro formulario debera verse asi

formulario recpatcha

y debera mostrar este texto,sino escribes correctamente el recpatcha

The reCAPTCHA wasn’t entered correctly. Go back and try it again.(reCAPTCHA said: incorrect-captcha-sol)

cabe aclarar que solo presento la idea general del concepto de como agregar un caprcha a un formulario, pero te puede servir de base si quieres mejorarlo.

 

Si tienen comentarios o sugerencias para este articulo pueden hacerlas aqui.

Categorías
VPS

Instalar mod pagespeed en whm cpanel y easyapache

Por defecto el cpanel no trae habilitado la opcion para instalar el mod de pagespeed, el cual sirve para optimziar la carga de nuestro sitio web aplicando algunas reglas preconfiguradas. En este tutorial les explicare de forma breve como hacerlo.

Prerequsitos

  • Tener putty
  • Tener acceso al servidor como root o permisos para instaalr paquetes
  • tener el whm,no solo cpanel

primero debemos loguearnos desde consola y teclear el siguiente comando wget http://prajith.in/scripts/mod_pagespeed-cust-opts.tar.gz, para descargar el paquete que se agregara al panel.

comando instalar pagespeed

Descomprimir el apquete con el siguiente comando tar -C /var/cpanel/easy/apache/custom_opt_mods -xzf mod_pagespeed-cust-opts.tar.gz

comando instalar pagespeed

Eso es todo! una vez hecho eso deberas recompilar nuevamente apache y php,seleccionando el modulo de pagespeed

easyapache

deberas esperar unos 30 o 40 minutos ya que se recompila todo desde cero,si tienes problemas de memoria puedes ejecutar desde consola este comando /scripts/easyapache para no usar la interfaz grafica

 

Espero les haya sido de utilidad,cualquier dua haganla en los comentarios

Categorías
VPS

Administracion de Vps para dummies – Instalar apache, php y mysql en debian 6

En este video tutorial aprenderemos como instalar apache2,php y mysql en un vps no administrado, seguiremos utilizando la maquina virtual. Ademas aprenderemos lo siguiente:

-Como verificar el estado de un servicio en debian
-Como instalar un paquete en debian
-Como reinciiar un servicio
-Arreglar problemas de conexión de red entre host y huésped en la maquina virtual
-Como hacer para que apache reconozca los archivos con extension php y no los descargue desde el navegador.

Descargar guia 2:

Guia 2 vps

Video:

Categorías
VPS

Administracion basica de vps para dummies-Instalar debian en una maquina virtual

Bien les dejo el primer video de la serie: Administracion de VPs para dummies,util si no sabes como administrar un vps y por cuestiones del destino se te ha encomendado esa labor(me incluyo  :'()
Sin embargo no hay nada mejor cuando las cosas van bien,asi que les comparto mi experiencia administrando servidores,si bien no soy un experto,pero ya puedo hacer un par de cosas basicas.
Estos videos te seran de utilidad si:Eres usuario 100% de windows,nunca has administrado un vps, o si tienes un vps no administrado.

El primer video es mas bien como instalar debian en una maquina virtual,espero les guste

Categorías
VPS

Actualizar a openssl 1.0.1g por vulnerabilidad en protocolo ssl en debian

en las ultimas horas se ha corrido como pólvora un bug en el protocolo openssl,el cual podría ser aprovechado por atacantes para acceder a 64kb de memoria y dar al posibilidad de robar informacion como claves publicas y contraseñas, si bien ya hay una actualización  que corrige el error, pueda que muchos encargados de administrar su servidor no sepan como hacerlo,no todos somo del departamento de TI, asi que les dejo una guia facil de como actualizar la librería openssl a 1.0.1g,
Según estuve leyendo openssl es una libreria que viene en el kernel del sistema,por lo cual no habria que reescribir los archivos,ya que podria acarrear problemas posteriores,en su lugar lo instalaremos en otra carpeta y modificar el archivo profile para que cargue la ultima version.

Comencemos.
Primero debemos verificar si tenemos una versión de openssl vulnerable

1 - Actualizar a openssl 1.0.1g por vulnerabilidad en protocolo ssl en debian

Luego vamos a descargar los sources a nuestro servidor

2 - Actualizar a openssl 1.0.1g por vulnerabilidad en protocolo ssl en debian

descomprimimos el fichero con tar xvfz

3 - Actualizar a openssl 1.0.1g por vulnerabilidad en protocolo ssl en debian

luego hacemos el cambio de directorio cd libreriaopenssl

Luego configuramos los path con ./config

4 - Actualizar a openssl 1.0.1g por vulnerabilidad en protocolo ssl en debian

escribimos lo de siempre make

5 - Actualizar a openssl 1.0.1g por vulnerabilidad en protocolo ssl en debian

luego make test

6 - Actualizar a openssl 1.0.1g por vulnerabilidad en protocolo ssl en debian

si todo va bien ya podemos instalar con make install

7 - Actualizar a openssl 1.0.1g por vulnerabilidad en protocolo ssl en debian

y Luego debemos cambiar nuestro archivo profile para que coja el nuevo path,editamos con nano /etc/profile y agregamos esta linea /usr/local/ssl/bin donde esta el if

2014 04 09 233900 - Actualizar a openssl 1.0.1g por vulnerabilidad en protocolo ssl en debian

volvemos a cargar nuestro profile source ~/.profile
y verificamos que se ha actualizado la librería :) openssl version

8 - Actualizar a openssl 1.0.1g por vulnerabilidad en protocolo ssl en debian

Espero les haya servidor y no lo dejen para ultima hora,ya que este bug es critico

Categorías
VPS

Directorio public html por defecto proftpd

Bueno quiza muchos lo pasen desapercibido, pero este problema se nos presenta a muchos administradores de servidores  que debemos aprender a prueba y error. El problema conciste en que luego de haber instalado el proftpd y entrar con el usuario asignado al dominio, resulta que subimos de directorio podemos ir explorando todo el arbol de directorios del sistema, no solamente la carpeta public_html o htdocs como deberia ser. Si bien pueda que el usuario no pueda borrar mas alla de la carpeta que tiene asignada,igual no es lo recomendable. en este tutorial les explicare como hacer para “enjaular” al usuario en su carpeta public_html asignada.

Requisitos previos:

Tener un programa como putty,si usas windows, para poder loguearte via ssh.
tener acceso como root al servidor.

Bien comencemos

  • Logueado como root en el sistema debemos editar el archivo proftpd.conf con algun editor como nano o vim. en debian 6 se encuentra en /etc/proftpd/proftpd.conf. ejecutamos el comando nano /etc/proftpd/proftpd.conf.

 

1%20editar%20proftpd - Directorio public html por defecto proftpd

 

  • Buscamos una linea que dice DefaultRoot,si tiene un comentario(#) se lo quitamos y como queremos que sea para cada usuario su propia carpeta public_html damos dos tabulaciones y escribimos ~/public_html.85.17.254.112

 

2%20jail%20user%20public html - Directorio public html por defecto proftpd

 

  • Luego cerramos el archivo con ctrl+x,si nos pregunta si queremos guardar cambios damos que si(Y) y luego enter para reescribir el archivoguardar cambios

 

3%20save - Directorio public html por defecto proftpd

 

  • Reiniciamos el servicio con service restart proftpd.

 

4%20reiniciar%20servicio - Directorio public html por defecto proftpd

 

  • Ahora cada vez que quieras subir de nivel te dejara siempre en el raiz de la carpeta public_html de tu usuario

 

5%20comprobacion - Directorio public html por defecto proftpd
Categorías
VPS

Agregar regla de baneo para pure ftp en fail2ban

Quiza algunos que usen cpanel o en su host tengan como servidor ftp s hayan topado con que al instalar el fail2ban no aparece una regla(jail) de baneo para ese servicio la verdad es que el fail2ban es muy facil de usar y configurar,solo es de saber la ubicacion del archivo del log del servicio a agregar y el mensaje de error a monitorear para que se aplique la regla, en el caso de que quierana gregar un jail les dejo el codigo

Primero en el archivo jail.conf agregar las siguientes lineas

[highlight]
[pure-ftpd]

enabled  = true
port     = ftp
filter   = pure-ftpd
logpath  = /var/log/messages
maxretry = 3
[/highlight]

el path por defecto de los logs de error es /var/log/messages asi que solo modifquenlo si su panel cambio la estructura de directorios como en cpanel, luego hay que crear la jail en el directorio filter.d en mi caso ya habia una jail para el pure ftp si no la tienen se las dejo adjunto en el post solo deben copiarla en la mencionada carpeta.

luego escribimos service fail2ban restart y con eso podemos tener monitoreado el logueo y banneo en nuestro servidor ftp  :-*

Categorías
VPS

Instalar mod security en VPS

Instalar mod security
Aprenderemos a compilar por nuestra propia cuenta la ultima versión del modsecurity en debian 6,esto es por que en los respositorios de debian 6 esta un poco desactualizados con la version del paquete,la ultima version es la 2.5.6
Requisitos previos
winscp (para editar mas facilmente los archivos de configuracion)
putty
cuenta de root o acceso privilegiado via ssh
ejecutar en consola el siguiente comando

[highlight]wget https://www.modsecurity.org/tarball/2.7.7/modsecurity-apache_2.7.7.tar.gz[/highlight]

descompimimos los archivos con

[highlight]tar xvfz modsecurity-apache_2.7.7.tar.gz[/highlight]

ingresamos al directorio que acabamos de descomprimir

[highlight]cd modsecurity-apache_2.7.7[/highlight]

este mod tiene la ventaja que hace el proceso de configuracion sin mayor intervencion del usuariosolo basta ejecutar

[highlight]./autogen.sh[/highlight]

si te sale este error debes instalar las librerias que faltan

error%20autogen - Instalar mod security en VPS

 

[highlight]apt-get install libtool autoconf libaprutil1 libaprutil1-dev libxml2 libxml2-dev libxml2-utils[/highlight]

luego seguimos el procedimiento normal de instalacion de paquetes binarios en linux. Ejecutar

[highlight]./configure[/highlight]

si te sale que no haya el apxs debes instalar la dependencia correspondiente

- Instalar mod security en VPS

 

[highlight]apt-get install apache2-dev[/highlight]

corremos de nuevo el ./autogen.sh y ./configure make make install
con eso hemos terminado la parte de rutina,para cerciorarnos de que esta instalado vamos a la ruta

[highlight]/usr/lib/apache2/modules[/highlight]

y debe estar el mod_security2.so

mod%20security%202 - Instalar mod security en VPS

ahora cargamos el modulo en apache,para ello con el winscp vamos hacia /etc/apache2/mods-available
y crearemos un nuevo archivo

crear%20nuevo%20archivo - Instalar mod security en VPS

le pondremos para identificarlo mas facil como security2.load y le pondremos el siguiente contenido

[highlight]LoadModule security2_module /usr/lib/apache2/modules/mod_security2.so[/highlight]

activamos el modulo desde linea de comando con

activando%20modulo - Instalar mod security en VPS

 

[highlight]a2enmod security2[/highlight]

reiniciamos el servidor de apache para que se cargue en memoria el modulo

[highlight]service apache2 restart[/highlight]

el modsecurity tiene un monton de reglas prefabricadas que podemos utilizar.
hacemos

[highlight]cd /etc/apache2[/highlight]

y bajamos el zip con  las reglas

[highlight]wget https://github.com/SpiderLabs/owasp-modsecurity-crs/zipball/master[/highlight]

descomprimimos

[highlight]unzip mastery[/highlight]

con el winscp damos en refresh y renombramos el directorio a por ejemplo crs,

di%20crs - Instalar mod security en VPS

ingresamos al directorio y renombramos el achivo modsecurity_crs_10_setup.conf.example a modsecurity_crs_10_setup.conf
subimos el siguiente fichero de configuracion adjunto(modsecurity.conf) al directorio apache2,deberas tener la siguiente estructura de directorios

2013 12 24 162443 - Instalar mod security en VPS

ahora ediaremos el archivo de configuracion de apache para que tome la configuracion del mod security,para el caso de debian puede ser apache2.conf agregamos estas lineas al final


[highlight]
#Configuracion ModSecurity
Include crs/modsecurity_crs_10_setup.conf
Include crs/activated_rules/*.conf
Include modsecurity.conf
[/highlight]

reiniciamos apache y con eso deberia estar instalado,en proximos post les explicare como probar el funcionamiento del mod y agregar las  reglas