Rincón Informático

Un rincon para hablar sobre GNU/Linux, seguridad informatica, y mas!!

Archive for the ‘Manuales’ Category

Instalación y configuración de un servidor ssh en Debian

Posted by fortress On febrero - 14 - 2010

Una de las herramientas indispensables para administrar los servidores es a través de SSH (Secure SHell). Pero antes, un poco de teoría.

Definición

“SSH (Secure SHell) es el nombre de un protocolo y del programa que lo implementa, y sirve para acceder a máquinas remotas a través de una red. Permite manejar por completo la maquina mediante un intérprete de comandos, y también puede redirigir el tráfico de X para poder ejecutar programas gráficos si tenemos un Servidor X (en sistemas Unix y Windows) corriendo.

Además de la conexión a otros dispositivos, SSH nos permite copiar datos de forma segura (tanto ficheros sueltos como simular sesiones FTP cifradas), gestionar claves RSA para no escribir claves al conectar a los dispositivos y pasar los datos de cualquier otra aplicación por un canal seguro tunelizado mediante SSH” (Wikipedia).

Funcionamiento

El inicia la conexión hacia un puerto predeterminado del servidor, en este caso el puerto reservado número 22. Establecida la conexión TCP los extremos se envían, en texto plano, sus identificadores de versión, para ver si la comunicación es posible entre ellos. De ser compatibles entre sí cambian a un modo de transferencia binaria durante el cual se identifican los interlocutores y se negocian los protocolos de cifrado y firma que se usarán.

Esta negociación de protocolos se lleva a cabo de tal manera que la información intercambiada entre y servidor sólo puede ser descifrada por el destinatario legítimo de la misma, y sólo por él. Para ello al principio de esta fase el servidor envía al su clave pública, para que el la use para cifrar todos los mensajes siguientes hacia el servidor, haciéndolos sólo legibles para el propio servidor. Entonces el genera una clave de cifrado para la sesión en curso, que envía cifrada al servidor junto con el algoritmo seleccionado, y a partir de este momento todo el tráfico entre y servidor viaja cifrado y seguro.

Llegados a este punto el y el servidor se han puesto de acuerdo en un cierto algoritmo de cifrado, han acordado una clave para su sesión, y el servidor se ha identificado ante el con su clave pública RSA (u opcionalmente DSA, en la versión 2 del protocolo). Pero aún falta que el se identifique ante el servidor, que deberá decidir entonces si deja o no acceder al remoto. La identificación del podrá ser mediante pareja de usuario y contraseña, rhost, rhost más identificación de máquina mediante clave RSA o simplemente mediante claves RSA o DSA.

De todos los mecanismos sólo nos interesan el primero y el último. En el primero, el servidor nos dará acceso siempre y cuando la pareja de usuario y contraseña introducida por el sean los de un usuario válido en el sistema operativo del servidor, salvo restricciones adicionales. En la identificación por claves el dispone, al igual que el servidor, de su propia pareja de claves, que envía al servidor durante la identificación. Si el servidor confía en el usuario cuya clave ha recibido, entonces le dará permiso de acceso.

A grandes rasgos el mecanismo de conexión y de identificación del protocolo SSH es sencillo, aunque conviene destacar un par de aspectos relevantes de cara al uso y configuración de los programas relacionados:

  • Las conexiones las inicia siempre el hacia el puerto TCP número 22 del servidor.
  • Las versiones de los protocolos soportados por y servidor deben coincidir, o la conexión no se llevará a cabo.
  • El servidor siempre necesita disponer de una pareja de claves, puesto que usa la clave pública para establecer la conexión segura con el . El tipo de clave tiene que estar soportado en el .
  • El y el servidor deben tener algún algoritmo de cifrado en común, o la conexión no se establecerá.
  • Dependiendo de los mecanismos de identificación soportados por ambas partes, o exigidos por el servidor, la identificación podrá o no fallar.
  • Aún cuando haya un mecanismo de identificación soportado por ambas partes, el deberá proporcionar credenciales válidas al servidor, bien sea una pareja de usuario y contraseña, bien una clave pública.

