Mostrando las entradas con la etiqueta linux. Mostrar todas las entradas
Mostrando las entradas con la etiqueta linux. Mostrar todas las entradas

miércoles, 26 de septiembre de 2007

Detectar sniffers en nuestra red

Muy buen articulo sobre como detectar sniffers en nuestra red, con herramientas para linux o para windows

lunes, 20 de agosto de 2007

Nociones de Debian

reenviado de http://bulma.net/body.phtml?nIdNoticia=1609


Una vez mas Bulma nos da la receta infadible para varios temas

¿Porqué existen tres versiones de Debian: stable, testing, unstable?

La estable (stable) es la versión que se ha liberado oficialmente como versión Debian y de las cuales existen CDs oficiales. Las otras dos versiones son los pasos previos para lograr una versión estable. Es decir, los paquetes nuevos de software empiezan por la inestable (unstable), si no tienen errores graves en 10 días, pasan a testing automáticamente. El proceso de hacer una estable es "manual", se decide una fecha de "congelación", donde no se añaden nuevos paquetes a testing y hay que solucionar los bugs de los existentes. Una vez que se solucionan todos, en Debian se decide o no pasarlos a estable y así liberar una versión nueva.

¿Qué son esos nombres como Potato, Woody, Sarge, Sid?

Actualmente (enero de 2003) la versión estable es Woody, que fue oficialmente lanzada hace unos pocos meses. La testing, que tenía el nombre Woody antes que ésta se convierta en stable, ahora se llama Sarge. La inestable dicen que siempre se llamará Sid, y que en realidad significa "System in Development". Pero puede ser sólo una leyenda urbana. :-)

¿Y de donde sacan los nombres?

Se empezaron a usar en la época que Bruce Perens era líder de Debian. Bruce trabajó en Pixar, la empresa de animación de Disney y que hizo la película "Toy Story".

Tengo Internet, ¿que paquetes debo instalar del CD?

Los mínimos para que te funcione la red, luego ya podrás instalar y actualizar todo desde los servidores de Debian.

¿Cómo se actualiza Debian?

En muy pocas palabras, con un "apt-get update" para actualizar la lista de paquetes y versiones, y con "apt-get dist-upgrade" para resolver dependencias y actualizar todos los paquetes instalados.

¿Cómo se instala el paquete xyz desde la red?

apt-get install xyz

¿Donde se especifican las listas de servidores para consultar y bajar paquetes con el apt-get?

En el fichero /etc/apt/sources.list.

¿Cuales es la configuración básica del sources.list para actualizar con el apt-get?

deb http://http.us.debian.org/debian stable main contrib non-free
deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
deb http://security.debian.org stable/updates main contrib non-free
deb-src http://http.us.debian.org/debian stable main contrib non-free
deb-src http://non-us.debian.org/debian-non-US stable non-US


¿Esos son los únicos servidores?

No, hay muchos, elige los que mejor te vayan. Por ejemplo los de Holanda suelen ir muy bien desde España (es sólo un ejemplo...). Basta cambiar los ".us." del nombre de los servidores por ".nl.":

deb http://http.nl.debian.org/debian stable main contrib non-free
deb-src http://http.nl.debian.org/debian stable main contrib non-free


¿Donde está la lista completa de mirrors de Debian?

En http://www.debian.org/mirror/list

¿Cómo puedo comprobar que servidores me van más rápidos?

Con el netselect. Mira este artículo en Bulma.

¿Donde se especifica la versión de Debian (stable, testing o unstable) que uso?

En el tercer argumento de cada línea en el sources.list.

¿Que diferencia hay entre especificar, por ejemplo, stable o Woody?

Mientras no se cambie la versión estable, no hay ninguna. Sin embargo cuando, por ejemplo, Sarge pase a estable, los que tenían especificado "stable" se actualizarán a la nueva, Sarge. En cambio, si tenías especificado Woody, seguirás con ella hasta el final de los días, o hasta que cambies el sources.list.

¿Que versión debo usar?

