(Manual de Linux Recopilacion_by Gandhi_)

74
Manual de Linux Recopilación 1. Configurar un hotspot rápidamente sobre Gnu/Linux Para configurar este hotspot nos hemos decantado por chillispot por su sencillez en la instalación y por lo poco puntilloso que es a la hora de pedir requisitos de software y configuración de la red. (De hardware pocos, que es Linux). Si disponemos de un AP y queremos que los clientes que accedan a él sean recibidos por una Web de presentación en la que ofrezcamos los servicios de nuestro NODO o información variada, podemos utilizar este software sin mayor problema, si necesitamos mas opciones podemos optar por alguno mas completo como nocat. Cualquier petición http es redirigida por el firewall contra un script que presenta una Web de bienvenida y toda la información que queramos. Una de las principales opciones de este software es el acceso a la red. Se le puede configurar para permitir libre acceso a ciertos servicios y a ciertas IPS. Así como no permitir accesos no deseados a otras IPS... De esta forma, podemos dejar libre acceso a desconocidos a la Web de nuestro grupo o al servidor local pero no al resto de servicios (Internet, ftp,....) El sistema controla en todo momento los accesos y presenta una pantalla con el estado del cliente logeado o no logeado. Chillispot se encuentra en chillispot.org es open source y se mantiene bajo licencia GPL . Tal y como informa en su web, es un portal captivo para control de accesos wireless a una red LAN. Soportando WPA. Tiene binarios creados para Redhat, Fedora, Debian y OpenWRT (AP). Su configuración es sencilla y permite la instalación de todo el sistema sin problemas en un mismo equipo. A continuación explicaremos su instalación sobre una maquina con Debian .Para mas info, la web oficial donde aparece la documentación completa y detallada. LOS REQUISITOS: Tal y como aparece en su Web principal, estos son los requisitos: # Internet connection # Wireless LAN Access Point # ChilliSpot software for your PC # Radius server # Web server

Transcript of (Manual de Linux Recopilacion_by Gandhi_)

Page 1: (Manual de Linux Recopilacion_by Gandhi_)

Manual de Linux Recopilación

1. Configurar un hotspot rápidamente sobre Gnu/Linu x

Para configurar este hotspot nos hemos decantado por chillispot por su sencillez en la

instalación y por lo poco puntilloso que es a la hora de pedir requisito s de software y

configuración de la red. (De hardware pocos, que es Linux).

Si disponemos de un AP y queremos que los clientes que accedan a él sean recibidos por una

Web de presentación en la que ofrezcamos los servicios de nuestro NODO o información

variada, podemos utilizar este software sin mayor problema, si necesitamos mas opciones

podemos optar por alguno mas completo como nocat.

Cualquier petición http es redirigida por el firewall contra un script que presenta una Web de

bienvenida y toda la información que queramos.

Una de las principales opciones de este software es el acceso a la red.

Se le puede configurar para permitir libre acceso a ciertos servicios y a ciertas IPS. Así como

no permitir accesos no deseados a otras IPS... De esta forma, podemos dejar libre acceso a

desconocidos a la Web de nuestro grupo o al servidor local pero no al resto de servicios

(Internet, ftp,....) El sistema controla en todo momento los accesos y presenta una pantalla con

el estado del cliente logeado o no logeado.

Chillispot se encuentra en chillispot.org es open source y se mantiene bajo licencia GPL .

Tal y como informa en su web, es un portal captivo para control de accesos wireless a una red

LAN. Soportando WPA. Tiene binarios creados para Redhat, Fedora, Debian y OpenWRT (AP).

Su configuración es sencilla y permite la instalación de todo el sistema sin problemas en un

mismo equipo.

A continuación explicaremos su instalación sobre una maquina con Debian .Para mas info, la

web oficial donde aparece la documentación completa y detallada.

LOS REQUISITOS:

Tal y como aparece en su Web principal, estos son los requisitos:

# Internet connection

# Wireless LAN Access Point

# ChilliSpot software for your PC

# Radius server

# Web server

Page 2: (Manual de Linux Recopilacion_by Gandhi_)

La conexión a Internet la vamos a limitar solo para nosotros, los propietarios del nodo y demás

familia, pues recordamos que entre otras cosas , "regalao se murió" :) y seria ilegal ceder la

conexión de Internet alegremente. ... por lo tanto, si queremos captar los equipos que accedan

a nuestro NODO y presentarles una Web informativa con toda la info... ok :)

- Necesitamos un S.O. Linux, en este caso, se ha instalado sobre Debian GNU/LINUX.

- Un servidor radius, en este caso, sobre freeradius, tal y como aparece en al documentación

(es GPL y aparece en las sources debian)

- Un servidor web. Claramente APACHE. Necesita soporte para SSL para autenticación con el

servidor radius. Podemos bien instalar el modulo ssl al apache o instalar el apache-ssl.

(haremos lo segundo)

- Un punto de acceso wireless. (en este caso, el nodo funciona con un DLINK900AP+ a la

intemperie) La configuración en general podria ser la siguiente:

En nuestro caso, todos los servidores se encuentran sobre la misma maquina, pudiendo estar

separados (seria lo mejor por temas de seguridad, pero no le pidamos peras al árbol... :))

EL S.O. , CONFIGURACIONES VARIAS

Deberemos tener un Debian instalado. (Más info.)

descargamos el .deb de chillispot en la siguiente dirección

http://www.chillispot.org/download.html --(el .deb).

Nos marcamos alegremente un "apt-get install freeradius apache-ssl" configurando el apache

con la configuración mínima contestando todo lo bien que queramos a las preguntas

necesarias para las ssl (lugar, nombre, mail....) que aparecerán posteriormente en la info. del

certificado al acceder al nodo.

Page 3: (Manual de Linux Recopilacion_by Gandhi_)

Instalamos también el chillispot con "dpkg -i chillispot_VERSION.deb" los archivos de chillispot

se localizan en /etc/chilli.conf y en /usr/share/doc/chillispot/

Enredaremos en /etc/chilli.conf y en /usr/share/doc/chillispot/firewall.iptables y

/usr/share/doc/chillispot/hotspotlogin.cgi

lo primero, vamos a hacerlo fácil, copiemos hotspotlogin.cgi a nuestro sitio de cgi,

/usr/lib/cgi.bin/

Podemos también editar el firewall.iptables a nuestro gusto con reglas propias (en este caso no

lo tocaremos). Lo que si debemos hacer es procurar que las reglas de firewall.iptables se

carguen al arranque

Editamos el /etc/network/options con ip_forward=yes

reiniciamos la red con "/etc/init.d/networking restart"

Y de esta parte, una cosa importante, tener configurado en el kernel el soporte para tun/tap

para levantar el interface tun0 en este caso. p-t-p.

Tal como aparece en la configuración realizaremos lo siguiente:

mkdir /dev/net

mknod /dev/net/tun c 10 200 para crear el dispositivo

y ahora : añadir la siguiente línea a /etc/modules.conf

"alias char-major-10-200 tun"

luego "depmod -a " para actualizar cambios.

ahora, ya tenemos configurado el equipo.

FREERADIUS

Vamos a retocar la configuración del freeradius en /etc/freeradius/:

modificamos clients.conf y cambiamos la clave de secret=...123 por una propia como por

ejemplo "linuxpower":)(no está de mas aunque sea en local :))

Modificamos users para añadir los usuarios, para no dar muchas vueltas, copiemos y

modifiquemos el usuario que sugiere chillispot , el usuario steve. En el pondremos nuestro

propio nombre de usuario, quedando algo así como

Page 4: (Manual de Linux Recopilacion_by Gandhi_)

clipse Auth-Type := Local, User-Password == "atitelovoyadecir"

Service-Type = Framed-User,

Framed-Protocol = PPP,

Framed-IP-Address = 172.16.3.33,

Framed-IP-Netmask = 255.255.255.0,

Framed-Routing = Broadcast-Listen,

Framed-Filter-Id = "std.ppp",

Framed-MTU = 1500,

Framed-Compression = Van-Jacobsen-TCP-IP

Como se puede observar, basta con modificar user y password, para mas usuarios, copiamos

lo mismo y cambiamos la IP-address

CHILLISPOT

ahora enredamos con el /usr/lib/cgi-bin/hotspotlogin.cgi para personalizarlo un poquillo entre

otras cosas en él , observaremos partes de código como las siguientes :

if (!($ENV{HTTPS} =~ /^on$/)) { print "Content-type: text/html\n\n meta http-equiv="\"Pragma\""

content="\"no-cache\"">

h1 style="" center="">Acceso a hotspot erróneo. , pirate zaragatas /h1> p>

NO ACEPTA ACCESOS NO AUTORIZADOS. NODO SANTOÑA/p> center> Se debe usar

encriptación. /center> "; exit (0); }

Es html puro y duro, así que podemos modificarlo a nuestro gusto con la web que queramos,

bien pegándolo en este archivo o incluyéndolo desde otro archivo aparte con el tocho de html

(en este caso, que es poco, lo dejamos)

Ahora, lo que nos queda, editar /etc/chilli.conf para que case con la clave que hemos cambiado

por si las moscas en el servidor radius, en este archivo se encuentra en el apartado de la

configuración del servidor radius "radiussecret " donde pondremos la clave del freeradius

"radiussecret linuxpower" :P .............................. y mas o menos ya estaría el asunto, :) ,

relanzamos todos los chismes por si las moscas /etc/init.d/freeradius restart (al loro con los

mensaje que igual hace falta añadirle un -x para recargarlo)

/etc/init.d/chilli restart y si queréis :) el apache también :),

si asociamos cualquier cliente al AP y le decimos que obtenga la IP automáticamente

mediante dhcp, las peticiones a cualquier web nos llevarían a la web de presentación que

hemos metido en hotspotlogin.cgi (recordad que hotspotlogin almacena varias Webs y solo una

Page 5: (Manual de Linux Recopilacion_by Gandhi_)

es la de presentación, el resto es para mensajes de error y aceptación) por defecto, las dns

serán las configuradas en el servidor. y una de las cosas que tiene de bueno (que también lo

tiene el resto de portales captivos como el nocat :) ) es el poder dejar acceso a ciertas paginas

sin necesidad de estar logeado, para el resto de cosas , se puede editar la configuración del

firewall.iptables.

si modificamos /etc/chilli.conf , al final del archivo :

TAG: uamallowed

# Comma separated list of domain names, IP addresses or network segments

# the client can access without first authenticating.

# Normally you do not need to uncomment this tag.

#uamallowed www.chillispot.org,10.11.12.0/24 uamallowed

www.cantabriawireless.net,www.linuca.org,www.delpuerto.com

Dejamos acceso libre a estas Webs. Y dejaríamos a grandes rasgos configurado el sistema

para cualquier petición.

Terminando...

Uno de los grandes problemas del wifi, como siempre, la seguridad. Este sistema solo nos

cubre de accesos no deseados, no de ser escaneados ni evitar el sniffing. Tampoco de un

man-in-the-middle y que nos vuelvan locos y se hagan de las passwords (recordad que el login

y pass de acceso si viaja encriptado). Deberemos entonces estar al loro de aceptar el

certificado correctamente y de si aparecen nuevos certificados de algún malo malísimo :) . Para

asegurarlo mejor, se podria configurar un proxy seguro con un squid y ssl de forma que todas

las peticiones al web estén encriptadas y procurar utilizar puertos seguros para el resto... pero

eso es cantar de otro día :)

Habrá que esperar a que alguien lo intente para confirmar que está "correcto" el documento,

recordad que la información sin errores :) está en la web oficial en ingles.

salu2 y suerte :)

2. Manual de Ubuntu

Ubuntu Linux: Ubuntu es un sistema operativo del tipo "Desktop", basado en el núcleo Linux y

en algunas herramientas del Proyecto GNU. La estructura técnica del sistema está basada en

el Proyecto Debían, pero el ideario está inspirado en los principios de la corriente Ubuntu,

palabra africana que significa "humanidad hacia los demás", un movimiento humanista

encabezado por el obispo Desmond Tutu, Premio Novel de la Paz 1984. Económicamente el

proyecto se sostiene con aportaciones de la empresa Canonical del sudafricano Mark

Shuttleworth. Presenta por defecto el escritorio GNOME y la última versión disponible es la

Page 6: (Manual de Linux Recopilacion_by Gandhi_)

5.10 la que puedes bajar de su pagina Web http://www.ubuntulinux.org/. Lo que resalta de esta

distrito es su simplicidad, facilidad de uso y su gran comunidad, por todos estos factores muy

recomendable para novatos tanto como para aquellos con más experiencia en el mundo Linux.

Hablemos un poco de la interfaz gráfica. Linux a diferencia de Windows es un sistema basado

en texto, donde el método principal de entrada de datos por parte del usuario es su teclado, en

cambio Windows es un sistema gráfico en el cual el dispositivo que nos permitirá manejar el

sistema en su mayor proporción es el mouse, los GUI de Linux (Interfaces gráficas de Linux)

tales como KDE, GNOME, Xfce, y tantas otras son un Agregado de software es decir "un

programa que se ejecuta" que nos permite usar el sistema en modo gráfico, hoy en día todas

las distribuciones Linux vienen incorporadas con una GUI, de todos modos la interfaz de texto

(IUT) - siglas en español - son mas ágiles que las gráficas ya que es una capa menos de

software entre el usuario y su computadora, a la mayoría de los usuarios de Windows les

parecerá un poco difícil al principio manejarse con IUT pero con el tiempo podrán avanzar y

aprender numerosos comandos, de todos modos hoy en día cada vez son mejores las GUI

haciendo que Linux se vuelva tan fácil como Windows.

Actualmente el GUI mas usado es KDE y GNOME por sus prestaciones, facilidad de uso y

aplicaciones disponibles, acá tienes breve una explicación de como surge GNOME.

El proyecto GNOME (GNU Network Object Model Environment) surge en agosto de 1997 como

proyecto liderado por Miguel de Icaza para crear un entorno de escritorio completamente libre

para sistemas operativos libres, en especial para GNU/Linux. Desde el principio, el objetivo

principal de GNOME ha sido proporcionar un conjunto de aplicaciones amigables y un

escritorio fácil de utilizar.

En esos momentos existía otro proyecto anterior con los mismos objetivos, pero con diferente

medios: KDE. Los primeros desarrolladores de GNOME criticaban a este proyecto por basarse

en la biblioteca de controles gráficos Qt por no ser compatible con los fundamentos del

software libre. Años más tarde los problemas de licencia de Qt se han resuelto y estas críticas

han cesado. Sin embargo, los dos proyectos siguen rumbos tecnológicos distintos y se hacen

una competencia amigable.

Como con la mayoría de los programas GNU, GNOME ha sido diseñado para ejecutarse en

toda la gama de sistemas operativos de tipo Unix con X Window, y especialmente pensado

para GNU/Linux. Desde sus inicios se ha utilizado la biblioteca de controles gráficos GTK,

originalmente desarrollada para el programa The GIMP.

A medida que el proyecto ha ido progresando en los últimos años, los objetivos del mismo se

Page 7: (Manual de Linux Recopilacion_by Gandhi_)

han extendido para tratar una serie de problemas en la infraestructura Unix existente.

Actualmente el proyecto evoluciona bajo amparo de la Fundación GNOME.

Fuente: Wikipedia

Extras: Screenshots

Si eres fanático de KDE podes utilizar Kubuntu que es el sistema base Ubuntu + KDE lo podes

bajar de aquí.

¿Qué es y cómo usar aptitude? -Comandos para terminales-

Un sistema operativo sin un conjunto de aplicaciones para el usuario no es nada. Por eso,

vamos a comenzar hablando sobre aplicaciones, paquetes y repositorios.

Los programas se presentan en Ubuntu, y por lo tanto en Debian, la distribución en la que se

basa, en forma de paquetes. Estos paquetes se almacenan en repositorios, una estructura de

directorios con una cierta organización, en los que se almacenan además de los paquetes,

índices con los distintos paquetes disponibles, e información de control para comprobar su

autenticidad y que no estén dañados. Los distintos repositorios a los que tienen acceso los

programas dedicados a la instalación de paquetes se listan en el archivo /etc/apt/sources.list.

• Apt es un gestor de paquetes. Instala, elimina, actualiza y descarga automáticamente

los paquetes que se le indiquen, así como sus dependencias, y opcionalmente,

recomendaciones y sugerencias.

• Aptitude tiene diferencias y similitudes con apt-get. Ambos hacen uso de apt, pero

aptitude tiene mejor reputación que apt-get en actualizaciones complicadas, en que

algunos paquetes entran en conflicto, o se desee actualizar tan sólo una parte del

sistema, para que no queden paquetes con sus dependencias rotas. No es sólo que el

algoritmo de actualización pueda ser mejor o no, sino que con aptitude se trabaja de

otra manera, marcando primero las acciones a realizar y después haciendo la

actualización, lo que permite un gran control.

¿Cual es la gran ventaja de ésto?

Por ejemplo si quieres bajar el Amule e instalarlo tendrías que bajar el source y instalarlo

manualmente

./configure

Make

Make install

Page 8: (Manual de Linux Recopilacion_by Gandhi_)

Aparte de esto tendrás que instalar las dependencias que use dicho programa, en este caso

wxGTK-2.6.1, y hacer lo mismo que hiciste con el amule para instalar, lo que podrías haber

hecho en dos minutos con apt o aptitude lo haces en veinte a mano. La ventaja es el ahorro de

tiempo.

Ventajas de aptitude frente a apt-get:

• La gran ventaja es que aptitude se encarga de instalar todos las dependencias

correspondientes cuando apt solo las recomienda, dependiendo el caso uno puede ser

mejor que el otro.

Entiende de sugerencias y recomendaciones:

• Si instalamos K3B con apt cuando lo ejecutemos nos dirá "que falta el cdrao" y

tendremos que bajarlo por separado en cambio con aptitude se hubiera bajado todo el

paquete completo de dependencias.

Paquetes automáticos, y manuales:

• Si instalamos un programa de edición de audio con Apt el cual posee una gran

cantidad de dependencias que ni siquiera sabremos que están ahí, y luego lo

queremos desinstalar con apt esas dependencias no serán borradas y quedaran en el

disco a pesar de ser huérfanas, en cambio aptitude lleva cuenta de los paquetes

instalados y permite una fácil desinstalación.

Breve manual de uso:

Aptitude install xxx: Instala el paquete, y todas sus dependencias

aptitude remove xxx: Elimina el paquete. Si al eliminar ese paquete, hay otros que ya no son

necesarios, también serán eliminados.

Aptitude purge xxx: lo mismo solo que eliminando también los archivos de configuración

aptitude update: Actualiza la lista de paquetes disponibles, en base a lo que diga

/etc/apt/sources.list

aptitude upgrade: Actualiza el sistema de forma segura

aptitude dist-upgrade: Actualiza el sistema, eliminando y borrando paquetes que sean

Page 9: (Manual de Linux Recopilacion_by Gandhi_)

necesarios. A pesar de que es lo habitual, en ocasiones puede que queramos actualizar sólo

algunos usando 'upgrade'.

Antes de poder instalar programas nuevos lo que necesitas es actualizar sources.list para

agregar nuevos repositorios, para hacer esto tienes que hacer lo siguiente, abrir una terminal

root y coloca:

Primero para hacer un backup de la sources.list

cp /etc/apt/sources.list /etc/apt/sources.list_backup Para abrirla en el editor -Tip: En Kubuntu en vez de gedit utiliza kwrite.

gedit /etc/apt/sources.list

Nota: utilizar repositorios actualizados en vez de los de la guía, acá los podes encontrar.

Una vez abierta busca esta sección:

## Uncomment the following two lines to fetch updated software from the network # deb http://us.archive.ubuntu.com/ubuntu hoary main restricted # deb-src http://us.archive.ubuntu.com/ubuntu hoary main restricted ## Uncomment the following two lines to fetch major bug fix updates produced ## after the final release of the distribution. # deb http://us.archive.ubuntu.com/ubuntu hoary-updates main restricted # deb-src http://us.archive.ubuntu.com/ubuntu hoary-updates main restricted ## Uncomment the following two lines to add software from the 'universe' ## repository. ## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu ## team, and may not be under a free license. Please satisfy yourself as to ## your rights to use the software. Also, please note that software in ## universe WILL NOT receive any review or updates from the Ubuntu security ## team. # deb http://us.archive.ubuntu.com/ubuntu hoary universe # deb-src http://us.archive.ubuntu.com/ubuntu hoary universe

Page 10: (Manual de Linux Recopilacion_by Gandhi_)

# deb http://security.ubuntu.com/ubuntu hoary-security main restricted # deb-src http://security.ubuntu.com/ubuntu hoary-security main restricted # deb http://security.ubuntu.com/ubuntu hoary-security universe # deb-src http://security.ubuntu.com/ubuntu hoary-security universe Después sustitúyela por esta otra:

## Uncomment the following two lines to fetch updated software from the network deb http://us.archive.ubuntu.com/ubuntu hoary main restricted deb-src http://us.archive.ubuntu.com/ubuntu hoary main restricted ## Uncomment the following two lines to fetch major bug fix updates produced ## after the final release of the distribution. deb http://us.archive.ubuntu.com/ubuntu hoary-updates main restricted deb-src http://us.archive.ubuntu.com/ubuntu hoary-updates main restricted ## Uncomment the following two lines to add software from the 'universe' ## repository. ## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu ## team, and may not be under a free license. Please satisfy yourself as to ## your rights to use the software. Also, please note that software in ## universe WILL NOT receive any review or updates from the Ubuntu security ## team. deb http://us.archive.ubuntu.com/ubuntu hoary universe deb-src http://us.archive.ubuntu.com/ubuntu hoary universe deb http://security.ubuntu.com/ubuntu hoary-security main restricted deb-src http://security.ubuntu.com/ubuntu hoary-security main restricted deb http://security.ubuntu.com/ubuntu hoary-security universe deb-src http://security.ubuntu.com/ubuntu hoary-security universe deb http://archive.ubuntu.com/ubuntu hoary multiverse deb-src http://archive.ubuntu.com/ubuntu hoary multiverse

Page 11: (Manual de Linux Recopilacion_by Gandhi_)

¿Cómo actualizar Ubuntu?

aptitude update - Actualiza la lista de paquetes disponibles, en base a lo que diga

/etc/apt/sources.list

aptitude upgrade - Actualiza el sistema de forma segura.

Ahora que tienes actualizados los repositorios podes buscar diferente software para instalar en

tu Ubuntu. Por ejemplo:

Aptitude install amule (Equivalente a emule de Windows)

Aptitude install xmms (Multimedia)

Apitutde install gftp (Cliente Ftp)

