Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - madpitbull_99

#46
Muchas veces en mis proyectos web tengo que optimizar el tiempo de carga y de ejecución de los scripts. Para eso me he creado una pequeña clase muy fácil de utilizar.

Código (php) [Seleccionar]
<?php
 
/**
 * @author MadPitbull
 * @copyright 2011
 */
 
    
class PageLoadingTime{
 
        private 
$time;
        private 
$initTime;
        private 
$finTime;
        private 
$totalTime;
 
        
/**
         * PageLoadingTime::__construct()
         * Starts the timer.
         * @return null
         */
        
public function __construct() {
            
$this->initPageLoadingTime();
        }
 
        private function 
initPageLoadingTime() {
            
$this->time microtime();
            
$this->time explode(" "$this->time);
            
$this->time $this->time[1] + $this->time[0];
            
$this->initTime $this->time;
        }
 
        
/**
         * PageLoadingTime::getPageLoadingTime()
         * Returns a float var with the page loading time in micro seconds.
         * @return float
         */
        
public function getPageLoadingTime() {
            
$this->time =  microtime();
            
$this->time explode(" "$this->time);
            
$this->time $this->time[1] + $this->time[0];
            
$this->finTime $this->time;
            
$this->totalTime = ($this->finTime $this->initTime);
 
            return 
$this->totalTime;
        }
 
    }
 
?>


Su funcionamiento es muy sencillo, utiliza dos timers. El primero es inicializado al invocar al constructor de la clase y el valor del segundo es capturado invocando el método getPageLoadingTime y luego se guarda en otra variable la resta del tiempo registrado al principio del script con el tiempo registrado al final del script.
Os dejo un ejemplo de como funciona y mas abajo un enlace para descargar la clase y el ejemplo.

Código (php) [Seleccionar]
<?php
 
    
include ("class.PageLoadingTime.php");
    echo 
"[+] Testing the PageLoadingTime PHP Class <br />";
 
    
$timer = new PageLoadingTime();
 
    for (
$i 0$i <= 100$i++) {
        echo 
"<p style='text-indent: 1em'>" $i "<p>";
    }
 
    echo 
"<p>Execution time: <b>" $timer->getPageLoadingTime() . "</b></p>";
 
?>


El bucle for lo he puesto solo para probar el funcionamiento de la clase.
Os dejo el enlace para descargar la clase, si no queréis descargarla podéis copiarla directamente de aquí, funcionará sin
problemas. [Descargar]
#47
 Los sistemas de control de versión son una herramienta estupenda para el desarrollo en equipo, o simplemente si uno quiere llevarse el trabajo a casa. Como muchos ya sabréis hay varios sistemas, como:

  • Mercurial (CVS). Se esta quedando obsoleta y su uso esta decayendo.
  • Subversion (SVN). Sistema que pretende sustituir y corregir algunos fallos de Mercurial. Funciona con Apache.
  • GIT. Libre y de código abierto, junto con Subversion es uno de los mas utilizados, el equipo desarrollador del kernel Linux utiliza GIT.
Claramente hay muchos mas, pero los arriba citados son los mas conocidos y empleados. Yo en mi caso utilizo SVN, aunque GIT también me gusta.

El problema puede venir cuando buscamos un hosting de repositorios svn gratis y privado, una opción es crear nuestro proprio servidor SVN con Apache2, ya que, no es nada del otro mundo, pero podemos optar por buscar algún hosting online.

La verdad es que hay muchos, pero la mayoría son de pago, aun así podemos encontrar algunos hostings gratis y bastante buenos. Al ser gratis tienen el inconveniente del poco espacio y transferencia, pero si nuestro proyecto no es grande, nos sirve igualmente.

Voy a mencionar algunos que permiten crear repositorios privados:


  • Assembla. Es el que estoy utilizando ahora en un proyecto en el que colaboro. Ofrece 2 Gb de espacio, de momento no he encontrado ninguno que ofrezca mas. Es solo para Subversion, aunque, en las versiones de pago se puede elegir el sistema de versiones.
  • Unfuddle. Solo dispone de 200 Mb de espacio, como ya he mencionado, si se trata de un proyecto poco extenso, puede servir igualmente.
  • Codesion. Al igual que Unfuddle solo tiene 200 Mb de espacio, tanto este como el que acabo de mencionar permiten elegir entre GIT o SVN.
  • ProjectLocker. Solo se permiten 3 usuarios que formen parte del equipo y disponen de 300 Mb de espacio.
  • Beanstalkapp. Dispone de una versión Trial de un solo usuario y un repositorio, tengo poca información sobre esta pagina, pero tiene muy buena pinta.

De todos esos, yo me he quedado con Assembla, si vais a trabajar con GIT, hay muchos mas como Github. Seguramente habrá muchos mas a parte de los que he citado, si conocéis alguno mas que permita repositorios privados y que sean gratis os invito a que comentéis vuestra opinión.

Y tu conoces alguno que valga la pena? Compártelo con nosotros.



#48


Uno de los editores de texto que mas me gusta es Notepad++, es gratis, es open-source, muy liviano, arranca en menos de un segundo y permite varias configuraciones, por lo que es bastante flexible. Hace bastante tiempo que lo utilizo y en Windows he llegado a sustituir al Bloc de Notas por este intuitivo editor.



Expansión de Texto
Al escribir un texto podemos hacer que al pulsar una tecla determinada nos lo sustituya por otro texto definido anteriormente. Para esto necesitaremos descargar QuickText (es un plugin de Notepad++). Una vez descargado copiamos el contenido de esa carpeta en la carpeta de plugins de Notepad (C:\Program Files\Notepad++\plugins) y reiniciamos el editor.

Una vez instalado podemos configurarlo en el menú superior -> Plugins -> QuickText.

Seleccionamos por ejemplo PHP y configuramos las palabras clave que queremos que nos expanda, por ejemplo al poner if que nos lo expanda con los paréntesis y las llaves.

Así cuando escribamos if y pulsamos la tecla TAB nos expandira el texto por lo que le hemos indicado anteriormente. El resto depende de vosotros, podeis poner uno que expanda la palabra php por <?php ?>.



Autocompletar


Si lo tenéis en Español, vais a Configurar -> Preferencias -> Copias de Seguridad/Autocompletar y marcáis la casilla de Habilitar autocompletar en cada entrada. Muchos editores disponen de esta función, pero en Notepad++ viene deshabilitada por defecto. También marcamos Pistas para los parámetros de la función, que nos mostrara que parámetro va en cada función.




Macros
Para grabar una macro vamos a Macro -> Comenzar grabación y escribimos la macro o el conjunto de código o texto. En mi caso tengo una pequeña plantilla de HTML grabada, así cuando empiezo un documento HTML nuevo solo tengo que ejecutar esta macro.



Una vez escrito el contenido de la macro vamos a Macro -> Para grabación y Guardar grabación, le ponemos un nombre y asignamos las teclas. En mi caso cada vez que pulso CTRL + SHIFT + H me inserta una plantilla básica de HTML.


TextFX
Esto es otro plugin que viene instalado por defecto y nos ayuda bastante a la hora de desarrollar, dos funciones basica que debemos activar son el autocierre de etiquetas y parentesis.



Aparte de este funcionalidad TextFX nos provee muchas mas, como conversores de texto y código como embellecimiento de código.

Sintax Highlight personalizado
En realidad este ultimo consejo no agiliza para nada el desarrollo en Notepad++, pero nuestra vista nos lo agradecerá. Si vamos a Configurar -> Configurador de Estilo podemos elegir varios temas para nuestro editor. Yo en mi caso utilizo Zenburn, un conjunto de colores oscuros y que no saltan a la vista, en definitiva algunos de ellos son muy agradables.






#49
PHP / Introducción a FirePHP [Tutorial]
21 Marzo 2011, 22:59 PM
Tutorial de FirePHP
=======================



FirePHP es un plugin para FireFox utilizado por desarrolladores web para realizar la depuración
de las aplicaciones.

En principio se creo el plugin Firebug que se utiliza para debuggear "interfaces web" o lo que viene a
ser las paginas web estáticas. Para la depuración de las aplicaciones del lado del servidor se ha creado
el plugin llamado FirePHP.

