Preparando LPIC-1 108.1 Mantener el reloj del sistema

Vamos a intentar explicar de una forma amena como se maneja este sistema.

Una razon importante para tener un sistema de reloj que me permita sincronizar el tiempo entre todos nuestros equipos para poder tener bien controlado cuando sucesido cada evento cuando se generan los logs. Otro ejemplo podria ser cuando varios equipos usan un recurso compartido con NFS por ejemplo.
Para esto se usa —> Network Time Protocol (NTP) http://www.ntp.org.

Los servidores de NTP proporcionan servicios de sincronizacion al cliente que se conecte a ellos, y ellos mismos se sincronizan gracias a servidores superiores de tiempo.
Las capas en este modelo se llaman strata, con el nivel superior , stratum 0, consiste en un hardware de hora dedicado, como pueden ser relojes atomicos o receptores por satelite. Lo servidores conectados a estas fuentes de hora stratum 0 se llaman servidores stratum 1. Los servidores que se sincronizan por los servidores stratum 1 son lo servidores stratum 2, y asi con el resto. [2]

Los servidores NTP se pueden utilizar de dos formas. Una es ejecutando una utilidad cliente llamada ntpdate, que sincroniza el reloj del sistema una vez. La otra forma es ejecutar un servicio NTP que sincroniza automaticamente el reloj del sistema en cuanto su hora no sea la correcta. Hay una gran cantidad de sistemas que utilizan ambos metodos. Si el reloj del sistema y el reloj atomico difieren mucho, puede llevarle al sistema un tiempo el sincronizarse con un servidor de tiempo superior. Para solventar esto, se llama a la utilidad ntpdate y se sincroniza el reloj antes de iniciar el servicio NTP.

Ej:
[root@localhost etc]# ntpdate pool.ntp.org
2 Dec 07:47:09 ntpdate[5399]: step time server 200.11.116.1 offset 1.817247 sec
[root@localhost etc]#

Como ven aca teniamos defaso el reloj casi dos segundos.
Aca esta utilidad se conecto al servidor pool.ntp.org y ajusto nuestra hora.

Podriamos poner una entrar en el crontab para que haga esto cada dos horas.

0 * /2 * * * root /usr/sbin/ntpdate pool.ntp.org > /dev/null 2>&1

Parametros del ntpdate:

-b Con esta opción, la hora del sistema se establece en lugar de ser poco a poco ajustado, no importa cuán lejos de la hora local es.
-d Modo debug donde vemos mucha info pero la hora no se ajusta
-p n el numero de muestra que va a capturar para setear la hora, (default 4)

-q con esta opcion hace una consulta a un servidor
[root@oc4037774485 sysconfig]# ntpdate -q ar.pool.ntp.org
server 200.3.168.192, stratum 2, offset -0.039172, delay 0.04465
server 200.11.116.1, stratum 2, offset -0.040442, delay 0.04062
server 200.59.8.234, stratum 3, offset -0.037901, delay 0.03978
12 Dec 23:02:40 ntpdate[6000]: adjust time server 200.11.116.1 offset -0.040442 sec
[root@oc4037774485 sysconfig]#

-s con esta opcion la salida es el archivo syslog y no la salida estandar.
-t n se setea el timeout de respuesta
-u se puede especificar que puerto udp va utilizar
-v verbose mode
-B con esta opcion se toma mas tiempo para sincronizar nuestro reloj.

No obstante, necesitara instalar y mantener una entrada en crontab en cada uno de sus hosts, y ademas, dependiendo de la calidad del hardware, el reloj del sistema puede desincronizarse en ese intervalo de dos horas. Puede asegurarse de que el reloj del sistema este sincronizado cada vez que piense que puede no estarlo, instalando y ejecutnado un servidor NTP en su host. Esto mantendra su host sincronizado y ademas le permitira utilizarlo para sincronizar otros hosts de su red.

Vamos a ver un ejemplo de archivo de configuracion:

/etc/ntp.conf ( escucha en el puerto 123 udp)
Tambien podemos ver como se inicia el demonio ntpd

en /etc/sysconfig o en /etc/default
[root@oc4037774485 sysconfig]# cat ntpd
# Command line options for ntpd
OPTIONS="-g"
[root@oc4037774485 sysconfig]#

Vamos a dividirlo en dos secciones:

La primera es la configuracion de la fuente real de la hora:

# Drift file. Put this in a directory which the daemon can write to.
# No symbolic links allowed, either, since the daemon updates the file
# by creating a temporary in the same directory and then rename()’ing
# it to the file.
driftfile /var/lib/ntp/drift

statsdir /var/log/ntpstats/
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 0.centos.pool.ntp.org
server 1.centos.pool.ntp.org
server 2.centos.pool.ntp.org

Explicacion:

La directiva driftfile proporciona al servidor un sitio donde guardar la informacion sobre la idionsincracia del reloj del sistma loca. Cuando pase el tiempo, utilizara esta informacion para calcular la hora con mas precision entr elos intervalos de sincronizacion, dado que el demonio sabe como mantener la hora local correcta.
Los informes estadisticos corresponden a la directiva statistics y se activaran cada uno como dice el archivo.
loopstats –> informacion de actualizaciones por el servidor local
peerstats –> registra informacion sobre todos los peers (tanto servidores superiores como clientes que utilizan nuestra reloj para sincronizar)
clockstats –> escibre informacion estadistica del reloj local en el archivo del registro.
Directiva filegen le indica al demonio en que arhivo queremos que se escriba esta informacion estadistica y con que frecuencia se necesita cambiar el archivo (type day)
Por ultimo la opcion server le indica a ntpd que servidor superior debe utilizar para la sincronizacion.

Ahora en esta otra parte define como los host pueden acceder a nuestro servidor ntp.

# Permit time synchronization with our time source, but do not
# permit the source to query or modify the service on this system.
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery

# Permit all access over the loopback interface. This could
# be tightened as well, but to do so would effect some of
# the administrative functions.
restrict 127.0.0.1
restrict -6 ::1

# Hosts on local network are less restricted.
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

La palabra clave restrict se utiliza para definir las clases de acceso. Tambien se definen los mismos niveles de acceso para los clientes ipv4 y ipv6 utilizando parametros 4 y -6

La palabra calve default es un comodin que se corresponde con todas las direcciones posibles. Kod se utiliza para ralentizar los clientes que excedan la velocidad limite definad, enviandoles un paquete de respuesta especial. No tenemos definidos esos limites, por lo que esto no se utiliza aca. notrap rechaza cualquier paquete de control que se envie, mientras que nomodify anula los intentos de modificar la hora del servidor. nopeer asegura que el servidor no empezara a utilizar un cliente conectado como servidor ntp, y por ultimo noquery evita que el servidor sea consultado por estadisitas peer y otras.
El segundo ejemplo de conjunto de directivas restric garantiza que las conexiones desde la maquina local puedan configurarse e interrogar al servidor NTP. No obstante, ninguna de estas evita que un cliente se sincronice con nuestro servidor NTP.[3]

Parametros que podemos usar el comando ntpd ntpd[1]

-c file ( le indicamos un archivo de configuracion)
-g Esta opción le permitirá ntpd iniciar en un sistema con un reloj que está mas afuera por que el umbral de pánico (1000 por defecto , segundos)
-n Normalmente ntpd se ejecuta como un demonio, pero con esta opcion deshabilita ese comportamiento
-q Se le comunica a ntpd que se finalize luego de sincronizar.
-N Arranca ntpd con el nivel de prioridad mas alto posible.

Opciones de parametros para ntpq:

-c comando
-i modo interactivo
-n no resuelve nombres
-p consulta de peers o usar -c peers

Ejemplo:
[root@oc4037774485 sysconfig]# ntpq -c peers -n ar.pool.ntp.org
remote refid st t when poll reach delay offset jitter
==============================================================================
+216.244.192.3 193.190.230.65 2 u 994 1024 377 7.538 -17.797 5.992
200.220.152.62 200.189.40.8 3 u 1945 1024 376 165.686 -134.38 8.285
+200.137.65.85 200.137.64.20 3 u 917 1024 377 269.163 -15.150 19.308
*200.189.40.8 200.20.186.76 2 u 173 1024 377 50.197 -18.401 19.196
[root@oc4037774485 sysconfig]#

Para hacer una consulta:
[root@localhost log]# ntpq -4 -p localhost
remote refid st t when poll reach delay offset jitter
==============================================================================
core01.ses.net. 146.164.48.5 2 u 6 64 1 553.248 196.365 0.001
core-vgg-1-lo0. 192.43.244.18 2 u 7 64 1 213.474 29.357 0.001
LOCAL(0) .LOCL. 10 l 6 64 1 0.000 0.000 0.001
[root@localhost log]#

Ahi me muestra todos los peers que estan conectados con ipv4
Fijense, tengo localmente este servidor NTP en mi red
[root@localhost log]# ntpq -4 -p localhost
remote refid st t when poll reach delay offset jitter
==============================================================================
core-vgg-1-lo0. 192.43.244.18 2 u 12 64 1 259.571 58.708 0.001
host800234.cote 200.3.168.192 3 u 12 64 1 498.984 173.922 0.001
host151.186-109 .INIT. 16 u – 64 0 0.000 0.000 0.000
LOCAL(0) .LOCL. 10 l 10 64 1 0.000 0.000 0.001
[root@localhost log]#

Ntptrace:
Podemos ratrear los servidores de ntp.

$ /usr/sbin/ntptrace ntp0.cornell.edu
cudns.cit.cornell.edu: stratum 2, offset -0.004214, synch distance 0.03455
dtc-truetime.ntp.aol.com: stratum 1, offset -0.005957, synch distance
0.00000, refid ‘ACTS’
$ /usr/sbin/ntptrace ntp-2.mcs.anl.gov
mcs.anl.gov: stratum 2, offset -0.004515, synch distance 0.06354
clepsydra.dec.com: stratum 1, offset 0.002045, \
synch distance 0.00107, refid ‘GPS

Comando hwclock

Hwclock es una herramienta que nos permite:

* Acceder al Reloj del Hardware
* Mostrar la hora actual
* Poner el Reloj del Hardware a una hora especificada
* Poner el Reloj del Hardware a la Hora del Sistema
* Poner el Tiempo del Sistema desde el Reloj del Hardware.

también puede ejecutar hwclock periódicamente para insertar o quitar tiempo del Reloj del Hardware para compensar desviaciones sistemáticas en las que el reloj gana o pierde tiempo consistentemente a una cierta velocidad si se deja solo.

Sintaxis:
[BASH]# hwclock [opciones]

hwclock –-show
hwclock –systohc
hwclock –-hctosys
hwclock –adjust
hwclock –version