En principio la versión "pública y oficial" es la estable, pero todos sabemos que como Debian libera una estable con muy poca frecuencia, a los pocos meses se queda "anticuada". Ésto hace que mucha gente esté usando testing o unstable. Si vas a usarlo en un servidor de producción, lo mejor es la estable. Pero si tienes un poco más de "márgen", te consideras un "iniciado" en Linux y te interesa la última versión de todos los paquetes, puedes usar la testing, suele ir muy bien (en bulma.net usamos testing desde hace tiempo), salvo esporádicos problemas que se pueden solucionar fácilmente si tienes los conocimientos técnicos necesarios. Si por otro lado, te gusta vivir al borde del peligro y probar paquetes y versiones nuevas (y así ayudar a Debian reportando bugs), usa la unstable.

¿Cómo paso de la versión estable a la testing?

Modificando el sources.list. Hay que cambiar el tercer argumento (stable) por testing. Luego hay que hacer un apt-get update y apt-get dist-upgrade.

¿Cómo paso de la versión testing a la unstable?

Haciendo lo mismo que la anterior, pero en este caso habrá que especificar unstable.

He cambiado el tercer parametro de stable a unstable y he hecho apt-get update y apt-get upgrade. Sin embargo no ha actualizado todos los paquetes.

Que en este caso siempre hay que usar
apt-get dist-upgrade
ya que resuelve mejor las dependencias.

¿Cómo paso de testing a stable?

Uep!!! Alerta, estás intentando hacer un downgrade, aunque posible, puede ser muy complicado y hasta imposible si se han cambiado los ficheros de configuración. Quizás es mejor hacer una reinstalación desde CD, pero si realmente insistes, haz un man 5 apt_preferences y lee con mucha atención antes de intentarlo. No daré la solución, porque si te falla algo me echarás la culpa :-)-

¿Cómo paso de unstable a stable?

Ver pregunta anterior.

¿Y puedo pasar de unstable a testing?

Si tu sistema está funcionando correctamente (pero no quieres tantas actualizaciones diarias o más seguridad en el futuro), mi recomendación es: cambia el sources.list y especifica testing donde había unstable. A partir de ahora paciencia, a los pocos días tu sistema ya empezará a estar sincronizado con testing, a medida que los paquetes de testing se hayan actualizado con los que había en unstable. A las pocas semanas, a menos que haya un cambio muy gordo en Debian como el que está pasando ahora mismo con el gcc y las glibc, tu sistema ya "será" un testing.

¿Es posible mezclar paquetes de distintas ramas? ¿Es decir usar paquetes de unstable en testing, o de testing en stable?

Si, es posible. Mira este artículo y/o este otro.

¿Cuál es la mejor forma de reportar un bug?

Instala el paquete reportbug y ejecuta reportbug nombre_de_paquete.

¿Cómo se hace para reconfigurar el paquete xyz?

dpkg-reconfigure xyz

¿Cómo se hace para reinstalar el paquete xyz?

Normalmente no hace falta, a menos que ta hayas cargado algún programa esencial. Si es así basta con un

apt-get install --reinstall xyz

No quiero hacer una actualización completa, sólo instalar las últimas versiones de los paquetes abc y zyz. ¿Cómo lo hago?

apt-get install abc xyz

¿Cómo hago para ver todos los ficheros que se instalaron con el paquete xyz?

dpkg -L xyz

¿Cómo hago para saber a que paquete pertenece un fichero?

dpkg -S fichero

¿Cómo hago para buscar paquetes Debian usando palabras claves?

apt-cache search palabra1 palabra2...

¿Y para ver la descripción más detallada del paquete xyz?

apt-cache show xyz
o
apt-cache showpkg xyz

¿Cómo hago para desinstalar el paquete xyz?

apt-get remove xyz
o
dpkg -r xyz

¿Me quedan los ficheros de configuración del paquete xyz aunque lo desinstale?

Si, esos ficheros no son borrados.

Si vuelvo a reinstalar un paquete, ¿se mantienen sus ficheros de configuración anteriores?

Si.

Pero yo también quiero borrar esos ficheros de configuración. ¿Cómo hago?

apt-get remove --purge xyz
(es aquivalente un dpkg -P xyz).