Al margen de todo lo anterior, el servidor del protocolo SSH, sshd podrá implementar restricciones adicionales de acceso, así como el propio sistema operativo donde ejecuta. Por ejemplo, no es infrecuente que sshd esté compilado con soporte de TCP-wrappers, que esté configurado para aceptar o rechazar el acceso a determinados usuarios o máquinas , o simplemente que algún firewall intermedio no permita establecer la conexión.

Instalación y configuración inicial

1.-Abrir una terminal como root y escribir:

# Apt-get install openssh-server

2.-Cuando se termina de instalar viene con una configuración por default que debemos cambiar para tener una mejor seguridad para esto nos vamos al archivo /etc/ssh/sshd_config

# Vim /etc/ssh/sshd_config

El archivo es algo extenso solo se mencionaran las secciones que son de gran importancia:

El servicio SSH por default trabaja sobre el puerto 22 pero se puede cambiar:

Port 22 ## PUERTO POR DEFAULT

El parámetro ListenAddress especifica las direcciones de las interfaces de donde se van a recibir peticiones OJO con esta sección si vamos a accesar desde una red externa como la casa entonces dejarlo como esta sino pues hay que especificar la red:

ListenAddress 0.0.0.0 ## IP por Default para acceder desde cualquier red

Esta es la sección critica a mi manera de ver porque indicamos si el usuario ROOT puede acceder vía ssh yo en lo personal lo deshabilito y entro con un usuario del sistema diferente a root

PermitRootLogin no

También podemos especificar si se va a ejecutar aplicaciones graficas mediante SSH por ejemplo podemos usar VLC a través de SSH por si no son muy dados a usar comandos yo lo dejo como esta:

X11Forwarding no

Otra opción es permitir el acceso a ciertos usuarios de la siguiente manera:

AllowUsers tusuario, miotrousuario, uncolado

En fin son muchas las opciones que trae el archivo seria bueno que le echaran un vistazo y modifiquen lo que mejor crean ustedes que es para su servidor pero siempre pensando en la seguridad y los riesgos que conlleva hacer una mala configuración.

Por último reiniciamos el servicio:

# /etc/init.d/ssh restart

NOTA: Si están detrás de un firewall tienen que abrir el puerto que han especificado pero si están en DMZ pues les recomiendo que pongan reglas IPTABLE por seguridad.

Ahora a hacer un test desde un usando el terminal:

# Ssh usuario@midominio

Cuando se logueen verán lo siguiente:

Cuando se loguea

También se pueden conectar desde un Windows utilizando la Putty

Loguearse usando Putty

Mas info sobre configuración: Aquí

Fuente: Aquí

Descargar el Putty: Aqui

Google dorks: Hacking usando Google

Posted by fortress On febrero - 12 - 2010

Podríamos definir Google Dorks como búsquedas avanzadas mediante el uso de operadores complejos que google pone a nuestra disposición, mediante el uso de estas facilidades podemos ahorrarnos el trabajo de buscar vulnerabilidades y dejar que google nos muestra las que encontró y tiene indexadas.

Advertencias, estos datos solo se proveen con fines educativos, el mal uso de los mismos es pura responsabilidad de cada uno.

Vamos con unos ejemplos

Dorks para búsqueda de shells

safe-mode: off (not secure) drwxrwxrwx c99shell
inurl:c99.php
inurl:c99.php uid=0(root)
root c99.php
“Captain Crunch Security Team” inurl:c99
download c99.php
download c99.php
download c99.php
inurl:c99.php
inurl:c99.php
allinurl: c99.php
inurl:c99.php
allinurl: c99.php
inurl:”/c99.php”
allinurl: c99.php
inurl:c99.php
inurl:”c99.php” c99shell
inurl:c99.php uid=0(root)
c99shell powered by admin
c99shell powered by admin
inurl:”/c99.php”
inurl:c99.php
inurl:c99.php
inurl:c99.php

Dorks para hacking de contraseñas

Filetype: htpasswd htpasswd

