Académique Documents
Professionnel Documents
Culture Documents
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.
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:
- 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... :))
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
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.
FREERADIUS
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
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
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
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.
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
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.
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
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í.
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.
Por ejemplo si quieres bajar el Amule e instalarlo tendrías que bajar el source y instalarlo
manualmente
./configure
Make
Make install
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.
• 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.
• 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.
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
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:
cp /etc/apt/sources.list /etc/apt/sources.list_backup
gedit /etc/apt/sources.list
Nota: utilizar repositorios actualizados en vez de los de la guía, acá los podes encontrar.
## Uncomment the following two lines to fetch updated software from the network
## Uncomment the following two lines to fetch major bug fix updates produced
## Uncomment the following two lines to add software from the 'universe'
## repository.
## 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.
## Uncomment the following two lines to fetch updated software from the network
## Uncomment the following two lines to fetch major bug fix updates produced
## Uncomment the following two lines to add software from the 'universe'
## repository.
## 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.
Ahora que tienes actualizados los repositorios podes buscar diferente software para instalar en
tu Ubuntu. Por ejemplo:
Si luego quieres remover estos paquetes tienes que hacer aptitude purge "nombre".
Para instalar java con el pluggin para firefox pone las siguientes lineas:
java -version
cp /etc/X11/xorg.conf /etc/X11/xorg.conf_backup
nvidia-glx-config enable
gedit /usr/share/applications/NVIDIA-Settings.desktop
[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
gedit /etc/X11/xorg.conf
...
Section "Device"
Driver "nvidia"
BusID "PCI:1:0:0"
...
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-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
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
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.
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.
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.
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:
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.
• 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)
• Hace la copia efectiva
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.
• 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.
Este segundo modo puede ser mucho más fácil para gente con menos horas de vuelo en
sistemas Linux. :-)
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.
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.
• 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.
mkdir /mount/C
mount server:/exported.directory /mount/C
dd if=/mount/C/my.image of=/dev/had
umount server:/exported.directory
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.
Fácil de instalar en el lado del servidor, pero puede ser difícil de encontrar un
HTTP (como en
cliente adecuado. Usado principalmente con scripts de instalaciones
un servidor Web)
automatizadas. Usted ya puede tener uno de éstos ejecutándose.
Menos fácil en el lado del servidor, pero muy fácil de encontrar clientes. Usted
FTP
ya puede tener uno de éstos ejecutándose.
Sí, éste funciona. Su servidor puede correr bajo, bien Linux + Samba o
SMB (o Netbios) cualquier versión de WinXX. Por qué lo querría así usted, es asunto suyo, sin
embargo.
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.
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.
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:
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)
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
-j ACCEPT
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
-j MASQUERADE
-j ACCEPT
-j ACCEPT
-j ACCEPT
Si queréis “abrir” otros puestos, sólo tenéis que agregar esas nuevas reglas.
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
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.
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.
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.
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:
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í.
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.
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
• 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
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).
• Que nos permita realizar conexiones TCP hacia afuera de nuestra máquina (si no,
no podríamos hacer casi nada).
• 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 establezcan
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.
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:
Para insertar una regla en una posición determinada de la lista de reglas de una chain
determinada:
Para borrar una regla en una posición determinada de la lista de reglas de una chain
determinada:
$ /sbin/iptables -F [chain]
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.
Para crear nuestro firewall, iremos introduciendo una a una las reglas que necesitamos:
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 exterior 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:
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 respuestas 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á:
Donde --source-port es una opción presente cuando el protocolo es udp (también cuando es
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.
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
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.
Donde -c es una opción que nos permite guardar los contadores del número de paquetes que
activaron cada regla.
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.
Un artículo de:
Daniel Fernández Garrido
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
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
Otros comandos:
Comandos Debian
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
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
Descomprimir un *.tar
(el tar es un tar_gz al que
se le ha pasado gunzip) tar -xvf
Número de inodo ls -i
Borrar directorios rm -r
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
SEGURIDAD EN LINUX
Seguridad Física
Seguridad Lógica
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.
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.
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
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.
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:
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.
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".
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.
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:
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.
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.
• 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!! ;)
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.
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?
Descripció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
SPOOFED/FORGED EMAIL
Descripción
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.
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: 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:
por:
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:
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
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.
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.
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:
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).
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.
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.
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
Truco: Los parámetros permiten hacer cosas al intruso usando spawn (programa %a)... deja
volar tu imaginación.
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.
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/inetd.conf: aquí definimos las opciones y el demonio que atiende al nuevo servicio:
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:
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
[*] 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.
/sbin/ipchains –F
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:
/sbin/ipfwadm -I –f
/sbin/ipfwadm -I -a a -S 127.0.0.1
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.
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.
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.
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.
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
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.
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:
Los motivos para particionar son varios e incluso es aconsejable aún cuando no se vaya a
instalar otro sistema operativo, porque:
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
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.
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.
• 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)
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
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.
• http://www.linuxdoc.org/HOWTO/mini/Linux+Win95/
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:
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.
/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.
/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.
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.
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
Fichero /etc/lilo.conf:
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.
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.
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
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
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
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
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.
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.
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.
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.
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 :)
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
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.
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.
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
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.
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
método 3 - dpkg -l
El nombre del dispositivo puede ser distinto, por ejemplo, en vez de /dev/cdrom puedes tener
/dev/hdc... etc., depende de cada cual.
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:
rearrancas, y después de unos días, para ver que todo funciona bien, borras /usr_ant
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
Y el script es:
#!/bin/bash
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
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.
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).
Para msdos
$ mkfs.msdos [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.
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?
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":
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.
(ricardovm)
Pues lo acabo de probar:
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.
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
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.
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 &
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/
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