miércoles, 30 de noviembre de 2011

Buscar en el Historial de Linux

El historial de Linux guarda por defecto las últimas líneas de comandos ingresadas las cuales están guardadas en el archivo oculto .bash_history (esta en la carpeta por defecto del usuario por ejemplo /home/usuario/) basta con ingresar el comando history en el shell para visualizar los comandos guardados:

$history


Luego aparecerán los comandos más recientes:

  233  sudo scp /etc/samba/smb.conf  cromero@smb3.electronicserver.com:
  234  ls
  235  sudo ls -lt /srv
  236  ls
  237  sudo
  238  sudo ls -lt /srv
  239  sudo ls -lt /
  240  sudo vim /etc/crontab
  241  scp /home/tany/* tany@smb2.electronicserver.com:
  242  sudo halt
  243  sudo vim /etc/crontab
  244  date
  245  sudo vim /etc/crontab
  246  sudo halt
  247  ls
  248  sudo ls /srv/
  249  sudo cp -r /srv/tester/ /var/www/
  250  sudo df -h
  251  sudo ls /var/www/
  252  sudo ls /var/www/tester/
  253  sudo rm -r /var/www/tester/
  254  sudo reboot
  255  sudo free
  256  sudo halt
  257  ifconfig
  258  sudo halt
  259  history

No aparecen todos porque no caben en la pantalla pero se pueden ver los más recientes numerados. Para ejecutar un comando sin la necesidad de reescribirlo se procede de la siguiente manera:


$ !257
ifconfig
eth0      Link encap:Ethernet  HWaddr 08:00:27:9d:6f:dd
          inet addr:192.168.1.251  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe9d:6fdd/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:17315 errors:0 dropped:0 overruns:0 frame:0
          TX packets:884 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1336336 (1.3 MB)  TX bytes:139235 (139.2 KB)
...Datos Omitidos Intecionalmente...

Si el comando no se pudo ver en la pantalla la herramienta más potente para hacer una búsqueda en el historial se invoca con la combinación de letras Ctrl+R:


(reverse-i-search)`':


Una vez invocada la herramienta procedemos a tipear la palabra clave para la búsqueda, por ejemplo vim y el buscador mostrará un resultado (el más reciente), basta con presionar de nuevo Ctrl+R hata encontrar los comandos deseados.


(reverse-i-search)`vim': sudo vim /etc/crontab


Si encontramos el comando deseado presionamos ENTER para ejecutarlo, si queremos modificarlo basta con presionar una de las flechas para empezar a modificar los comandos y si queremos cancelar la búsqueda es necesario presionar Ctrl+G.

Había mencionado que el archivo .bash_history contiene los comandos con el historial también se puede ver su contenido usando la herramienta less.


$less .bash_history


Que mostrará los datos pero sin numeración, sólo nos sirve para visualizar los que no caben en la pantalla, con la herramienta wc veremos algunos detalles del archivo.

$wc .bash_history
258   746   6466   .bash_history


Contiene 258 columnas (258 registros en el historial), 746 palabras y 6466 bytes. Con ello comprobamos que por el momento hay 258 registros. Sin embargo podemos ver número máximo de líneas que puede guardar el historial en el archivo oculto .bashrc y usaremos el editor vim para hacer algunos cambios:


$vim .bashrc


Y con las flechas bajamos hasta encontrar: las líneas:

HISTSIZE=1000
HISTFILESIZE=2000


La instancia superior indica el número máximo de líneas que mostrará el comando history y la instancia siguiente muestra el número máximo de líneas que guardará el archivo .bash_history.


Disfrute al usar Linux!


jueves, 24 de noviembre de 2011

Instalar LAMP - Linux Apache MySQL y PHP

En Linux Server o en el terminal de Linux Desktop se instala de la siguiente manera.

#apt-get install apache2 php5 mysql-server libapache2-mod-php5 php5-mysql

Hay que recordar de estar en una sesión de administrador para la instalación (importante!), apt-get puede ser reemplazado por yum para Linux basados en Red Hat; seguidamente:

  • apache2 es el servidor HTTP.
  • php5 es el servidor PHP sobre el servidor Apache.
  • mysql-server es el servidor MySQL, durante esta instalación se requiere ingresar la contraseña de administrador, no olvidarla.
  • libapache2-mod-php5 es la librería que permite que php5 funcione correctamente en apache2.
  • php5-mysql permite que se pueda insertar comandos MySQL en los script php5.
Hay que aceptar todas las instalaciones que nos pregunte el sistema y esperar a que se descarguen y luego instalen todos los programas.


Seguidamente a través de un navegador en la misma computadora u otra en la misma red ingresamos la dirección IP del servidor donde instalamos los softwares y debemos obtener como resultado:

Lo que demuestra la correcta operación del servidor HTTP Apache2. En realidad todo este contenido mostrado se ubica en /var/www/index.html es decir que por defecto la carpeta /var/www/ es la que contiene los archivos del servidor e index.html es el archivo que se abre por defecto. Este archivo lo podemos editar con el editor de texto Vim (es necesario instalarlo, apt-get install vim, lo recomiendo).

Seguidamente verificamos el correcto funcionamiento de PHP5 creando en vim el archivo:

#vim /var/www/phptest.php

En el editor presionamos la tecla ingresamos el siguiente script:

<?php
echo('Prueba Correcta!');
?>

Seguidamente presionamos la tecla ESC en ingresamos los caracteres :wq para guardar y salir del editor. En el navegador ingresamos la IP seguido del nombre del archivo y veremos:

Es decir PHP funciona correctamente!

Seguidamente haremos la prueba de MySQL y crearemos una base de datos. Primero se ingresa a MySQL en el host localhost con el usuario root y con el password de administrador que habíamos ingresado al momento de la instalación.

# mysql -h localhost -u root -p
Enter password:

Luego una vez el el  prompt de MySQL ingresamos los siguientes comandos para crear la base de datos llamada "basedatos"

mysql> create database basedatos;
Query OK, 0 rows affected (0.16 sec)

Luego salimos de MySQL.

mysql> exit
Bye

Entonces MySQL funciona correctamente!

Finalmente verificamos el correcto funcionamiento de todo el sistema LAMP creando en vim el archivo:

#vim /var/www/lamptest.php

En el editor presionamos la tecla ingresamos el siguiente script:



<?php
mysql_connect('localhost', 'root', 'password') or die (mysql_error());
mysql_select_db('basedatos') or die(mysql_error());
echo('DB Correcta!');
?>


Presionamos la tecla ESC en ingresamos los caracteres :wq para guardar y salir del editor. En el navegador ingresamos la IP seguido del nombre del archivo y veremos:




Esto demuestra el correcto funcionamiento de todo el sistema LAMP, si el password se ingresa incorrectamente, el nombre de la base de datos es incorrecto, entonces el navegador nos indicará el error existente.

sábado, 19 de noviembre de 2011

Nmap Para Escanear la Red - Métodos Más Útiles

En Linux una de las herramientas más versátiles y poderosas para escanear redes es Nmap (Network Mapping), tiene muchas utilidades pero sólo se demostrará el escaneo de un red local (LAN), es muy simple, ocupa poco espacio en el disco ya que se utiliza en la línea de comandos y no en un entorno gráfico, generalmente se desprecia un poco las herramientas de un entorno no gráfico como la línea de comandos, ya que parecen antiguas o difíciles de interpretar, sin embargo, estas herramientas son tan poderosas como cualquier otra en entorno gráfico, solamente hay que saber utilizarlas e interpretarlas por ejemplo:

Antes de hacer cualquier procedimiento es necesario iniciar una sesión como root del sistema.

Sesión de Administrador

En Ubuntu:

$sudo su
password:

En otros entornos Linux:

$su
password:

Instalación

En distribuciones basadas en Debian:

#apt-get install nmap

En distribuciones basadas en RetHat:

#yum install nmap 

Escaneo de un equipo

Escaneo de un equipo en la red LAN:

#nmap -sU -sT -O 192.168.1.1

Como se ve en la figura nmap se realiza con las siguientes opciones:
  • -sU Esta opción permite escanear los puertos UDP del objetivo (luego veremos el porqué de todo esto)
  • -sT Esta opción permite escanear los puertos TCP del objetivo.
  • -O Esta opción detecta el sistema operativo que usa el objetivo, no es exacto pero es muy aproximado a lo real.
  • 192.168.1.1 Dirección IP del equipo que será escaneado, generalmente esta dirección está asignada a la puerta de enlace, o gateway, también conocido popularmente como el módem.
El resultado es el siguiente:

Starting Nmap 5.00 ( http://nmap.org ) at 2011-11-19 18:11 PET
Interesting ports on 192.168.1.1:
Not shown: 1988 closed ports
PORT      STATE         SERVICE
21/tcp    open          ftp
23/tcp    open          telnet
80/tcp    open          http
443/tcp   open          https
1723/tcp  open          pptp
67/udp    open|filtered dhcps
68/udp    open|filtered dhcpc
123/udp   open|filtered ntp
161/udp   open|filtered snmp
520/udp   open|filtered route
1900/udp  open|filtered upnp
49152/udp open|filtered unknown
MAC Address: 00:0E:50:EE:D1:DC (Thomson Telecom Belgium)
Device type: broadband router
Running: Thomson embedded
OS details: Thomson ST 536i ADSL modem
Network Distance: 1 hop

OS detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 123.83 seconds

La interpretación de esto aunque no lo parezca es muy simple, la primera línea indica cuando se inició el escaneo, la segunda muestra la IP del equipo, la tercera el núemro de puertos cerrados (no es importante), luego se ve lo siguiente:
  • El puerto 21/tcp abierto con el servicio de ftp (servidor de archivos presente) para transferir archivos al modem/router.
  • Puerto 23/tcp abierto con el servicio telnet (acceso telnet) para la administración remota telnet.
  • Puerto 80/tcp abierto con el servicio http (servidor web presente) muy común para configurar el modem/router.
  • Puerto 443/tco abierto https (web seguro).
  • Puerto 1723/tcp abierto para uso de VPN's.
  • Puertos 67/udp y 68/udp del servidor dhcp que asigna las direcciones ip a los hosts de la red LAN.
  • Puerto 123/udp abierto con el servicio ntp, el servidor de tiempo.
  • Puerto 161/udp abierto con el servicio snmp para el protocolo de administración de red.
  • Puerto 520/udp abierto con el protocolo de información de rutas.
  • Puerto 1900/udp abierto con el servicio de descubrimiento de dispositivos UPnP.
  • Puerto 49152/udp abierto con una aplicación desconocida que posiblemente sea una conexión de Internet.
Seguidamente se ve la dirección MAC del dispositivo 00:0E:50:EE:D1:DC y en base a ésta el fabricante del dispositivo de red del equipo (Thomson Telecom Belgium). Luego se muestra el tipo de dispositivo que es un router broadband como ya lo sabíamos. Luego está ejecutándose el sistema operativo: Thomson embedded para routers, como algunos detalles tenemos Thomson ST 536i ADSL modem, que indica que efectivamente es un sistema operativo para un modem ADSL, también nos indica que el dispositivo está a un salto (1 hop) y finalmente se indica el número de dispositivos escaneados y el tiempo que duró el escaneo.

Escaneo de un grupo de equipos

Escaneo de un rango de equipos en nuestra red LAN:

#nmap -sU -sT -O 192.168.1.1-254

Como se puede ver ahora se elegimos un rango de direcciones IP de la 192.168.1.1 hasta la 192.168.1.254 pero se denota de otra forma más simple como se ve en la parte superior, el resultado mostrará el módem/router, la computadora que estamos usando y otras computadoras o dispositivos en la red, esto es muy útil al momento de detectar intrusos en nuestra red estén conectados de manera inalámbrica o cableada, o tal vez otra medio de conexión. Es decir podemos explorar nuestra red, detectar y conocer los dispositivos en ella.

El resultado puede no caber en la pantalla ya que puede ser muy extenso sin embargo podemos guardar la salida en un archivo de la siguiente forma:

#nmap -sU -sT -O 192.168.1.1-254 > archivo_nmap.txt

Y luego para visualizar el archivo usamos cualquier herramienta para editar o ver archivos de texto, como less:

#less archivo_nmap.txt

Escaneo con ARP

Este tipo de escaneo se hace usando el protocolo ARP, es un escaneo más rápido y se usa generalmente cuando un escaneo normal, como los mostrados en los ejemplos anteriores, no da los resultados esperados, ya sea porque las computadoras de destino usan un firewall o algún método de protección.

#nmap -PR 192.168.1.0/24

# Nmap 5.21 scan initiated Thu Jul 17 10:15:32 2014 as: nmap -PR -oN scan123.txt 192.168.1.0/24 
Nmap scan report for 192.168.1.1
Host is up (0.019s latency).
Not shown: 996 closed ports
PORT     STATE SERVICE
21/tcp   open  ftp
23/tcp   open  telnet
80/tcp   open  http
5431/tcp open  park-agent
MAC Address: 98:F5:37:1E:19:51 (Unknown)

Nmap scan report for 192.168.1.35
Host is up (0.0097s latency).
Not shown: 992 filtered ports
PORT      STATE SERVICE
135/tcp   open  msrpc
139/tcp   open  netbios-ssn
445/tcp   open  microsoft-ds
554/tcp   open  rtsp
2869/tcp  open  unknown
5357/tcp  open  unknown
10243/tcp open  unknown
49155/tcp open  unknown
MAC Address: 28:E3:47:86:B9:0A (Unknown)

Nmap scan report for 192.168.1.43
Host is up (0.033s latency).
Not shown: 990 closed ports
PORT      STATE SERVICE
135/tcp   open  msrpc
139/tcp   open  netbios-ssn
445/tcp   open  microsoft-ds
6881/tcp  open  bittorrent-tracker
49152/tcp open  unknown
49153/tcp open  unknown
49154/tcp open  unknown
49156/tcp open  unknown
49157/tcp open  unknown
49158/tcp open  unknown
MAC Address: 70:1A:04:F7:D8:BA (Liteon Tech)

# Nmap done at Thu Jul 17 10:16:13 2014 -- 256 IP addresses (5 hosts up) scanned in 40.69 seconds

Escaneo Ping

Este tipo de escaneo no hace más que mostrar las computadoras o dispositivos que están en línea (online), se recomienda ejecutarlo dos veces para poder tener un resultado más completo. Este escaneo es muy rápido y práctico.

# nmap -sP 192.168.1.0/24

# Nmap 5.21 scan initiated Thu Jul 17 10:25:52 2014 as: nmap -sP -oN scan1234.txt 192.168.1.0/24 
Nmap scan report for 192.168.1.1
Host is up (0.0033s latency).
MAC Address: 98:F5:37:1E:19:51 (Unknown)
Nmap scan report for 192.168.1.35
Host is up (0.0043s latency).
MAC Address: 28:E3:47:86:B9:0A (Unknown)
Nmap scan report for 192.168.1.43
Host is up (0.0065s latency).
MAC Address: 70:1A:04:F7:D8:BA (Liteon Tech)
Nmap scan report for 192.168.1.100
Host is up (0.000064s latency).
MAC Address: 00:26:6C:4A:69:D1 (Inventec)
Nmap scan report for 192.168.1.239
Host is up.

# Nmap done at Thu Jul 17 10:26:27 2014 -- 256 IP addresses (5 hosts up) scanned in 34.73 seconds

Guardar resultados

Una forma de guardar el resultado es redireccionando la salida hacia un archivo de texto. Este método no muestra los resultados en la pantalla pero si los direcciona y guarda en el archivo de texto.

#nmap 192.168.0.1 > escaneo_nmap.txt

Otra forma es usando la opción -oN, que significa guardar la salida (o) en formato normal (N).  Este método si muestra los resultados en la pantalla y también los guarda en el archivo de texto.

#nmap 192.168.0.1 -oN escaneo_nmap.txt

Conclusiones

Nmap es fácil de instalar, fácil de usar y sobre todo es una herramienta muy, pero muy poderosa, para ver las capacidades completas de nmap es necesario conocer todas sus opciones en su manual:

#man nmap

miércoles, 16 de noviembre de 2011

Instalar Ubuntu con VirtualBox en Windows

Hace algún tiempo los usuarios de Windows que querían usar una distribución de Linux en su computadora que ya tenía un sistema operativo Windows tenían que tener una partición libre en su disco duro para tal uso, sin embargo ahora con la virtualización se puede crear una máquina virtual Linux en un entorno Windows. Para ello se necesita tres elementos clave:
  • Un sistema operativo base (en este caso ya lo tenemos, Windows 7).
  • Una plataforma de virtualización (en este caso VirtualBox 4.1.6).
  • La imagen de un nuevo sistema operativo (en este caso Ubuntu 11.10).
Como el primer elemento ya lo tenemos, empezaremos por el segundo, hay que descargar VirtualBox de https://www.virtualbox.org/wiki/Downloads eligiendo "VirtualBox for Windows hosts", la versión es compatible con tecnologías x86/amd64 por lo que no hay que tener cuidado en elegir una versión en especial. La descarga no demora mucho así que hasta que descargue podemos ir al siguiente paso.

El tercer elemento lo obtenemos de http://www.ubuntu.com/download/ubuntu/download eligiendo la tecnología de 32-bit o 64-bit, para pequeñas netbooks es necesaria la de 32-bit pero para la mayoría de computadoras con un procesador de dos o más núcleos es necearia la opción 64-bit.


Descargar toda la imagen de Ubuntu toma un tiempo, así que es necesario tener paciencia y mientras tanto podemos instalar VirtualBox, esta instalación es fácil y solo es necesario resaltar que VirtualBox es gratis ya que no necesitamos comprarlo o ingresar un serial.

Procedemos ahora a crear la máquina virtual para Ubuntu:
  • Abrimos VirtualBox y hacemos click en el ícono New.
  • Ingresamos el nombre "Ubuntu" y hacemos click en next.
  •  Asignamos 1024MB de memoria RAM.
  • Elegimos crear un nuevo disco para el sistema operativo.
  • Asignamos el tipo de disco virtual VDI, las otras opciones son útiles para que el disco sea compatible con otras plataformas de virtualización.
  • Elegimos "Fixed Size" o un tamaño de disco fijo ya que es conveniente por su rapidez.
  • Asignamos el nombre "Ubuntu" al disco virtual. Para las versiones más recientes de Ubuntu Desktop es necesario como mínimo un disco duro de 5GB, así que elijo 6GB por comodidad.
  • Se muestran los datos que hemos ingresados para el disco virtual y luego confirmarlos al hacer click en Create.
  • El proceso de creación toma pocos minutos.
  • Finalmente se muestran los datos de nuestra nueva máquina virtual para luego confirmarlos haciendo click en Create para crearla.
  • En el entorno aparecerá nuestra nueva máquina virtual llamada Ubuntu.

Bueno, ya terminamos de crear la máquina virtual con su respectivo disco virtual, ahora procedemos con la instalación de Ubuntu que resulta algo cada vez más fácil con el transcurso del tiempo y con cada versión nueva, así que procedemos de la siguiente forma:
  • De la imagen anterior hay que seleccionar la máquina vitual Ubuntu en la parte superior hacer click en el engranaje amarillo Settings o Configuración. Aparecerá una ventana con la configuración de la máquina virtual, elegimos Display o Pantalla y elegimos 64 MB la memoria de video ya que es un entorno moderno de escritorio el que vamos a instalar, si instaláramos Ubuntu Server, el uso de la línea de comandos no necesita más de 1MB de memoria de video.
  • En la sección Storage o Almacenamiento se nota el drive de CD/DVD vació o empty, hacemos click en el pequeño CD de la derecha para seleccionar la imagen de un archivo, también se puede seleccionar desde la mima lectora del CD, pero en este caso la imagen de Ubuntu la tenemos en un archivo .iso.
  • Elegimos la imagen de Ubuntu 11.10.
  • Luego en la sección Network o Red elegimos "Bridged Adapter" para que la máquina virtual esté en la misma red que cualquier máquina real.
  • Elegimos la opción Install Ubuntu o Instalar Ubuntu.

  • El sistema operativo realiza algunas configuraciones, esto puede tomar un buen tiempo.


  • Elegimos el idioma que tendrá el sistema operativo, es posible cambiarlo una vez instalado.


  • Se verifica si se cumple las condiciones mínimas para la instalación, es preferible no optar por actualizaciones automáticas ya que queremos instalar el sistema rápidamente.


  • Elegimos la segunda opción para hacer una instalación personalizada para poner en práctica detalles que veremos a continuación.

  • La parte en la que los nuevos usuarios tienen muchos problemas es en la partición del disco, seleccionamos el disco donde instalaremos y hacemos click en "New Partition Table" o Nueva Partición.

  • Al crear la nueva partición en el disco aparece el espaco libre en el disco.


  • Seleccionamos el espacio libre y hacemos click en Add o Agregar. Y se agrega 256 MB aproximadamente como memoria virtual (swap) que se usa como resguardo cuando la memoria física (RAM) está llena, con las opciones de la figura.


  • Luego seleccionar el nuevo espacio libre para hacer click en Add o agregar y poner formato a la partición para el sistema operativo, el sistema de archivos será Ext4 usando todo el espacio restante y no olvidar que el punto de montaje es "/", elegir las opciones como se ve en la figura.


  • Una ves realizado las particiones, se procede a la instalación propiamente dicha.


  • La instalación procede mientras se pide ciertos datos como la ubicación geográfica y datos del usuario.


  • Finalmente es tiempo de disfrutar del nuevo Ubuntu!