Intitle:”Index of” “.htpasswd” -intitle:”dist” - -htpasswd.c

index.of.private (algo privado)

Intitle:index.of master.passwd

inurlasslist.txt (Para encontrar listas de passwords)

intitle:”Index of..etc” passwd

intitle:admin intitle:login

Incorrect syntax near” (SQL script error)

intitle:”the page cannot be found” inetmgr (debilidad en IIS4)

intitle:index.of ws_ftp.ini

A supplied argument is not a valid PostgreSQL result” (possible debilidad SQL)

_vti_pvt password intitle:index.of (Frontpage)

inurl:backup intitle:index.of inurl:admin

Index of /backup”

index.of.password

index.of.winnt

En este archivo podrás encontrar más ejemplos de google dorks: Dorks

En esta web podrás encontrar más recursos –> AQUI

Fuente

Instalación y configuración de un scanner de rootkits: rkhunter

Posted by fortress On febrero - 11 - 2010

El día de hoy vamos a proceder a instalar una sencilla pero potente para mantener nuestro equipo o servidor a salvo de rootkits.

Primero un poquito de teoría ¿que es un rootkit? según la Wikipedia “Un rootkit es una , o grupo de ellas que tiene como finalidad esconderse a sí misma y esconder otros programas, procesos, archivos, directorios, claves de registro, y puertos, que permiten al intruso mantener el acceso a un sistema, para remotamente comandar acciones o extraer información sensible. Existen rootkits para una amplia variedad de sistemas operativos, como GNU/Linux, Solaris o Microsoft Windows.

Ahora vamos a instalar y configurar rkhunter que es probablemente la más completa para detectar rootkits

# apt-get install rkhunter

Para realizar un escaneo de nuestro sistema:

# rkhunter -c

Para actualizar la base de datos de rkhunter:

# rkhunter – -update

Los logs los podemos encontrar en /var/log/rkhunter.log donde podremos ver con mas calma el resultado del scaneo.

Fuente 1

Fuente 2

Usando una imagen ISO como repositorio en Debian

Posted by jhonber On enero - 8 - 2010

Es una pregunta que ya me había hecho hace tiempo, si era posible usar una imagen iso como repositorio y no tener que estar usando los CD’s/DVD’s  (Algo muchas veces molesto, más si se trata de CD’s).

Pues bueno las ventajas que presenta usar las imágenes iso son bastante claras, ya que no tendremos la necesidad de estar insertando y sacando los CD’s/DVD’s de la unidad, a demás de ahorrarnos unos cuantos CD’s/DVD’s.

Preparando lo necesario

- Necesitamos un directorio por cada CD’s/DVD’s. Podríamos crear una directorio llamado ‘repositorio‘ en /media que contenga a los demás.

# mkdir  /media/repositorio

Ahora dentro de ‘repositorio’ creamos el resto de carpetas donde serán montadas las imágenes iso.

# mkdir  /media/repositorio/[CD1 o DVD1]

# mkdir  /media/repositorio/[CD2 o DVD2]

# mkdir  /media/repositorio/[CDn o DVDn]

En mi caso los directorios quedarían así:

# ls  /media/repositorio

cd1 cd2  cd3  cd4  cd5  cd6  cd7  cd8

- Debemos conocer la ubicación de las imágenes iso (La ubicación realmente no importa).

En mi caso: /media/repositorio-isos

Modificando el archivo fstab

#vim  /etc/fstab

Al final del archivo añadimos los siguiente:

/media/RUTA/IMAGEN1.iso  /media/repositorio/[CD1 o DVD1]  iso9660  loop,user,auto  0  0

Para cada imagen debe haber una línea como esta indicando respectivamente la imagen iso y el directorio donde será montada.

Ejemplo:

#Repositorio imagenes-iso
/media/repositorio-isos/debian-testing-i386-CD-1.iso  /media/repositorio/cd1  iso9660 loop,user,auto  0  0
/media/repositorio-isos/debian-testing-i386-CD-2.iso  /media/repositorio/cd2  iso9660 loop,user,auto  0  0
/media/repositorio-isos/debian-testing-i386-CD-3.iso  /media/repositorio/cd3  iso9660 loop,user,auto  0  0
/media/repositorio-isos/debian-testing-i386-CD-4.iso  /media/repositorio/cd4  iso9660 loop,user,auto  0  0
/media/repositorio-isos/debian-testing-i386-CD-5.iso  /media/repositorio/cd5  iso9660 loop,user,auto  0  0
/media/repositorio-isos/debian-testing-i386-CD-6.iso  /media/repositorio/cd6  iso9660 loop,user,auto  0  0
/media/repositorio-isos/debian-testing-i386-CD-7.iso  /media/repositorio/cd7  iso9660 loop,user,auto  0  0
/media/repositorio-isos/debian-testing-i386-CD-8.iso  /media/repositorio/cd8  iso9660 loop,user,auto  0  0

Modificando el archivo sources.list

Ahora para que apt use las imágenes como repositorio debemos indicar en este archivo donde esta montado cada CD’s/DVD’s de nuestro repositorio.

# vim  /etc/apt/sources.list

Agregamos lo siguiente:

deb file:///media/repositorio/[CD1 o DVD1] squeeze main contrib

Cambia ‘squeeze’ por la versión de Debian que uses.

Ejemplo:

#Repositorio imagenes-iso
deb file:///media/repositorio/cd1 squeeze main contrib
deb file:///media/repositorio/cd2 squeeze main contrib
deb file:///media/repositorio/cd3 squeeze main contrib
deb file:///media/repositorio/cd4 squeeze main contrib
deb file:///media/repositorio/cd5 squeeze main contrib
deb file:///media/repositorio/cd6 squeeze main contrib
deb file:///media/repositorio/cd7 squeeze main contrib
deb file:///media/repositorio/cd8 squeeze main contrib
##END

Si no lo has hecho debes montar las imágenes:

# mount  -a

Y por último:

# aptitude  update

A mí me han aparecido varios errores como este, después de actualizar los repositorios:

Err file: squeeze/contrib Packages
Fichero no encontrado

Pero esto no perjudica el funcionamiento correcto de el repositorio.

Compartir este repositorio para toda la red local

Este punto ofrece una utilidad enorme, imagínate actualizar todos los computadores de una red local a través de un solo computador que actúe como servidor del repositorio. Pues es muy sencillo:

Supongamos que con los pasos de arriba configuramos el repositorio y que ese computador será el servidor.

Ip: 192.168.1.1

Nota: Debemos tener configurado un servidor .

En el servidor

Aquí crearemos enlaces simbólicos a cada uno de los directorios en donde se encuentran montadas las imágenes iso. Esto lo hacemos en el directorio /var/www de .

#cd  /var/www

Cambias si es necesario la ruta del directorio por la tuya.

/var/www# ln  -s  /media/repositorio/cd1

/var/www# ln  -s  /media/repositorio/cd2

Recuerda un enlace por cada directorio.

En los clientes

En cada uno de los clientes debemos modificar el archivo /etc/fstab

#vim  /etc/fstab

Agregamos por cada enlace simbólico una línea como esta:

deb http://192.168.1.1/[NOMBRE_ENLACE] squeeze main contrib

Como puedes ver accedemos al repositorio con la ip del servidor y el nombre del enlace simbólico que apunta a cada una de los directorios donde montamos las imágenes.

Ejemplo

deb http://192.168.1.1/cd1 squeeze main contrib
deb http://192.168.1.1/cd2 squeeze main contrib
deb http://192.168.1.1/cd3 squeeze main contrib

Actualizamos repositorios y listo ;) . Hasta la próxima!!

Como corregir inconsistencias en el sistema de archivos con FSCK

Posted by jhonber On diciembre - 26 - 2009

Qué es FSCK (En Wikipedia):

FSCK (file system check o bien file system consistency check) es una utilidad de los sistemas Unix y similares, como Linux y AIX que se utiliza ante alguna inconsistencia del sistema de archivos para corregir los posibles errores en el sistema.