¿Cómo reconfiguro la zona horaria?

tzconfig

¿Cómo hago para cambiar los locales del sistema?

dpkg-reconfigure locales

En modo consola no me reconoce el teclado español. ¿Cómo hago para cambiar la configuración del teclado?

dpkg-reconfigure console-data

Aún así no me reconoce el teclado en el KDE ¿Cómo lo hago?

La forma más sencilla es ir al panel de control de KDE, en el módulo "Regional & Accesibility::Keyboard Layout". Allí hay que habilitar el "Enable Keyboard Layouts" (arriba de todo) y luego seleccionar el teclado que corresponda.

¿Cómo hago para bajar el código fuente de los paquetes?

apt-get source xyz
Te bajará los fuentes, compuestos normalmente de un .tgz, .diff y un dsc, en el directorio actual de trabajo y te creará un directorio (xyz-versión con todo preparado para compilar.

¿Cómo compilo el código fuente?

Dentro del directorio que te ha generado el apt-get-source haces:
fakeroot dpkg-buildpackage
El fakeroot te permite compilar y generar los .deb sin necesidad de ser root. Al finalizar verás que en el directorio inmediato superior uno o varios .deb. Ya podrás hacer un dpkg -i

Cuando intento compilar el paquete xyz me indica que no puede compilar porque faltan instalar otros paquetes, ¿cómo lo soluciono?

Hay que instalar los paquetes necesarios para poder compilar un paquete:
apt-get build-depxyz

Me pasé a Sid, pero al intentar el dist-upgrade me dice que no puede instalar BBBB porque tiene conflictos con ficheros del paquete AAAA. ¿Cómo lo soluciono?

Lo más probable es que el paquete AAAA ya no exista y no haya sido seleccionado para removerlo (hey, ¡que ésto es Sid! :-). Por lo tanto, si estás seguro que el paquete AAAA no es esencial, puedes removerlo con el dpkg:

dpkg -r AAAA

He actualizado la Sid y las fuentes me salen de cualquier manera, a pesar que tengo bien configurado el fichero /etc/X11/XftConfig. ¿Qué pasa?

Que Debian ha pasado a las Xft2 y se configura en otro fichero. Mira éste artículo para más detalles e instrucciones.

¿Cómo arreglo las fuentes del Mozilla que me salen tan grandes y feas cuando lo uso desde el KDE?

Mira éste artículo.

¿Cómo es que hay gente que tiene paquetes instalados que no están en Debian? ¿Cómo los consigo?

Seguramente no son paquetes oficiales, porque están en pruebas todavía o porque violan las políticas de Debian. Mira éste artículo.

¿Cómo hago para borrar los ficheros de configuración (purge) que han quedado de paquetes que ya he removido?

Aquí va la solución en una línea:
dpkg -P `COLUMNS=200 dpkg -l |grep ^rc |awk '{print $2}' `

Por hoy suficiente :-), ya iré actualizando la lista cuando vea preguntas interesantes que sirvan a los novatos.

lunes, 23 de abril de 2007

Excelente articulo sobre shells scripts en linux

Linux Shell Scripting Tutorial v1.05r3
A Beginner's handbook

Copyright © 1999-2002 by Vivek G. Gite <vivek@nixcraft.com>

origen http://freeos.com/guides/lsst/index.html

nixCraft Logo :: Next generation *nix services
(Formally know as vivek-tech.com)

Linux Shell Scripting Tutorial - A Beginner's handbook

Table of Contents