Para utilizar este plugin hay que descargarlo e instalarlo desde la pagina oficial de addons de Firefox (http://addons.mozilla.org) y
descargar unos scripts en PHP para "conectar" la aplicación PHP con la consola de FirePHP.

Después de instalar el plugin hacemos clic en el icono de la cucaracha y abrimos la consola.



Una vez instalado el plugin nos dirigimos a su pagina oficial y descargamos los ficheros necesarios que debamos incluirnos en nuestro
proyecto para poder usarlo. La pagina oficial es (http://firephp.org).



Uno de esos ficheros deberemos incluirlo en nuestro proyecto web.



Para hacer las pruebas creen un script PHP y llamadlo como queráis. Lo primero que debemos hacer en nuestro proyecto
es habilitar el buffer de salida, para eso instanciamos el objeto ob_start(), nuestro script quedara algo así:

Código (php) [Seleccionar]
<?php ob_start(); ?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>untitled</title>
</head>
<body>
</body>
</html>
<?php ob_end_flush(); ?>


El siguiente paso es incluir el fichero fb.php o fb.php4 si se utiliza PHP 4 en nuestro proyecto.

Código (php) [Seleccionar]
<?php ob_start(); 
include(
'includes/FirePHPCore/fb.php');

?>

<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>untitled</title>
</head>
<body>
<?php 
 
echo "Hola"//Para probar que PHP funciona
?>

</body>
</html>
<?php ob_end_flush(); ?>



Los métodos incluidos en la clase FirePHP pueden ser instanciados de forma estática.
Para añadir un log o hacer un pequeño Hola Mundo con FirePHP podemos usar el objeto log:

<?php
FB::log('Hola mundo!');
?>

Ahora si miramos en la consola veremos nuestro mensaje.



Si no muestra ningún mensaje hay que asegurarse de que FirePHP esta habilitado, Menu Herramientas --> FirePHP --> FirePHP Enabled (tiene que estar marcado)

Os preguntareis básicamente para que sirve esto? Cuando debuggeamos una aplicación podemos cambiar el típico echo 'el objeto/función X esta funcionando'; por
un mensaje o log en este caso que se muestre en la consola del plugin.

También podemos usarlo para depurar el contenido de las variables:

Código (php) [Seleccionar]
<?php 
 $variable 
'probando firephp';
 
FB::log('Hola mundo!');
 
FB::log($variable);
?>


Y el resultado seria el siguiente:



Para especificar el nombre de la variable o algún mensaje descriptivo agregamos lo siguiente:

Código (php) [Seleccionar]
<?php 
 $variable 
'probando firephp';
 
FB::log('Hola mundo!');
 
FB::log($variable'Mi variable');
?>


Y en el resultado nos mostraría el nombre de la variable o el texto descriptivo indicado.



Para mensajes informativos se emplea el método info:

Código (php) [Seleccionar]
<?php 
 FB
::info('Esto es muy importante!');
?>




A parte de los mensajes informativos también podemos hacer advertencias:

Código (php) [Seleccionar]
<?php 
 FB
::warn('Esto es una advertencia!');
?>




O mostrar algún error:

Código (php) [Seleccionar]
<?php 
 FB
::error('Esto es un error!');
?>




Hay que asegurarse que no estamos usando FirePHP en un entorno de producción o en alguna web corporativa, ya que, puede ser bastante inseguro.
FirePHP se puede deshabilitar usando otro método booleano llamado SetEnabled(false/true), quedaría algo así:

Código (php) [Seleccionar]
<?php ob_start(); 
include(
'includes/FirePHPCore/fb.php');
FB::SetEnabled(false);
?>

<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>untitled</title>
</head>
<body>
<?php 
 $variable 
'probando firephp';
 
FB::log('Hola mundo!');
 
FB::log($variable'Mi variable');
 
 
FB::info('Esto es muy importante!');
 
 
FB::warn('Esto es una advertencia!');
 
 
FB::error('Esto es un error!');
?>

</body>
</html>
<?php ob_end_flush(); ?>


O simplemente borrar las lineas referentes a FirePHP. Si refrescamos la pagina veremos que los mensajes ya no aparecen en la consola y no debemos
preocuparnos por la seguridad.

Para agrupar los mensajes FirePHP nos provee una funcionalidad que permite crear grupos para mostrar los diferentes mensajes en la consola del
plugin. Un ejemplo de como funcionan los grupos lo tenéis abajo:

Código (php) [Seleccionar]
<?php ob_start(); 
include(
'includes/FirePHPCore/fb.php');
FB::SetEnabled(true);
?>

<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>untitled</title>
</head>
<body>
<?php 

 FB
::group('Este es el primer grupo'); // Indica el inicio y el nombre del grupo.
 
$variable 'probando firephp';
 
FB::log('Hola mundo!');
 
FB::log($variable'Mi variable');
 
 
FB::info('Esto es muy importante!');
 
 
FB::warn('Esto es una advertencia!');
 
 
FB::error('Esto es un error!');
 
 
FB::GroupEnd(); // Indica el fin del grupo.
?>

</body>
</html>
<?php ob_end_flush(); ?>


Y el resultado seria la agrupación de los mensajes:



Imaginémonos que no queremos mostrar en la pagina web los mensajes de error de PHP y que solo se vean en la consola, creamos un objeto a partir de la clase
FirePHP e instanciamos los métodos registerExceptionHandler y registerErrorHandler.

Código (php) [Seleccionar]
<?php
$obj 
= new FirePHP();
$obj->registerExceptionHandler();
$obj->registerErrorHandler();

echo 
$variableSinDefinir;

?>


Y el mensaje de error seria mostrado directamente en la consola y no en la pantalla a la vista de todos.

FirePHP permite debuggear hasta tablas o arrays. Se hace con el método table, el primer parámetro es un nombre descriptivo y el segundo es el array.

Código (php) [Seleccionar]
<?php ob_start(); 
include(
'includes/FirePHPCore/fb.php');
FB::SetEnabled(true);
?>

<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>untitled</title>
</head>
<body>
<?php 
 
 $miArray 
= array (
 array(
'Asignatura''Profesor'),
 array(
'Matematicas''Pedro Sanchez'),
 array(
'Lengua''Soraya Labrada'),
 array(
'Biologia''Mercedes Lara')
 
 ); 
//Un array que contiene otros arrrays.
 
 
FB::table('Tabla de Asignaturas'$miArray);

?>

</body>
</html>
<?php ob_end_flush(); ?>


Y en la consola veremos nuestro array representado en una tabla:



También podemos mostrar un array en forma de log:

Código (php) [Seleccionar]
<?php 
 
 $miArray 
= array(1,2,3,4,5,6,7,8,9);
 
 
FB::log($miArray);

?>


Y nos mostrara algo parecido a lo de abajo, si hacemos clic en el mensaje informativo nos abrira una especie de popup con el
contenido del array:



Si no fuera bastante, FirePHP soporta tambien las clases y los objetos, o lo que viene siendo la POO.

Código (php) [Seleccionar]
<?php ob_start(); 
include(
'includes/FirePHPCore/fb.php');

 class 
MiClase {
 function 
hacerAlgo() {
 return 
'Hola mundo desde POO';
 } 
 
 }
?>

<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>untitled</title>
</head>
<body>
<?php 

 $obj 
= new MiClase();

 
FB::info($obj->hacerAlgo()); 
?>

</body>
</html>
<?php ob_end_flush(); ?>


Y mostrara como mensaje informativo lo que devuelve nuestro metodo. Para ver el contenido de una clase entera se haria asi:

Código (php) [Seleccionar]
<?php 

 $obj 
= new MiClase();

 
FB::info($obj); 
?>


Esto es todo, claramente se pueden hacer mas cosas con FirePHP, os recomiendo que visiteis la web del plugin (firephp.org) donde tienen una
wiki (firephp.org/wiki) con muchos tutoriales y documentacion.
#50
Como muchos ya sabréis, PHP permite definir funciones con parámetros opcionales, otra funcionalidad que no es tan conocida, es que permite crear funciones que aceptan un numero arbitrario de parámetros.

Veamos una función que permite argumentos opcionales:
Código (php) [Seleccionar]

<?php
 
// Funcion que acepta 2 parametros opcionales
 
function dummy($parm1 ''$parm2 '') {
 echo 
"Parametro 1: $parm1 <br />";
 echo 
"Parametro 2: $parm2 <br />";
 }
 
dummy('Hola','mundo!');
?>


Ahora vamos a ver como crear una función que acepte cualquier numero de argumentos, para ello vamos a utilizar la función func_get_args , que devuelve un array numérico con los argumentos pasados a la función.

Código (php) [Seleccionar]
<?php
 
// La lista de argumentos es vacia
 
function sinArgumentos() {
 
 
// Devuelve un array con los argumentos
 // pasados a la funcion
 
$argumentos func_get_args();
 
 foreach (
$argumentos as $k => $v) {
 echo 
"Argumento: ".($k+1).": $v <br />";
 }
 
 }
 
 
sinArgumentos();
 
// No imprime nada
 
 
sinArgumentos('Hola'' mundo ',' maravilloso!');
 
// Imprime los argumentos pasados
 
?>



Esta función nos puede ser muy útil si pensamos crear un pequeño framework o librería. Abajo dejo otro ejemplo con una función que suma un numero indefinido de números.

Código (php) [Seleccionar]
<?php
 
function suma(){
 
$s=0;
 foreach(
func_get_args() as $a$s+= is_numeric($a) ? $a 0;
 
/*
 * Comprueba si el valor introducido es un numero,
 * si no, se toma como un cero
 */
 
return $s;
 };
 
 print 
suma(1,2,3,4,5,6,7,9,10); // Devuelve 47
 
print suma(1,3,3,7); // Devuelve 14
 
print suma(false,array(),5,5);
 
/*
 * Devuelve 10, ya que, el array y false lo
 * toman como un cero
 */
?>


No es nada del otro mundo pero nos puede venir muy bien este tipo de funciones en nuestras aplicaciones. Seguramente muchos ya conocían esta función.
#51
Este artículo forma parte del: [Taller]Instalación/Configuración y Teoría de Servicios en Red y también esta publicado en la wiki del foro en la sección de Redes.




Esta vez vamos a ver como instalar un controlador de dominio principal en un servidor Linux usando Samba.

Ya vimos anteriormente como instalar un controlador de dominio Active Directory en Windows Server, el proceso no tiene nada que ver con la instalación en Windows, por que, todo se hará en consola.

Para este tutorial necesitaremos tener instalado Samba en nuestra máquina, si aun no lo tenéis instalado seguid este tutorial:
  *   Instalar Samba en Ubuntu Server 10.04 .


Una vez que arranque el servidor Linux, nos logueamos como root o ponemos sudo sh y la constraseña del super usuario.



Así, no tendremos que usar sudo para los comandos que utilizaremos a lo largo de este tutorial.

El fichero de configuración de Samba se encuentra en /etc/samba/smb.conf. Procedemos a abrir el fichero.

La primera linea que tenemos que modificar es workgroup y ponemos el nombre que tendrá nuestro dominio:

workgroup = ELHACKER.NET

La siguiente linea tiene que ver con la seguridad en el acceso al servidor, buscamos la linea security y la ponemos en user:

security = user

Con este parámetro, cualquiera que vaya a acceder a nuestro servidor, necesitará una cuenta en ese sistema.

Para que nuestra maquina pueda actuar de PDC tenemos que habilitar el acceso al dominio, para eso buscamos la linea domain logons y la cambiamos en yes, se encuentra comentada (;) en la parte de Domains.

domains logons = yes

Ahora vamos a agregar mas parámetros de configuración al Samba, hay que agregar todos los que pondré abajo.

domain master = yes

Para indicarle a Samba de que nuestro servidor es el controlador principal del dominio.

local master = yes
Esta opción permite a nmbd intentar y constituirse en examinador principal de listas en una subred.

preferred master = yes
Cntrola si Samba es un examinador principal de listas principal para su grupo de trabajo.


Si se pone a yes, al iniciar, samba forzará una elección y tendrá una ligera ventaja para ganar la elección. Es recomendable que este parámetro se use en conjunción con domain master = yes, para que samba pueda garantizar convertirse en un domain master.

os level = 64
Controla el nivel en que se anuncia Samba a si mismo para la elección de examinador. Si quieres que Samba gane la elección de visualizador maestro, debes establecer el primer nivel superior de s.o. al de cualesquiera otros que puedan existir en tu red.

Para que podamos tener perfiles móviles hay que descomentar las lineas:

logon drive = H:
logon home = \\%N\%U


Cada vez que una máquina se una a nuestro dominio tendrá que identificarse, para eso descomentamos la linea add machine script.

add machine script = /usr/sbin/useradd -g machines -c "%u machine acccount" ....

Vamos a la sección de Share Definitions y descomentamos lo mismo que abajo:

[homes]
   comment = Home Directories
   browseable = yes
   writable = yes


La última línea no viene, así que habrá que ponerla manualmente.

Hacemos lo mismo para la carpeta netlogon y profiles (donde se guardan los perfiles móviles).

netlogon


profiles


Guardamos el fichero y salimos.

Lo siguiente es crear un grupo para todas las máquinas que se unirán al dominio:

groupadd -g 201 machines

En el fichero de configuración definimos algunos ficheros que no existen, por tanto hay que crearlos.

mkdir -m 0775 /home/netlogon

El directorio para los perfiles móviles:

mkdir /home/samba /home/samba/profiles

Y darle los permisos necesarios para que Samba pueda escribir dentro de esa carpeta:

chmod 1757 /home/samba/profiles

A continuación vamos a agregar algún usuario para que mas tarde iniciemos sesión desde un equipo Windows.

useradd -m test

Ponerle contraseña:

passwd test

Y agregarlo como usuario Samba:

smbpasswd -a test

También agregaremos al usuario root, en algunas versiones antiguas de Samba la primera vez que iniciamos sesión en el dominio tenemos como usuario root.

smbpasswd -a root

Por costumbre agregaré también a mi usuario administrador local.

smbpasswd -a mad

Para aplicar los cambios vamos a reiniciar el servidor, podemos reiniciar solamente la configuración de Samba, pero vamos a estar seguros de que se aplican bien los cambios.

El siguiente paso es arrancar una máquina Windows e intentar unirnos al dominio.

Para comprobar que los equipos se ven entre si, se recomienda hacer ping desde uno al otro.

Y nos unimos al dominio que acabamos de crear, si no nos da ningún error es que todo ha salido bien y que los demás usuarios funcionan correctamente.

Para gestionar el Samba hay varias herramientas gráficas, como Swat.



Que a través de una interfaz gráfica vía web nos proporciona una panel de administración de Samba.

#52
Este articulo forma parte del Taller: [Taller]Instalación/Configuración y Teoría de Servicios en Red y también esta publicado en la wiki del foro en el siguiente enlace.




Instalación y Configuración de un servidor FTP en Windows Server

Para la instalación del servidor FTP primero tenemos que instalar el servicio HTTP. Vamos a Administrador del Servidor clic derecho en Funciones
y Agregar Funciones.

Seleccionamos el Servidor Web. A continuación nos preguntará si queremos agregar algunas características requeridas por el servidor HTTP.



Hacemos clic en Agregar características requeridas y seguimos con la instalación.

Hacemos clic en Siguiente hasta llegar a la siguiente pantalla:



Aquí, seleccionamos el Servicio de publicación FTP y los demás requisitos y subcategorias.



Instalamos el servidor.

Lo siguiente es agregar un sitio web. Para eso vamos a Administrador de Servidor -> Funciones -> Servidor Web -> Administrador de Internet Information Services (IIS) y hacemos clic derecho sobre el nombre de nuestro servidor web y Agregar sitio web.



Nos saldrá una pantalla para rellenar los datos de nuestro nuevo sitio web.



Después de rellenar los datos si desplegamos la pestaña de Sitios veremos que hay otro sitios (Default Web Site) que por si alguna razón nos da problemas para conectarnos habrá que quitarlo.

Clic derecho sobre el y Quitar.



Listo! Ya tenemos el servidor FTP funcionando, el siguiente paso seria dar permisos y administrar los usuarios que tengan acceso al servidor.
#53
Redes / Teoría Servicio HTTP
23 Enero 2011, 18:35 PM
Este articulo forma parte del [Taller]Instalación/Configuración y Teoría de Servicios en Red y también esta publicado en la wiki del foro.



SERVICIO HTTP


HTTP = es un protocolo de transferencia de Hipertexto usado en Internet para transferir datos entre un navegador y un servidor web.

Hay 2 versiones estandarizadas:
_ Versión 1.0
_ Versión 1.1

* Ha sido propuesta la versión 1.2 y se esta la estandarización.

HTTPS = es una versión segura de HTTP, es el resultado de aplicar SSL(Secure Socket Layer) o TLS a HTTP.

Actualmente HTTP permite enviar mensajes con encabezados que describen el contenido del propio mensaje mediante codificación MIME o IMT.
Los tipos MIME son unas especificaciones usadas para dar formato a mensajes no ASCII.
IANA es el organismo internacional que define los tipos MIME.

<text/html> <text/css> <video/mpeg>

Las situaciones en las cuales se usan los tipos MIME son las siguientes:
  • Para informar al navegador del tipo de datos que esta recibiendo del servidor. Se define usando: <content-type> dependiendo de si el navegador puede interpretarlo puede visualizar el documento (si se trata de <text/html>), llamar a una aplicación externa (<application/pdf> o preguntar al usuario que hacer (<image/x-fwf>).
  • Para permitir negociar el contenido: allow: application/zip
  • Para encapsular uno o mas objetos dentro del cuerpo del mensajes por medio de los MIME multipart (<multipart/formdata>, para enviar los datos de un formulario)

    En Linux podemos hacer un cat/more al archivo /etc/mimes.types para ver algunos de los tipos MIME que existen.

    Los URL (Localizadores Uniformes de Recursos)son secuencias de caracteres (ASCII) que se utilizan para localizar recursos en Internet (paginas web, sonidos, vídeos, imágenes, etc).

    Los URN (Nombres Uniformes de Recursos) identifican a un recurso en Internet, pues no los localizan.

    Los URI (Identificadores Uniformes de Recursos) identifican inequívocamente a un recurso.

    En el esquema de abajo podéis ver una apreciación de estos últimos 3 conceptos.

    Esquema://userinfo@dominio:Puerto/camino?Query#Fragmento
    |_________________________________||_____________||__________|
                      URN                                       URL                  URI


    Esquema = es el protocolo empleado para la comunicación: http, https, ftp.
    UserInfo = son los datos para autentificacion del usuario: usuario@
    Dominio = es el FQDN o la dirección IP donde se encuentra el recurso en Internet.
    Puerto = es el protocolo de comunicacion que empleara el protocolo.
    Camino = es la ruta donde se aloja el recurso dentro del servidor.
    Query = son datos que se envían al servidor en modo consulta.
    Fragmento = especifica una parte/posición dentro del recurso.


    Servidor Web

    - Http sigue el modelo cliente-servidor.
    - Utiliza el puerto 80 o bien 443 si se trata de Https.
    - Los servidores Web deben tener IP fija.

    Los servidores suministran 2 tipos de paginas web HTML:
    1. Estática - el navegador interpreta los códigos Html y muestra imágenes, fuentes, formatos, etc.
    2. Dinámicas - permiten crear aplicaciones dentro de la misma pagina web permitiendo interactuar con el usuario y la pagina web se crea según las peticiones de ese usuario.


    En ocasiones el lenguaje usado para crear la pagina web es interpretado por el navegador que visualiza la pagina (javascript o VisualBasic Script).
    En otras ocasiones el servidor web es quien interpreta, genera y envía la pagina web generada al cliente web que la visualiza (PHP, ASP, JSP, Perl, Python, manejadores de bases de datos como MySQL, Oracle, SQL Server).

    En este segundo caso se consiguen dos objetivos:
    1. Que no haga errores de interpretación de código.
    2. Que el usuario final no tenga acceso al código original de la pagina web y pueda plagiarla.

    Una aplicación web dinámica se compone de 3 elementos:

    ------------------ -------------------
    | Cliente | | Servidor |
    ------------------ -------------------
    | Applets | | Aplicaciones |
    | javascript | <--------> | CGI |
    | vbscript | | Servidor Web |
    | Html/Xml | | PHP, ASP |
    ----------------- -------------------

    Vocabulario


    - Applets = componentes de una aplicación que se ejecuta en el contexto de otro programa.
    - CGI = estándar que permite la conexión de cualquier aplicación hecha en cualquier lenguaje para que pueda interactuar con el servidor web.
    - Servlets = componentes que se ejecutan en los servidores web para generar contenidos dinámicos.
    - JavaBeans = componente de software, utilizable para Java.

    El protocolo HTTP no tiene histórico de sucesos de las conexiones, tras enviar la pagina solicitada libera la conexión.
    Los históricos se gestionan por medio de cookies (son archivos de texto que el navegador almacena en el disco local a petición del servidor). Fueron propuestas por Netscape.

    El Servidor envía: set-cookie:name = value
    El Cliente enviara en las peticiones: Cookie:name = value


    Hay varios software para servidores web:
    NCSA: Httpd. En desuso desde 1998.
    Apache: Es el lider en Internet. Facil de configurar y por sus prestaciones. Es antiguo y asociado a entornos Unix/Linux.
    IIS: Desarrollado por Microsoft.
    Cheeroke: Creado por Alvaro Lopez y mantenido por una comunidad de desarrolladores.
    IPlanet Web Server: Creado por Sun Microsystems y Netscape, es de pago.

    Cliente Web = es el navegador Web que permite visualizar paginas web interpretando código HTML e interactuar con la pagina web (Firefox, Internet Explorer, Chrome, etc).


    Funcionamiento

    1. El usuario teclea en el cliente web la url de la pagina a consultar.
    2. El cliente http decodifica la información obteniendo el protocolo, la IP o el nombre del servidor web, puerto, etc.
    3. El cliente (navegador) conecta con el servidor web y le solicita la pagina web.
    4. El servidor envía la pagina web o devuelve el código de error correspondiente.
    5. Cliente interpreta los códigos html recibidos.
    6. La conexión se cierra.

    Si el navegador solicita una pagina web con 2 imágenes, van a existir 3 conexiones:
    - La primera para el documento HTML.
    - La segunda para el envío de los archivos.


    En la comunicación HTTP existen 2 tipos de mensajes:
    A) Petición o Solicitud (Request)
    El formato es el siguiente: <método> <URI> <versión>
  • El método indica al servidor que hacer con el URI, pueden ser:
    - HTTP 1.0:
    - GET = Obtiene información del servidor.
    - HEAD = Obtiene la cabecera de la pagina.
    - POST = Empleado para enviar información al servidor.
    - HTTP 1.1:
    - Los métodos del HTTP 1.0.
    - PUT = Envía un objeto al servidor.
    - DELETE = Solicita al servidor que borre el recurso indicado en el mensaje.
    - OPTIONS = Para negociar parámetros de la comunicación entre cliente y servidor.

  • URI - Indica al recurso de forma exacta en el servidor.
  • Version - Versión del protocolo HTTP.

    B) Respuesta (Response)
    Tiene el siguiente formato: <version> <codigo de estado> <texto explicativo>
    Puede devolver:
    - Respuesta Positiva => HTTP 1.1 200 OK
    - Respuesta Negativa => HTTP 1.1 405 Method Not Allowed

    Métodos de Estado:
    - 1xx -> Informativos.
    - 2xx -> Éxito.
    - 3xx -> Redireccion de la solicitud.
    - 4xx -> Errores debidos al cliente.
    - 5xx -> Errores debidos al servidor.


    Servidor Web Seguro

    SSL -> HTTPS

    SSL: trabaja con dos tipos de criptografía:
    - Simétrica: durante la transmisión de datos.
    - Asimétrica: en la fase de autentificacion.

    SSL proporciona:
    - Confidencialidad.
    - Integridad del Mensaje.
    - Autentificacion del Servidor.
    - Autentificacion del Cliente.


    Proceso de Negociación
    1. El cliente se conecta al servidor.
    2. Se inicia la fase de saludo HandShake, en la que el cliente envía un mensaje llamado "Client Hello".
    3. El servidor responde con un mensaje "Server Hello".
    4. Servidor envía un mensaje "Certificate" en el cual envía un certificado X509 que contiene la clave publica del servidor.
    5. Opcionalmente el servidor puede requerir la autentificacion al cliente en un mensaje llamado "Certificate Request".
    6. Cliente autentica al servidor un envía un mensaje "Certificate Verify".
    7. El cliente genera la clave de sesión y la envía codificada con la clave publica del servidor en un mensaje "Key Exchange".
    8. Opcionalmente, el cliente envía su certificado en un mensaje "Certificate".
    9. Cliente y Servidor determinan una clave de sesión.
    10. El cliente y el servidor intercambian mensajes "Change Cipher Spec" para indicar al otro que desde ese momento se emplea la clave acordada.
    11. Termina la fase del saludo y el servidor envía el mensaje "Finished".
    12. Comienza la fase de Comunicación.

    Últimamente se esta implementando un nuevo protocolo de seguridad, llamado TLS que esta sustituyendo al SSL (versión 3).
#54
Crear Interfaz de Red Virtual en Linux con Webmin

Muestra como crear un interfaz de red virtual(tarjeta de red virtual) en Ubuntu server usando el panel de administración vía web, Webmin.
En entornos empresariales nos puede venir bien para proys, firewalls, etc.

[youtube=425,350]http://www.youtube.com/watch?v=8aDNM7SEEio[/youtube]

Si queréis hacerlos usando la consola, os dejo unos enlaces que pueden servir:
_[PDF] Implementing a virtual network interface for Linux 2.6
_Como configurar una interfaz de red virtual
#55
Regshot es una aplicacion open-source programada en C, bajo licencia GPL que nos permite hacer un snapshot(captura) del registro de Windows o de alguna carpeta en concreto.

Básicamente se hace una primera captura antes de instalar un software sospechoso y otra captura despues de instalarlo y el programa compara y muestra los cambios producidos.

Utilización:

Se hace el primer snapshot antes de instalar algún software.



Y otro snapshot después de instalar el software.



Hacemos clic en Comparar y nos mostrara los cambios producidos en el registro




No se trata de ninguna aplicación complicada, simplemente compara dos archivos de texto, pero nos puede ser muy útil para detectar cambios en el registro producidos por algún software malicioso.


#56
Ya hemos visto varios métodos de instalar un servidor SSH tanto en Windows como en Linux. El proceso suele ser muy parecido en estos dos, pero hay una herramienta para Windows llamada FreeSSHd que nos permite instalar y configurar el servidor usando una intuitiva interfaz.

Si queréis ver los demás tutoriales:
Administración Remota de Equipos (SSH) :

Todos ellos forman parte del Taller de Instalación y Configuración de Servicios.

Procedemos a descargar el FreeSSHd desde la pagina oficial. Descargar.
Una vez descargado ejecutamos el instalador.



Es la típica instalación guiada con un asistente.

Seleccionamos la ruta de la instalación.



Clic en Next hasta acabar la instalación.



En cuanto acabe la instalación, nos preguntara si queremos crear el par de claves. Seleccionamos Si.



Como opción podemos usar el FreeSSHd como un servicio del sistema. Ahí ya depende de vosotros si queréis hacerlos. Yo le diré que si.



Al acabar la instalación tendremos en el área de notificación el icono del servidor, si hacemos doble clic sobre el nos saldrá la interfaz de configuración.



Si habéis seguido los demás tutoriales de configuración del SSH las opciones os resultaran muy familiares.

Tratare de explicar por encima algunas de las opciones de configuración. Como vemos también nos permite habilitar un servicios Telnet.

Vamos a la pestaña SSH.



En Listen Address seleccionamos el interfaz por el cual el servicios SSH escuchara las peticiones de conexión.

Las demás opciones con saber algo de Ingles ya se puede deducir lo que hacen.

Una cosa fundamental es la creación de usuarios para este servicio. Para eso vamos a la pestaña Users. El usuario que agregaremos debe estar creado previamente en el sistema.
Si no esta creado podeis hacerlo escribiendo control userpasswords2 en una consola o creándolo desde Usuarios y Equipos del Active Directory.

En Users hacemos clic en Add y rellenamos los datos que nos pide.



No os olvidéis de asignar bien los permisos de ese usuario.

Una opción recomendada es activar el Registro de Evento (Log Events). Que se hace marcando la casilla Log events en la pestaña Logging.

Ahora con PuTTy o cualquier cliente SSH podemos conectarnos y veremos que funciona.




#57
Iba a poner esto en el post de ebooks, pero seguramente pasaría inadvertido o no lo vería mucha gente. En este subforo no se menciona nada sobre la publicación de libros, pero si hay algún problema, enviadme un mensaje personal.



Nombre: Practical Arduino Cool Projects for Open Source Hardware
Idioma: Ingles
Paginas: 445
Peso: 9.14 MB
Descargar: MultiUpload || MirrorCreator

Descripcion:
El libro trata de una serie de tutoriales con Arduino, advierto que no se explica el típico proyecto de "los leds que parpadean", son proyectos largos y bastante
serios. También da una introducción a la Electrónica.

La mayoría de los proyectos necesitan mas componentes, no solo el Arduino.

Index del Libro:
Contents at a Glance.............................................................................................. iv
Contents... v
About the Authors................................................................................................ xvi
About the Technical Reviewers .......................................................................... xvii
Acknowledgments ............................................................................................... xix
Introduction ... xx
Chapter 1: Introduction...........................................................................................1
Chapter 2: Appliance Remote Control...................................................................17
Chapter 3: Time-Lapse Camera Controller............................................................37
Chapter 4: Virtual USB Keyboard ..........................................................................51
Chapter 5: PS/2 Keyboard or Mouse Input ...........................................................63
Chapter 6: Security/Automation Sensors .............................................................81
Chapter 7: Online Thermometer..........................................................................101
Chapter 8: Touch Control Panel ..........................................................................121
Chapter 9: Speech Synthesizer...........................................................................139
Chapter 10: Water Flow Gauge ...........................................................................163
Chapter 11: Oscilloscope/Logic Analyzer ...........................................................185
Chapter 12: Water Tank Depth Sensor................................................................209
Chapter 13: Weather Station Receiver................................................................239
Chapter 14: RFID Access Control System ...........................................................269
Chapter 15: Vehicle Telemetry Platform.............................................................295
Chapter 16: Resources........................................................................................383
Index ...405


Nota para Moderador: Si hay algún problema con el post, envíame un mensaje privado o muevelo a la sección correspondiente.
#58
Este articulo forma parte del Taller: [Taller]Instalación/Configuración y Teoría de Servicios en Red y también esta publicado en la wiki del foro en el siguiente enlace.




Esta ve veremos como instalar un servidor SSH en un entorno Microsoft Windows. En mi caso trabajare en un Windows Server 2008.

Procedemos a descargar la version de OpenSSH para Windows:
_SSHWindows [Descargar Instalador]

El instalador esta comprimido en un *.zip. Así que primero lo descomprimiremos y ejecutamos el instalador.



Aceptamos la licencia.


Seleccionamos todos los componentes.


Elegimos la carpeta donde se instalara el servidor.


Menú Inicio.


Durante la instalación nos advertirá de que una vez acabada tenemos que editar el fichero situado en C:\OpenSSH\etc\passwd.


El siguiente paso es acceder a la carpeta C:\OpenSSH\bin mediante consola.
cd C:\OpenSSH\bin

Y crear un par de claves DSA:


Y un par de claves RSA:



Crear usuarios y grupos

Para crear un grupo local usamos el parámetro -l y si queremos crear un grupo del dominio ponemos -d

C:\OpenSSH\bin>mkgroup -d >> C:\OpenSSH\etc\group



El grupo Contabilidad tiene que estar creado dentro del servidor.

Seguidamente ponemos una contraseña al grupo:
C:\OpenSSH\bin>mkpasswd -d -u Administrador >> ..\etc\passwd



El usuario Administrador tiene que estar creado, para ver y crear usuarios podemos usar el comando ¨control userpasswords2¨ en una consola.

Por defecto el instalador no agrega la carpeta del OpenSSH a las variables de entorno por lo que tenemos que hacerlo nosotros manualmente.

Vamos a Inicio --> Panel de Control --> Sistema --> Configuración Avanzada del Sistema y Variables de Entorno


Buscamos y Editamos la variable Path y agregamos los siguientes valores:

En caso de haber instalado el OpenSSH en otra ruta, ponemos esa.

Después creamos una nueva variable de entorno llamada HOME y como valor ponemos la ruta de la instalación de OpenSSH.



A continuación vamos a activar el servicios SSH, vamos a Inicio --> Herramientas Administrativas --> Servicios y buscamos OpenSSH. Clic derecho y propriedades, lo ponemos en Automático y hacemos clic en Iniciar




La conexión, el manejo, la configuración, la transferencia y demás se hacen exactamente igual que en Linux. Por lo tanto no voy a ponerlos otra vez, sino que os dejo el enlace del articulo donde se explica la instalación y uso del un servidor SSH en Linux para que le echéis un vistazo.

Instalación y Configuración de SSH (OpenSSH) en GNU/Linux (modo consola)

Cualquier duda o problema cread un post en el foro.
#59
Se trata de un articulo publicado en RedesZone originalmente escrito por Victor Prodenko al que le he agregado y modificado algunas cosas, abajo podéis ver la fuente completa.

El articulo esta orientado al usuario novato, con pocas nociones de informática o redes.




¿ Para qué sirve un router neutro ? Para suministrar acceso a una red (intranet o internet) a consolas, televisores, ordenadores, teléfonos móviles y en
general a cualquier dispositivo que se comunique de forma cableada o inalámbrica con una red informática .. cuando el módem o dispositivo de entrada
(tanto de adsl como de cable) no puede asignar nombres (IP) a más de una máquina.

También podemos usar un router neutro en una red empresarial, cuando el dispositivo concedido por el proveedor de Internet se nos queda corto o simplemente
no cumple los requisitos que se nos piden.

¿ Cuando necesitamos un router neutro?

  • En el caso que anuncia la cabecera del manual.
  • El equipo actual se queda colgado y no podemos navegar en nuestro ordenador.
  • Tras unos minutos u horas de descargar películas de emule o torrent no podemos navegar.
  • Cuando un equipo (el emule del hermano) nos deja sin ancho de banda y la navegación en otro PC se convierte en esperas y gritos de desesperación.
Como punto de partida hemos de aclarar que un router neutro no incorpora módem de adsl o módem de cable, es un equipo que hemos de conectar a la
salida del módem adsl o módem cable.


Recibimos preguntas de usuarios que han comprado el primer router neutro y no saben como conectarlo al módem router adsl o cable que tienen del
proveedor de Internet, en algunos casos tienen problemas para configurar el nuevo equipo con el CD del fabricante, en otros tienen puertos cerrados
o ID baja en programas P2P, en otros no pueden jugar partidas online, en otros no conectan los portátiles a la red wifi, etc ...

Escenario de partida en esta entrega. Conexiones ADSL con IP dinámica.

Conexión ADSL Jazztel o Telefónica con usuario y clave de conexión (llamada también conexión con IP dinámica).

Como ya se ha mencionado el router neutro no incorpora modem ADSL, por tanto tenemos que conectar el router recibido por el proveedor de Internet a una boca del
router neutro. La red quedaria tal como en el esquema de abajo.


Clic en la imagen para agrandar.

Acceder al módem-router o módem actual, ¿cómo?

Lo primero es conocer la IP o (puerta de enlace = módem-router) que debemos escribir en el navegador de Internet para acceder al módem. Dependiendo del sistema operativo en tu ordenador puedes averiguar la IP
del módem router con un sencillo comando: 'ipconfig' en windows, 'ifconfig' en linux, mostramos el ejemplo para windows:

[youtube=425,350]http://www.youtube.com/watch?v=_qalXvAaPnI[/youtube]

La mayor parte de los equipos entregados por los proveedores de Internet llevan por defecto un nombre de usuario y clave o password, vamos a enumerar los
más habituales, si no consigues entrar en el módem router actual contacta con tu proveedor o pregunta en el foro.

Telefónica-Movistar
user= admin, password=1234
user= admin, password= admin
Jazztel
user=admin, password=admin
Vodafone
user= admin, password=admin

Vamos a cambiar la configuración de nuestro módem-router adsl para que se comporte como una pasarela (bridge) y nos permita jugar sin la dichosa id baja en P2P o problemas con puertos. Aquí os dejo el video,
consideramos que la IP es la conocida por defecto; 192.168.1.1 y el password en este caso user= admin y passw= admin.

[youtube=425,350]http://www.youtube.com/watch?v=GWylhVqHf6c[/youtube]
Configurar router en modo puente - bridge

Bien, ya está configurado el módem-router adsl y ahora es solo una pasarela, habréis visto que también hemos desconectado el wifi, es tan solo un módem ahora.
Vamos a configurar el router neutro, desconectamos el módem-router del cable de red que va a la tarjeta de nuestro ordenador y colocamos en su lugar el router neutro conectando el cable de red a cualquiera de las salidas
de LAN posterior del equipo. Hay dos operaciones principales a realizar; Configurar el nombre de usuario y la clave que anteriormente teníamos en el módem
router y .. cambiar la IP LAN del router neutro para que no entre en conflicto con la del módem, en el módem la IP LAN es 192.168.1.1 y ahora en el router
neutro será 192.168.2.1 , refrescaremos IP en la tarjeta de red para conectarnos a la nueva sub-red 192.168.2.1 . Veamos los pasos:

[youtube=425,350]http://www.youtube.com/watch?v=avo6xajYNtA[/youtube]
Configuración router neutro en PPPoE

Una vez hecho esto:
1- Conectamos el módem router a la clavija del teléfono (sin pasar por el microfiltro).
2- Conectamos la alimentación del módem router.
3- Conectamos un cable ethernet de una de las salidas LAN del módem-router a la entrada (internet o WAN) del router neutro.
4- Conectamos un cable ethernet de una de las salidas LAN del router neutro a la tarjeta de red en nuestro PC.
5- Conectamos la alimentación del router neutro y ponemos en marcha el ordenador.


Fuente original del articulo: Cómo configurar un router neutro ?
Autor original: Victor Prodenko


#60
He hecho un pequeño articulo sobre algunas medidas que deberíamos tomar en cuenta a la hora de instalar o configurar un servidor PHP. Claro que si nos ponemos en modo paranoico acabamos desactivando la mitad de las funciones y características del servidor.

Nos puede interesar aplicar ciertas medidas de seguridad a nuestro servidor web con PHP. Como todos sabemos las configuraciones se hacen en el archivo php.ini . Si somos el administrador del servidor podremos configurar estas medidas, en algunos hostings compartidos con CPanel hay una opción que permite hacer esto. Si no es así, entonces tendremos que ponernos en contacto con el administrador del servidor y proponerle estas medidas.

Procedemos a editar el archivo php.ini. Las siguientes directivas se recomienda reconfigurarlas:

       
  • max_execution_time=30 ;Tiempo máximo de ejecución
       
  • max_input_time=60 ;Tiempo máximo de espera para recibir datos de un formulario o cualquier input
       
  • memory_limit=8M ; Máximo de memoria que puede ejecutar una aplicación
El punto y coma (;) podemos dejarlo ya que indica un comentario y no sera tomado en cuenta por el servidor web. Es importante comentar las lineas y los cambios hechos en cualquier servidor.

Para ver las configuraciones del servidor podemos usar phpinfo()
<?php
phpinfo()
?>

Esta función muestra la configuración del servidor.

Habilitar el reporte de errores

Cuando escribimos alguna aplicación es fácil que se nos olvide el nombre de alguna variable o usemos alguna función deprecated. Por ejemplo, PHP nos permite usar una variable sin declaración previa, por eso nos podemos confundir al escribir el nombre de la variable y que nuestra aplicación falle.

Para intentar solucionar estos errores humanos podemos habilitar el reporte de errores en nuestros scripts. Para esto solo tenemos que agregar la función error_reporting(E_ALL); al principio de nuestras aplicaciones:
<?php
error_reporting(E_ALL);
//Aqui va el resto de codigo, funciones, clases y demás ...
?>

Uno de los mensajes que podemos recibir es:
Notice: Undefined variable: var in script.php on line n

Esto nos advierte que estamos usando una variable que no esta instanciada, puede ser por que la hemos escrito mal.

Deshabilitar el reporte de errores general

Nos puede pasar que tengamos una aplicación que funcione correctamente pero PHP nos siga advirtiendo de algún "posible fallo". Los errores también facilitan muchísimo la labor a un posible atacante. Editamos el fichero de configuracion de PHP, php.ini y cambiamos la linea:
display_errors=Off ;Deshabilita el reporte general de errores

Después de hacer cualquier cambio en el servidor, para que los cambios surjan efecto hay que reiniciar el servicio.

Si nos interesa ver esos errores pero sin que los vean los visitantes podemos habilitar el log de errores. En php.ini buscamos la linea:
log_errors=On

Podemos incluso enviar los errores al syslog. En el archivo de configuración tenemos algunos ejemplos.

Otros ajustes

Podemos ajustar el tamaño de los archivos que se pueden enviar al servidor:
upload_max_filesize=8M ;Suele ser mas que suficiente

Tambien nos conviene cambiar el directorio donde se guardan los ficheros temporales:
upload_tmp_dir=\var\tmp\tmp2"

Creo que ya no hace falta decir que debemos desactivar los register_globals.
register_globals=Off

A partir de PHP 4.2 esta opción viene desactivada por defecto.

Para prevenir posibles ataques de inyeccion SQL podemos activar los Magic Quotes aunque se recomienda usar la función mysql_real_escape_string(), pero si nos ponemos cabezotas podemos usar Magic Quotes. Buscamos la linea:
magic_quotes_gpc=1



Podemos denegarle el acceso a PHP a directorios que no esten a su alcance.  Por ejemplo que no se puedan leer ni manipular archivos que no estén en la carpeta www:
open_basedir=/home/www

Podemos agregar mas concatenando varias rutas separadas por : (en Unix) o ; (en Windows).

Prohibir el uso de ciertas funciones

Supongamos que por razones obvias de seguridad decidimos prohibir el uso de funciones como exec() que permite ejecutar comandos directamente en el servidor. Para esto buscamos la siguiente linea y agregamos las funciones que queremos prohibir:
disable_functions=system, exec, passthru, shell_exec, proc_open

Extensiones para mejorar el uso y la seguridad

Nos puede mejorar el desarrollo y uso de aplicaciones habilitando mas extensiones en el servidor.

cURL=permite al servidor PHP enviar y recibir informacion de otros sitios/webs.

Mcrypt=Sirve para cifrar todo tipo de variables, tanto de sesión y cookies como números de tarjetas bancarias.

GD=Usada para crear gráficos, trabajar con imágenes en formato jpeg y gif o también crearlas.
#61
Muchas veces queremos borrar algun fichero que se encuentra distribuido en varias carpetas. Imaginemonos el siguiente escenario: "Acabo de descargarme el típico *.rar con películas y esta lleno de publicidad y accesos directos (*.url) del sitio de donde lo he descargado. Como no me gusta esa publicidad y quiero tener la carpeta con peliculas limpia he decidido borrarlos, claro que se pueden borrar uno a uno pero se tarda bastante." En sistemas Linux podemos usar la búsqueda recursiva dentro de un directorio.

Así que para agilizar un poco el proceso hay que hacer lo siguiente:

find . -type f -name "*.txt" -exec rm -i {} \;
Con este comando buscas [find] todos los archivos de un tipo determinado (zip, gz, jpg, gif, pdf, url, etc) y los borras recursivamente a lo largo del árbol de directorio, partiendo desde donde estás ubicado.

Este comando pedirá confirmación de borrado. Si queremos que no la pida le quitamos el parámetro -i y ponemos -f, quedando algo así:

find . -type f -name "*.txt" -exec rm -f {} \;
Esto borrara todos los ficheros con extensión .txt encontrados en el directorio en el que estamos incluyendo subdirectorios.

#62
Recopilación de programas para recuperar datos borrados o "perdidos" accidentalmente o no.... No pondré ningún enlace de descarga warez ya que todo el mundo sabe como conseguirlos y esto es un articulo informativo. Si conocéis mas programas decidlo y los agrego a la lista.

Lista programas GRATUITOS

1. Recuva
Descarga aquí, y sus características son:




  • Versión portable
  • Recupera archivos aunque la papelera de reciclaje haya sido vaciada
  • Recupera imágenes y otros archivos que han sido eliminados de memorías SD, MMC, Memory Stick, XD de cámaras, reproductores de MP3, etc.
  • Recupera archivos que han sido eliminados por virus y errores del sistema.
Soporta medios con sistemas de archivos FAT12/16/32,NTFS/NTFS5

2. Undelete Plus
Descarga aquí, y sus características son:


  • Recupera archivos aunque la papelera de reciclaje haya sido vaciada
  • Recupera archivos que han sido eliminados permanenetemente de Windows usando Shift + Delete
  • Recupera archivos que han sido eliminados desde la línea de comandos (terminal, MS-DOS)
  • Hace una imagen de recuperación de tarjetas CompactFlash, SmartMedia, MultiMedia y Secure Digital
Soporta medios con sistemas de archivos FAT12/16/32,NTFS/NTFS5

3. PC INSPECTOR™ File Recovery 4.x
Descarga aquí, y sus características son:


  • Encuentra particiones automáticamente, incluso si se ha borrado o se ha dañado el sector de arranque.
  • Recupera archivos con todos los atributos originales de la fecha de creación y todo eso.
  • Soporta la opción de guardar los archivos recuperados en una unidad de red.
  • Recupera archivos, incluso si su encabezado no está disponible. Con la función "Special Recovery Function" soporta los siguientes formatos:
    ARJ AVI BMP CDR DOC DXF DBF XLS EXE GIF HLP HTML HTM JPG LZH MID MOV MP3 PDF PNG RTF TAR TIF WAV y ZIP
Soporta medios con sistemas de archivos FAT 12/16/32 y NTFS

4. Glary Undelete
Descarga aquí, y sus características son:


  • Recupera archivos aunque la papelera de reciclaje haya sido vaciada o hayan sido eliminados desde una ventana de MS-DOS o usando Shift + Delete
  • Recupera archivos que han sido eliminados por virus y errores del sistema.
  • Recupera archivos de dispositivos extraibles cómo (SmartMedia, Secure Digital, MemoryStick, etc.)
Soporta medios con sistemas de archivos FAT, NTFS, NTFS + EF

5. Recover Files
Descarga aquí, y sus características son:


  • Recupera archivos borrados de la papelera de reciclaje o de unidades de red, memorias compact flash, discos duros externos, etc.
Soporta medios con sistemas de archivos NTFS y FAT.

6. DataRecovery
Descarga aquí, y sus características son:


  • Recupera archivos aun habiendo vaciado la papelera de reciclaje por accidente.
  • Recupera archivos comprimidos en NTFS
  • Recupera archivos cifrados con EFS
  • Se puede ejecutar desde un floppy disk (disquete)
Soporta medios con sistemas de archivos FAT12, FAT16, FAT32, NTFS.

7. NTFS Undelete
Descarga aquí, y sus características son:


  • Recupera archivos directamente del disco duro aun habiendo vaciado la papelera de reciclaje.
  • Puedes crear un disco (CD, DVD) de arranque para tratar de recuperar desde ahi los archivos.
  • Si tus ficheros suprimidos no están situados en el disco del sistema, entonces puedes utilizar el instalador de NTFS undelete para instalar el software



8. PhotoRec
Descarga aquí, y sus características son:


  • Recupera archivos suprimidos incluyendo video, documentos y archivos desde el disco duro CD-ROM y fotos eliminadas de una cámara o teléfono celular.
  • Trabaja incluso si el sistema de archivos de tu disco duro se ha dañado o se ha cambiado el formato seriamente
Soporta medios con sistemas de archivos FAT, NTFS, EXT2/EXT3 filesystem, HFS+


9. TestDisk
Descarga aquí, y sus características son:



  • Ideal para cuando aparece el error: El disco no está formateado. El disco de la unidad x no tiene formato ¿Desea darle formato ahora?

  • Arreglar la Tabla de Particiones, recuperar particiones eliminadas o dañadas

  • Recuperar sectores de booteo FAT32 de su copia de respaldo


  • Reconstruir sectores de booteo FAT12/FAT16/FAT32

  • Arreglar tablas de booteo de tipo FAT

  • Reconstruir sectores de booteo NTFS

  • Recuperar sectores de booteo NTFS de su copia de respaldo

  • Arreglas la MFT usando la MFT mirror

  • Localizar el Superblock de copia de respaldo de ext2/ext3

  • Recuperar archivos de sistemas de archivos FAT, NTFS y ext2

  • Copiar archivos de particiones FAT, NTFS y ext2/ext3 eliminadas

Tutorial - Manual de TestDisk para recuperar particiones dañadas o borradas


10. DiskDigger
Descarga aquí, y sus características son:




  • Ejecutable sin instalador (portable), poco peso

  • Recuperar ficheros eliminados de particiones FAT (FAT12, FAT16, FAT32), NTFS, y exFAT .

  • Funciona en pendrive, lápiz de memoria, usb, tarjetas de memoria

  • Funciona en Linux también

  • Incluye preview documentos, imágenes, etc

  • Funciona en Linux también



11. R-Linux
Descarga aquí, y sus características son:




  • Herramienta gratuita permite recuperar archivos eliminados, formateados, borrados o dañados tanto en particiones Linux EXT2, EXT3 o EXT4 como en particiones FAT32 o NTFS.

  • Contiene varios filtros para recuperar información dependiendo del contenido. Ideal para usuarios avanzados. Tiene varias opciones de recuperación, así como herramientas de visualización hexadecimal, búsqueda personalizada, visor de sectores, etc...







A parte de esos hay muchos más:

  • MiniTool Power Data Recovery
  • DiskRecovery 6.0
  • Recover My Files
  • File Recover
  • EasyRecovery Professional
  • Undelete Plus
  • Data Recovery Wizard
  • Undelete Professional Edition
  • PC Inspector Smart Recovery
  • Victoria (VCR)
  • EaseUS Data Recovery Wizard


Pongo este recopilatorio porque he visto a mucha gente buscando
#63
Scripting / [Aporte] Twisted Project [Python]
19 Diciembre 2010, 21:38 PM
Hace poco me hablaron sobre este proyecto llamado Twisted bajo licencia MIT. Intentare hacer una pequeña traducción de la descripción del proyecto de la pagina oficial.

Twisted Matrix Project

Se trata de un motor escrito totalmente en Python, soporta muchos protocolos (TCP, UDP, SSL/TLS, multicast, Unix sockets, y muchos mas incluyendo HTTP, NNTP, IMAP, SSH, IRC, FTP, y otros). Incorpora servidores web, clientes de chat, servidores de correo, etc.

En realidad esta compuesto por muchos mas sub-proyectos, podéis verlos todos aquí: index de sub-proyectos .

Algunos como:


Sin mas os dejo los enlaces del proyecto:
_Twisted Project
_Twisted FAQ
_Twisted Docs (Documentación)

Espero que le sirva a alquien.

Saludos!
#64
Hacking / Maneras interesantes de usar Nmap
18 Diciembre 2010, 17:25 PM
Vamos a ver unas interesantes maneras de usar el Nmap, al final del articulo esta la fuente original.


1. Obtener información de un host remoto y detección del SO
nmap -sS -P0 -sV -O <dirección>

Donde <dirección> es la IP del servidor/nodo o una subnet.

-sS=escaneo TCP SYN (o escaneo sigiloso)
-P0=no se envian pings ICMP
-sV=detecta las versiones
-O=se intenta identificar el Sistema Operativo
Otras opciones:
-A=habilita OS fingerprinting y detección de versión
-v=usar dos veces -v para obtener mas detalles


2. Listar servidores con un puerto especifico abierto
nmap -sT -p 80 -oG – 192.168.1.* | grep open

Cambiar el argumento -p por el numero del puerto.


3. Detectar IP's activas en una red
nmap -sP 192.168.0.*

Otra opción para subnets es:
nmap -sP 192.168.0.0/24


4. Hacer ping a un rango de IP's
nmap -sP 192.168.1.100-254

Nmap acepta una gran variedad de rangos, notación de direcciones, objetivos múltiples, etc.


5.Encontrar IP's no usadas en una subnet
nmap -T4 -sP 192.168.2.0/24 && egrep "00:00:00:00:00:00″ /proc/net/arp



6. Escanear en busca del virus conficker
nmap -PN -T4 -p139,445 -n -v –script=smb-check-vulns –script-args safe=1 192.168.0.1-254

Reemplazar 192.168.0.1-254 con las IP's que se quiere escanear.


7. Escanear red en busca de AP falsos
nmap -A -p1-85,113,443,8080-8100 -T4 –min-hostgroup 50 –max-rtt-timeout 2000 –initial-rtt-timeout 300 –max-retries 3 –host-timeout 20m –max-scan-delay 1000 -oA wapscan 10.0.0.0/8

Funciona incluso en grandes redes.


8. Crear un señuelo durante el escaneo de puertos para evitar ser detectado
sudo nmap -sS 192.168.0.10 -D 192.168.0.2

Escanea los puertos del nodo 192.168.1.10 mientras spoofea la IP 192.168.0.2 como nodo atacante (esta IP debe estar activa) asi parecera que el escaneo se ejecuta desde la IP 192.168.0.2 (la ip spoofeada). Comprobar los logs en /var/log/secure para comprobar si ha funcionado corectamente.


9. Listar los registros DNS inversos de una subred
nmap -R -sL 209.85.229.99/27 | awk '{if($3=="not")print"("$2″) no PTR";else print$3″ is "$2}' | grep '('

Este comando hace un reverse DNS lookup en una subred, se crea una lista con las direcciones IP de los registros PTR en la subred indicada. Se puede insertar la subred en notación CDIR (ejemplo: /24 para la Clase C). Puedes agregar "-dns-servers x.x.x.x" después del parámetro "-sL" si quieres realizar el listado sobre un servidor DNS especifico.


10. Cuantos nodos con Linux y cuantos con Windows hay en una red
sudo nmap -F -O 192.168.0.1-255 | grep "Running: " > /tmp/os; echo "$(cat /tmp/os | grep Linux | wc -l) Linux device(s)"; echo "$(cat /tmp/os | grep Windows | wc -l) Window(s) devices"


Este articulo ha sido escrito por Urfix, yo solo lo he traducido al español.
Fuente original: Blog de Urfix

Enlaces relacionados:
_Guía comprensiva de Nmap
_Paginas MAN de Nmap
#65
Este artículo forma parte del: [Taller]Instalación/Configuración y Teoría de Servicios en Red y también esta publicado en la wiki del foro en la sección de Redes.

Esta vez vanos hablar sobre como crear unidades administrativas, crear usuarios y grupos, unir un equipo a un dominio existente y crear perfiles móviles para los usuarios del Active Directory.
El tutorial esta desarrollado sobre Windows Server 2008, el proceso es parecido para Windows Server 2003.


Crear usuarios y grupos

Vamos a Inicio --> Herramientas Administrativas --> Usuarios y Equipos de Active Directory



Para administrar mejor los usuarios y los grupos podemos crear unidades para los grupos y los usuarios.



Clic derecho sobre el nombre del dominio --> Nuevo --> Unidad Organizativa --> Y creamos una unidad para Usuarios y otra para Grupos.



Tendremos algo así:



Ahora imaginémonos que estamos dentro de una empresa y los empleados trabajan en distintos departamentos: Contabilidad, Recursos Humanos y Dirección.
Procedemos a crear los grupos. Hacemos clic derecho sobre la unidad organizativa que hemos creado anteriormente llamada Grupos --> Nuevo --> Grupos



Creamos nuestros grupos.



Repetimos el proceso con los demás grupos.



El Ámbito de Grupo y el Tipo de Grupo los ajustamos a nuestra necesidad, en mi caso lo dejaré por defecto.



Ahora que ya tenemos creados los grupos, vamos a crear los usuarios del dominio.

Clic derecho sobre la unidad organizativa Usuarios --> Nuevo --> Usuarios



Rellenamos los datos pedidos.



Elegimos la contraseña del usuarios (debe cumplir los requisitos de seguridad, podéis ponerle: ElHacker.net123



Y finalizamos.



Para hacer las pruebas crearemos al menos 3 usuarios.





Agregar usuario a un grupo

Seleccionamos uno de nuestros usuario --> Clic derecho sobre él --> Propriedades



Una vez abierta la ventana de propriedades, vamos a la pestaña Miembro de .



Hacemos clic en Agregar. A este usuarios vamos a unirle al grupo Recursos Humanos. Después de escribir el nombre del grupo le damos a Comprobar Nombres.



Ahora si observamos la ventana de Miembro de, veremos que pertenece también el grupo Recursos Humanos.



Eso es todo en cuanto a Grupos de Usuarios.



Creación de Perfiles Móviles

Creamos una carpeta llamada Perfiles dentro de nuestro servidor, yo la crearé en el Disco Local C. Hacemos clic derecho sobre esta carpeta --> Propriedades --> Uso compartido avanzado



Después marcamos la casilla de Compartir y hacemos clic en Permisos --> Seleccionamos Todos y marcamos Control Total



Aplicamos los cambios y Aceptamos.

Ahora vamos a Usuarios y Equipos de Active Directory --> Unidad Organizativa "Usuarios" --> Clic derecho sobre un usuario --> Pestaña Perfil



En Ruta de Acceso al Perfil, ponemos la IP del Servidor + la carpeta Perfiles + %username%

Hacemos clic en Aplicar y Aceptar.



Unir un equipo a un dominio

Arrancamos el equipo que queremos unir al dominio.
Primero debemos configurar el protocolo TCP/IP. Vamos a Inicio --> Panel de Control --> Conexiones de Red --> Clic derecho sobre nuestra conexión --> Propriedades --> Protocolo TCP/IP --> Y configuramos el equipo. Nota: El DNS debemos poner la IP del servidor con Active Directory.



Para comprobar que la configuración ha surgido efecto es recomendable reiniciar el equipo y después hacer un ping al servidor.



Ahora toca unir el equipo al dominio.
Vamos a Inicio --> Panel de Control --> Sistema --> Nombre de Equipo --> Cambiar --> Y ponemos el nombre del equipo y el nombre de dominio.



Hacemos clic en Aceptar y si todo ha salido bien no deberá mostrar un mensaje como el de abajo.



Donde ponemos el nombre de inicio de sesión de algunos de nuestros usuarios y su contraseña. Clic en Aceptar y nos dará la bienvenida al dominio.



Reiniciamos el equipo y al iniciar tendremos activada el inicio de sesión clásico por usuarios.



Iniciamos sesión.



Ahora podemos hacer algún cambio como cambiar el fondo de escritorio, guardar algún fichero en Mis Documentos para comprobar que funciona el perfil móvil. Al reiniciar e iniciar sesión con ese usuario veremos que no se han perdido los cambios.

Si vamos a la carpeta Perfiles creada en el servidor podemos ver dentro una carpeta que tendrá el nombre del usuario con el que hemos iniciado sesión anteriormente, en esa carpeta es donde se guardan las configuraciones y archivos de ese usuario.



Cualquier pregunta, hacedla en el post o crear otro.



#66
GNU/Linux / Herramientas de Backup en Linux
5 Diciembre 2010, 19:09 PM
Recopilación de herramientas para hacer backups en Linux.

Articulo original: 21 herramientas de backup para Linux


Herramienta de copias de seguridad (con Interfaz Gráfica de Usuario)
Software de backup de archivos desarrollado con Java
Sistema empresarial de alto rendimiento para realizar backups de PCs
Backups en red, con recuperación y verificación de datos
Software de backup con un montón de opciones
Sistema de backup en KDE
Software de backup consistente en un daemon para el Backend y un Frontend basado en GNOME


Herramienta de copias de seguridad (Dese la consola de comandos)
Sistema de Backup cliente-servidor (GUI disponible)
Advanced Maryland Automatic Network Disk Archiver
Backups remotos y locales grabables en CDs o DVDs
Sistema de backups cifrado con eficiencia en el aprovechamiento del ancho de banda
Utilidades de copia y restauración para sistemas de ficheros ext2/ext3
¿Quién podría olvidar a la legendaria Tar?


Backups basados en Snapshot
Equivalente de Time Machine en Mac OS X
Demonio de creación de Snapshots


Sincronización
Utilidad de sincronización para sistemas de ficheros locales y remotos
Programa de copia remota rápida


Recuperación de desastres / Clonación de discos
Ofrece funciones similares a las de Symantec Ghost
Una suite muy potente de recuperación de desastres
Backup de particiones en un fichero imagen comprimido
También ofrece funciones similares a las de Symantec Ghost


Herramientas Especializadas
Utilidad basada en Perl para automatizar la copia de seguridad y restauración de bases de datos MySQL






Articulo original: 21 herramientas de backup para Linux
Vía: MuyLinux
#67
Se trata una traducción de este articulo, al final esta la fuente completa. Iré actualizando este post a medida que encuentre mas herramientas.
Cualquiera es libre de aportar, si lo has leído en alguna web, es recomendable poner la fuente.



1. top
Nos provee información sobre todos los procesos arrancados y nos permite cerrarlos. Muestra el usuario que ha arrancado dicho proceso, los recursos que utiliza, PID, CPU, memoria y swap restante, etc. El comando es: top .


2. vmstat
Hace un reporte sobre memoria, paginación, procesos, actividad de la CPU, etc.
Salida:
Código (bash) [Seleccionar]
mad@mad-laptop:~$ vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
1 0 0 1580008 99968 441204 0 0 121 16 115 646 3 2 93 2



3. w - Comprueba quien esta loggeado y que hace
w - muestra quien ha iniciado sesión en la maquina y que procesos tiene arrancados.
Ejemplo:
Código (bash) [Seleccionar]
mad@mad-laptop:~$ w
12:07:51 up 18 min, 2 users, load average: 0,60, 0,65, 0,46
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
mad tty7 :0 11:49 18:12 1:10 0.09s gnome-session
mad pts/0 :0.0 11:59 0.00s 0.34s 0.01s w
mad@mad-laptop:~$ w mad
12:07:59 up 18 min, 2 users, load average: 0,67, 0,66, 0,46
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
mad tty7 :0 11:49 18:20 1:10 0.09s gnome-session
mad pts/0 :0.0 11:59 0.00s 0.33s 0.00s w mad



4. uptime
Se usa para ver cuanto tiempo lleva encendido un servidor, cuantos usuarios hay conectados y la carga del sistema.
Código (bash) [Seleccionar]
mad@mad-laptop:~$ uptime
12:09:53 up 20 min, 2 users, load average: 0.67, 0.65, 0.47


5. ps
Muestra todos los procesos activos. Para ver todos los procesos, tanto activos como inactivos se usa el parámetro ps -e o -a
Código (bash) [Seleccionar]
mad@mad-laptop:~$ ps -a
PID TTY TIME CMD
2693 pts/0 00:00:00 ps



6. free
Muestra el espacio total y libre de memoria física y swap.
Código (bash) [Seleccionar]
mad@mad-laptop:~$ free
total used free shared buffers cached
Mem: 2438544 843176 1595368 0 100792 427292
-/+ buffers/cache: 315092 2123452
Swap: 2047992 0 2047992



7. iostat
Muestra la carga del procesador y la actividad de los discos duros.
Código (bash) [Seleccionar]
mad@mad-laptop:~$ iostat
Linux 2.6.32-25-generic (mad-laptop) 02/12/10 _i686_ (4 CPU)

avg-cpu: %user %nice %system %iowait %steal %idle
2,99 0,01 1,80 1,12 0,00 94,08

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 11,01 541,08 82,95 833226 127744


8. sar
Muestra la actividad del sistema. Para verlo en tiempo real podemos ejecutar sar 4 5 e ira actualizando los datos.
Código (bash) [Seleccionar]
mad@mad-laptop:~$ sar 4 5
Linux 2.6.32-25-generic (mad-laptop) 02/12/10 _i686_ (4 CPU)

12:17:21 CPU %user %nice %system %iowait %steal %idle
12:17:25 all 3,81 0,00 2,40 0,00 0,00 93,80
12:17:29 all 4,51 0,00 4,88 0,00 0,00 90,60
12:17:33 all 3,27 0,00 1,97 0,00 0,00 94,76
12:17:37 all 3,55 0,00 1,43 0,00 0,00 95,02


9. mpstat
Muestra la carga de trabajo de cada microprocesador, empieza contando desde 0.
Código (bash) [Seleccionar]
mad@mad-laptop:~$ mpstat -P ALL
Linux 2.6.32-25-generic (mad-laptop) 02/12/10 _i686_ (4 CPU)

12:19:13 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
12:19:13 all 2,92 0,01 1,76 0,96 0,01 0,03 0,00 0,00 94,30
12:19:13 0 3,29 0,00 2,33 0,79 0,02 0,01 0,00 0,00 93,56
12:19:13 1 3,89 0,00 1,47 1,07 0,00 0,01 0,00 0,00 93,55
12:19:13 2 2,55 0,00 1,70 0,61 0,03 0,08 0,00 0,00 95,03
12:19:13 3 1,94 0,05 1,55 1,38 0,00 0,01 0,00 0,00 95,07



10. pmap
Nos hace un reporte de un proceso, se puede usar para encontrar cuellos de botella.
Código (bash) [Seleccionar]
pmap -d PID
b7732000 1100 rw--- 0000000000000000 000:00000 [ anon ]
b7845000 12 r--s- 0000000000000000 008:00002 d60319d88cac85ba9e1a07bd06cfbb8c-le32d4.cache-3
b7848000 4 r--s- 0000000000000000 008:00002 4794a0821666d79190d59a36cb4f44b5-le32d4.cache-3
b7849000 4 r---- 0000000000000000 008:00002 LC_MONETARY
b784a000 4 r---- 0000000000000000 008:00002 SYS_LC_MESSAGES
b784b000 4 r---- 0000000000000000 008:00002 LC_PAPER
b784c000 4 r---- 0000000000000000 008:00002 LC_NAME
b784d000 4 r---- 0000000000000000 008:00002 LC_ADDRESS
b784e000 4 r---- 0000000000000000 008:00002 LC_TELEPHONE
b784f000 4 r---- 0000000000000000 008:00002 LC_MEASUREMENT
b7850000 28 r--s- 0000000000000000 008:00002 gconv-modules.cache
b7857000 4 r---- 0000000000000000 008:00002 LC_IDENTIFICATION
b7858000 8 rw--- 0000000000000000 000:00000 [ anon ]
bf95f000 208 rw--- 0000000000000000 000:00000 [ stack ]


11. netstat
Muestra las conexiones activas (sockets abiertos), tablas de rutas, etc.
Código (bash) [Seleccionar]
_socket
unix 3 [ ] FLUJO CONECTADO 4363
unix 3 [ ] FLUJO CONECTADO 4358
unix 3 [ ] FLUJO CONECTADO 4357
unix 2 [ ] DGRAM 4354
unix 3 [ ] FLUJO CONECTADO 4328 /var/run/dbus/system_bus_socket
unix 3 [ ] FLUJO CONECTADO 4327
unix 2 [ ] DGRAM 4324
unix 3 [ ] FLUJO CONECTADO 4291 /var/run/dbus/system_bus_socket
unix 3 [ ] FLUJO CONECTADO 4289
unix 3 [ ] FLUJO CONECTADO 4286
unix 3 [ ] FLUJO CONECTADO 4285
unix 3 [ ] DGRAM 2835
unix 3 [ ] DGRAM 2834
unix 3 [ ] FLUJO CONECTADO 2799 @/com/ubuntu/upstart
unix 3 [ ] FLUJO CONECTADO 2796



12. ss
Muestra información similar a netstat
Código (bash) [Seleccionar]
mad@mad-laptop:~$ ss -s
Total: 629 (kernel 648)
TCP: 47 (estab 29, closed 8, orphaned 0, synrecv 0, timewait 8/0), ports 0

Transport Total IP IPv6
* 648 - -
RAW 0 0 0
UDP 8 8 0
TCP 39 36 3
INET 47 44 3
FRAG 0 0 0

Ver todos los puertos abiertos:
Código (bash) [Seleccionar]
mad@mad-laptop:~$ ss -l
Recv-Q Send-Q Local Address:Port Peer Address:Port
0 128 127.0.0.1:ipp *:*
0 128 ::1:ipp :::*
0 128 *:17500 *:*
0 50 :::microsoft-ds :::*
0 50 :::netbios-ssn :::*


13. iptraf
Es una de las mejores herramientas de analisis de trafico, nos muestra el trafico de forma interactiva, pudiendo seleccionar varios interfaces,


14. tcpdump
Muestra todos los paquetes que recibe el adaptador configurado. Se necesita saber algo de Networking para entenderlos.
Código (bash) [Seleccionar]
mad@mad-laptop:~$ tcpdump -i
tcpdump version 4.0.0
libpcap version 1.0.0
Usage: tcpdump [-aAdDefIKlLnNOpqRStuUvxX] [ -B size ] [ -c count ]
[ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ]
[ -i interface ] [ -M secret ] [ -r file ]
[ -s snaplen ] [ -T type ] [ -w file ] [ -W filecount ]
[ -y datalinktype ] [ -z command ] [ -Z user ]
[ expression ]


15. strace
Muestra las llamadas y señales del sistema. Se puede usar para depurar un servidor web.

16. Directorio /proc
En el directorio /proc se encuentran varios ficheros que nos pueden mostrar información sobre el sistema.
Código (bash) [Seleccionar]
cat /proc/cpuinfo

cat /proc/meminfo

cat /proc/zoneinfo

cat /proc/mounts


17. Nagios
Nagios es una herramienta de código abierto que sirve para monitorizar la red y el servidor. Puedes monitorizar nodos, servicios, procesos,

18. Cacti
Cacti es una herramienta que dispone de un front-end web para usarlo junto con herramientas RRDtool
Se puede usar para monitorizar hosts locales y remotos, es una herramienta pensada para usarla en grandes redes.

19. KDE System Guard
KSysguard es una herramienta gráfica parecida a las ultimas dos citadas.
KDE SysGuard HandBook
Docs de KSys en Español



20. Gnome System Monitor
Esta herramienta viene instalada por defecto en todas las distribuciones Ubuntu.


22. Htop
Herramienta parecida a top, se podría decir que es una versión mas avanzada de esta.




Fuente:
20 Linux System Monitoring Tools Every SysAdmin Should Know
#68
Este articulo forma parte del Taller: [Taller]Instalación/Configuración y Teoría de Servicios en Red y también esta publicado en la wiki del foro en el siguiente enlace.

En esta parte del taller vamos a instalar un servidor SSH para controlar un equipo de forma remota y segura. Usaremos OpenSSH, ya que es abierto.

Los archivos que intervienen en la configuración se encuentran todos en la ruta /etc/ssh y son los siguientes:

  • ssh_config -- Este es el fichero de configuración del cliente SSH
  • sshd_config -- Fichero de configuración del Servidor SSH
Como directivas mas importantes en la configuración del servidor podemos encontrar:

  • PermitRootLogin [yes/no] -- Indica que el usuario root se puede conectar al servidor
  • RSAAuthentification [yes/no] -- Autenticación RSA activada
  • PubkeyAuthentification -- Si esta permitida la autenticación por clave publica
  • RhostsAuthentification -- Autenticación por rhost , no es seguro
  • HostbasedAuthentification -- Autenticación por host y no por usuario
  • PasswordAuthentification -- Indica si esta habilitada la autenticación normal (por contraseña, en caso de fallo de las demas)
  • X11Forwarding -- Indica si se permite o no ejecutar aplicaciones remotas X windows
  • MaxAuthTries (x) -- Numero máximo de reintentos de conexión
  • Hostkey [ruta/del/archivo] -- Archivo que contiene la clave privada del servidor
  • AllowUsers [user1] [user2] -- Lista de usuarios permitidos que tienen permiso para acceder al servidor

Directivas mas importantes en el cliente:

  • Port -- Indica el puerto a través del cual se comunicara con el servidor (por defecto el 22)
  • Protocol -- Indica el protocolo a usar (versión SSH)
  • PasswordAuthentification -- Indica si el acceso se realizara o no por contraseña
  • PubkeyAuthentification -- Autenticación por clave publica
  • ForwardX11 -- Ejecución de aplicaciones X11 en el cliente


Instalación:
sudo apt-get install openssh-server

Después de instalarlo si miramos en la carpeta /etc/ssh encontraremos los siguientes ficheros:
|
--> ssh_host_rsa_key = Archivo que contiene la clave RSA privada del cliente
|
--> ssh_host_rsa_key.pub = Archivo que contiene la clave RSA publica del cliente
|
--> ssh_host_dsa_key = Clave DSA privada
|
--> ssh_host_dsa_key.pub = Clave DSA publica
|
--> known_hosts = Contiene las claves publicas de otras maquinas

Primera conexión
En algunos casos hay que usar la ruta completa del programa ssh : /usr/bin ssh usuario@ip_del_servidor
Ejemplo:
Citarssh administrador@192.168.1.100
Nos pedira la contraseña y después mostrara una pantalla de bienvenida.


Generación de claves Publicas/Privadas
Usamos el comando de abajo:
Citarssh-keygen -t RSA
Para generar un par de claves de tipo RSA.

mad@server:~$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/mad/.ssh/id_rsa):
Created directory '/home/mad/.ssh'. //Nota: La ruta se puede cambiar
Enter passphrase (empty for no passphrase): <clave de paso>
Enter same passphrase again: <clave de paso>
Your identification has been saved in /home/mad/.ssh/id_rsa.
Your public key has been saved in /home/mad/.ssh/id_rsa.pub.
The key fingerprint is:
50:86:f8:ce:88:b1:b3:7b:43:e4:db:f9:ca:b3:44:42 mad@server
The key's randomart image is:
+--[ RSA 2048]----+
| . .o |
| . .o |
| E.. |
| ... .. |
| *.+. S |
| + +oo |
| + o.. |
| . +o+ |
| .o .+=. |
+-----------------+
mad@server:~$

Ese seria el proceso de generación de un par de claves publicas/privadas. La ruta la podemos elegir nosotros, en mi caso la he dejado por defecto.


Arrancar el Servidor
Este paso es opcional si vuestro servidor esta ya arrancado.
sudo /etc/init.d/ssh [start/restart/status/reload]

Bloquear el arranque del servidor
Si por algún motivo de seguridad queremos que nuestro servidor SSH no pueda ser arrancado tenemos que crear el fichero sshd_not_to_be_run en la carpeta /etc/ssh/
touch /etc/ssh/sshd_not_to_be_run

Activar X11
Para activar el uso de aplicaciones X11 tenemos que editar tanto el fichero de configuracion del servidor (sshd_config) como el del cliente (ssh_config) y descomentar (o añadir) las lineas:

X11Forwarding yes
X11DisplayOffset 10


Ahora si nos conectamos al servidor podremos usar aplicaciones gráficas, podemos probarlo poniendo xeyes en la consola, una vez conectados.

Nota: para cerrar una sesión remota podemos hacerlo con exit o logout


Enviar/Copiar archivos por SSH
El comando para enviar o copiar archivos de forma segura (usando ssh) es scp

Copiar ficheros:
scp usuario@ip_servidor:/fichero/que/quiero/descargar /ruta/mi_pc/cliente
Ejemplo, voy a descargar un fichero de texto llamado notas.txt del servidor y guardarlo en mi escritorio:
mad@mad-laptop:~$ sudo scp mad@192.168.1.100:/home/notas.txt /home/mad/Escritorio/notas_servidor.txt
[sudo] password for mad:
The authenticity of host '192.168.1.100 (192.168.1.100)' can't be established.
RSA key fingerprint is 86:bf:57:5a:6f:13:6e:c8:6f:52:97:55:5a:86:46:8e.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.100' (RSA) to the list of known hosts.
mad@192.168.1.100's password:
notas.txt 100% 24 0.0KB/s 00:00
mad@mad-laptop:~$


Enviar ficheros
El comando es el mismo pero al revés:
scp /ruta/pc/cliente usuario@ip_servidor:/ruta/de/destino
Ejemplo, voy a enviar un archivo en formato .sh al servidor:
mad@mad-laptop:~$ sudo scp /home/mad/Escritorio/ubucleaner.sh mad@192.168.1.100:/home/mad/
mad@192.168.1.100's password:
ubucleaner.sh 100% 978 1.0KB/s 00:00
mad@mad-laptop:~$

Hay que asegurarse de que tenemos permisos de escritura en la carpeta de destino.


SFTP (FTP Seguro)
El comando es:
stfp usuario@ip_servidorNo profundizare mas en este comando, ya que no tiene mucho misterio.


Agente SSH (SSH Agent)
El agente de autenticación permite simplificar el proceso de conexión a un servidor remoto en caso de que se utilice autenticación por clave publica.
Para lanzar el agente hay que usar este comando: eval 'ssh-agent' en nuestro cliente SSH
mad@mad-laptop:~$ eval 'ssh-agent'
SSH_AUTH_SOCK=/tmp/ssh-sSFqBg3130/agent.3130; export SSH_AUTH_SOCK;
SSH_AGENT_PID=3131; export SSH_AGENT_PID;
echo Agent pid 3131;
mad@mad-laptop:~$

Después, editar el archivo de configuración del servidor y buscar la linea #AuthorizedKeysFile , la des comentamos (quitándole la almohadilla) y ponemos la ruta donde se guardaran las claves publicas de los clientes que van a acceder a ese servidor.

La linea mencionada me a quedado así:
AuthorizedKeysFile /home/mad/.ssh/authorized_keys
Si el fichero authorized_keys no esta creado, tenemos que hacerlo nosotros y después darle permisos (755 al menos).

El siguiente paso es enviar nuestra clave publica al servidor:
mad@mad-laptop:~/.ssh$ scp /home/mad/.ssh/id_rsa_mad.pub mad@192.168.1.100:/home/mad
mad@192.168.1.100's password:
id_rsa_mad.pub 100% 1743 1.7KB/s 00:00
mad@mad-laptop:~/.ssh$


Ahora vamos a acceder al servidor y agregar la clave publica del cliente en el fichero con claves del servidor:
root@server:/home/mad# cat /home/mad/id_rsa_mad.pub >> /home/mad/.ssh/authorized_keys
root@server:/home/mad/.ssh# cat authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA0IUnY5PTQvMqTiHtjcLsQtbFIl1uBbj3QMd5YMpMUvU9haudhuDOXW5bsOep7DLONS6oeu8NMUnwm8J6hKy02K89fRqFZ0c17PAPbos5jjl0xGlBcFd8caZINHP3YLfn9OCYT4SY1Cb9ym/jiR/YqWvV7n5GB+2u9SOZYe8ndfDoOVHryxax5O7TeB+hn4kxy6gPqP6ZRxC0GEsn4Dem7UzlDz881QhF7ag2xm4BugAnk8ZAdTE51jJfTUa0mV1YjaRXUe5/FRL7MT+QQyI6AQsx7e2ZOsH5MkM9SWrInCJiDvLEjjOg9BDGacun8Eqj0ag78+Ix3TG20f4N+7oZ6Q== mad@mad-laptop

El siguiente paso es editar el archivo de configuración de nuestro cliente, para que permita el uso del Agente.
Citarmad@mad-laptop:~/.ssh$ sudo nano /etc/ssh/ssh_config
Buscar la linea ForwardAgent, des comentarla y ponerla en yes
ForwardAgent yes
La próxima vez que nos conectemos al servidor ya no nos pedirá contraseña.


Cambiar mensaje de bienvenida
Se trata del mensaje de bienvenida que aparece cuando nos conectamos al servidor.
Hay que editar el fichero de configuración del servidor, buscar la linea #Banner, des comentarla y luego editar el fichero configurado por defecto (/etc/issue.net) y reiniciar el servicio SSH.
Así la próxima vez que nos conectemos al servidor nos aparecerá el mensaje que hemos puesto.


#69
Introducción a la criptografía asimétrica

La idea principal de la criptografía asimétrica es que en una comunicación segura se usan una pareja de claves. Una de ellas, que es la publica, que deberá ser intercambiada con cada una de las entidades con las que quiera comunicarse mensajes secretos, y otra de ellas, que es la privada, y que por tanto no debe ser compartida con nadie.

Para cifrar un mensaje, el emisor utilizara la clave publica del receptor, y a su vez, el receptor descifrara este mensaje usando su clave privada.

Ejemplo:
Supongamos que Fernando y Julia quieren intercambiarse información confidencial usando la criptografía asimétrica. Lo primero que deben hacer, es obtener una pareja de claves propias (privada + publica), cada uno comunica su clave publica al otro, ya que no pasaría nada si cayera en manos de un tercero. Cuando Fernando quiera enviarle un mensaje cifrado a Julia debera usar la clave que le a sido proporcionada anteriormente para cifrar el mensaje.

Como es lógico pensar, estas claves (privada y publica) se generan a la vez y se encuentran relacionadas matemáticamente entre si mediante funciones de un solo sentido. Resulta prácticamente imposible descubrir la clave privada a partir de la publica.

En la imagen de abajo podemos ver un esquema gráfico con el proceso de cifrado:




Generación de claves para uso de cifrado asimétrico

Para la creación de claves asimétricas usare la herramienta GNUPG que se puede descargar desde la pagina oficial . En mi caso usare una distribución GNU/Linux, pero el proceso es igual para Windows.

1. Abrimos una consola y ejecutamos la instrucción gpg con el parámetro --gen-key .

2. Nos aparecerá este menú:
Por favor seleccione tipo de clave deseado:
(1) RSA y RSA (predeterminado)
(2) DSA y Elgamal
(3) DSA (solo firmar)
(4) RSA (solo firmar)
Su seleccion?:
1

Donde tenemos que elegir el tipo de cifrado, en nuestro caso usaremos RSA y RSA, o sea el numero 1.

3. Elegir el tamaño de la clave. Usaremos 2048 (por defecto).
las claves RSA pueden tener entre 1024 y 4096 bits de longitud.
De que tamano quiere la clave? (2048) 2048


4. Indicar el periodo de validez de la clave.
Por favor, especifique el periodo de validez de la clave.
0 = la clave nunca caduca
<n> = la clave caduca en n dias
<n>w = la clave caduca en n semanas
<n>m = la clave caduca en n meses
<n>y = la clave caduca en n anyos
Validez de la clave (0)? 0

La clave nunca caduca
Es correcto? (s/n) s

Ponemos <s> si elegimos que nuca caduque.

5. Introducir Nombre y Apellidos.
Nombre y apellidos: Alex MadPitbull_99

6. Dirección de Correo Electrónico.
Direccion de correo electronico: madpitbull99@elhacker.net

7. Poner comentarios.
Comentario: Claves para cuenta @ehn.net

8. Proceso final. Nos preguntara si todos nuestros datos son correctos. Ponemos v (vale) si es así.
Cambia (N)ombre, (C)omentario, (D)ireccion o (V)ale/(S)alir? v

9. Introducir contraseña. Recordadla o mejor apuntadla en algún lado.

10. Paso final. Sera necesario cargar el microprocesador con algo de carga y esperar a que se genere la clave.



Exportar clave publica

Para exportar nuestra clave publica en un fichero de texto usaremos la instruccion de abajo:
gpg -a --export madpitbul99@elhacker.net >/home/mad/Escritorio/clave_publica_ehn.pub
Eso exportara la clave publica en un fichero de texto llamado clave_publica_ehn.pub . Si lo abrimos veremos nuestra clave:



Esa es la clave que tendremos que pasar a la persona que quiera enviarnos un mensaje cifrado.



Importar clave publica

El emisor debera importar nuestra clave publica en su anillo de claves (base de datos de claves) para que luego pueda cifrar un documento y enviarlo.
gpg --import fichero_clave_publica.txt



Cifrar ficheros

Para que el emisor puede cifrar un documento deberá tener instalado el GPG pero no tiene porque crearse su propia clave privada si no la necesita.
Usaremos este comando para cifrar un documento de texto:
gpg -a --encrypt -r madpitbull99@elhacker.net documento.txt

Donde documento.txt es el fichero a cifrar. Despues de ejecutar este comando nos habrá creado un fichero con un nombre igual que el anterior pero acabado en la extensión .asc (documento.txt.asc)

Ese es el fichero que el emisor deba enviar al receptor de forma segura (cifrado)



Descifrar ficheros

Para descifrar un fichero necesitaremos la clave privada que hemos introducido en el primer paso. Ponemos el comando de abajo y después introduciremos la contraseña privada.
gpg -o documento_descifrado.txt --decrypt documento.txt.asc



Resumen


  • Creamos las dos claves, la privada y la publica.
  • Le pasamos la clave publica a la persona que nos quiera enviar un mensaje cifrado.
  • El emisor cifra el mensaje/documento con nuestra clave publica.
  • Envía el documento cifrado.
  • El receptor descifrara el documento cifrado usando su clave privada.



Enlaces externos con mas información:
GNU Privacy Guard (GnuPG) Official How-To
Pretty Good Privacy (Wikipedia)
Encrypt your mail using Thunderbird (Lifehacker)
Criptografía Asimétrica (Wikipedia)



Solo se aceptan criticas constructivas. Cualquier mejora a este tutorial/guía es bienvenida.
#70
Este articulo también esta publicado en la wiki del foro en la sección de Redes.



Servicios de Acceso y Control Remoto


Esta vez vamos a hablar sobre los servicios mas usados para acceder y controlar un equipo de forma remota. En modo consola tenemos: SSH, Rlogin y Telnet (estos dos últimos son obsoletos y casi no se usan).
En modo gráfico podemos destacar: FreeNX, VNC, Terminal Server Windows, claramente hay muchos mas, pero no hablaremos de todos.

Servicio SSH

Es un servicio que permite establecer conexiones seguras entre equipos que se encuentran en redes inseguras (internet, por ejemplo).

Características:
_Utiliza el puerto 22 TCP y UDP (por defecto)
_Utiliza protocolo SSH
_Modelo cliente-servidor
_Permite autentificacion de usuarios y claves/contraseñas
_Esta implementado en la mayoría de los Sistemas Operativos (OpenSSH)

Ventajas:
_Envío de la información de autentificacion cifrada
_Envío de los datos de la comunicación cifrados
_El cliente puede ejecutar aplicaciones graficas de forma segura
_En futuras conexiones el cliente puede saber que esta conectado al mismo servidor
_Evita suplantación de identidad e intercepcion de la comunicación entre dos maquinas

Hay 2 versiones de SSH :
1.SSH1
2.SSH2, incorpora varias mejoras respeto al primero.


Encriptacion:

Es una ciencia que emplea las matemáticas para cifrar y descifrar los datos. A partir de un texto se logra otro llamado criptograma que no es interpretable sino que debe ser descodificado por medio de la clave adecuada.

Resuelve los siguientes problemas en las comunicaciones:
1.Privacidad. Solo el legitimo destinatario podrá decodificar la información.
2.Integridad. Si la información se altera en el camino es posible detectarla.
3.Autentificacion. El emisor y el receptor pueden confirmar la identidad del otro.
4.No Rechazo. El emisor no puede negar que es el autor de la información.

Estos 4 elementos son los principios básicos que tiene que proteger la SI (Seguridad Informática).


Tipos de Encriptacion

1. Simétrica o de Clave Compartida. Tanto el emisor como el receptor conocen la clave empleada para cifrar los datos.
Los algoritmos son rápidos.
Precisa de claves de mas de 40 bits, sino, el mensajes seria fácil de descifrar por criptoanálisis.
Como inconveniente, la clave tiene que ser conocida por emisor y receptor.
Algoritmos empleados: DES, AES, IDEA, Blowfish.

DES:
_Usa claves de seguridad de 48 bits + 8 paridad.
_Usado por bancos.
_En desuso.

IDEA:
_Libre, para uso no comercial.
_Trabaja con claves de 128 bits cifrando bloques de 64 bits.
_No ha sido descifrada su clave hasta el momento.

2. Asimétrica o de Clave Publica/Privada. Tanto el emisor como el receptor tienen 2 claves.
La Privada: Solo conocida por su dueño, nunca se envía por la red.
La Publica: Conocida por todos los usuarios que vayan a ser destinatarios del emisor.

Nota: Las claves publicas/privadas se generan a la vez y forman un par biunívoco.

_Los algoritmos son sencillos pero lentos.
_Trabajan hasta con 1024 bits, para eso hace falta bastante potencia.
_La clave privada el conocida solo por el dueño.
_Se tiene que garantizar la autenticidad de la clave publica, por ellos han surgido los certificados digitales.
_Algoritmos empleados: RSA, DSA, MD5, SHA1, Diffie-Helman.

RSA:
_Se puede emplear para cifrar o firmar documentos.
_Para ser un algoritmo seguro, necesita trabajar con 1024 bits.
_La patente finalizo en el año 2000.
_La firma digital es reversible, pero la encriptacion no.

DSA:
_Se puede emplear para cifrar o firmar documentos.
_Mas seguro que RSA.
_La firma digital es reversible, pero la encriptacion no.

El servicio SSH trabaja con:
Algoritmos Asimétricos para establecer la conexión.
Algoritmos Simétricos para la transferencia de información.


Funcionamiento del Servicio SSH:

Pasos necesarios para establece una comunicación a través de SSH:

1. El cliente abre una conexión TCP sobre el puerto 22 del servidor.
2. Cliente y servidor negocian la versión de SSH a emplear y el algoritmo de cifrado simétrico a emplear en la transferencia de la información.
3. Servidor envía su clave publica al cliente.
4. Cliente compara esa clave publica con la que tiene almacenada de ese servidor para ver si es autentica.
5. Cliente genera una clave de sesión aleatoria y crea un mensaje en el que incluye:
La clave aleatoria que ha creado.
Algoritmo de cifrado seleccionado en el Paso 2.
Lo cifra todo con la clave publica del servidor (recibida en el paso 3) y se la envía al servidor.
6. En el resto de la comunicación los datos se cifran con el algoritmo seleccionado en el Paso 2 y la clave aleatoria creada en el paso anterior.
7. Se produce la autentificacion del usuario.
8. Se inicia la sesión del usuario.

En la practica el servicio SSH, crea un tunel por el cual los datos viajan seguros ("tunneling") en una red insegura.

Mejoras al usar SSH en las comunicaciones:

  • Las contraseñas no se envían en texto plano.
  • Ejecutar ordenes remotas con total seguridad.
  • Uso de sistemas de autentificacion robustos.
  • Protección de la transferencia de archivos.
  • Hace seguras las conexiones X11 (X-Windows, versión 11)


#71
Este articulo también esta publicado en la wiki del foro en la sección de Redes.



Instalación y Configuración de un servidor DHCP en Windows Server 2008

Vamos al Administrador del Servidor:


Hacemos clic derecho sobre Funciones y Agregar Función:


Nos aparecerá el típico Asistente para agregar funciones:


Marcamos la casilla de Omitir esta pagina de forma predeterminada y hacemos clic en Siguiente .



Marcamos el Servidor DHCP y hacemos clic en Siguiente

Saldrá una serie de Advertencias diciéndonos las cosas que hay que tener en cuenta antes de instalar el servidor:



Aseguraos de que las cumplís todas.

Enlaces de conexión de Red:


Ahí seleccionamos las tarjetas de Red que tenemos, en mi caso como solo tengo una, lo dejare por defecto. Hacemos clic en Siguiente.

Configurar servidores DNS:


Ahí ponemos nuestra propria IP, como servidor DNS alternativo podemos poner por ejemplo el servidor DNS de Google (8.8.8.8)

A continuación configuramos el servicio WINS, en mi caso como no lo voy a usar me lo salto y hago clic en Siguiente:



Después de hacer clic en siguiente nos aparecerá la pantalla con la configuración mas importante que debemos hacer en el servidor DHCP, configurar y agregar los ámbitos DHCP:



Hacemos clic en Agregar y rellenamos todos los campos con nuestros datos de red:



En Dirección IP inicial y Dirección IP final indicamos el rango de IP´s que asignara a los equipos que soliciten la configuración de red TCP/IP. En mi caso, el servidor asignara IP's desde la 150 hasta la 200

Como no vamos a usar IPV6 en el siguiente paso hacemos clic en Siguiente son configurar nada.



En el paso siguiente lo mismo que en el anterior, tenemos que configurar la dirección IP de versión 6 del servidor DNS, pero como no vamos a usar IPV6 hacemos clic en Siguiente.



En el paso siguiente tenemos que configurar los credenciales:



De momento lo dejaremos por defecto.



Hacemos clic en Instalar y después tendremos que reiniciar el Servidor.

A continuación si nos fijamos en el Administrador del Servidor veremos que no ha agregado el Servidor DHCP.



Esto es idóneo para equipos que se conectan de forma temporal, pero si queremos que a un equipo concreto le asigne una IP, tenemos que hacer lo siguiente.

Configurar IP a un Host concreto

Desplegamos el menú del servidor DHCP hasta llegar a la carpeta Reservas



Hacemos clic derecho sobre la carpeta de Reserva y Reserva nueva...



Rellenamos los campos con nuestros datos (la MAC que yo he puesto es falsa).



Y hacemos clic en Agregar. Si miramos la carpeta de Reservas veremos que no ha agregado el equipo que hemos configurado anteriormente.



Este proceso lo repetiremos con todos los nodos de la red que queremos que tengan IP Estática, como por ejemplo, los servidores y los equipos mas importantes.


Esto es todo, en cuento a la Instalación del Servidor DHCP.

Un saludo!
#72
Es un video-presentación de la charla que dio Chema Alonso en la conferencia de Seguridad Informática EkoParty, celebrada en Argentina.
Trata de una nueva tecnica de ataque a los servidores de Bases de Datos y Aplicaciones web alterando los parámetros de conexión.

http://vimeo.com/16532422
[youtube=425,350]http://vimeo.com/16532422[/youtube]
El vídeo lo podéis ver en el enlace de arriba en Vimeo.

Un saludo!
#73
 Este articulo también esta publicado en la wiki del foro en la sección de Redes.

DHCP EN LINUX


Instalar el cliente DHCP:
apt-get install dhcp3-cliente
Suele venir instalado por defecto.


Instalar el servidor DHCP:
apt-get install dhcp3-server


Archivos que intervienen en la configuración del DHCP en GNU/Linux:


  • /etc/default/dhcp3-server = se indica el interface o tarjeta de red a través del cual escuchara y respondera al servidor DHCP
  • webmin → /var/lib/dhcp3/dhcp.leases
  • consola → /etc/lib/dhcp3/dhcp.leases = tanto en este como en el de arriba se guarda la información de las IP conocidas (Se recomienda no editarlo)
  • /etc/dhcp3/dhcpd.conf = guarda la configuracion del servidor DHCP y los parametros que asignara a los clientes

Dentro de este archivo (/etc/dhcp3/dhcpd.conf ) hay varias sentencias:

Declaraciones:
Describen redes, maquinas o grupos de maquinas con un rango de direcciones IP que se pueden editar

Parámetros:
Pueden ser locales o globales que pertenezcan a un conjunto de declaraciones.

Tipos de Parámetros:

  • Todos los parámetros que empiezan con "option" describen datos que proporciona el servidor al cliente y que forma parte del protocolo.
Formato: option <nombre_parametros> [valores]:

  • Los parámetros que van sin "option" describen características del servidor DHCP.


Estructura del archivo dhcpd.conf:

Parámetros globales:

Declaracion1 {

[Parámetros locales relativa la Declaracion1]

[Sub-declaracion anidada a la Declaracion1]

};





Significado de los parámetros:




  • authoritative – indica que el servidor DHCP esta autorizado para delegar IP's en esa red.

  • lease-file-name – indica el nombre del archivo donde se almacena la tabla de las IP asignadas (/var/lib/dhcp3/dhcpd.conf)

  • server-identifier – indica al servidor cual es el interface por el cual debe escuchar.

  • default-lease-time – tiempo de validez en segundos de la IP asignada.

  • max-lease-time – tiempo limite de concesión de la IP, por si pide una indefinida.

  • option subnet-mask – indica la mascara de red general a asignar

  • option broadcast address – indica la direccion de broadcast a asignar

  • option domain-name-servers – indica la lista de servidores DNS a asignar

  • option domain-name – indica el nombre de dominio a asignar

  • ddns-update-style – indica el metodo de actualizacion dinamica en el servidor DNS con los valores de IP asignados



El archivo de configuración del servidor DHCP esta almacenado en : /etc/dhcp3/dhcpd.conf
#
# Sample configuration file for ISC dhcpd for Debian
#
# Attention: If /etc/ltsp/dhcpd.conf exists, that will be used as
# configuration file instead of this file.
#
# $Id: dhcpd.conf,v 1.1.1.1 2002/05/21 00:07:44 peloy Exp $
#
# The ddns-updates-style parameter controls whether or not the server will
# attempt to do a DNS update when a lease is confirmed. We default to the
# behavior of the version 2 packages ('none', since DHCP v2 didn't
# have support for DDNS.)
ddns-update-style none;
# option definitions common to all supported networks...
option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example.org;
default-lease-time 600;
max-lease-time 7200;
# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
#authoritative;
# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
log-facility local7;
# No service will be given on this subnet, but declaring it helps the
# DHCP server to understand the network topology.
#subnet 10.152.187.0 netmask 255.255.255.0 {
#}
# This is a very basic subnet declaration.
#subnet 10.254.239.0 netmask 255.255.255.224 {
# range 10.254.239.10 10.254.239.20;
#}
# This declaration allows BOOTP clients to get dynamic addresses,
# which we don't really recommend.
#subnet 10.254.239.32 netmask 255.255.255.224 {
# range dynamic-bootp 10.254.239.40 10.254.239.60;
# option broadcast-address 10.254.239.31;
# option routers rtr-239-32-1.example.org;
#}
# A slightly different configuration for an internal subnet.
#subnet 10.5.5.0 netmask 255.255.255.224 {
# range 10.5.5.26 10.5.5.30;
# option domain-name-servers ns1.internal.example.org;
# option domain-name "internal.example.org";
# option routers 10.5.5.1;
# option broadcast-address 10.5.5.31;
# default-lease-time 600;
# max-lease-time 7200;
#}
# Hosts which require special configuration options can be listed in
# host statements. If no address is specified, the address will be
# allocated dynamically (if possible), but the host-specific information
# will still come from the host declaration.
#host passacaglia {
# hardware ethernet 0:0:c0:5d:bd:95;
# filename "vmunix.passacaglia";
# server-name "toccata.fugue.com";
#}
# Fixed IP addresses can also be specified for hosts. These addresses
# should not also be listed as being available for dynamic assignment.
# Hosts for which fixed IP addresses have been specified can boot using
# BOOTP or DHCP. Hosts for which no fixed address is specified can only
# be booted with DHCP, unless there is an address range on the subnet
# to which a BOOTP client is connected which has the dynamic-bootp flag
# set.
#host fantasia {
# hardware ethernet 08:00:07:26:c0:a5;
# fixed-address fantasia.fugue.com;
#}
# You can declare a class of clients and then do address allocation
# based on that. The example below shows a case where all clients
# in a certain class get addresses on the 10.17.224/24 subnet, and all
# other clients get addresses on the 10.0.29/24 subnet.
#class "foo" {
# match if substring (option vendor-class-identifier, 0, 4) = "SUNW";
#}
#shared-network 224-29 {
# subnet 10.17.224.0 netmask 255.255.255.0 {
# option routers rtr-224.example.org;
# }
# subnet 10.0.29.0 netmask 255.255.255.0 {
# option routers rtr-29.example.org;
# }
# pool {
# allow members of "foo";
# range 10.17.224.10 10.17.224.250;
# }
# pool {
# deny members of "foo";
# range 10.0.29.10 10.0.29.230;
# }
#}

Esa es la configuración por defecto, como ven las lineas están comentadas,


A continuación vamos a editar los siguientes parámetros, si no están en el fichero de configuración hay que agregarlos.

# option definitions common to all supported networks...

option domain-name "elhacker.net"; ← Es el dominio que tendran los nodos que pidan IP por DHCP

option domain-name-servers ns1.elhacker.net; ← Es el nombre de dominio del servidor DNS, también podemos poner las IP, por ejemplo : 8.8.8.8, 8 .8.4.4

server-identifier 192.168.1.100;

En vuestro caso, poned la IP de vuestro servidor DHCP

option routers 192.168.1.1;

Sera la puerta de enlace que tendrán configurada los nodos.

option subnet-mask 255.255.255.0:

Es la mascara de Red a asignar.

Option broadcast-address 192.168.1.255

Es la IP de broadcast de la red.

Esa es la configuración del servidor. Ahora vamos a crear una subred, agregamos lo siguiente al final del archivo:


subnet 192.168.1.100 netmask 255.255.255.0 {

range 192.168.1.150 192.168.1.180;

}

Con ese rango cualquier nodo que pida una IP, el servidor le asignara una que este comprendida entre .150 y .180


Asignar IP a un Host concreto


Esta es la técnica mas común de asignarle una IP a un cierto nodo de la red. Necesitamos saber su MAC.

host equipo01 {
hardware ethernet 00:50:b3:c5:60:29;
fixed-address 196.168.1.181;
}



Con esa daclaracion, a la MAC 00:50:b3:c5:60:29 (me la he inventado) se le asigna la ip declarada con fixed-address.


Para una mejor organización, podemos crear grupos, por ejemplo: el grupo "contabilidad" donde estarán todos los nodos que correspondan a ese departamento.


#Grupo Contabilidad
group contabilidad {
option routers 192.168.1.1:
option subnet-mask 255.255.255.0;
host ordenador01 {
hardware ethernet 00:50:b3:c5:60:29;
fixed-address 196.168.1.181;
}
host ordenador02 {
hardware ethernet 00:50:b3:c5:60:29;
fixed-address 196.168.1.181;
}
}


Así tendremos los nodos mejor definidos y no tendremos que escribir tanto. Dentro del grupo podemos agregar cuantas declaraciones queramos.


Ahora solo tenemos que reiniciar el servidor para que cargue la nueva configuración y que los nodos vayan pidiendo IP's.

$ /etc/init.d/dhcp3-server restart



Acepta mas parámetros como : start, stop, reload, status.



Podemos ver las IP que ha asignado mirando el archivo:

$cat /var/lib/dhcp3/dhcpd.leases

Esto es todo.


#74
    Sistemas Operativos:

    Windows Server:

    GNU/LINUX:

    Administración de Equipos y Servidores:

    Servicios en Red:

    DNS:


    DHCP:


    Administración Remota de Equipos (SSH) :


    Servicio Web (HTTP) :


    FTP :


    Servicio de Correo Electrónico :


    Se ruega no postear en este hilo, las dudas que tengáis hacedla en el hilo del articulo. Pero si tenéis alguna sugerencia para el taller es bienvenida.

    Post en Construcción! [/list][/list][/list][/list][/list][/list][/list]
    #75
    Redes / Servidor DHCP
    7 Noviembre 2010, 20:21 PM
    Este articulo también esta publicado en la wiki del foro en la sección de Redes.

    DHCP


    Es un protocolo de configuración dinámica de host que permite a los nodos de una red TCP/IP obtener la configuración de red de forma automática.

    Los parámetros que puede proporcionar son los siguientes:

    * Dirección IP
    * Mascara de Red
    * Tiempo de concesión de la IP
    * Tiempo de renovación de la IP
    * Tiempo de reconexión


    Opcionalmente:

    * Dirección IP de la puerta de enlace(gateway)
    * Dirección IP de los servidores DNS
    * Servidor de Nombres Wins (Redes Windows)
    * El tipo de nodo Wins o Nbt (Redes Windows)



    El servicio DHCP puede asignar IP de 3 formas:


    1. Estática o Fija = se asigna la misma IP al equipo, siempre.
    2. Automática = se asigna una IP al equipo que la solicita y la mantiene hasta que la libera (hasta que el equipo se apaga)
    3. Dinámica = se asigna una IP al nodo de forma temporal. Pasado ese tiempo, el cliente debe negociar y/o pedir de nuevo una IP

    Ventajas y Desventajas




    Funcionamiento


    1. El servicio DHCP recibe las peticiones de asignación de direcciones IP por parte de los clientes. Envía la petición como un mensaje de broadcast a todos los equipos (puede haber mas de 1 servidor DHCP)
    2. Los servidores DHCP responden al cliente en cuestión, proponiéndole una dirección IP .
    3. El cliente selecciona la primera IP que reciba y responde al servidor DHCP correspondientes notificándole su MAC.
    4. El servidor DHCP almacena esta información en una tabla interna hasta que finalice el tiempo de validez o el cliente libere la IP.


    NOTA:

    Si hay varios servidores DHCP no existe comunicación entre ellos, por tanto, no saben que direcciones asigno uno y que asignan los demás.

    El Administrador de Red es el quien debe efectuar la configuración adecuada y correcta para evitar que se intente asignar la misma IP, a los dos o mas nodos.


    Tipos de Mensajes DHCP



    Los mensajes que están en Verde son ordenes enviadas por el cliente y las de azul son enviadas por el servidor.



    Proceso de Asignación de una Dirección IP


    1.Arranca el cliente DHCP .
    2.El cliente envía un mensaje DHCPDISCOVER.
    3.El Servidor DHCP prepara la información a enviar al cliente.
    4.El Servidor DHCP envía un mensaje DHCPOFFER con la configuración propuesta.
    5.Cliente envía DHCPREQUEST.
    6.El Servidor almacena la MAC del cliente en la tabla de direcciones asignadas.
    7.El Servidor envía DHCPACK.
    8.El cliente ejecuta la ordena ARP para comprobar que la IP no esta duplicada y si no lo esta, queda completamente configurado.




    Caso practico de asignación de dirección IP


    En siguiente captura de paquetes hecha con WireShark:

    Se pueden observar los mensajes que envían el cliente y el servidor para tramitar la asignación de una IP.
    #76
    Este articulo también esta publicado en la wiki del foro en la sección de Redes.

    Hoy vamos a ver como instalar y configurar un servidor DNS en Windows Server 2008. Si anteriormente hemos instalado el Active Directory, ya lo tenemos instalado.

    Podemos encontrarlo en Administrador del Servidor / Funciones / Servidor DNS. Si no hemos instalado Active Directory nos tocara instalar el servidor manualmente :
    Administrador del Servidor / Funciones / Clic derecho sobre Funciones y agregar Función / Seguir el asistente.

    En nuestro caso como ya lo tenemos vamos a crear una nueva zona :



    Si desplegamos la pestaña Zonas de búsqueda directa observamos que ya tenemos creado un dominio : elhacker.net

    Para no crear confusión, vamos a crear otro dominio al que llamaremos: intranet-elhacker.net. Hacemos clic derecho sobre la carpeta de Zonas de búsqueda directa y Zona nueva:



    Se nos abrirá el Asistente para crear zona nueva:



    Hacemos clic en Siguiente:



    En nuestro caso vamos a dejar el tipo de Zona por defecto (Zona Principal). Los demás tipos de Servidores DNS están explicados en el articulo de DNS Teoria.



    Configuramos el ámbito de replicacion marcamos Para todos los servidores DNS en este dominio : dominio.com

    En el siguiente paso es donde tenemos que poner el nombre que tendrá la nueva zona: intranet-elhacker.net



    Permitimos solo actualizaciones dinámicas seguras de momento, en otra practica lo cambiaremos.



    Hacemos clic en Siguiente y en Finalizar



    Ahora ya tenemos creado nuestro segundo dominio (el primero fue creado en la instalación de Active Directory)



    Si hacemos clic derecho sobre el nuevo dominio veremos que se pueden agregar nombres de hosts.



    Creo que no hace falta explicar todas las opciones. A continuación vamos a crear un nombre de Host, clic en Host Nuevo (A o AAA).



    En nombre ponemos el nombre que tendra el subdominio: ej. administrador.intranet-elhacker.net .Ese subdominio se lo podemos asignar al ordenador del Administrador de la Red. En dirección IP ponemos la dirección del ordenador.

    Marcamos también la casilla de Crear registro del puntero (PTR) asociado, para que nos cree también la resolución inversa de ese nodo.

    Para que podamos agregar registros PTR asociados a A o AAA primero tenemos que crear la zona de búsqueda inversa. Para eso hacemos clic derecho sobre Zonas de búsqueda inversa y Zona nueva...

    Nos saldrá el mismo asistente que cuando creamos la Zona de búsqueda directa, lo único diferente sera lo siguiente:



    Ahí en nuestro caso ponemos Búsqueda inversa para IPv4. Hacemos clic en siguiente.



    En este paso tenemos que escribir la dirección de identificación IP de nuestra red, en mi caso es 192.168.1 . Hacemos clic en siguiente hasta Finalizar.

    Si nos fijamos en las Zonas del Servidor DNS veremos que ha agregado una zona nueva en la carpeta de búsqueda inversa.



    Ahora si volvemos a crear un registro de tipo A y marcamos la casilla de Crear registro del puntero (PTR) asociado también nos creara el registro inverso de ese subdominio.



    Si no os lo crea, teneis que agregarlo vosotros a mano haciendo clic derecho sobre Zonas de búsqueda inversa y Nuevo Puntero (PTR)



    Rellenamos el formulario con los datos pedidos y Aceptamos.



    Ahora veremos que se a agregado a la Zona Inversa.



    Lo siguiente seria agregar los registros con todos los equipos de nuestra red, cosa que ya no haremos.

    #77
    Este articulo también esta publicado en la wiki del foro en la sección de Redes.


    Active Directory
    Son los servicios de directorios en una red distribuida de ordenadores de tipo Microsoft Windows.

    Cosas a tomar en cuenta:

    • Primero debemos pensar en un nombre de dominio. En mi caso sera elhacker.net
    • Debemos configurar el protocolo TCP/IP
    • Hay que destacar que también se instalara el servidor DNS, ya que es necesario para implementar el Active Directory.

    Empezar la Instalación

    Para instalarlo podemos ir al Administrador del Servidor, hacer clic derecho sobre Funciones y seleccionar Agregar Funciones, ahi elegimos Servicios de dominio de Active Directory:



    Vamos a la consola (Menu Inicio / Símbolo del Sistema) y escribimos :
    dcpromo

    Esto nos lanzara la instalación de Active Directory. Durante unos instantes estará instalando los binarios y después nos saldrá el asistente de instalación:



    Hacemos clic en siguiente, nos mostrara unas advertencias sobre la compatibilidad de Windows Server 2008 con versiones anteriores. Hacemos clic en siguiente.



    A continuación nos preguntara si queremos crear un nuevo bosque o unirnos a uno ya existente. Hacemos clic en Crear un dominio nuevo en un bosque nuevo.



    En la siguiente pantalla agregamos el nombre que tendrá nuestro nuevo dominio:



    Seguidamente tendremos que establecer el nivel funcional del bosque, esto es mas o menos la compatibilidad que tendrá con otros servidores Windows Server. Si por ejemplo elegimos Windows Server 2003 solo se podrá agregar a nuestro bosque los servidores que ejecuten Windows Server 2003 o posterior.



    En la siguiente pantalla establecemos el nivel funcional del dominio, seleccionamos Windows Server 2003 como en el paso anterior:



    Hacemos clic en siguiente y el instalador examinara la configuración DNS, nos preguntara los componentes adicionales que queramos instalar, el servidor DNS es indispensable:



    En algunos casos nos advierte que nuestra IP es configurada dinamicamente:



    Hacemos clic en Si, el equipo usara una IP asignada dinamicamente y procedemos con la instalacion del servidor DNS.

    En la pantalla siguiente tenemos que configurar las rutas donde se guardaran las bases de datos del servicio DNS. Lo dejamos todo por defecto en nuestro caso.



    Elegimos una contraseña de administrador :



    Hacemos clic en siguiente, en la siguiente pantalla podemos exportar la configuración, por si luego volveremos a usarla.



    Después de hacer clic en siguiente empezara la instalación:



    Al acabar la instalación nos pedirá que reiniciemos, procedemos a reiniciar el servidor.

    Ya tenemos nuestro Active Directory instalado, podemos ir al Administrador del Servidor



    Desplegar el menú de Funciones:



    De momento esto es todo.
    #78
    Redes / Servidor de Nombres de Dominio (DNS)
    24 Octubre 2010, 19:51 PM
    Este articulo tambien esta disponible en la wiki del foro : Servidor de Nombres de Dominio (DNS)




    Servicios DNS


    DNS(Domain Name System): es un sistema de nombres
    jerárquico para ordenadores, servicios y recursos de una red conectada a
    Internet o privada (corporativa). Una definición mas técnica seria : es
    un servicios de gestión y búsqueda de ordenadores en una red.


    Resolución de nombres de Dominio: es el proceso por el cual, a partir de un nombre de host o de dominio se puede conocer su IP.


    Cuando un host(equipo) necesita enviar datos a otro host, puede
    acceder a el por su dirección IP o bien a través de su nombre de dominio
    (DNS), que sera lo mas común. Para utilizar el nombre DNS necesita
    hacer la conversión de este nombre en su dirección IP equivalente. De
    esto se encargan los servidores DNS.


    Proceso de Resolución de nombre de dominio: El host
    emisor envía un paquete de consulta a su servidor DNS predeterminado
    con el nombre DNS que intenta resolver, para que el servidor DNS lo
    resuelva o ejecute los mecanismos necesarios de consulta con otros
    servidores DNS, y le devuelva la IP que necesitaba. El ordenador la
    almacena en su propia memoria cache y se la pasa al navegador o al
    servicios que solicito la resolución.


    En sistemas UNIX, y por absorción tecnológica también en otros
    sistemas, existe un fichero de configuración llamado

    <etc/hosts> que contiene una relación de asignaciones de
    nombres DNS con direcciones IP para los nodos de la red de área local.
    Antiguamente todos los servidores utilizaban este método. En Windows
    esta situado en <%systemroot%\system32\drivers/etc>, mientras que
    en sistemas Unix se sitúa en &lt;/etc&gt;. Este es un modo de utilizar
    nombre asociados a IP sin tener acceso a un servidor DNS. Obviamente
    este fichero puede tener un numero muy limitado de asignaciones, que
    además deben ser previamente conocidas para poder ser escritas por el
    administrador de red en el fichero de hosts. Esta técnica no se utiliza
    en casi ninguna empresa, solo en algunos entornos caseros,


    Los servidores actuales no solo registran nodos de la red sino que
    también pueden dar de alta en su base de datos otros servicios, de modo
    que un nodo de la red puede preguntarle donde se encuentran los
    servicios que necesita dentro de su red.


    El servicios DNS consta de 3 componentes principales:
    • Clientes DNS: Envían peticiones de resolución de nombres. En formato : que dirección IP le corresponde a este nombre de dominio?


    • Servidores DNS: Responden a las peticiones consultando la base de datos propia o a otros servidores DNS.
    • Espacio de Nombres de Dominio: Es una base de
      datos distribuida (esta en varios ordenadores de la red) y es
      jerárquica (tiene forma de árbol) que clasifica los dominios en
      niveles.

    En la imagen de abajo podéis ver la estructura del árbol de dominios,
    se empieza a leer desde abajo, ejemplo : foro.elhacker.net. (ojo, acaba
    en punto). El ultimo punto no se suele poner, pero cuando se configura
    un servidor DNS es necesario ponerlo. Prueba a poner en tu navegador : http://elhacker.net. Veras como te redirecciona a la web.




    La estructura de arriba tiene 4 niveles:
    • El primer nivel es el Root (Raiz) o el punto.
    • El segundo raíz son los TLD (Top Level Domain), que son : es, com, net, gov, etc.
    • El tercer nivel son los nombres de dominios de distintas webs/empresas.
    • El cuarto nivel son los que los webmasters llaman subdominios. Ejemplo: blog, foro.


    El nombre completo de un dominio o de un nodo esta
    formado por una secuencia de nombres (que no pueden tener mas de 60
    caracteres) separados por puntos, formado por las etiquetas de los
    dominios hasta llegar al dominio raíz, teniendo en cuenta que el nombre
    completo no puede tener mas de 255 caracteres (incluyendo puntos) y que
    siempre acaba en punto.


    A un nombre de dominio o un nombre completo se le denomina FQDN
    (Fully Qualified Domain Name) o nombre de dominio completamente
    cualificado. El FQDN del foro de elhacker.net seria : foro.elhacker.net.


    Los TLD (Top level Domain) o dominios de nivel superior esta clasificados según:
    • Su funcion organizativa : .com, .net, .org, .edu, .gov, .mil, etc.
    • Geograficamente: .es, .fr, .us, .ch, etc.
    • Especializados: .info, .museum, .aero, etc.

    El dominio .es gestionado por ESNIC(http://www.esnic.es/index.action). El organismo que gestiona los TLD es ICANN(http://www.icann.org/tr/spanish.html)



    La base de datos que compone el servicio DNS permite su
    administración descentralizada por medio de un mecanismo llamado
    Delegación de Dominios, según este mecanismo se realiza la cesión de la
    autoridad, para la gestión de la base de datos.


    Quien tenga autoridad sobre la zona, tiene una serie de responsabilidades:

    • Debe mantener actualizada los datos de ese subdominio.
    • Debe responder ante las peticiones de resolución de nombre que llegue acerca de ese subdominio.
    • No significa que el subdominio tenga el control, puede tenerlo cedido o incluso cederlo a su vez a otro subdominio.

    Registros de Recursos: es donde los servidores de dominio almacenan información de los nombres de dominio.


    Zona de Autoridad: es una parte del espacio de
    nombre de dominios sobre la que es responsable un servidor DNS, que
    puede tener autoridad sobre varias zonas.


    Zona: base de datos que contiene determinados registros de recursos de la base de datos del espacio de nombres de dominio.





    Tipos de Servidores DNS:

    • Servidor Primario/Principal/Maestro. Mantiene
      de forma oficial la información de la zona sobre la que tiene
      autoridad. Responde a las peticiones de resolución consultando sus
      propios archivos de zona.
    • Servidor Secundario/Esclavo. Obtiene la información de la zona pidiendosela constantemente al servidor primario.
    • Servidor Cache. Se utilizan para acelerar las
      consultas de resolucion de nombres de dominio frecuentemente
      utilizados. Suelen emplearse en redes de area local/


    Transferencia de Zona: es el mecanismo por que
    permite actualizar la información a los servidores secundarios a partir
    de los archivos de zona contenidos en el primario.


    Bases de Datos del Servidor DNS


    En realidad no son mas que unos archivos de texto. El formato general
    de los Registros de Recursos es parecido al esquema de abajo:



    _______________________________________________________


    | Propietario | TTL | Clase | Tipo | Rdata |


    ———————————————————————————-


    | servidor | 3600 | IN(internet) | A | 172.26.0.100 |


    Descripción de los campos:


    #Propietario: es el nombre del nodo o del dominio (FQDN). Si el valor de este campo es @, representa el nombre de la zona.


    #TTL(Time To Life): Es el tiempo de vida en segundos que el registro
    el valido en la memoria cache del servidor DNS. Es opcional.


    #Clase: Hace referencia a la familia de protocolos usada, IN (Internet).


    #Tipo: Define el tipo de recurso descrito en ese registro.



    #Rdata: contiene información según el tipo de registro.







    Tipos de Registros
    • SOA(State of Authority). Indica el nombre del
      servidor DNS con autoridad en la zona. Direccione de correo electrónico
      del contacto técnico, otros parámetros.

    Formato: elhacker.net IN SOA server.elhacker.net (2010100501;version 10800;actualizacion 3600:reintentos 604800;caducidad 86400;TTL)
    • NS(Name Server). Identifica a los servidores DNS autorizados en la zona.

    Formato: elhacker.net IN NS servidor2.elhacker.net

    • A(Address). Asocia el nombre FQDN del dominio o de un nodo con su dirección IP

    Formato: administrador.elhacker.net IN A 172.26.0.150
    • AAA(version A en IPV6). Desarrolla la misma tarea que A(Address) pero en versión IPV6

    Formato: equipo1.elhacker.net IN AAA 2001::C1:AB:0A:1C
    • PTR(Pointer). Asocia una IP a un nombre FQDN de un nodo o dominio. Hace justo lo contrario que A, hace la resolución inversa de la zona.

    Formato: 150.0.26.172.in-addr.arpa IN PTR equipo1.elhacker.net



    Nota: La IP esta escrita al revés y hace falta poner .in-addr.arpa
    • CNAME(Canonical Name/Alias). Indica un alias por el que se conoce a ese nodo también a ese nodo/dominio.

    Formato: administrador.elhacker.net IN CNAME el_jefe


    Nota: Se podrá acceder a ese nodo solamente poniendo el_jefe al nodo administrador.elhacker.net
    • MX(Mail). Indica la direccion del servidor de correo electrónico que existe en ese dominio.

    Formato: elhacker.net IN MX webmail.elhacker.net

    • SRV(Service). Indica la ubicación de los servidores disponibles para determinados servicios/protocolos.

    Formato: ftp.tcp.elhacker.net IN SRV 0 0 21


    Donde 0(es el orden, por si hay mas de un servidor) 0(es el reparto
    de trabajo, si hay mas de un servidor) 21(es el puerto redireccionado)
    • TXT(Text). Indica que el contenido del registro es
      de tipo texto, y puede ser cualquier información. También permite a
      los servidores identificarse de modo arbitrario.


    Métodos de búsqueda


    Búsqueda Recursiva



    Se realiza una petición de resolución de nombres al servidor local, y
    si el servidor no dispone de la información solicitada va a buscarla al
    servidor de nombres con autoridad que la contiene. Para ello el
    servidor de nombres local necesita consultar a un servidor raíz y este
    dará información acerca de aquellos servidores autoritarios intermedios
    hasta llegar al servidor que contiene el nombre del dominio objeto de la
    consulta.


    En este caso, el servidor local asume la responsabilidad de dar una
    respuesta al cliente, y el consulta a los otros servidores en nombre del
    cliente.





    Búsqueda Iterativa


    El servidor DNS local devuelve la mejor respuesta que puede ofrecer
    al cliente en función del contenido de su cache, pero si el servidor no
    dispone de la información solicitada indica la IP del siguiente servidor
    de nombres autorizado a preguntar, comenzando siempre por un servidor
    Raíz.


    Este le refiere al servidor del nivel siguiente que lo contiene
    (.es), y el servidor local vuelve a lanzar la petición (iteración) al
    servidor referido, el cual, si no dispone de la información solicitada,
    le refiere al servidor del nivel siguiente que lo contiene (.gva.es); a
    continuación, el servidor DNS local vuelve a lanzar la petición al
    servidor referido y así sucesivamente hasta llegar al servidor de nombre
    que contiene la información acerca del dominio solicitado.


    En la imagen de abajo se puede ver como el servidor de nombre
    interrogado consulta a su vez a todos los servidores autorizados para
    cada uno de los dominios que contienen al nombre de dominio en cuestión.






    #79
    Este post tambien esta publicado en la wiki del foro : Instalación de un Servidor DNS en GNU/Linux en modo Consola




    Instalación de un Servidor DNS en GNU/Linux en modo Consola



    Sobre Bind


    (Berkeley Internet Name Domain, anteriormente : Berkeley Internet Name Daemon) es el servidor de DNS más comúnmente usado en Internet, especialmente en sistemas Unix, en los cuales es un Estándar de facto. Es patrocinado por la Internet Systems Consortium. BIND fue creado originalmente por cuatro estudiantes de grado en la University of California, Berkeley y liberado por primera vez en el 4.3BSD. Paul Vixie comenzó a mantenerlo en 1988 mientras trabajaba para la DEC.

    Una nueva versión de BIND (BIND 9) fue escrita desde cero en parte para superar las dificultades arquitectónicas presentes anteriormente para auditar el código en las primeras versiones de BIND, y también para incorporar DNSSEC (DNS Security Extensions). BIND 9 incluye entre otras características importantes: TSIG, notificación DNS, nsupdate, IPv6, rndc flush, vistas, procesamiento en paralelo, y una arquitectura mejorada en cuanto a portabilidad. Es comúnmente usado en sistemas GNU/Linux.

    [sacado de la wikipedia]

    [web oficial de bind9 ]



    Empezando con la Instalación


    Instalar los siguientes paquetes : apt-get install bind9 bind9-doc dnsutils .Esto creara un nuevo daemon llamado named.

    En algunos casos el servicio DNS no arranca solo y tenemos que inicializarlo nosotros, hay que resaltar que debemos reiniciar el servidor después de cada configuración que hagamos.

    Dependiendo de la distribución Linux usada y la versión de Bind el servicio DNS se puede inicializar/reiniciar de dos modos:

    • sudo /etc/bind/start o restart
    • sudo /etc/init.d/bind9 start o restart
    Si hacemos un ls (para listar el directorio) nos devolverá los siguientes ficheros:

    mad@server:~$ ls /etc/bind

    bind.keys db.127 db.empty db.root named.conf.default-zones named.conf.options zones.rfc1918

    db.0 db.255 db.local named.conf named.conf.local rndc.key


    Los siguientes ficheros son con los que trabajaremos:


    • /etc/bind/named.conf.local – aquí se almacenan los nombres de los archivos de zona y de zona inversa y el archivo de de configuración de la zona y de la zona inversa.
    • /etc/bind/named.conf.options – Almacena sentencias para permitir la transferencia de zona (allow-transfer). Esto también puede hacerse en el fichero anterior.


    Creando Zonas

    Primero vamos a crear la zona, la zona que crearemos sera local-elhacker.net . Para eso editaremos el fichero /etc/bind/named.conf.local

    $nano /etc/bind/named.conf.local

    y añadimos lo siguiente:

    zone "local-elhacker.net" {

    type master;

    file "/etc/bind/db.elhacker.net";

    };

    zone "1.168.192.in-addr.arpa" {
    type master;
    file "/etc/bind/db.192.168.1″;
    };


    _zone indica la creación de una nueva zona.

    _type es el tipo de zona (master o slave)

    _file indica la ruta donde se encuentra ubicado el fichero que contendrá los registros de la zona.

    Es obligatorio acabar todas las lineas con punto y coma ;

    En mi caso llamare a la zona local-elhacker.net como si se tratara de los nodos que componenen la red.

    La primera zona es la de resolución directa y la segunda es la de resolución inversa. Substituid el nombre de la zona y las IP's de este tutorial por las vuestras, En la zona de resolución inversa tenemos que poner la IP de nuestra red (por ejemplo, si nuestra red es 192.168.1.1 entonces tenemos que escribir la IP al revés de esta forma: 1.168.192.in-addr.arpa )

    Después de hacer esto, podemos comprobar si hay algún error en el fichero que acabamos de editar usando el siguiente comando: named-checkconf /etc/bind/named.conf.local si no devuelve ningún error entonces es que esta todo bien.



    Añadiendo Registros de Resolucion Directa

    A continuacion vamos a crear el fichero donde guardaremos los registros: touch /etc/bind/db.elhacker.net y lo editamos para agregar los registros : nano /etc/bind/db.elhacker.net y agregamos lo siguiente:

    $ttl 38400

    local-elhacker.net. IN SOA ns.local-elhacker.net. madpitbull@elhacker.net. (

    20101022; Número de serie
    3600 ; Tiempo de refresco (1 hora)
    300 ; Tiempo entre reintentos de consulta (5 min)
    17200 ; Tiempo de expiración de zona (2 dias)
    43200 ; Tiempo total de vida (TTL) (12 horas) )

    ;

    local-elhacker.net. IN NS ns.local-elhacker.net.

    ns.local-elhacker.net IN A 192.168.1.100

    ordenador01.local-elhacker.net. IN A 192.168.1.125

    ordenador02.local-elhacker.net. IN A 192.168.1.126

    ordenador03.local-elhacker.net. IN A 192.168.1.127

    ordenador04.local-elhacker.net. IN A 192.168.1.128

    ordenador05.local-elhacker.net. IN A 192.168.1.129

    ordenador06.local-elhacker.net. IN A 192.168.1.130

    miguel_sanchez IN CNAME ordenador01.local-elhacker.net.

    alejandra_primo IN CNAME ordenador02.local-elhacker.net.

    alex_morales IN CNAME ordenador03.local-elhacker.net.

    sobremesa_jefe IN CNAME ordenador04.local-elhacker.net.

    belen_ortega IN CNAME ordenador05.local-elhacker.net.

    portatil_jefe IN CNAME ordenador06.local-elhacker.net.


    Nota: también se puede crear el archivo de zona a partir de /etc/bind/db.empty Algunos recomiendan mas esta opcion asi que en caso de querer usarla poned: cp /etc/bind/db.empty /etc/bind/db.elhacker.net

    Empezare explicando el primer registro (SOA) :


    • Primero definimos el nombre de la zona (elhacker,net,)
    • IN hace referencia al tipo de protocolo usado (IN = Internet)
    • SOA es el tipo de registro (State of Authority), indica el servidor que tiene autoridad en la zona
    • ns.elhacker.net es el nombre que yo le he dado al servidor DNS de esta red (NS viene de Name Server)
    • madpitbull@elhacker.net. Es la dirección de correo electrónica del encargado de mantener la zona.
    • Parámetros que están dentro de los paréntesis:

      • Numero de Serie: es el numero de revisión del archivo de zona. En mi caso yo he puesto la fecha de la ultima modificación, es importante actualizar ese campo siempre que vayamos ha editar el archivo de la zona.
      • Tiempo de refresco: es el tiempo que tarda el servidor secundario en pedirle al servidor Maestro la copia de la zona. El servidor DNS secundario compara el número de serie del registro SOA del archivo de zona del servidor DNS principal y el número de serie de su propio registro SOA. Si son diferentes, el servidor DNS secundario solicitará una transferencia de zona desde el servidor DNS principal. El valor predeterminado es 3.600 (que es 1 hora).
      • Tiempo entre reintentos de consulta: Esto es el tiempo que un servidor secundario espera para recuperar una transferencia de zona fallida. Este tiempo suele ser menor al intervalo de actualización
      • Tiempo de expiración de zona: es el tiempo antes que un servidor secundario deje de responder a las búsquedas una vez se haya producido un intervalo de actualización de la zona.
      • Tiempo Total de Vida: Tiempo en el que el servidor de nombres mantiene la caché cualquier registro del recurso de este archivo en base de datos.
    Ahora explicare los registros :


    • elhacker.net. IN NS ns.elhacker.net. – Indica servidores con autoridad en la zona. NS(Name Server) es el tipo de registro.
    • ns.elhacker.net. IN A 192.168.1.100 – Indica el nombre del servidor DNS de la zona. Asigna a esa IP el dominio ns.elhacker.net
    • Todos los registros de tipo A asocian un dominio (que en este caso son ordenadores) a una IP
    • Los registros de tipo CNAME asignan un alias por el que también se les conoces a esos dominios. Se podría decir que es como un mote.
    Recordad que siempre podemos probar la configuracion del archivo de zona usando : named-checkconf /etc/bind/db.elhacker.net



    Probando la configuración del Servidor

    Tambien podemos probar si el servidor DNS carga con éxito el archivo que contiene los registros usando el comando: named-checkzone elhacker.net /etc/bind/db.elhacker.net , en mi caso despues de reiniciar el servidor y poner el comando me ha devuelto :

    mad@server:/etc/bind$ sudo /etc/init.d/bind9 restart

    * Stopping domain name service... bind9 [ OK ]

    * Starting domain name service... bind9 [ OK ]

    mad@server:/etc/bind$ sudo named-checkzone local-elhacker.net /etc/bind/db.elhacker.net

    zone local-elhacker.net/IN: loaded serial 1

    OK

    mad@server:/etc/bind$


    Creo que no hace falta mencionar que significa el mensaje de salida OK.



    Configurando los clientes DNS

    Antes de añadir los registros de resolución inversa vamos a probar si nuestro servidor DNS funciona.

    Para eso tenemos que editar los siguientes ficheros:

    /etc/host.conf En este fichero nos saldrá lo mismo que abajo:

    # The "order" line is only used by old versions of the C library.

    order hosts,bind

    multi on


    Lo que tenemos que hacer es cambiar el ordena de las palabras de la segunda linea por los siguientes:

    order bind,hosts

    Asi al buscar un dominio primero preguntara al servidor DNS Bind si tiene ese dominio o IP en su archivo de registros.

    /etc/resolv.conf En este fichero tenemos que agregar al principio search local-elhacker.net y nameserver 192.168.1.100 que es la IP del servidor DNS. Claramente elhacker.net lo reemplazáis por vuestro dominio.

    /etc/network/interfaces Ahí esta la configuración de la tarjeta de red, si abrimos ese fichero nos aparecera :

    # This file describes the network interfaces available on your system

    # and how to activate them. For more information, see interfaces(5).

    # The loopback network interface

    auto lo

    iface lo inet loopback

    # The primary network interface

    auto eth0

    iface eth0 inet static

    address 192.168.1.100 # Esta sera nuestra IP

    netmask 255.255.255.0 # La mascara de red

    gateway 192.168.1.1 # La puerta de enlace por defecto

    nameserver [b][u]192.168.1.100[/u][/b] # El DNS local


    Sustituimos la IP del servidor DNS que teníamos configurado anteriormente por la IP de nuestro servidor DNS local.



    Forwarders

    Pero que pasara por ejemplo si yo quiero acceder a Google.com ? Pues como no tenemos ese registro en nuestra base de datos el servidor DNS que tengamos configurado deberá pasarle la consulta de resolución de nombre a otro servidor DNS. Esos servidores DNS son tambien conocidos como Forwarders y en Bind se configuran el la siguiente ruta:

    /etc/bind/named.conf.options

    Editamos ese fichero y dentro de options agregamos:

    Citaroptions {

    directory "/var/cache/bind";

    // If there is a firewall between you and nameservers you want

    // to talk to, you may need to fix the firewall to allow multiple

    // ports to talk. See http://www.kb.cert.org/vuls/id/800113

    // If your ISP provided one or more IP addresses for stable

    // nameservers, you probably want to use them as forwarders.

    // Uncomment the following block, and insert the addresses replacing

    // the all-0′s placeholder.

    forwarders {

    8.8.8.8;

    8.8.4.4;

    };

    auth-nxdomain no; # conform to RFC1035

    listen-on-v6 { any; };

    };

    Esos son los servidores públicos de Google. Cuando nuestro servidor local no encuentre un dominio se lo preguntara al servidor DNS de Google.



    Aplicando los cambios y probando la resolución directa

    Reiniciamos la configuración de la Tarjeta de Red para que coja los cambios : /etc/init.d/networking restart

    Y probamos la resolución directa haciendo ping por ejemplo a ordenador04.local-elhacker.net :

    mad@server:/etc/bind$ ping ordenador04.local-elhacker.net

    PING ordenador04.local-elhacker.net (192.168.1.128) 56(84) bytes of data.

    64 bytes from 192.168.1.128: icmp_seq=1 ttl=128 time=8.52 ms

    64 bytes from 192.168.1.128: icmp_seq=2 ttl=128 time=0.044 ms

    64 bytes from 192.168.1.128: icmp_seq=3 ttl=128 time=0.019 ms

    64 bytes from 192.168.1.128: icmp_seq=4 ttl=128 time=1.40 ms

    64 bytes from 192.168.1.128: icmp_seq=5 ttl=128 time=0.156 ms


    Vemos que funciona y que hace ping al ordenador que nosotros hemos definido en el archivo de registros de zona.

    Podemos probar también el alias (CNAME):

    mad@server:/etc/bind$ ping portatil_jefe

    PING ordenador04.local-elhacker.net (192.168.1.128) 56(84) bytes of data.

    64 bytes from 192.168.1.128: icmp_seq=1 ttl=128 time=0.352 ms

    64 bytes from 192.168.1.128: icmp_seq=2 ttl=128 time=0.335 ms

    64 bytes from 192.168.1.128: icmp_seq=3 ttl=128 time=0.671 ms

    ^Z

    [2]+ Detenido ping portatil_jefe


    Otros comandos que podemos probar son:

    host portatil_jefe

    nslookup portatil_jefe

    dig local-elhacker.net

    Con esos bastaría para probar nuestro servidor DNS local.



    Añadiendo Registros de Resolucion Inversa

    Una vez eso hecho es la hora de crear la base de datos de la resolución inversa, con la resolución inversa a partir de una IP podemos saber el nombre de host. Es un registro de tipo PTR(Pointer-Puntero).

    Si os acordais creamos una zona inversa en el fichero de zona del servidor, "1.168.192.in-addr.arpa" En la declaracion de la zona inversa incluimos el fichero db.192.168.1 .Ahora vamos a crear ese fichero, podemos crearlo con touch :

    $ touch db.192.168.1
    O crearlo a partir de un fichero de prueba que viene con el servidor:

    $ cp db.127 db.192.168.1
    Para no tener que poner la ruta completa, escribo los comandos desde la carpeta donde esta situado el Bind (/etc/bind)

    Seguimos con la edición del fichero de resolución inversa, lo abrimos con algun editor (nano por ejemplo) y ponemos:

    ;

    ; Archivo de Resolucion Inversa

    ;

    $TTL 604800

    1.168.192.in-addr.arpa. IN SOA ns.local-elhacker.net. madpitbull@local-elhacker.net. (

    1 ; Serial

    604800 ; Refresh

    86400 ; Retry

    2419200 ; Expire

    604800 ) ; Negative Cache TTL

    ;

    1.168.192.in-addr.arpa. IN NS ns.local-elhacker.net.

    100.1.168.192.in-addr.arpa. IN PTR ns.local-elhacker.net.

    125.1.168.192.in-addr.arpa. IN PTR ordenador01.local-elhacker.net.

    126.1.168.192.in-addr.arpa. IN PTR ordenador02.local-elhacker.net.

    127.1.168.192.in-addr.arpa. IN PTR ordenador03.local-elhacker.net.

    128.1.168.192.in-addr.arpa. IN PTR ordenador04.local-elhacker.net.

    129.1.168.192.in-addr.arpa. IN PTR ordenador05.local-elhacker.net.

    130.1.168.192.in-addr.arpa. IN PTR ordenador06.local-elhacker.net.

    Guardamos el fichero y probamos la configuracion:

    mad@server:/etc/bind$ sudo named-checkconf db.192.168.1

    OK


    Y luego comprobamos si carga la zona corectamente:

    mad@server:/etc/bind$ sudo named-checkzone 1.168.192.in-addr.arpa. /etc/bind/db.192.168.1

    zone 1.168.192.in-addr.arpa/IN: loaded serial 1

    OK





    Probando la Resolucion Inversa

    Ya tenemos un Servidor que resuelve resoluciones directas e inversas. Para probar la resolución inversa podemos poner:

    mad@server:/etc/bind$ host 192.168.1.128

    128.1.168.192.in-addr.arpa domain name pointer ordenador04.local-elhacker.net.


    También os he dejado un vídeo donde se pueden ver los ficheros de configuración y el correcto funcionamiento del servidor DNS.

    [youtube=425,350]http://www.youtube.com/watch?v=t4EvB7U2_l8[/youtube]

    #80
    Este tema tiene como objetivo recopilar términos de uso frecuente en este apartado del foro y definirlos de forma informal teniendo en cuenta el contexto en el que se encuentran. Es decir, no se trata de una definición de diccionario ni de un articulo de la wikipedia entero, se trata de una breve definición añadiendo datos interesantes relacionándolos con el subforo.

    Aportad los términos que queráis con o sin su definición correspondiente, los iremos poniendo en este post y creando el glosario. Los términos pueden estar compuestos por varias palabras y las definiciones se modificaran para crear un conjunto mas o menos uniforme (extensión, registro del leguaje utilizado...).

    Esperamos hacer entre todos un recopilatorio de términos que sea útil y sobre todo ameno a la lectura.

    Gracias por vuestra participación.



    Pharming: Es un método de ataque que tiene como objetivo redirigir el tráfico de un sitio web hacia otro falso, no siendo el original. De modo que el usuario ingrese (sin saberlo) datos de facturación o tarjetas de crédito u otros datos críticos para el usuario en cuestión.









    Glosarios creados:
    Criptografía
    Hacking Wireless
    Programación
    Redes
    Seguridad

    Indice alfabético

    A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z




    Terminos:

    A
    Análisis heurístico: Aplicada al entorno del malware. Es una técnica algorítmica utilizada por los antivirus para detectar virus que en ese momento no han sido identificados (no forman parte del fichero de firmas).


    B


    C
    Cifrado: Es un método de cifrado o codificación de datos que permite evitar que los usuarios no autorizados lean o manipulen dichos datos.

    Crimeware: Este término que engloba a todos las herramientas, documentos o mensajes de correo electrónico que se utiliza para obtener beneficios económicos de forma fraudulenta. Convirtiéndose en un delito informático.



    D
    Decodificación: Es un método que tiene como finalidad volver al texto original (datos que anterioremente estaban cifrados) para ser leído.


    E


    F
    Fichero de firmas: Para los Antivirus, es fichero que cuenta con todas las características que identifican inequívocamente a cada uno de los distintas amenazas de seguridad como los virus conocidos, facilitando su detección y su posterior tratamiento. Estos ficheros se han de actualizar constantemente. Debido a los nuevos tipos y tendencias de malware.


    G


    H


    I


    J


    K


    L


    M
    Malware o Badware: Es un tipo de software que tiene como objetivo infiltrar o dañar un PC sin el consentimiento de su propietario. Y que presente un riesgo o amenza para el sistema y la privacidad de los datos del usuario.



    N


    O


    P
    Pentesting
    Privacidad


    Q


    R


    S


    T


    U


    V


    W


    X


    Y


    Z




    Pentesting:viene de la unión de las palabras Penetration + Testing, consiste en una serie de métodos con los que se intenta evaluar la seguridad de un ordenador, de una red, de una aplicación de escritorio o web. Se analiza tanto la seguridad pasiva como la activa siempre tratando de mantener los objetivos de la Seguridad Informática (Confidencialidad,Integridad, Disponibilidad y No Repudio). El Pentester se pone en el lugar del atacante para encontrar posibles vulnerabilidades en el sistema y tapar los agujeros de seguridad.

    Privacidad:La privacidad en la red consiste en la habilidad de cada individuo de controlar qué información revela uno mismo en el conjunto de Internet, y controlar quién puede acceder a ella.
    Para mantener la privacidad es importante saber como va a ser tratada y controlada la información personal que publiquemos. Conocer quien tiene acceso a nuestros datos, si podemos modificarlos y como se protegen son aspectos a valorar antes de publicar información personal en un foro, red social, chat, blog o página web.
    #81
    Este tema tiene como objetivo recopilar términos de uso frecuente en este apartado del foro y definirlos de forma informal teniendo en cuenta el contexto en el que se encuentran. Es decir, no se trata de una definición de diccionario ni de un articulo de la wikipedia entero, se trata de una breve definición añadiendo datos interesantes relacionándolos con el subforo.

    Aportad los términos que queráis con o sin su definición correspondiente, los iremos poniendo en este post y creando el glosario. Los términos pueden estar compuestos por varias palabras y las definiciones se modificaran para crear un conjunto mas o menos uniforme (extensión, registro del lenguaje utilizado...).

    Esperamos hacer entre todos un recopilatorio de términos que sea útil y sobre todo ameno a la lectura.

    Gracias por vuestra participación.

    Glosarios creados:
    Criptografía
    Hacking Wireless
    Programación
    Redes
    Seguridad

    Indice alfabético

    A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z




    Terminos:

    A
    Ataques


    B


    C


    D


    E


    F


    G


    H


    I


    J


    K


    L


    M


    N


    O


    P
    palabra(EJEMPLO)


    Q


    R


    S


    T


    U


    V


    W


    X


    Y


    Z



    Palabra(EJEMPLO):
    #82
    Dependiendo de quien haya instalado el Sistema Operativo en Red, Ubuntu Server 10.04 le tocará configurar la tarjeta de Red del servidor.

    Si hacemos un ifconfig (para ver la configuración de red) veremos que el servidor no tiene dirección IP asignada.

    Hay dos modos de asignarle una IP (en realidad hay mas) :

    En el primero asignaremos una IP de manera "temporal" para eso tenemos que escribir : fconfig eth0 <ip> netmask <mascara de red> (eth0 es el nombre de mi tarjeta de red, el nombre puede variar)


    En mi caso es : ifconfig eth0 192.168.1.100 netmask 255.255.255.0

    Pero como ya he dicho la Ip se asigna de manera temporal, podemos comprobarlo reiniciando el servicio de Red poniendo : sudo /etc/init.d/networking restart y despues probando con un ifconfig .

    Eso no nos servirá de nada por que lo vamos a reiniciar varias veces ya que es un servidor casero.

    Entonces vamos a asignarle una IP permanente :

    Por si algo sale mas vamos a hacer primero una copia de seguridad de la configuración de red : sudo cp /etc/network/interfaces /etc/network/interfaces_old_conf

    Ahora procedemos a editar el fichero de configuración con algún editor de consola, como: nano, pico, vi, vim, etc.

    Yo usaré nano : sudo nano /etc/network/interfaces


    Tenemos algo asi . Como se puede ver nuestro servidor coge una ip aleatoria por DHCP. Ahora vamos a editar este fichero para que tenga una fija.


    El simbolo # se utiliza para comentarios. Creo que esta todo bien explicado (podeis preguntar si teneis algúna duda).

    Ahora vamos a reiniciar los servicios de red : sudo /etc/init.d/networking restart y haremos un ifconfig .

    Ya tenemos nuestra Ip Fija :



    Esto puede ser lo primero que hagamos al instalar un servidor.
    #83
    Redes / Instalar Webmin en Ubuntu Server 10.04
    16 Octubre 2010, 15:49 PM
    Webmin

    Webmin (Web Administrator) es una herramienta de administración de equipos Unix, GNU/Linux y Ms Windows (en esta plataforma no se dispone de tantas herramientas de configuración como en las otras dos citadas). Este Panel de Administración nos facilita mucho las tareas de mantenimiento y configuración de los servicios de red o equipos, pudiendo configurar servidores DNS, DHCP, Samba, FTP, etc.
    Está bajo licencia BSD y escrito en Perl por Jamie Cameron.Instalación:

    Podemos instalarlo de 2 maneras: bajandonos el paquete .deb/tar.gz o usando apt-get.

    Nosotros nos bajaremos el paquete .tar.gz y lo instalaremos manualmente. En caso de haber bajado el fichero .deb usa el siguiente comando : sudo dpkg -i *.deb

    wget http://sourceforge.net/projects/webadmin/files/webmin/1.520/webmin-1.520.tar.gz


    Despues de descargarlo tenemos que descomprimir el contenido del paquete :
    sudo tar -zxvf *.gz


    Eso descomprimirá todos los paquetes que tienen la extensión .gz asi
    que hay que tener cuidado si hay mas de uno . Dependiendo de cada
    sistema la descompresión tardará unos minutos asi que si tenemos que
    hacer otras cosas podemos abrir una consola pulsando ALT + CTRL + F2 o
    F3 … .

    Una vez descomprimido accedemos a la carpeta del webmin :
    cd webmin*


    Lo siguiente es usar el script de instalacion de webmin:
    sudo ./setup.sh ruta_de_instalacion

    En mi caso es:
    sudo ./setup.sh /usr/local/webmin


    Nos aparecerá un asistente haciendonos una seria de preguntas como el usuario, la constraseña, el puerto utilizado, etc.

    Para arrancar el servicio del Webmin :
    sudo /etc/webmin/start o stop


    Ya podemos acceder al panel de administración Webmin desde otro PC o
    desde el mismo (en caso de tener entorno gráfico) usando el puerto 10000
    (por defecto)

    Nota:
    El carácter * (comodín) se utiliza para completar los caracteres restantes.

    Abajo podeis ver como he accedido desde Windows a mi servidor Ubuntu usando el navegador web (Firefox) :

    Panel de Webmin. Click en la imagen para agrandar.

    Mas Información:
    _Webmin FAQ
    _Webmin Wiki
    _Webmin Wikipedia
    #84
    Redes / Instalar Samba en Ubuntu Server 10.04
    16 Octubre 2010, 15:41 PM
    Instalar Samba en Ubuntu Server 10.04

    Samba es un protocolo de red para compartir archivos entre equipos Unix y demas Sistemas Operativos. Es compatible tanto con Windows que Mac. Las últimas versiones permiten la integración de usuarios con Active Directory. Una cosa interesante que hay que destacar, es que ha sido desarrollado utilizando ingenieria inversa usando un sniffer para capturar los datagramas.

    Instalación:
    • Instalamos los paquetes necesarios para Samba : apt-get install samba samba-client smbfs smbclient
    • Creamos la carpeta que queremos compartir, en mi caso es : mkdir /home/mad/compartida
    • Le damos los permisos necesarios : chmod 775 /home/mad/compartida

    • Editar el fichero de configuración de Samba, situado en: /etc/samba/smb.conf
    • Podemos usar el editor que mas nos convenga, yo usaré nano: sudo nano /etc/samba/smb.conf .Recomiendo hacer primero una copia de recuperción (backup) de ese fichero sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.old
    • Una vez dentro del fichero de configuracion, buscamos la linea: share definitions (en nano podemos pulsar CTRL+W y escribir la frase a buscar).
    • Debajo de esta linea añadiremos: client lanman auth=yes . Nos tiene que quedar como en la imagen de abajo.



      Fichero de configuración de Samba

    • Despues de eso, buscamos la linea workgroup y le ponemos el nombre de nuestro grupo de trabajo: workgroup=ELHACKERNET
    • Ahora nos toca configurar el acceso a esa carpeta, hay dos
      posibilidades : accediendo con una contraseña y usuario o sin
      contraseña.
      • Sin Contraseña:
      • Buscamos la linea security y le ponemos el parametro SHARE (en mayuscula), quedando asi : security=SHARE .Eso significa que se nos pedira ningun dato de autenficación para acceder a dicha carpeta.

      • Ahora definitos la carpeta a compartir, añadimos las siguientes lineas justo al final del fichero:
        • [Nombre del recurso en la red]
        • commento=descripción del fichero
        • path=/ruta/del/fichero
        • public=yes # Si es pública o no
        • writable=yes # Si se puede escribir dentro de esa carpeta
      • En mi caso ha quedado como en la imágen de abajo:


        Configuración de carpeta compartida

      • Guardamos los cambios y salimos.
      • Con Contraseña
        • Si queremos que nos pida una contraseña y un usuario para acceder a la carpeta compartida en la linea security, ponemos security=user.

        • Está claro que ese usuario debe existir, para crear un usuario ponemos useradd &lt;nombre del usuario&gt; ejemplo : useradd alex
        • Lo malo de ese comando es que el usuario no tendrá su propria
          carpeta dentro de /home . Asi que vamos a borrar el que hemos creado
          antes : sudo userdel -r alex
        • Para que tenga su propria carpeta y contraseña ponemos : sudo useradd -d /home/alex -m alex
        • Ahora vamos a ponerle una contraseña : sudo passwd alex
        • Luego hay otro comando que es aún mas fácil de usar adduser &lt;nombre&gt; ,en la imagen de abajo podeis ver todos los datos que nos pide :



          Datos requeridos del comando adduser

      • Despues de configurar el servidor de archivos compartidos Samba, vamos a reiniciarlo poniendo :
      • sudo service smbd restart &lt;– en la version 10.04 de Ubuntu Server o
      • sudo /etc/init.d/smbd restart &lt;– en las versiones posteriores

      • Esto seria todo, pero vamos a ver si funciona.
      • Accediendo a recursos compartidos
      • Desde Linux a Linux:
        • En este caso accederemos directamente desde nuestra máquina (en local).
        • Usamos el comando : smbclient, su sintáxis es : smbclient //IP/nombre de la carpeta
        • Ejemplo: sudo smbclient //192.168.1.100/compartida

        • Si lo tenemos puesto en SHARE, nos dirá que se accede sin usuario ni contraseña.
        • Los comandos son los de siempre get, put, mkdir, etc.
      • Desde Windows a Linux
        • En este caso es mas fácil, ponemos en un explorador la IP del servidor/nombre de la carpeta
        • Este sería el resultado:




          Accediendo a una carpeta compartida en Ubuntu Server desde Windows

          • Si en security le hemos puesto user, nos pedirá el usuario y contraseña antes de acceder a ese recurso.
          • Desde Linux a Windows
            • Esta variante no la he probado 100%

            • Recomiendo primero crear un usuario en Windows y asignarle una contraseña.
            • Luego desde Ubuntu : sudo smbclient //ip del so con windows/compartida -U NombreUsuario -P Contraseña
            • Mas abajo podemos ver los modos de autentificación:

              Modos de autenficación de Samba

            Montar carpeta compartida de modo Temporal/Permanente

            Nos puede interesar montar una carpeta compartida de nuestra red en
            nuestro servidor, asi no tendremos que usar el smbclient cada vez que
            queremos acceder a esa carpeta.

            • Usaremos el comando mount -t smbfs -0 username='usuario' password='contraseña' //IP/carpeta /tmp/compartida_temporal
            • Donde mount es el comando para montar, smbfs es el tipo de ficheros,
              username es el nombre del usuario, password es la contraseña, IP es la
              dirección ip de la máquina que tiene compartido el recurso seguido del
              nombre de la carpeta, /temp/compartida_temporar es la dirección donde
              vamos a montar la carpeta compartida. Esa carpeta tiene que estar
              creada.

            Mas Información :
    #85
    Diseño Gráfico / Bionic Spider [Pedido]
    3 Octubre 2010, 17:18 PM
    Estaba mirando la tienda de productos del foro cuando vi una pegatina que me llamo la atencion :



    Hace tiempo vi ese "logo" en el index de una web owneada xD pero tenia contenia texto ...

    Alguien tiene esa imagen ? Da igual el formato, solo me interesa que este limpia (solo el logo) .

    Gracias de antemano.

    -------
    PD: Hace tiempo que no se organiza un Battle Art . Estaria bien reunir gente para hacer uno.

    Saludos.
    #86
    La apertura de los puertos es una pesadilla para muchos usuarios con conocimientos basicos de informatica. Sin embargo es una operacion imprescindible si vas a jugar online con el PC o la consola, usar algun programa P2P, programas de videoconferencia, programas de administracion remota, etc.

    Simple Port Forwarding nos facilita mucha esta tarea ya que nos permite abrir puertos de una forma muy facil y rapida. El unico requisito es saber el modelo del router.

    Es disponible en formato de Pago y Free, el formato free logicamente no tiene tantas opciones pero para dar una pequena introduccion nos sirve igualmente.

    Antes de nada vamos a descargar el programa : Descargar .

    Despues de instalarlo vamos a ejecutarlo y echarle un vistazo :



    Aparte de la ventana principal observamos otra en la que nos pide realizar una lista de tareas :




    • 1.  Actualizamos la lista de Routers
    • 2.  Buscamos nuestro modelo de Router
    • 3.  Fijar  nuestra IP en estatica. Esta opcion solo viene en la version Pro (de pago), pero podemos hacerlo nosotros facilmente. No voy a explicar en este tutorial como se hace ya que hay varios posts sobre este mismo tema
    • 4.  LLegados a este punto tenemos que elegir los puertos que queremos abrir. Hacemos clic en Anadir Personalizada y rellenamos el formulario con los puertos que nosotros queramos
    • 5.  Este paso no lo recomiendo ya que intentara actualizar el firmware de nuestro router y alguna cosa puede que vaya mal. Por lo tanto nos lo saltamos.
    • 6.  En el paso 6 tenemos que agregar los puertos al firewall de Windows, esto tampoco lo voy a explicar ya que este tutorial no trata sobre esto y es muy facil hacerlo.
    • 7.  En este ultimo apartado solo tenemos que comprobar que nuestros puertos han sido abiertos corectamente.



    En la primera pantalla solo tenemos que configurar un par de datos (datos de acceso al router) como el usuario, la contraseña y la direccion IP del Router.

    Eso es casi todo, es probable que me haya saltado algo del programa, pero si hay dudas preguntad.

    Documentacion:
    -----------------
    Guia Router de PcWinTech
    Foros de PcWinTech

    #87
    Cualquiera que quiera agregar algún libro a esta lista que responda a este post siguiendo el modelo de abajo. Se recomienda subir el libro a MultiUpload.


    Microsoft Forefront Threat Management Gateway (TMG) Administrator's Companion



    Descripción:
    Manual de Administración e Implementación de Microsoft(R) Forefront(R) Threat Management Gateway (TMG)

    Detalles del libro:

    Num. Paginas: 1056
    Editorial: Microsoft Press; 1 edition (January 15, 2010)
    Idioma: Ingles
    ISBN-10: 0735626383
    ISBN-13: 978-0735626386

    Descargar:
    http://www.multiupload.com/WMEHBU2UAV




    Administración de Routers Cisco



    Descripcion:
    Manual de Administración de routers y switches marca Cisco. Recomendado para todos los niveles.

    Detalles del libro:

    Num. Paginas: 144
    Editorial: No Starch Press; 2 edition (February 23, 2009)
    Idioma: Ingles
    ISBN-10: 159327193X
    ISBN-13: 978-1593271930

    Descargar:
    http://www.multiupload.com/XJQ5AO2PDO




    Administración de Exchange Server



    Descripción:
    Manual de Administración, Implantación y Configuración de Exchange Server. Orientado a todos los niveles, tanto novatos como Administradores con experiencia. A pesar de tener muchas paginas es una guía de bolsillo o guía rápida.

    Detalles del libro:

    Num. Paginas: 688
    Editorial: Microsoft Press (November 1, 2009)
    Idioma: Ingles
    ISBN-10: 0735627126
    ISBN-13: 978-0735627123

    Descargar:
    http://www.multiupload.com/DW3634MHHN




    Windows Internals v5 Edition



    Descripción:
    Creo que este libro no necesita mucha descripción. Se trata de la quinta edición. Básicamente se explica como funciona los sistemas operativo Windows Xp, Vista, Server 2008. Como funciona la política de seguridad, el kernel, los algoritmos que utiliza para resolver los procesos, como gestiona la memoria virtual y física,

    Detalles del libro:

    Num. Paginas: 1264
    Editorial: Microsoft Press; 5 edition (June 17, 2009)
    Idioma: Ingles
    ISBN-10: 0735625301
    ISBN-13: 978-073562530

    Descargar:
    http://www.multiupload.com/RC6HGA7KQD




    Understanding IPV6



    Descripción:
    Manual de teoría de IPV6. Poco a poco se va implementando en las grandes empresas.

    Detalles del libro:

    Num. Paginas: 544
    Editorial: Microsoft Press; 2 edition (January 19, 2008)
    Idioma: Ingles
    ISBN-10: 0735624461
    ISBN-13: 978-0735624467

    Descargar:
    http://www.multiupload.com/5233CG35AZ




    Beginning OpenVPN 2.0.9



    Descripcion:
    Aprenderás a instalar y configurar OpenVPN en Windows, Linux y Mac. Analizar tramas de las VPN's, etc.

    Detalles del libro:

    Num. Paginas: 356
    Editorial: Packt Publishing (December 2, 2009)
    Idioma: Ingles
    ISBN-10: 184719706X
    ISBN-13: 978-1-847197-06-1

    Descargar:
    http://www.multiupload.com/MVD03CJAK5




    Microsoft Windows Server 2008: The Complete Reference



    Descripcion:
    Manual de referencia de Windows Server 2008. Configurar ADDS, User Services, DNS, DHCP, and IIS7, etc.

    Detalles del libro:

    Num. Paginas: 826
    Editorial: McGraw-Hill Osborne Media; 1 edition (February 28, 2008)
    Idioma: Ingles
    ISBN-10: 0072263652
    ISBN-13: 978-0072263657

    Descargar:
    http://www.multiupload.com/YMM91E6L34







    Hacking Exposed, 6th Edition: Network Security Secrets & Solutions



    Descripción:
    Seguridad en Redes.

    Detalles del libro:

    Num. Paginas: 720
    Editorial: McGraw-Hill Osborne; 6 edition (1 Feb 2009)
    Idioma: Ingles
    ISBN-10: 0071613749
    ISBN-13: 978-0071613743

    Descargar:
    http://www.multiupload.com/763D9X5XFO






    Microsoft Windows Server 2008 Administration



    Descripción:
    Administración de Windows Server 2008.

    Detalles del libro:

    Num. Paginas: 488
    Editorial: McGraw-Hill Osborne Media; 1 edition (February 21, 2008)
    Idioma: Ingles
    ISBN-10: 0071493263
    ISBN-13: 978-0071493260

    Descargar:
    http://www.multiupload.com/TGIVEMOD01






    Hacking Exposed Wireless: Wireless Security Secrets & Solutions



    Descripción:
    Entender como funcionan las redes inalambricas y como protegerlas.

    Detalles del libro:

    Num. Paginas: 386
    Editorial: McGraw-Hill Osborne; illustrated edition (1 May 2007)
    Idioma: Ingles
    ISBN-10: 0072262583
    ISBN-13: 978-0072262582

    Descargar:
    http://www.multiupload.com/GIFRPQFSGN




    Professional IIS 7 - Wrox



    Descripcion:
    Manejo, configuración y administración del servidor web de Microsoft IIS

    Detalles del libro:

    Num. Paginas: 821
    Editorial: Wrox; Pap/Onl edition (March 10, 2008)
    Idioma: Ingles
    ISBN-10: 0470097825
    ISBN-13: 978-0470097823

    Descargar:
    http://www.multiupload.com/GIQEVLPQVG




    The Official Ubuntu Server Book, 2nd Edition



    Descripción:
    El libro oficial de Ubuntu Server (segunda edicion).

    Detalles del libro:

    Num. Paginas: 590
    Editorial: Prentice Hall; 2 edition (Julio, 2010)
    Idioma: Ingles
    ISBN-10: 0137081332
    ISBN-13: 978-0137081332

    Descargar:
    http://www.multiupload.com/BUMK5MJMLE




    How to Cheat at Securing Linux



    Descripción:
    Guia de Seguridad de Linux. Recomendado personalmente, muestra algunos trucos para agilizar las configuraciones de Seguridad en un sistema GNU/Linux.

    Detalles del libro:

    Num. Paginas: 546
    Editorial: Syngress; Pap/Only edition (Noviembre 13, 2007)
    Idioma: Ingles
    ISBN-10: 1597492078
    ISBN-13: 978-1597492072

    Descargar:
    http://www.multiupload.com/7HYV06KR70




    Asterisk



    Descripción:
    Manual muy completo sobre soluciones VoIP con Asterisk.

    Detalles del libro:

    Num. Paginas: 604
    Editorial: O'Reilly
    Idioma: Ingles
    ISBN-10: 0-596-51048-9
    ISBN-13: 978-0-596-51048-0

    Descargar:
    http://www.multiupload.com/UU8477HN0O




    LINUX SYSTEM ADMINISTRATION || Administración de Sistemas Linux



    Descripción:
    Manual de configuración e instalación de servicios en Red bajo servidores Linux.
    Disponible tanto la versión original en Ingles como la traducida en Castellano.

    Detalles del libro:

    Num. Paginas: 273
    Editorial: O'Reilly
    Idioma: Ingles y Castellano
    ISBN-10: 0-596-00952-6
    ISBN-13: 978-0-596-00952-6

    Descargar:
    Versión Original Ingles
    http://www.multiupload.com/6YZ05A87L3
    Versión Traducida al Castellano
    http://www.multiupload.com/2FX969M7MB




    Squid Proxy Server 3.1



    Descripción:
    Aprende el concepto de ACL, como manejarte con el Squid y como configurarlo de forma segura.

    Detalles del libro:

    Num. Paginas: 332
    Editorial: PaktLib
    Idioma: Ingles
    ISBN 978-1-849513-90-6

    Descargar:
    http://www.multiupload.com/R93JF06SPR




    Cisco Routers for the Small Business



    Descripción:
    Manual práctico de configuración de dispositivos CISCO.

    Detalles del libro:

    Num. Paginas: 258
    Editorial: Apress
    Idioma: Ingles
    ISBN-13 (pbk): 978-1-4302-1851-7
    ISBN-13 (electronic): 978-1-4302-1852-4

    Descargar:
    http://www.multiupload.com/MHSSZ96GAE
    #88
    Hardware / Diagnostico disco duro portatil
    28 Agosto 2010, 22:32 PM
    Hola,

    Hace poco que tengo un portatil, de vez en cuando se escucha como un sonido '' clic '' que proviene del disco duro. No se si sera algo normal en un portatil.

    Es un Acer 7745 . Con un HDD WDC WD5000BEVT-22A0RT0 .

    --------------
    Informe SMART de Everest :


    Informe SMART de HDDScan:


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

    Seguramente algunos de vosotros sabreis leer/interpretar mejor que yo estos valores.


    Saludos y gracias de antemano.
    #89
    Foro Libre / Lady Java [Humor]
    20 Agosto 2010, 17:58 PM
    El video me lo encontré en un tweet de Kevin Mitnick xD

    [youtube=425,350]http://www.youtube.com/watch?v=Mt7zsortIXs&hd=1[/youtube]

    Saludos!
    #90
    Diseño Gráfico / Wallpaper Android
    15 Agosto 2010, 18:28 PM
    Me gusta el muñeco de Android asi que hicé un modesto wallpaper.

    http://mad-alex.webcindario.com/images/klz1281889525i.jpg

    Cualquier sugerencia es bienvenida.

    PD: Si algúno quiere el .psd que lo diga en este post.