FSCK se ejecuta automáticamente al arranque del sistema, si se encuentra alguna anomalía en el mismo; pero además de eso puede ser usado manualmente.

Modo de empleo:

fsck  [-opciones]  /dev/hdXXX  (o sdXXX)

Opciones:

-a confirmar automáticamente. No recomendado.
-c comprobar bloques en el disco.
-f forzar la verificación aunque todo parezca normal.
-v (verbose) despliega más información.
-r Modo interactivo. Espera nuestra respuesta.
-y asume yes de respuesta.

El siguiente argumento para el comando FSCK es la partición donde queremos hacer la verificación. (Depende de nuestro disco lo haremos con  /dev/hdXXX  o  con /dev/sdXXX ).

Nota: Se recomienda que la partición donde hagamos la verificación se encuentre DESMONTADA.

Un ejemplo de uso puede ser (Con el cual el comando comprobaría los bloques en el disco y asumiría ‘yes’ como respuesta):

# fsck  -c  -y  /dev/hdXXX

La salida de dicho comando serán algunos avisos sobre si se han encontrado errores en el sistema de archivos y si se han corregido correctamente.

Automatizar FSCK para que se ejecute al arranque del sistema

Esto se puede conseguir editando el archivo /etc/fstab

# vim  /etc/fstab

Archivo fstab:

##################################
# /etc/fstab: static file system information.
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
/dev/hda6           /                           ext3        defaults           0                1
/dev/hda2           /home                  ext3        defaults           0                2
/dev/hda5          none                     swap      sw                     0                0
/dev/hdb            /media/cdrom0  udf,iso9660 user,noauto    0               0
/dev/hda7          /media/hda7       ext3         defaults             0                2
##################################

Debajo de <pass> es donde debemos colocar el argumento que hará que FSCK verifique cada X arranques del sistema dicha partición, Los valores posibles son “0″  “1″ o “2″ El sistema de fichero raíz / debe tener “1″ si deseamos activarlo, y el resto de particiones deben tener “2″ para el mismo propósito. Los sistemas de ficheros que no necesitan comprobación como swap o el CD-ROM Tendrán el valor de “0″.

Bueno no esta demás recomendar usar con cuidado este comando (Úsalo bajo tu cuenta y riesgo) ;)

Hasta la próxima y Felices Fiestas para todos !!!

Hace ya varios días mi profesor de bases de datos, dejo en Internet una base de datos para hacer un taller. (Hasta ahí todo normal) Pero cuando descargue el archivo resulta que dicho archivo tenía extensión .mdb (Archivo de access). Lo primero que pensé fue listo debe haber algo con lo que se pueda abrir esta cosa en mi Debian. Basto con buscar en Google y en 5 minutos encontré esta aplicación MDBTools gracias a la cual pude terminar mi tarea XD.

MDBTools es una que nos permite exportar datos y esquemas desde archivos producidos por MS Access 97/2000/XP/2003.

mdbtools1 MDBTools: herramienta para visualizar bases de datos access en GNU/Linux

Para instalar:

# aptitude install mdbtools

Si prefieres descargar las fuentes acá.

El modo de uso es muy sencillo, simplemente abres el archivo .mdb y te mostrará algo como la imagen de arriba (Muestra las tablas de la base de datos).

Definition: Permite ver la definición de la tabla (Nombres de campos, tipo de datos, tamaño y las keys).

Data: Muestra las tablas con los datos.

Export: Con esta opción podemos exportar los datos de las tablas a un archivo de texto.

Adicional a estas opciones hay otra que nos permite hacer Queries. (A la cual accedemos dando click en el icono de los dos engranajes)

mdbtools2 MDBTools: herramienta para visualizar bases de datos access en GNU/Linux

Con respecto a esta última opción tengo para decir que no me han funcionado consultas más estructuradas, solamente las simples.

No es más espero que sea de utilidad para alguien . Hasta la próxima!!.

Configurando nuestro editor vim

Posted by jhonber On octubre - 13 - 2009