Chapter 1: Quick Introduction to Linux
What Linux is?
Who developed the Linux?
How to get Linux?
How to Install Linux
Where I can use Linux?
What Kernel Is?
What is Linux Shell?
How to use Shell
What is Shell Script ?
Why to Write Shell Script ?
More on Shell...
Chapter 2: Getting started with Shell Programming
How to write shell script
Variables in shell
How to define User defined variables (UDV)
Rules for Naming variable name (Both UDV and System Variable)
How to print or access value of UDV (User defined variables)
echo Command
Shell Arithmetic
More about Quotes
Exit Status
The read Statement
Wild cards (Filename Shorthand or meta Characters)
More commands on one command line
Command Line Processing
Why Command Line arguments required
Redirection of Standard output/input i.e. Input - Output redirection
Pipes
Filter
What is Processes
Why Process required
Linux Command(s) Related with Process
Chapter 3: Shells (bash) structured Language Constructs
Decision making in shell script ( i.e. if command)
test command or [ expr ]
if...else...fi
Nested ifs
Multilevel if-then-else
Loops in Shell Scripts
for loop
Nested for loop
while loop
The case Statement
How to de-bug the shell script?
Chapter 4: Advanced Shell Scripting Commands
/dev/null - to send unwanted output of program
Local and Global Shell variable (export command)
Conditional execution i.e. && and ||
I/O Redirection and file descriptors
Functions
User Interface and dialog utility-Part I
User Interface and dialog utility-Part II
Message Box (msgbox) using dialog utility
Confirmation Box (yesno box) using dialog utility
Input (inputbox) using dialog utility
User Interface using dialog Utility - Putting it all together
trap command
The shift Command
getopts command
Chapter 5: Essential Utilities for Power User
Preparing for Quick Tour of essential utilities
Selecting portion of a file using cut utility
Putting lines together using paste utility
The join utility
Translating range of characters using tr utility
Data manipulation using awk utility
sed utility - Editing file without using editor
Removing duplicate lines from text database file using uniq utility
Finding matching pattern using grep utility
Chapter 6: Learning expressions with ex
Getting started with ex
Printing text on-screen
Deleting lines
Coping lines
Searching the words
Find and Replace (Substituting regular expression)
Replacing word with confirmation from user
Finding words
Using range of characters in regular expressions
Using & as Special replacement character
Converting lowercase character to uppercase
Chapter 7: awk Revisited
Getting Starting with awk
Predefined variables of awk
Doing arithmetic with awk
User Defined variables in awk
Use of printf statement
Use of Format Specification Code
if condition in awk
Loops in awk
Real life examples in awk
awk miscellaneous
sed - Quick Introduction
Redirecting the output of sed command
How to write sed scripts?
More examples of sed
Chapter 8: Examples of Shell Scripts
Logic Development:
Shell script to print given numbers sum of all digit
Shell script to print contains of file from given line number to next given number of lines
Shell script to say Good morning/Afternoon/Evening as you log in to system
Shell script to find whether entered year is Leap or not
Sort the given five number in ascending order (use of array)
Command line (args) handling:
Adding 2 nos. suppiled as command line args
Calculating average of given numbers on command line args
Finding out biggest number from given three nos suppiled as command line args
Shell script to implement getopts statement.
Basic math Calculator (case statement)
Loops using while & for loop:
Print nos. as 5,4,3,2,1 using while loop
Printing the patterns using for loop.
Arithmetic in shell scripting:
Performing real number calculation in shell script
Converting decimal number to hexadecimal number
Calculating factorial of given number
File handling:
Shell script to determine whether given file exist or not.
Screen handling/echo command with escape sequence code:
Shell script to print "Hello World" message, in Bold, Blink effect, and in different colors like red, brown etc.
Background process implementation:
Digital clock using shell script
User interface and Functions in shell script:
Shell script to implements menu based system.
System Administration:
Getting more information about your working environment through shell script
Shell script to gathered useful system information such as CPU, disks, Ram and your environment etc.
Shell script to add DNS Entery to BIND Database with default Nameservers, Mail Servers (MX) and host
Integrating awk script with shell script:
Script to convert file names from UPPERCASE to lowercase file names or vice versa.
Chapter 9: Other Resources
Appendix - A : Linux File Server Tutorial (LFST) version b0.1 Rev. 2
Appendix - B : Linux Command Reference (LCR)
About the author
About this Document

lunes, 12 de marzo de 2007

Recuperar el password de root

Recuperar el password de root

Si en algún momento olvidáramos el password de root, disponemos de 3 métodos más o menos sencillos para poder recuperarlos. Evidentemente, estos métodos sólo nos funcionarán si el equipo no ha estado protejido adecuadamente para evitar que se pueda realizar cualquiera de estas tareas.