Aptitude install k3b (Grabacion CD's)

Si luego quieres remover estos paquetes tienes que hacer aptitude purge "nombre".

Instalación (Mp3, Codecs, Flash pluggin, Java, etc).

Multimedia. Instalación de los codecs para poder reproducir MP3:

aptitude install gstreamer0.8-plugins

aptitude install w32codecs

aptitude install gstreamer0.8-ffmpeg

Para instalar java con el pluggin para firefox pone las siguientes lineas:

apt-get install sun-j2re1.5

java -version

Instalación de plugin de flash para el Firefox:

aptitude install flashplayer-mozilla

Cómo instalar los drivers Nvidia:

Page 12: (Manual de Linux Recopilacion_by Gandhi_)

apt-get install nvidia-glx

apt-get install nvidia-settings

cp /etc/X11/xorg.conf /etc/X11/xorg.conf_backup

nvidia-glx-config enable

gedit /usr/share/applications/NVIDIA-Settings.desktop

en el nuevo archivo pone lo siguiente:

[Desktop Entry]

Name=NVIDIA Settings

Comment=NVIDIA Settings

Exec=nvidia-settings

Icon=

Terminal=false

Type=Application

Categories=Application;System;

Y por ultimo reinicia el GNOME, Te va a pedir loguearse nuevamente y luego para que arrancar

de nuevo tipeas "startx"

/etc/init.d/gdm restart

Para Mejorar el rendimiento edita xorg.conf

gedit /etc/X11/xorg.conf

Busca esta sección

...

Page 13: (Manual de Linux Recopilacion_by Gandhi_)

Section "Device"

Identifier "NVIDIA Corporation NV34M [GeForce FX Go 5200]"

Driver "nvidia"

BusID "PCI:1:0:0"

...

Añade las siguientes lineas debajo

Option "RenderAccel" "true"

Option "NvAGP" "1"

Si quieres instalar más tipos de fuentes acá tienes algunas:

aptitude install xfonts-intl-arabic aptitude install xfonts-intl-asian

aptitude install xfonts-intl-chinese

aptitude install xfonts-intl-chinese-big

aptitude install xfonts-intl-european

aptitude install xfonts-intl-japanese

aptitude install xfonts-intl-japanese-big

aptitude install xfonts-intl-phonetic

aptitude install msttcorefonts

Si queres instalar mas temas de escritorio acá tenes algunos:

aptitude install gnome-themes-extras aptitude install gtk2-engines-cleanice

aptitude install gtk2-engines-clearlooks

Page 14: (Manual de Linux Recopilacion_by Gandhi_)

aptitude install gtk2-engines-geramik

aptitude install gtk2-engines-metal

aptitude install gtk2-engines-qtpixmap

aptitude install gtk2-engines-thingeramik

aptitude install gtk2-engines-wonderland

Para echar un vistazo a las novedades de themes y engines que aparecen para GNOME, la

mejor página es Gnome-look.

Una vez que hayáis instalado los engines, para poder usarlos tienes que ir al Menú 'Sistema'

'Preferencias' 'Tema'.

Una vez actualizado el sistema vamos a configurar nuestro sistema para adaptarlo al equipo

que utilizamos. Lo primero que vamos a hacer es instalar el kernel correspondiente a la

arquitectura de nuestro procesador para obtener un mejor rendimiento. En mi caso, al utilizar

un procesador AMD Athlon, instalaré el paquete linux-k7. Los paquetes correspondientes

según la arquitectura son los siguientes:

linux-386 -> Procesadores 386 (por defecto).

linux-686 -> Pentium Pro/Celeron/Pentium II/Pentium III/Pentium IV.

linux-686-smp -> Pentium Pro/Celeron/Pentium II/Pentium III/Pentium IV con SMP (sistemas

multiprocesador).

linux-k7 -> AMD Duron/Athlon.

linux-k7-smp -> AMD Duron/Athlon con SMP (sistemas multiprocesador). aptitude install

nombre-del-paquete

Aptitude se encargará de instalar todo el software necesario del que depende el paquete

instalado (conocidos como dependencias) y añadir una nueva opción en el gestor de arranque

grub, seleccionada por defecto, Para ver la versión de kernel tipea uname -sr

Page 15: (Manual de Linux Recopilacion_by Gandhi_)

Enlaces útiles:

http://ubuntuguide.org/

http://ubuntuforums.org/showthread.php?t=42550

http://mundogeek.net/archivos/2005/02/22/guia-de-configuracion-de-ubuntu/

http://www.guia-ubuntu.org/hoary/doku.php

Comentarios

Para cualquier duda, observación o sugerencia sobre este documento puedes hacerlo a través

del siguiente enlace:

Foro: Guia básica de Ubuntu Linux

Licencia original del documento

Derechos de Autor © 2005 por Santiago (Paperwork).

Se otorga permiso para copiar, distribuir y/o modificar este documento bajo los términos de la

Licencia de Documentación Libre GNU, Versión 2 o cualquier otra versión posterior publicada

por la Free Software Foundation; con la Sección Invariante "Licencia original del documento".

Una copia de la licencia es proveída en el sitio a través de este enlace: Licencia de

Documentación Libre GNU.

Autor: Santiago (Paperwork)

Colaboración para espaciolinux.com

3. Clonar discos duros con Linux

Cualquiera que haya tenido que instalar un parque de 10 - 100 estaciones de trabajo con

exactamente los mismos sistema operativo y programas se habrá preguntado si hay un modo

mejor - y más rápido - de hacerlo que mover los CDs de caja en caja. Clonar consiste en - una

vez - una estación de trabajo modelo, y después copiarla en todas las demás.

El propósito de este texto es explorar algunos de los muchos modos de clonar la configuración

del disco duro de una estación de trabajo. En el proceso de clonación, utilizaremos las

posibilidades nativas de Linux para producir más o menos el mismo efecto que el bien conocido

Norton Ghost del mundo de Windows.

Page 16: (Manual de Linux Recopilacion_by Gandhi_)

Aunque estaremos lanzando las estaciones de trabajo bajo Linux, el sistema operativo final

bajo el que correrán puede ser o no Linux. Actualmente, empleo este sistema para un parque

de estaciones Windows ME que se tienen que reformatear al menos una vez al año - por

razones evidentes.

Cambio entre discos duros

El modo más viejo de clonar un disco duro requiere dos estaciones de trabajo (A es el modelo,

B es el clon), y otro ordenador C. Sólo C necesita estar bajo Linux.

1. Sacamos los discos duros de las estaciones de trabajo, y se los añadimos a C. Hay que

tener cuidado de dejar el disco duro original de C en la primera posición IDE. Por ejemplo:

IDE bus 0, master => disco duro de C => /dev/hda

IDE bus 0, slave => disco duro de A => /dev/hdb

IDE bus 1, master => disco duro de B => /dev/hdc

Entonces tenemos que copiar los contenidos de /dev/hdb a /dev/hdc. Si son del mismo modelo,

podemos conseguirlo con una copia plana byte a byte:

dd if=/dev/hdb of=/dev/hdc

o incluso:

cp /dev/hdb /dev/hdc

Hay modos más fáciles de hacer la copia, sin embargo, debería estar al tanto de los siguientes

puntos:

• Los discos duros deben ser del mismo modelo exactamente: hay problemas entre

versiones más recientes/viejas del mismo disco duro.

• Puede tener problemas con sectores defectuosos bien en A o en B.

• Usted está copiando también todas las partes vacías del disco A al B; esto puede

tomar algún tiempo y no tiene utilidad para nuestros propósitos.

Este modo puede ser el mejor para la gente que utiliza gestores de arranque como lilo o grub,

pues el sector de arranque se copia junto con todo lo demás.

El segundo modo, ligeramente más complicado, de copiar A en B, consiste en dos pasos:

• Primero, usted tiene que hacerse con la tabla de particiones de B (con fdisk, cfdisk,...)

• Entonces formatea las particiones de B (con mkfs.ext2, mkfs.vfat, mkswap)

Page 17: (Manual de Linux Recopilacion_by Gandhi_)

• Hace la copia efectiva

En este caso, copiar significa montar:

mkdir /mount/A ; mkdir /mount/B

mount /dev/hdb /mount/A

mount /dev/hdc /mount/B

cp -dpR /mount/A/* /mount/B

umount /dev/hdb; umount /dev/hdc

Puede haber un poquito de dolor si hay un montón de estaciones de trabajo para clonar, pero

lleva menos tiempo que una instalación completa... y puede estar seguro de que tienen la

misma configuración.

Importante: si está usando un gestor de arranque como lilo o grub para lanzar una estación de

trabajo Linux, entonces tiene que escribir un fichero de configuración del gestor de arranque

personalizado e instalarlo en el sector de arranque del disco B.

Básicamente, usted necesita decirle al gestor de arranque:

• Que use el disco /dev/hdc para escribir en el sector de arranque; aquí es donde está

actualmente su disco duro clonado.

• Que emplee el disco /dev/hda para lanzarse; aquí es donde estará su disco duro

clonado cuando lo arranque.

¡Tenga cuidado: puede acabar teniendo que usar sus discos de rescate si hace esto mal!

Estando aquí, hágalo. Ya ha sido avisado. Antes de empezar, eche una mirada de cerca a su

/etc/lilo.conf actual o a su /boot/grub/menu.1st, y a sus páginas man.

Alternativamente, si simplemente está arrancando Linux, usted puede:

• copiar los archivos al disco B

• devolver el disco B a la estación de trabajo B

• lanzar la estación de trabajo B desde el diskette de rescate que elaboró para la

estación de trabajo A cuando instaló el sistema

• ejecutar lilo o grub directamente

Este segundo modo puede ser mucho más fácil para gente con menos horas de vuelo en

sistemas Linux. :-)

Page 18: (Manual de Linux Recopilacion_by Gandhi_)

Otra versión de la misma configuración es, si el disco C es suficientemente grande, copiar una

vez desde A a C, y después copiar tantas veces de C a B1, B2, B3, ... Si su instalación IDE

tiene buses suficientes (o está usando SCSI), usted puede copiar 5 discos o más a la vez.

No hace falta decirlo, nosotros usamos esto sólo si no tenemos ninguna red instalada - una

situación bastante poco común en estos tiempos. Sin embargo, la velocidad puede ser

bastante alta dado que estamos trabajando directamente a las velocidades de las interfaces

IDE.

Copiando sobre una red

Copiar sobre ua red consiste en lanzar la estación de trabajo B con un diskette o CD con un

sistema operativo que pueda guiar la red (veamos ahora ... aquí Linux está dentro, Windows

está fuera) y obtener la imagen del disco duro bien directamente de la estación A, o más

habitualmente, de un servidor de archivos C. En nuestros ejemplos, emplearé la estación B

como el ordenador a configurar y supondré que tenemos los archivos imagen de la estación A

directamente copiados a un directorio en el servidor C.

Hay varias "diminutas" distribuciones de Linux-en-un-diskette disponibles ahí fuera. MicroLinux

(muLinux) es mi favorita, pero todas trabajan de modo similar

La idea es arrancar desde el diskette, e instalar la red.

Entonces usted puede bien:

• Tener una imagen completa del disco duro en el servidor, que entonces puede copiar al

disco local con una copia byte a byte. Igual que la copia directa de disco a disco, es

más sencillo de configurar, pero también tiene los mismos avisos.

• Tener el sistema de archivos listo en el servidor, lo que significa que usted tiene que

particionar el disco local, formatear las particiones y copiar recursivamente los archivos

desde la red a su disco.

Un ejemplo del primer modo, sobre NFS:

mkdir /mount/C

mount server:/exported.directory /mount/C

dd if=/mount/C/my.image of=/dev/had

umount server:/exported.directory

Un ejemplo del segundo (suponiendo que ya ha configurado y formateado las particiones en el

disco duro local /dev/hda):

mkdir /mount/B ; mkdir /mount/C

Page 19: (Manual de Linux Recopilacion_by Gandhi_)

mount /dev/hda /mount/B

mount server:/exported.directory /mount/C

cp -dpR /mount/C/* /mount/B

umount server:/exported.directory /mount/C

umount /dev/hda

En el segundo caso, si está usando un gestor de arranque, recuerde instalarlo bien

inmediatamente después de copiar los archivos, o después de reiniciar la estación de trabajo B

desde un diskette de rescate.

Lo bonito con Linux es que, en esencia, copiar una imagen o archivos separados desde una

red es exactamente lo mismo que hacerlo de otro disco duro en su ordenador.

NFS no es naturalmente el único modo de descargar el archivo o archivos desde el servidor C.

Hoy día hay a elegir muchos protocolos adecuados igual que tiene disponibles clientes en su

diskette de arranque. Le sugeriría que usase cualquier servidor que ya tenga instalado en su

red. Algunas posibilidades:

NFS (Network File

System, Sistema

de Archivos en

Red)

Éste es el modo nativo que los sistemas Un*x emplean para compartir

archivos; es robusto y fácil de instalar. Mi favorito.

HTTP (como en

un servidor Web)

Fácil de instalar en el lado del servidor, pero puede ser difícil de encontrar un

cliente adecuado. Usado principalmente con scripts de instalaciones

automatizadas. Usted ya puede tener uno de éstos ejecutándose.

FTP Menos fácil en el lado del servidor, pero muy fácil de encontrar clientes. Usted

ya puede tener uno de éstos ejecutándose.

TFTP (trivial FTP)

Muy fácil de instalar en el servidor, muy fácil de usar el cliente. Muchos

enrutadores (p. ej. Cisco) usan tftp para almacenar sus archivos de

configuración.

SMB (o Netbios)

Sí, éste funciona. Su servidor puede correr bajo, bien Linux + Samba o

cualquier versión de WinXX. Por qué lo querría así usted, es asunto suyo, sin

embargo.

rcp o scp (scp es preferible por seguirdad)

rsync Otro de mis favoritos. Usado normalmente para sincronizar un archivo de

Page 20: (Manual de Linux Recopilacion_by Gandhi_)

copia de seguridad o un servidor web con el servidor principal. Esto puede

resultar en un pequeño agujero de seguridad si el servidor C está accesible

desde fuera de su red, así que tenga cuidado de bloquearlo en su

cortafuegos. Realiza compresión.

Hay una distribución de CD reciente llamada Knoppix que le lanza directamente a un escritorio

KDE. Desde aquí, usted puede usar todas sus herramientas basadas en gráficos regulares si

está más inclinado a eso.

Lanzando desde la red

Una curva final es lanzar la estación de trabajo B directamente desde la red sin usar un disco

de arranque. La idea es decirle a la BIOS que cargue un mínimo driver de red desde una

EPROM. El control es transferido entonces a ese driver, que avanza sobre la red buscando un

servidor DHCP del que pueda obtener una dirección IP y un núcleo imagen. Entonces lanza el

núcleo, que como resultado obtiene el sistema de archivos raíz desde un servidor NFS.

En este momento, la estación de trabajo B está lista y funcionando con un sistema LInux.

Entonces usted puede formatear sus disco duro local y copiar los archivos desde el servidor.

No hace falta decirlo, esto es bastante más complicado de realizar que desde un diskette o CD

Linux. Sin embargo, el proceso puede ser completamente automatizado y es adecuado para

grandes redes con muchas estaciones de trabajo que se deben reconfigurar a menudo.

Otra curva del mismo tipo es olvidarnos completamente de los discos duros locales de las

estaciones de trabajo B1, B2, B3... y hacerles arrancar cada vez desde la red. Los archivos de

los usuarios se almacenan en el servidor de archivos NFS central.

Lecturas posteriores

Otro programa usado por muchos administradores de clusters científicos es dolly. He oído

mucho y bueno de él, pero aún no lo he probado.

Al lanzar desde una red, mire etherbootPXE

Page 21: (Manual de Linux Recopilacion_by Gandhi_)

Autor:Alan Ward

Traducción al español por José Gregorio Del Sol Cobos

4. Iptables y NAT

Un muy buen artículo de Ricardo Galli Granada, publicado hace algún tiempo en

www.bulma.net, que recupero aquí porque pienso que a más de uno le dará una idea de como

proteger su red de forma rápida, sencilla y muy segura, además de hacer NAT y masquerading.

En nuestros ejemplos vamos aprovechar las capacidades de control de conexiones que tienen

las iptables. Primero, hay que tener en cuenta que el forwarding debe estar habilitado:

echo 1 > /proc/sys/net/ipv4/ip_forward

Y también recordar que para cambiar las reglas, primero hay que “borrar” las anteriores, por

ejemplo:

iptables –F

iptables -t nat -F

Ahora veremos ejemplos particulares, en todos los ejemplos suponemos que las direcciones de

nuestra red privada son 192.168.0.0/24 (es decir la máscara es de 24 bits: 255.255.255.0)

Sólo quiero hacer masquerading de una IP asignada dinámicamente

Caso común para un Linux que obtiene direcciones dinámicas de su proveedor de Internet, en

el ejemplo lo doy con la interfaz ippp0, que es la que se usa para RDSI, pero podéis sustituirla

por cualquier interfaz que uséis (eth0, ppp0...).

Además de hacer el NAT, vamos a permitir el tráfico ICMP (de los pings...) ya que está

recomendado que así funcione. Veremos que las última 3 reglas, que no son obligatorias, peri

os las recomiendo, lo que haces es descartar cualquier paquete que no sea de una conexión

previamente establecida.

# Habilito el NAT

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 0.0.0.0/0 \

Page 22: (Manual de Linux Recopilacion_by Gandhi_)

-j MASQUERADE

# Dejo pasar los paquetes ICMP

iptables -A INPUT -i ippp0 -p ICMP -j ACCEPT

# Acepto paquetes de conexiones ya establecidas

iptables -A INPUT -p TCP -m state --state RELATED \

-j ACCEPT

# Rechazamos paquetes de conexiones nuevas

iptables -A INPUT -i ippp0 -m state --state NEW,INVALID -j DROP

# Rechazamos paquetes de forwarding de conexiones no establecidas

iptables -A FORWARD -i ippp0 -m state --state NEW,INVALID -j DROP

Pero también quiero permitir conexiones entrantes SSH y HTTP

Eso es fácil, antes de las últimas reglas “DROP” hay que poner unas que permitan las

conexiones nuevas a esos puertos. Las reglas nos quedan de la siguiente forma:

# Habilito el NAT

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 0.0.0.0/0 \

-j MASQUERADE

# Dejo pasar los paquetes ICMP

iptables -A INPUT -i ippp0 -p ICMP -j ACCEPT

# Permito conexiones al puerto 80 (HTTP)

iptables -A INPUT -i ippp0 -p TCP --dport 80 -m state --state NEW \

-j ACCEPT

# Permito conexiones al puerto 22 (SSH)

iptables -A INPUT -i ippp0 -p TCP --dport 22 -m state --state NEW \

-j ACCEPT

# Acepto paquetes de conexiones ya establecidas

Page 23: (Manual de Linux Recopilacion_by Gandhi_)

iptables -A INPUT -p TCP -m state --state RELATED \

-j ACCEPT

# Rechazamos paquetes de conexiones nuevas

iptables -A INPUT -i ippp0 -m state --state NEW,INVALID -j DROP

# Rechazamos paquetes de forwarding de conexiones no establecidas

iptables -A FORWARD -i ippp0 -m state --state NEW,INVALID -j DROP

Si queréis “abrir” otros puestos, sólo tenéis que agregar esas nuevas reglas.

Tengo dirección IP fija, ¿como lo hago?

Es muy fácil, en vez de usar masquerading, vamos a usar una solución mejor: source NAT.

Sólo hay que cambiar la regla del nat (la primera en los ejemplos anteriores). Si la interfaz que

tiene la IP fija es la eth0, y la IP fija es la 111.111.111.111, nos quedaría:

# Habilito el SNAT

iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 111.111.111.111

# Dejo pasar los paquetes ICMP

iptables -A INPUT -i eth0 -p ICMP -j ACCEPT

# Permito conexiones al puerto 80 (HTTP)

iptables -A INPUT -i eth0 -p TCP --dport 80 -m state --state NEW \

-j ACCEPT

# Permito conexiones al puerto 22 (SSH)

iptables -A INPUT -i eth0 -p TCP --dport 22 -m state --state NEW \

-j ACCEPT

# Acepto paquetes de conexiones ya establecidas

iptables -A INPUT -p TCP -m state --state RELATED \

-j ACCEPT

# Rechazamos paquetes de conexiones nuevas

iptables -A INPUT -i eth0 -m state --state NEW,INVALID -j DROP

# Rechazamos paquetes de forwarding de conexiones no establecidas

iptables -A FORWARD -i eth0 -m state --state NEW,INVALID -j DROP

Vale, pero ahora quiero redireccionar las conexiones a un puerto hacia un ordenador interno de

mi LAN

Page 24: (Manual de Linux Recopilacion_by Gandhi_)

Esto se llama destination NAT es bastante sencillo, sólo hay que poner una regla adicional. Por

ejemplo, si queremos redireccionar las conexiones al puerto 80 hacia el puerto 80 de un

ordenador en la red interna (192.168.0.111).

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT \

--to 192.168.0.111:80

Otro ejemplo sencillo y muy útil, redireccionar el puerto 2022 del ordenador haciendo de NAT o

firewall hacia el puerto 22 (ssh) de un ordenador de la red interna.

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 2022 -j DNAT \

--to 192.168.0.111:22

Voilà, funciona. También podéis leer los Howtos y tutoriales, que están hasta en castellano.

5. Configurar un firewall en Linux con iptables

Muchas son hoy en día las personas que se conectan, de una manera u otra, a Internet. Desde

empresas que operan en la red hasta personas en sus casas que pasan un rato divertido

navegando por sus páginas preferidas.

Pero pocas de estas personas entienden realmente las consecuencias que tiene el abrir sus

sistemas informáticos a Internet, unas consecuencias que no sólo son de carácter benigno e

incluso beneficioso. El bien que obtenemos de Internet tiene un precio: Internet no es un lugar

seguro .

Al igual que en cualquier sociedad, en Internet existen buenas intenciones, ayudas,

compañerismo... pero también existen mentes perversas y llenas de maldad. En Internet

existen personas decididas a hacer daño, pocas, pero es un hecho que existen, y debemos

protegernos de sus acciones, por insignificantes que pensemos que somos.

Es común entre los navegantes más o menos habituales de Internet, que nunca han tenido, o

mejor dicho, creen que nunca han tenido un problema de seguridad en sus sistemas, el pensar

que no es probable que lleguen jamás a recibir uno de estos ataques por el simple hecho de no

poseer nada de interés, de no ser nadie importante. Esto es, claramente, falso . Cualquiera

puede ser presa de un ataque en la Red, cualquiera, por insignificante que se pueda pensar

que uno es.

Es precisamente esa sensación de sentirse a salvo la que hace que sea este tipo de gente el

que tome, por lo general, las menores precauciones, y por ello, al mismo tiempo, que se

conviertan en la presa más apetecible para aquéllos que simplemente desean hacer daño, por

el placer de hacerlo.

Page 25: (Manual de Linux Recopilacion_by Gandhi_)

Como ejemplo, valgan los sorprendentes datos recogidos por mí mismo como usuario de un

proveedor de servicios Internet (ISP) común en España, detectando los intentos de atacar el

puerto TCP 80 (servidor web) de mi ordenador mientras estaba conectado a Internet, puerto

que había dejado abierto intencionadamente (aunque, naturalmente, protegiendo mi servidor

web) para guardar un log de los ataques que se intentaban llevar a cabo. Los datos son los

siguientes:

Fechas: del 19 de Septiembre al 21 de Noviembre de 2001

Promedio de horas de conexión diarias: 1,5 horas.

Intentos de ataque al puerto 80/tcp: 87

Lo cual nos da una idea del peligro que corre un usuario cualquiera de Internet que no tome las

precauciones mínimas, teniendo en cuenta que soy alguien tan insignificante como cualquier

otro en la Red y que, de no ser porque deseaba hacer ese estudio, posiblemente no hubiese

podido detectar dichos ataques, y por ello seguiría considerándome seguro.

Como dato, el 100% de los 87 ataques eran destinados a servidores Microsoft Internet

Information Server o Microsoft Personal Web Server (afortunadamente yo tengo Apache), y se

trataba de intentos de ejecución de scripts malignos, de intentos de ejecución de cgi's

peligrosos y de explotar algún tipo de buffer overflow en parámetros de algunos scripts de

estos servidores.

Por tanto, una vez visto que el peligro existe, es la hora de hablar de qué es un firewall .

Un firewall es, por lo general, un software (puede ser también un equipo hardware dedicado) a

través del cual nos conectamos a una red como Internet, y que sirve como filtro sobre el tráfico

que por él pasa, en ambas direcciones, y que en un momento dado puede rechazar cierto

tráfico en alguna de las direcciones.

Eso quiere decir que, mediante un firewall, podemos detectar el tráfico no deseado hacia

nuestros sistemas, y en general, los posibles ataques de que seamos objeto. De esta manera

podremos aislar nuestros equipos del exterior, permitiendo nuestro uso de Internet de manera

absolutamente normal pero minimizando en lo posible la probabilidad de padecer las

consecuencias de un ataque.

Así pues, ante la pregunta ¿Necesito un firewall? queda ya suficientemente patente que la

respuesta es, sin lugar a ninguna duda, sí.

Este artículo cubrirá la configuración de un típico firewall domést ico , que permita

conectarse a Internet de una manera segura y cerrar los puertos TCP y UDP que nos puedan

causar problemas.

Page 26: (Manual de Linux Recopilacion_by Gandhi_)

¿Qué es iptables?

iptables es la herramienta que nos permite configurar las reglas del sistema de filtrado de

paquetes del kernel de Linux, desde su versión 2.4 (en 2.2 era ipchains). Con esta herramienta,

podremos crearnos un firewall adaptado a nuestras necesidades.

Su funcionamiento es simple: a iptables se le proporcionan unas reglas, especificando cada

una de ellas unas determinadas características que debe cumplir un paquete. Además, se

especifica para esa regla una acción o target. Las reglas tienen un orden, y cuando se recibe o

se envía un paquete, las reglas se recorren en orden hasta que las condiciones que pide una

de ellas se cumplen en el paquete, y la regla se activa realizando sobre el paquete la acción

que le haya sido especificada.

Estas acciones se plasman en los que se denominan targets , que indican lo que se debe hacer

con el paquete. Los más usados son bastante explícitos: ACCEPT, DROP y REJECT, pero

también hay otros que nos permiten funcionalidades añadidas y algunas veces interesantes:

LOG, MIRROR...

En cuanto a los paquetes, el total del sistema de filtrado de paquetes del kernel se divide en

tres tablas, cada una con varias chains a las que puede pertenecer un paquete, de la siguiente

manera.

• filter : Tabla por defecto, para los paquetes que se refieran a nuestra máquina

o INPUT: Paquetes recibidos para nuestro sistema

o FORWARD: Paquetes enrutados a través de nuestro sistema

o OUTPUT: Paquetes generados en nuestro sistema y que son enviados

Page 27: (Manual de Linux Recopilacion_by Gandhi_)

• nat : Tabla referida a los paquetes enrutados en un sistema con Masquerading

o PREROUTING: Para alterar los paquetes según entren

o OUTPUT: Para alterar paquetes generados localmente antes de enrutar

o POSTROUTING: Para alterar los paquetes cuando están a punto para salir

• mangle : Alteraciones más especiales de paquetes

o PREROUTING: Para alterar los paquetes entrantes antes de enrutar

o OUTPUT: Para alterar los paquetes generados localmente antes de enrutar

Dado que el soporte para el firewall está integrado en el kernel de Linux (Netfilter ), para poder

usar iptables tendremos que asegurarnos de que nuestro núcleo admite el uso de iptables y

que añadimos a la configuración del núcleo todos aquellos targets que vayamos a necesitar

(aunque siempre es bueno tener los más posibles).

Características del firewall a crear

Para crear nuestro sencillo firewall doméstico, tendremos primero que preguntarnos qué es lo

que deseamos que haga. Lo más usual, en un equipo que se usa para conexiones a Internet

de manera normal (no es servidor de nada, etc...) es que deseemos de nuestro firewall lo

siguiente:

• Que nos permita realizar conexiones TCP hacia afuera de nuestra máquina (si no,

no podríamos hacer casi nada).

Page 28: (Manual de Linux Recopilacion_by Gandhi_)

• Que no permita realizar conexiones TCP desde afuera hacia nuestra m áquina ,

para evitar que alguien intente conectarse a nuestros servidores web, ftp, telnet, X...

• Que permita el tráfico de paquetes TCP (paquetes que no establezca n

conexiones) en ambas direcciones , pues necesitamos tráfico bidireccional de

paquetes al usar casi cualquier cosa en Internet.

• Que Prohiba el tráfico UDP desde afuera de nuestra máquina , a excepción del

necesario para las respuestas por parte de nuestros servidores DNS, que provendrán

de su puerto UDP 53.

• En caso de tener una intranet, que no aplique estas restricciones al tráfico

proviniente de y enviado hacia la intranet , ya que en esta red interna probablemente

sí nos interese poder acceder remotamente a nuestra máquina.

Uso básico de iptables

Para crear nuestro firewall, necesitaremos ejecutar algunos comandos básicos sobre iptables,

como:

Para crear una nueva regla al final de las ya existentes en una chain determinada:

$ /sbin/iptables -A [chain] [especificacion_de_la_regla] [opciones]

Para insertar una regla en una posición determinada de la lista de reglas de una chain

determinada:

$ /sbin/iptables -I [chain] [posición] [especificacion_de_la_regla] [opciones]

Para borrar una regla en una posición determinada de la lista de reglas de una chain

determinada:

$ /sbin/iptables -D [chain] [posición]

Para todas las reglas de una chain determinada:

$ /sbin/iptables -F [chain]

Para listar las reglas de una chain determinada:

Page 29: (Manual de Linux Recopilacion_by Gandhi_)

$ /sbin/iptables -L [chain]

La especificación de reglas se hace con los siguientes parámetros (especificando aquellos

que se necesite):

• -p [protocolo] : Protocolo al que pertenece el paquete.

• -s [origen] : dirección de origen del paquete, puede ser un nombre de host, una

dirección IP normal, o una dirección de red (con máscara, de forma dirección/máscara).

• -d [destino] : Al igual que el anterior, puede ser un nombre de host, dirección de red o

dirección IP singular.

• -i [interfaz-entrada] : Especificación del interfaz por el que se recibe el paquete.

• -o [interfaz-salida] : Interfaz por el que se va a enviar el paquete.

• [!] -f : Especifica que la regla se refiere al segundo y siguientes fragmentos de un

paquete fragmentado. Si se antepone !, se refiere sólo al primer paquete, o a los

paquetes no fragmentados.

Y además, uno que nos permitirá elegir qué haremos con el paquete:

• -j [target] : Nos permite elegir el target al que se debe enviar ese paquete, esto es, la

acción a llevar a cabo con él.

Algunas de las opciones que se permiten en los comandos de arriba son:

• -v: Modo verboso, útil sobre todo con iptables -L.

• -n: las direcciones IP y números de puertos se mostrarán numéricamente (sin resolver

nombres).

• --line-numbers : Muestra los números de regla de cada regla, de manera que sea más

fácil identificarlas para realizar operaciones de inserción, borrado...

Creación del firewall

Para crear nuestro firewall, iremos introduciendo una a una las reglas que necesitamos:

Primera regla: permitiremos cualquier tráfico que provenga de nuestro interfaz de

loopback (lo) , para ello insertaremos en el chain INPUT (que se encarga de los paquetes que

llegan con destino a nuestra máquina), de la tabla filter la siguiente regla:

$ /sbin/iptables -A INPUT -i lo -j ACCEPT

Page 30: (Manual de Linux Recopilacion_by Gandhi_)

Atención: es importante aquí respetar las mayúsculas , pues los nombres del chain y del

target son INPUT y ACCEPT, no input o accept .

Segunda regla: si disponemos de intranet, permitiremos todo el tráfico que provenga de

nuestro interfaz de red interna . Por ejemplo, imaginando que tuviésemos una ethernet en el

interfaz eth0, haríamos:

$ /sbin/iptables -A INPUT -i eth0 -j ACCEPT

El hecho de que omitamos la dirección de origen, de destino... implica que nos referimos a

todas .

Tercera regla: impediremos el paso de cualquier paquete TCP proviniente del exter ior que

intente establecer una conexión con nuestro equipo . Estos paquetes se reconocen por

tener el flag SYN acertado y los flags ACK y FIN desasertados. Para decirle a la regla que

reconozca específicamente estos paquetes, usaremos una opción que se puede usar cuando

el protocolo del paquete es declarado como tcp , la opción --syn . De la siguiente manera:

$ /sbin/iptables -A INPUT -p tcp --syn -j REJECT --reject-with icmp-port-unreachable

Y vemos también el uso de una opción del target REJECT, que nos permite elegir de qué

manera debe ser rechazado el paquete. Posibles valores son icmp-net-unreachable , icmp-

host-unreachable , icmp-port-unreachable , icmp-proto-unreachable , icmp-net-prohibited y

icmp-host-prohibited .

Cuarta regla: Antes de declarar que deseamos prohibir cualquier tráfico UDP hacia nuestra

máquina, y dado que las reglas se recorren en orden hasta que una de ellas se activa con el

paquete, tendremos que añadir ahora una regla que nos permita recibir las res puestas de

nuestro/s servidor/es DNS cuando nuestro sistema les realice alguna consulta. Estas

respuestas, vía UDP, saldrán del puerto 53 del servidor DNS. La regla, pues, será:

$ /sbin/iptables -A INPUT -p udp --source-port 53 -j ACCEPT

Donde --source-port es una opción presente cuando el protocolo es udp (también cuando es

Page 31: (Manual de Linux Recopilacion_by Gandhi_)

tcp ) y nos permite en este caso especificar que la consulta provenga del puerto destinado al

DNS.

Quinta regla: Prohibimos ahora el resto del tráfico UDP . La regla de por sí implica a todo el

tráfico UDP, pero como un paquete sólo activará esta regla si no ha activado la anterior, los

paquetes UDP referentes a una transacción con un servidor de nombres no se verán

afectados.

$ /sbin/iptables -A INPUT -p udp -j REJECT --reject-with icmp-port-unreachable

Dado que los targets por defecto (denominados policy o política ) en la tabla filter son

ACCEPT, si un paquete no activa ninguna de las reglas, será aceptado, de manera que no

tendremos que preocuparnos de, por ejemplo, los paquetes de tráfico normal de TCP, ya que

estos serán aceptados al no activar regla alguna.

Si ahora escribimos:

$ /sbin/iptables -L -v

Deberíamos obtener algo como:

Chain INPUT (policy ACCEPT 3444 packets, 1549K bytes)

pkts bytes target port opt in out source destination

11312 3413K ACCEPT all -- lo any anywhere anywhere

0 0 ACCEPT all -- eth0 any anywhere anywhere

0 0 REJECT tcp -- any any anywhere anywhere tcp flags:SYN,RST,ACK/SYN reject-with icmp-

port-unreachable

0 0 ACCEPT udp -- any any anywhere anywhere udp spt:domain

0 0 REJECT udp -- any any anywhere anywhere reject-with icmp-port-unreachable

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)

pkts bytes target prot opt in out source destination

Chain OUTPUT (policy ACCEPT 15046 packets, 4218K bytes)

pkts bytes target prot opt in out source destination

Page 32: (Manual de Linux Recopilacion_by Gandhi_)

De modo que nuestro pequeño y básico firewall doméstico ya está configurado. Nuestro equipo

es ahora muchísimo más seguro, puesto que los ataques a nuestro sistema requerirían ahora

mucha más elaboración, tiempo y esfuerzo por parte del atacante, de manera que nuestra

condición de insignificantes ya empezará a ser importante como garante de seguridad.

Guardar y rehusar nuestra configuración de iptables

Pero, si una vez realizadas estas configuraciones, apagásemos nuestro equipo, todo esto se

perdería, y tendríamos que volver a realizar una a una las sentencias de configuración.

Para evitar esto, iptables cuenta con dos programas auxiliares: iptables-save e iptables-

restore , el primero de los cuales nos permite sacar por salida estándar el contenido de

nuestras tablas IP, y el seguno nos permite, a partir de la salida generada por iptables-save,

recuperar la configuración de las tablas.

De manera que para volcar la configuración de nuestro firewall en un fichero ejecutaremos:

$ /sbin/iptables-save -c > [fichero]

Donde -c es una opción que nos permite guardar los contadores del número de paquetes que

activaron cada regla.

Y, cuando queramos, podremos recuperar la configuración del firewall con:

$ /sbin/iptables-restore -c < [fichero]

En cuyo caso -c tiene el mismo significado que con iptables-save

Estas llamadas a iptables-save e iptables-restore podrán ser incluidas en los scripts adecuados

para que se lleven a cabo de manera automática en el arranque y el cierre del sistema.

En caso de ser usuarios de Red Hat Linux, a partir de su versión 7.1, una vez configurado el

firewall con iptables tal y como se ha descrito en este artículo, y una vez salvada la

configuración con iptables-save en el archivo /etc/sysconfig/iptables , se pueden activar los

scripts que arrancarán y cerrarán el firewall automáticamente al arrancar y apagar el equipo,

mediante la Text Mode Setup Utility (/usr/sbin/setup ), en la sección System Services .

Page 33: (Manual de Linux Recopilacion_by Gandhi_)

Un artículo de:

Daniel Fernández Garrido

6. Comandos básicos de Linux

Aquí les dejo un resumen de una lista de comandos básicos para los que recién empiezan:

Comandos para el manejo de archivos:

cd = cambia el directorio

compress = comprime archivos en formato .Z

cp = copia un archivo

chmod = cambia los permisos de un archivo o directorio

chown = cambia el propietario del archivo o directorio

df = muestra el espacio libre en disco

du = muestra el espacio en disco utilizado

fdformat = formatea un diskete

fdisk = particiona unidades

file = determina el tipo de archivo a través del análisis parcial de

su contenido

find = encuentra un archivo

fsck = chequea el sistema de archivos

gzip = descomprime un archivo en formato GZip

ln = crea un enlace simbolico o fisico depende la opcion

Page 34: (Manual de Linux Recopilacion_by Gandhi_)

ls = sirve para listar el contenido de un directorio

mkdir = crea un directorio

mkfs = crea un nuevo sistema de archivos

mkswap = crea un espacio de intercambio

more = exhibe el contenido de un archivo

mount = monta una unidad o particion en el sistema de archivos

mv = mueve un archivo y se utiliza para renombrar

pwd = devuelve la cadena correspondiente al directorio actual

rm = borra un archivo

rmdir = borra un directorio

swapon = activa el espacio de intercambio

swapoff = desactiva el espacio de intercambio

tar = empaqueta o desempaqueta un archivo en formato .tar

type = muestra la ubicacion de un archivo señalando su "path"

umount = desmonta una unidad montada

Comandos para el manejo de procesos:

free = muestra la memoria libre y utilizada

halt = apaga la maquina

kill = mata un proceso señalando el numero de este

ldd = muestra las librerias necesarias para ejecutar un proceso

ps = muestra todos los procesos q se estan ejecutando en el sistema

pstree = lo mimo q ps pero en forma de árbol

reboot = reinicia el sistema

shutdown = cierra el sistema

top = monitorea procesos y el estado del sistema

uname = muestra informacion del sistema

Comandos para el manejo de usuarios:

adduser = crea una cuenta de usuario

chsh = cambia la shell de un usuario

groups = muesra el listado de grupos de usuarios del sistema

id = muestra la informacion de usuario y grupo de un determinado usuario

logout = para salir del sistema y permitir el ingreso a otro usuario

passwd = cambia el password de un determinado usuario

su = le da privilegios de root a un usuario

talk = permite chatear con otros usuarios

users = lista los usuarios conectados al sistema

Page 35: (Manual de Linux Recopilacion_by Gandhi_)

who = muestra informacion de los usuarios conectados al sistema

whoami = muestra informacion nuestra

Otros comandos:

cal = muestra el calendario

date = muestra el dia y la hora

ddate = como el anterior pero de forma rara HuhHuh

info = muestra la ayuda de un comando

man = muestra las paginas del manual de un comando

startx = para iniciar XWindow

Comandos Debian

apt-get update = actualiza la base de datos de los paquetes .deb

apt-get upgrade = actualiza los paquetes a su ultima versión

apt-get install "paquete" = instala lo que escribirás en "paquete"

apt-get remove "paquete" = desinstala lo que escribirás en "paquete"

apt-get check = actualiza la cache de paquetes

apt-get clean = borra los paquetes .deb descargados

apt-get dist-upgrade = hace un upgrade del SO

apt-get source "paquete" = descarga fuentes del "paquete"

apt-cache showpkg "paquete" = muestra todas las versiones disponibles de "paquete"

modconf = pequeño programa para sacar o poner módulos del kernel

update-rc.d "opcion" "programa o script" "opcion" = Remueve o Agrega

el script o programa a los niveles de corrida que se le asigne

Comandos Red Hat

rpm -q "programa" = para saber si "programa" esta instalado

rpm -qs "programa" = estado de todos los archivos de "programa"

rpm -qd "programa" = documentacion de "programa" instalada

rpm -qc "programa" = archivos de configuración de "programa"

rpm -qa "programa" = muestra todos los rpm de "programa"

rpm -qa | grep "programa" = busca el nombre de paquete del "programa"

rpm -i "programa" = instala "programa"

rpm -u "programa" = actualiza "programa"

rpm -e "programa" = elimina "programa"

rpm -ivh "programa" = instala el "programa" en pasos y muestra el progreso de la instalacion

Page 36: (Manual de Linux Recopilacion_by Gandhi_)

Comandos de red

ping = el tan famoso ping que manda paquetes esperando una respuesta

ifconfig = para ver las placas de red

netstat = testeo de red

host "destino" = muestra ip de "destino"

nmap "ip de destino" = pequeño programa para analizar ip´s o rangos de ellas

Comandos para el manejo de paquetes

rpm - "opcion" "paquete" = instala o desinstala el "paquete" depende la opcion

dpkg - "opcion" "paquete" = instala o desinstala el "paquete" depende la opcion (solo debian)

tar - "opcion" "paquete" = comprime o descomprime el "paquete" de

formato tar.gz .tgz o tar.bz2

10. Comandos para novatos

10.1 Comandos básicos

(para mas información "man comando")

man páginas del manual (es un help muy potente)

ls listar (como dir)

rm borrar un fichero

cp copiar un fichero

pwd te dice el directorio en el que estás

cd directorio te sitúa en directorio

cd .. baja al directorio de nivel inferior

chown, chgrp, chmod, touch comandos para manejo de atributos de ficheros

find, locate buscar ficheros

cat, more, head listar ficheros (como type)

split partir ficheros

grep buscar texto en ficheros (muy potente)

10.2 Comandos para comunicaciones y redes

who lista de usuarios conectados

finger información sobre usuario

mail sencillo programa de correo

write manda un mensaje a la pantalla

de un usuario

Page 37: (Manual de Linux Recopilacion_by Gandhi_)

mesg bloqueo de mensajes de write

wall mensaje a todos los usuarios

talk establecer una charla con otro usuario

banner saca letrero en pantalla con el texto que se le pase

cal saca el calendario en pantalla

clear limpia la pantalla

date saca fecha y hora actuales

passwd cambiar contraseña de un usuario

10.3 Entorno gráfico xwindow

Iniciar X startx

Abrir nuevas sesiones startx -- :2 , :3 , :4 , etc.

Configuración de XF86 /etc/X11/XF86Config

Configuración de servidor X /etc/X11/Xserver

Configurar X XF86Setup (entorno gráfico,

tienes que instalar xserver_vga) /usr/sbin/xbase-configure

(entorno línea de comandos)

Salir de las X ctrl-alt-backspace

Fichero donde está el programa

que arranca las X /etc/X11/window-managers

10.4 Comprimir y descomprimir

Descomprimir un *.tar.gz tar -xvzf <fichero>

Descomprimir un *.tar

(el tar es un tar_gz al que

se le ha pasado gunzip) tar -xvf

Descomprimir un *.gz gzip -d

Empaquetar sin comprimir tar

Comprimir ficheros empaquetados gzip

10.5 Manejo de las unidades de diskettes y Cd-Rom

Montar diskette mount -t msdos /dev/floppy /mnt

(/dev/floppy = /dev/fd0)

Montar Cd-Rom mount -t iso9660 /dev/cdrom /mnt

(/dev/cdrom = /dev/hdb)

Page 38: (Manual de Linux Recopilacion_by Gandhi_)

Listar unidad montada ls /mnt

Desmontar todo umount /mnt

Formatear floppy superformat /dev/fd0 hd (msdos)

(hay que tener instalado fdutils)

superformat /dev/fd0 sect=21 cyl=83

mkfs.ext2 /dev/fd0 (crea sistema de ficheros ext2)

10.6 Manejo de ficheros

Enlace simbólico entre ficheros

(puerto serie 1) ln -sf /dev/ttyS0 /dev/mouse

(puerto serie 2) ln -sf /dev/ttyS1 /dev/modem

Número de inodo ls -i

Número de enlaces de un fichero ls -l

Borrar enlaces rm fichero (si no tiene enlaces borra el fichero)

Borrar directorios rm -r

Ver espacio libre en disco df (disco entero) du -sh (directorios y ficheros)

Buscar un fichero find / -name mime.types

(la / es la raiz donde quieres buscar)

10.7 Uso del sistema

Ver pid de trabajos ejecutándose ps

Inicialización de puertos serie /etc/rc.boot/0setserial

Inicio del sistema /etc/init.d/boot

Listar el hardware reconocido dmesg , dmesg | more

Ver módulos cargados en el kernel lsmod

Prompt export PS1="\W$"

\W , te saca el nombre usuario

\H , te saca el nombre del Host

\T , te saca la hora

\V , ???

export PS1="usuario$ "

Page 39: (Manual de Linux Recopilacion_by Gandhi_)

Información del sistema uname -a

Librerías instaladas /sbin/ldconfig -p

Librerías que utiliza un programa ldd /ruta/programa

Salir del sistema shutdown -r 0 (reinicializa el ordenador)

shutdown -h 0 (cierra el sistema y se para)

Eliminar Lilo fdisk /mbr (entrando por símbolo del sistema, en msdos c:)

10.8 Manejo de la impresora

Dispositivo /dev/lp1

Probarlo ls > /dev/lp1

Para imprimir se necesita lpr , Magicfilter y Mpage

Hay que configurar un filtro

para la impresora Utilizar Magicfilterconfig --force

(para mi hp690 C elijo el filtro hp550c)

Ver colas impresión lpq

Estado impresoras lpc status

Eliminar colas en impresión lprm

10.9 Comandos de IRC para IrcII

/server conectar con un servidor (/server irc.arrakis.es)

/channel , /join conectar con un canal (/channel #linux)

/admin datos de servidor o nickname

/list listar canales irc

/names nicknames de todos los usuarios

/msg <nick> <msg> mensaje privado a nick

/who <canal> quien está conectado y sus datos

/whois <nick> verdadera identificación de alguien

/quit desconectar

10.10 Instalación y manejo de paquetes en Debian

dpkg -i Instalar paquete

dpkg --info Información del paquete

dpkg -c Muestra la lista de ficheros contenidos

dpkg --contents Lista todos los ficheros contenidos con sus directorios

dpkg -f Muestra información de versión del paquete

dpkg --unpack Desempaqueta

Page 40: (Manual de Linux Recopilacion_by Gandhi_)

dpkg --purge Borra un paquete incluidos los ficheros de configuración

dpkg -r Borra un paquete pero no borra los ficheros de configuración

dpkg -L Lista el paquete si está instalado

dpkg -l Lista los paquetes instalados

10.11 Convertir paquetes de RedHat a Debian

alien -d fichero.rpm convierte fichero rpm a deb

alien -d fichero.tgz convierte fichero tgz a deb

alien -i fichero.rpm convierte fichero rpm a deb y lo instala

alien -i fichero.tgz convierte fichero tgz a deb y lo instala

7. Seguridad en Sistemas Linux

SEGURIDAD EN LINUX

INTRODUCCIÓN Y ASPECTOS GENERALES

SOBRE LA SEGURIDAD EN UN SISTEMA INFORMÁTICO

Seguridad Física

1. Uso del equipo por personal autorizado.

2. Solo podrá tener acceso al equipo aquel personal que cuente con conocimientos

mínimos sobre computación.

3. Poder contar con mas de un servidor de base de datos lo cual asegure la integridad

total de la información.

4. Ubicación de las instalaciones que cumplan con normas internacionales de calidad

(ISO 9000).

5. Control de alarma la cual notifique en todo momento sobre la integridad física del

sistema.

Seguridad Lógica

1. Construcción de contraseñas en diversos niveles del sistema donde permita solo el

acceso en base a niveles de seguridad de usuarios con permiso.

2. En base al sistema operativo que use como plataforma, algoritmos que generen claves

para poder encriptar los archivos de contraseñas dentro del sistema lo cual me permita

mayor seguridad en un entorno de red.

Page 41: (Manual de Linux Recopilacion_by Gandhi_)

3. Generar un módulo del sistema para la emisión de reportes para el administrador del

sistema en donde se muestre tablas de uso del sistema así como los usuarios y los

niveles de acceso por parte de los tales para poder determinar el uso y acceso al

sistema.

4. También es necesario contar con el diseño de módulos que ejecuten un Control de

alarma la cual notifique en todo momento sobre la integridad de la información del

sistema.

Conducta del usuario

1. Establecer campañas constantes sobre la funcionalidad y logros que se alcanzaran con

el sistema los cuales creen una conciencia en el usuario y logren forman en el un

interés en el uso del sistema.

2. Análisis del uso y trayecto del sistema por parte de los usuarios para poder detectar

fugas de información y posibles problemas con los datos accesados del sistema.

PASOS PARA DETERMINAR SI UNA RED HA SIDO HACKEADA

1. Examina los ficheros de log buscando conexiones desde lugares inusuales o cualquier

actividad fuera de lo normal. Por ejemplo, mira el ultimo log, "process accounting",

todos los logs creados por syslog, y otros logs de seguridad. Si tu firewall o tu router

escriben logs en lugares distintos de donde los escribe el sistema estudiado, recuerda

chequear también esos logs. Esta no es una garantía completa a no ser que "los logs

se escriban en un append-only media"; muchos intrusos editan los ficheros de log para

intentar ocultar su actividad.

2. Busca los ficheros con los bits setid y setgid activados (especialmente los setuid de

root) en todo el sistema. Los intrusos suelen dejar copias de programas como /bin/sh o

/bin/time con el bit "setuid" activado para permitirles acceso a root mas tarde. Se puede

usar el programa de UNIX find(1) para encontrar ficheros con setuid y/o setgid

activados.

3. Comprueba los binarios del sistema para asegurarte de que no han sido alterados. Hay

intrusos que cambian programas en sistemas UNIX tales como login, su, telnet, netstat,

ifconfig, ls, find, du, df, libc, sync, cualquier binario referenciado en /etc/inetd.conf, y

otros programas de red y del sistema críticos así como librerías de objetos

compartidas.

4. Ten cuidado a la hora de confiar en los backups; tus backups pueden contener a su

vez caballos de Troya.

5. Comprueba que en tu sistema no existan programas no autorizados de monitorización

de red, comúnmente llamados sniffer "packet sniffer". Un intruso puede usar un sniffer

para capturar información de la cuenta y password de un usuario.

Page 42: (Manual de Linux Recopilacion_by Gandhi_)

6. Examina todos los ficheros que son ejecutados por cron y at. Hay intrusos que dejan

puertas traseras en ficheros ejecutados por cron o enviados a at pues permiten al

intruso volver al sistema.

7. También, verifica que todos los ficheros/programas referenciados por los jobs de cron y

at, y los ficheros del job en si mismos, no tienen permisos de escritura para todo el

mundo.

8. Comprueba que no haya servicios no autorizados. Inspecciona el /etc/inetd.conf

buscando cambios no autorizados. Busca entradas que ejecuten un programa shell, y

verifica todos los programas especificados en /etc/inetd.conf para comprobar que son

correctos y que no han sido reemplazados por un caballo de Troya.

9. También chequea servicios legítimos que hayas comentado en el /etc/inetd.conf. Algún

intruso puede haber habilitado un servicio que previamente habías deshabilitado o

sustituir el programa inetd por un caballo de Troya.

10. Examina el fichero /etc/passwd y comprueba las modificaciones de dicho fichero.

Verifica que no haya nuevas cuentas creadas sin autorización, cuentas sin password, o

cambios en el UID (especialmente UID 0).

11. Comprueba que no existan entradas no autorizadas en los ficheros de configuración de

red y del sistema. En particular, busca entradas con '+' y nombres de hosts externos no

apropiados en el fichero /etc/hosts.equiv, /etc/hosts.lpd, y en todos los ficheros .rhosts.

Estos ficheros no deben tener permisos de escritura para todo el mundo. Además,

confirma que estos ficheros existían previamente a ninguna intrusión y que no han sido

creados por el intruso.

12. Busca por todo el sistema ficheros raros u ocultos, pues estos ficheros pueden usarse

para ocultar herramientas e información.

13. Examina todas las maquinas de la red local cuando busques señales de una intrusión.

Si la seguridad de un host se ha visto comprometida, la seguridad de otros en la red

también.

CUOTAS

Las cuotas permiten especificar limites en dos aspectos del almacenamiento en disco: El

numero de inodos que puede poseer un usuario o un grupo; y el numero de bloques de disco

que puede ocupar un usuario o un grupo. La idea que se esconde detrás de las cuotas es que

se obliga a los usuariosa mantenerse debajo de su limite de consumo de disco, quitándoles su

habilidad de consumir espacio ilimitado de disco en un sistema.

Las cuotas se manejan en base al usuario y al sistema de ficheros. Si el usuario espera crear

ficheros en mas de un sistema de ficheros, las cuotas deben activarse en cada sistema de

ficheros por separado.

DETECCION DE INTRUSOS MEDIANTE ANALISIS DE HUELLAS

Page 43: (Manual de Linux Recopilacion_by Gandhi_)

Ficheros que guardan registros:

utmp : Guarda un registro (log) de los usuarios que estan utilizando el sistema mientras estan

conectados al sistema. Directorios: /var/adm/utmp y /etc/utmp

wtmp : Guarda un log cada vez que un usuario se introduce en el sistema o sale del sistema.

Directorios: /var/adm/wtmp y /etc/wtmp

lastlog : Guarda un log del momento exacto en que un usuario entro por ultima vez. Directorio:

/var/adm/lastlog

acct o pacct : Registra todos los comandos ejecutados por cada usuario (aunque no registra

los argumentos con que dichos comandos fueron ejecutados). Directorio: /var/adm/acct

Comandos que permiten ver el estado del sistema:

who y users: Permite saber quien esta conectado al sistema en el momento en que

ejecutamos el comando.

finger : Lo mismo que el comando who, con el añadido de que podemos saber que usuarios

estan conectados a una determinada maquina en el momento en que ejecutamos el comando.

last: Muestra la ultima vez que se conecto un usuario. Last toma la informacion que saca en

pantalla del fichero wtmp.

ps: Permite saber que procesos estan siendo ejecutados por el sistema y que usuarios los

ejecutan.

accton: Activa un proceso llamado accounting, que es el que proporciona informacion al

fichero acct.

lastcomm: Permite saber que comandos han ejecutado los usuarios. Lastcomm toman la

informacion que sacan por pantalla del fichero acct.

Por lo tanto, si queremos borrar nuestras huellas del sistema, bastar con borrar cualquier log

relativo a nuestro usuario de los ficheros utmp, wtmp y acct. Esto se puede hacer de dos

formas:

Eliminar huellas de utmp y wtmp

1. No borramos los ficheros pero los dejamos con cero bytes.

2. Editar los ficheros con un ‘zapper’ que pueden borrar los datos relativos a un usuario

en particular de estos ficheros dejando el resto de los datos intacto.

Page 44: (Manual de Linux Recopilacion_by Gandhi_)

Eliminar huellas de acct

Es bastante complicado borrar nuestras huellas de este fichero, de hecho no se pueden borrar

del todo, aunque se pueden reducir a una mínima parte nuestra presencia en el sistema.

Mas sistemas de log:

• Syslog: Mediante el syslog se puede configurar de tal forma que determinados

programas, procesos o aplicaciones generen mensajes que son enviados a

determinados ficheros donde quedan registrados dichos mensajes. Este fichero si

puede ser editado en modo texto y puede ser analizado para ver dónde hemos ido

dejando rastros y posteriormente borrar esas huellas, aunque por supuesto,

necesitamos ser root para poder hacerlo.

• TCP-Wrapper: Se trata de una aplicación que proporciona una serie de mecanismos

para el registro y filtro de aquellos servicios invocados o llamados a través del inetd

(internet daemon). Con esta herramienta el administrador posee un control absoluto de

las conexiones hacia y desde su maquina y es informado en todo momento de las

conexiones que se han hecho desde su maquina y hacia su maquina.

SISTEMAS DE CONTRASEÑAS EN LINUX

Sistema de cifrado de passwords

El estándar DES transforma la informacion de texto llano en datos encriptados llamado texto

cifrado mediante el uso de un algoritmo especial y valor semilla llamado clave. En el sistema

crypt(3) el texto llano se encripta en un grupo de ceros, posteriormente el texto cifrado

resultante es encriptado de nuevo con el password del usuario como clave, repitiéndose este

proceso 25 veces. Una vez finalizado, los 64 bits se dividen en 11 caracteres y se guardan en

el archivo /etc/passwd.

Para "animar" un poco mas la cosa se utiliza lo que se denomina en criptologia como un "grano

de sal". Se trata de un valor de 12 bits que se utiliza para modificar el resultado de la función

DES, esto es, un valor que puede variar de 0 a 4095. Asi que para cada contraseña posible

existen 4096 formas de encriptación y almacenamiento.

Cuando utilizamos el programa /bin/passwd para introducir una nueva contraseña, dicho

programa utiliza un "grano de sal" basado en la hora del sistema, la cual es utilizada para la

función de calculo de la contraseña encriptada. Esta sal es guardada junto a la contraseña en

el archivo /etc/passwd. Asi que los dos primeros caracteres de una contraseña encriptada son

en realidad el "grano de sal".

Page 45: (Manual de Linux Recopilacion_by Gandhi_)

Asi pues, un password una vez encriptado no se puede desencriptar. Pero esto no quiere decir

que el password este seguro y no se pueda averiguar.

¿Donde va la clave que tecleo cuando el sistema me pide "passwo rd" ?

Va al fichero /etc/passwd, salvo que tengamos Shadow Password en esta forma:

rcano : xkHrjur : 501 : 1000 : Roberto Cano,,, : /home/rcano : /usr/bin/zsh

Cada línea de este fichero representa a un usuario del sistema y contiene informacion sobre el,

repartida en 7 campos separados por ":", a saber:

• login del usuario rcano

• password encriptada xkHrjur

• Clave cifrada UID del usuario 501

• GID del grupo del usuario 1000

• Nombre Completo Roberto Cano

• Home directory /home/rcano

• SHELL por defecto /usr/bin/zsh

Si en tu sistema tienes "Shadow Password", en vez de una clave cifrada verás una "x". Si no

tienes nada es que ese usario no tiene clave asignada. Si hay un "*" esa cuenta esta

deshabilitada.

¿Como puedo adivinar la clave de un usuario?

El fichero /etc/passwd tiene permisos de lectura para todo el mundo, con lo cual todo el mundo

puede leer la clave encriptada de todo el mundo. Podemos ver la clave, pero esta cifrada según

un método ( estándar de encriptación DES ) con lo que es practicamente imposible averiguar la

clave original.

El problema es que es tremendamente fácil dedicarse a encriptar palabras de un fichero y ver

si coinciden con la clave encriptada.

También podemos usar programas de adivinación de claves. Estos programas usan

diccionarios de claves, que son simplemente archivos con miles y miles de logins y passwords

diferentes. Diccionarios en Internet hay de todos los idiomas conocidos y algunos por conocer,

asi como ficheros con nombres famosos, grupos de música, actores, etc. Es posible que tengas

incluso un fichero-diccionario en tu sistema busca en /usr/dict/spanish ó /etc/dictionary. Los

programas buscadores de contraseñas son fácilmente diseñables, en realidad uno sencillo

puede crearse en menos de 30 líneas de código.

Page 46: (Manual de Linux Recopilacion_by Gandhi_)

Esta forma de buscar claves válidas se conoce como el método de la fuerza bruta y si no

tomamos precauciones puede ser muy efectivo.

Para mantener una seguridad decente en tu sistema Linux, en lo concerniente a la

entrada al sistema, dos son las medidas básicas a adoptar:

• Elegir passwords "resistentes"

• Usar un sistema con "Shadow Password"

Como elegir una clave segura.

• Nunca elegir como clave la misma palabra que el "login" (es lo primero que prueban los

programas de crackeo).

• Nada de elegir una "palabra clave" recuerda que hay diccionarios de todos los idiomas,

asi como de nombres propios o apellidos, de personas y cosas famosas etc. La clave

no debe ser una palabra!

• Tampoco vale una palabra modificada fácilmente, los programas de crackeo descritos

permiten incluso atacar combinaciones de palabras con prefijos y sufijos, Mayúsculas-

minúsculas, orden inverso... etc.

• Elige pues, una combinación de letras ( a ser posible mayúsculas y minúsculas,

recuerda que son diferentes ) y números o signos de puntuación ( comas, puntos

guiones ... )

• No elijas cosas obvias como tu fecha de cumpleaños, el nombre de tu

perro/novia/mujer/hijo la matrícula de tu coche, tu número de teléfono.. Ah! y no la

apuntes en un POST-IT en tu monitor!! ;)

¿Como cuanto de segura?

Un programa de "cracking" puede ensayar y comparar 10.000 combinaciones por segundo. El

tiempo máximo que tardaría un cracker en encontrar una clave de 8 caracteres que use

minúsculas, mayúsculas, números y símbolos seria de ¡¡19.329 AÑOS!!

Por el contrario, si un usuario elige una clave de 6 caracteres, todas letras minúsculas. A

10.000 combinaciones por segundo, su clave sería encontrada en ¡¡8 horas y media!!

Shadow Password.

Claves en la sombra. Los sistemas modernos ya no depositan la clave encriptada en

/etc/passwd, sino en otro llamado /etc/shadow al que solo tiene acceso el root. En el lugar de la

clave encriptada, en el fichero /etc/passwd se coloca una "x”:

rcano : x : 501 : 1000 : Roberto Cano,,, : /home/rcano : /usr/bin/zsh

Page 47: (Manual de Linux Recopilacion_by Gandhi_)

El paquete Shadow proporciona más características adicionales de seguridad, como por

ejemplo:

• Fichero de configuración para establecer opciones para el "login" ( /etc/login.defs )

• Utilidades para añadir, modificar y borrar cuentas de usuarios y grupos

• Claves con fecha de "caducidad"

• Expiración de claves y bloqueo de cuentas

• Mejor control sobre la elección de las claves de los usuarios ( no nos dejará elegir

cualquier clave sencilla de adivinar )

Al administrador del sistema le queda la tarea de comprobar que todo el mundo tiene una clave

mínimamente resistente, para lo cual tendrá que probar alguno de los programas de crackeo de

claves descritos sobre su mismo sistema.

INTRODUCCIÓN A PGP

¿Qué es PGP?

PGP es "Pretty Good Privacy" o en castellano "Intimidad Bastante Buena", y es un programa

para cifrado del correo electrónico (y para todo tipo de información) que reune tres

características: Es rápido, seguro y gratis.

¿Para qué me puede servir?

1. Nadie leerá el correo electrónico (e-mail) salvo su destinatario. Es decir tendrá

"intimidad" mediante cifrado o encriptado de su mensaje.

2. Nadie podrá suplantar su identidad en Internet y enviar mensajes trucados, así como

retocar o alterar los suyos originales (Autentificación mediante firma digital).

Esto se consigue a través de un potente mecanismo conocido como "Criptografía de clave

pública" del que hablaremos más adelante y que ha provocado no pocos problemas legales a

su autor.

EMAIL BOMBING Y SPAMMING

Descripción

El email bombing es consecuencia de mandar repetidamente mensajes a una dirección

particular.

Page 48: (Manual de Linux Recopilacion_by Gandhi_)

El email spamming es una variante del bombing; envía email a cientos o miles de usuarios.

Puede dañar aún más si los destinatarios contestan ese email, causando que todas las

direcciones originales reciban esa contestación.

El email bombing y el spamming puede combinarse con el spoofing, el cual altera la identidad

de la cuenta que manda el email, haciendo más difícil saber de dónde viene el mensaje.

Detección

Si tu email es lento o no parece que sea enviado ni recibido, la razón puede ser que el sistema

está intentando procesar un número alto de mensajes.

Reacción

1. Identifica el origen del email bombing o spamming y configura tu router para prevenir la

llegada de paquetes de esa dirección.

2. Revisa las cabeceras de los email para determinar el verdadero origen del email.

Contacta con el sistema que has identificado para alertarle de la acción.

Prevención

Desafortunadamente, en este momento, no hay ninguna forma de prevenir el email bombing y

spamming (excepto desconectarte de Internet), y es imposible predecir el origen del próximo

ataque.

1. Crea tus propias herramientas que te ayuden a reconocer y a responder el email

bombing y spamming y, de esta forma, minimizar el impacto de esta actividad. Estas

herramientas deberían incrementar las capacidades de entrada y chequear y alertar de

los mensajes entrantes/salientes que salen de un mismo usuario o sitio en un corto

espacio de tiempo.

2. Si tu proveedor tiene pocos servidores de correo, puedes configurar tu firewall para

asegurarte de que las conexiones SMTP desde fuera de tu firewall pueden ser hechas

sólo a tu servidor central de correo y a ninguno de los otros sistemas.

3. Aunque no prevenga el ataque, minimiza el número de máquinas desprotegidas frente

a los intrusos ante un ataque basado en el SMTP controlando el SMTP de alguna

manera. Con esto, sólo tienes un pequeño número de sistemas--el servidor principal de

correo y algún otro de copia de seguridad--que configurar.

4. No propagues el problema siguiendo con (o respondiendo) el masivo envío de correo.

SPOOFED/FORGED EMAIL

Descripción

Page 49: (Manual de Linux Recopilacion_by Gandhi_)

El email spoofing puede ocurrir de distintas formas, pero todas tienen el mismo resultado: un

usuario recibe un email que parece haber sido enviado de un cierto sitio, pero realmente ha

sido remitido desde otro. Es a menudo un intento de engañar al usuario para que revele

información sensible (por ejemplo, el password) o dañina.

Ejemplos de email spoofing que pueden afectar la seguridad del sistema son:

• mensajes remitidos por el administrador del sistema obligando a los usuarios a cambiar

su password por otro que se les proporciona, suspendiendo su cuenta si no se hace.

• mensajes remitidos por una persona de la "autoridad" obligando a los usuarios a

enviarle una copia del archivo de password o de otro tipo de información sensible.

Reacción

1. Revisa toda la información (cabeceras de los email y los archivos de estado del

sistema) relacionados con el email spoofing, siguiendo las políticas y procedimientos

de tu organización.

2. Examina los archivos de estado del tcp_wrapper, ident y sendmail para averiguar el

origen del email spoofing.

3. La cabecera del email trae a menudo un completo registro de los saltos que ha dado

hasta llegar al destino. La información en la cabecera (el Received: y el Message-ID),

junto con los archivos de estado (logs), deberían ayudarte a determinar cómo el

mensaje ha alcanzado tu sistema.

Prevención (Disuasión)

1. Usa firmas criptográficas (por ejemplo, PGP "Pretty Good Privacy" u otra tecnología

para encriptar) para intercambiar mensajes autentificados. je.

2. Configura tu demonio de correo para prevenir que nadie se conecte a tu puerto SMTP y

haga email spoofing.

Considera un único punto de entrada de email a tu sistema. Puedes hacer esto configurando tu

firewall para que las conexiones SMTP desde el exterior deban ir a través de un servidor

central de correo.

Page 50: (Manual de Linux Recopilacion_by Gandhi_)

8. Seguridad y Hacking en Linux

Seguridad en Linux

Bien ahora vamos a empezar con la seguridad en linux, y previamente como hackearlo, muy

bien empezamos. Nada mas conectarse por defecto tienes todos los puertos abiertos, lo que

tienes que hacer es lo siguiente: Edita el archivo /etc/inetd.conf y pon un '#' delante de todos

los servicios que no ofrezcas. Recuerda que esto se refiere los servicios que quieres DAR no a

los que quieres ACCEDER, o sea que para entrar en un ftp no necesitas tener abierto el puerto

ftp.

Truco: Lo que no sepas que hace ciérralo!

Truco: Puedes cerrar absolutamente todo. (Para entrar en algunas redes de IRC es necesario

abrir el puerto auth)

Truco: Algunos ataques automatizados, tipo nukes y otros, buscan siempre el mismo puerto,

por ejemplo el 139 (net-bios). Si te ves obligado a dar este tipo de servicios no seria una mala

idea cambiar el puerto por defecto, esto se consigue modificando en el /etc/services la línea

correspondiente al servicio, en nuestro caso podríamos sustituir:

netbios-ssn 139/tcp nbssn

por:

netbios-ssn 140/tcp nbssn

Con esto pasamos a dar el servicio de net-bios por el puerto 140 y el 139 se cierra. Cuidado!

Es muy probable que tengas que modificar los programas que usan net-bios para que sigan

funcionando.

El passwd :

En concreto /etc/passwd. Este es el archivo mas ansiado (junto con el de los passwords para

internet) por los hackers, así que lo mejor será protegerlo.

Asegúrate que sus permisos son:

-rw-r--r-- 1 roto roto 239 Oct 31 1997 passwd

Instala el paquete shadow-utils, este paquete protege los passwords encriptándolos en otro

archivo al que sólo tiene acceso roto, por lo que hacerse con el /etc/passwd no sirve de nada.

Además para los pies a la mayoría de crakeadores de passwords. Aunque parezca una

Page 51: (Manual de Linux Recopilacion_by Gandhi_)

tontería, usar shadow passwords es una de las protecciones más eficaces contra logins

indeseados.

Truco: Elige passwords difíciles de averiguar, que contengan letras, números y caracteres, y si

puede ser que la palabra no tenga sentido en ningún idioma. Por ejemplo mAKew3t$ es un

buen password.

Truco: Usa el programa John The Ripper para testear la seguridad de tus passwords, si es

capaz de crakearlos en pocas horas es que tu password no es seguro.

Limitando el acceso de roto:

El usuario roto es siempre un peligro potencial. El sistema considera que roto sabe

perfectamente lo que hace por lo que ni siquiera pedirá confirmación si por error formateamos

el disco, imaginaos el desastre...

Reduciendo las vías de acceso de roto al sistema minimizamos riesgos a la vez que nos

forzamos a nosotros mismos a dejar de trabajar con roto.

Edita el archivo /etc/securetty y deja solo las consolas en las que quieres que roto pueda

entrar. Este archivo contiene una lista de terminales (tty) en las que puede entrar roto, una por

línea. Eliminando las líneas que no deseemos evitamos el acceso de roto a ese terminal.

Conozco sistemas en los que roto no puede hacer ningún login y la única manera que tiene de

entrar al sistema es mediante el comando "su" que además solo puede ser ejecutado por un

grupo muy reducido de usuarios. Sin llegar a este extremo, algo recomendable es dejar por

ejemplo las tres primeras consolas para el acceso de roto.

Lo mejor seria que nunca se hiciese login como roto, en lugar de esto podemos usar el

comando su para tener privilegios de roto momentáneamente, cambiar lo que haga falta y

teclear exit para volver a ser usuario normal sin peligro de estropear nada.

Truco: Nunca, nunca, nunca, dejes acceso por telnet a roto, elimina todas las entradas con

ttyp?

Truco: Estas restricciones no protegen contra el uso del comando su!

Tcp_wrappers :

Para esto necesitas tener instalado el paquete tcp_wrappers, lo puedes encontrar en Cualquier

ftp de linux y seguramente en el CD de tu distribución ya compilado y pre-configurado.

Este software permite filtrar todas las peticiones de acceso a tu máquina y permitirlas o no en

función de unas reglas que tu mismo pones.

Page 52: (Manual de Linux Recopilacion_by Gandhi_)

Es importante saber que el puerto permanece abierto, lo que se cierra son las conexiones no

autorizadas, por lo que tcp_wrappers no nos protegerá contra ataques como nukes ni

esconderá el puerto ante un escaneado.

Uso de tcp_wrappers: para filtrar un puerto a través de tcp_wrappers debes definir ese puerto

en el /etc/inetd.conf con una línea parecida a esta:

ftp stream tcp nowait roto /usr/sbin/tcpd ftpd

Las reglas que permiten o no el acceso se definen en /etc/hosts.allow (para las conexiones

aceptadas) y /etc/hosts.deny (para las rechazadas).

La sintaxis es muy simple: puerto: host: comando

Ejemplo:

ftpd: ALL: spawn ( /bin/echo -e " Intruso %a %n en %d" ; wave -l10 -d1 -f2000 ) &

Esta línea, en el /etc/hosts.allow filtra los accesos al puerto ftp (ftpd) de todo el mundo (ALL) y

después de permitirle el acceso realiza los siguientes comandos (spawn):

/bin/echo -e " Intruso %a %n en %d": Saca por pantalla un mensaje indicando los datos del

intruso y el puerto atacado.

wave -l10 -d1 -f2000: Emite un sonido por si no estas atento al mensaje.

Otro ejemplo (un sistema cerrado a lo bestia):

ALL: ALL: twist (/usr/local/bin/teardrop %a ) &

Explicación: a los accesos a Cualquier puerto (ALL) por parte de Cualquier persona (ALL)

deniega el acceso (twist) y lanza un teardop al curiosillo de turno.

Muchísima mas información en man inetd.conf, man tcpd, man hosts.allow

El orden en que se definen las reglas es importante, ya que tcp_wrappers las va examinado

una a una desde la primera a la ultima hasta encontrar una regla que se cumple, momento en

el que ejecuta el comando indicado. Por eso es necesario que las reglas estén ordenadas de

mas permisivas a mas restrictivas, por ejemplo si en hosts.allow ponemos en la primera línea

ALL: ALL: todas las conexiones serán aceptadas independientemente de que en líneas

posteriores filtremos ciertos o no, captáis? si no e-mail me :)

Truco: Define en /etc/hosts.allow los puertos a los servicios que quieras ofrecer y pon en

/etc/hosts.deny ALL: ALL

Page 53: (Manual de Linux Recopilacion_by Gandhi_)

Truco: Los parámetros permiten hacer cosas al intruso usando spawn (programa %a)... deja

volar tu imaginación.

Truco: La línea ALL: PARANOID detecta los intentos de spoof y similares

Services :

Este archivo, localizado en /etc/services es una base de datos que contiene información sobre

los puertos.

Es importante remarcar que no indica si un puerto esta abierto o cerrado, es solo una guía para

que los programas sepan localizar los servicios y como responder a las peticiones. Por lo tanto

en principio no debemos tocar nada de este archivo. El archivo donde se abren o cierran

puertos es inetd.conf.

De forma "extraoficial" podemos comentar líneas para cerrar los puertos que definen. Atención!

Este no es un método correcto y solo lo recomiendo en el caso de que el puerto implicado no

sea definido en el inetd.conf y no podamos usar un firewall para protegerlo.

Podemos ver más información en man services.

Nuevos puertos/servicios:

Juntando todo lo aprendido hasta aquí sobre servicios y puertos ya estamos en disposición de

crear nuestros propios puertos con sus respectivos servicios.

Como sencillo ejemplo voy a crear un nuevo servicio en el puerto 22 que será atendido por un

demonio telnet. Para distinguirlo del telnet normal (puerto 23) le llamaremos telnet2. Tenemos

que modificar los siguientes archivos:

/etc/services: aquí añadimos el servicio, definiendo el puerto que usa y su nombre:

telnet2 22/tcp telnet2 # Telnet 2

/etc/inetd.conf: aquí definimos las opciones y el demonio que atiende al nuevo servicio:

telnet2 stream tcp nowait roto /usr/sbin/tcpd in.telnetd2

Usar in.telnetd2 en lugar de in.telnetd es un truquillo para poder distinguir fácilmente los dos

servicios y poderlos configurar por separado, no olvides hacer un link de in.telnetd a in.telnetd2

/etc/hosts.allow: por supuesto, el nuevo servicio puede ser filtrado por tcp_wrappers para

delimitar su accesibilidad:

Page 54: (Manual de Linux Recopilacion_by Gandhi_)

in.telnetd2: ALL: twist (echo -e "Acceso de %a en %d" > /dev/tty11) &

El firewall:

El firewall es uno de los sistemas de protección mas potente junto al uso de tcp_wrappers.

Para usarlo necesitaremos soporte firewall en el kernel, esto se consigue fácilmente activando

la casilla de

[*] Network firewalls

[*] IP firewalling

durante la configuración del kernel. Básicamente es solo esto Aunque dependiendo de cada

uno pueden hacer falta activar otras opciones (soporte ethernet...)

Compaginar un firewall con la herramienta ipchains añade otro nivel de seguridad a nuestro

sistema. Recordad que los puertos protegidos por firewall no se ven con un escaneado de

puertos ni son sensibles a nukes ni exploits (algunos scanners como nmap son capaces de

reconocer puertos protegidos por firewall) puesto que toda la información que se les envía es

sencillamente eliminada.

Para usar ipchains pon estas líneas en tu /etc/rc.d/rc.local:

/sbin/ipchains –F

/sbin/ipchains -I input -p tcp -s 127.0.0.1

/sbin/ipchains -A input -p tcp -d 0.0.0.0/0 515 -j DENY

Esto nos permite acceso total a nuestra propia maquina y limita los accesos al puerto 515 (el

de la impresora) cosa que no podíamos hacer con tcp_wrappers.

Gracias a Javi Polo por esto.

A partir de aquí las posibilidades de configuración son casi infinitas: detectar spoof, seleccionar

los protocolos de entrada, salida, definir rangos de IPs "amigas" ... sean cuales sean tus

necesidades hay una forma de cubrirlas con ipchains. Lee el ipchains-howto y el man ipchains

para mas información.

En el caso de usar antiguos kernels de la serie 2.0.x se utiliza la herramienta ipfwadm, si este

es tu caso pon estas lineas en tu /etc/rc.d/rc.local:

Page 55: (Manual de Linux Recopilacion_by Gandhi_)

/sbin/ipfwadm -I –f

/sbin/ipfwadm -I -a a -S 127.0.0.1

/sbin/ipfwadm -I -a d -P tcp -D 0.0.0.0/0 515

Truco: Un firewall permite tener control sobre puertos no definidos en el inetd.conf y por lo tanto

fuera del alcance de tcp_wrappers.

Actualízate !:

Mantener un sistema actualizado previene contra el ataque de exploits provocados por bugs en

el software.

Actualiza el kernel siempre que aparezca una nueva versión estable, por ejemplo el kernel

2.0.34 no es sensible a ninguno de los nukes conocidos a la hora de realizar este documento.

Si tu kernel es anterior estudia seriamente la posibilidad de actualizarlo.

Actualiza los demonios de todos los servicios que ofrezca tu máquina para evitar sorpresas. La

web de RootShell es un buen sitio donde mantenerse informado.

Truco: Por algún motivo el IMAP y el sendmail son especialmente sensibles a exploits. Si usas

alguno de los dos asegúrate de tener siempre la ultima versión disponible.

Truco: Si te ves obligado a recibir conexiones por telnet estudia la posibilidad de sustituir este

servicio por el SSH (Secure SHell) muchas más seguras y con muchas posibilidades que el

telnet tradicional.

9. Preparativos para instalar GNU/Linux®

Introducción

Uno de los puntos más importantes para instalar Linux es tener listo nuestro disco duro. Parece

un tanto raro el comentario pero ciertamente es donde más de un usuario se pierde,

especialmente cuando tienen que particionar y cosas así, por lo que lo explicaremos

brevemente.

Dado que actualmente la mayoría de las PC llegan con Windows preinstalado (¿dije la

mayoría?, más bien todas), los usuarios no se preocupan por mucho más que sólo prenderla y

cuando llega el caso, reinstalar con un CD, pero cuando tiene que hacer que el disco duro

contenga otro sistema operativo (incluso otra versión de Windows), necesitar partir (particionar)

el disco duro. Y aquí empezamos con los problemas.

Page 56: (Manual de Linux Recopilacion_by Gandhi_)

Aquellos afortunados que tengan la posibilidad de adquirir otro disco duro para instalar Linux,

pues adelante y se ahorrarán todo lo relativo a particionamiento de este tutorial, pero en caso

contrario, pues continuamos.

Un disco duro se divide, físicamente, en cilindros y cada uno de estos se divide en sectores,

regularmente de 512 bytes y es en este espacio donde la información es grabada. En el

momento que indicamos que un disco se divida en varias unidades, realizamos el proceso

llamado particionamiento, en el que se le asigna un espacio especifico a cada partición.

Verifiquemos nuestro hardware

Un elemento que regularmente los usuarios novatos pasan por alto es el relativo a verificar la

compatibilidad/estado de su hardware, lo que puede traer como consecuencia que el sistema

no quede bien instalado, sea inestable o de plano nos mande por un tubo el instalador, por lo

que debemos verificar los siguientes puntos:

• Revisar que nuestro hardware esté soportado por la distribución que vamos a utilizar.

• Revisar que funcionen correctamente las tarjetas (red, sonido, módem).

• Revisar que el disco duro no tenga sectores dañados (debe ejecutarse el scandisk).

• Si se manifiestan problemas con Windows (lo que no es raro), como que se congele la

máquina o no termine de encender, recomendamos enviarla antes a un servicio técnico

para que se le revise la tarjeta madre o el estado del RAM.

Las revisiones de compatibilidad de hardware las pueden buscar en:

• Red Hat: http://hardware.redhat.com/hcl/

• Mandrake: http://www.linux-mandrake.com/en/hardware.php3

• SuSE: http://hardwaredb.suse.de/index.php

• Debian: http://www.debian.org/

• Slackware: http://www.slackware.com

Para otras distribuciones deberán revisar la página Web del proveedor.

En los casos de hardware desconocido o no compatible (caso clásico son los winmodems y

softmodems) o que tengamos dañada alguna tarjeta, lo más recomendable es adquirir uno

nuevo. Para el caso concreto de los módems, casi cualquiera externo por hardware funciona.

Para los que no sepan el porque, Linux no soporta ciertos dispositivos y tarjetas debido a que

los controladores los hacen los mismos miembros de la comunidad GNU/Linux y esto es

posible sólo cuando el fabricante libera las especificaciones de sus componentes, por eso

siempre hay un un cierto período entre que un nuevo dispositivo es lanzado y que lo soporte

este SO; caso contrario con Windows/Macintosh, ya que los fabricantes mismos son quienes

Page 57: (Manual de Linux Recopilacion_by Gandhi_)

desarrollan y prueban los controladores. El caso de los módems por software

(winmodems/soltándome) es especial, ya que diversas funciones que debería manejar el

hardware se le relega a que las maneje Windows directamente, lo que es una ventaja para los

fabricantes al ser muy baratos de producir, peor que imposibilita su uso fuera del SO de las

ventanas.

Una revisión previa es importante, ya que es frecuente que un usuario incauto simplemente no

pueda configurar su módem, tarjeta de red o de sonido y le eche la culpa al sistema operativo,

o peor aún cuando un hardware dañado truene la instalación, lo que los lleva a decir "Linux no

sirve". El caso es sencillo, son los componentes, no el software. Si aparentemente todo está

bien, pues continuamos.

Antes que nada, respaldamos

A menos a que seamos masoquistas, hayamos enloquecido o nos caiga mal el propietario de la

información, es kamikaze (viento divino o irse de cabeza al barranco, como lo quieran traducir)

no respaldar la información del disco duro; por lo que pueden utilizar un quemador de CD's,

una unidad de Zip o Jaz o una unidad de red, también pueden utilizar alguna herramienta para

generar una imagen de su disco, como:

• Partition Image for Linux (http://www.partimage.org)

• Norton Ghost (http://www.symantec.com/sabu/ghost/ghost_personal)

• PowerQuest Drive Image (http://www.powerquest.com/driveimage)

¿Para que particionamos?

Los motivos para particionar son varios e incluso es aconsejable aún cuando no se vaya a

instalar otro sistema operativo, porque:

• Especifica partes donde se guarda la información y donde se guardan los programas,

de manera que si se corrompe una unidad, no se pierde todo. Útil también con muchos

virus que atacan la unidad C de una PC.

• Mejora el desempeño del disco duro, al tener que leer sectores más pequeños de disco

duro y no toda la unidad.

• Limita el tamaño al que pueden crecer las carpetas de diversos usuarios (en ambientes

de redes), para evitar que saturen el disco duro y el sistema operativo ya no pueda

operar.

¿Con que particionamos?

Desde DOS podemos utilizar una muy confiable pero limitada herramienta llamada fdisk, la cual

puede eliminar y crear nuevas particiones, sin embargo el contenido del disco duro se pierde y

Page 58: (Manual de Linux Recopilacion_by Gandhi_)

no hay manera de recuperarlo. Para activarlo simplemente es necesario, desde el prompt de

DOS, teclear fdisk, eliminar todas las particiones existentes y luego crear las nuevas, después

de salir de fdisk debemos dar formato las unidades ya que se pierde absolutamente todo. Nota :

esta herramienta no puede funcionar desde Windows, es necesario iniciar una sesión de DOS

para ello.

Para particionar mediante fdisk pueden apoyarse en este COMO de Linuxdoc:

http://www.linuxdoc.org/HOWTO/mini/Partition/partition-5.html.

Se pueden recuperar particiones creadas con fdisk, pero será mejor ser cuidadoso y leer antes

el siguiente manual para soporte:

http://www.linuxdoc.org/HOWTO/mini/Partition/recovering.html.

Otras opciones para crear particiones son:

• FIPS. Legendaria herramienta libre que se distribuye con Red Hat y otras distribuciones

de Linux desde hace tiempo, pero que tiene varias limitaciones, es software libre

(http://www.igd.fhg.de/~aschaefe/fips).

• parted: Particionador del proyecto GNU, es software libre

(http://www.gnu.org/software/parted/parted.html).

• Partition Magic: Permite crear, eliminar, mover y modificar las particiones desde un

entorno gráfico, es software comercial - $70 USD -

(http://www.powerquest.com/partitionmagic/index.html)

• Disk Drake: Script en Perl/Gtk para crear, modificar y eliminar particiones que se

distribuye principalmente con Mandrake, es software libre (http://www.linux-

mandrake.com/diskdrake)

• Disk Druid: Es el particionador por defecto de la instalación de Red Hatâ„¢, software

libre.

• Ranish Partition Manager: tiene un sistema de arranque compatible con Windows

9x/NT/2000 y Linux, es software libre (http://www.ranish.com/part/)

• The Partition Resizer v. 1.3.4: permite mover y modificar particiones existentes,

Freeware (http://www.utilitygeek.com/cgi-

bin/download.pl?http://members.nbci.com/Zeleps/Files/PRESZ134.ZIP)

¿Cómo divido mi disco duro?

El tamaño de las particiones dependen del tamaño del disco es lógico que mientras más

grande es éste, más espacio puedes dejar a Windows por un lado y Linux por el otro, pero...

Cuidado . Un aspecto muy importante es el hecho que muchos BIOS, incluyendo los de

algunas computadoras nuevas (contra lo que dicen los fabricantes), no pueden iniciar un

Page 59: (Manual de Linux Recopilacion_by Gandhi_)

sistema operativo que se encuentre después del cilindro 1024 (aproximadamente 7,168 MB),

por lo que al determinar el tamaño debemos cuidar donde colocaremos la partición de Linux.

En principio, a cada sistema operativo hay que dejarle el espacio suficiente para que trabajo, lo

cual es variable, por ejemplo, Windows 95 ó 98 pueden funcionar dentro de particiones de 3

GB, con espacio para nuestras aplicaciones y archivos, pero Windows 2000 necesita de al

menos 8 GB para trabajar bien como estación de trabajo (como servidor es mucho más); Red

Hat necesita al menos de 600 MB para una instalación mínima, pero yo en lo personal dejo

entre 2 y 3 GB sólo para el sistema operativo, aparte va el espacio para usuarios, archivos de

bitácora y demás; es cosa de como se acomoden y lo que vayan a cargar para determinar

cuanto espacio necesitan.

Otro comentario es que, regularmente, Windows debe ir en la primera partición y que este

sistema operativo es el "propietario" del Master Boot Record (MBR), que se ubica en el sector 0

del disco y que tiene la información para el arranque de (los) SO(s).

Hace mucho tiempo cuando se utilizaba Lilo como arrancador para GNU/Linux, existía la

limitación de tener que instalar éste y la partición que contuviese a /boot antes del cilindro 1024

del disco duro. Siendo que actualmente casi todas las distribuciones de GNU/Linux utilizan

Grub, esta limitación ya no la hay.

Pueden obtener más información en:

• http://www.linuxdoc.org/HOWTO/mini/Linux+Win95/

¿Cómo identifico la unidad donde voy a instalar Linux?

Cuando vemos un disco duro o unidades dentro de Windows, se nos presentan como letras del

abecedario (C, D, E, etc.) pero dentro de Linux, es bastante diferente, ya que su estructura

semeja un árbol donde cada partición y dispositivo de lectura/escritura se representa como un

directorio, los nombres de las unidades de disco duro son:

• hda: disco duro principal

• hdb: disco duro secundario

• hda1: primera partición del disco duro principal.

• hdb2: segunda partición del disco secundario

Ahora, para ejemplificar todo este proceso, supongamos que tienen un disco duro de 20 GB y

generan dos particiones, uno de 5 GB para Windows y el resto para Linux, entonces es hda1

(Windows) y hda2 (Linux), siendo en este último donde crearíamos las particiones del sistema.

¿Qué particiones necesito para Linux?

Page 60: (Manual de Linux Recopilacion_by Gandhi_)

NOTA: Estas particiones se crean al momento de instalar, no de dividir el disco duro para

varios sistemas operativos, pero es importante que las conozcan de antemano.

En principio sólo se pueden montar tres y es suficiente para que funcione:

/boot

Es la partición donde se leen los parámetros para iniciar el sistema. Requiere al menos

75 MB en Red Hat Linux 8.0 y 9.0.

/ o raíz

Es donde colocamos el sistema operativo. Requiere de 350 a 512 MB.

swap

Espacio físico para la memoria virtual del sistema. Debe asignarse el doble del tamaño

del RAM físico. Esta será siempre la última partición del disco duro.No se asigna punto

de montaje.

Otras particiones son:

/usr

Contiene la mayoría de los binarios (ejecutables), bibliotecas compartidas, manuales,

datos de aplicaciones e imágenes que utiliza el sistema, cabeceras de desarrollo, el

árbol del kernel y documentación. Requiere al menos 1.5 GB en instalaciones básicas.

Debe considerarse el software a utilizar a futuro. Se recomiendan no menos de 5 GB y

hasta 7.5 GB en instalaciones promedio.

/tmp

Archivos temporales que generan los programas. Requiere al menos 350 MB y puede

asignarse hasta 2 GB o más dependiendo de la carga de trabajo y tipo de aplicaciones.

/var

Corresponde a la partición de datos de servicios. Requiere al menos 350 MB en

estaciones de trabajo sin servicios. En servidores regularmente se le asigna al menos

la mitad del disco duro.

/home

Corresponde a la partición de datos de usuarios. Es donde se colocan las carpetas

para cada usuario con los perfiles de cada cuenta. En estaciones de trabajo se asigna

al menos la mitad del disco duro a esta partición.

Por costumbre (y experiencia) recomiendo crear particiones independientes para /boot, / (raíz),

/home, /var y swap. También es aconsejable una para /usr y /tmp.

Page 61: (Manual de Linux Recopilacion_by Gandhi_)

10. Entrar al sistema sin saber la password

Cuando aparece el prompt de Lilo o el del disco de arranque escribir 'linux single' y entras como

root sin necesidad de password después hay que entrar con un editor en /etc/passwd, buscar

una línea que pone root:xxxx:0:0:root:/root:/bin/bash, borrar xxxxx dejando root::0:0, etc así has

borrado la pasword.

Otra opción: desde DOS, utilizar un editor del disco duro (Norton) buscar la cadena root en el

HD y eliminar la password.

Otra opción:

en el arranque, escribir

init=/bin/bash

esto hace que se lance bash directamente sin pasar por el init, o sea, sin pedir clave.

Probablemente hay que remontar las particiones:

mount -t -o remount, rw /

mount -a -t nonfs

para estar seguro de que el PATH esta correcto hacer:

source /etc/profile

source /root/.profile

y por último, a partir de una cuenta no-root, hacer su; para ver si la clave de root esta ok:

paswwd

su < usuario-no-root >

su

exit

exit

reboot

11. Configurar LILO

Fichero /etc/lilo.conf:

# Sección global de arranque de LILO

boot = /dev/hda

compact # si da problemas, descomentar esta opción

delay = 50

vga = normal # forzando 'sane-state'

Page 62: (Manual de Linux Recopilacion_by Gandhi_)

ramdisk = 0 # paranoia setting

#

# Sección de configuración de partición de LINUX arrancable

image = /vmlinuz

root = /dev/hdc2

label = linux

#

# Sección de configuración de partición de DOS arrancable

other = /dev/hda1

label = dos

table = /dev/hda

#fin

Sustituye las particiones por las tuyas, la primera que pongas será la que arranque por defecto

pasado el tiempo 'delay' en décimas de segundo.

Una vez hayas modificado este archivo, ejecuta lo siguiente:

root::/# lilo

Veras como te aparecen por pantalla las particiones que hayas configurado para gestionar por

lilo y la que hayas colocado como 'defecto' aparece con un asterisco.

Otra versión del /etc/lilo.conf

boot=/dev/hda

# donde se instalará el LILO

compact

install=/boot/boot.b

map=/boot/map

vga=normal # pantalla en modo VGA

ramdisk=0 # no creamos disco virtual, necesario para

# crear los discos boot y root de la instalación

delay=50 # espera 10 segundos. [Ctrl] nos muestra las opciones

# que seleccionaremos escribiéndola

default=linux-2.0.32 # establece el SO que arrancará por defecto

image=/vmlinuz # la imagen del kernel a arrancar

label=linux-2.0.30 # el nombre asociado

root=/dev/hdb1 # partición donde está la correspondiente imagen

alias=l # para abreviar en la selección

read-only

Page 63: (Manual de Linux Recopilacion_by Gandhi_)

image=/boot/zImage-2.0.32

label=linux-2.0.32

root=/dev/hdb1

alias=z

read-only

other=/dev/hda1

table=/dev/hda # para que msdos encuentre la tabla de particiones

label=msdos

alias=m

----

Cuando has editado tu lilo.conf, para instalarlo tienes que ejecutar, como root,

# lilo

y se instalará en el Master Boot Record de hda (en mi caso).

Debe ser una partición a la que tenga acceso la Bios del ordenador..

En Netscape los ficheros .gz y .tgz en lugar de bajártelos te los muestra Edit - Preferences -

Navigator - Applications. Buscamos en la lista "Zip compressed data", pulsamos el botón "Edit",

en Suffix añadimos ",gz,tgz" y abajo seleccionamos "Save to disk". Ok, Ok y listos :-). (Hue-

Bond)

De esta forma cuando pinches uno de estos ficheros te preguntará si quieres guardarlo, en

lugar de intentar ejecutarlo

12. Trucos Linux

Atajos del teclado

KDE brinda varias opciones para cuando se cansen del mouse.

Presionando <CTRL+ ESC> cambiarán a otra aplicación.

Con <ALT+TAB>, como era de esperar, rotarán entre todas las aplicaciones activas. Usando

<CTRL+Fx> pueden cambiar de consola virtual y, por último, presionando <ALT+F4> se cierra

la ventana actual, como sucede en Windows.

Opciones de Ventana

Haciendo doble clic en la barra de Título de un programa, la ventana desaparece, y queda sólo

esta barra. Este efecto se llama shadowing y es algo que siempre me gustó de las Mac.

Haciendo clic con el botón central del mouse en los botones para maximizar y minimizar las

Page 64: (Manual de Linux Recopilacion_by Gandhi_)

ventanas, se ejecutará la función, pero solamente a lo largo o a lo ancho de la pantalla, sin

tomar posesión total del Escritorio.

Ejecutar al inicio

Para ejecutar un programa al inicio de KDE sólo tienen que crear un kdelnk hacia él (pueden

encontrar templates de kdelnk en la carpeta TEMPLATES del Escritorio) y editar sus

propiedades. Lo único que resta hacer es arrastrar este kdelnk a la carpeta AUTOSTART

dentro del Escritorio.

Mensaje del día

El mensaje del día (MOTD) no suele ser muy útil en sistemas hogareños, por lo que este script

nos permitirá rotar entre diferentes archivos de arte ASCII cada vez que iniciemos el sistema.

Creen e[ directorio /etc/splash y pongan todos los archivos ASCII allí. luego, como root,

agreguen un trabajo cronometrado (cron) con el siguiente- script:

#! /bin/sh

cd /etc/splash/

[ -f splash &&

SPLASH='/bin/cat splash'

[ -z "$SPLASH" ] ||

[ ! -f "$SPLASH" &&

SPLASH='/bin/ls /bin/sed -n ´1p´'

/bín/cp "$SPLASH" ../motd && {

/bin/ls /bin/sed -n

´1h;/^´$SPLASH,$/{${x;p;q;};n;p;}´ >. splash

}

Pantalla de bienvenida

Es posible crear un mensaje para que todos los usuarios que se logeen al sistema lo vean. Es,

en cierta forma, similar al mensaje que aparece cuando se conectan a un servidor de IRC.

El archivo en cuestión se encuentra en /etc/motd (por Message Of The Day); edítenlo a gusto y

necesidad con cualquier editor de texto.

Reinstalé Windows y perdí Linux

A Windows no te gusta que alguien más use la MBR; por eso, cuando instalamos cualquier

versión, automáticamente sobrescribe la MBR a su gusto.

Page 65: (Manual de Linux Recopilacion_by Gandhi_)

Si teníamos Linux instalado con LILO, necesitaremos un disquete booteable para ingresar en

Linux y poder ejecutar /sbin/lilo para que, nuevamente, LILO pueda instalarse en la MBR

Nombres muy largos

Una particularidad de Linux (como en todos los sistemas basados en UNIX) es que los archivos

suelen tener nombres muy largos. Pasarlos como parámetros puede volverse complicado

cuando no los recordamos de memoria. Por eso el shell Bash nos ofrece su función de

autocompletado, mediante la cual, al escribir las primeras letras del nombre y presionar <TAB>,

Bash mostrará las coincidencias; esto nos evitará el engorro de tipear el nombre completo del

archivo.

Inicio/Ejecutar

Presionando <ALT+F2> verán la línea simple de comando, la cual les permitirá ingresar el

nombre de un programa o una URL para navegar.

Reseteando la terminal

Cuando la pantalla, por cualquier motivo, se llena de basura, podemos utilizar este programa

en C, el cual reseteará y limpiará cualquier terminal VT100. Copien este código en un archivo:

#include

int main(void)

{

Printf(P\033c");//resetea terminal

printf(P\033[2j");// limpia la pantalla

return (0);

luego graben el archivo y escriban "make archivo", siendo archivo el nombre con el que lo

grabaron. Ahora pueden utilizarlo en cualquier momento para resetear su terminal

¿Dónde está?

En el inmenso mar de directorios de Linux, puede resultar complicado encontrar un archivo

determinado. Para ello pueden utilizar el comando find, por ejemplo: find /-name "nombre",

donde la "/" es el directorio de inicio de la búsqueda (en este caso buscará en todo el sistema

de archivos, así como en cualquier unidad montada) y "nombre" es la cadena a buscar

(reemplácenlo por el nombre del archivo que buscan). Como todo comando en Linux, tiene un

montón de opciones más.

Olvidé la contraseña de root

Pueden pasarte un parámetro 1 cuando se ejecute LILO, de la siguiente forma: "lilo 1". Así

entrarán como root y podrán ejecutar el comando passwd o editar directamente el archivo

/etc/passwd. También sirve arrancar con linux single y añadirte el user root o el que sea

manualmente :)

Page 66: (Manual de Linux Recopilacion_by Gandhi_)

Eliminar escritorios virtuales

Puede parecer una idea rara, pero eliminar escritorios virtuales que no utilicemos liberará

recursos. Editen el archivo /etc/inittab y busquen las líneas que indican el inicio de una terminal

"getty", por ejemplo: "2:123:respawn:/sbin/míngetty tty2". Eliminen cada una de esas líneas por

escritorio que quieran quitar; el número posterior a tty indica el número de terminal (a los cuales

accedemos presionando <ALT+Fx>). Un número de tres terminales es suficiente para operar el

sistema. Graben el archivo y reinicien. Ya no tendrán tantos terminales, y habrán ganado unos

megabytes de memoria.

Se colgó todo

Cuando experimentamos en Linux, precisamente en el entorno gráfico, a veces sucede que

todo se cuelga. Para no ir directamente al botón de reset, pueden probar la combinación de

teclas <CTRL+ ALT+BACKSPACE>, que matará todos los procesos que se encuentren en

ejecución y pasará a modo texto o al login gráfico si lo tienen activado.

Montaje automático de disquetes VFAT

Abran una consola (la de su preferencia) y ejecuten el comando

mcedit Desktop/floppy.kdelnk, que abrirá un editor de texto con el archivo de acceso al disquete

del Escritorio. En éste debemos modificar el valor contenido dentro de la línea FStype=Default

por FSType=v-fat.

Para que todos puedan usar kppp

Deben hacer clic con el botón derecho en el archivo situado en /usr/bin/kppp, y en la solapa

[Permissions], hacer clic en el checkbox [Set UID], en la línea [User].

Esto hará que todos los usuarios puedan iniciar Kppp y no sólo el root. Recuerden que para

realizar los cambios deben estar logueados como root.

Navegación con palabras clave

Konqueror, el oficial de KDE, nos permite definir palabras nos servirán como atajos para los

sitios más visitados, desde [Settings/Configure Konqueror/Enhaned Browsing].

Por ejemplo, al escribir "gg:linux" en barra de Dirección, se abrirá el buscador Google con

palabra Linux.

Eliminar el inicio gráfico

Si desean el inicio en modo consola, pero su distribución instala el inicio gráfico de forma

predeterminada, pueden cambiarlo modificando el archivo inittab, dentro del directorio /ETC.

Hagan una copia de respaldo y editen el archivo inittab. Con la búsqueda encuentren la línea:

id:5:initdefault

Y cámbienla por lo siguiente: id:3:initdefault:

Page 67: (Manual de Linux Recopilacion_by Gandhi_)

En el próximo inicio de sesión tendrán el clásico modo texto. Para restaurar el inicio gráfico,

hagan exactamente lo contrario.

Cómo cambiar la resolución y la profundidad de color en X

Estos parámetros son controlados por el Servidor X, independientemente del manejador de

ventanas que utilicemos. Si en la configuración de X hemos agregado varias resoluciones,

podremos cambiar de resolución con las teclas <CTRL++>. La profundidad de color, en

cambio, se modifica a través del script de inicialización startx, de la siguiente manera: "startx -

bpp <profundidad>", donde profundidad puede tomar los valores 8, 16, 24 o 32 para las

distintas opciones. Es posible cambiarlo permanentemente desde el configurador XF86Setup.

Cómo evitar los pings

Si quieren evitar que su equipo responda a las peticiones ping de la Red, pueden usar este

truco. Es necesario contar con un kernel 2.1.x o superior. Para lograrlo, en la consola deben

ejecutar el siguiente comando: "echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all"'. Con él

evitarán que su máquina responda a cualquier ping proveniente de la Red.

Para revertir la opción, en la consola ejecuten el comando

"echo 0 > /proc/sys/ net/ipv4/icmp_echo_ignore_all", y todo volverá a ser como antes.

Descarga automática de webs completas

Para descargar una web completa con todas las páginas a las que apunta y todos sus

elementos de forma recursiva, puede usar la aplicación wget tecleando el siguiente comando:

wget -r http://www.lawebquesea.com

Y si lo que tiene es un fichero de texto con un listado de webs puede descargarlas todas del

tirón tecleando:

wget -r -i listadewebs.txt

Eso sí, si no tiene una conexión muy buena tendrá que esperar un rato hasta bajar toda la web.

NOTA: Algunas páginas están expresamente protegidas para que no sean bajadas por este

método, por lo que esto no funcionará en todos los casos. Tampoco funciona con páginas

creadas con Flash

Eliminar ficheros Core

ln -s /dev/null core (envía los core a /dev/null)

ulimit -c 0 (limita el tamaño de los core a 0)

Imprimir paquetes instalados con dselect

método 1 - dpkg --get-selections | awk '$2 == "install" { print $1 }'

Page 68: (Manual de Linux Recopilacion_by Gandhi_)

método 2 - ( cd /var/lib/dpkg/info; ls *.list ) | sed -e "/\.list/s///"

método 3 - dpkg -l

Montar cdrom y floppy sin ser root

Como root te creas los directorios:

/mnt/floppy /mnt/a: /mnt/cdrom

metes en /etc/fstab las siguientes lineas :

/dev/cdrom /mnt/cdrom iso9660 ro,user,noauto 0 0

/dev/fd0 /mnt/a: msdos user,noauto 0 0

/dev/fd0 /mnt/floppy ext2 user,noauto 0 0

ahora ya puedes montar un disquete Ms-dos , un disquete ext2 o un Cd-rom, respectivamente,

con :

mount /mnt/a:

mount/mnt/floppy

mount/mnt/cdrom

El nombre del dispositivo puede ser distinto, por ejemplo, en vez de /dev/cdrom puedes tener

/dev/hdc... etc., depende de cada cual.

Ampliar tamaño de partición Linux

Bueno, ampliar no creo que se pueda, pero si te creas otra partición ext2, la montas debajo de

/, como por ejemplo /home, luego te creas un directorio /home/usr/local y lo enlazas a /usr/local,

etc... tendrás la sensación de que efectivamente tu partición / ha aumentado de tamaño :-).

O mejor todavía:

te creas una nueva partición, por ejemplo: /hdc3

te copias todos los directorios de /usr a /mnt/hdc3

te renombras el fichero /usr como /usr_ant por si las moscas

te creas el fichero /usr vacío

actualizas el /etc/fstab con la siguiente línea :

Page 69: (Manual de Linux Recopilacion_by Gandhi_)

/dev/hdc3 /usr ext2 defaults 0 0

rearrancas, y después de unos días, para ver que todo funciona bien, borras /usr_ant

Personalizar tecla de función

Utilizo un pequeño script que tengo asociado a una tecla de función en mi .inputrc, así, cada

vez que quiero meter o sacar un CD, le doy a la tecla F8.

## FICHERO: $HOME/.inputrc

# Personalizar teclas de función

# F8

"\e[19~": "(. ~/scripts/cdrom)&\C-m"

Y el script es:

#!/bin/bash

if [ `grep -c cdrom /etc/mtab` = 0 ] ;

then mount /mnt/cdrom && cd /mnt/cdrom ;

else umount /mnt/cdrom && eject /dev/cdrom ;

Eliminar paquetes instalados en Debian

dpkg --remove nombre_paquete_sin_extension_deb

Eliminara el paquete aunque no los ficheros de configuración que ese paquete pudiera tener.

dpkg --purge nombre_paquete_sin_extension_deb

Eliminara todo.

Hacer disco de arranque Linux

cp /boot/vmlinuz /dev/fd0

Así de simple, siempre y cuando el kernel contenga la información sobre cual partición

arrancar, etc. lo que se puede indicar así:

rdev /boot/vmlinuz /dev/tuparticionroot

rdev /boot/vmlinuz indicará cual tiene configurada:

chanae:~# rdev /boot/vmlinuz

Root device /dev/hda3

Page 70: (Manual de Linux Recopilacion_by Gandhi_)

News off-line con Netscape

El Netscape no hay ninguna opción para bajarse las news, pero con el siguiente truco se puede

conseguir el mismo efecto:

Lo primero es crearse dos nuevos directorios en el Message Center con "New Folder" (yo los

llamo Linux y Linux_Archive).

Abres el grupo es.comp.os.linux y le dices que te baje todos los mensajes. Después en menú

"View" marcas "Messages" y "News". Eso expande todos los Treads.

Ahora los marcamos para bajarlos. Lo podemos hacer con menú "Edit", "Select", "All" (o más

rápido Alt+A). Y los bajamos con "File" al directorio que hemos creado.

Sin cerrar la conexión debemos marcarlos todos como leídos. Para ello "Mark" y "All Read". Y

ahora podemos cerrar la conexión.

Para leerlos vamos a nuestro nuevo directorio Linux y los podemos ordenar cómo queramos...

"View", "Sort"... yo lo tengo en "By Subject". Los que me interesan los archivo en el otro

directorio que creé ("Linux_Archive") y los que no a la papelera ("Delete").

Como seleccionamos la opción "View", "New", la próxima vez que entremos en el grupo sólo

nos bajará los nuevos mensajes.

Como formatear diskettes

formato tipo msdos:

mformat a:

formato tipo ext2:

fdformat /dev/fd0H1440

mkfs.ext2 /dev/fd0

Para Linux --> ext2

$ mkfs.ext2 [options] /dev/fd0

ó

$ mke2fs [options] /dev/fd0

El usuario que formatea deberá tener permiso de escritura para `/dev/fd0'. Eso normalmente se

consigue añadiéndolo al grupo `floppy' (addgroup user group).

Page 71: (Manual de Linux Recopilacion_by Gandhi_)

Para msdos

$ mkfs.msdos [options] /dev/fd0

ó

$ mkdosfs [options] /dev/fd0

Pero también hay otras utilidades para formatear discos DOS. Mira a ver si tienes el paquete

`fdutils', que permite formatear los discos a mayor capacidad.

Como hacer que linux reconozca ampliación de memoria

He añadido 64 megas nuevos al aparato con lo que sumo 80 megas el problema es que linux

solo me reconoce 64 ¿como hago para que reconozca los 80?

pon append="mem=80M" en lilo.conf

o loadlin vmlinuz mem=80M

Primer editor

Una de las primeras dificultades con las que se topan los novatos es cómo ver y editar ficheros.

El "less" está más o menos bien aunque es un poco "soso". El "vi" puede ser un auténtico

trauma.

Para los que acaban de llegar a linux puede que les sea interesante este "truco":

1) Instalar el Midnight Commander.

2) Añadir en el ~/.bashrc estás líneas:

alias lee='mc -v ' #ojo, que hay un espacio detrás de la v.

alias edit='mcedit'

3) teclear "exit" e iniciar una nueva sesión.

A partir de entonces se puede ver el contenido de un fichero con "lee fichero" (además lee

fichero comprimidos) y editarlo con "edit fichero".

La tecla F10 es para salir, y la tecla F9 para abrir el menú.

Bueno, esto es lo que he hecho yo, y me gusta más que less y vim, pero hay una pega, y es

que no puedo pegar en el mcedit con el ratón lo que previamente he copiado en otro terminal.

Page 72: (Manual de Linux Recopilacion_by Gandhi_)

(ricardovm)

Pues lo acabo de probar:

Mayúsculas + Botón Izquierdo: inicio de la selección

Mayúsculas + Botón Derecho: fin de la selección

Mayúsculas + Botón Central: pegar

NOTA: el bloque así seleccionado se maneja de forma estándar: si desde otra consola

pulsamos el botón central del ratón, lo pegamos, etc.

Además el mc tiene su propia herramienta de selección de bloques (F3, o May+Flechas), y con

esto se puede copiar (Ctrl+Ins), cortar (May+Del) y pegar (May+Ins) incluso de una sesión a

otra, pues lo copiado (cortado) se guarda en /.cedit/cooledit.clip.

Ambas herramientas se pueden usar simultánea e independientemente.

Acelerar la compilación del kernel

Cuando se da la orden de compilar en vez de:

make zdisk

hay que escribir

make -j5 zdisk

Esto inicia hasta 5 procesos de compilado simultáneos.

Idem con

make -j5 modules

Trucos para recompilar el kernel.

Casi todos no hemos topado con la consabida configuración del núcleo de Linux, seguida de su

compilación, instalacion, etc...

make config (menuconfig, xconfig)

make dep

make clean

make zImage

cp arch/i386/boot/zImage /boot/vmlinuz

cp System.map /boot

make modules

make modules_install

Bueno pues los pasos zImage y cp's los podemos olvidar editando el fichero Makefile que hay

en /usr/src/linux, buscar :

#INSTALL_PATH=/boot

Page 73: (Manual de Linux Recopilacion_by Gandhi_)

Descomentar la línea (¡ quitar la #, corcho !)

Para los que tienen su Linux mas personalizado que la Harley, podeis poner el directorio donde

quieres poner el nuevo kernel, ese directorio debe corresponderse al que pone en el

/etc/lilo.conf.

Una vez hecho esto, se puede reemplazar el make zImage y cp's por make zlilo.

Por Manuel Soriano.

Lanzar procesos con nohup

Para lanzar un proceso y luego poder matar el shell padre, solo debemos hacerlos de la

siguiente manera:

nohup proceso &

por ejemplo si queremos lanzar licq con el parámetro -p \qt-gui la línea correspondiente seria la

siguiente:

nohup licq -p \qt-gui &

Creando alias para montar y desmontar el CD-ROM

Para ahorrarnos tiempo al momento de montar y desmontar el CD podemos aprovechar una de

las propiedades del shell bash, esto es definir alias, para ello solo tenemos que agregar en el

archivo .bashrc que se encuentra en nuestro directorio home las lineas:

alias cdr='mount -t iso9660 /dev/cdrom /mnt/cdrom -r'

alias ucdr='umount /cdrom'

Donde, /dev/cdrom especifica el dispositivo correspondiente a nuestro CD-ROM, y /mnt/cdrom

debe ser un directorio vacío.

Caracteres en español en el shell

Para poder visualizar todo el set de caracteres españoles en Linux solo debemos agregar la

siguiente línea a uno de los archivos de inicialización del sistema, por ejemplo /etc/profile, en

algunas distribuciones esta línea ya esta incluída y solo debemos modificarla:

/usr/bin/setfont /usr/lib/kbd/consolefonts/lat1u-16.psf

Según las distribución que usemos los archivos con los sets de caracteres se ubican en

distintos lugares, por ejemplo en Debian están en /usr/share/consolefonts/

Page 74: (Manual de Linux Recopilacion_by Gandhi_)

Cambiando el prompt del Bash

Agregando en el archivo .bashrc de nuestro directorio home (/root si nos logeamos como

usuario "root") la siguiente función dispondremos de un prompt mas atractivo que el común:

function promptmio

{

PS1="\[\033[31m\]\332\304\[\033[34m\](\[\033[31m\]\u\[\033[34m\]@\

[\033[31m\]\h\ \[\033[34m\])\[\033[31m\]-\[\033[34m\](\[\033[31m\]

\$(date +%I:%M%P)\ \[\033[34m\]-:-\[\033[31m\]\$(date +%m)\[\033[34m\033

[31m\]/\$(date +%d)\ \[\033[34m\])\[\033[31m\]\304-\[\033[34m]\\371\[\033

[31m\]-\371\371\ \[\033[34m\]\372\n\[\033[31m\]\300\304\[\033[34m\](\[\033

[31m\]\W\[\033[34m\])\ \[\033[31m\]\304\371\[\033[34m\]\372\[\033[00m\]"

PS2="> "

}

Luego solo tenemos que salir de la sesión en curso y volver a entrar para finalmente llamar a la

función mediante: promptmio