Bueno quizás ya conoces el editor vim, pero por si acaso mira acá y un manual de referencia acá . Bueno pero el propósito de esta entrada no es aprender a usar este editor, sino configurarlo de tal forma que tengamos un ambiente más agradable y útil a la hora de o editar nuestros archivos.

Existen scripts también llamados plugins para vim los cuales nos hacen más fácil la vida. Hay un gran número de scripts y con funcionalidades muy diversas; en esta ocasión voy a mencionar algunos y miraremos como instalarlos.

Antes de comenzar

Instalamos el editor, y aunque ya puede estar pre-instalado sería bueno actualizarlo

# aptitude install vim

Empezamos a configurar algunos aspectos:

vamos a editar el archivo de configuración de vim

# vim /etc/vim/vimrc

Des comentamos las siguientes líneas (es decir le quitamos ” del principio de la línea:

“syntax on

“set number

Con la primera habilitamos los colores en la sintaxis y con la segunda enumeramos las líneas. Cierras y guardas los cambios.

<esc>:wq

Si probamos (los colores dependerán de el fondo de tu terminal y el esquema de color por defecto)
vim3 Configurando nuestro editor vim

Como instalar esquemas de colores

Solo descargamos el esquema puede ser de acá y para instalarlo lo copiamos a la carpeta “colors”

# cp /ruta/esquema.vim   /usr/share/vim/vim72/colors

El nombre de la carpeta “vim72″ puede cambiar de acuerdo a la versión de vim

Para usar el esquema abrimos el editor y colocamos:

<esc>:colorscheme esquema.vim

Ya sabemos como instalar esquemas de colores ahora vamos a probar algo más interesante.

Pydiction : Tab-complete your Python code

Pydiction nos permite completar código python en vim, cuando presionamos <tab>

vim4 Configurando nuestro editor vim

Para instalarlo descargar y descomprimir, luego editamos de nuevo el archivo “vimrc”

# vim  /etc/vim/vimrc

Y des comentamos las siguientes líneas:

if has(“autocmd”)

filetype plugin indent on

endif

Además le agregamos una línea “let g:pydiction_location =’/ruta/complete-dict’ dentro del paquete que descargamos hay un archivo que se llama “complete-dict” entonces en “pydiction_location” colocamos la ruta completa del archivo en mi caso quedaría así:

if has(“autocmd”)

filetype plugin indent on

let g:pydiction_location =’~/Downloads/pydiction-1.2/complete-dict’

endif

Ahora copiamos “python_pydiction.vim” en ~/.vim/after/ftplugin/

(Nota: si NO existen las carpetas “after” y “ftplugin” las debes crear)

$ cp   ~/ruta/pydiction-1.2/python_pydiction.vim   ~/.vim/after/ftplugin/

Bueno ya con esto tendremos instalado nuestro plugin de completado de código python para vim.

Por último vamos a instalar un plugin para C/C++.

c.vim : C/C++ IDE –  Write and run programs. Insert statements, idioms, comments etc.

Algunas de las características de c.vim son:

- Podemos usar sentencias para editar código C/C++

- Usar fragmentos de código

- y correr nuestros programas

- Inserción de varios tipos de comentarios

- Etc


vim5 Configurando nuestro editor vim

Ejemplos: (La combinación de teclas para este plugin se hacen desde el modo comando, también conocido como modo normal)

- Para insertar el esqueleto de una función

\if

vim6 Configurando nuestro editor vim

- Insertar esqueletos de sentencias

swith: \ss

for: \sf

while: \swh

etc..

- Insertar esqueleto de clase

\+c

- Guardar y

\rc

- Ejecutar

\rr

Ver más ejemplos acá

Para instalarlo copiamos cvim.zip a ~/.vim y luego lo descomprimimos allí mismo.

$ cp  /ruta/cvim.zip  ~/.vim

$ unzip cvim.zip

Si deseas buscar más plugin acá.

Bueno espero que les allá sido de utilidad!! todo esto también funciona para el gvim Hasta la próxima!!.