Primer método

Válido siempre y cuando en el fichero /etc/lilo.conf no hayamos especificado las opciones restricted y password. Estas opciones impiden pasar parámetros al kernel a menos que introduzcamos la contraseña definida en el mismo fichero de configuración.

  1. Reiniciaremos el sistema y arrancaremos pasándole el parámetro single al kernel; para ello arrancaremos una imagen y añadiremos el parámetro, por ejemplo:

    LILO: linux single

    El sistema arrancará y nos saldrá el prompt de root sin hacer ningún login.

  2. Ahora hemos de montar la raíz del sistema de ficheros en modo lectura/escritura; lo haremos así:

    # mount -n -o remount,rw /
    # mount /proc
    # mount -a -t nonfs

  3. Ejecutamos el comando passwd y nos preguntará la nueva contraseña que queremos asignarle a root. Elegimos una de la que nos vayamos a acordar y ya está.

Segundo método

Válido siempre y cuando en el fichero /etc/lilo.conf no hayamos especificado las opciones restricted y password. El escenario es el mismo que en el método anterior, pero esta vez especificaremos como parámetro a lilo que el kernel se ejecute como un proceso único. Este proceso único es una shell desde la que cambiaremos la contraseña de root. Así, pasamos a lilo el parámetro init=/bin/bash del siguiente modo:
LILO: linux init=/bin/bash
Una vez haya arrancado procederemos como en el método anterior a partir del paso 2.

Tercer método

Lo usaremos en el caso de que lilo no nos permita el paso de parámetros a menos que introduzcamos la contraseña definida en el fichero /etc/lilo.conf, y tampoco nos acordemos de esta. La solución está en arrancar una imagen del kernel desde un disquet, o arrancar desde un Live-CD como Knoppix, por ejemplo.

Al arrancar desde disquet, nos lleva a la prompt de root, sólo que la raiz es el propio diskette o su imagen en memoria. Lo que hemos de hacer es montar la verdadera raiz (/dev/hda1 o la que sea) para acceder al fichero de contraseñas. Procederemos del siguiente modo:

  1. Montamos la verdadera raíz del sistema del siguiente modo:
    # mount -t ext3 /dev/hdaX /mnt (donde /dev/hdaX sería la partición que alberga la raíz)

  2. Accedemos al fichero de contraseñas:
    # vim /mnt/etc/shadow
    Usaremos vim o cualquier otro editor en modo texto.
    Editaremos el fichero /mnt/etc/shadow en el caso de que el sistema use la suite shadow password; en caso contrario haremos: vim /mnt/etc/passwd)

  3. Eliminamos la password de root:
    Llegados a este punto nos encontramos que el fichero contiene una serie de líneas con varios campos separados por el carácter : El segundo campo corresponde a la contraseña encriptada, así que localizamos la línea correspondiente a root y borramos el segundo campo. Por ejemplo:

    Tendremos una línea parecida a esta (el campo en negrita es la contraseña de root encriptada): root:$1$/u17Vfn0$M1gYZbOCJoLGW9Y2CrEld1:12543:0:99999:7:::

    Y la sustituímos por esta. Es decir, eliminamos la clave: root::12543:0:99999:7:::

La próxima vez que hagamos login como root, el sistema nos solicitará una nueva contraseña. Ponemos una de la que nos acordemos y listo.

Hay que tener cuidado al trastear este tipo de ficheros pues si los inutilizamos podemos tener problemas. Una opción es hacer una copia de seguridad antes de modificarlo:
# cp /mnt/etc/shadow /mnt/etc/shadow.old
Incluso podríamos crear un nuevo administrador sin contraseña para volver a entrar de forma normal en el sistema y cambiar el password del root.

Consejos sobre seguridad

