14ºLILO:Lilo o
linux loader es el encargado dearrancar el sistema operativo linux, ademas de soportar el arranque otros sistemas operativos.
Lilo tiene su configuración en el ficher
/etc/lilo.conf, tienes un fichero de ejemplo en el
/etc/lilo.conf.example. Acontinuación expondre un ejemplo de fichero
lilo.conf:
# vim /etc/lilo.conf
lba32 #Permite poder cargar kernel en discos duros de "gran tamaño"(gran numero de cilindros, los actuales).
boot = /dev/hda #Le decimos de que disco duro leeremos el mbr(master boot record), es decir, donde tenemos cargado el lilo
map =/boot/System.map #Establece la ubicación del fichero de mapeado(generado por lilo)
install = /boot/boot-menu.b #Instala el fichero especificado como nuevo sector de arranque.
menu-scheme=Wb #Local de entorno
prompt #Permite tener una "mini-shell" donde introducimos por comando el "label" de la particion a cargar
delay=20 #Una vez cargado el lilo, espera 20 segundos, si no aprietas nada carga el kernel que tenga como default
timeout=150 #Tienes 150 segundos para elegir, si no eliges pasado 150 segundos arrancara el kernel default
default=gentoo2.6 #Indicamos que kernel queremos cargar como default
image=/boot/bzImage #Indicamos donde se encuentra el kernel que queremos cargar(el que compilamos nosotros)
root=/dev/hda2 #Aqui le decimos cual es la partición root(/) de nuestra distribución
vga=normal #Aqui como queremos que arranque(800x600, 1024x768 y con que profundidad de color)
label=gentoo2.6 #Introducimos el nombre que mostrara a la hora de elegir el arranque(en el ej: gentoo2.6)
read-only
image=/boot/rescue #Aqui tenemos como seria para meter un segundo kernel en nuestro sistema
root=/dev/hda2
vga=normal
label=Linuxrescue
read-only
other=/dev/hda1 #Si tubieramos otro sistema operativo que no fuera windows
label=Ventanukos
table=/dev/hda
#
Los valores de vga pueden ser los siguientes:
Normal VGA console:VESA framebuffer console(Se puede poner de 2 formas): 640x480 800x600 1024x768
256 771 771 773
32k 784 787 790
64k 785 788 791
640x480 800x600 1024x768 1280x1024
256 0x301 0x303 0x305 0x307
32k 0x310 0x313 0x316 0x319
64k 0x311 0x314 0x317 0x31A
16M 0x312 0x315 0x318 0x31B
Si tubieramos otro disco duro, y quisieramos que se arrancara con el lilo, unicamente deberiamos especificarle que particion sera la raiz, por ejemplo si nuestro disco duro fuera el hdb y la partición raiz fuera la hdb1 sera asi:
image=/boot/mikernel
root=/dev/hdb1
vga=normal
label=otrohd
read-only
Pero si la otra partición fuera de otro sistema operativo, como pudiera ser un windows deberiamos de añadir 2 opciones con lo que quedaria de la siguiente forma:
other=/dev/hda1
label=Ventanukos
table=/dev/hda
map-drive = 0x80
to = 0x81
Para cargar lilo en el mbr sobrara con llamar al programa(Recuerda que si no lo emergistes en la creación del kernel deberas de hacerlo ahora):
# emerge lilo *(si no lo hicistes al compilar el kernel)
# lilo
Y nos apareceran los nucleos cargados, asi como si cometemos algun tipo de error que produza que no arranque. Para mas información
man lilo.
15ºRunlevels en Gentoo:Los runlevels en gentoo siguen otro sistema distinto al acostumbrado con los linux tradicionales. Los
runlevels en gentoo se dividen en:
-> boot #Programas que se cargan en el arranque seguido del kernel ej: alsa
-> default #Programas que se cargan una vez cargado el kernel y toda la distribucion, justo antes de proporcionarte una prompt de login. ej: apache
-> nonetwork #Programas que se cargan antes de la conexion a inet
-> single #Desconozco su uso Ò.Ó!Se encuentran en
/etc/runlevels. Los programas se cargan usando la siguiente sintaxis:
rc-update add programa/demonio runlevel siendo
runlevel cualquiera de los 4 expuestos anteriormente y programa la implementación de programa que se encuentra en
/etc/init.d/. Por ejemplo para el apache2:
# rc-update add apache2 default
* apache2 added to runlevel default
* Caching service dependencies...
* rc-update complete.
#
Para eliminarlos pondremos unicamente:
rc-update dell programa/demonio, sin especificar el
runlevel, puesto que el
rc-update ya lo busca en los 4 posibles, un ejemplo con el apache2 seria:
# rc-update del apache2
* apache2 removed from the following runlevels: default
* Caching service dependencies...
* rc-update complete.
#
Al cargarlos deben de tener una implementación en en
/etc/init.d/. Si queremos cargar un fichero con un script de shell que no este implementado en el
/etc/init.d deberemos de usar los ficheros local.start y local.stop que se encuentran en
/etc/conf.d/Para ver todos los posibles programas(Servicios) que tenemos arrancados, asi como los que disponemos pero no los tenemos asignados a ningun runlevel:
Como habreis visto, cuando instalais un programa que necesita de los runlevels, para la ejecución de un demonio/servicio/etc se genera su pertinente implementación en el directorio
/etc/init.d/ pero ademas existen unos pequeños scripts localizados en
/etc/conf.d que deberian de ser usados, para por ejemplo el uso de iptables. A mi gusto esta es la zona donde gentoo peca mas de falta de "edad"(junto con el emerge).
Recordar que muchos de los programas que cargamos en los runlevels son demonios/servicios. Estos servicios se cargaran automaticamente al haber sido añadidos con el rc-update al runlevel. Si queremos pararlos, reiniciarlos o volverlos a arrancar una vez parados, un ejemplo seria con el ssh, apache, proftpd etc. se usa los siguientes comandos:
# /etc/init.d/servicio stop ->Detiene la ejecución
# /etc/init.d/servicio start ->Arranca de nuevo el demonio/servicio, si ya esta arrancado dara error
# /etc/init.d/servicio restart ->Rearranca el servicio, es equivalente a hacer un stop y un startUn ejemplo de lo anteriormente citado seria este:
# /etc/init.d/apache2 stop
* Stopping apache2... [ ok ]
DarkTemplar root # /etc/init.d/apache2 start
* Starting apache2... [ ok ]
DarkTemplar root # /etc/init.d/apache2 restart
* Stopping apache2... [ ok ]
* Starting apache2... [ ok ]
#
16ºCreación de usuarios:La creación de usuarios debe de ser obligatorio aunque solo usemos el ordenador una persona. El usurio
ROOT solo debe de usarse cuando tengamos la necesidad de configurar/administrar nuestro sistema, puede parecer algo engorroso, pero os dareis cuenta que siendo usuarios normales si cometeis algun tipo de error, si no soys root, es deificil que dañeis el sistema, ademas que no siendo root evitais problemas como pudean ser: troyanos, gusanos,etc etc
Para la creación de ficheros podemos hacerlo a
"mano" usando los comandos de:
# adduser nombre_usuario
# passwd nombre_usuario
# mkdir /home/nombre_usuario
Acontinuación debemos de comprobar si el usuario esta creado, y verificar que fue correctamente. Para ello editaremos el fichero
/etc/passwd y verificaremos que el usuario sigue una estructura asi(se encontrara en la ultima linea):
nombre_usuario:x:1000:100::/home/nombre_usuario:/bin/bash (el valor 1000 es el identificador del usuario, puede ser 1000 o superior).
# cat /etc/passwd | grep usuario
usuario:x:1000:100:,,,:/home/usuario:/bin/bash
#
Ahora deberemos de agregar el usuario a los grupos que nos interese añadir, es importante, remarcar que ahi un grupo en gentoo(y en otras distribuciones de linux/unix muy seguras) que tienen el grupo
wheel el cual es necesario tener a nuestro usuario si queremos que sea capaz de usar el comando
su - para tener acceso como root, sin tener que abrir una consola nueva. Los grupos que seria logico añadir al usuario serian:
wheel, audio, cdrom, games, cdrw, usb. Para añadir usuarios seria:
grupo:usuario1,usuario2,usuario3.... Un ejemplo:
cat /etc/group | grep wheel
wheel::10:root,usuario
#
Gentoo implementa un script para la edición facil y rapida de usuarios. Se llama
superadduser. Yo os lo recomiendo puesto que os ahorrara tiempo. el script se encuentra en
/usr/sbin/superadduser. Vamos a emergerlo:
Un ejemplo de uso sera el siguiente, recordar que al preguntarnos siempre aparece entre [ ] la opcion default y que con apretar "intro", sin introducir nada, te toma la opción default si la tiene o simplemente no te introduce nada en esa opción. Un ejemplo es el siguiente:
# superadduser
Login name for new user []: nombre
User ID ('UID') [ defaults to next available ]: (enter) *(pulsar intro, dejamos la opcion predeterminada o default)
Initial group [ users ]: (enter)
Additional groups (comma separated) []: wheel,audio,cdrom,games,cdrw,usb
Home directory [ /home/nombre ] (enter)
Shell [ /bin/bash ] (enter)
Expiry date (YYYY-MM-DD) []: (enter)
New account will be created as follows:
---------------------------------------
Login name.......: nombre
UID..............: [ Next available ]
Initial group....: users
Additional groups: wheel,audio,cdrom,games,cdrw,usb
Home directory...: /home/nombre
Shell............: /bin/bash
Expiry date......: [ Never ]
This is it... if you want to bail out, hit Control-C. Otherwise, press
ENTER to go ahead and make the account.
(enter)
Creating new account...
Changing the user information for nombre
Enter the new value, or press ENTER for the default
Full Name []: (enter)
Room Number []: (enter)
Work Phone []: (enter)
Home Phone []: (enter)
Other []: (enter)
New UNIX password: (password)
Retype new UNIX password: (password)
passwd: password updated successfully
Account setup complete.
#
Como veis es bastante facilillo la creación de usuarios con este script.
17ºConfiguración de ficheros basicos de gentoo:Vamos a comenzar con la edición de los ficheros mas importantes/basicos de gentoo. Comenzaremos con la castellanización/españolización de nuestra distribución editando el fichero
/etc/rc.conf:
En este fichero introduciremos nuestra KEYMAP o "el idioma del teclado", tambien introduciremos la fuente a usar en consola, asi como el tipo de reloj a usar(si tenemos mas de un SO usar local), asi como protocolos de internet y si queremos un gestor de arranque de las X. Un ejemplo del fichero seria el siguiente:
# vim /etc/rc.conf
KEYMAP="es euro2"
CONSOLEFONT="lat9w-16"
CLOCK="local" #"UTC"
PROTOCOLS="1 2"
#DISPLAYMANAGER=xdm #[ xdm | gdm | kdm ] *Yo no uso gerstores de arranque por eso esta comentado
#
Acontinuación vamosa seguir castellanizando nuestra gentoo, cambiando los mensajes que nos da esta, por ejemplo en el arranque del ingles al español mediante la instalación del init-es:
Y por ultimo vamos a instalar el
man en castellano, decir que no estan todas las paginas man basicas, pero si la mayoria. Esto ayuda a la gente que no tiene mucha idea del ingles:
Una vez tengamos esto, vamos a introducir las locales comunes para nuestra gentoo. Editaremos un fichero llamado .environment en el cual tendremos una lista completa de locales, este fichero se encontrara en nuestro directorio personal para que, dependiendo del usuario usemos unas locales u otras. Recordar que el . delante de los ficheros implica fichero oculto(podemos listarlos con la opcion -a del comando ls), asi mismo mencionar que el caracter ~ hace referencia al directorio home del usuario, por lo que si ponemos ~ como root hacemos referencia al directorio
/root y si lo hacemos como usuario hacemos referencia al directorio
/home/directorio_usuario. Un ejemplo del ocales para una persona de españa seria asi:
# vim ~/.environment
export LANG=es_ES@euro
export LC_CTYPE="es_ES@euro"
export LC_NUMERIC="es_ES@euro"
export LC_TIME="es_ES@euro"
export LC_COLLATE="es_ES@euro"
export LC_MONETARY="es_ES@euro"
export LC_MESSAGES="es_ES@euro"
export LC_PAPER="es_ES@euro"
export LC_NAME="es_ES@euro"
export LC_ADDRESS="es_ES@euro"
export LC_TELEPHONE="es_ES@euro"
export LC_MEASUREMENT="es_ES@euro"
export LC_IDENTIFICATION="es_ES@euro"
export LC_ALL=es_ES@euro
#
Acontinuación crearemos un fichero alias, es decir, un ficheros donde sustituimos una larga cadena por una cadena mas simple, por ejemplo si ponemos esto:
alias gossh='ssh usuario@192.0.0.1', con poner
gossh nos evitaremos tener que poner la cadena
ssh usuario@192.0.0.1.
Tendremos 2 ficheros alias. El primero sera el general de la distribución en el cual haremos una separación de alias para usuarios "normales", otro para usuario ROOT y tambien alias generales para todos los usuarios, este fichero se encontrara en:
/etc/alias y un ejemplo de este podria ser:
# vim /etc/alias
#!/bin/bash
#Alias
if [ $(whoami) == "root" ]; then
#Alias del root
alias re='shutdown -r now'
alias au='shutdown -h now'
alias tapar='vlock -a'
alias startx='startx -- :1'
else
#Alias de los user
alias su='su -'
alias rm='rm -i'
fi
#Alias Globales
alias ls='ls --color=always'
alias ll='ls -lh'
alias la='ls -a'
#
Luego editaremos otro fichero en el
~/.alias donde tendremos varios alias que sean propios de cada usuario. Este fichero lo editara cada usuario si necesita algun alias especifico para él. En principio no pondre nada.
Despues lo cargaremos estos 3 ultimos archivos de configuración con el
~/.bashrc de cada usuario de la siguiente forma: source ~/.environment, source /etc/alias y source ~/.alias(este es opatativo).
Acontinuación vamos a introducir el nombre de nuestra maquina, si por ejemplo queremos que se llame "SexMachine" pondremos lo siguiente:
# echo SexMachine > /etc/hostname
Ahora vamos a editar el fichero
/etc/hosts donde acosicamos un nombre a una ip. Debemos de asignar al localhost el 127.0.0.1, asi como asignar nuestro nombre de maquina a su correspondiente IP, si fuera dinamica nuestra IP no asignariamos ya que no lo podemos saber(se puede utilizar un script para que nos introduza la ip conque hemos conectado, pero eso esta fuera del objetivo de esta guia). Un ejemplo de
/etc/hosts seria este:
# vim /etc/hosts
127.0.0.1 localhost
192.0.0.2 SexMachine
#
Una vez configurado todo esto, nos queda configurar el fichero
/etc/inittab. En nuestro caso vamos a usar todas las terminales desde la 1 hasta la 11 pero dejando la 7 y la 8 sin usar. Ya que estas seran usadas por el entorno grafico de las X. Para un usuario cualquiera se usara la terminal 7 y para el usuario root usaremos la 8, para no tener que salir de las x para entrar como root en las X(ver el alias del startx del usurio root expuesto anteriormente). Notar que no necesitariamos tener que entrar como root en las X y si esto es necesario, es porque algo se esta haciendo mal. La terminal 12 tampoco se usara, puesto que sera usada por un programa que veremos mas adelante. Acontinuación vamos a descomentar la instruccion de
control+alt+supr para reiniciar el ordenador, ya que, solo el usuario root debe de tener permisos para ello. Recordar tambien que el fichero inittab tiene el runlevel a usar(runlevel tradiciónal) asi como los runlevels de que disponemos. Un ejemplo del fichero seria este:
# vim /etc/inittab
#Default runlevel.
id:3:initdefault:
#
# System initialization, mount local filesystems, etc.
si::sysinit:/sbin/rc sysinit
#
# Further system initialization, brings up the boot runlevel.
rc::bootwait:/sbin/rc boot
#
l0:0:wait:/sbin/rc shutdown
l1:S1:wait:/sbin/rc single
l2:2:wait:/sbin/rc nonetwork
l3:3:wait:/sbin/rc default
l4:4:wait:/sbin/rc default
l5:5:wait:/sbin/rc default
l6:6:wait:/sbin/rc reboot
#z6:6:respawn:/sbin/sulogin
#
# TERMINALS
c1:12345:respawn:/sbin/agetty 38400 tty1 linux
c2:12345:respawn:/sbin/agetty 38400 tty2 linux
c3:12345:respawn:/sbin/agetty 38400 tty3 linux
c4:12345:respawn:/sbin/agetty 38400 tty4 linux
c5:12345:respawn:/sbin/agetty 38400 tty5 linux
c6:12345:respawn:/sbin/agetty 38400 tty6 linux
c9:12345:respawn:/sbin/agetty 38400 tty9 linux
c10:12345:respawn:/sbin/agetty 38400 tty10 linux
c11:12345:respawn:/sbin/agetty 38400 tty11 linux
#
#ca:12345:ctrlaltdel:/sbin/shutdown -r now
#
x:a:once:/etc/X11/startDM.sh
#
Ahora modificaremos el fichero
/etc/fstab donde le indicamos a ciertos dispositivos su punto de montage asi como un conjunto de propiedades.
El ejemplo basico de configuración de este fichero es:
/dev/dispositivo /punto/de/montage tipo opciones 0 0. Los tipos mas usado son los mencionados en el principio de la instalación de gentoo:
reiserfs, ext3, iso9660, ntfsm vfat ... En el caso de la particion raiz deberemos de poner la opcion noatime, si por lo contrario es una particion de tipo ext3 deberemos de poner
defaults.
Las opciones mas usadas son las siguientes:
->sw #Usado para particiones swap
->defualts #Esta es un conjunto de opciones: rw, suid, dev, exec, auto, nouser, y async
->auto #Se monta en el arranque
->noauto #No se monta en el arranque, muy usado en los cdrom, ya que puede darse que no tengamos un cdrom introducido
->ro #Solo lectura
->rw #Lectura y escritura
->exec #Permite la ejecución de binarios
->noexec #No permite la ejecución de binarios
->noatime #No actualizar los tiempos de acceso a nodo-í en este sistema de ficheros
->users #Permite que los usuarios puedan montar la particiónUn ejemplo de fichero
/etc/fstab seria este:
# vim /etc/fstab
#Dispositivo #Punto de montage #tipo #opciones
/dev/hda2 / reiserfs noatime 0 0
#Ejemplo de particion Swap:
/dev/hda3 none swap sw 0 0
#Ejemplo de particion en otro HD:
/dev/hdb1 /ftp reiserfs noatime,users 0 0
#Ejemplo de particion en windows con ntfs:
/dev/hda1 /mnt/win ntfs ro,auto 0 0
#Ejemplo de particion en windows con vfat:
/dev/hda1 /mnt/win vfat users,auto,rw 0 0
#Montage de un cdrom:
/dev/cdroms/cdrom0 /mnt/cdrom iso9660 noauto,ro,users 0 0
#Sistema, necesario para los virtual filesystem:
proc /proc proc defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
#
Nota: al poner la opcion users, como usuario normal puedes montar la partición pero sin hacer objetivo ni a tipo ni a dispositivo, por ejemplo, en el caso del cdrom, para montarlo como usuario normal tendremos que introducir lo siguiente:
# mount /mnt/cdrom *Si el punto de montage /mnt/cdrom esta en el fstab y tiene la opcion de user/s entonces si podremos montar
Pero no podemos indicar ni opciones ni dispositivo:
# mount -t iso9660 /dev/cdroms/cdrom0 /mnt/cdrom *solo el usuario root puede hacer eso
Para mas información
man mount y
man fstab.
Acontinuación usaremos un programa que transforma un texto en otra cadena texto mediante caracteres ascii y introduciremos el resultado en
/etc/motd para que cada vez que nos logueemos aparezca dicho mensage:
# emerge figlet
# figlet MiMensage > /etc/motd
Ya hemos editado los ficheros basicos de nuestra distribución gentoo.
18ºProgramas interesantes para instalar:Un programa interesante seria, la instalación de un fenomenal programa que se encarga de vigilar nuestro ordenador y de generar un gran numero de logs(registros donde se almacena algun tipo de suceso) a nivel local.
# emerge sysklogd
# rc-update add sysklogd default
EL fichero de configuración se encuentra en
/etc/syslog.conf, lo dejamos como esta ya que esta bien configurado de serie, unicamente seria conveniente añadir la siguiente linea:
# vim /etc/syslog.conf
...
*.* /dev/tty12 *con esta liena conseguimos que cualquier suceso aparezca en la terminal 12
...
#
Otro programa interesante, tambien para el uso de logs, pero en este caso de las conexiones,seria el ip personality o IPPL. Comenzaremos con la instalación del programa:
Acontinuación editaremos el fichero de configuración que se encuentra en
/etc/ippl.conf. Introducire un fichero de configuración basico, si teneis alguna duda, leeros el manual de IPPL que hice ya hace cosa de un año:
# vim /etc/ippl.conf
run icmp tcp udp
log-in tcp /var/log/tcp_ippl.log
log-in icmp /var/log/icmp_ippl.log
log-in udp /var/log/udp_ippl.log
log-in all /var/log/all_ippl.log
logformat detailed all
ignore icmp type echo_replay
log option ident,resolve tcp port ftp
log option ident,resolve tcp port telnet
#
Ahora pondremos el demonio para que arranque con la distribucion usando la herramienta
rc-update:
# rc-update add ippl default
Un programa muy util es el
Openssh(administración remota mediante ssh).
# emerge openssh
# rc-update add sshd default
No esperamos a reiniciar el ordenador para arrancar el servicio, la 1ºvez que lo carguemos generara las clave privada y publica:
El fichero de configuración del servidor se encuentra en
/etc/ssh/sshd_config, seria interesante leerse una pequeña guia para saber administrar correctamente.
Yo lo que recomiendo es que no permitamos el permitir que el usuario root pueda conectarse desde ssh introduciendo la siguiente linea en el fichero
sshd_config:
# vim /etc/ssh/ssh/sshd_config
...
PermitRootLogin no
...
#
Si necesitamos entrar como root, con entrar como usuario normal, estando este usuario en el grupo
wheel, nos sobraria con el comando
su- y la correspondiente contraseña de root nos encontraremos como root.
Por ultimo introduciremos el gpm, programa encargado de hacer funcionar el raton en consola:
Una vez instalado, editaremos el fichero de configuración gpm en
/etc/conf.d/gpm, un ejemplo de configuración para un raton ps/2 con rueda seria este:
# vim /etc/conf.d/gpm
MOUSE=imps2
MOUSEDEV=/dev/psaux
REPEAT_TYPE=raw
APPEND="-l \"a-zA-Z0-9_.:~/\300-\326\330-\366\370-\377\""
#
Si nuestro raton no tuviera rueda cambiar
MOUSE=imps2 por MOUSE=ps2. Si en vez de ser ps/2 es usb ponemos
MOUSEDEV=/dev/input/mice en vez de MOUSEDEV=/dev/psaux.
Acontinuación introduciremos el demonio en el runlevel para que se cargue con el arranque del ordenador, y cargaremos el gpm para comprobar su correcto funcionamiento:
# rc-update add gpm default
# /etc/init.d/gpm start
Ya tenemos raton en consola. Recordar que en linux para copiar algo sobra con subrayar el texto que queremos copiar y pulsar con el boton de la rueda del raton donde queremos pegar el texto.
Ahora estaria interesante usar un buen firewall mediante iptables. Aqui yo uso mi propio script puesto que no me gusta el que ahi en
/etc/conf.d/iptables.
Yo me creo un fichero llamado firewall en
/etc/conf.d/. Y lo cargo en
/etc/conf.d/local.start. Los pasos serian los siguientes:
Acontinuación editaremos el fichero de iptables basico:
# vim /etc/conf.d/firewall
#!/bin/bash
#Limpieza Total
iptables -F
iptables -t nat -F
#Aceptar todo lo mio
iptables -A INPUT -s 127.0.0.1 -j ACCEPT
iptables -A INPUT -s miipinternet -j ACCEPT
#No aceptados
#iptables -A INPUT,FORWARD -s IP -j DROP
#Servicios
#Sistema Grafico X
iptables -A INPUT -i eth0 -p TCP -s 0/0 --dport 6000:6005 -j DROP
iptables -A INPUT -i eth0 -p UDP -s 0/0 --dport 6000:6005 -j DROP
#ICMP
iptables -A INPUT -i eth0 -p ICMP --icmp-type 8 -j DROP
iptables -A INPUT -i eth0 -p ICMP --icmp-type 0 -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -p icmp -m limit --limit 1/s -j ACCEPT
#Cualquier conexion que habra "yo" me lo aceptara
iptables -A INPUT -p TCP -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p UDP -m state --state RELATED,ESTABLISHED -j ACCEPT
#Cualquier otra conexion nueva o invalida de fuera hacia mi es desechada
iptables -A INPUT -m state --state NEW,INVALID -j DROP
#Pongo mi politica
iptables -P INPUT DROP
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
#
Acontinuación añadimos el script al fichero
/etc/conf.d/local.start:
#vim /etc/conf.d/local.start
/etc/conf.d/firewall
#
Si quisieramos poder hacer funcionar cualquier servicio, tendriamos que poner debajo de "#servicios" la siguiente cadena:
iptables -A INPUT -i eth0 -p tipo --dport puerto -m limit --limit 1/s -j ACCEPTSiendo tipo: TCP o UDP y puerto el numero de puerto, por ejemplo, para openssh que escucha en el
puerto 22 seria:
iptables -A INPUT -i eth0 -p TCP --dport 22 -m limit --limit 1/s -j ACCEPT
Los modulos necesarios de las iptables los he puesto en
/etc/modules.autoload :
iptable_filter #Cargamos el modulo de la tabla filter
iptable_mangle #Cargamos el modulo de la tabla mangle
iptable_nay #Cargo el modulo de la tabla nat
ipt_state #Cargo el modulo para poder usar el --state
ipt_limit #Permite limitar los paquetes
ip_conntrack_irc #Permite poder usar el dcc en el ircPara mas información:
man iptables o
www.netfilter.orgNota: antes el fichero de iptables lo llama iptables y lo colocaba en /etc/init.d/iptables o en /etc/conf.d/iptables, pero muchas veces haciendo el
etc-update machacaba el fichero, por lo que he decidido llamarlo de otra forma.
19º Reiniciar:Ahora saldremos de nuestra flamante y nueva gentoo y reiniciaremos para cargar con nuestro nuevo kernel. Acordaros de volver a poner en la bios el arranque desde disco duro y de retirar el cd live.
# exit
# unmount /migentoo
# reboot
20ºConfiguraciones del entorno grafico:Que tal la nueva gentoo?
Una vez tengamos ya cargada la nueva gentoo, lo que normalmente se suele hacer es ponerse a instalar los programas que necesitemos mediante el
emerge. Asi como la configuración de dispositvos como tarjetas de sonido, aceleración grafica, internet, etc y sobretodo nuestro entorno grafico tan querido.
Comencemos con la instalación del motor de nuestro entorno grafico, las Xfree(apartir de ahora
las X:
Despues de un cierto tiempo, tendremos listo nuestro motor para ser configurado y usado. El archivo de configuracion de
las X se llama
/etc/X11/XF86Config, existen un gran numero de utilidades para poder configurarlo, entre ellas destaco una herramienta facil de usar y configurar:
Como vereis con este menu las preguntas son intuitivas y faciles de contestar. Vamos a ver un ejemplo para ver como lo deberia de usar:
# xf86config
This program will create a basic XF86Config file, based on menu selections you make.
....
Press enter to continue, or ctrl-c to abort. (Pulsamos enter)
(Configuración del raton...)
First specify a mouse protocol type. Choose one from the following list:
1. Auto
2. SysMouse
...
7. IMPS/2
...
The recommended protocol is Auto. If you have a very old mouse
or don't want OS support or auto detection, and you have a two-button
or three-button serial mouse, it is most likely of type Microsoft.
Enter a protocol number: 7 (seleccionamos el de la lista, en mi caso es un raton normal con rueda)
If your mouse has only two buttons, it is recommended that you enable
Emulate3Buttons.
Please answer the following question with either 'y' or 'n'.
Do you want to enable Emulate3Buttons? y
Now give the full device name that the mouse is connected to, for example
/dev/tty00. Just pressing enter will use the default, /dev/mouse.
Mouse device: /dev/psaux (Esto es si la conexion es PS/2, si es USB poner /dev/input/mice)
(Ahora el teclado...)
lease select one of the following keyboard types th at is the better
description of your keyboard. If nothing really matches,
choose 1 (Generic 101-key PC)
1 Generic 101-key PC
2 Generic 102-key (Intl) PC
3 Generic 104-key PC
...
Enter a number to choose the keyboard.
Press enter for the next page(Pulsamos enter si queremos ver mas ocpiones)
3
1 U.S. English
2 U.S. English w/ ISO9995-3
....
71 Spanish (Esta opcion aparecer pulsando 3 veces enter)
...
Enter a number to choose the country.
Press enter for the next page(Pulsamos enter si queremos ver mas ocpiones)
71
Please enter a variant name for 'es' layout. Or just press enter
for default variant
es
Please answer the following question with either 'y' or 'n'.
Do you want to select additional XKB options (group switcher,
group indicator, etc.)? (pulso enter)
(Ahora le toca al monitor)
Now we want to set the specifications of the monitor...
...
Press enter to continue, or ctrl-c to abort. (Enter)
You must indicate the horizontal sync range of your monitor...
...
11 Enter your own horizontal sync range
Enter your choice (1-11): 11
Please enter the horizontal sync range of your monitor, in the format used
in the table of monitor types above. You can either specify one or more
continuous ranges (e.g. 15-25, 30-50), or one or more fixed sync frequencies.
Horizontal sync range: 50-70 (dependera de tu monitor)
You must indicate the vertical sync range of your monitor...
...
5 Enter your own vertical sync range
Enter your choice: 5
Vertical sync range: 50-120(depende de tu monitor)
You must now enter a few identification/description strings...
...
Enter an identifier for your monitor definition: Mimonitor
Now we must configure video card specific settings...
...
Do you want to look at the card database? y
0 * Generic VESA compatible -
...
Enter a number to choose the corresponding card definition.
Press enter for the next page, q to continue configuration.
(enter hasta encontrar nuestra grafica)
...
349 NVIDIA GeForce GeForce
....
Your selected card definition:
349
Identifier: NVIDIA GeForce (estos datos seran distintos)
Chipset: GeForce
Driver: nv
Do NOT probe clocks or use any Clocks line.
Press enter to continue, or ctrl-c to abort. (enter)
Now you must give information about your video card...
...
10 131072K
...
Enter your choice: 10 (porque tengo 128 megas)
...
Enter an identifier for your video card definition: migrafica
For each depth... (aqui seleccionamos el que queramos y lo configuramos)
...
2 Change the modes for 16-bit (32K/64K colors)
...
Enter your choice: 2 (elijo configurar el de 16 bits que es el que uso)
Select modes from the following list:
1 "640x400"
...
Which modes?5 4 3 (elijo estas resoluciones, siendo la primera la defualt)
...
Do you want a virtual screen that is larger than the physical screen? n
(Volvemos al menu de la prufundidad(bits))
...
4 The modes are OK, continue.
Enter your choice: 4
...
4 16 bits (65536 colors)
5 24 bits (16 million colors)
Enter a number to choose the default depth. 4(en mi caso 16bits)
...
Shall I write it to /etc/X11/XF86Config? y
Ya hemos editado el fichero
/etc/X11/XF86Config mediante un script muy sencillito.
Ahora vamos a añadir opciones para obtener un mejor compatibilidad con nuestro hardware en las X.
El
raton, aunque lo hemos configurado correctamente habremos notado que la rueda del raton(si disponemos de ella) no funciona, asi mismo, como si ejecutamos las X teniendo el gpm activado el raton no nos funcionara. Para resolver el problema editaremos el fichero
/etc/X11/XF86Config y en la sección del raton añadiremos:
# vim /etc/X11/XF86Config
...
Section "InputDevice"
Identifier "MiRaton"
Driver "mouse"
Option "CorePointer"
Option "Device" "dispositivo"
Option "Protocol" "ImPS/2" #PS/2 sino tenemos rueda
Option "ZAxisMapping" "4 5" #esto nos permite tener rueda
EndSection
...
Section "ServerLayout"
...
InputDevice "MiRaton" "CorePointer"
...
EndSection
En la opcion de
Option "Device" "dispositivo" deberemos de indicarle nuestro dispositivo, pero esto variaria dependiendo de nuestra configuración:
Option "Device" "/dev/gpmdata" #si usamos el gpm
Option "Device" "/dev/psaux" #Si no usamos gpm y la conexion es ps/2
Option "Device" "/dev/input/mice" #Si no usamos gpm y la conexiones USB
Como veis, si usamos gdm, da igual que sea nuestro raton USB o ps/2 ya que, esto se lo indicamos en el fichero de confiuración del gpm
/etc/conf.d/gpmgpm, como vimos anteriormente. Existe una
pequeña incompatibilidad entre el gpm y las X, y esto ocurre cuando estando en consola, pasamos a las X, donde tardaramos unos
2 segundos en poder usar las X(se quedaran como bloqueadas).
Una vez hecho estos pequeños cambios tendremos el motor de las X listo para ser usado. Para cargas las X ejecutaremos el comando:
Recordar que no tiene que existir ningun motivo para ejecutar las X, como usuario root por eso, en vez del simbolo
# indicativo de usuario root, para indicar que lo debe de ejecutar un usuario sin altos privilegios(usuario medio o normal) usaremos
$.
Una vez tengamos cargado el motor de las X sin haber usado ningun entorno grafico, instalaremos el entorno grafico que mas nos interese(si nunca habias instalado un distribución desde 0, o simplemente es vuestra primera distribución, seguramente no os habra gustado en exceso las X sin ningun entorno grafico, no os preocupeis que tiene solución).
Existen multitudes de entornos graficos, desde entornos graficos simples que no requieren un gran sistema a otros que requieren un sistema de mayor potencia.
Los entornos graficos que requieren poca maquina han sido diseñados, sobretodo para usuarios medios/altos, ya que, en un principo puede suponer un poco de lio para usuarios noveles(no tiene porque, pero si en su mayoria). Entre el gran numero de entornos, destaca la
familia xbox por ser uno de los entornos mas potentes y que menos maquina requieren. Destaca tambien window maker o icewm por su gran facilidad de uso y potencia, a mi, de los entornos poco pesados, el wmaker es el que mas me gusta. Luego tenemos que destacar por sus efectos en el uso y por el
boom que supuso el Enlightenment. Y por ultimo la nueva joya de los entornos ligeros, el XFCE el cual dispone de un gran numero de utilidades que requieren poco consumo pero que son tan buenos o mas como los de los entornos mas pesados(una muy buena elección).
Para instalar cualquiera de estos entornos sobrara con poner:
# emerge blackbox # Blackbox
# emerge fluxbox # Fluxbox
# emerge openbox # Open Box
# emerge icewm # Ice Window Manager
# emerge windowmaker # Window Maker
# emerge enlightenment # Enlightenment
# emerge xfwm4 # XFCE 4
Los entornos
pesados son los mas conocidos por la mayoria de usuarios, kde y gnome. Son los mas desarrollados y evolucionados de todos los entornos, pero su gran consumo, hacen que mucha gente use entornos mas ligeros(como los anteriores):
# emerge kdebase # KDE: solo el entorno
# emerge kde # KDE: con todos los paquetes
# emerge gnome # Gnome
Nota: si quieres instalar KDE, no lo dudes, usa
kdebase y no kde, puesto que este ultimo instalara muchas cosas que seguramente no necesites. Y si las necesitaras, podrias instalarlas mas adelante.
Una vez tengamos elegido que entorno usar, deberemos de generarnos un fichero llamado
.xinitrc donde introduciremos que entorno grafico cargaremos con las X. Esto se usa cuando tenemos mas de un entorno grafico. Este fichero lo tendremos en la
home de cada usuario:
$ vim /home/miusuario/.xinitrc
#xfce4-session
wmaker #lo tenemos descomentado
#blackbox
#fluxbox
#open box
#enlightenment
# startkde
#gnome-session
$
En nuestro caso cargariamos el windows maker, ya que, es el que hemos descomentado(quitado el caracter # de delante).
Ahora ya tenemos nuestro entorno grafico, es recomendable ponerse a probar las opciones, para acabar de entendero y personalizarlo. Una vez tengamos esto, es conveniente tener una terminal(Es una consola pero en las X), para poder usar comandos sin tenernos que tener otra consola habierta. Una de las terminales mas usadas son:
xterm, aterm, wterm, konsole, gnome-termial....
Las consolas del kde y del gnome disponen de menus para poderlas configurar, pero las primeras consolas(*term), no disponen de tales utilidades. Para poder usarlas, deberemos de añadir las opciones que deseemos como argumentos, cuando ejecutemos la terminal. Esto puede resultar un poco molesto, por lo que crearemos un fichero llamado
.Xdefaults en la home de cada usuario, donde podremos tener guardadas las configuraciones para dichas terminales:
$ vim /home/miusuario/.Xdefaults
xterm*background: black
xterm*foreground: white
xterm*font: -misc-fixed-medium-r-normal-*-*-130-*-*-c-*-iso8859-15
xterm*eightBitInput: false
xterm*metaSendsEscape: true
xterm*loginShell: true
#aterm*background: white
aterm*foreground: white
aterm*font: -misc-fixed-medium-r-normal-*-*-130-*-*-c-*-iso8859-15
aterm*scrollBar: false
aterm*transparent: true
aterm*transpscrollbar: true
#aterm*shading: 75
aterm*tinting: red
aterm*loginShell: true
wterm*background: blue
wterm*foreground: white
wterm*font: -misc-fixed-medium-r-normal-*-*-130-*-*-c-*-iso8859-15
wterm*scrollBar: false
wterm*transparent: true
wterm*shade: true
wterm*loginShell: true
$
Ya tendremos las X para ser usadas, ahora solo falta que instalamos nuestro software que necesitaremos. Si venis de otras distribuciones de linux/unix, tendreis claro que paquetes instalar, pero por si no es asi, una lista de los programas mas tipicos que podrian usar:
Navegador Web: mozilla, opera, mozilla-firefox, galeon, konqueror
Reproductor de video: mplayer(gmplayer), xine
Reproductor de audio: xmms
Editor de imagenes: gimp
Animacion 3D: blender
Explorador de archivos: konqueror, nautilus, xffm
Protector de Pantalla: xscreensaver
Visor de imagenes: gqview
Camara digitales: gtkam
Grabar cd/dvd: gcombust, k3b
Mensageria Instantanea: gaim, amsn
Monitorización: gtkam, karamba(superkaramba)
IRC: xchat, kvirc
Editores de texto plano: kwrite, gedit
Editor de "programación": anjuta, kdevelop
Suit de edición: openoffice, staroffice, abiword(solo es un editor)
2P2: xmule, mldonkey21º Sonido mediante ALSA:Vamos a configurar nuestra tarjeta de sonido mediante ALSA. Lo primero que deberemos de hacer es saber exactamente cual es nuestra tarjeta de sonido:
# cat /proc/pci | grep audio
Una vez sepamos cual es, buscaremos información acerca de nuestro modulo en
http://www.alsa-project.org/alsa-doc/ , y en la opción de
Choose manufacturer for more details buscar el modulo de la tarjeta de sonido.
Una vez localizado deberemos de apretar sobre la opción de
Driver & Docs. Ahi podremos leer toda la información de nuestro modulo, asi como tendremos un pequeño manual de configuración basico.
Editaremos nuestro
make.conf y añadiremos(si no lo hicimos anteriormente) la opción de alsa y de esd(si eres usuario de sound blaster no lo pongais). Ademas de añadir una variable de entorno, donde le indicamos cual es el modulo de tarjeta de sonido que tenemos(omitimos el snd-card- de delante del nombre del modulo):
# vim /etc/make.conf
USE="... alsa esd"
...
ALSA_CARDS="nodulo" #ej: ALSA_CARDS="intel8x0"
#
Acontinuación editaremos nuestro kernel, si no lo hemos hecho, para el soporte de alsa, tal y como indicamos en el capitulo del kernel.
Ahora deberemos de emerge los siguientes paquetes:
# emerge alsa-lib
# emerge alsa-utils
# emerge alsa-tools
# emerge alsamixergui
# emerge alsa-oss
Siguiendo la información de la web anteriormente citada, deberemos de copiar exactamente igual como esta el fichero
.asoundrc en la home de cada usuario, o crear un fichero general para todos en
/etc/asound.conf:
# vim /etc/asound.conf
#Lo creamos tal y como aparece en la web
...
#
Acontinuación editaremos el fichero
/etc/modules.d/alsa tal como indica la web:
# vim /etc/modules.d/alsa
#Lo creamos tal y como aparece en la web
...
#
Existen una alternativa a la edición del fichero
/etc/modules.d/alsa y es usar la herramienta
alsaconf:
Por ultimo introduciremos el alsa en los runlevels y cargaremos el demonio:
# rc-update add alsasound boot
# /etc/init.d/alsasound start
Para gestionar el volumen de los altavoces, asi como activar el 5.1 o variantes del estilo, usaremos la herramienta
alsamixergui:
Ahora solo falta con decirle a los programas que usen de plugin de sonido, ALSA o OSS(tenemos emulación del oss mediante ALSA).
Existen un problema originado por el Full duplex, es decir, oir dos sonidos procedentes de 2 programas distinto a la vez. Esto ocurre en la mayoria de tarjetas de sonido(en las sound blaster no ocurre). Unas veces son porque no aceptan y otras veces es porque el modulo no esta suficientemente bien programado, ya que, el full duplex no es mediante hardware, sino mediante software. Para conseguir este efecto, usaremos el esound:
# emerge esound
# rc-update add esound default
# /etc/init.d/esound/start
En este caso deberemos de cambiar el plugin de sonido a usar por esound en todos los programas, y con ello dispondremos de full duplex. En ocasiones tendremos problemas ya que, en algunos programas no existe el soporte esound.