Opciones Descripcion
–show Lee el reloj del hardware y muestra la hora en la salida estándar.
–set Pone el reloj del hardware a la hora dada por la opción –date
–hctosys Pone el tiempo del sistema a partir del reloj del hardware. Ésta es una buena opción para poner en uno de los guiones de arranque del sistema.
–systohc Pone el reloj del hardware a la hora del sistema actual.
–adjust Añade o sustrae tiempo del reloj del hardware para tener en cuenta el desvío sistemático desde la última vez que el reloj se puso o se ajustó. Vea la discusión al respecto más adelante.
–utc Indica que el reloj del hardware se mantiene en el tiempo universal coordinado (UTC). Es cosa suya si mantiene su reloj en hora local o UTC, pero nada en el reloj le dice qué es lo que ha escogido. Así que con esta opción es como le da esa información a hwclock.

Ejemplos:
Preguntar por la hora del reloj del sistema
[root@oc4037774485 etc]# hwclock –show
Sun 12 Dec 2010 10:17:57 PM ART -0.547218 seconds
[root@oc4037774485 etc]#

Setear el reloj de hardware con el del sistema
[root@oc4037774485 etc]# hwclock –systohc
Todos los valores del reloj de hardware son seteados en numeros de segundos desde el 1 de Enero de 1970.
Este numero es convertido en un formato que lo podamos interpretar. El tiempo es representado o en UTC o en nuestro hora local.
UTC es un estandar universal de tiempo y que siempre es el mismo en todas las zonas.
El tiempo local que usamos es simplemente una combinacion de UTC en el cual posee un offset negativo o positivo dependiendo de la zona que configuremos.
Un ejemplo es el siguiente en donde en argentina seria UTC+3 (esta adelantado 3 horas)
Como administrador de sistemas podemos setear nuestra hora con UTC o con nuestro propia hora local.Podriamos tener el reloj en UTC y luego setear en nuestras aplicaciones el tiempo local que gustemos.
Aca un ejemplo:

[root@oc4037774485 etc]# hwclock –show –localtime
Sun 12 Dec 2010 10:20:31 PM ART -0.875240 seconds
[root@oc4037774485 etc]# hwclock –show –utc
Sun 12 Dec 2010 07:20:40 PM ART -0.375265 seconds
[root@oc4037774485 etc]#

Si luego lo quisiera pasar a utc ..
[root@oc4037774485 etc]# hwclock –adjust –utc
[root@oc4037774485 etc]# hwclock –show
Sun 12 Dec 2010 07:28:31 PM ART -0.969133 seconds
[root@oc4037774485 etc]#

Comando date
Este programa se utiliza para mostrar o establecer la hora del sistema

Sintaxis:

[BASH]# date [opciones] [+FORMATO]

Opciones Descripcion
Una literal %
%a Localización del nombre abreviado del día de la semana (Sun,Sat)
%A Localización del nombre completo del día de la semana (Sunday,Saturday)
%b Localización del nombre abreviado del nombre del mes
%c Localizacion de fecha y hora (Sat Nov 04 12:02:33 EST 1989)
%C Siglo (año dividido por 100 y truncado a un entero) 00-99
%d Dia del mes (01..31)
%D Fecha (mm/dd/yy)
%e Dia del mes (1..31,), a diferencia de %d este suprime el espacio en blanco
%F Lo mismo que %Y-%m-%d
%h Lo mismo que %b
%H Hora (00..23)
%I Hora (01..12)
%j Dia del año (001..366)
%k Hora (0..23)
%l Hola (1..12)
%m Mes (01..12)
%M Minutos (00..59)
%n Una nueva linea
%N Nanosegundos (000000000..999999999)
%p Indicacion de PM o AM en mayusculas
%P Indicacion de pm o am en minusculas
%r Tiempo en 12 horas ( hh:mm:ss AP M)
%R Tiempo en 24 horas ( hh:mm )
%s Segundos desde `00:00:00 1970-01-01 UTC’ (una extesion de GNU )
%S Segundos (00..60);
%t Un tabulador horizontal
%T Tiempo , 24 horas (hh:mm:ss)
%u Dia de la semana (1..7) el dia 1 representa el lunes
%U Número de semana del año con el domingo como primer día de la semana (00..53)
%V Número de semana del año con el lunes como primer día de la semana (00..53)
%w Dia de la samana (0..6); 0 representa el Domingo
%W Numero de la semana del año con Lunes como primer dia de la semana (00..53)
%x Representacion de la fecha local (mm/dd/yy)
%X Representacion de la hora local (%H:%M:%S)
%y Los ultimos dos digitos del año (00..99)
%Y Año (1970..)

Ejemplos:[6]
[root@oc4037774485 sysconfig]# echo `date +%Y%m%d`
20101212
[root@oc4037774485 sysconfig]#
[root@oc4037774485 sysconfig]# echo `date +%a”-”%d”-”"Siglo:”%C`
Sun-12-Siglo:20
[root@oc4037774485 sysconfig]#

Bue lo demas es probarlos :)

Fuente:
[1]http://www.eecis.udel.edu/~mills/ntp/html/ntpd.html
[2] www.akadia.com/services/ntp_synchronize.html
[3] www.cis.udel.edu/~mills/ntp/html/
[4] http://www2.linuxparatodos.net/web/comunidad/base-de-conocimiento/-/wiki/Base%20de%20Conocimiento/Certificaci%C3%B3n%20LPI%20102#section-Certificaci_C3_B3n+LPI+102-AjustesDeTiempoYDeLasZonasHorarias
[6]http://enavas.blogspot.com/2008/03/el-shell-de-linux-comando-date.html

Share
Posted in Administracion | Tagged | Leave a comment

Preparando LPIC-1 107.3 Localización e Internacionalización

Buenas:

Aca vamos aver brevemente este topico:
Estos archivos que vamos a tocar tienen que ver con la configuracion de los diferentes idiomas y configuraciones regionales.
El time zone de linux es un enlace simbolico que esta en /etc/localtime a un archivo que corresponda segun la zona (/usr/share/zoneinfo), generalmente esto se setea
en el proceso de instalacion del equipo pero tambien lo podriamos hacer de forma manual con el comando tzconfig o tzselect.

[root@oc4037774485 zoneinfo]# ls -l /etc/localtime
-rw-r–r–. 1 root root 1061 Aug 3 10:35 /etc/localtime
[root@oc4037774485 zoneinfo]#

[root@oc4037774485 share]# cd zoneinfo/
[root@oc4037774485 zoneinfo]# ls
Africa Asia Canada Cuba EST Factory GMT0 Hongkong Iran Japan Mexico Navajo Poland PRC ROK Universal W-SU
America Atlantic CET EET EST5EDT GB GMT-0 HST iso3166.tab Kwajalein Mideast NZ Portugal PST8PDT Singapore US zone.tab
Antarctica Australia Chile Egypt Etc GB-Eire GMT+0 Iceland Israel Libya MST NZ-CHAT posix right Turkey UTC Zulu
Arctic Brazil CST6CDT Eire Europe GMT Greenwich Indian Jamaica MET MST7MDT Pacific posixrules ROC UCT WET
[root@oc4037774485 zoneinfo]

Aca veamos como podemos cambiar interactivamente la zona.
[root@oc4037774485 zoneinfo]# tzselect
Please identify a location so that time zone rules can be set correctly.
Please select a continent or ocean.
1) Africa
2) Americas
3) Antarctica
4) Arctic Ocean
5) Asia
6) Atlantic Ocean
7) Australia
8) Europe
9) Indian Ocean
10) Pacific Ocean
11) none – I want to specify the time zone using the Posix TZ format.
#? q

O podriamos cambiarla de forma manual:

ln -s /usr/share/zoneinfo/America/Buenos_Aires/etc/localtime

Si nos referimos a las zonas horarias estandar que se usan UTC o GMT [1]

[root@oc4037774485 zoneinfo]# date
Sun Dec 12 21:52:24 ART 2010
[root@oc4037774485 zoneinfo]# date -u
Mon Dec 13 00:52:27 UTC 2010
[root@oc4037774485 zoneinfo]#
Para mas info de como se calcula UTC ver el link.

Si quisiera saber unicamente la zona que tenemos (en sigla)
[root@oc4037774485 zoneinfo]# date +%Z
ART
[root@oc4037774485 zoneinfo]#

Despues tenemos un conjunto de variables que van a definir valores que los van a utilizar las diferentes aplicaciones:
LANG
Defines all locale settings at once, while allowing further individual customi-
zation via the LC_* settings described next.
LC_COLLATE
Defines alphabetical ordering of strings. This affects the output of sorted di-
rectory listings, for example.
LC_CTYPE
Defines the character-handling properties for the system. This determines
which characters are seen as alphabetic, numeric, and so on. This also deter-
mines the character set used, if applicable.
LC_MESSAGES
This defines the programs’ localizations for applications that use a message-
based localization scheme. This includes the majority of GNU programs.
LC_MONETARY
Defines currency units and the formatting of currency type numeric values.
LC_NUMERIC
Defines formatting of numeric values that aren’t monetary. This affects things
such as the thousands separator and decimal separator.
LC_TIME
Defines the formatting of dates and times.
LC_PAPER
Defines the default paper size.
LC_ALL
A special variable for overriding all other settings

Con el comando locale podemos ver como son nuestros valores:
[root@oc4037774485 zoneinfo]# locale
LANG=en_US.UTF-8
LC_CTYPE=”en_US.UTF-8″
LC_NUMERIC=”en_US.UTF-8″
LC_TIME=”en_US.UTF-8″
LC_COLLATE=”en_US.UTF-8″
LC_MONETARY=”en_US.UTF-8″
LC_MESSAGES=”en_US.UTF-8″
LC_PAPER=”en_US.UTF-8″
LC_NAME=”en_US.UTF-8″
LC_ADDRESS=”en_US.UTF-8″
LC_TELEPHONE=”en_US.UTF-8″
LC_MEASUREMENT=”en_US.UTF-8″
LC_IDENTIFICATION=”en_US.UTF-8″
LC_ALL=
[root@oc4037774485 zoneinfo]#

vamos a ver la salida y que tipo de codificacion de carateres usamos.
UTF[2] Ver link.

En sistemas basados en red hat para cambiar el idioma podemos usar este comando:
[root@oc4037774485 sysconfig]# system-config-language

O editar este archivo que esta en /etc/sysconfig
[root@oc4037774485 sysconfig]# cat i18n
LANG=”en_US.UTF-8″
SYSFONT=”latarcyrheb-sun16″
[root@oc4037774485 sysconfig]#

Tambien podemos mirar el archivo que esta en /etc/profile.d
[root@oc4037774485 profile.d]# cat lang.sh
Como ya saben lo que esta alli se va a exportar cuando nuestro usuario inicie una sesion.

Fuente: http://es.wikipedia.org/wiki/Tiempo_universal_coordinado[1]

http://es.wikipedia.org/wiki/UTF-8[2]

Share
Posted in Administracion | Tagged | Leave a comment

Instalando Fluxbox y personalizando la grafica en Centos 5.5

Vamos a ver como instalar fluxbox[2] desde las fuentes e instalarlo.

Primero vamos a tener que bajarlo de su sitio oficial:

[root@localhost ~]# wget http://prdownloads.sourceforge.net/fluxbox/fluxbox-1.1.1.tar.gz

Aca vemos como lo bajamos y lo descomprimimos:


[root@localhost opt]# tar xvzf fluxbox-1.1.1.tar.gz
[root@localhost opt]# ls
fluxbox-1.1.1  fluxbox-1.1.1.tar.gz
[root@localhost opt]# 

Luego tenemos que compilar las fuentes pero antes si no tienen las librerias ni las tools de desarrollo tenemos que hacer lo siguiente.

[root@localhost opt]#yum grouplist
Aca la salida esta cortada...
 Development Tools
 Development Libraries

[root@localhost opt]# yum groupinstall "Development Tools" "Development Libraries"

Ahora vamos a compilarlo:


[root@localhost opt]# cd fluxbox-1.1.1
[root@localhost fluxbox-1.1.1]# ./configure -with-kde -with-gnome
aca va a tomarse un rato..
[root@localhost fluxbox-1.1.1]#make && make install

Tengan en cuenta que estas practicas la hize teniendo el equipo en runlevel 3 por defecto.
[root@localhost fluxbox-1.1.1]# cat /etc/inittab
id:3:initdefault:

Vamos a editar algunos archivos:

El siguiente archivo .xinitrc si no existen lo crean.
[root@localhost ~]# cat .xinitrc
exec xterm &
exec /usr/local/bin/fluxbox
[root@localhost ~]# 

La primera linea lo que hace es ejecutar xterm
La siguiente llama a fluxbox para arrancar.

Aca una foto de como quedaria:

Al redefinir el xinitrc no va ir a buscar a /etc/X11/ sino que usa la configuracion que le ponemos.
Tenemos instalado en nuestro equipo centos los siguientes grupos:
X Window System[3]
GNOME Desktop Environment[4]

Si arrancariamos en modo 5 iniciaria el servidor X y luego gnome desktop (gdm) es el que se va encargar de arrancar nuestra sesion grafica y nos proveera de una interfaz para poder loguearnos, luego de esto usara el window manager de gnome que es mwm (metacity).
Tambien podriamos tener el X display manager estandar[5][6]

Podriamos hacer que nuestro server X llame a otro window manager como es twm[1][7]

[root@localhost ~]# cat .xinitrc
exec xterm &
exec xclock &
exec xeyes &
exec twm
[root@localhost ~]#

Ahora lo que vamos hacer es jugar con el archivo .Xresources para que pueda personalizar ciertos programas .

[root@localhost ~]# cat .Xresources
xterm*background: Black
xterm*foreground: Wheat
xterm*cursorColor: Orchid
xterm*reverseVideo: false
[root@localhost ~]#

Luego vamos a o borrar .xinitrc o sacar la linea que llama a fluxbox.

Luego iniciamos la grafica y vamos a tener algo asi:
Como ven al llamar al xterm cambio los valores de sus colores y demas..

Ahora lo que vamos hacer es cambiar nuestro Display Manager:

Vamos a instalar este

yum install xorg-x11-xdm.i386[8][12][10]

Luego editamos este archivo

vi /etc/sysconfig/desktop

[root@localhost ~]# cat /etc/sysconfig/desktop
DESKTOP="twm"
DISPLAYMANAGER="xdm"
[root@localhost ~]#

Luego Editamos este archivo /etc/X11/xdm/xdm-config

Y comentamos la ultima linea:
Los comentarios son !

! SECURITY: do not listen for XDMCP or Chooser requests
! Comment out this line if you want to manage X terminals with xdm
!DisplayManager.requestPort:    0

Luego editaremos este otro:
/etc/X11/xdm/Xservers

Pondremos esto:
:0 local /usr/bin/X
rino:0 foreing

Que me va a indicar quienes puede atender mi servidor X.

Luego configuramos para ver desde donde escucha y a que hosts.
/etc/X11/xdm/Xaccess
# First line for direct queries
*
# Following line for indirect queries
* CHOOSER BROADCAST

Luego creamos un archivo xdm en /etc/init.d con este contenido

[root@localhost xdm]# cat /etc/init.d/xdm
#!/bin/sh
    # xdm start/stop script for RedHat based systems
    #
    # chkconfig: 234 60 60
    # description: xdm permits remote users to logon to this X display
    # processname: /usr/X11R6/bin/xdm
    # config: /etc/X11/xdm/xdm-config

    # source function library
    . /etc/rc.d/init.d/functions

    [ -x /usr/bin/xdm ] || exit 0

    prog=/usr/bin/xdm

    RETVAL=0

    start () {
    	echo -n $"Starting $prog: "
        # start daemon
        daemon $prog
        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && touch /var/lock/subsys/xdm
        return $RETVAL
    }

    stop () {
    	echo -n $"Stopping $prog: "
        killproc $prog
        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && rm -f /var/lock/subsys/xdm
        return $RETVAL
    }

    restart () {
    	stop
        start
        RETVAL=$?
        return $RETVAL
    }

    # See how we were called.
    case "$1" in
    	 start)
        start
        ;;
         stop)
        stop
        ;;
         status)
        status $prog
        RETVAL=$?
        ;;
         restart)
        restart
        ;;
         condrestart)
        # only restart if it is already running
        [ -f /var/lock/subsys/xdm ] && restart || :
        ;;
         reload)
        echo -n $"Reloading $prog: "
        killproc $prog -HUP
        RETVAL=$?
        echo
        ;;
         *)
             echo $"Usage: $0 (start|stop|restart|condrestart|reload|status)"
             RETVAL=1
    esac

    exit $RETVAL

[root@localhost xdm]#
Luego le dan permiso de ejecucion y lo agregan con chkconfig --add xdm,  chkconfig --level 3 xdm off

El ultimo paso para poder loguearnos es generar el archivo .xsession lo cual vamos a copiar el anterior .xinitrc porque sino tenemos un .xsession el xdm no vamos a poder loguearnos.

[root@localhost ~]# cat .xsession
exec xterm &
exec xclock &
exec xeyes &
startkde
[root@localhost ~]#

Y hacemos un telinit 5 para ir al runlevel con X11.

Fijsen que ahora cambio...

Aca una vez que nos logueamos..

Ahora vamos a editar este archivo devuelta /etc/sysconfig/desktop

[root@localhost ~]# cat /etc/sysconfig/desktop
DESKTOP= "GNOME"
DISPLAYMANAGER= "gdm"
[root@localhost ~]#

Pasamos a telinit 3 y luego a telinit 5 y vamos a tener gdm como display manager.

Ahora podriamos instalar KDE

[root@localhost ~]# yum groupinstall "KDE (K Desktop Environment)"

Y luego editariamos devuelta el archivo /etc/sysconfig/desktop y pondriamos.

[root@localhost ~]# cat /etc/sysconfig/desktop
DESKTOP= "kde"
DISPLAYMANAGER= "kdm"
[root@localhost ~]#

Quedaria asi con KDM

Ahora vamos a personalizar un poco nuestro XDM
instalemos este paquete [root@localhost ~]# yum install xorg-x11-xbitmaps.i386

Y editemos este archivo:
[root@localhost xdm]# pwd
/etc/X11/xdm
[root@localhost xdm]# ls -l Xsetup_0
-rwxr-xr-x 1 root root 1003 Nov 26 20:29 Xsetup_0
[root@localhost xdm]#
Agreguenle esta linea --> al Xsetup_0
/usr/bin/xsetroot -bitmap\
/usr/include/X11/bitmaps/xsnow

Volvamos a editar este archivo:
[root@localhost xdm]# cat /etc/sysconfig/desktop
DESKTOP="twm"
DISPLAYMANAGER="xdm"
[root@localhost xdm]#

Y ahora reinicimos telinit 3 y telinit 5.

Probemos editar ahora algunas cosas mas
Probemos editar el /etc/X11/xdm/Xresources para modificar el panel de bienvenida, no se olviden que hoy hicimos lo mismo pero para nuestros programas..

Alguno de los parametros que pueden tocar.. investiguen...
xlogin*greeting: Welcome!
xlogin*namePrompt: Name:\040
xlogin*passwdPrompt: Password:
xlogin*fail: !WRONG!
xlogin*foreground: black
xlogin*background: steelblue
xlogin*greetColor: white
xlogin*promptColor: grey
xlogin*failColor: red

Y la lista sigue..

Fuentes:
[5]http://en.wikipedia.org/wiki/X_display_manager_(program_type)
[4]http://en.wikipedia.org/wiki/GNOME_Display_Manager
[3]http://en.wikipedia.org/wiki/X_Window_System_protocols_and_architecture
[7]http://en.wikipedia.org/wiki/X_window_manager
[6]http://en.wikipedia.org/wiki/X_session_manager
[1]http://en.wikipedia.org/wiki/Twm
[2]http://en.wikipedia.org/wiki/Fluxbox
[8]http://tldp.org/HOWTO/XDM-Xterm/config.html
[9]http://www.idevelopment.info/data/Unix/Linux/LINUX_ConfiguringXDMCPRedHatLinux.shtml
[10]http://www.geekvenue.net/chucktips/jason/chuck/991290514/index_html
[11]http://www.faqs.org/docs/Linux-mini/XDM-Xterm.html
[12]http://www.linuxjournal.com/article/3325?page=0,0

http://linuxandfriends.com/2008/09/06/change-default-display-manager-ubuntu-linux/

Share
Posted in Administracion, Lpi | Tagged , | Leave a comment

Preparando LPIC-1 Tema 107 Tareas Administrativas

*.Aqui vamos a desarrollar el topico 107 por cada objetivo.*

107.1 Administrar cuentas de usuario y grupo y sus archivos relacionadosEN CONSTRUCCION
107.2 Automátizar tareas de administración del sistema usando trabajos programadosEN CONSTRUCCION
107.3 Localización e Internacionalización

Share
Posted in Administracion, Lpi | Tagged , | Leave a comment

Instalando Zabbix en Ubuntu 10.04 Server

Instalacion de Zabbix en un Ubuntu Server 10.04.

Primer Paso :
Instalar las dependencias:
root@ubuntu:~# sudo apt-get install build-essential mysql-server libmysqlclient15-dev php5 php5-gd php5-mysql snmp libsnmp-dev snmpd libcurl4-openssl-dev fping

Tengan en cuenta que nos va a pedir la clave para el usuario de mysql.

Segundo Paso:
Creacion de usuarios y grupo.

root@ubuntu:~# adduser zabbix
Adding user `zabbix' ...
Adding new group `zabbix' (1001) ...
Adding new user `zabbix' (1001) with group `zabbix' ...
Creating home directory `/home/zabbix' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for zabbix
Enter the new value, or press ENTER for the default
	Full Name []:
	Room Number []:
	Work Phone []:
	Home Phone []:
	Other []:
Is the information correct? [Y/n] y
root@ubuntu:~# adduser zabbix admin
Adding user `zabbix' to group `admin' ...
Adding user zabbix to group admin
Done.
root@ubuntu:~#

Tercer Paso:
Bajar e instalar las fuentes de zabbix.

root@ubuntu:~# su – zabbix
To run a command as administrator (user “root”), use “sudo “.
See “man sudo_root” for details.