Como podeis ver, sirve de bien poco tener una buena contraseña si no tomamos las precauciones necesarias. Por ello, estas son unas de las formas básicas de proteger nuestras contraseñas y evitar que cualquier usuario pueda loguearse como root:

  1. Poner una contraseña en la BIOS o deshabilitar el arranque desde el disquet, para que nadie pueda arrancar un kernel propio y comprometer nuestro sistema obteniendo privilegios extra.

  2. Quitar el permiso de lectura y escritura a todo el mundo menos a root de los ficheros /etc/shadow y /etc/passwd. De este modo sólo root podrá ver y modificar el contenido de los ficheros que guardan la información de los usuarios (en ellos se encuentran encriptadas las contraseñas; la de root también).

  3. Restringir el paso de parámetros al kernel en el arranque utilizando las directivas restricted y password en el fichero /etc/lilo.conf. Con estas directivas conseguimos que para pasar parámetros en el arranque se pida contraseña.

  4. La contraseña que especificamos en el fichero /etc/lilo.conf se guardan en claro. Por este motivo hemos de quitar los permisos de lectura y escritura sobre ese fichero y dejarlos sólo a root. Así nadie podrá leer la contraseña.

Excelete ayuda sacada de http://www.adslayuda.com/Linux-root_passwd.html
Tutorial elaborado por Nacx para ADSLAyuda.com

domingo, 11 de marzo de 2007

LOGGEAR Y CAPTURAR PANTALLAS DE TEXTO EN LINUX


LOGGEAR Y CAPTURAR PANTALLAS DE TEXTO EN LINUX



La orden "script" sirve para guardar todo lo que se escribe y se visualiza
en pantalla en un fichero. Escribe "script fichero" para empezar a grabar
el registro, y CNTRL+D cuando quieras dejar de grabar. Luego puedes mandar
el fichero a la impresora, o verlo en otra consola, o lo que quieras.

Un saludo.

--




¿Porqué no ocuparse nada de conocer las herramientas que tiene el
Linux o intentar hacer las cosas de una manera más Unix?

Para capturar pantallas hay 2 comandos importantes:

* Script

Este es un comando de terminal, que está presente en todos los
Unixes desde el BSD 3 (man script).

Lo que hace es grabar en un fichero toda la salida en pantalla.
Graba tambien los comandos ANSI para presentar los colores (una
captura de pantalla del Midnight Commander o del Mutt queda tal
cual).

Luego la salida la puedes ver con un simple: cat typescript
(aunque claro, muestra todas las páginas de información una tras
otra con lo que las verás pasar delante tuya toda la sesión y
acabarás viendo sólo el final).

O si no, la salida la puedes enviar a `lpr' y ver lo que sale. No
hago apuestas de lo que puede pasar con los colores o los
carácteres unicode. O:-)

Para usarlo:
$ script [fichero]
Para terminar:
CTRL-D

* xwd
Luego para hacer capturas de pantalla en X Window. Existe el
comando `xwd' (que es el que usa el GIMP para hacer capturas).

Todo dios es libre de usar el XV, el Kcapture, o sacarle fotos a
la pantalla, pero es muy aconsejable aprender a usar el `xwd'. Va
a funcionar en cualquier Linux que encuentres (viene con X
Window) y creo que tambien en cualquier otro Unix.

$ xwd > test.xwd
(captura la ventana donde pincheis con la mirilla)
$ xwd -frame > test.xwd
(captura tambien los adornos de la ventana)
$ xwd -root -screen > test.xwd
(captura toda la pantalla)

Estos ficheros en formato `xwd' pueden ser usados (y convertidos)
por casi cualquier utilidad de Linux (GIMP, ImageMagik,...)
Bueno, menos el famoso XV, que los muestra con los colores mal.

Para ver estas imágenes teneis el `xwud':
$ xwud -in test.xwd

Ya como truco final, yo utilizo este comando para hacer capturas
de pantalla de una sesión en la que trabajo:

$ (sleep 40s ; xwd -root -screen > test.xwd) &

Ejecuto esto, y se que tengo 40 segundos hasta que me haga la
captura. Arranco los programas que quiero, activo el menú del
gestor de venanas, y preparo todo. Espero a que suenen los
pitidos, y hecho!!

Bueno, lo que me gusta del Linux es que es sencillo, potente, y
increiblemente versátil.