zabbix@ubuntu:~$
zabbix@ubuntu:~$ wget http://downloads.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/1.8.3/zabbix-1.8.3.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fzabbix%2Ffiles%2F&ts=1289855421&use_mirror=ufpr
O bajarlo de aca. –> http://sourceforge.net/projects/zabbix/files/
zabbix@ubuntu:~$ time tar xzvpf zabbix-1.8.3.tar.gz

Cuarto Paso:
Configurar las bases.
zabbix@zabbix@ubuntu:~$ sudo mysql -u root -p -e”create database zabbix;”
Enter password:
zabbix@ubuntu:~$
Configurar el acceso para zabbix
zabbix@ubuntu:~$ sudo mysql -u root -p mysql -e”grant all privileges on zabbix.* to zabbix@localhost identified by ‘zabbix’;”
Enter password:
zabbix@ubuntu:~$

zabbix@ubuntu:~$ mysql -D zabbix -uzabbix -pzabbix < /home/zabbix/zabbix-1.8.3/create/schema/mysql.sql
zabbix@ubuntu:~$ mysql -D zabbix -uzabbix -pzabbix < /home/zabbix/zabbix-1.8.3/create/data/data.sql
zabbix@ubuntu:~$ mysql -D zabbix -uzabbix -pzabbix < /home/zabbix/zabbix-1.8.3/create/data/images_mysql.sql

Quinto Paso:
Vamos a configurar e instalar desde las fuentes.
zabbix@ubuntu:~/zabbix-1.8.3$ ./configure –prefix=/usr –with-mysql –with-net-snmp \
> –with-libcurl –enable-server –enable-agent &&
> make
…ahora va empezar a compilar…
Luego..
make install
Tienen que ver que termine sin errores.

Sexto Paso:
Configuraciones del sistema.

Editamos /etc/services y agregamos al final esto
zabbix_agent 10050/tcp # Zabbix ports
zabbix_trap 10051/tcp

Archivos de configuracion:
zabbix@ubuntu:~/zabbix-1.8.3$ sudo mkdir /etc/zabbix
zabbix@ubuntu:~/zabbix-1.8.3$ sudo chown -R zabbix.zabbix /etc/zabbix/
zabbix@ubuntu:~/zabbix-1.8.3$ cp misc/conf/zabbix_* /etc/zabbix/

Editamos:
vi /etc/zabbix/zabbix_agentd.conf

Y verificamos que el zabbix_agentd.conf tenga esto:
Server=127.0.0.1

Editamos este otro:
zabbix@ubuntu:~/zabbix-1.8.3$ vi /etc/zabbix/zabbix_server.conf

Buscamos estos parametros:
# Database user
DBUser=zabbix
# Database password
# Comment this line if no password used
DBPassword=zabbix

Ahora copiamos los script de arranque:

zabbix@ubuntu:~/zabbix-1.8.3$ sudo cp misc/init.d/debian/zabbix-server /etc/init.d
zabbix@ubuntu:~/zabbix-1.8.3$ sudo cp misc/init.d/debian/zabbix-agent /etc/init.d

Configurar el script de inicio del server:
zabbix@ubuntu:~/zabbix-1.8.3$ sudo vi /etc/init.d/zabbix-server
NAME=zabbix_server
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/home/zabbix/bin
#DAEMON=/home/zabbix/bin/${NAME}
DAEMON=/usr/sbin/${NAME} # esta es la nueva linea.

Configurar script de inicio del agent:

zabbix@ubuntu:~/zabbix-1.8.3$ sudo vi /etc/init.d/zabbix-agent

NAME=zabbix_agentd
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/home/zabbix/bin
#DAEMON=/home/zabbix/bin/${NAME}
DAEMON=/usr/sbin/${NAME}

Configurar permisos de algunos archivos y de scripts de inicio:

zabbix@ubuntu:~/zabbix-1.8.3$ sudo chmod 755 /etc/init.d/zabbix-server
zabbix@ubuntu:~/zabbix-1.8.3$ sudo update-rc.d zabbix-server defaults
update-rc.d: warning: /etc/init.d/zabbix-server missing LSB information
update-rc.d: see
Adding system startup for /etc/init.d/zabbix-server …
/etc/rc0.d/K20zabbix-server -> ../init.d/zabbix-server
/etc/rc1.d/K20zabbix-server -> ../init.d/zabbix-server
/etc/rc6.d/K20zabbix-server -> ../init.d/zabbix-server
/etc/rc2.d/S20zabbix-server -> ../init.d/zabbix-server
/etc/rc3.d/S20zabbix-server -> ../init.d/zabbix-server
/etc/rc4.d/S20zabbix-server -> ../init.d/zabbix-server
/etc/rc5.d/S20zabbix-server -> ../init.d/zabbix-server
zabbix@ubuntu:~/zabbix-1.8.3$

zabbix@ubuntu:~/zabbix-1.8.3$ sudo chmod 755 /etc/init.d/zabbix-agent
zabbix@ubuntu:~/zabbix-1.8.3$ sudo update-rc.d zabbix-agent defaults
update-rc.d: warning: /etc/init.d/zabbix-agent missing LSB information
update-rc.d: see
Adding system startup for /etc/init.d/zabbix-agent …
/etc/rc0.d/K20zabbix-agent -> ../init.d/zabbix-agent
/etc/rc1.d/K20zabbix-agent -> ../init.d/zabbix-agent
/etc/rc6.d/K20zabbix-agent -> ../init.d/zabbix-agent
/etc/rc2.d/S20zabbix-agent -> ../init.d/zabbix-agent
/etc/rc3.d/S20zabbix-agent -> ../init.d/zabbix-agent
/etc/rc4.d/S20zabbix-agent -> ../init.d/zabbix-agent
/etc/rc5.d/S20zabbix-agent -> ../init.d/zabbix-agent
zabbix@ubuntu:~/zabbix-1.8.3$

Arrancar el Servicio:
Ambos, server y agent.
zabbix@ubuntu:~/zabbix-1.8.3$ sudo /etc/init.d/zabbix-server start
Starting Zabbix server daemon: zabbix_server
zabbix@ubuntu:~/zabbix-1.8.3$
zabbix@ubuntu:~/zabbix-1.8.3$ sudo /etc/init.d/zabbix-agent start
Starting Zabbix agent daemon: zabbix_agentd
zabbix@ubuntu:~/zabbix-1.8.3$

Chequear que este andando:

zabbix@ubuntu:~/zabbix-1.8.3$ ps -aux | grep zabbix
–muchos…
zabbix 21104 0.0 0.2 47904 1340 ? SN 19:26 0:00 /usr/sbin/zabbix_server
zabbix 21106 0.0 0.2 47904 1320 ? SN 19:26 0:00 /usr/sbin/zabbix_server
zabbix 21272 0.0 0.1 3148 620 ? SN 19:31 0:00 /usr/sbin/zabbix_agentd
zabbix 21273 0.0 0.1 3148 740 ? SN 19:31 0:00 /usr/sbin/zabbix_agentd
—mas—

Sexto Paso:
Configuracion web para monitoreo .
zabbix@ubuntu:~/zabbix-1.8.3$ mkdir /home/zabbix/public_html
zabbix@ubuntu:~/zabbix-1.8.3$ cp -R frontends/php/* /home/zabbix/public_html/

Configuracion del sitio :
zabbix@ubuntu:~/zabbix-1.8.3$ sudo nano /etc/apache2/sites-enabled/000-default

y le agregamos esto al final

Alias /zabbix /home/zabbix/public_html/
<Directory /home/zabbix/public_html>
AllowOverride FileInfo AuthConfig Limit Indexes
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
<Limit GET POST OPTIONS PROPFIND>
Order allow,deny
Allow from all
</Limit>
<LimitExcept GET POST OPTIONS PROPFIND>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>

Configurar parametros de php5

zabbix@ubuntu:~/zabbix-1.8.3$ sudo vi /etc/php5/apache2/php.ini

Cambiar a este:
; Maximum execution time of each script, in seconds
; http://php.net/max-execution-time
; Note: This directive is hardcoded to 0 for the CLI SAPI
max_execution_time = 300

luego:

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = America/Buenos_Aires

Sacan su time zone desde aca –> http://us3.php.net/manual/en/timezones.php

; http://php.net/max-input-time
max_input_time = 300

; http://php.net/post-max-size
post_max_size = 16M

Reiniciamos apache:

zabbix@ubuntu:~/zabbix-1.8.3$ sudo /etc/init.d/apache2 restart
* Restarting web server apache2 … waiting [ OK ]
zabbix@ubuntu:~/zabbix-1.8.3$

Luego Tenemos 8 Pasos:

Primero desde un navegador ponemos:

http:/192.168.1.102/zabbix

Paso 2:

Paso 3:

Paso 4:

Paso 5

Paso 6
Aca presten atencion que nos va a pedir que copiemos la configuracion en un directorio del usuario zabbix.

[rino@rino BOINC]$ scp /media/bkp/zabbix.conf.php zabbix@192.168.1.102:/home/zabbix/public_html/conf/
zabbix@192.168.1.102′s password:
zabbix.conf.php 100% 1034 1.0KB/s 00:00
[rino@rino BOINC]$

Paso 7:

Paso 8:

Luego vamos a tener esta pantalla:
La cual el usuario es admin, passwd zabbix

Uno de los menues:

En la proxima entrega vamos a ver como se sigue configurando.

Fuentes:
[1] http://www.zabbix.com/wiki/howto/install/ubuntu/ubuntuinstall

Share
Posted in Administracion | Tagged | Leave a comment

Preparando LPIC-1 108.2 Bitácoras del sistema

*. Aqui veremos lo mas importante de este topico.*

En este topico vamos a ver un poco como funciona los eventos de logs.

Historia:

syslog fue desarrollado por Eric Allman como parte del proyecto Sendmail,inicialmente (años 1980) sólo para éste proyecto.
Sin embargo, se comprobó que era muy útil, y otras aplicaciones empezaron también a usar syslog.
Hoy en día, syslog está presente por defecto en casi todos los sistemas Unix y GNU/Linux, y también se encuentran diversas implementaciones de syslog para otros sistemas operativos, como Microsoft Windows.

Es ahora, después de tantos años, cuando syslog está en proceso de convertirse en estándar, para -entre otras cosas-
poder mejorar la seguridad de sus implementaciones. IETF asignó un grupo de trabajo, y en 2001, se documentó
su funcionamiento en el RFC 3164 [1]. La estandarización del contenido del mensaje y de las diferentes capas de abstracción fueron planificadas en 2006.

Algunas de las ventajas que podemos tener:
* Todos los logs estan centralizados, en un directorio en particular o en un servidor.

* Modelo cliente/servidor para syslogd en donde guarda los eventos de forma centralizada para poder monitorear mas facilmente y realizar reportes.

* Syslogd permite que múltiples procesos escriban en el mismo fichero de registro, evitando al mismo tiempo

cuestiones de bloqueo de archivos.
Hay una serie de aplicaciones disponibles para Linux que implementan la funcionalidad syslogd y ofrecen una funcionalidad adicional. Algunos ejemplos son rsyslog[2] y syslog-ng[3].

A los efectos del examen LPI, que cubren sólo el servidor de base syslogd[1].
Protocolo:
El protocolo syslog es muy sencillo: existe un ordenador servidor ejecutando el servidor de syslog, conocido como syslogd (demonio de syslog). El cliente envía un pequeño mensaje de texto (de menos de 1024 bytes).

Los mensajes de syslog se suelen enviar vía UDP, por el puerto 514, en formato de texto plano. Algunas implementaciones del servidor, como syslog-ng, permiten usar TCP en vez de UDP, y también ofrecen Stunnel para que los datos viajen cifrados mediante SSL/TLS.

Aunque syslog tiene algunos problemas de seguridad, su sencillez ha hecho que muchos dispositivos lo implementen, tanto para enviar como para recibir. Eso hace posible integrar mensajes de varios tipos de sistemas en un solo repositorio central.
* Configurando Syslogd *
El comportamiento de syslogd es controlado por el archivo de configuración /etc/syslog.conf. Este archivo de texto contiene líneas que indican lo que va a estar registrado y dónde. Cada línea contiene directivas en esta forma:
facility.level action
Facility :
La prioridad es un número de 8 bits[4] que indica tanto el recurso (tipo de aparato que ha generado el mensaje) como la severidad (importancia del mensaje), números de 5 y 3 bits respectivamente. Los códigos de recurso y severidad los decide libremente la aplicación, pero se suele seguir una convención para que clientes y servidores se entiendan.
Esto representa el creador del mensaje (es decir, el kernel o un proceso) y es uno de los siguientes: auth (el facility security es el equivalente a auth, su uso está en desuso), authpriv, cron, daemon, kern, lpr, mail, mark (es para uso interno syslogd sólo), news, syslog, users, uucp , o local0 hasta local7. El uso de estos designadores de instalación le permite controlar el

destino de los mensajes en función de su origen. Instalaciones de local0 a local7 son para cualquier uso que usted tal vez desee asignar a ellos en sus propios programas y scripts. Es posible que su distribución se haya asignado uno o más de los

los servicios locales ya. Verifique su configuración antes de utilizar una instalación local.

Numero Facility
0 Mensajes del kernel
1 Mensajes del nivel de usuario
2 Sistema de correo
3 Demonios de sistema
4 Seguridad/Autorización
5 Mensajes generados internamente por syslogd
6 Subsistema de impresión
7 Subsistema de noticias sobre la red
8 Subsistema UUCP
9 Demonio de reloj
10 Seguridad/Autorización
11 Demonio de FTP
12 Subsistema de NTP
13 Inspección del registro
14 Alerta sobre el registro
15 Demonio de reloj
16 Uso local 0
17 Uso local 1
18 Uso local 2
19 Uso local 3
20 Uso local 4
21 Uso local 5
22 Uso local 6
23 Uso local 7

Niveles:
Especifica un umbral de gravedad más allá de los mensajes que se registran, y es uno de los siguientes (de menor a mayor gravedad): debug, info, notice, warning (o warn ), err (o error), crit, alert, o emerg (o panic). (warn, error, and panic son obsoletos, pero es posible verlos en los sistemas más antiguos.) También hay un nivel especial llamado none que deshabilita un servicio(facility). El nivel define la cantidad de detalles registrados en el archivo de registro.El punto separa las facility de los level, y juntos conforman el selector de mensajes. El asterisco (*) se puede utilizadar para describir todas las facilitys o levels.
Códigos de severidad
Los 3 bits menos significativos del campo prioridad dan 8 posibles grados.[4]

Numero Level
0 Emergencia: el sistema está inutilizable
1 Alerta: se debe actuar inmediatamente
2 Crítico: condiciones críticas
3 Error: condiciones de error
4 Peligro: condiciones de peligro
5 Aviso: normal, pero condiciones notables
6 Información: mensajes informativos
7 Depuración: mensajes de bajo nivel

Cálculo de la prioridad
Para conocer la prioridad final de un mensaje, se aplica la siguiente fórmula:
Prioridad = Recurso * 8 + Severidad
Por ejemplo, un mensaje de kernel (Recurso=0) con Severidad=0 (emergencia), tendría Prioridad igual a 0*8+0 = 0. Uno de FTP (11) de tipo información (6) tendría 11*8+6=94. Como se puede ver, valores más bajos indican mayor prioridad.
Action
La directiva de acción es, sin duda mal llamada. Representa el destino de mensajes que corresponden a un selector dado (facility.level). La acción puede ser un nombre de archivo (incluyendo la ruta completa), un nombre precedido por el signo @,
o una lista separada por comas de los usuarios o un asterisco (es decir, todos los usuarios registrados recibirán el registro en sus consolas). Es en donde va a parar el evento mismo con sus datos.

Ahora vamos a ver un par de ejemplos y archivos de configuracion:

El archivo de configuracion de syslog esta en /etc/syslog.conf.

[root@villadalmine etc]# cat syslog.conf
# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.*							/dev/console

# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none		/var/log/messages

# The authpriv file has restricted access.
authpriv.*						/var/log/secure

# Log all the mail messages in one place.

# Log cron stuff
cron.*							/var/log/cron

# Everybody gets emergency messages
*.emerg							*

# Save news errors of level crit and higher in a special file.
uucp,news.crit						/var/log/spooler

# Save boot messages also to boot.log
local7.*						/var/log/boot.log
[root@villadalmine etc]#

En esta linea:
cron.* /var/log/cron

Estamos mandando los log de cron en todos sus niveles al archivo /var/log/cron

uucp,news.crit /var/log/spooler

En este caso tenemos dos faility separados por , en donde ambos van a guardar los eventos de log de nivel crit en el archivo spooler.

*.info;mail.none;authpriv.none;cron.none /var/log/messages

En este caso tenemos los ; que separan distintos eventos de log en donde cada uno hace referencia un facility distinto.

Dependiendo de su espacio de disco disponible, puede optar por guardar menos información, elevando el nivel del archivo de mensajes.
El servidor syslogd mantiene los identificadores de archivo abierto para todos los archivos definidos en /etc/syslog.conf. Esto significa que el único proceso que puede escribir en estos archivos es syslogd.
No configurar sus programas para escribir directamente a estos archivos! En su lugar, llame a un programa para que registre sus logs con uno de los syslog locales.
El servicio de syslog en realidad se compone de dos procesos, syslogd y klogd. Syslogd se utiliza para registrar los eventos del proceso de usuario, mientras que klogd se utiliza para registrar los eventos de procesos del núcleo. Ellos trabajan en conjunto y utilizan el mismo archivo de configuración, por lo que realmente sólo hay que asegurarse de que están en ejecución!

[root@villadalmine etc]# ps ax | egrep -i “(syslogd|klogd)”
10069 ? Ss 1:08 syslogd -m 0
32293 pts/0 S+ 0:00 egrep -i (syslogd|klogd)
[root@villadalmine etc]#

Modelo Cliente/Servidor de logs:

Syslogd también tiene la capacidad para registrar mensajes en la red. Si un proceso syslogd se inicia con la opción-r, se escucha en la red para los mensajes entrantes de syslogd. Por defecto, syslogd utiliza el puerto UDP 514 para esta comunicación. Un práctica comun es configurar el servidor maestro de registros que recibe todos los mensajes de log de sus clientes. En el lado del cliente, debe configurar el servicio syslogd para que guarde todo de forma local y tambien aquellos logs que quiera registra en el servidor maestro de registro. Esto se consigue añadiendo la siguiente línea en el archivo syslog.conf .[5]

Cliente:

*.* @192.168.1.100

Esto significa que los mensajes que coincidan con todas los facility y los levels deben ser enviadas a la IP 192.168.1.100.

Usted puede determinar si un servidor está escuchando syslogd para las entradas de registro remoto dela siguiente manera.

Asegurarse de editar /etc/init.d/syslogd
if [ -f /etc/sysconfig/syslog ] ; then
. /etc/sysconfig/syslog
else
# SYSLOGD_OPTIONS=”-m 0″
SYSLOGD_OPTIONS=”-r ”
KLOGD_OPTIONS=”-2″
fi

Luego:
netstat -anp | grep -i “:514″
udp 0 0 0.0.0.0:514 0.0.0.0:* 26645/syslogd

Rotacion de Logs:

En la mayoría de las distribuciones se instalará una configuración por defecto de syslog para usted, incluyendo
logs al messages y otros archivos de registro de logs en /var/log. Para evitar que cualquiera de estos archivos
crezca sin vigilancia a tamaños extremos, un sistema de rotación archivo de registro se debe instalar
también. Los cron del sistema se ejucutaran comandos (generalmente una vez al día) para extablecer entre otras cosas
nuevos archivos de registro de logs, los archivos antiguos se cambian el nombre con sufijos numéricos. Con este
tipo de rotación, los actuales seran /var/log/messages y los que rotaron seran /var/log/messages.1. La rotación se configura
con un número máximo de archivos para guardar, y los más antiguos se eliminan cuando la rotación se ejecuta.
La utilidad que establece la rotación es logrotate. Este comando sirve configurar uno o más archivos, que se especifican como argumentos del comando logrotate. Estos archivos de configuración pueden contener directivas para incluir otros archivos también. El archivo de configuración por defecto es /etc/logrotate.conf.

Ejemplo:

[root@rino ~]# cat /etc/logrotate.conf
# see "man logrotate" for details
# rotate log files weekly
weekly

# keep 9 weeks worth of backlogs
rotate 9

# create new (empty) log files after rotating old ones
create

# use date as a suffix of the rotated file
dateext

# uncomment this if you want your log files compressed
#compress

# RPM packages drop log rotation information into this directory
include /etc/logrotate.d

# no packages own wtmp and btmp -- we'll rotate them here
/var/log/wtmp {
    monthly
    create 0664 root utmp
	minsize 1M
    rotate 9
}

/var/log/btmp {
    missingok
    monthly
    create 0600 root utmp
    rotate 9
}

# system-specific logs may be also be configured here.
[root@rino ~]#

Tambien aca vemos lo demas logrotate..

[root@rino logrotate.d]# ls -la /etc/logrotate.d/
total 68
drwxr-xr-x.   2 root root  4096 Nov 11 23:08 .
drwxr-xr-x. 139 root root 12288 Nov 14 22:36 ..
-rw-r--r--.   1 root root    62 Sep 22 17:13 clamav-update
-rw-r--r--.   1 root root    71 Sep 17 13:30 cups
-rw-r--r--    1 root root   185 Oct 27 07:01 httpd
-rwxr-xr-x    1 root root   106 Aug 30  2007 jetty
-rw-r--r--    1 root root   136 Aug  5 11:46 ppp
-rw-r--r--.   1 root root   296 Jun 28 04:41 psacct
-rwxr-xr-x.   1 root root    72 Mar 10  2010 sav
-rw-r--r--.   1 root root   121 Oct  4 17:42 setroubleshoot
-rw-r--r--.   1 root root   219 Oct 18 17:11 sssd
-rw-r--r--    1 root root   228 Sep  9 03:26 syslog
-rw-r--r--.   1 root root    95 May 17 05:09 vsftpd
-rw-r--r--.   1 root root   100 May 13  2010 wpa_supplicant
-rw-r--r--.   1 root root   100 Oct  5 10:03 yum
[root@rino logrotate.d]#

Logrotate ha sido diseñado para facilitar la administración de sistemas que generan gran cantidad de archivos de registro (logs). El programa permite el cambio, compresión, eliminación y envío automático por correo de los archivos de registro. Cada archivo puede ser tratado diariamente, semanalmente, mensualmente o siempre que se haga demasiado grande.

Normalmente, logrotate se ejecuta como tarea diaria de tipo cron. El programa no modificará un archivo repetidas veces a no ser que el criterio para ese archivo se base en el tamaño del mismo y logrotate se ejecute varias veces al día.

En la línea de comandos pueden indicarse un número ilimitado de archivos de configuración. Más tarde, estos archivos de configuración pueden invalidar las opciones dadas en archivos de configuración anteriores, por lo tanto, el orden en que se listan los archivos de configuración de logrotate es muy importante. Normalmente, debería usarse un sólo archivo de configuración que incluya tantos otros archivos de configuración como sean necesarios. Véase más abajo cómo usar la directiva include para conseguirlo. Si se proporciona un nombre de directorio en la línea de comandos, cada uno de los archivos que se encuentren en ese directorio se usará como archivo de configuración.[6-7-8-9]

Herramientas de logs:

Tenemos el comando logger para testear si el syslog esta registrando los eventos.

[root@rino logrotate.d]# logger -p syslog.info “Mensaje de Prueba”
[root@rino logrotate.d]#
En otra terminal
[root@rino ~]# tail -f /var/log/message
Nov 14 23:57:43 rino rino: Mensaje de Prueba

Como ven el evento se grabo.

Otra tarea que podemos realizar es el monitoreo de logs, exiten diversas herramientas pero vamos unicamente a mencionar la mas basica que es con el comando tail.

El formato de log es:

* Hora y fecha
* Origen del log
* Remitente del mensaje (kernel, sendmail o un usuario)
* Texto del mensaje

Asi se veria….

[root@villadalmine log]# tail -n 10 secure
Nov 14 18:16:01 villadalmine sshd[13693]: pam_unix(sshd:auth): check pass; user unknown
Nov 14 18:16:01 villadalmine sshd[13693]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=211.99.249.143
Nov 14 18:16:02 villadalmine sshd[13669]: Failed password for invalid user test from 211.99.249.143 port 54910 ssh2

Utilizar el logrotate manualmente:[10-11]
[root@rino etc]# logrotate -s /var/log/logstatus logrotate.conf
[root@rino etc]#

Como ven conla opcion -s le decimos donde tire la salida…

[root@rino log]# tail -f logstatus
"/var/log/jetty/jetty-console.log" 2010-11-15
"/var/log/maillog" 2010-11-15
"/var/log/wpa_supplicant.log" 2010-11-15
"/var/log/secure" 2010-11-15
"/var/log/ppp/connect-errors" 2010-11-15
"/var/log/messages" 2010-11-15
"/var/log/cron" 2010-11-15
"/var/account/pacct" 2010-11-15
"/var/log/httpd/access_log" 2010-11-15
"/var/log/vsftpd.log" 2010-11-15

Fuentes:

[1] http://es.wikipedia.org/wiki/Syslog

[2] http://en.wikipedia.org/wiki/Rsyslog

[3] http://en.wikipedia.org/wiki/Syslog-ng
[4] http://www.ietf.org/rfc/rfc3164.txt
[5] http://www.fogonacaixadagua.com.br/2009/09/rsyslog-gravando-no-mysql-e-com-interface-web-para-consultas/
[6] http://eithel-inside.blogspot.com/2010/05/logrotate-para-mantener-nuestros-logs.html
[7] http://es.tldp.org/Paginas-manual/man-pages-es-extra-0.8a/man8/logrotate.8.html
[8] http://helektron.com/tutorial-configurar-logrotate-en-un-servidor-linuxunix-despues-de-generar-las-estadisticas/
[9] http://www.logadmin.net/2007/02/logrotate-domina-tus-archivos-de-log.html
[10] http://www.thegeekstuff.com/2010/07/logrotate-examples/
[11] http://www.thegeekstuff.com/2009/08/10-awesome-examples-for-viewing-huge-log-files-in-unix/

Share
Posted in Administracion, Lpi | Tagged , | Leave a comment

Preparando LPIC-1 Tema 108 Servicios de Sistema Básicos

*.Aqui vamos a desarrollar el topico 108 por cada objetivo.*

108.1 Mantener el reloj del sistema
108.2 Bitácoras del sistema
108.3 Fundamentos de los Agentes de Transporte de Correo (MTA)EN CONSTRUCCION
108.4 Administración de impresión e impresorasEN CONSTRUCCION

Share
Posted in Administracion, Lpi | Tagged , | Leave a comment

Administrando MysqlServer en Ubuntu 10.04

En esta mini guia vamos a ver como instalar mysqlserver y dar los primeros pasos para una administracion basica.

Antes que nada vamos a bajarlo.

root@hostname:/var/www/ubuntu# aptitude install mysql-server
Leyendo lista de paquetes… Hecho
Creando árbol de dependencias
Leyendo la información de estado… Hecho
Leyendo la información de estado extendido
Inicializando el estado de los paquetes… Hecho
Se instalarán los siguiente paquetes NUEVOS:
libdbd-mysql-perl{a} libdbi-perl{a} libhtml-template-perl{a} libmysqlclient16{a} libnet-daemon-perl{a}
libplrpc-perl{a} mysql-client-5.1{a} mysql-client-core-5.1{a} mysql-common{a} mysql-server
mysql-server-5.1{a} mysql-server-core-5.1{a}
0 paquetes actualizados, 12 nuevos instalados, 0 para eliminar y 0 sin actualizar.
Necesito descargar 23,2MB de archivos. Después de desempaquetar se usarán 54,8MB.
¿Quiere continuar? [Y/n/?]

Seguido de eso le va a pedir la clave de root para mysql asi que le ponen la que quieran.

Archivos de configuracion de mysql:

root@hostname:/var/www/ubuntu# cd /etc/mysql/
root@hostname:/etc/mysql# ls
conf.d  debian.cnf  debian-start  my.cnf
root@hostname:/etc/mysql#

El archivo my.cnf es el archivo de configuracion basico donde se va a establecer los parametros mas significativo del mysql.

Vamos a mostrar como conectarnos como root

root@hostname:/etc/mysql/conf.d# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 41
Server version: 5.1.41-3ubuntu12.6 (Ubuntu)

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> SELECT VERSION ();
+--------------------+
| VERSION ()         |
+--------------------+
| 5.1.41-3ubuntu12.6 |
+--------------------+
1 row in set (0.00 sec)

mysql>

Ver las bases:

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
+--------------------+
2 rows in set (0.00 sec)

mysql>

Para crear una base de datos:


mysql> CREATE DATABASE `test_database`;
Query OK, 1 row affected (0.00 sec)

mysql>show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| test_database      |
+--------------------+
3 rows in set (0.00 sec)

mysql>


Vamos a crear una tabla:


mysql> CREATE TABLE comment_table(
    -> id INT NOT NULL auto_increment,
    -> comment TEXT,
    -> PRIMARY KEY(id));
Query OK, 0 rows affected (0.68 sec)

mysql>
mysql> show tables;
+-------------------------+
| Tables_in_test_database |
+-------------------------+
| comment_table           |
+-------------------------+
1 row in set (0.00 sec)

mysql> describe comment_table;
+---------+---------+------+-----+---------+----------------+
| Field   | Type    | Null | Key | Default | Extra          |
+---------+---------+------+-----+---------+----------------+
| id      | int(11) | NO   | PRI | NULL    | auto_increment |
| comment | text    | YES  |     | NULL    |                |
+---------+---------+------+-----+---------+----------------+
2 rows in set (0.00 sec)

mysql>

Ahora vamos a darle privilegios a esa base para que el usuario linux pueda utilizarla.


mysql> GRANT ALL PRIVILEGES ON test_database.* TO linux@localhost IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> 

root@hostname:/etc/mysql# mysql -u linux -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 44
Server version: 5.1.41-3ubuntu12.6 (Ubuntu)

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| test_database      |
+--------------------+
2 rows in set (0.00 sec)

mysql>
mysql> use test_database;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+-------------------------+
| Tables_in_test_database |
+-------------------------+
| comment_table           |
+-------------------------+
1 row in set (0.00 sec)

mysql> INSERT INTO comment_table VALUES ('0','Vamos el violeta');
Query OK, 1 row affected (0.00 sec)

mysql> INSERT INTO comment_table VALUES ('0','Viva La Santa Federacion');
Query OK, 1 row affected (0.00 sec)

mysql>


Tambien se le puede dar solo algunos privilegios a ciertos usuarios asi por lo menos tan solo pueden hacer consultas.
Ej:
GRANT SELECT PRIVILEGES ON test_database.* TO dbquery@localhost IDENTIFIED BY '123456';

Haciendo una consulta basica:

mysql> select * from comment_table;
+----+--------------------------+
| id | comment                  |
+----+--------------------------+
|  1 | Vamos el violeta         |
|  2 | Viva La Santa Federacion |
+----+--------------------------+
2 rows in set (0.00 sec)

mysql>

Ahora si quisieramos hacer un backup
La sintaxis seria asi ->

 mysqldump --add-drop-table -u [username] -p[password] [database] > [backup_file]

Quedaria algo asi:

root@hostname:/etc/mysql# mysqldump --add-drop-table -u linux -p123456 test_database > /tmp/test_databse.sql
root@hostname:/etc/mysql# ls -l /tmp/test_databse.sql
-rw-r--r-- 1 root root 1995 2010-10-31 22:08 /tmp/test_databse.sql
root@hostname:/etc/mysql# file /tmp/test_databse.sql
/tmp/test_databse.sql: ASCII text
root@hostname:/etc/mysql#

Si quisieramos hacer un restore:

La sintaxis seria asi -->

mysql -u [username] -p[password] [database] < [backup_file]

Para hacer un restore de la copia de resguardo.
root@hostname:/etc/mysql# mysql -u linux -p123456 test_database < /tmp/test_databse.sql

Si quisiera solo resguardar algunas tablas y no toda la base :


mysql> use forums-db-old;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> SELECT * INTO OUTFILE '/tmp/forums-db-users.sql' FROM phpbb_users;
Query OK, 1042 rows affected (0.03 sec)

mysql> SELECT * INTO OUTFILE '/tmp/forums-db-themes.sql' FROM phpbb_themes;
Query OK, 1038 rows affected (0.03 sec)

mysql> use forums-db-new;
Database changed
mysql> load data infile '/tmp/forums-db-users.sql' replace  into table forums-db.phpbb_users ;
Query OK, 1042 rows affected (0.06 sec)
Records: 1042  Deleted: 0  Skipped: 0  Warnings: 0

mysql> load data infile '/tmp/forums-db-themes.sql' replace into table forums-db.phpbb_themes ;
Query OK, 1038 rows affected (0.04 sec)
Records: 1038  Deleted: 0  Skipped: 0  Warnings: 0

mysql>

Hasta aca vimos tareas basicas de administracion muchas de ellas requieren conocimientos basicos de sql.
Ahora vamos a instalar phpmyadmin para poder administrar nuestras base de forma web.

INSTALANDO PHPMYADMIN

root@hostname:/etc/mysql# aptitude install phpmyadmin
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias
Leyendo la información de estado... Hecho
Leyendo la información de estado extendido
Inicializando el estado de los paquetes... Hecho
Se instalarán los siguiente paquetes NUEVOS:
  apache2-mpm-prefork{a} dbconfig-common{a} javascript-common{a} libapache2-mod-php5{a} libgd2-xpm{a}
  libjs-mootools{a} libmcrypt4{a} libt1-5{a} php5-common{a} php5-gd{a} php5-mcrypt{a} php5-mysql{a} phpmyadmin
  wwwconfig-common{a}
Se ELIMINARÁN los siguientes paquetes:
  apache2-mpm-worker{a}
0 paquetes actualizados, 14 nuevos instalados, 1 para eliminar y 0 sin actualizar.
Necesito descargar 8.967kB de archivos. Después de desempaquetar se usarán 31,2MB.
¿Quiere continuar? [Y/n/?]

Luego van a tener que selecionar el servidor web que estan usando que quieren usar asi lo instala.
Tambien despues leva a pedir la clave del administrador de base de datos para configurar labase para phpmyadmin.

Luego en su navegador ponen esto:

http://172.16.31.148/phpmyadmin/

Van a tener el menu para poder loguearse.

Luego una vez adentro podemos elegir trabajar en aquellas bases donde tengamos privilegios.

Un ejemplo de como quedo cuanod agregue una tabla a la base test_database:

A continuacion vamos a generar un index.php para que nos muestre le contenido de nuestra base:
Nos guiamos con el script hecho en esta pagina [5].

Esto es todo saludos.

Fuentes:
[1] http://www.ajpdsoft.com/modules.php?name=News&file=article&sid=159
[2] http://www.alcancelibre.org/staticpages/index.php/como-mysql-quickstart
[3] http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch34_:_Basic_MySQL_Configuration
[4] http://www.brennan.id.au/17-MySQL_Server.html
[5] http://www.yolinux.com/TUTORIALS/LinuxTutorialMySQL.html
[6] http://www.php.happycodings.com/Miscellaneous/code26.html
[7] http://php.net/manual/en/function.mysql-list-tables.php
[8] http://www.php-mysql-tutorial.com/wikis/mysql-tutorials/connect-to-mysql-database.aspx
[9] http://php.bigresource.com/Display-database-output-in-mutli-column-html-table-toyECbb6.html

Share
Posted in Hosting | Tagged | Leave a comment

Configurando Kickstart con Ubuntu Parte II

En el post anterior vimos como configurar una instalacion por red mediante PXE pero de manera asistida ahora vamos a agregarle la parte para que la instalacion sea desasistida mediante la utilizacion de kickstart.

¿Qué son las instalaciones Kickstart?

Muchos administradores de sistemas preferieren usar un método de instalación automatizado para instalar linux en sus máquinas. Para cubrir esta necesidad, Red Hat creó el método de instalación kickstart. Usando kickstart, un administrador de sistemas puede crear un archivo conteniendo las respuestas a todas las preguntas que normalmente se le preguntarán durante una instalación típica de Linux.

Los archivos kickstart se pueden mantener en un servidor de sistema único y ser leídos por computadores individuales durante la instalación. Este método de instalación puede soportar el uso de un sólo archivo kickstart para instalar Red Hat Linux en múltiples máquinas, haciéndolo ideal para administradores de sistemas y de red.
Kickstart le permite automatizar la instalación de Linux. [2]

Seguimos entonces con la configuracion que teniamos hecha antes para poder continuar con la configuracion de kickstart.

Para ello necesitaremos instalar el siguiente paquete para poder crear el archivo kickstar o sino podriamos crearlo a mano.

root@hostname:/var/lib/tftpboot/webserver# aptitude search kickstart
i system-config-kickstart – graphical tool for creating Kickstart files
root@hostname:/var/lib/tftpboot/webserver#

Vamos a tener que generar el archivo con esa apliacacion seleccionando el tipo de instalacion http , tengan en cuenta que kickstart fue desarrollado para Red Hat asi que para ubuntu tiene ciertas limitaciones.

Aca vemos el programa de configuracion grafica de kickstart

Luego que selecionamos todo guardamos el archivo.

A continuacion su contenido.


root@hostname:~# cat ks.cfg-test
#Generated by Kickstart Configurator
#platform=x86

#System language
lang es_AR
#Language modules to install
langsupport en_US fr_FR --default=es_AR
#System keyboard
keyboard latam
#System mouse
mouse
#System timezone
timezone America/Argentina/Buenos_Aires
#Root password
rootpw --iscrypted $1$JsM2Ock2$KcPPS2Rda6T29wWgHuyfH0
#Initial user
user rino --fullname "rino" --iscrypted --password $1$lijNsN62$F6iL.4NY9e4no10UZ/bS10
#Reboot after installation
reboot
#Use text mode install
text
#Install OS instead of upgrade
install
#Use Web installation
url --url http://172.16.31.148/ubuntu
#System bootloader configuration
bootloader --location=mbr
#Clear the Master Boot Record
zerombr yes
#Partition clearing information
clearpart --all --initlabel
#Disk partitioning information
part /boot --fstype ext2 --size 200 --asprimary
part swap --size 500
part / --fstype ext4 --size 1 --grow --asprimary
#System authorization infomation
auth  --useshadow  --enablemd5
#Network information
network --bootproto=dhcp --device=eth0
#Firewall configuration
firewall --disabled
#Do not configure the X Window System
skipx
#Package install information
@ ubuntu-desktop
%pre
#this is my pre installation script
%post
#this is my post installation script
root@hostname:~#

Este archivo lo copiamos a /var/www/ubuntu con el nombre ks.cfg.

Luego vamos a tener que reconfigurar el menu para la instalacion asi que vamos hacer backup del que existia y generar uno nuevo bien basico.

root@hostname:/var/www/ubuntu# cat /var/lib/tftpboot/webserver/pxelinux.cfg/default

DEFAULT linux

LABEL linux
kernel ubuntu-installer/i386/linux
append ks=http://172.16.31.148/ks.cfg preseed/url=http://172.16.31.148/ubuntu.seed vga=normal initrd=ubuntu-installer/i386/initrd.gz — quiet

prompt 1
timeout 8
root@hostname:/var/www/ubuntu#

Tengan en cuenta que la linea append es toda una linea entera no son dos renglones diferentes.

Aca en la siguiente imagen vamos a ver como arranca por red como lo habiamos realizado antes, nada mas que no tenemos un menu.

Si llegan a tener este error:

Lo solucione de esta manera.

root@hostname:~# cd /var/www/ubuntu/ubuntu/dists/lucid/restricted/binary-i386/
root@hostname:/var/www/ubuntu/ubuntu/dists/lucid/restricted/binary-i386# ls
Packages.gz  Release
root@hostname:/var/www/ubuntu/ubuntu/dists/lucid/restricted/binary-i386# gunzip Packages.gz
root@hostname:/var/www/ubuntu/ubuntu/dists/lucid/restricted/binary-i386#

Despues de un rato van a tener su sistema instalado.

Esto que vimosde kickstart es la punta del iceberg… Se pueden lograr configuraciones mucho mas avanzadas y personalizadas tan solo es cuestion de seguir leyendo la documentacion y ver que es lo que necesitamos para ir tras ello.
Si van a querer instalar varios sistemas a la vez tienen que configurar el archivo de dhcp para que apunte a las mac de las pc que necesitan.
Tambien pueden jugar un poco y crearse un menu para que soporte la instalacion de multiples versiones de ubuntu y para eso tendria que jugar un poco con el menu y la estructura de archivos haciendo que apunte al directorio correspondiente.

Saludos :)

Fuente:
[1] http://www2.tiendalinux.com/docs/manuales/redhat/rhl-cg-es-7.1/s1-kickstart2-options.html
[2] http://www.hospedajeydominios.com/mambo/documentacion-manual_rh9cg-pagina-s1_kickstart2_startinginstall.html
[3] http://alufis35.uv.es/Kickstart-instalaciones.html
[4] http://yoadminsis.blogspot.com/2010/06/kickstart-creacion-de-un-servidor-de.html

Share
Posted in Administracion, Hosting, Redes | Tagged , , | Leave a comment

Apuntando mis dominios a mi propio dns con Ubuntu server 10.04

Buenas:

Vamos a realizar algunas practicas con dns.

Para empezar vamos a configurar un dominio para que sea el dns de nuestras webs.

Vamos a crear el archivo que contiene la info que necesita nuestra zona.

root@pc1:~# cd /etc/
root@pc1:/etc# cd bind
root@pc1:/etc/bind# ls
bind.keys  db.127  db.empty  db.root     named.conf.default-zones  named.conf.options  zones.rfc1918
db.0       db.255  db.local  named.conf  named.conf.local          rndc.key
root@pc1:/etc/bind# cp db.empty db.midns.com

Ahora que copiamos ya desde uno por defecto vamos a editarlo para que quede asi.


root@pc1:/etc/bind# cat db.midns.com
; BIND reverse data file for empty rfc1918 zone
;
; DO NOT EDIT THIS FILE - it is used for multiple zones.
; Instead, copy it, edit named.conf, and use that copy.
;
$TTL    86400
@       IN      SOA     ns1.midns.com. root.midns.com. (
                              1         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                          86400 )       ; Negative Cache TTL
;
@       IN      NS      ns1.midns.com.
ns1     IN      A       172.16.31.149
root@pc1:/etc/bind#

Luego tenemos que configurar nuestros archivos de configuracion global del demonio bind.


root@pc1:/etc/bind# ls -l
total 60
-rw-r--r-- 1 root root  601 2010-03-22 16:59 bind.keys
-rw-r--r-- 1 root root  237 2010-03-22 16:59 db.0
-rw-r--r-- 1 root root  271 2010-03-22 16:59 db.127
-rw-r--r-- 1 root root  237 2010-03-22 16:59 db.255
-rw-r--r-- 1 root root  353 2010-03-22 16:59 db.empty
-rw-r--r-- 1 root root  270 2010-03-22 16:59 db.local
-rw-r--r-- 1 root bind  384 2010-10-29 15:52 db.midns
-rw-r--r-- 1 root bind  384 2010-10-29 15:52 db.midns.com
-rw-r--r-- 1 root root 2940 2010-03-22 16:59 db.root
-rw-r--r-- 1 root bind  463 2010-03-22 16:59 named.conf
-rw-r--r-- 1 root bind  490 2010-03-22 16:59 named.conf.default-zones
-rw-r--r-- 1 root bind  239 2010-10-29 15:52 named.conf.local
-rw-r--r-- 1 root bind  572 2010-10-29 15:51 named.conf.options
-rw-r----- 1 bind bind   77 2010-10-29 15:23 rndc.key
-rw-r--r-- 1 root root 1317 2010-03-22 16:59 zones.rfc1918
root@pc1:/etc/bind#

De todos esos tenemos que tocar nada mas el named.conf.local que es el que vamos a ir agregando nuestras zonas a administrar.


root@pc1:/etc/bind# cat named.conf.local
//
// Do any local configuration here
//

// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";
zone "midns.com" {
        type master;
        file "/etc/bind/db.midns.com";
};
root@pc1:/etc/bind#

Corroboramos que no halla errores de sintaxis en los archivos que modificamos.

root@pc1:/etc/bind# named-checkconf named.conf
root@pc1:/etc/bind# named-checkconf named.conf.local
root@pc1:/etc/bind#
root@pc1:/etc/bind# named-checkzone midns.com db.midns.com
zone midns.com/IN: loaded serial 1
OK
root@pc1:/etc/bind#

Luego restarteamos el servicio y vemos si esta andando todo.


root@pc1:/etc/bind# invoke-rc.d bind9 restart
 * Stopping domain name service... bind9                                                                                          [ OK ]
 * Starting domain name service... bind9                                                                                          [ OK ]
root@pc1:/etc/bind#
No se olviden de esto -->
root@pc1:/etc/bind# cat /etc/resolv.conf
nameserver 172.16.31.2  --> lo tengo apuntado a la interface nat que me da ip .
domain localdomain
search localdomain
root@pc1:/etc/bind# vi /etc/resolv.conf
root@pc1:/etc/bind# cat /etc/resolv.conf
nameserver 172.16.31.149 --> apuntemoslo a nuestro dns (nuestra ip)
domain localdomain
search localdomain
root@pc1:/etc/bind#
Aca una bateria de utilidades de bind.
root@pc1:/etc/bind# host ns1.midns.com
ns1.midns.com has address 172.16.31.149
root@pc1:/etc/bind# nslookup ns1.midns.com
Server:         172.16.31.149
Address:        172.16.31.149#53

Name:   ns1.midns.com
Address: 172.16.31.149

root@pc1:/etc/bind# dig ns1.midns.com

; <<>> DiG 9.7.0-P1 <<>> ns1.midns.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 3432
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;ns1.midns.com.                 IN      A

;; ANSWER SECTION:
ns1.midns.com.          86400   IN      A       172.16.31.149

;; AUTHORITY SECTION:
midns.com.              86400   IN      NS      ns1.midns.com.

;; Query time: 1 msec
;; SERVER: 172.16.31.149#53(172.16.31.149)
;; WHEN: Fri Oct 29 17:33:08 2010
;; MSG SIZE  rcvd: 61

root@pc1:/etc/bind#

Ahora lo que vamos hacer es suponer que tenemos dos sitios webs …
www.villadalmine.com.ar
www.santafederacion.com.ar
Y queremos que utilize el dns que configuramos arriba.


Creamos el primer archivo de nuestra zona
root@pc1:/etc/bind# cp db.empty  db.villadalmine.com.ar
root@pc1:/etc/bind#

Lo editamos

root@pc1:/etc/bind# cat db.villadalmine.com.ar
; BIND reverse data file for empty rfc1918 zone
;
; DO NOT EDIT THIS FILE - it is used for multiple zones.
; Instead, copy it, edit named.conf, and use that copy.
;
$TTL    86400
@       IN      SOA     ns1.midns.com.       ns1.midns.com. (
                              1         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                          86400 )       ; Negative Cache TTL
;
@       IN      NS      ns1.midns.com.
www     IN      A       172.16.31.149
root@pc1:/etc/bind#
Luego editamos el named.conf.local
root@pc1:/etc/bind# cat named.conf.local
//
// Do any local configuration here
//

// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";
zone "midns.com" {
        type master;
        file "/etc/bind/db.midns.com";
};

zone "villadalmine.com.ar" {
        type master;
        file "/etc/bind/db.villadalmine.com.ar";
};
root@pc1:/etc/bind#

Ahora vamos hacer lo mismo para el otro sitio.

root@pc1:/etc/bind# cp db.empty db.santafederacion.com.ar
root@pc1:/etc/bind# vi db.santafederacion.com.ar
root@pc1:/etc/bind# vi named.conf.local
root@pc1:/etc/bind# named-checkzone santafederacion.com.ar db.santafederacion.com.ar
zone santafederacion.com.ar/IN: loaded serial 1
OK
root@pc1:/etc/bind#

Los archivos quedaron asi:

root@pc1:/etc/bind# cat db.santafederacion.com.ar
; BIND reverse data file for empty rfc1918 zone
;
; DO NOT EDIT THIS FILE – it is used for multiple zones.
; Instead, copy it, edit named.conf, and use that copy.
;
$TTL 86400
@ IN SOA ns1.midns.com. ns1.midns.com. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
86400 ) ; Negative Cache TTL
;
@ IN NS ns1.midns.com.
www IN A 172.16.31.149
root@pc1:/etc/bind#

root@pc1:/etc/bind# cat named.conf.local
//
// Do any local configuration here
//

// Consider adding the 1918 zones here, if they are not used in your
// organization
//include “/etc/bind/zones.rfc1918″;
zone “midns.com” {
type master;
file “/etc/bind/db.midns.com”;
};

zone “villadalmine.com.ar” {
type master;
file “/etc/bind/db.villadalmine.com.ar”;
};

zone “santafederacion.com.ar” {
type master;
file “/etc/bind/db.santafederacion.com.ar”;
};
root@pc1:/etc/bind#

Bueno ahora reiniciamos y testeamos que ande con las herramientas de bind.


root@pc1:/etc/bind# dig www.santafederacion.com.ar

; <<>> DiG 9.7.0-P1 <<>> www.santafederacion.com.ar
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50174
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;www.santafederacion.com.ar.    IN      A

;; ANSWER SECTION:
www.santafederacion.com.ar. 86400 IN    A       172.16.31.149

;; AUTHORITY SECTION:
santafederacion.com.ar. 86400   IN      NS      ns1.midns.com.

;; ADDITIONAL SECTION:
ns1.midns.com.          86400   IN      A       172.16.31.149

;; Query time: 1 msec
;; SERVER: 172.16.31.149#53(172.16.31.149)
;; WHEN: Fri Oct 29 21:16:07 2010
;; MSG SIZE  rcvd: 103

root@pc1:/etc/bind# dig www.villadalmine.com.ar

; <<>> DiG 9.7.0-P1 <<>> www.villadalmine.com.ar
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 9142
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;www.villadalmine.com.ar.       IN      A

;; ANSWER SECTION:
www.villadalmine.com.ar. 86400  IN      A       172.16.31.149

;; AUTHORITY SECTION:
villadalmine.com.ar.    86400   IN      NS      ns1.midns.com.

;; ADDITIONAL SECTION:
ns1.midns.com.          86400   IN      A       172.16.31.149

;; Query time: 0 msec
;; SERVER: 172.16.31.149#53(172.16.31.149)
;; WHEN: Fri Oct 29 21:16:15 2010
;; MSG SIZE  rcvd: 100

Bueno ya tenemos andando nuestras zonas ahora vamos a hostear los sitios en otro equipo haciendo que utilize nuestro dns.

Miren la salida de la configuracion del equipo externo


rino ~ # ls -la /var/www/
total 20
drwxr-xr-x  5 apache root 4096 Oct 29 21:29 .
drwxr-xr-x 14 root   root 4096 Oct 29 16:10 ..
drwxr-xr-x  3 root   root 4096 Oct 29 16:16 localhost
drwxr-xr-x  2 root   root 4096 Oct 29 21:30 santafederacion.com.ar
drwxr-xr-x  2 root   root 4096 Oct 29 21:30 villadalmine.com.ar
rino ~ # ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:0c:29:b2:ff:f8
          inet addr:172.16.31.147  Bcast:172.16.31.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:feb2:fff8/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:24010 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12282 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:35338831 (33.7 MiB)  TX bytes:686110 (670.0 KiB)
          Interrupt:19 Base address:0x2000 

rino ~ #

Ahora vemos el apache :)

rino vhosts.d # ls -l
total 28
-rw-r–r– 1 root root 7628 Oct 29 16:16 00_default_ssl_vhost.conf
-rw-r–r– 1 root root 1518 Oct 29 16:16 00_default_vhost.conf
-rw-r–r– 1 root root 398 Oct 29 21:26 default.include
-rw-r–r– 1 root root 2830 Oct 29 16:16 default_vhost.include
-rw-r–r– 1 root root 398 Oct 29 21:40 santafederacion.com.ar.conf
-rw-r–r– 1 root root 389 Oct 29 21:36 villadalmine.com.ar.conf
rino vhosts.d # uname -r
2.6.34-gentoo-r6

rino vhosts.d # uname -a

rino vhosts.d # cat /etc/resolv.conf
# Generated by dhcpcd from eth0
# /etc/resolv.conf.head can replace this line
search localdomain
nameserver 172.16.31.149
# /etc/resolv.conf.tail can replace this line
rino vhosts.d #

Como ven es otro equipo que apunta a nuestro dns :)

Esto funciona claramente para un uso interno si quieren hacer su propio dns para apuntarle sus webs lo mas practico es usar el servicio de –>

http://freedns.afraid.org/

http://www.everydns.com

Para hacerlo mas didactico por lo menos algo..
Me voy agregar esta entrada en mi /etc/hosts porque no voy a cambiar mi dns :)

172.16.31.147 www.villadalmine.com.ar www.santafederacion.com.ar

Y ahora la prueba de que esta andando :)



Como ven del lado derecho una pagina y del lado izquierdo otra

Resumiendo, configuramos dns, y dos zonas que utilizan ese dns para que luego las paginas sean hospedadas en otra web.. Pero para eso tuvimos que cambiar los archivos de las zonas para que el registro que contiene a donde esta el subdominio www apunte a la ip donde esta hospedada la pagina.

Aca estan los archivos, en negrita lo que se cambio
root@pc1:/etc/bind# cat db.villadalmine.com.ar
; BIND reverse data file for empty rfc1918 zone
;
; DO NOT EDIT THIS FILE – it is used for multiple zones.
; Instead, copy it, edit named.conf, and use that copy.
;
$TTL 86400
@ IN SOA ns1.midns.com. ns1.midns.com. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
86400 ) ; Negative Cache TTL
;
@ IN NS ns1.midns.com.
www IN A 172.16.31.147
root@pc1:/etc/bind#

root@pc1:/etc/bind# cat db.santafederacion.com.ar
; BIND reverse data file for empty rfc1918 zone
;
; DO NOT EDIT THIS FILE – it is used for multiple zones.
; Instead, copy it, edit named.conf, and use that copy.
;
$TTL 86400
@ IN SOA ns1.midns.com. ns1.midns.com. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
86400 ) ; Negative Cache TTL
;
@ IN NS ns1.midns.com.
www IN A 172.16.31.147
root@pc1:/etc/bind#

Bueno esto es todo :)

Saludos

Share
Posted in Hosting, Redes | Tagged , | 1 Comment