Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Version 2
03/03/2011
Este manual de implementacin documenta toda la informacin relacionada a la configuracin y administracin de Beakos GNU/Linux en ambientes de produccin.
Av. San Fernando #37 Col. Toriello Guerra Del. Tlalpan Mxico D. F.
Colaboradores
Francisco Sosa Romero Jess Arriola Villarreal Antonio Moreno Herrera Carlos Torres Arcega ngel Ruiz Rosas
Reconocimiento Debe reconocer y citar al autor original de esta obra. No comercial No puede utilizar esta obra para fines comerciales. Compartir bajo la misma licencia Si altera o transforma esta obra, o genera una obra derivada, slo puede distribuir la obra generada bajo una licencia idntica a sta.
Tabla de contenido
Reconocimiento-No comercial-Compartir bajo la misma licencia 3.0 .................................. 4 Usted es libre de:............................................................................................................... 4 Bajo las condiciones siguientes: ........................................................................................ 4
Introduccin .......................................................................................... 15
Convenciones para este documento....................................................................................... 15
4.2 Manipulacin de archivos y directorios ............................................................................ 64 4.2.1 Tipos de ficheros y directorios ................................................................................... 64 4.2.3 Archivos, propiedades y permisos ............................................................................. 64 4.2.2 Cambio de un usuario a un archivo o directorio ........................................................ 65 4.2.3 Copiar archivos ........................................................................................................... 66 4.2.4 Mover archivos directorios ....................................................................................... 66 4.2.5 Crear enlaces simblicos ............................................................................................ 67 4.2.6 Buscar archivos y directorios...................................................................................... 67 4.2.7 Compresin de archivos y directorios con GZIP y BZIP2 ............................................ 68 4.2.8 Crear y eliminar directorios ....................................................................................... 68 4.2.9 Concatenar archivos ................................................................................................... 69 4.2.10 Uso de espacio en disco ........................................................................................... 69 4.2.11 Localizar comandos .................................................................................................. 70 4.3 Edicin de textos ............................................................................................................... 70 4.4 Lectura de archivos ........................................................................................................... 71 4.5 Utileras del sistema .......................................................................................................... 71 4.5.1 Mostrar el directorio de ubicacin actual .................................................................. 71 4.5.2 Espacio libre del disco ................................................................................................ 71 4.5.3 Mostrar un archivo mientras crece ............................................................................ 72 4.5.4 Sincronizacin de archivos y copias de respaldo con RSYNC ..................................... 72 4.5.5 Listar procesos............................................................................................................ 73 4.5.6 Matar procesos .......................................................................................................... 73
5.5 El archivo /etc/group......................................................................................................... 77 5.6 Administrando usuarios .................................................................................................... 78 4.6.1 Agregar usuarios......................................................................................................... 78 5.6.2 Borrar usuarios ........................................................................................................... 79 5.6.3 Modificar usuarios...................................................................................................... 79 5.6.4 Agregar grupos .......................................................................................................... 79 5.6.5 Borrar grupos ............................................................................................................. 79 5.6.6 Modificar grupos ........................................................................................................ 79 5.7 Administracin de usuarios a travs de Webmin ............................................................ 80 5.8 Usuarios y permisos de acceso ......................................................................................... 80 4.9 Comprensin de SetUID, SetGID y Sticky bit ..................................................................... 80 5.10 Listas de accesos (ACL) .................................................................................................... 82 5.10.1 Activacin del uso de listas de acceso sobre sistemas de archivos. ........................ 82 5.10.2 Implementacin de listas de acceso en archivos y directorios. ............................... 83 5.11 Configuracin y administracin de cuotas ...................................................................... 85 5.11.1 Activacin del uso de cuotas sobre sistemas de archivos........................................ 85 5.11.2 Administracin de cuotas de disco. ......................................................................... 86
7.6 Administracin de volmenes lgicos............................................................................. 104 7.6.1 Creacin de Grupos de volmenes y volmenes lgicos ........................................ 106 7.6.2 Redimensionando volmenes lgicos ...................................................................... 109 7.7 Crear un rea de intercambio (SWAP) utilizando un archivo ......................................... 110
9.2 Ajustes dentro de /proc .................................................................................................. 135 9.3 Uso del comando sysctl ................................................................................................... 136
Captulo 11
11.1 El demonio Syslogd ....................................................................................................... 145 11.2 Configuracin del demonio syslogd .............................................................................. 145 11.3 Enviar registros a otro sistema remoto ......................................................................... 146
14.1.1 Caractersticas ........................................................................................................ 158 14.2 Funcionamiento ............................................................................................................ 158 14.3 Planificador.................................................................................................................... 159 14.4 Instalacin de CUPS ....................................................................................................... 159 14.4.1 Archivos de Trabajo ................................................................................................ 160 14.4.2 Archivos de registro ............................................................................................... 160 14.5 Comandos Berkeley....................................................................................................... 161 14.5.1 El comando LPC ...................................................................................................... 161 14.5.2 El comando LPQ ..................................................................................................... 161 14.5.3 El comando LPR ...................................................................................................... 162 14.5.4 El comando LPRM................................................................................................... 162 14.6 Comandos SYSTEM V..................................................................................................... 163 14.6.1 El comando LP ........................................................................................................ 163 14.6.2 El comando LPADMIN ............................................................................................ 163 14.7 Comandos CUPS ............................................................................................................ 164 14.7.1 El comando CUPSADDSMB ..................................................................................... 164 14.7.2 El comando LPINFO ................................................................................................ 165 14.8 Configuracin de impresoras ........................................................................................ 165 14.8.1 Uso de la interfaz web ............................................................................................ 166 14.8.2 Agregado de impresoras con la interfaz Web ........................................................ 167 14.8.3 Agregar una impresora desde la lnea de comandos ............................................. 169 14.8.4 Configuracin de la impresora predeterminada .................................................... 170 14.8.5 Privilegios de impresin ......................................................................................... 171 14.8.6 Eliminar impresoras ............................................................................................... 171
16.1 Caractersticas ............................................................................................................... 178 16.1.2 Lo que puede y no puede hacer Samba ................................................................. 179 16.2 Demonios de Samba...................................................................................................... 179 16.3 Nombres de usuarios y contraseas ............................................................................. 179 16.3.1 Motores de usuarios y contraseas ....................................................................... 180 16.4 Instalacin de Samba .................................................................................................... 180 16.5 Configuracin de Samba ............................................................................................... 181 16.5.1 Configuracin del grupo de trabajo ....................................................................... 181 16.5.2 Seguridad a nivel de usuarios................................................................................. 181 16.5.3 Seguridad a nivel de red ......................................................................................... 182 16.5.4 Compartir impresoras en un entorno de red de Windows .................................... 182 16.5.5 Compartir archivos en un entorno de red de Windows ........................................ 183 16.6 Samba como controlador de dominio primario usando tdbsam. ................................. 185 16.7 Uso de samba para autenticar contra un servidor Windows........................................ 187 16.7.1 El demonio Winbind ............................................................................................... 187 16.7.2 Integracin al active directory ............................................................................... 187 16.8 SWAT (Samba Web Administration Tool) ..................................................................... 192 16.8.1 Mens de SWAT ..................................................................................................... 193 16.9 El comando SMBCLIENT ................................................................................................ 194 16.9.1 Explorar un servidor ............................................................................................... 194 16.9.2 Acceder a un archivo remoto ................................................................................. 195 16.10 Montaje de un recurso compartido de Samba ........................................................... 196
17.5.3 Administracin del servicio de OpenLDAP ............................................................. 204 17.5.4 Configuracin del cliente de OpenLDAP ................................................................ 205 17.6 Creacin de objetos en OpenLDAP ........................................................................... 205 17.6.1 Consultas en un directorio LDAP ............................................................................ 206 17.7 Implementacin de una libreta de direcciones en un directorio LDAP ........................ 207 17.7.1 Agregar los esquemas. ........................................................................................... 208 17.7.2 Instalacin de PHPLDAPADMIN.............................................................................. 208 17.7.3 Creacin de Objetos con PHPLDAPADMIN ............................................................ 210 17.7.4 Configuracin del cliente de Correo....................................................................... 211
20.3.2 Dominios de primer nivel ....................................................................................... 235 20.3.3 Dominios de segundo nivel .................................................................................... 235 20.3.4 Dominios de tercer nivel ....................................................................................... 235 20.3.5 El dominio in-addr.arpa .......................................................................................... 236 20.4 Tipos de servidores de DNS ........................................................................................... 236 20.4.1 Servidores DNS primarios....................................................................................... 236 20.4.2 Servidores DNS secundarios ................................................................................... 237 20.4.3 Servidores DNS de cach ........................................................................................ 237 20.5 Instalacin de un servidor DNS .................................................................................... 237 20.6 Archivo de configuracin de named.conf ..................................................................... 237 20.6.1 Comentarios ........................................................................................................... 238 20.6.2 Palabras reservadas para los enunciados .............................................................. 238 20.6.3 El enunciado include .............................................................................................. 238 20.6.4 Enunciado logging .................................................................................................. 239 20.6.5 Enunciado server .................................................................................................... 239 20.6.6 Zonas ...................................................................................................................... 239 20.6.7 Enunciado Key ........................................................................................................ 240 20.7 Configuracin de BIND .................................................................................................. 240 20.7.1 Definicin de una zona primaria ............................................................................ 240 20.7.2 Definicin de una zona secundaria ........................................................................ 242 20.7.3 Definicin de una zona de cach............................................................................ 242 20.8 Tipos de registros DNS .................................................................................................. 243 20.8.1 Inicio de autoridad (SOA) ...................................................................................... 243 20.8.2 Servidor de nombres (NS) ...................................................................................... 244 20.8.3 Registro de direccin (A) ....................................................................................... 244 20.8.4 Registro apuntador (PTR) ....................................................................................... 244 20.8.5 Intercambio de correo (MX) ................................................................................... 245 20.8.6 Nombre cannico (CNAME) ................................................................................... 245 20.8.7 Registros de documentacin RP y TXT ................................................................... 245 20.9 Configuracin de un servidor DNS completo ................................................................ 246 20.9.1 Configuracin de la zona en el servidor primario .................................................. 246 20.9.2 Configuracin de la zona en el servidor secundario .............................................. 247 20.9.3 Configuracin de la zona inversa en el servidor primario ...................................... 247 20.10 Consultas a servidores DNS ......................................................................................... 248
20.10.1 Comando host ...................................................................................................... 248 20.10.2 El comando dig ..................................................................................................... 248
Introduccion
Bienvenido al manual de implementacin de Beakos GNU/Linux, este documento contiene informacin sobre la instalacin, personalizacin y tareas de mantenimiento de su sistema Beakos GNU/Linux. El proyecto de la distribucin Beakos GNU/Linux, nace de analizar la tendencia de otras distribuciones de GNU/Linux que en su intento de acercarse ms al usuario final, incluyen soporte para una gran cantidad de hardware y mdulos de Kernel innecesarios, lo que eleva el consumo del CPU y memoria RAM de manera considerable.
Beakos GNU/Linux es un sistema de desarrollo de software libre impulsado por Infotec para desempearse en ambientes de produccin.
El software libre se refiere directamente a la Libertad que el usuario tiene de emplear y modificar el software a sus necesidades, no tiene nada que ver con el precio. El equipo de desarrollo de Beakos GNU/Linux espera que esta distribucin le sea de utilidad y lo invita a participar de forma activa con la misma.
Aplicaciones Cuando se haga mencin de una aplicacin de un usuario se utilizar este estilo (Calibri 11, negrita). Ejemplo: Puede acceder a la interfaz de administracin Webmin a travs un navegador web como firefox.
El intrprete de comandos se mostrara bajo la siguiente forma (Courier New 11), sombreado en gris root [ ~ ]#
Nota Tenga en cuenta que Beakos es sensible a letras maysculas por lo que escribir network no es lo mismo que Network
Sugerencia No olvides de usar el usuario root lo menos posible, crea un usuario habilitado para usar el comando sudo.
Pasos para llevar a cabo una instalacin de Beakos. Insertar el disco en la unidad DVD/ROM que contiene la imagen de Beakos GNU/Linux e iniciar el equipo en modalidad de arranque desde unidad de CD-ROM/DVD-ROM. La imagen ISO se puede obtener de la pgina oficial del proyecto Beakos www.beakos.com.mx
Ingresar el nombre del login root y password toor que se indica en el submen del instalador de Beakos.
Seleccionar el botn EXIT y presionar la tecla enter una vez que haya terminado de leer la licencia GPL.
Una vez seleccionada la unidad correcta para continuar con la instalacin automtica, el instalador proceder a definir el particionamiento adecuado.
Ingresar el password que ser asignado al super usuario root de 6 caracteres como mnimo, posteriormente confirmar dicha contrasea ingresada.
Capturada correctamente la contrasea que ser establecida para el usuario root, seleccionar OK para proceder en reiniciar el equipo y finalizar la instalacin de Beakos GNU/Linux.
Ingresar el nombre del login root y password toor que se indica en el submen del instalador de Beakos.
Presionar enter y salir una vez que haya terminado de leer la licencia.
Teclear enter al aviso que se muestra previo a la creacin del esquema de particionamiento.
Una vez posicionados en la siguiente ventana, seleccionar la opcin PARTICIONAR para personalizar nuestro esquema de particionamiento.
Seleccionada la unidad correcta para continuar con la instalacin personalizada, el instalador pasara al men de opciones previo a la creacin del esquema de particionamiento.
Para crear las particiones que necesitamos utilicemos la herramienta fdisk (vase el tema 7.1 Administracin de particiones), necesitamos crear mnimamente las siguientes particiones. / (raiz) que almacenar todos los archivos necesarios para el funcionamiento de beakos. Su tamao mnimo debe ser de 4GB. swap rea de intercambio, su tamao debe ser del doble de la memoria RAM, si es un servidor de ms de 4 GB de RAM lo conveniente es que su tamao no exceda los 4 GB. Concluida la creacin de las particiones necesarias para poder instalar Beakos, procedemos a configurar la particin SWAP.
El instalador detectar automticamente la particin SWAP creada previamente con la herramienta fdisk, seleccionemos la opcin Yes para utilizar esa particin.
Si ya hemos activado alguna particin SWAP lo adecuado es reiniciar el sistema para no corromper la memoria de las pginas que se encuentren actualmente, si est seguro de que no hay particiones SWAP activas. Seleccionemos la opcin OK.
El instalador de Beakos dar formato a las particiones SWAP, seleccione la opcin Yes para continuar.
Una vez que la particin tenga formato adecuado para actuar como rea de intercambio el instalador nos mostrar el guin que tendr en el archivo /etc/fstab. Seleccionamos EXIT para continuar.
Cuando se ha aadido la particin SWAP al archivo /etc/fstab seleccionamos la opcin Yes para configurar la tabla de particiones.
El instalador de Beakos nos mostrar las particiones disponibles creadas con fdisk, seleccionaremos en primera instancia la destinada a / (raiz) y seleccionamos OK, si creaste mas particiones de Linux puedes utilizarlas para fijar mas puntos de montaje.
Como la particin no ha sido formateada seleccionemos la opcin Format, se le asignar el sistema de archivos ext3.
Seleccionar la densidad del los inodos, por defecto el instalador selecciona el valor de 4096 bytes si desea conservar ese valor seleccione OK.
Una vez formateada nos indicar la particin que ya ha sido habilitada y el punto de montaje asignado. Si estamos conformes seleccionamos Cancel para continuar.
Ahora se mostrar como ha sido configurado el archivo /etc/fstab previo a la instalacin de Beakos. Selecciona EXIT para ir al confirmacin de la instalacin.
Los parmetros han sido configurados a nuestra necesidad, seleccione Yes para concluir la instalacin.
Concluida la instalacin debemos configurar el gestor de arranque, Beakos utiliza el gestor de arranque GRUB, este se instala en el primer sector del disco duro.
Beakos puede crear un floppy con informacin acerca de la configuracin de GRUB en caso de que el gestor se dae, para fines prcticos seleccionamos la opcin No.
Ingresar contrasea que ser asignada al super usuario root de 6 caracteres como mnimo, posteriormente confirmar dicha contrasea ingresada.
Capturada correctamente la contrasea que ser establecida para el usuario root, seleccionar OK para proceder en reiniciar el equipo y finalizar la instalacin de Beakos GNU/Linux.
El GRUB de Beakos consta de dos entradas: Beakos: Inicia el sistema operativo en modo de ejecucin 3 (ver tema 3.1 Niveles de ejecucin), con todos los servicios por defecto. Beakos a prueba de fallos: Inicia el sistema operativo en modo monousuario con la cuenta de root, ideal para realizar tareas de mantenimiento sin usar servicios de red.
podemos observar cuatro interfaces Ethernet y el looback. La configuracin de las interfaces de red reside en el siguiente directorio /etc/sysconfig/network-devices. Este directorio debe contener un subdirectorio para cada dispositivo de red a configurar, con la estructura ifconfig.xxx, donde xxx corresponde al nombre de una interfaz de red. Dentro de este directorio se debe crear un fichero con el nombre de i pv 4 y es su contenido la definicin de su direccin IP, mascaras de subred, Gateway, Broadcast etc.., El siguiente es un ejemplo de la configuracin manual que se debe aplicar a Beakos GNU/Linux
Cambiamos de directorio a la ruta donde debe residir el script
root [ ~ ]# cd /etc/sysconfig/network-devices Creamos el directorio correspondiente a la interfaz eth0 root [ ~ ]# mkdir -v ifconfig.eth0 Creamos el contenido del fichero ipv4, para configuracin de IP esttica. root [ ~ ]# cat > ifconfig.eth0/ipv4 << "EOF" ONBOOT=yes SERVICE=ipv4-static IP=192.168.1.1 GATEWAY=192.168.1.2 PREFIX=24 BROADCAST=192.168.1.255 EOF
Configuracin correspondiente utilizando el cliente de DHCP. root [ ~ ]# cat > /etc/sysconfig/networkdevices/ifconfig.eth0/dhclient << "EOF" ONBOOT="yes" SERVICE="dhclient" DHCP_START="-q " DHCP_STOP="-q -r " PRINTIP="no" PRINTALL="no" EOF
Adicionalmente creamos el siguiente fichero en el directorio /etc root [ ~ ]# cat > /etc/dhclient.conf << "EOF" # dhclient.conf interface "eth0"{ prepend domain-name-servers 127.0.0.1; request subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-name-servers, host-name; require subnet-mask, domain-name-servers; } # end dhclient.conf EOF
Opciones: NETWORK Muestra interfaces de red configuradas en el sistema. CONFIG Configura interfaces de red o modifica las interfaces configuradas. NAME configura el nombre de equipo. DNS configura los servidores de DNS para nuestro equipo. SALIR cerrar la herramienta de configuracin.
Asignar Broadcast.
Aviso Al terminar de configurar una interfaz el servicio de red se reiniciar, esto puede causar intermitencia en algunos servicios dependientes de la red.
La ventana de configuracin nos mostrar los servidores DNS configurados en nuestro equipo seleccionamos la opcin Yes en caso de editar los servidores DNS.
En caso de requerir agregar o modificar un servidor DNS de forma directa en el archivo /etc/resolv.conf podemos utilizar el editor de textos vim agregando la lnea siguiente: nameserver <nombre_servidor_dns o direccin_IP>
Nos mostrar el nombre actual del equipo seleccionamos la opcin Yes para realizar el cambio.
Ingresamos el nombre de equipo en el campo de captura y seleccionamos la opcin OK para concluir la configuracin.
En caso de requerir la modificacin del nombre de equipo forma directa en el archivo /etc/sysconfig/network podemos utilizar el editor de textos vim agregando la lnea siguiente: HOSTNAME=<nombre_equipo> Posteriormente procedemos a reiniciar la red local con el siguiente comando para aplicar los cambios anteriores. root [ ~ ]# /etc/init.d/localnet restart
/etc
rcsysinit.d rc.iptables Nivel de ejecucin por defecto
inittab/
Nivel 0
rc.0/
Nivel de ejecucin conocido como halt, detiene todos los procesos activos en el sistema, para efectuar el apagado del equipo.
Nivel 1
rc.1/
Nivel de ejecucin monousuario, inicia como usuario root, sin soporte para red. Permite realizar pruebas, reparar problemas o dar mantenimiento al sistema.
Nivel 2
rc.2/
Nivel de ejecucin multiusuario, sin soporte para sevicios de red.
Nivel 3
rc.3/
Nivel de ejecucin multiusuario con soporte para servicios de red.
Nivel 4
rc.4/
No usado
Nivel 5
rc.5/
Nivel de ejecucin Multiusuario con interfaz grfica X window.
Nivel 6
rc.6/
Nivel de ejecucin que reinicia el sistema.
Muestra una lista de los servicios que estn iniciados o apagados (on/off) en el sistema. Sintaxis: chkconfig --list [nombre del servicio] Ejemplo: root [ ~ ]# chkconfig --list iptables 0:off 1:off 6:off postfix 0:off 1:off 6:off sshd 0:off 1:off 6:off --add Esta opcin aade un nuevo servicio para ser administrado por chkconfig. Cuando un nuevo servicio es agregado, chkconfig se asegura de que el servicio tenga entradas para los estados de encendido (start) y apagado (kill) para cada uno de los niveles de ejecucin. Sintaxis: chkconfig --add [nombre_servicio] Ejemplo: root [ ~ ]# chkconfig --add respaldos Automticamente cuando agregamos un servicio se crean los vnculos simblicos. --del Esta opcin nos permite cancelar la ejecucin de un servicio al arranque del sistema operativo, y los enlaces simblicos son destruidos. Sintaxis: chkconfig --del [nombre_servicio] Ejemplo: root [ ~ ]# chkconfig --del respaldos --level La opcin level permite definir el estado de los servicios de acuerdo al nivel de arranque del sistema operativo. 2:on 2:off 2:on 3:on 3:on 3:on 4:on 4:on 4:on 5:on 5:on 5:on
Iniciar ahora.- Esta accin inicia el servicio seleccionado, por ejemplo un servidor, por lo regular esta accin suele ser neutral si el servicio ya se encuentra en ejecucin. Reiniciar ahora.- Esta accin detiene y arranca el servicio seleccionado, de igual forma esta accin suele ser neutral si el servicio no se ha iniciado previamente. Mostar el estado.- Esta accin muestra el estado actual en el que se encuentra el servicio seleccionado, es decir si est corriendo o no, as como su PID. Detener ahora.- Esta accin detiene el servicio seleccionado, si el servicio se encuentra apagado, simplemente mandar un mensaje de que no se puede apagar dicho servicio ya que no se encuentra corriendo en ese momento. Agregar un nuevo servicio o accin Si se requiere estar iniciando un servicio constantemente lo recomendable sera crear un script que ejecute el determinado servicio. Por lo regular en los servidores Apache cuando son compilados e instalador de forma manual no vienen con scripts de acciones que se mencionan en el subtema anterior (iniciar, detener, reiniciar, estado), por lo que es necesario tambin crearlos de forma manual con ayuda de Webmin: En la pgina principal del mdulo dar click en el enlace Crear nuevo bootup y shutdown En el camp de Nombre ingresar el nombre (se recomienda un nombre corto) de la accin o servicio, el cual debe ser nico. En el campo Descripcin ingresar una breve descripcin de la accin o servicio que estamos creando, esta descripcin se mostrara en la pgina principal del mdulo a lado del nombre del servicio o accin. En el campo comandos de Bootup ingresar el o los comandos que se ingresan desde la consola cuando se inicia el servicio o accin de forma manual. En el campo comandos de Shutdown ingresar los comandos necesarios para detener el servicio o accin, tal y como se hace desde la lnea de comandos. Asumiendo que se dese iniciar el servicio o la accin al momento de arrancar el sistema seleccionamos S en el campo Iniciar al momento de arrancar el sistema? Finalmente guardar los cambios dando click en Crear Reiniciar o Apagar el sistema Beakos se puede reiniciar o apagar usando los comandos apropiados, aunque tambin se puede hacer presionando los botones de la computadora esta va no es muy recomendable ya que no se detienen de forma adecuada los servicios lo que puede ocasionar prdida de informacin. Webmin permite realizar el reinicio y/o apagado del sistema de forma segura, a continuacin se describen los pasos para hacerlo:
Para reiniciar: Colocarse en la pgina principal de este mdulo (Bootup y Shutdown). En la parte inferior de la pgina dar click en el botn Reiniciar Sistema enseguida aparecer una ventana de dilogo para confirmar si de verdad se quiere reiniciar el sistema, dar click en el botn reiniciar sistema de la ventana de confirmacin, e inmediatamente comenzar el proceso de apagado del sistema.
Configuracin de rcsysinit.d Como ya se ha explicado anteriormente en el arranque del sistema despus de que se haya cargado el Kernel, los scripts del directorio /etc/rc.d/rcsysinit.d/ son los primeros en ejecutarse y los que determinan cuales servicios van a ser iniciados, es decir, aquellos que se encuentren declarados en /etc/inittab. En Webmin se puede modificar son los Niveles de Arranque as como el Nivel de arranque por defecto que se cargar al iniciar el sistema. Este mdulo podemos ubicarlo en la categora de Sistemas de Webmin. Para configurar Niveles de Arranque: Posicionarse en la pgina principal del mdulo, esta desplegar una lista de servicios, comandos o acciones que estn definidas en cada uno de los Niveles de Arranque. Dar click en el campo de la columna ID, despus de esto se desplegar una venta con los parmetros de edicin. En la columna Nivel de Arranque de Bootup seleccionamos entre 0 y 6 para especificar en qu Nivel de Arranque iniciara el servicio, comando o accin, o tambin se puede seleccionar Ninguno. Por ltimo hay que guardar los cambios dando click en el botn Guardar. Ahora se puede reiniciar el sistema para comprobar que los cambios se hayan guardado
Otra caracterstica del bash es que proporciona autocompletado de nombres de programas, nombres de archivos, nombres de variables, etc. Acceso a los parmetros La programacin de scripts en Shell resulta muy til y prctica para ejecutar tareas repetitivas y tediosas en cierto momento. Un script no es ms que un fichero de texto plano que contiene una lista de comandos de cierto lenguaje dichos lenguajes son interpretados a diferencia de los compilados que generan un cdigo objeto ejecutable los intrpretes se van ejecutando conforme se van leyendo directamente del cdigo fuente algunos de estos lenguajes son: Perl Python Php
El intrprete de comandos Bash nos permite ejecutar los scripts pasndole como parmetro el script: root [ ~ ]# bash script.sh root [ ~ ]# sh script.sh Ms adelante se describir la sintaxis para crear un script, as como, los comandos ms usuales para crear dichos scripts. A continuacin se muestra un breve script de la programacin en Shell: #!/bin/bash FECHA=$(date) echo "Hola mundo" echo "Hoy es:"; echo $FECHA echo "Tienes una reunin de trabajo" Como se puede observar en es script es que se especifica el intrprete a utilizar (bash), tambin es posible indicar otros como /bin/sh. En seguida se almacena en una variable el resultado de ejecutar el comando date, hay que identificar qu FECHA es el nombre de la variable y $FECHA es su contenido para asignar un
valor o contenido a una variable utilizamos el signo =. El comando ECHO imprime en pantalla una cadena de texto o bien el contenido de una variable. Si se requiere un script en donde el usuario ingrese datos es necesario utilizar el comando READ.
#!/bin/bash echo -n "Introduce tu Nombre: \t" read nombre echo "Tu nombre es: $nombre"
SELECT Permite al usuario seleccionar una opcin de una lista previamente creada. CONTROLES DE FLUJO En la mayora de los scripts es necesario utilizar estructuras de control que nos ayuden a manipular el flujo de un programa, algunas de estas estructuras son las que se describen a continuacin: IF Esta es una de las ms bsicas en donde si se cumple determinada condicin ejecuta cierta tarea de lo contrario ejecuta otra. if [condicin] then comandos si se cumple la condicin else comandos si no se cumple la condicin fi WHILE Con esta estructura de control repetimos una serie de comandos siempre y cuando la condicin sea cierta, cabe mencionar que cuando se utiliza esta estructura de control se comprueba primero la condicin antes de ser ejecutada lo cual indica que tal vez no se ejecuten ni una sola vez. Sintaxis: while [condicin] do comandos a ejecutar cuando se cumple la condicin done
FOR La estructura de control for permite indicar un nmero mximo de iteraciones, los scripts de bash utilizan los parmetros obtenidos de la Shell como $1, $2, $3$n. Esta estructura de control a diferencia de las dems requiere de varios parmetros los que se detallan a continuacin. Variable de control.- Comnmente se acostumbra utilizar como variable de control el carcter i (iterador) Inicializacin de la variable de control.- Esta variable debe se declarada en el inicio de la estructura de control, en este caso del for por ejemplo: i=0. Condicin de control.- Aqu se declaran las condiciones que se deseen ejecutar durante las iteraciones del for. Incremento.- Aqu se define la otra parte de la variable de control, es decir, definir cmo se va a ir incrementando dicha variable conforme vayan pasando las iteraciones, por ejemplo: i++. Esto quiere decir que el valor de i va incrementar de uno en uno. Cuerpo.- Aqu van una serie de comandos o instrucciones a ejecutar durante cada iteracin. Sintaxis: for [variable_control] in expresin1,expresin2expresinN do [comandos o tareas a ejecutar]; done Ejemplo: root [ ~ ]# for n in {1,2,3,4}; do echo Numero $n; done La sintaxis de rdenes de bash incluye ideas tomadas desde el Korn Shell (ksh) y el C Shell (csh), como la edicin de la lnea de rdenes, el historial de rdenes, la pila de directorios, las variables $RANDOM y $PPID, y la sintaxis de substitucin de rdenes POSIX: $(...). Cuando se utiliza como un intrprete de rdenes interactivo, bash proporciona autocompletado de nombres de programas, nombres de archivos, nombres de variables, etc, cuando el usuario pulsa la tecla TAB.
Ejemplo: root [ ~ ]# printenv PATH /bin:/usr/bin:/sbin:/usr/sbin Tambin es posible eliminar las variables de entorno usando el comando unset. unset Ejemplo: root [ ~ ]# unset PATH [nombre_variable]
Contiene una lista de direcctorios separados por ":" en la cual l sistema buscar los archivos ejecutables
nicamente contiene los directorios del usuario root para cuando este introduzca un comando
Contiene una lista de direcctorios en la cual el enlazador dinmico busca para encontrar una librera
Contiene una lista de directorios en la cual el comando man localiza las pginas del manual.
PATH
ROOTPATH
LDPATH
MANPATH
Esta variable es utilizada por el comando info para localizar las pginas de info
INFODIR
PAGER
EDITOR
4.1.3 Redireccin
Todos los comandos en GNU/Linux tienen tres tuberas: Entrada estndar, salida estndar y salida de error estndar estas opciones pueden ser redireccionadas a ficheros con los smbolos < y > o tambin se puede redireccionar a otros comandos (con el smbolo |). A continuacin se muestran ejemplos con el uso de estos smbolos. Esto enviara la salida del comando ls a al archivo usuarios.txt. root [ ~ ]# ls -la > /home/admin/usuarios.txt Para aadir la salida de un comando a un archivo utilizamos >> root [ ~ ]# ls la >>/home/admin/usuarios.txt
Obsrvese que en ambos ejemplos se utiliza la ruta absoluta, sin embargo tambin es posible utilizar rutas relativas. Para especificar que un archivo sea la entrada de un comando se utiliza el smbolo <. root [ ~ ]# sort < usuarios.txt
En donde programa es cualquier programa que se desee conocer su sintaxis y opciones que maneja. Se pueden realizar consultas a los manuales de forma ms especfica para cada aplicacin ya que las pginas de los manuales se encuentran seccionadas en varias partes las cuales se pueden ser identificadas por un nmero.
4.1.5 Textinfo
Otra alternativa que existe para consultar documentacin es textinfo, establecida como el estndar de GNU, textinfo es una estructura de documentacin que se basa en el uso de hipervnculos que existen en la World Wide Web, esto quiere decir, que los documentos se pueden enlazar entre s por medio de hipervnculos. A continuacin se muestra un ejemplo de cmo usar este comando: root [ ~ ]# info mkdir
Tabla 4-2. Opciones ms comunes para el comando ls Opcin Descripcin -l Lista adems del nombre del archivo o directorio se muestra el tamao, la fecha de modificacin, permisos, propiedad e informacin del grupo. -a Muestra todos los archivos que se encuentran en un directorio incluyendo los archivos ocultos. -t Genera una lista en orden del momento de la ltima modificacin. -r Muestra una lista de archivos ordenada de forma inversa. -1 Lista en una sola columna los archivos y directorios. -R Hace una lista en forma recursiva de todos los archivos y directorios.
Ejemplo: root [ ~ ]# ls l -rw-r--r-- 1 root root 56797881 Nov 25 08:39 ISPConfig.tar.gz drwxr-xr-x 5 1000 1000 4096 Mar 8 07:39 baifox_1.0 Analicemos la salida del comando anterior que indica que existen dos archivos en el directorio de inicial del usuario root. La primera letra en la primera columna seala si se trata de un fichero (-), de un directorio (d), de un enlace simblico (l) o un dispositivo de bloques (b), los nueve caracteres siguientes en la primera columna describen los permisos del propietario, del grupo y de otros usuarios que detallaremos ms adelante. La segunda columna indica el nmero de vnculos de un determinado archivo, se trata de un dato poco relevante para una administrador de sistemas GNU/Linux En la tercera columna aparece de ambas lneas el nombre de root refirindose al propietario del archivo o directorio. A continuacin vuelve a parecer el nombre de root que indica el grupo al cual pertenece el archivo o directorio. En la quinta lnea aparece un nmero, se trata de la cantidad de espacio en disco que ocupa un archivo o directorio, este valor est indicado en bytes. Despus del tamao, las siguientes tres columnas indican la fecha en que el archivo o directorio se modific por ltima vez, si el archivo se modific en este ao aparecer el mes, el da y la hora, si se modific por ltima vez en aos pasados, slo se indicar el mes el da y el ao. Por ltimo aparecer el nombre del archivo o directorio o bien si se trata de un enlace simblico se indica la ruta del enlace.
Este modo numrico se le conoce como octal, el valor puede variar de 0 hasta 7. Para cambiar estos permisos sencillamente agregue los valores numricos despus del comando chmod y el nombre de archivos o directorio. Ejemplo: root [ ~ ]# chmod 700 xorg
El comando anterior har que slo el dueo del archivo tenga permisos totales sobre l. Es importante notar que este modo reemplaza cualquiera de los permisos antes fijados. El otro modo de emplear el comando chmod es la forma simblica, por ejemplo si queremos agregarle permisos de ejecucin al dueo de un archivo bastar con teclear lo siguiente: root [ ~ ]# chmod u+x rsync-3.0.7.tar.gz Si deseamos quitarle el permiso de escritura al mismo archivo podemos teclear lo siguiente: root [ ~ ]# chmod u-w rsync-3.0.7.tar.gz Si deseamos darle permisos de escritura al grupo del archivo tecleamos: root [ ~ ]# chmod g+w rsync-3.0.7.tar.gz Se queremos asignar permiso de lectura a otros usuarios tecleamos: root [ ~ ]# chmod o+r rsync-3.0.7.tar.gz Tabla 4-4. Combinaciones ms comunes Smbolo Permiso Valor numrico --Sin permisos 0 r-Slo lectura 4 rwLectura y escritura 6 rwx Lectura, escritura y ejecucin 7 r-x Lectura y ejecucin 5 --x Slo ejecucin 1
Si deseamos cambiar al mismo tiempo el usuario y grupo tecleamos lo siguiente: root [ ~ ]# chown -R antonio:beakos rsync-3.0.7 Si deseamos cambiar slo el grupo utilizamos el comando chgrp, de la siguiente forma: root [ ~ ]# chgrp -R laboratorio rsync-3.0.7
Opcin -f -r -v -b -i
Opcin -f -r -v -i
Ejemplos: Buscar archivos y directorios cuyo nombre sea webmail, dentro del directorio inicial de root. root [ ~ ]# find ./ -name webmail ./webmail/adminpanel/plugins/webmail Encontrar los archivos que tienen dos das de antigedad dentro del directorio de root. root [ ~ ]# find ./ -ctime 2 ./ede ./.viminfo Encontrar un archivo que tenga un tamao de 1024 K o mayor en el directorio /root root [ ~ ]# find ./ -size 1024k ./ innodb.result Otro comando til es locate, es fcil de usar, para ejecutarlo slo se escribe el comando seguido del archivo que se desee buscar, y nos mostrara todos los archivos y directorios que contengan esa palabra. Ejemplo: root [ ~ ]# locate rsync
La herramienta bzip2 proporciona una mejor compresin que la anterior, como resultado genera archivos ms pequeos. Ejemplo: root [ ~ ]# bzip2 archivo1 Para descomprimirlo teclee: root [ ~ ]# bunzip2 archivo1.bz2
Aviso Se puede emplear tambin para borrar directorios el comando rm rf, pero esto borrar todos los archivos y directorios dentro de l de forma permanente, usar con precaucin.
Ejemplo: root [ /opt/MailRoot/bin ]# du -chs * 96K CtrlClnt 8.0K MkMachDep 12K MkUsers
Tabla 4-9. Opciones ms comunes para el comando rsync Opcin Descripcin -n Modo de prueba, no hace copia, slo nos muestra el resultado. -a Modo archivo. Respeta todos los permisos y propiedad del archivo de origen. -r Modo recursivo, copia las carpetas y lo que haya dentro de ellas. -l Respeta enlaces blandos -p Respetar permisos -t Respetar fecha/hora -g Respetar grupo -D Respetar dispositivos (solamente con usuario root) -v Modo verboso, para mayor verbosidad usar -vv -z Comprimir para una transmisin ms rpida. -C Ignora archivos como hace CVS. -u Modo update, mantiene archivo en el destino si es posterior. -b Backup renombrar archivos existentes a extensin.
Ejemplo entre dos equipos a travs de SSH. root [ ~ ]# rsync -e ssh -avrlptg 192.168.0.190:/opt/directorio1 /opt
Opcin a r x u f l w
Ejemplo: root [ / ]# ps ax PID TTY STAT 1 ? Ss 2 ? S< TIME COMMAND 0:02 init [3] 0:00 [kthreadd]
Sugerencia Para obtener un listado de las seales posibles a utilizar junto con el comando kill, teclee kill -l
ID usuario
Nombre completo
Interprete de comandos
amoreno :
Contrasea
Opcin -m -M -I -E fecha -W -l
Opcin -c comentario
-G grupos secundarios
-m skel-dir
-M -s Shell -u id usuario
Adems existen 3 tipos de usuarios: (Propietario) Dueo del archivo (Grupo) Grupo que posee el archivo (Otros) Todos los usuarios del sistema que no entren en los anteriores
El bit de setGID funciona de forma similar, con la diferencia de que en lugar de aplicarlo al propietario del archivo se aplica al grupo del archivo. Con SGID podemos crear directorios colaborativos para varios usuarios, es decir los archivos creados en el directorio se crearn con el grupo por default al cual pertenece el directorio. Ejemplo: root [ ~ ]# mkdir /compartidos root [ ~ ]# ls -ld /compartidos drwxr-xr-x 2 root root 4096 Apr 21 06:34 /compartidos root [ ~ ]# touch /compartidos/archivo1 root [ ~ ]# ls -l /compartidos total 0 -rw-r--r-- 1 root root 0 Apr 21 06:34 archivo1 En el ejemplo anterior se observa que el archivo es creado por el usuario raz y hereda los mismo dueo y mismo grupo. Ahora bien cambiamos el grupo de la carpeta y le agregamos el setGID. root [ ~ ]# chgrp mail /compartidos root [ ~ ]# ls -ld /compartidos drwxr-xr-x 2 root mail 4096 Apr 21 06:34 /compartidos root [ ~ ]# chmod g+s /compartidos root [ ~ ]# ls -ld /compartidos drwxr-sr-x 2 root mail 4096 Apr 21 06:34 /compartidos
Creamos un archivo que llamado archivo2 root [ ~ ]# touch root [ ~ ]# ls -l total 0 -rw-r--r-- 1 root -rw-r--r-- 1 root /compartidos/archivo2 /compartidos/ root 0 Apr 21 06:34 archivo1 mail 0 Apr 21 06:40 archivo2
Ntese que el archivo2 se guard con el grupo mail aunque el usuario no lo tenga como su grupo primario. Normalmente usuarios con permisos de escritura en un directorio pueden borrar archivos, el bit pegajoso (sticky bit) permite que otros usuarios con permisos de escritura sobre l puedan editar el archivo pero slo el dueo podr borrarlo. Muchos usuarios necesitan tener permisos para crear y borrar archivos en el directorio /tmp, configurando esta carpeta con sticky bit se previene que los usuarios borren archivos que no les pertenecen. El directorio /tmp est configurado con sticky bit por defecto, se puede observar una t en los permisos de acceso.
root [ ~ ]# ls -ld /tmp drwxrwxrwt 4 root root 4096 Apr 21 22:26 /tmp La asignacin del bit pegajoso se hace de la siguiente forma: root [ ~ ]# chmod o+t /home/compartidos o bien: root [ ~ ]# chmod 1777 /home/compartidos
Realizados los cambios anteriores ejecutamos la siguiente instruccin para habilitar los cambios previamente realizados al punto de montaje. root [ ~ ]# mount a Validamos los cambios aplicados al sistema de archivos tecleando el comando mount. root [ ~ ]# mount /dev/sda2 on / type ext3 (rw) /dev/sdb1 on /opt type ext3 (rw,acl)
Otra forma de realizarlo es la siguiente, no recomendable porque no persistir a un reinicio. root [ ~ ]# mount -o remount,acl /opt Podemos observar en el ejemplo anterior que al sistema de archivos / dev/sdb1 se le ha definido el punto de montaje /opt habilitado para el uso de listas de acceso.
Sugerencia Si desea habilitar el uso de ACLs para el sistema de archivos raz, edtelo directamente en el archivo /etc/fstab para que persista a un posible reinicio del sistema.
En el ejemplo anterior podemos observar que el archivo1 pertenece al usuario y grupo root, para el usuario tiene permisos de escritura y lectura. para el grupo solo de lectura. Asignamos permisos de lectura y escritura para el usuario francisco. root [ /opt ]# setfacl -m u:francisco:rw archivo1 root [ /opt ]# getfacl archivo1 # file: archivo1 # owner: root # group: root user::rwuser:francisco:rwgroup::r-mask::rwother::r-Hacer que los archivos nuevos agregados a un directorio hereden la ACL por defecto, que har que el usuario francisco sea el usuario por defecto con permiso de lectura y escritura. root [ /opt ]# setfacl -m d:u:francisco:rw directorio1 root [ /opt ]# getfacl directorio1/ # file: directorio1/ # owner: root # group: root user::rwx group::r-x other::r-x default:user::rwx default:user:francisco:rwdefault:group::r-x default:mask::rwx default:other::r-x
Podemos observar claramente que el usuario por defecto ha sido fijado como francisco con permisos de lectura y escritura para los archivos que se coloquen en esta carpeta. Remover la lista de acceso asignada al usuario francisco sobre el archivo1. root [ /opt ]# setfacl -x u:francisco archivo1 root [ /opt ]# getfacl archivo1 # file: archivo1 # owner: root # group: root user::rwgroup::r-mask::r-other::r
Sugerencia Si desea preservar los atributos de ACL de los archivos y directorios al mover o copiar utilice la opcin -p
Otro punto importante a tomar en cuenta son los lmites, se emplean dos para la administracin de cuotas. Hard: Es el lmite absoluto que el usuario puede ocupar. Soft: Su valor debe ser menor que hard, se puede exceder tanto por Inodos como por bloques, puede interpretarse como el lmite mximo antes de que el usuario reciba mensajes de aviso.
Cuando se usa el lmite SOFT, dos situaciones pueden suceder. Si no se ha establecido un periodo de gracia, el usuario podr seguir usando bloques o Inodos hasta llegar al lmite HARD que ser su lmite absoluto de uso. Si se estableci el periodo de gracia, que puede ser en das, horas, minutos o segundos, el usuario podr seguir usando bloques o inodos hasta que termine el tiempo de gracia o llegue al lmite HARD, cualquiera que ocurra primero.
defaults,usrquota
Para activar los puntos de montaje con sus nuevas opciones tecleamos: root [ /opt ]# mount a Verificamos que el uso de cuotas se haya activado de forma correcta. root [ /opt ]# mount Salida truncada /dev/sdb1 on /opt type ext3 (rw,acl,usrquota) El siguiente paso consiste en verificar con el comando quotacheck, si el sistema de archivos est preparado para soportar cuotas de usuarios crear el archivo aquota.user, se anexan algunas opciones para el uso de quotacheck, para mayor referencia consulte la pgina del manual. Tabla 5-4. Opciones ms comunes para el comando quotacheck Opcin Descripcin -a Verifica que sistemas de archivos soportan el uso cuotas. -u Verifica el soporte de cuotas para usuarios. -g Verifica el soporte de cuotas para grupos. -m Evita que el sistema se remonte como slo lectura -v Modo verboso, muestra el resultado de la ejecucin del comando. -c No lee el archivo aquota.user si este ya existe. root [ /opt ]# quotacheck -cu /opt Procedemos a activar el uso de cuotas sobre el sistema de archivos. root [ / ]# quotaon /opt
Podemos observar que se puede editar el numero de bloques e inodos, as como el lmite blando y lmite duro respectivamente. Los nicos valores que se editan son soft y hard, dejando blocks e inodes con valor igual a cero. Otra forma de realizarlo es utilizando el comando setquota del siguiente modo. setquota [usuario] soft_bloques hard_bloques soft_inodos hard_inodos [punto_montaje] Ejemplo: root [ /opt ]# setquota francisco 512 1024 40 50 /opt El comando anterior asignar al usuario francisco un lmite blando de 512 bloques, un lmite duro de 1024 bloques, un lmite blando de 40 inodos y un limite duro de 50 inodos en la particin /opt. Establecer el tiempo de gracia de forma global se realiza con el siguiente procedimiento. root [ /opt ]# edquota t
Establecer el tiempo de gracia de forma individual. root [ /opt ]# edquota -u francisco -T Por defecto el tiempo de gracia para los inodos y los bloques es de 7 das en la configuracin global, en la configuracin individual por defecto no est definida. Podemos obtener un reporte del estado de las cuotas de los usuarios con el siguiente comando: root [ /opt ]# repquota /opt *** Report for user quotas on device /dev/sdb1 Block grace time: 7days; Inode grace time: 7days Block limits File limits User used soft hard grace used soft hard grace ---------------------------------------------------------------root -17692 0 0 6 0 0 francisco +1024 512 1024 7days 1 0 0
Desde estos archivos tambin es posible definir tareas programas, sin embargo, es ms recomendable hacerlo con el comando crontab ms adelante se especificar como usar este comando. Otros archivos importantes son: cron.allow cron.deny
En Beakos dichos archivos se encuentran en la ruta /etc/cron.d/cron.allow en este archivo es donde se encuentran los usuarios permitidos para ejecutar el comando cron, as mismo, en /etc/cron.d/cron.deny estn los usuarios que tienen restringido ejecutar dicho comando. El siguiente diagrama muestra los parmetros de los que se compone una tarea programada en cron.
Minuto
Hora
Da
Mes
Donde los valores de tiempo pueden tener el siguiente formato: Para definir todos los valores se utiliza un asterisco (*). Para definir un nico valor se utiliza un entero que este dentro de los parmetros de cada variable. Para definir una lista de valores se hacen separaciones por comas: (1,2,4,6). Para definir un rango se utiliza el guin :(1-5).
Es usado normalmente para comandos de tareas administrativas, es decir, que ejecuta programas agendados en el sistema. La versin normalmente utilizada de esta aplicacin es la Vixie Cron.
A continuacin se describe el formato para realizar una tarea programada con ayuda de cron:
Minuto
Hora
Da del Mes
Mes
Da de la Semana
Como ya se ha mencionado el script que contiene los procesos que se tienen programados es crontab y para editarlo se debe escribir el siguiente comando: root [ ~ ]# crontab -e Ejemplo de cmo agregar una nueva tarea programada: 30 12 * * 1-5 /usr/bin/top >> /home/top.txt
Minuto
12
Hora
Da del Mes
*
Mes
Da de la semana
30
1-5
En este ejemplo, se ejecutar el comando top de Lunes a Viernes a las 12:30 am durante todos los meses y la salida la guardar en el archivo top.txt. Para verificar que la nueva tarea haya sido agregada correctamente al archivo crontab se puede teclear el siguiente comando: crontab [u usuario] -l Con esto veremos todas las tareas o procesos que hay programadas con cron. Y si se desean eliminar bastar con escribir: crontab [-u usuario] -r
Para agregar una nueva tarea, desde la pgina principal dar clic en el enlace Crear una nueva tarea programada a continuacin se mostrar un formulario para ingresar los datos de la nueva tarea: En el campo Ejecutar tarea como, todas las tareas en cron deben ser ejecutadas por un usuario, as que en este campo se ingresa el nombre del usuario que va a ejecutar dicha tarea. Esto es para que la tarea programada sea ejecutada con los privilegios del usuario que se le configure. En el campo Activo? presenta dos opciones No y Si con ello se determina el estado de la tarea programada, esto permite posponer dicha tarea hacia una nueva fecha y hora de ejecucin. En el campo de Comandos hay que escribir los comandos de Shell necesarios para que se ejecute la tarea programada. De forma predeterminada, cualquier salida del comando ser enviada por correo electrnico al propietario de la tarea, para modificar esta opcin hay que redirigir la salida hacia otro archivo.
Dentro de la pgina de creacin de una nueva tarea programada tambin aparece un la lista para configurar los horarios y fechas de ejecucin: Minutos Horas Das Meses Das de Semana
Despus de ajustar estos parmetros simplemente queda por dar clic en el botn Crear, para que la nueva tarea sea agregada.
El journaling de sistemas de archivos tiene como objetivo evitar los engorrosos y largos chequeos de disco (fsck) que efectan los sistemas al apagarse bruscamente, ya que el sistema al arrancar solo deber deshacer el journal para tener un sistema coherente de nuevo. Tener que esperar un chequeo en un sistema de archivos de 200 megas en un sistema de produccin puede ser una prdida significativa de tiempo para los usuarios. Para poder visualizar una tabla de particiones podemos hacer uso de los siguientes comandos: root [ ~ ]# cat /proc/partitions root [ ~ ]# fdisk l
Una vez que se ha colocado el disco, inicie el sistema operativo y para asegurarse de que el disco ha sido reconocido ejecute el comando dmesg, que muestra los mensajes del kernel. root [ ~ ]# dmesg | less Supongamos que hemos agregado un disco duro a nuestro sistema y el sistema lo ha instalado con sus respectivos controladores. Ejecute fdisk para corroborar los discos disponibles y la tabla de particiones que se encuentra en cada uno. root [ ~ ]# fdisk -l Disk /dev/sda: 8589 MB, 8589934592 bytes 255 heads, 63 sectors/track, 1044 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0x00000000 Device Boot /dev/sda1 /dev/sda2 /dev/sda3 swap / Solaris Start 1 18 982 End 17 981 1044 Blocks 136521 7743330 506047+ Id 83 83 82 System Linux Linux Linux
Disk /dev/sdb: 8589 MB, 8589934592 bytes 255 heads, 63 sectors/track, 1044 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0x00000000 Disk /dev/sdb doesn't contain a valid partition table Con la ejecucin del comando anterior podemos observar que el sistema ha detectado un nuevo disco en nuestro sistema (/dev/sdb) pero aun no contiene una tabla de particiones. Ejecute fdisk /dev/sdb para comenzar con el particionamiento del disco. root [ ~ ]# fdisk /dev/sdb Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Salida truncada.. 1) software that runs at boot time (e.g., old versions of LILO) 2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK) Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite) Command (m for help):
Se presentar la opcin de presionar m para obtener ayuda. La cual le ofrecer distintas opciones: a b c d l m n o p q s t u v w x Conmuta el indicador de iniciable Modifica la etiqueta de disco bsd Conmuta el indicador de compatibilidad con DOS Suprime una particin Lista los tipos de particiones conocidos Muestra opciones posibles Agrega una nueva particin Crea una nueva tabla de particiones DOS vaca Imprime la tabla de particiones Sale sin guardar los cambios Crea una nueva etiqueta de disco Sun Cambia el tipo de particin a crear Cambia las unidades de visualizacin/entrada Verifica la tabla de particiones Escribe la tabla en el disco y sale Funciones adicionales (slo para usuarios avanzados)
Una vez ejecutando la opcin anterior seleccione la opcin p para visualizar la tabla de particiones existente. Command (m for help): p Disk /dev/sdb: 8589 MB, 8589934592 bytes 255 heads, 63 sectors/track, 1044 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0xaeb28e04 Device Boot Start End Blocks Id System
Como podemos ver no existe an una tabla de particiones definida, seleccionemos la opcin n para crear una nueva particin. Command (m for help): n Command action e extended p primary partition (1-4) El men nos solicita crear una particin primaria o extendida. Presionamos la letra p y seleccionamos el nmero de particin que se le asignar, seleccionamos la opcin 1.
Sugerencia GNU/Linux slo permite la creacin de tres particiones primarias, si se va a crear ms de 4 particiones se recomienda que la cuarta sea extendida.
Para definir el tamao seleccionamos el primer cilindro del disco en cuestin, podemos definir el tamao en Megabytes o Gigabytes, crearemos para cuestiones de ejemplo una particin de 2 GB. De la siguiente forma teclee +2G First cylinder (1-1044, default 1): Using default value 1 Last cylinder, +cylinders or +size{K,M,G} (1-1044, default 1044): +2G. De forma predeterminada, fdisk crea particiones del tipo ext3 (es decir 83 en su equivalente hexadecimal, puede ver una lista de cdigo presionando la letra L mayscula). Para cambiar el tipo de particin por ejemplo a RAID o Linux LVM presionamos la tecla t. Dejaremos de forma predeterminada el tipo de particin ext3 as que escribiremos 83. Command (m for help): t Selected partition 1 Hex code (type L to list codes): 83 Tecleamos de nueva forma la opcin p para volver a visualizar la tabla de particiones, observaremos que ya no est vaca como en un principio. Contiene una particin /dev/sdb1 Command (m for help): p Disk /dev/sdb: 8589 MB, 8589934592 bytes Salida truncada. Device Boot Start End /dev/sdb1 1 262
Blocks 2104483+
Id 83
System Linux
Una vez seguros que la particin creada cumple con las caractersticas requeridas, procedemos a escribir los cambios teclee w, al finalizar nos regresar a la lnea de comandos. Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
Ejecute el comando partprobe para que el sistema est informado de los cambios hechos en la tabla de particiones. Procedemos a formatear el disco que se ha generado, Beakos soporta los sistemas de archivos ext3 y reiserFS. Se realiza de la siguiente forma si se quiere darle formato con ext3. root [ ~ ]# mkfs.ext3 /dev/sdb1 Si se requiere dar el formato con sistema de archivos reiserFS se realiza de la siguiente forma. root [ ~ ]# mkfs.reiserfs /dev/sdb1 Posterior a esto debemos definir un punto de montaje para nuestro sistema de archivos, supongamos que hemos creado la carpeta /data el comando sera el siguiente. root [ ~ ]# mount /dev/sdb1 /data Podemos ver detalles del sistema de archivos ya montado a travs del siguiente comando. root [ ~ ]# df -h Filesystem /dev/sda2 tmpfs /dev/sda1 /dev/sdb1
Used Avail Use% Mounted on 4.2G 2.5G 64% / 0 126M 0% /dev/shm 15M 109M 12% /boot 33M 2.0G 2% /data
El cual nos muestra informacin sobre el tamao, uso y disponibilidad de nuestros sistemas de archivos.
Ejemplo: root [ ~ ]# e2label /dev/sdb1 datos El sistema de archivos puede ser montado utilizando su etiqueta de la siguiente forma: mount [opciones] LABEL=[etiqueta] [punto de montaje] Ejemplo: root [ ~ ]# mount LABEL=datos /data
En donde opciones pueden las que se muestran en la tabla, en la segunda tabla se anexan las opciones para usarse con el comando mount o . Si ejecutamos el comando mount sin ninguna opcin, presentar una lista de todos los sistemas de archivos montados hasta el momento. Por ejemplo: root [ ~ ]# mount /dev/sda2 on / type ext3 (rw) /proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=4,mode=620) tmpfs on /dev/shm type tmpfs (rw) /dev/sda1 on /boot type ext3 (rw) /dev/sdb1 on /data type ext3 (rw) Tabla 7-1. Opciones ms comunes para el comando mount Descripcin Monta todos los sistemas de archivos que han sido declarados en el archivo /etc/fstab -t [sistema archivo] Especifica el sistema de archivos que ser montado. Beakos est habilitado para montar ext3 y reiserFS y NFS. Si no se define el tipo de sistema de archivos el comando mount por si slo puede saber esta informacin. -o [opciones] Aplica opciones que se definen en la siguiente tabla, por lo general son opciones para un sistema de archivos en especfico. Opcin -a
Tabla 7-2. Opciones ms comunes para el comando mount -o Opciones para Descripcin mount -o ro Monta la particin como slo lectura. rw Monta la particin con permisos de lectura y escritura, esta es la opcin predeterminada. exec Permite ejecutar binarios, opcin predeterminada. noauto Desactiva el montaje automtico cuando se ejecuta mount a (aplicable para el archivo /etc/fstab). nosuid No permite la aplicacin de los bits del programa SetUID a la particn montada. acl Permite la implementacin de listas de acceso en la particin. quota Permite la implementacin de cuotas de disco en la particin. Ejemplo: root [ ~ ]# mount -o rw,acl /dev/sdb1 /data El comando anterior montar la particin /dev/sdb1 en el punto de montaje /data con permisos de lectura y escritura, adems del soporte para listas de acceso.
La primer lnea descomentada se refiere evidentemente a un sistema de archivos proc, que mantiene de forma dinmica los procesos del sistema. La segunda lnea es para el sistema de archivos sysfs, este sistema es requerido en los Kernel versin 2.6, al igual que proc es un sistema de archivos temporal y especial. Proporciona una visin estructurada del rbol de dispositivos del sistema operativo.
La tercer lnea declara al sistema de archivos de memoria virtual, el cual utiliza la memoria RAM y el rea de intercambio (SWAP), se utiliza para solicitar pginas del subsistema de memoria virtual para almacenar archivos. La cuarta lnea corresponde al sistema de archivo raz, la primer columna define la particin en un disco SATA, la segunda columna define el punto de montaje (/), la tercer columna declara que el sistema de archivos en uso es ext3, la siguiente columna especifica que slo utilice las opciones de montaje de archivos por defecto (vase tablas del tema Montando y desmontando archivos), la quinta columna se refiere al respaldo con la herramienta dump y su prioridad y la sexta determina si este sistema necesita verificacin (fsck) y el nivel de prioridad. La quinta lnea corresponde al punto de montaje /boot. Bsicamente los campos de esta lnea corresponden al del directorio raz, en esta particin se almacenan los archivos del gestor de arranque as como la imagen del kernel y la imagen del disco de RAM (initrd). La ltima lnea corresponde a la particin de intercambio (SWAP), es altamente recomendable tener una particin de este tipo ya que mejora el rendimiento del sistema, se recomienda que sea el doble de tamao que se tiene de memoria RAM. En la instalacin de Beakos si se elige la instalacin automtica, el instalador se encargar de definir el tamao adecuado para la particin de intercambio.
Crea una copia exacta de la informacin de un disco en otro(s), esto representa mayor velocidad de lectura pero un menor espacio de almacenamiento. Un ejemplo clsico de RAID 1 es la implementacin de dos disco en espejo, lo que proporciona fiabilidad de modo que si se presenta un fallo en uno de ellos para lograr perder el arreglo sera necesario que los fallaran. En este tipo de arreglo la velocidad de lectura se duplica porque el sistema puede estar leyendo informacin de ambos discos a la vez. RAID 5 El RAID 5 se divide en bloques distribuyendo la informacin de paridad entre todos los discos miembros del conjunto. El RAID 5 requiere al menos 3 unidades de disco para ser implementado, preferentemente del mismo tamao, al fallar un disco el arreglo se conserva, la perdida completa de datos suceder si falla un segundo disco.
No olvidar ejecutar el comando partprobe para que el sistema operativo reconozca la tabla de particiones. Inicializamos y activamos el arreglo de RAID 5, el comando utilizado en esta tarea es mdadm su forma de uso es la siguiente: root [ ~ ]# mdadm -C /dev/md0 devices=3 /dev/sdb{1,2,3} mdadm: array /dev/md0 started. --chunk=64 --level=5 --raid-
La opcin C indica al comando que cree un nuevo arreglo llamado /dev/md0, la opcin --chunk se refiere al nmero de bloques le asignamos un numero de 64, --level representa el tipo de RAID que ha de generar, --raid-devices representa el nmero de discos, en este caso de particiones que se han de utilizar, recordemos que para RAID se requieren mnimo 3 discos. Crear un sistema de archivos ext3 para el dispositivo de almacenamiento. root [ ~ ]# mkfs.ext3 /dev/md0 El RAID de Linux puede ser monitoreado con el comando mdadm detail tambin nos sirve para ver una descripcin detallada del arreglo. root [ ~ ]# mdadm --detail /dev/md0 mdadm --detail /dev/md0 /dev/md0: Version : 0.90 Creation Time : Wed Apr 28 06:05:02 2010 Raid Level : raid5 Array Size : 1060096 (1035.42 MiB 1085.54 MB) Used Dev Size : 530048 (517.71 MiB 542.77 MB) Raid Devices : 3 Total Devices : 3 Preferred Minor : 0 Persistence : Superblock is persistent Update Time State Active Devices Working Devices Failed Devices Spare Devices : : : : : : Wed Apr 28 06:09:22 2010 clean 3 3 0 0
Layout : left-symmetric Chunk Size : 64K UUID : ed26dad0:2c353a94:9688d056:0b76f4fc Events : 0.4 Number 0 1 2 Major 8 8 8 Minor 17 18 19 RaidDevice 0 1 2 State active sync active sync active sync
Layout : left-symmetric Chunk Size : 64K UUID : ed26dad0:2c353a94:9688d056:0b76f4fc Events : 0.6 Number 0 1 2 3 Major 8 8 0 8 Minor 17 18 0 19 RaidDevice 0 1 2 State active sync active sync removed faulty spare
Supongamos que hemos removido el disco daado y hemos conectado uno nuevo, debemos crearle una particin de RAID con fdisk y agregarlo al arreglo con el comando siguiente: root [ ~ ]# mdadm /dev/md0 -a /dev/sdb5 mdadm: added /dev/sdb5
Definiciones referentes a la administracin de volmenes lgicos. Volumen fsico (PV, en ingls physical volume). Cuando hablamos de los volmenes fsicos nos estamos refiriendo a los discos o dispositivos de almacenamiento como tal, como un disco SCSI, un RAID por hardware, un disco SATA etc. Grupo de volmenes (VG, en ingls volumen group). Los grupos de volmenes permiten administrar un conjunto de volmenes fsicos en una sola unidad. Estos no se pueden montar, se pueden definir como discos virtuales. Volumen lgico (LV en ingls Logical volume). Los volmenes lgicos son el equivalente a las particiones en un esquema donde no se utiliza la administracin de volmenes lgicos. El volumen lgico se crea a partir del espacio disponible en un grupo de volmenes. A este se le asigna un sistema de archivos y un punto de montaje. En resumen los pasos para la creacin de un volumen lgico son los siguientes: Creacin de una particin. Creacin de un volumen fsico. Agregar de un volumen fsico a un grupo de volmenes. Creacin de un volumen lgico.
Tabla 7-3. Comandos ms comunes para la administracin de Volmenes Lgicos. Comando Descripcin LVM pvcreate Inicializa una particin para convertirla en un volumen fsico que pueda ser integrado a un grupo de volmenes. pvdisplay Muestra los volmenes fsicos existentes en el sistema operativo y sus respectivas caractersticas. vgcreate Usado para crear un grupo de volmenes a partir de uno o varios volmenes fsicos. vgextend Usado para agregar uno o ms volmenes fsicos a un grupo existente de volmenes para ampliar su tamao. vgdisplay Muestra grupos de volmenes existentes y sus respectivas caractersticas. lvcreate Crea un nuevo volumen lgico a partir de un grupo de volmenes. lvdisplay Muestra los volmenes lgicos existentes en el sistema operativo y sus respectivas caractersticas. lvremove Elimina un volumen lgico del grupo de volmenes para esta operacin debe desmontarlo y los datos se perdern.
El siguiente paso es inicializar el volumen fsico creado en el paso anterior con el comando pvcreate, hacerlo de la siguiente forma. root [ ~ ]# pvcreate /dev/sdb1 Physical volume "/dev/sdb1" successfully created
Usar el comando pvdisplay para ver los cambios teclee: root [ ~ ]# pvdisplay "/dev/sdb1" is a new physical volume of "8.00 GB" --- NEW Physical volume --PV Name /dev/sdb1 VG Name PV Size 8.00 GB Allocatable NO PE Size (KByte) 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID D9S3Rt-rs2i-5rAm-8rG8-yAXg-K3ZK-SOte8X Una vez que hemos corroborado que el volumen fsico se ha creado con xito, lo asignaremos a un grupo de volmenes (VG) que tambin ser creado con el nombre de vg0, el comando a usar ser vgcreate. root [ ~ ]# vgcreate vg0 /dev/sdb1 Volume group "vg0" successfully created Tecleamos el comando vgdisplay para ver las caractersticas y tamao del grupo de volmenes. root [ ~ ]# vgdisplay --- Volume group --VG Name System ID Format Metadata Areas Metadata Sequence No Salida truncada VG Size PE Size Total PE Alloc PE / Size Free PE / Size VG UUID
Ahora tenemos 8 GB de espacio libre para crear volmenes lgicos. Con esta informacin procedemos a crear un volumen lgico, utilizaremos en comando lvcreate. Su sintaxis es la siguiente: lvcreate L [tamao en MB o GB] n [nombre] [Volume Group]
Crearemos un volumen lgico con un tamao de 4G llamado data, a partir del grupo de volmenes previo. root [ ~ ]# lvcreate -L 4G -n data vg0 Logical volume "data" created Tecleamos el comando lvdisplay para corroborar que el volumen lgico se ha creado con xito, recordemos que este volumen lgico es el equivalente a una particin en un particionado de forma convencional. root [ ~ ]# lvdisplay --- Logical volume --LV Name VG Name LV UUID LV Write Access LV Status # open LV Size Current LE Segments Allocation Read ahead sectors - currently set to Block device
/dev/vg0/data vg0 nxF2pu-Basx-6qaj-x8Dd-UGqX-qlps-kI7iN4 read/write available 0 4.00 GB 1024 1 inherit auto 256 254:0
Con el volumen creado es necesario asignarle un sistema de ficheros, para fines prcticos formatearemos el volumen lgico con el sistema ext3 utilizando el comando mkfs.ext3 de la siguiente forma: root [ ~ ]# mkfs.ext3 /dev/vg0/data mke2fs 1.41.3 (12-Oct-2008) Filesystem label= OS type: Linux Block size=4096 (log=2) Salida truncada.... This filesystem will be automatically checked every 29 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. Concluyendo los pasos anteriores el volumen lgico est listo para definirle un punto de montaje, se lo definiremos en /data. root [ ~ ]# mount /dev/vg0/data /data
Asignamos el tamao deseado al volumen lgico con el comando lvreduce, esta operacin podra destruir los datos as que debe realizarse con precaucin, el comando nos pedir una confirmacin para ejecutarse. root [ ~ ]# lvreduce -L 4G /dev/vg0/data WARNING: Reducing active logical volume to 4.00 GB THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce data? [y/n]: y Reducing logical volume data to 4.00 GB Logical volume data successfully resized Concluida la operacin podemos verificar que se efectuado con xito con el comando lvdisplay root [ ~ ]# lvdisplay --- Logical volume --LV Name Salida truncada... LV Size Salida Truncada... - currently set to Block device
El comando anterior cre un archivo de 265 Megas. Le asignamos un sistema de archivos SWAP, de la siguiente forma: root [ ~ ]# mkswap /data/espacioswap Setting up swapspace version 1, size = 262140 KiB no label, UUID=9688c1d7-812b-4789-8bc3-17a0bb5a8e38 Activamos el archivo SWAP root [ ~ ]# swapon /data/espacioswap Verificamos el archivo /proc/swaps root [ ~ ]# cat /proc/swaps Filename Type Size Used /dev/sda3 partition 506036 8612 /data/espacioswap file 262136 0
Priority -1 -2
Podemos observar que nuestro archivo SWAP se encuentra activo. Por ltimo agregamos la lnea correspondiente al archivo /etc/fstab con el objetivo de que est disponible al arranque del sistema operativo. root [ ~ ]# echo "/data/espacioswap 0">> /etc/fstab swap swap defaults 0
Internet
Figura 8-1. Configuracin general bsica de un firewall con IPtables
con alguna de ellas. Si un paquete llega al final de la cadena sin coincidir con ninguna regla este ser descartado o acepta segn la poltica por defecto.
Aviso Existen disponibles 65535 puertos, ya sea UDP o TCP, en los sistemas basados en UNIX como BeakOS el usuario root solo puede escuchar del 1 al 1023.
Trafico saliente
DROP
regla
regla
ACCEPT
Paquete
ACCEPT
regla
Cadenas
regla
Paquete
DROP
Paquete
Paquete
Trafico entrante
Existen tres tipos de cadenas bsicas en la tabla Filter (filtrado de paquetes): INPUT, OUTPUT y FORDWARD, se puede generar la cantidad de cadenas que se requieran, pata la tabla NAT (traduccin de direcciones): OUTPUT, PREROUTING y POSTROUTING. Tabla 8-1. Tablas de Netfilter. Tabla Filter Nat X X X X X X
Mangle X X X X X
Aviso de no especificar cualquiera de las anteriores, la tabla por defecto que utilizar el comando iptables ser filter.
COMANDO se refiere a la accin que realizar iptables con la regla, es decir agregarla (-A), insertarla (I), borrarla (D) reemplazarla (-R), etc.. Ejemplos con el comando A, --append: iptables t filter A INPUT s 192.168.1.0 j DROP
Bloquear todos los paquetes que vengan de la red 192.168.1.0 (agregar la regla al final de la cadena). iptables t filter A OUTPUT s 192.168.3.20 j ACCEPT
Aceptar todos los paquetes que vengan de la direccin IP 192.168.3.20 (agregar la regla al final de la cadena). Ejemplos con el comando I, --insert: iptables t filter I INPUT s 192.168.1.0 j DROP
Bloquear todos los paquetes que vengan de la red 192.168.1.0 (agregar la regla al principio de la cadena).
Aceptar todos los paquetes que vengan de la direccin IP 192.168.3.20 (agregar la regla al principio de la cadena).
Borrara la regla que bloquee los paquetes provenientes de la red 192.168.1.0. iptables t filter D OUTPUT s 192.168.3.20 j ACCEPT
Borrar la regla que acepte los paquetes salientes a la direccin 192.168.3.20. Ejemplos con el comando R, --replace: iptables t filter R INPUT 1 s 192.168.1.0 j DROP
Reemplazar la regla 1 que bloquee los paquetes provenientes de la red 192.168.1.0. iptables t filter R OUTPUT 3 s 192.168.3.20 j ACCEPT
Muestra todas las reglas de iptables correspondientes a la tabla FILTER. iptables t nat L
Muestra todas las reglas de iptables correspondientes a la tabla NAT. iptables t nat L PREROUTING
Muestra todas las reglas de iptables correspondientes a la tabla NAT en la cadena PREROUTING. Ejemplos con el comando F, --flush: iptables t filter F INPUT
Borra todas las reglas de la cadena INPUT de la tabla FILTER Ejemplos con el comando Z, --zero iptables Z input
Los contadores de reglas para la cadena INPUT de la tabla filter de reinicializarn a cero.
Comandos que permiten verbosidad: -L, --list -A, --append -I, --insert -D, --delete -R, --replace Esta opcin al ser utilizada con L , mostrar en pantalla los contadores de paquetes y las interfaces de entrada y salida para cada regla.
Figura 8-3. Visualizacin de reglas a detalle aplicadas en Beakos Al utilizarla con los dems comandos nos mostrar informacin ms detallada de la regla en cuestin. Opcin 2: -x, --exact Ejemplo: iptables t filter L v x iptables L x
Comandos que la aceptan esta opcin: -L, --list Esta opcin no muestra el valor de los contadores en bytes de manera exacta. Opcin 3: -n, --numeric Ejemplo: iptables t nat L PREROUTING n v
Comandos que aceptan esta opcin: -L, --list Esta opcin mostrar en pantalla todas las reglas de la cadena POSTROUTING de la tabla de nat con los contadores de paquetes y los bytes para cada regla sin resolver las direcciones IP o los puertos y los mostrar en formato numrico.
-o, --out-interface Especfica la interfaz de red por la cual un paquete ser enviado. Ejemplo:
-p, --protocol Especfica el protocolo de un determinado paquete, las opciones posibles son icmp, udp y tcp Ejemplo: iptables I INPUT s 200.38.146.24 p tcp j ACCEPT iptables A INPUT -i eth1 p tcp j DROP
-s,--source Especifica el origen de una direccin Ip o un grupo de direcciones IP especificadas por un sufijo. Ejemplo: --sport Especifica los puertos de donde proviene un paquete, puede ser tcp o udp dependiendo de la opcin p. --dport Especifica el puerto destino de un paquete, puede ser tcp o udp dependiendo de la opcin p. iptables A INPUT p tcp -dport 80 j ACCEPT iptables I INPUT p udp -dport 161 j DROP iptables I INPUT -sport 1000 s 192.168.4.32 -J ACCEPT iptables A INPUT p tcp -sport 23:27 j ACCEPT iptables A INPUT s 192.168.2.0/24 j ACCEPT
Relacionada, no necesariamente parte de una conexin existente. INVALID No es parte de una conexin existente ni puede crear una conexin nueva. Ejemplo: iptables A INPUT m state -state ESTABLISHED,RELATED j ACCEPT iptables I INPUT m state --state NEW p tcp -dport 25 j ACCEPT iptables A INPUT m state -state NEW j DROP
Figura 8-5. Archivo de configuracin del firewall de Beakos. Comando para aplicar la configuracin una vez modificado el archivo. root [ ~ ]#/etc/init.d/iptables start Comando para borrar la configuracin y dejar el firewall sin reglas aplicadas root [ ~ ]#/etc/init.d/iptables clear Comando para mostrar la configuracin y las reglas aplicadas root [ ~ ]#/etc/init.d/iptables status
SNAT es el responsable de cambiar las direcciones IP y puerto origen, para que un paquete aparezca como proveniente de la puerta de enlace por donde sale el paquete en cuestin. sta es la de mayor uso para el caso en que una red privada necesite utilizar una direccin IP desde el exterior. Para utilizar un SNAT es necesario conocer la direccin IP origen al momento de definir la regla, otro uso de SNAT es cuando se requiere que un host aparezca con otra direccin IP generalmente pblica. DNAT es responsable de cambiar la direccin IP y puertos destino, con el objetivo de que el paquete se dirija a otra direccin IP diferente de la que originalmente se tena destinada, esto resulta til para redireccionar todo el trfico web hacia un servidor proxy por ejemplo. MASQUERADING, es sencillamente un caso especial de SNAT, esto resulta til cuando existen mltiples sistemas en el interior de una red LAN que requieren salir a internet a travs de una sola direccin IP pblica.
Eth1 207.249.24.254
Eth1 207.249.24.254
Cliente: 207.249.161.19
#!/bin/sh # Modulos de firewall para Iptables modprobe ip_tables modprobe iptable_filter modprobe ip_conntrack modprobe ip_conntrack_ftp modprobe ipt_state modprobe iptable_nat modprobe ip_nat_ftp modprobe ipt_MASQUERADE modprobe ipt_LOG modprobe ipt_REJECT modprobe iptable_mangle ## Borrado de reglas iptables -F iptables -X iptables -Z iptables -t nat -F ## Polticas por defecto iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT iptables -t nat -P PREROUTING ACCEPT iptables -t nat -P POSTROUTING ACCEPT # Todo lo que venga de una red externa con destino al #puerto 80 lo redireccionamos a una IP iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.10.12:80 # Permitir conexiones entrantes a localhost iptables -A INPUT -i lo -j ACCEPT # Permitir el acceso local desde el firewall iptables -A INPUT -s 192.168.10.0/24 -i eth1 -j ACCEPT # Abrir el acceso al servicio de correo SMTP iptables -A INPUT -s 0.0.0.0/0 -p tcp --dport 25 -j ACCEPT # Abrir el acceso al servicio de correo POP3 iptables -A INPUT -s 0.0.0.0/0 -p tcp --dport 110 -j ACCEPT
# Permitir el acceso a servidores web iptables -A FORWARD -s 192.168.10.0/24 -i eth1 -p tcp -dport 80 -j ACCEPT # Permitir el acceso a servidores web seguros iptables -A FORWARD -s 192.168.10.0/24 -i eth1 -p tcp -dport 443 -j ACCEPT # Permitir consultas a servidores DNS iptables -A FORWARD -s 192.168.10.0/24 -i eth1 -p tcp -dport 53 -j ACCEPT iptables -A FORWARD -s 192.168.10.0/24 -i eth1 -p udp -dport 53 -j ACCEPT #Enmascarar la red local para que los equipos de la red #local puedan salir la interfaz eth0 iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth0 -j MASQUERADE #Activar el bit para el reenvo de paquetes a nivel de #kernel echo 1 > /proc/sys/net/ipv4/ip_forward #Permitir conexiones entrantes y sus respectivos puertos iptables A INPUT m state -state NEW,ESTABLISHED,RELATED j ACCEPT #Denegar los servicios no utilizados iptables -A FORWARD -s 192.168.10.0/24 -i eth1 -j DROP
#!/bin/sh # Modulos de firewall para Iptables modprobe ip_tables modprobe iptable_filter modprobe ip_conntrack modprobe ip_conntrack_ftp modprobe ipt_state modprobe iptable_nat modprobe ip_nat_ftp modprobe ipt_MASQUERADE modprobe ipt_LOG modprobe ipt_REJECT modprobe iptable_mangle # Borrado de reglas iptables -F
iptables -X iptables -Z iptables -t nat -F ## Polticas por defecto iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT #Aceptar conexiones al localhost iptables A INPUT i lo j ACCEPT #Permitir la entrada de ping al sistema iptables A INPUT p icmp j ACCEPT #Permitir conexiones existentes y relacionadas #(indispensable) iptables A INPUT m state state ESTABLISHED,RELATED j ACCEPT #Permitir conexiones al protocolo SSH desde el exterior #Podemos permitir ms puertos como se requiera iptables A INPUT p tcp --dport 22 j ACCEPT #Activar el uso de syslog para iptables iptables A INPUT j LOG #Rechazar todo lo dems iptables A INPUT j REJECT
Aviso Al terminar de ingresar los comandos anteriores al archivo /etc/rc.d/rc.iptables no olvidemos iniciar el servicio.
Una vez que ingresemos al conjunto de mens seleccionaremos la opcin red y el submen Cortafuegos Linux.
Figura 8-8. Interfaz de Webmin para la administracin del firewall. Con la interfaz de configuracin podemos definir configuraciones por defecto: Permitir todo el trfico. Hacer una traduccin de direccin de red en la interfaz externa. Bloquear todo el trfico excepto SSH e IDENT en una interfaz externa. Bloquear todo el trfico excepto SSH , IDENT y ping en una interfaz. Bloquear todo el trfico excepto los puertos usados para servicios de internet.
Adems de estas plantillas prediseadas podemos agregar reglas personalizadas a cada una de ellas. Seleccionando la opcin aadir reglas dentro de las polticas por defecto (INPUT, OUTPUT, FORWARD).
Figura 8-9. Creacin de reglas de Iptables a travs de Webmin. A diferencia de la configuracin manual las reglas creadas con la interfaz de webmin se almacenarn en el archivo /etc/webmin/firewall/iptables.save
Los que se encuentran dentro de /proc son archivos virtuales sus principales caractersticas son: Son de tamao 0 bytes El Sistema Operativo los genera conforme se consultan Son constantemente modificados por el Sistema Operativo Algunos archivos solo pueden ser ledos por el usuario root Como ya se ha mencionado algunos archivos pueden ser modificados, esto con la finalidad de ajustar la configuracin del kernel, comnmente esto ocurre con los archivos que estn dentro de /proc/sys. Para modificar un archivo virtual, se debe hacer de la siguiente forma: echo [texto_nuevo] > [ruta_del_archivo] Ejemplo: root [ ~ ]# echo beakos.com.mx > /proc/sys/kernel/hostname Los archivos que comnmente se pueden encontrar dentro de /proc pueden variar ya que los directorios con nmero hacen referencia a los procesos que se estn ejecutando en esos momentos. A continuacin se listan algunos de los directorios ms importantes dentro de este sistema de archivos:
9.1.1 buddyinfo
Este archivo utiliza un algoritmo llamado buddy para diagnosticar los problemas de fragmentacin que ocurren en memoria. root [/proc]# cat buddyinfo Node 0, zone DMA 4 1 2 Node 0, zone Normal 3 2 4 5 13 3 4 3 1 3 3 2 2 2 17 1 15 1 9
9.1.2 cmdiline
Este archivo permite visualizar los parmetros pasados al kernel en el momento en que este se inicia. root [/proc]# cat cmdline root=/dev/sda2 ro quiet splash vga=788
9.1.3 cpuinfo
Este archivo identifica las caractersticas principales del procesador utilizado por el sistema. Processor: Enumera cada uno de los procesadores que reconoce el sistema empezando por 0 para el primer procesador, 1 para el segundo y as sucesivamente. cpu-family: Proporciona el tipo de procesador que se encuentra en el sistema. model model name: Muestra el nombre del procesador. cpu Mhz: Muestra la velocidad del procesador indicada en Mhz cache size: Muestra la cantidad de memoria root [ /proc ]# cat cpuinfo processor :0 vendor_id :GenuineIntel cpu family model :23 :6
model name :23 stepping cache size fdiv_bug hlt_bug f00f_bug coma_bug :6 :0 KB :no :no :no :no
flags :fpu vme de pse tsc msr pae cx8 apic sep mtrr pge mca cmov pat
:3497.67 :64
9.1.4 crypto
Este archivo muestra en forma de listado los cdigos de cifrado utilizados por el kernel de Linux. root [ ]# cat /proc/crypto name :md5 driver :md5-generic module :kernel priority :0 refcnt :1 type :digest blocksize :64 digestsize :16
9.1.5 devices
Muestra los diferentes dispositivos tanto de caracteres como de bloque que se encuentran configurados (no incluye dispositivos cuyos mdulos no estn cargados). A continuacin se muestran los datos que contiene este archivo. root [ /proc ]# cat devices 1 mem 4 /dev/vc/0 4 tty 5 /dev/tty 5 /dev/console 5 /dev/ptmx 7 vcs 10 misc 13 input 14 sound 21 sg 29 fb 116 alsa
9.1.6 dma
Este archivo muestra los canales registrados DMA ISA en uso. root [ /proc ]# cat dma 4: cascade
9.1.7 filesystems
Lista los sistemas de archivos que estn soportados por el kernel. root [ /proc ]# cat filesystems nodev sysfs nodev rootfs nodev bdev nodev proc nodev cgroup nodev cpuset nodev debugfs nodev securityfx nodev sockefs nodev pipefs nodev amon_inodefs nodev tmpfs nodev inotifyfs nodev devpls
9.1.8 interrupts
Muestra la interrupciones que estn siendo utilizadas y cuantas de cada tipo ha habido. root 0: 1: 2: 5: 9: 10: 11: 12: 14: 15: NMI: ... [ /proc ]# cat interrupts 95 XT-PIC-XT timer 602 XT-PIC-XT i8042 0 XT-PIC-XT cascade 0 XT-PIC-XT Intel 82801AA-ICH 0 XT-PIC-XT acpi 0 XT-PIC-XT ehci_hcd:usb2, eth0 0 XT-PIC-XT ohci_hcd:usb1 2896 XT-PIC-XT i8042 1103 XT-PIC-XT ata_piix 162 XT-PIC-XT ata_piix 0 XT-PIC-XT ata_piix
9.1.9 loadavg
El nivel medio de carga del sistema; tres indicadores significativos sobre la carga de trabajo del sistema en cada momento. root[ /proc ]# cat loaddavg 0.02 .0.00 2/38 149
9.1.10 meminfo
Informacin acerca de la utilizacin de la memoria fsica y del archivo de intercambio. root [ /proc ]# cat meminfo MemTotal: 4027012 kB MemFree: 3935932 kB Buffers: 1092 kB Cached: 19088 kB SwapCached: 0 kB Active: 70288 kB Inactive: 3340 kB HighTotal: 3145664 kB HighFree: 3068876 kB LowTotal: 881348 kB LowFree: 867056 kB SwapTotal: 4200988 kB SwapFree: 4199620 kB Dirty: 136 kB Writeback: 0 kB AnonPages: 53460 kB Mapped: 15820 kB Slab: 8136 kB SReclaimable: 2348 kB SUnreclaim: 5788 kB PageTables: 1140 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 6214492 kB Committed_AS: 378096 kB VmallocTotal: 114680 kB VmallocUsed: 6596 kB VmallocChunk: 107876 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 4096 kB
9.1.11 modules
Indica los mdulos del ncleo que han sido cargados hasta el momento. root [ /proc ]# cat modules ipv6 232636 12 - Live 0xf04c9000 iptable_mangle 3584 0 - Live 0xf044c000 ipt_REJECT 3584 0 - Live 0xf044a000 ipt_LOG 5764 0 - Live 0xf0435000 ipt_MASQUERADE 3456 0 - Live 0xf0438000 nf_nat_ftp 3456 0 - Live 0xf034f000 iptable_nat 5640 0 - Live 0xf043d000 nf_nat 16408 3 ipt_MASQUERADE,nf_nat_ftp,iptable_nat, Live 0xf0444000 xt_state 2944 1 - Live 0xf02af000 nf_conntrack_ftp 7716 1 nf_nat_ftp, Live 0xf043a000 nf_conntrack_ipv4 12940 4 iptable_nat,nf_nat, Live 0xf040e000 nf_conntrack 55892 7 ipt_MASQUERADE,nf_nat_ftp,iptable_nat,nf_nat,xt_state,nf_co nntrack_ftp,nf_conntrack_ipv4, Live 0xf046c000 iptable_filter 3456 1 - Live 0xf0031000 ip_tables 11024 3 iptable_mangle,iptable_nat,iptable_filter, Live 0xf0414000 x_tables 14084 6 ipt_REJECT,ipt_LOG,ipt_MASQUERADE,iptable_nat,xt_state,ip_table s, Live 0xf041f000 parport_pc 22548 0 - Live 0xf0418000 parport 31572 1 parport_pc, Live 0xf0376000 pcspkr 3200 0 - Live 0xf0057000 snd_intel8x0 26652 0 - Live 0xf0368000 snd_ac97_codec 90404 1 snd_intel8x0, Live 0xf0454000 ac97_bus 2560 1 snd_ac97_codec, Live 0xf0019000 snd_pcm 63108 2 snd_intel8x0,snd_ac97_codec, Live 0xf0424000 snd_timer 18440 1 snd_pcm, Live 0xf0370000
9.1.12 mounts
Muestra las particiones y lo puntos de montaje activos. root [ /proc ]# cat mounts rootfs / rootfs rw 0 0 none /sys sysfs rw,nosuid,nodev,noexec 0 0 none /proc proc rw,nosuid,nodev,noexec 0 0 udev /dev tmpfs rw,size=10240k,mode=755 0 0 /dev/hda1 / ext3 rw,errors=continue,data=ordered 0 0 tmpfs /dev tmpfs rw,mode=755 0 0 devpts /dev/pts devpts rw,gid=4,mode=620 0 0 tmpfs /dev/shm tmpfs rw 0 0 /dev/hda2 /root/distro ext3 rw,errors=continue,data=ordered 0 0
9.1.13 partitions
Muestra las particiones existentes root [ /proc ]# cat partitions major minor #blocks name 3 0 39082680 hda 3 1 19923592 hda1 3 2 17826480 hda2 22 0 39082680 hdc 22 1 10490413 hdc1 22 2 1060290 hdc2 120 60 8 : slabdata 1 1 0
9.1.14 stat
Muestra varias estadsticas acerca del sistema, tales como el nmero de fallos de pgina que han tenido lugar desde el arranque del sistema. root [ /proc ]# cat stat cpu 250 48 294 628400 384 6 2 0 0
cpu0 250 48 294 628400 384 6 2 0 0 intr 31558 67 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1311 259 0 0 0 29912 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
9.1.15 swaps
Muestra las particones SWAP activas en el sistema. root [ /proc ]# cat swaps Filename Type Size Used Priority /dev/sda3
partition 506036 0 -1
Ejemplo: root [ /proc ]# echo 1 >/proc/sys/net/ipv4/ip_forward La instruccin anterior habilit (1 activado), el reenvio de paquetes, esto resulta til si nuestro sistema se utilizar como un router.
Nota Los cambios realizados en /proc, no persistirn a un reinicio, para ello debe guardarlos en el archivo /etc/sysctl.conf
Tabla 10-1. Opciones ms comunes para el comando sysctl. Opcin Descripcin -n No muestra el nombre de la variable, slo el valor. -e Ignora errores referentes a claves desconocidas. -w Se utiliza para cambiar la un ajuste de sysctl. -p Carga la configuracin que est escrita en el archivo de configuracin de sysctl. -a Presenta todos los valores disponibles que estn configurados.
La variable es utilizada para fijar el valor fijar un valor. Ejemplos: root [ ~ ]# sysctl kernel.core_uses_pid=0 kernel.core_uses_pid = 0 root [ ~ ]# sysctl net.ipv4.ip_forward=1 net.ipv4.ip_forward = 1
Ejemplo: root [ ~ ]# removepkg iproute2-2.6.26-i386-1 Removing package iproute2-2.6.26-i386-1... Removing files: --> Deleting ./etc/iproute2/ematch_map --> Deleting ./etc/iproute2/rt_dsfield --> Deleting ./etc/iproute2/rt_protos --> Deleting ./etc/iproute2/rt_realms --> Deleting ./etc/iproute2/rt_scopes --> Deleting ./etc/iproute2/rt_tables Salida truncada
Es importante notar que para la desinstalacin de un paquete no es necesario poner su extensin .tgz, la lista de paquetes instalados se obtiene del archivo /var/log/packages.
LANGUAGE=ESPANOL Define el lenguaje con el cual se mostrarn los mensajes de error y los mensajes de estado de la aplicacin.
ROOT=http://www.beakos.com.mx/paquetes/beakos-1.05.001 Permite indicar el repositorio de software donde estn almacenados los paquetes.
REPOS_ROOT=BEAKOS_PACKAGES%http://www.beakos.com.mx/paquetes/bea kos-1.06.001 Define el nombre del repositorio del cual vamos a hacer uso, estas opciones estn previamente configuradas, no es recomendable modificarlas, ni agregar repositorios de software que no correspondan a la distribucin de Beakos GNU/Linux.
RANDOMR=0 Permite elegir de manera aleatoria entre varios repositorios de software. por defecto est deshabilitada (0).
EXCLUDE=MANIFEST.bz2$ Este parmetro permite excluir nombres de paquetes disponibles en los repositorios que no deseamos instalar ni actualizar.
DEPENDENCY=1 Permite activar o desactivar el soporte de dependencias, por defecto se encuentra activado.
DESC=0
CACHE_DIR=/var/swaret Ruta donde se almacenarn los paquetes que se descarguen de los repositorios.
Tabla 11-2. Opciones para el comando swaret (con nombre del paquete). Opcin Descripcin --install Instala un paquete. --reinstall Reinstala un paquete. --remove Desinstala un paquete. --get Obtiene un paquete y lo almacena en /var/swaret, pero no lo instala. --dep Comprueba dependencias de un determinado paquete. --search Busca si un paquete existe en el repositorio, si est instalado o no. --show Muestra la descripcin de un paquete. Ejemplos: Actualizar la lista de paquetes root [ ~ ]# swaret --update Instalar paquetes que coincidan con la palabra bash root [ ~ ]# swaret --install bash Instalar los paquetes relacionados con la interfaz grfica (-a) no solicita confirmacin.
Reinstalar todos los paquetes existentes. root [ ~ ]# swaret --reinstall a Borra los paquetes almacenados en el cach. root [ ~ ]# swaret purge Remover los paquetes que coincidan con la palabra glib. root [ ~ ]# swaret --remove glib Instalar los paquetes para desarrollo. root [ ~ ]# swaret install developer -a
Una vez que hemos descargado una copia del software procedemos a descomprimirla. root [ ~ ]# tar -xf nano-2.2.5.tar.gz Terminado el paso anterior, nos cambiamos a la carpeta que se genero tras la descompresin y revisamos el contenido. root [ ~ ]# cd nano-2.2.5 ; ls Es importante observar si dentro de los documentos se encuentra alguno que nos brinde informacin especial sobre la instalacin del programa (poner especial atencin a los archivos INSTALL y README o similares). El siguiente paso consiste en la configuracin del paquete, la mayora del software GNU provee un script llamado configure, este script permite establecer la ruta donde se instalarn los binarios, los archivos de configuracin, las bitcoras, el software contra el que se compilar entre otras opciones. Para ver las opciones del script configure ejecutamos: root [ ~/nano-2.2.5 ]# ./configure --help Nos mostrar una lista extensa de diversas opciones para compilar el software, una de las conocidas y ms empleadas es la opcin prefix, nos permite elegir la ruta donde se instalar el programa, por ejemplo: root [ ~/nano-2.2.5 ]# ./configure --prefix=/usr En esta accin entra en accin un archivo llamado makefile, estos archivos son la base de la compilacin si el script configure falla, no obtendremos un archivos de este tipo, el siguiente paso consiste en ejecutar el comando make. root [ ~/nano-2.2.5 ]# make El comando make busca todos los makefiles que se crearon con el comando configure y obtiene de ellos la informacin sobre los archivos que deben ser compilados y en qu orden, si la compilacin se lleva a cabo con xito (dependiendo de su hardware este proceso puede tardar algunos minutos) no observar mensajes de error, quiz algunos warnings se muestren en pantalla, la mayora de los errores que se presentan en esta fase, estn relacionados a la falta de algn archivo, permisos de usuario y algunos tambin se deben a la versin del compilador GCC que se est empleando. El paso final consiste en la instalacin del paquete, si no obtuvo un error en los pasos anteriores proceda a ejecutar el siguiente comando: root [ ~/nano-2.2.5 ]# make install Una vez terminado el proceso, es importante verificar que el software instalado se ejecuta adecuadamente.
El paquete se almacenar en la siguiente ruta con extensin tgz: /root/nano-2.2.5/nano-2.2.5-i386-1.tgz Este paquete se puede distribuir a otros usuarios sin necesidad de que lo vuelvan a compilar, slo se requiere instalar con el comando installpkg
Nota La mayora de los archivos log se generan en el directorio /var/log, aunque en la mayora de las aplicaciones se puede modificar este valor
Syslogd es un demonio que se encarga de recibir los registros del Kernel y de otros demonios del sistema, syslog viene con parmetros por defecto, pero se puede personalizar su funcionamiento a travs del archivo /etc/syslog.conf.
Las opciones por defecto que contiene el archivo de configuracin syslogd son las siguientes: auth,authpriv.* -/var/log/auth.log *.*;auth,authpriv.none -/var/log/sys.log daemon.* -/var/log/daemon.log kern.* -/var/log/kern.log mail.* -/var/log/mail.log user.* -/var/log/user.log *.emerg * cron.* -/var/log/cron.log # End /etc/syslog.conf Como podemos observar el archivo de configuracin de syslogd la informacin se canaliza a diversos archivos. Informacin relacionada a la autenticacin se canaliza a /var/log/auth.log y /var/log/sys.log Informacin relacionadas con /var/log/daemon.log otros demonios del sistema se registra en
Mensajes generados por la actividad del Kernel se registran en /var/log/kern.log Mensajes relacionados al correo electrnico se registran en /var/log/mail.log Mensajes relacionados a aplicaciones ejecutadas por usuarios del sistema se almacenan en /var/log/user.log Registros generados por /var/log/cron.log el sistema de tareas planificadas se almacenan en
Procedemos con el reinicio del servicio. root [ ~ ]# /etc/init.d/sysklogd restart Deteniendo demonio de logs del kernel... Deteniendo demonio de logs del sistema... Iniciando demonio de logs del sistema... Iniciando demonio de logs del kernel...
[ [ [ [
OK OK OK OK
] ] ] ]
Ahora bien Beakos GNU/Linux est configurado para slo recibir logs del propio sistema, en el sistema que recibir los logs (192.168.0.132), debemos modificar el script de arranque ubicado en /etc/init.d/sysklogd agragndole la opcin r al demonio syslogd. Cambiar la lnea (21) loadproc syslogd -m 0 Por loadproc syslogd -r -m 0 Reiniciar el servicio para aplicar el cambio root [ ~ ]# /etc/init.d/sysklogd restart Deteniendo demonio de logs del kernel... Deteniendo demonio de logs del sistema... Iniciando demonio de logs del sistema... Iniciando demonio de logs del kernel...
[ [ [ [
OK OK OK OK
] ] ] ]
Los cambios deben verse reflejados en los logs generados por el Kernel, donde se puede observar la direccin IP de donde provienen los registros. root [ /var/log ]# tail -f /var/log/kern.log Sep 23 08:24:31 192.168.0.129 kernel: Kernel logging stopped. Sep 23 08:24:31 192.168.0.129 kernel: Kernel log terminating.
(proc) daemon
4:on
5:on
6:off
Xinetd se habilita en los niveles de ejecucin 2,3,4 y 5, para iniciar el servicio de forma manual tecleamos: root [ ~/servers ]# /etc/init.d/xinetd start
bloque { variable = valor } Cada bloque puede contener mltiples variables definidas dentro de l, el bloque llamado defaults en el archivo de configuracin principal hereda esos parmetros a los dems bloques definidos en el directorio /etc/xinetd.d
Tabla 12-1. Variables para servicios Xinetd Variable Descripcin id Especifica un nombre para el servicio, con el objetivo de no duplicarse, de modo predeterminado el id, es el mismo que el nombre del servicio. type Se puede especificar los siguientes valores RPC si se trata de un servicio RPC, INTERNAL si es un servicio provisto por xinetd, o bien UNLISTED si no es un servicio enlistado en el fichero /etc/services. socket_type Los valores vlidos son los siguientes: stream: servicio basado en flujo de datos. dgram: servicio basado en datagramas. raw: datagramas IP en bruto. protocol Determina si es protocolo UDP o TCP. wait Correspondes dos valores: yes: procesa un conexin por vez. no: permite mltiples conexiones si el demonio en cuestin tambin lo permite. disable Valores: yes: habilita el servicio para ser utilizado. no: servicio no disponible para ser usado. user Nombre del usuario con el que se ejecutar el demonio. group Nombre del grupo con el que se ejecutar el demonio. instances Nmero mximo de conexiones simultneas permitidas. log_type Determina como se generaran las bitcoras de registro. Se dispone de dos opciones: SYSLOG: establecido por defecto, xinetd enviar los archivos log al demonio syslogd. FILE: enviar los registros de los logs a un archivo especificado. Ejemplo: FILE /var/log/bitacora server El nombre del programa a ejecutar cuando se solicita este servicio. server_args Argumentos adicionales al comando a ejecutar. only_from Especifica las redes o los hosts desde los cuales se puede solicitar una conexin.
no_access cps
interface port
Lo contrario de only_from, especifica las redes o hosts desde los cuales no se puede establecer conexin. Especifica el nmero de conexiones mximas por segundo para el servicio, si se excede de este parmetro el servicio se deshabilitar los segundo declarados en el segundo parmetro. Ejemplo: cps = 10 20 Especifica por cual interface responder el servicio. Especifica el puerto por el cual escuchar el servicio, debe estar declarado en el archivo /etc/services.
= = = = = = =
Una vez creados los bloques dentro del directorio /etc/xinetd.d, slo basta reiniciar el servicio de xinetd. root [ ~ ]# /etc/init.d/xinetd restart
A continuacin se describen los parmetros del archivo sshd_config: Port.- Especfica el nmero de puerto que va a ser utilizado por el servidor. Comnmente suele definirse el puerto 22, sin embargo puede elegirse cualquier otro entre el 1025 y el 65535. Sintaxis:
Port [N que se va a definir]
ListenAddress.- Por defecto SSH responde a peticiones a travs de todas las interfaces del sistema. Sin embargo, esta opcin puede ser modificada para que se pueda acceder nicamente por la red local a travs de una sola interfaz. Sintaxis:
ListenAddress [direccin IP]
PermitRootLogin Este parmetro especifica si se va a permitir el acceso al servidor SSH mediante el usuario root. Sintaxis:
PermitRootLogin [yes/no]
AllowUsers Permite el acceso a los usuarios que se encuentren definidos en este parmetro y restringe a todos a que ellos que queden excluidos. Sintaxis:
AllowUsers [usuario1] [usuario2]
Adicionalmente AllowUsers tambin permite el acceso a determinados usuarios desde determinada direccin IP. Sintaxis:
AllowUsers [usuario1@10.1.1.1] [usuario2@10.1.1.2] [usuario3@10.2.2.2]...
Generalmente estos parmetros ya vienen definidos por default en la instalacin. El mdulo de Webmin que se encarga de administrar tanto al servidor como al cliente ssh se llama SSH Server y se puede descargar del sitio oficial de Webmin en la categora de servidores.
Como ya se ha visto en otro subtema OpenSSH manejan dos archivos (scripts) para configurar tanto al cliente (ssh) como al servidor (sshd), ssh_config y sshd_config respectivamente ubicados en /etc/ssh, estos archivos son utilizados de igual manera por webmin para la efectuar las configuraciones que el Administrador defina en la aplicacin. La pgina principal del mdulo ssh muestra seis conos: Autenticacin Redes Control de Acceso Opciones Diversas Opciones del Host Cliente Administracin de las llaves de usuario SSH Cada uno de ellos enlaza a un formulario para editar cada una de las opciones. Restringir el acceso al servidor Seleccionar la opcin control de acceso: Para bloquear a todos los usuarios excepto algunos, ingresar una lista con los usuarios permitidos separados por un espacio dentro del nico campo que se encuentra activo. Tambin se pueden especificar algunos tipos de usuario en particular por ejemplo: an* Permite el acceso a cualquier usuario que comience con an. Otra forma puede ser permitir el acceso a usuarios de determinado grupo, habilitando las opciones Denegar usuarios denegar miembros de grupos. Para guardar los cambios realizados damos click en el botn Guardar y Aplicar cambios. Configuracin de la red Seleccionamos la opcin de Red en la pgina principal del mdulo: Por defecto el servidor ssh acepta todas las peticiones de conexin, para cambiar esta opcin se debe seleccionar el botn Escuchar en y en el campo de direccin introducimos las direcciones IP permitidas as como los puertos. Para cambiar el puerto por el que el servidor ssh escucha editar el campo Escuchar en el puerto. En la opcin Aceptar Protocolos seleccionamos las casillas de la versin del protocolo SSH debe aceptar (SSH1 y SSH2). Para que el servidor ssh desconecte automticamente a los host clientes que se hayan apagado o que no haya cerrado la sesin adecuadamente, existe la opcin Desconectar si el cliente se ha roto la cual podemos marcar con la opciones S y No. Para configurar el tiempo de espera que el servidor da a los host clientes para autenticarse despus de que se hayan conectado modificar el parmetro Tiempo de espera en el campo inicio de sesin.
Una de las opciones de SSH es que permite el reenvo de puerto, el cual permite a los host clientes acceso a los puertos del servidor que normalmente tendran bloqueados, esto puede ocasionar una vulnerabilidad al momento de un ataque, para deshabilitar esta opcin modificamos el campo Permitir el reenvo TCP seleccionando No. Para que el servidor busque los nombres de host por su direccin de cliente y bloque todas aquellas que no coincidan seleccionamos la opcin S en validar-reverso de las direcciones IP de los clientes?. Esta opcin viene incluida a partir de la versin 2.3 de OpenSSH.
Siempre que hagamos alguna modificacin en la configuracin del servidor debemos guardar los cambios dando click en el botn Guardar y Aplciar. Configuracin de la autenticacin Seleccionamos la opcin de autenticacin en la pgina principal del mdulo: Para informar a los usuarios si tienen correo nuevo cuando inicien sesin seleccionar la opcin S en el campo Notificar al usuario de correo Nuevo. Para especificar si los usuarios acceden con o sin contrasea modificamos el campo Permitir la autenticacin por contrasea? Para denegar que los usuarios se autentiquen como root modificar la opcin Permitir inicio de sesin de root con el parmetro No. Para evitar que los usuarios utilicen certificados para autenticarse, modificar la opcin Permitir la autenticacin RSA? con el parmetro No. Configuracin de SSH para los nuevos usuarios Seleccionamos la opcin Configuracin de claves de usuario SSH en la pgina principal del mdulo: Marcar la casilla de Clave de configuracin de SSH para nuevos usuarios Unix esto permitir que ssh-keygen se aplique para todas las cuentas nuevas. Para que la clave pblica del usuario nuevo se agregue a la lista de claves que estn autorizados para utilizar su cuenta, marcar la opcin Copiar nuevo identify.pub a las claves autorizadas .
ssh l <usuario><hostname> Cuando se ejecuta por primera vez este comando aparece el siguiente mensaje:
The authenticity of host 'mail.Beakos.com.mx' can't be established. DSA key fingerprint 94:68:3a:3a:bc:f3:9a:9b:01:5d:b3:07:38:e2:11:0c. Are you sure you want to continue connecting (yes/no)? is
Despus de escribir yes se aadir el servidor en su lista de hosts conocidos: ~/.ssh/known_hosts/ . En seguida aparecer un intrprete de comandos donde debe ingresar la contrasea del usuario con el que se desea conectar una vez ingresada la contrasea correcta aparecer el intrprete de comandos del host remoto. Otra opcin que tiene el comando ssh es: ssh <usuario>@<hostname> ls <path>
Este comando permite ejecutar instrucciones en un host remoto sin acceder al mismo, es decir, a su intrprete de comandos. Para conocer las dems opciones que tiene este comando se puede consultar el manual de ayuda escribiendo en el intrprete de comandos: man ssh
Para copiar un archivo de un host remoto a un host local: scp usuario@hostname:<archivo-remoto><archivo-local> <archivo-remoto> define la ruta origen del archivo a copiar. <archivo-local> define la ruta destino donde se va a copiar el archivo. Para copiar archivos entre dos mquinas remotas:
Tabla 8-1. Comandos ms comunes para en una sesin sftp. Comando Descripcin cd [path] Cambia el directorio remoto a la ruta especificada. lcd [path] Cambia el directorio local a la ruta especificada (path). get remote-path [local-path] Descarga el archivo. lmkdir [path] mkdir [path] Put local-path [remote-path] help pwd rename [oldpath] [newpath] rmdir [path] rm [path] Crea un directorio en el host local. Crea un directorio en el host remoto. Carga un archivo en el host remoto. Por lo regular suele usarse para subir archivos al servidor sftp. Despliega ayuda en modo texto. Despliega el directorio de trabajo en el host remoto Renombre un archivo del host remoto. Elimina un directorio del host remoto. Elimina un archivo del host remoto.
Tabla 8-2. Clientes para sesiones SFTP. Entorno de SO Cliente SSH (grfico) Sito Oficial
Konqueror.Este http://www.konqueror.org navegador permite conexiones mediante ssh, tecleando en la barra de direcciones lo siguiente: sftp://username@host
GNU/LINUX
Nautilus.- Navegador que http://live.gnome.org/Nautilus ofrece conexiones grficas por ssh tecleando en la barra de direcciones: ssh://username@host KNetAttach.Esta http://docs.kde.org/stable/es/kdebaseaplicacin permite runtime/knetattach/index.html conexiones SSH grficas, integra diversas carpetas de red con el entorno KDE. Sujeta a los trminos de la Licencia Pblica General GNU. WinSCP.- Es una aplicacin http://winscp.net/eng/docs/lang:es de Software Libre. Facilita la transferencia segura de archivos entre dos sistemas local-remoto soporta la autenticacin por medio de SSH, soporta conexiones por SSH1 y SSH2.
WINDOWS
14.1.1 Caractersticas
CUPS utiliza como base el protocolo IPP pero tambin cuenta con el soporte para otros protocolos como Line Printer Daemon (LPD), Server Message Block (SMB) y AppSocket, sin embargo, la funcionalidad de estos protocolos est un tanto reducida. CUPS cuenta con una imagen del archivo RIP que soporta impresin de archivos de imagen en impresoras nonPostScript. Existen varias interfaces de usuario destinadas a diferentes plataformas para la configuracin de CUPS, tambin cuenta con una aplicacin web desde la cual poder administrar todos los recursos. A continuacin se describen las principales caractersticas de CUPS: CUPS utiliza el protocolo de impresin de Internet (IPP) por default para administrar las colas impresin entre otras tareas. Proporciona bsquedas de impresoras y algunas opciones de impresin basadas en archivos de descripcin de impresora PostScript(PPD) Es un sistema de impresin estandarizado, adems de modular es capaz de admitir distintos formatos de datos que son enviados al servidor de impresin. Provee un mecanismo el cual permite que los formatos de impresin sean ledos por las impresoras de manera estndar. Facilita la creacin de nuevos controladores tanto a los desarrolladores como a los fabricantes para que dichos controladores puedan ser implantados en el servidor de impresin.
14.2 Funcionamiento
Cups est diseando bajo la arquitectura cliente/servidor, en la cual existe una impresora central que se encarga de atender los trabajos de impresin que se van solicitando, as como el procesamiento de comandos, tambin provee informacin sobre el estado de las impresoras mediante aplicaciones locales o remotas, adems de informes o notificaciones cuando el usuario lo requiera.
Planificador
Filtros
Backends
14.3 Planificador
El planificador de CUPS (cupsd) es un servidor de HTTP (Hypertext Transfrer Protocol) e IPP (Internet Printing Protocol) que administra las peticiones a dichos protocolos, las impresoras, clases, trabajos de impresin, suscripciones y las notificaciones del sistema. El planificador utiliza una serie de interfaces web dinmicas basadas en CGI que pueden ser configuradas mediante scripts. El nmero mximo de conexiones de clientes y trabajos de impresin simultneos depende de las caractersticas del hardware del servidor de impresin, velocidad de procesador y de memoria RAM principalmente.
Iniciar CUPS al arranque con el sistema root [ ~ ]# chkconfig --add cups root [ ~ ]# chkconfig --list cups 0:off 1:off 6:off
2:off
3:on
4:off
5:on
Por defecto el servidor CUPS iniciar en los niveles de ejecucin 3 y 5. El servidor utiliza el archivo de configuracin cupsd.conf ubicado en /etc/cups.
Algunas de las opciones del archivo de configuracin de CUPS ms importantes son: Browsing Establece si es posible o no administrar las funciones de impresin en red por medio de la interfaz web, es decir, desde algn navegador de internet. BrowseProtocols Especfica que protocolos utilizar al momento de compartir impresoras a travs de la red local. BrowseInterval Especfica el tiempo lmite transcurrido entre las actualizaciones de navegacin. BrowseAddress Especfica una direccin a la cual se enviar informacin de navegacin. Varias directivas de BrowseAddress pueden ser especificadas para enviar informacin a diferentes redes o sistemas. Limit (Location) Limit especifica los grupos de control de acceso y autenticacin determinados tipos de peticiones HTTP. para
ServerName La directiva de ServerName especifica el nombre del host anfitrin que ser notificado a los host clientes. Por defecto dicho nombre es hostname.
registro son girados* por el planificador cuando es rebasado el lmite de almacenamiento que por defecto es de 1MB, si se establece que el tamao sea de 0 entonces no se realiza la rotacin de los archivos, esto a menudo es utilizado por los administradores de Linux para que ellos utilicen el logrotated.
Ejemplo: root [ ~ ]# lpc lpc> help Commands may be abbreviated. Commands are: exit help quit status ?
Opcin -E -P -U -a -h -I
Tabla 14-2. Opciones para el comando LPQ Descripcin Encripta las conexiones al servidor. Especifica una impresora. Especifica un nombre de usuario alterno. Seala los trabajos en todas las impresoras. Especifica un servidor alterno. Pide un formato de reportes ms extenso y detallado.
Opcin -#copias -T -P -U -I -m -p -q -r
Opcin -E -U -h -P
Tabla 14-4. Opciones para el comando LPRM Descripcin Forzar la encriptacin cuando hay una conexin al servidor. Especifica un nombre de usuario alterno. Especifica un servidor de impresin alterno. Especifica la impresora.
14.6.1 El comando LP
El comando lp permite imprimir un archivo. Sintaxis lp [archivo] [-P #paginas] [-n #copias] [-d impresora] Tabla 14-5. Opciones para el comando LP Opcin -d -n -P Ejemplo: root [ ~ ]# lp n 28 p impresora_color documento.txt Descripcin Especifica la impresora donde se enviarn los trabajos. Nmero de copias del trabajo de impresin, mximo 100 Determina el nmero de pginas a imprimir (1,5,80-100).
Opcin -E -h -d -p
Tabla 14-6. Opciones para el comando LPADMIN Descripcin Encripta las conexiones al servidor. Especifica el servidor de impresin. Indica la impresora destino. indica la impresora a utilizar.
Tabla 14-7. Opciones para utilizar con lpadmin p [impresora] Opcin Descripcin -c Agrega la impresora especificada a la clase. Si la clase no existe se crea automticamente. -i Establece para la impresora un guin (script) de interfaz estilo SYSTEM V Esta opcin no puede ser especificada con la opcin P, y est pensada para dar soporte a controladores de impresora legados. -m Establece un guin (script) de interfaz estndar System V o archivo PPD desde el directorio modelo. -r Elimina la impresora especificada de la clase. -u allow:usuario Establece el control de acceso a nivel usuario. -D Proporciona una descripcin de la impresora. -L Proporciona una ubicacin de la impresora. -P Especifica un archivo de impresin de la impresora PostScript para usar con la impresora.
Opcin -H -U -a -h -v
PROGRAMA
admin.cgi
UBICACIN
/admin
DESCRIPCIN
Proporciona todas las funciones administrativas, por ejemplo: Aadir impresora Editar archivo de configuracin Mostrar el archivo de registro de accesos Aadir clase Administrar clases Administrar trabajos Lista las clases y proporciona la funcin de bsqueda para la administracin de clases. Proporciona documentacin y ayuda en lnea. Enumera los trabajos y proporciona funcionalidades para la administracin, como son las bsquedas y mostrar resultados detallados de dichas bsquedas. Muestra un listado de las impresoras y proporciona funciones para la administracin, como son: Imprimir pginas de prueba Modificar las opciones de
classes.cgi
/classes
help.cgi
/help /jobs
jobs.cgi
printers.cgi
/printers
impresora Eliminar impresora Detener impresora Rechazar trabajos Establecer como predeterminada Modificar usuarios permitidos
La pagina de administracin permite realizar las siguientes tareas: Impresoras Clases Aadir clases. Administrar clases. Agregar impresora. Encontrar nuevas impresoras. Administrar impresoras.
Servidor Editar archivo de configuracin. Ver archivo de registro de accesos. Ver archivo de registro de errores. Ver archivo de registro de pginas.
Conectados directamente.- Se encuentran conectados por puerto paralelo, puerto serial o puerto USB. Por lo que estos dispositivos se encuentran especificados de la siguiente manera: parallel:/dev/lp* Para impresoras conectadas al puerto paralelo. serial:/dev/ttyS* Para impresoras conectadas al puerto serial. usb:/dev/usb/lp* Para impresoras conectadas al puerto USB.
Conectados en red (IPP).- IPP o Internet Printing Protocol, gracias a este protocolo CUPS permite que se puedan utilizar impresoras a travs de internet o en una intranet. Dispositivos IPP en CUPS: LPD Line Printer Daemon, CUPS soporta conexiones de este tipo, permitiendo establecer una impresora compartida en red para que puedan ser utilizada por otros equipos que no cuenten con LPD. La sintaxis URI para dirigirse a una impresora LPD: lpd://nombreanfitrion/cola, donde nombreanfitrion es el nombre de la mquina.
SMB Service Message Block este protocolo es muy comn para compartir impresoras en redes Windows, CUPS permite a sus clientes el acceso a una impresora que se encuentre en un servidor SAMBA o SMB. La sintaxis URI para dirigirse a una impresora compartida por SMB: smb://nombreservidor/recursocompartido, donde recursocompartido es el nombre con el que se identifica la impresora que ha sido compartida.
Impresora compartida en red Son impresoras que por sus caractersticas tcnicas tienen la capacidad de conectarse a una red ya sea por Ethernet, inalmbrica, etc. La sintaxis URI para dirigirse a una impresora: socket://direccin_ip:puerto
A continuacin se describen los pasos para agregar una impresora imaginaria a travs de la interfaz Web de CUPS con las siguientes caractersticas: Nombre: impresora-1 Ubicacin: administracin Descripcin: Impresora imaginaria de pruebas Tipo de conexin: Socket Marca: HP Modelo: Laser Jet
Procedimiento 1. Ejecutar en el navegador de nuestro sistema la URL http://localhost:631, de los mens superiores seleccionar la opcin Administracin , le pedir introducir el nombre de usuario y contrasea, utilice la cuenta de root y su respectiva contrasea.
2. Despus de ingresar al sistema seleccionamos el vnculo Aadir impresora. 3. En el men Otras impresoras de red, seleccionamos la opcin Appsocket/HP JetDirect y damos click en el vnculo siguiente. 4. En el campo conexin escribimos socket://localhost y damos un click en el vnculo siguiente. 5. CUPS nos mostrar un formulario donde debemos introducir la informacin relacionada a la impresora (Nombre, Ubicacin, Descripcin, etc). 6. Dar click en el botn siguiente cuando termine de introducir los datos. 7. Seleccionamos la marca de la impresora (HP), y damos un click en siguiente. 8. Seleccionamos el modelo HP DeskJet Series y damos un click en siguiente. 9 Nos mostrar algunas opciones para la configuracin del papel, color, resolucin, etc. Podemos modificar las opciones a nuestras necesidades y damos un click en cambiar opciones prederminadas para finalizar con la configuracin. Al terminar debe mostrar la siguiente pantalla.
Procedimiento 1. Abrir una terminal del sistema con el usuario root y enlistar las colas de impresin del sistema actualmente configuradas, para esto utilizamos el comando lpstat, escribir: root [ ~ ]# lpstat -a impresora-1 accepting requests since Tue Sep 28 06:24:03 2010 2. Con el comando lpadmin que analizamos en temas anteriores agregaremos una impresora imaginaria con los parmetros siguientes: root [ ~ ]# lpadmin -p "impresora-2" -E \ -v socket://192.168.0.132 -D "Impresora de prueba" \ -L "Administracion" 3. Utilizamos el comando lpstat para listar las impresoras configuradas. root [ ~ ]# lpstat -a impresora-1 accepting requests since Tue Sep 28 06:24:03 2010 impresora-2 accepting requests since Tue Sep 28 07:12:08 2010
4. Podemos tambin visualizar la impresora que acabamos de configurar a travs de la interfaz web.
configurada en el tema anterior como impresora predeterminada utilizar el siguiente comando. root [ ~ ]# lpadmin -d impresora-2
Si deseamos denegar el acceso a la impresora-2 al usuario angel, tecleamos: root [ ~ ]# lpadmin -p impresora-2 -u deny:angel
Para quitar todas las restricciones y permitir que todos los a la impresora-1 tecleamos: root [ ~ ]# lpadmin -p impresora-1 -u allow:all
Figura 15-1. Podemos observar como el servidor comparte un directorio con un host remoto y este lo monta como un directorio local.
root [ ~ ]# swaret --install nfs-utils Antes de iniciar el servicio de NFS debemos iniciar el servicio Portmap, Beakos ya tiene este servicio instalado y configurado para arrancar con el sistema, verificamos que este en ejecucin tecleando: root [ ~ ]# /etc/init.d/portmap status portmap is running with Process ID(s) 2103. Si el servicio Portmap est en ejecucin procedemos a iniciar el servicio NFS tecleando el siguiente comando: root [ ~ ]# /etc/init.d/nfs-server start Iniciando NFS mountd... Iniciando NFS nfsd... Iniciando NFS statd... Montando nfsd sistema de archivos virtuales... Exportando sistemas de archivos NFS... [ [ [ [ [ OK OK OK OK OK ] ] ] ] ]
Si deseamos habilitar el servicio de NFS para que arranque en automtico cuando inicia el sistema tecleamos: root [ ~ ]# chkconfig --add nfs-server root [ ~ ]# chkconfig -list nfs-server nfs-server 0:off 1:off 2:off 3:on
4:on
5:on
6:off
/etc/exports en este archivo se define que particiones se compartirn a una determinada red y los permisos que tendrn otros anfitriones de lectura y escritura.
El archivo muestra el directorio /opt/prueba, compartido con el host con direccin IP 192.168.0.128, otorgndole permisos de lectura y escritura.
Tabla 15-1. Permisos posibles para un servidor NFS Opcin Descripcin secure Opcin configurada por defecto para indicar que el nmero de puerto por el cual el cliente solicita un montaje debe ser menor a 1024, si se desea desactivarlo especificar la opcin insecure. rw Permisos al cliente de lectura y escritura. ro Permisos al cliente de slo lectura. no_root_squash Permite que el usuario root del cliente, conserve los mismos privilegios que el usuario local en el servidor tendra normalmente. root_squash Lo contrario al anterior, evita que el usuario root del cliente NFS acceda con los mismos derechos que el usuario raz local. all_squash Asigna los UID y los GID de los archivos al usuario annimo.
archivo
Ejemplos del comando exportfs. Exportar todas las entradas disponibles en /etc/exports root [ ~ ]# exportfs -a Exportar el directorio /opt/dir1 al host cliente1, con permisos de lectura y escritura y conservando los permisos de root del directorio local. root [ ~ ]# exportfs -o rw,no_root_squash cliente1:/opt/dir1
Opcin bg
nfsvers=n
proto=n wsize=n
sec=krb5 Utiliza Kerberos 5 en lugar del UID y GID locales. sec=krb5i Utiliza Kerberos 5 para autenticar usuarios y lleva acabo verificaciones de integridad de datos con el uso de sumas seguras (MD5sum) para prevenir la alteracin de datos. sec=krb5p Utiliza Kerberos para la autenticacin adems de llevar a cabo la encriptacin de datos. Permite seleccionar la versin del sistema NFS que puede corresponder a 2 o 3, no est habilitado para esta opcin, en lugar de ello sera necesario especificar el tipo como nfs4 como sistema de archivos. Especifica el protocolo a utilizar, podemos seleccionar entre UCP y TCP, la versin de NFSv4 slo trabaja con TCP. Nmero mximo de bytes que utiliza NFS para escribir datos en un sistema de archivos, el valor por defecto corresponde a 4096 bytes.
Ejemplo utilizando el comando mount con sistemas de archivos NFS root [ ~ ]# mount -o rw,bg,soft 192.168.0.132:/opt/dir1 /opt/dir1 El comando anterior montar el sistema de archivos NFS en el directorio /opt con permisos de lectura y escritura, si falla se intentar conectar en segundo plano y har un montaje suave. Si deseamos que el montaje sea permanente debemos crear la siguiente entrada en el fichero /etc/fstab 192.168.0.132:/opt/dir1 /opt/dir1 nfs defaults,soft,bg,rw 0 0
Ejecutamos el siguiente comando para que monte las particiones definidas en el archivo /etc/fstab root [ ~ ]# mount a Validamos tecleando root [ ~ ]# mount /dev/sda2 on / type ext3 (rw) /proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=4,mode=620) tmpfs on /dev/shm type tmpfs (rw) /dev/sda1 on /boot type ext3 (rw) none on /proc/fs/nfsd type nfsd (rw) 192.168.0.132:/opt/prueba on /opt type nfs (rw,soft,bg,addr=192.168.0.132) Si no recibimos mensajes de error, podemos ver que en la ltima lnea aparece el sistema de archivos compartido.
NFS es una herramienta muy til para poder compartir sistemas de archivos con otros anfitriones, ampliamente recomendada para compartir discos en red con otros sistemas operativos UNIX y Linux.
16.1 Caractersticas
Samba fue desarrollado en sus inicios por Andrew Tridgell, el nombre proviene de insertar dos vocales a SMB que es el protocolo estndar de Microsoft. Samba es una implementacin de varios protocolos entre los que destacan: NetBIOS sobre TCP/IP SMB ahora conocido como CIFS MSRPC WINS servidor de nombres de NetBIOS Protocolos del dominio NT
Samba configura los directorios y subdirectorios incluyendo los archivos para poder compartirlos en la red con otros usuarios Windows u otros usuarios de GNU/Linux que ejecuten Samba. Los usuarios de GNU/Linux pueden montar particiones Samba como si fueran discos del sistema o utilizar la herramienta smbclient para conectarse a ellas e interactuar con las informacin como se realiza con un cliente de FTP. Sugerencia Este captulo pretende brindarle la informacin necesaria para la configuracin de Samba, sin embargo recomendamos leer ampliamente la documentacin oficial.
Compartir archivo, directorios e impresoras a clientes Linux, UNIX y Windows . Asistir en la navegacin de la red a travs de NETBIOS. Autenticar usuarios a dominios Windows. Proporcionar resolucin de nombres de Windows Internet Name Service (WINS) Funcionar como un Controlador de Dominio Primario. Funcionar un BDC para un PDC basado en Samba. Actuar como un miembro del directorio activo de Microsoft. Une un Windows NT/2000/2003 PDC.
Funcionar como un BDC para un Windows PDC . Funcionar como un controlador de Directorio Activo.
en los registros, los usuarios no se preocuparn por recordar varias contraseas, por lo que es importante disear un modelo adecuado a las necesidades de cada organizacin. Entre algunas opciones que disponemos para administrar nombres de usuarios y contraseas estn las siguientes: Mdulos PAM (Mdulos de autenticacin enchufables) de GNU/Linux. Esta opcin permite la autenticacin de usuarios en un PDC. Su desventaja es que aun habr que mantener una lista de usuarios locales y una en el PDC, pero los usuarios slo tendrn que preocuparse de las contraseas del PDC. Samba como un PDC (Controlador de dominio primario). Esta opcin permite mantener los usuarios y sus contraseas de forma local y que las mquinas se autentiquen en Samba utilizando alguno de los motores de contraseas (smbpasswd, tdbsam, ldapsam, etc.).
Si deseamos que estos servicios se inicien junto con el sistema tecleamos. root [ ~ ]# chkconfig --add avahidaemon root [ ~ ]# chkconfig --add samba
Corroboramos que los servicios que deseamos se iniciarn con el sistema root [ ~ ]# chkconfig --list
Procedemos a iniciar los servicios samba ejecutando: root [ ~ ]# /etc/init.d/xinetd start root [ ~ ]# /etc/init.d/avahidaemon start root [ ~ ]# /etc/init.d/samba start
Este parmetro habilitado cargar en automtico las impresoras que el sistema samba encuentre conectadas. Podemos seleccionar el sistema de impresin que deseamos utilizar, generalmente no es necesario editar este parmetro, toma como opcin predeterminada el sistema CUPS. printing = cups Finalmente debemos compartir las impresoras creando el siguiente recurso, por defecto en Beakos GNU/Linux ya viene configurado. [printers] comment = Impresoras compartidas path = /usr/spool/samba browseable = no guest ok = no writable = no printable = yes El parmetro [printers] se refiere al nombre que le asignamos al recurso. comment define una descripcin para las impresoras compartidas. path indica el directorio de donde se tomarn las impresoras.
browseable permite explorar con un administrador de archivos los recursos, por defecto est negado, no se trata de un archivo. guest ok indica si un usuario invitado puede acceder al recurso. writable indica si el usuario tiene permisos de escritura, configurado con valor negativo. printable indica si se trata de una impresora. Una vez configurado es necesario reiniciar el servidor Samba root [ ~ ]# /etc/init.d/samba restart Deteniendo smbd... Deteniendo nmbd... Iniciando nmbd... Iniciando smbd...
[ [ [ [
OK OK OK OK
] ] ] ]
browseable
writable available
Permite a los recursos permanecer visibles para ser explorados o mantenerse ocultos para mayor seguridad. Ejemplo: browseable = yes Establece permisos de escritura al recurso. Ejemplo: writable = no Permite habilitar y deshabilitar un recurso, segn su valor. Ejemplo: available = no
Creacin de un recurso compartido Llevaremos a cabo la creacin de un recurso compartido dentro del directorio /opt, llamado compartido , donde puedan accesar los usuarios pertenecientes al grupo beakos con permisos de lectura y escritura. Crearemos el directorio: root [ ~ ]# mkdir /opt/compartido Creamos de los usuarios angel y antonio, con su grupo primario llamado beakos: root [ ~ ]# groupadd beakos root [ ~ ]# useradd -g beakos -c "Antonio Moreno" antonio root [ ~ ]# useradd -g beakos -c "Angel Ruiz" angel Creamos las contraseas de los usuarios de samba: root [ ~ ]# smbpasswd -a antonio New SMB password: Retype new SMB password: Added user antonio. root [ ~ ]# smbpasswd -a angel New SMB password: Retype new SMB password: Added user angel.
Asignamos el directorio al grupo beakos y los permisos correspondientes de lectura y escritura para el grupo: root [ ~ ]# chgrp beakos /opt/compartido root [ ~ ]# chmod 760 /opt/compartido
Ahora que hemos creado el recurso y los usuarios, debemos de editar el archivo de configuracin de samba con el editor vi, agregaremos al final las siguientes lneas [practica] comment = recurso de practica path = /opt/compartido browseable = yes write list = @beakos read only = no security = user Tecleamos el comando testparm para corroborar fallas en la configuracin: root [ ~ ]# testparm Si todo est correcto procedemos a reiniciar el servicio de samba: root [ ~ ]# /etc/init.d/samba restart Deteniendo smbd... Deteniendo nmbd... Iniciando nmbd... Iniciando smbd...
[ [ [ [
OK OK OK OK
] ] ] ]
Validamos en un cliente Windows a travs del explorador de archivos escribiendo la siguiente URL: \\servidor_samba\practica Donde servidor_samba corresponde al servidor al cual nos queremos conectar, podemos utilizar cualquiera de los dos usuarios que creamos anteriormente, con ambos debemos poder escribir en el directorio.
add machine script = /usr/sbin/useradd -s /bin/false -d /dev/null -g machines %u logon drive = H: domain logons = Yes os level = 35 preferred master = Yes domain master = Yes [homes] comment = Home Directories valid users = %S read only = No [netlogon] comment = Network Logon Service path = /var/lib/samba/netlogon/scripts browseable = No read only = No [Profiles] comment = Roaming Profile Share path = /var/lib/samba/profiles read only = No browseable = No guest ok = Yes profile acls = Yes Debemos copiar la configuracin anterior al archivo de /etc/samba/smb.conf, tambin debemos crear el grupo machines. root [ ~ ]# groupadd machines Reiniciamos el servicio: root [ ~ ]# /etc/init.d/samba restart Deteniendo smbd... Deteniendo nmbd... Iniciando nmbd... Iniciando smbd... configuracin
[ [ [ [
OK OK OK OK
] ] ] ]
Creamos los usuarios que se autenticarn a nuestro servidor desde un cliente Windows: root [ ~ ]# useradd francisco root [ ~ ]# smbpasswd -a francisco New SMB password: Retype new SMB password: Added user francisco. Por ltimo autenticamos los clientes Windows para que pertenezcan al dominio que hemos creado en este servidor, utilizamos la cuenta de superusuario para realizar esta tarea.
1. Debemos modificar el archivo /etc/sysconfig/network, con el propsito de que pertenezca al dominio de Windows, lo editamos de la siguiente forma: HOSTNAME=nombre_host.nombre_dominio Ejemplo: HOSTNAME=beakos.dcinfotec.local Hacemos lo mismo en el archivo /etc/hosts Ejemplo: 127.0.0.1 localhost beakos beakos.dcinfotec.local
2. Editamos el archivos /etc/samba/smb.conf para que quede de la siguiente forma: [global] unix charset = LOCALE realm = dcinfotec.local workgroup = dcinfotec security = ADS password server = 192.168.105.50 winbind separator = + log level = 1
syslog = 1 log file = /var/log/samba/%m winbind uid=10000-20000 winbind gid=10000-20000 winbind enum users=yes winbind enum groups=yes template homedir=/tmp template shell=/sbin/nologin
Analicemos detalladamente cada una de las opciones. unix charset = LOCALE Esta directiva utilizar la codificacin de caracteres local configurada en Beakos GNU/Linux. Por defecto es el estndar POSIX. realm = dcinfotec.local Indica el dominio al cual el servidor Samba estar uniendo. workgroup = dcinfotec Indica el grupo de trabajo de Windows al cual nos estaremos integrando. password server = 192.68.105.50 Indica el servidor que contiene la informacin de la autenticacin, por lo regular es el mismo que contiene el Directorio Activo. security = ADS El nivel de seguridad ADS permitir unirnos a un Directorio Activo mediante Kerberos. winbind separator = + Indica el separador a utilizar en las cuentas y grupos de usuarios. Ejemplo: DCINFOTEC+angel.ruiz log level = 1 Indica el nivel de detalle del registro en la bitcora de actividades. syslog = 1 El valor 1 indica que est activado en envi de registros al sistema de logs del Kernel. winbind uid=10000-20000
Indica al demonio winbind que los UID de los usuarios del directorio activo estarn dentro de este rango. winbind gid=10000-20000 Indica al demonio winbind que los GID de los grupos del directorio activo estarn dentro de este rango. winbind enum users=yes winbind enum groups=yes template homedir=/tmp Le indica al demonio winbind que el directorio inicial para los usuarios del directorio activo ser /tmp. template shell=/sbin/nologin Le indica al demonio winbind que el intrprete de comandos para los usuarios del directorio activo ser /sbin/nologin. Es recomendable no darles acceso a la consola a estos usuarios.
3. Editamos el archivo /etc/nsswitch.conf que es que se encarga de regular el orden en que se buscan los usuarios y las contraseas en el sistema. Dejndolo de la siguiente forma: # Begin /etc/nsswitch.conf passwd: files winbind group: files winbind shadow: files winbind hosts: files dns networks: files protocols: files services: files ethers: files rpc: files # End /etc/nsswitch.conf Lo anterior har posible que despus de obtener los usuarios locales del archivo /etc/passwd haga una bsqueda de usuarios en el directorio activo.
4. Editamos el archivo de configuracin de Kerberos dejndolo de la siguiente forma: # Begin etc/krb5/krb5.conf [libdefaults] default_realm = DCINFOTEC.LOCAL encrypt = true [realms] DCINFOTEC.LOCAL = { kdc = 192.168.105.50 admin_server = 192.168.105.50 dict_file = /usr/share/dict/words } [domain_realm] .dcinfotec.local = DCINFOTEC.LOCAL [logging] kdc = SYSLOG[:INFO[:AUTH]] admin_server = SYSLOG[INFO[:AUTH]] default = SYSLOG[[:SYS]] # End /etc/krb5/krb5.conf 6. Generamos el ticket de Kerberos root [ ~ ]# kdb5_util create -s 7. Una vez realizados los pasos anteriores reiniciamos el servidor samba e iniciamos el servidor winbind. root [ ~ ]# /etc/init.d/samba restart
8. Ahora el sistema se encuentra listo para poder integrarse al directorio activo, tecleamos el siguiente comando: root [ /etc ]# net ads join -U usuario%contrasea
Donde el usuario es el administrador autorizado para agregar equipos al directorio activo. Procedemos a iniciar el demonio winbind root [ ~ ]# /etc/init.d/winbind start root [ ~ ]# chkconfig add winbind
9. Podemos corroborar que ya podemos hacer uso de los usuarios y grupos del directorio activo tecleando: root [ ~ ]# wbinfo -u 10. Comprobamos la validacin de usuarios y grupo funciona bien a travs de NSS, teclea: root [ ~ ]# getent passwd 11. Supongamos que existe un grupo llamado samba dentro del directorio activo llamado DCINFOTEC, al cual pertenecen los usuarios miguel.cuapio y francisco.sosa, y deseamos compartir el directorio /opt/directorio1, en el cual ambos usuarios tengan permiso de lectura y escritura. Realizaramos los siguientes pasos: Creamos el directorio: root [ ~ ]# mkdir /opt/directorio1 Asignamos el recurso al grupo Samba y le damos permisos de lectura y escritura: root [ ~ ]# chmod 770 /opt/directorio1 root [ ~ ]# chgrp DCINFOTEC+samba /opt/directorio1 Por ltimo editamos el archivo /etc/samba/smb.conf , y agregamos el recurso al final. [compartido] comment = directorio de prueba path = /opt/directorio1 guest ok = no write list = @DCINFOTEC+SAMBA-rw browseable = yes writable = yes create mask = 0775 directory mask = 0775 Reconfiguramos samba: root [ ~ ]# /etc/init.d/samba reload Recargando smbd... Recargando nmbd...
[ [
OK OK
] ]
Ahora podemos acceder con los usuarios que pertenecen al grupo samba con privilegios de lectura y escritura.
Si ha decidido modificar el archivo, es necesario reiniciar Xinetd para que los cambios surtan efecto. root [ ~ ]# /etc/init.d/xinetd restart Deteniendo xinetd... Iniciando xinetd...
[ [
OK OK
] ]
Puede conectarse a la interfaz Web de SWAT utilizando el navegador Web del sistema de Beakos, (necesitar haber instalado la interfaz grfica, vea gestin de paquetes). Teclee la siguiente URL en el navegador web: http://127.0.0.1:904
Al ingresar esta URL se le pedir nombre usuario y contrasea, escriba root como nombre de usuario y su respectiva contrasea, una vez registrado se mostrar una interfaz web como esta:
En la pgina superior encontrar las siguientes opciones: Tabla 16-1. Mens de la herramienta Samba SWAT Descripcin La pgina del men principal, en ella se encuentran ligas hacia la documentacin de Samba, ests ligas apuntan a enlaces dentro del servidor, por lo que no deber preocuparse por la conexin a Internet, podemos obtener informacin de los demonios de Samba, los archivos de configuracin, herramientas del lado del cliente, herramientas administrativas, de consulta, etc. Incluye opciones de configuracin globales para el servidor Samba, por ejemplo la configuracin del grupo de trabajo, del dominio, de winbind, de usuarios y contraseas entre otros. A la izquierda de cada valor existe un vnculo hacia la documentacin relevante de cada parmetro, vale la pena revisarlo, le proporcionar conocimientos valiosos y prcticos. En Windows compartir un directorio resulta sumamente sencillo, basta con realizar unos cuantos clicks, este trabajo se logra en samba usando este men. Este men permite administrar impresoras disponibles con CUPS, compartidas con samba, podemos editar, agregar, borrar, etc. Opcin disponible en otras versiones de Samba, su funcin es configurar un servidor Samba paso a paso a travs de mens intuitivos. Muy til para administrar los demonios de Samba, permite detener, iniciar y reiniciar. Adems muestra las conexiones activas al servidor, los directorios compartidos y los ficheros abiertos. Nos genera una vista del archivo de configuracin de Samba, conforme vaya realizando modificaciones observar como va cambiando. Podemos administrar usuarios y contraseas a travs de este men, sin accesar a la consola.
Men Home
Globals
Shares
View Password
Por ejemplo si deseamos ver los recursos compartidos de un servidor samba escribimos: root [ ~ ]# smbclient -L 192.168.4.226
Quiz nos pida contrasea, simplemente tecleamos ENTER, para evitar esto podemos acceder como usuario annimo utilizando U%, de la siguiente forma: root [ ~ ]# smbclient U% -L 192.168.4.226 Anonymous login successful Domain=[BEAKOS.COM.MX] OS=[Unix] Server=[Samba 3.5.4] Sharename Type Comment -----------------compartido Disk directorio compartido IPC$ IPC IPC Service (Samba Server) Anonymous login successful Domain=[BEAKOS.COM.MX] OS=[Unix] Server=[Samba 3.5.4] Server --------BEAKOS Comment ------Samba Server
Ponga especial atencin en que existe un recurso llamado compartido. Al cual vamos a acceder con el usuario del sistema angel.
Supongamos que el servidor 192.168.4.226 tiene configurado el recurso compartido, y deseamos acceder a l con el usuario angel. root [ ~ ]# smbclient -U angel //192.168.4.226/compartido Enter angel's password: Domain=[BEAKOS.COM.MX] OS=[Unix] Server=[Samba 3.5.4] smb: \>
Podemos emplear los siguientes comandos para administrar nuestros archivos: cd Cambiar de directorios ls Mostrar el contenido de los directorios get Obtener ficheros del servidor. put Colocar ficheros en el servidor. mget Obtener mltiples ficheros en el servidor. mput Colocar mltiples ficheros en el servidor. help Muestra la ayuda disponible.
Ahora debemos ejecutar el siguiente comando para que monte las entradas de archivos /etc/fstab root [ ~ ]# mount -a Escribimos el siguiente comando para corroborar que el sistema de archivos de Samba se encuentra montado. root [ ~ ]# mount //192.168.4.226/compartido on /mnt/samba type cifs (rw,user=angel,pass=*****)
Captulo 17 LDAP
LDAP (Lightweight Directory Access Protocol, Protocolo Ligero de Acceso a Directorios), es un servicio a nivel de aplicacin que incluye un conjunto de protocolos utilizados para acceder y modificar informacin centralizada en una red de computadoras. LDAP est diseado para acceso a directorios basado en el modelo X.500, al igual que una base de datos convencional se le pude realizar consultas para obtener informacin almacenada en el servidor. LDAP es un servicio muy escalable y relativamente fcil de configurar, pero para eso daremos una breve introduccin sobre los conceptos principales que rigen su arquitectura.
dc = beakos, dc = com
ou = Diseno
ou = Desarrollo
ou = Pruebas
uid = carlos
uid = jesus
uid = antonio
Enlistamos algunos de los usos que se le pueden dar a LDAP: LDAP puede servir como una completa solucin para Administrar la identidad de los usuarios dentro de una organizacin. NIS puede ser reemplazado por completo con LDAP para administrar los servicios de autenticacin. Los servidores DNS puede almacenar su informacin en un servidor LDAP. LDAP puede hacer la funcin de un directorio que ofrezca informacin de contacto de los usuarios dentro de una organizacin (no. de telfono, direccin, correo electrnico, etc.). Un servidor LDAP puede proporcionar a un servidor de archivos en Samba un base de objetos de grandes dimensiones para que Samba pueda operar como un servidor de dominio. Los servidores de correo electrnico pueden almacenar la informacin de las cuentas en servidores LDAP.
Concluida la instalacin del servidor LDAP podemos proceder con la configuracin de nuestro servidor.
Sugerencia Antes de llevar a cabo la configuracin de un servidor OpenLDAP, es necesario que tenga usted bien definido la estructura de su directorio (unidades organizacionales, usuarios, etc.).
dc=beakos,dc=com cn=admin
Analicemos las configuracin del servidor, hemos eliminado las lneas que no sern necesario modificar, en una configuracin bsica. 1 # 2 # See slapd.conf(5) for details on configuration options. 3 # This file should NOT be world readable. 4 # 5 include /etc/openldap/schema/core.schema 6 7 # Define global ACLs to disable default read access. 8 9 # Do not enable referrals until AFTER you have a working 10 # directory 11 # service AND an understanding of referrals. 12 #referral ldap://root.openldap.org 13 14 pidfile /srv/ldap/run/slapd.pid 15 argsfile /srv/ldap/run/slapd.args 16 17 ############################################################ 18 # BDB database definitions 19 ############################################################ 20 database bdb 21 suffix "dc=beakos,dc=com" 22 rootdn "cn=admin,dc=beakos,dc=com" 23 # Cleartext passwords, especially for the rootdn, should 24 # be avoid. See slappasswd(8) and slapd.conf(5) for details. 25 # Use of strong authentication encouraged. 26 rootpw secret 27 # The database directory MUST exist prior to running slapd 28 # should only be accessible by the slapd and slap tools. 29 # Mode 700 recommended. 30 directory /srv/ldap/openldap-data
Las primeras 4 lneas son comentarios. La lnea 5 corresponde al schema por default, podemos agregar ms esquemas del directorio /etc/openldap/schemas, segn nuestras necesidades y la funcin que nuestro sistema LDAP vaya a desempear, para una configuracin bsica, por lo menos el esquema core.schema, debe estar configurado. La lnea 14 indica la ruta donde estar almacenado el archivo indicador de proceso (pidfile).
La lnea 15 declara la directriz argsfile, indica la ruta del archivo que puede utilizarse para configurar opciones adicionales para el inicio del demonio slapd. La lnea 20 indica la base de datos que se utilizar para almacenar los datos relacionados con LDAP, por defecto se utiliza la base de datos de segundo plano de Berkeley (db), pero se puede hacer uso de algunas otras como SQL (se recomienda dejar esta opcin). La lnea 21 indica el sufijo DN de las consultas que se realizarn en el servidor OpenLDAP. Define el dominio de nuestro servidor Open LDAP, para esta prctica nosotros emplearemos el dominio beakos.com. La lnea 22 especifica el nombre diferenciado (dn) del usuario que administrar nuestro servidor OpenLDAP. La lnea 26 equivale a la contrasea de nuestro usuario administrador, debemos cambiar la palabra secret por la cadena de caracteres que nos arroje la utilidad slappasswd. Sobra decir que debemos utilizar una buena contrasea. Ejemplo: root [ ~ ]# slappasswd New password: Re-enter new password: {SSHA}UzK7y7seNn7zDRyq0s8/mlqxz1H3cjT6 Por ltimo, la lnea 30 indica la ruta del directorio donde se almacenarn los archivos de la base datos y archivos relacionados.
OK
OK
Si deseamos que el servicio se inicie cuando arranque el sistema, tecleamos: root [ ~ ]# chkconfig openldap on Verificamos en que niveles se iniciar tecleando: root [ ~ ]# chkconfig --list | grep openldap openldap 0:off 1:off 2:on 3:on 4:on
5:on
6:off
dn: dc=beakos,dc=com objectclass: dcObject objectclass: organization o: Proyecto Beakos dc: beakos dn: cn=angel,dc=beakos,dc=com objectclass: organizationalRole cn: angel dn: cn=francisco, dc=beakos,dc=com objectclass: organizationalRole cn: francisco Terminado el archivo de ser editado utilizamos el comando ldapadd, para importar el archivo LDIF a nuestro directorio, tecleamos: root[ ~ ]# ldapadd -x -D "cn=admin,dc=beakos,dc=com" -W f \ prueba.ldif Enter LDAP Password: adding new entry "dc=beakos,dc=com" adding new entry "cn=angel,dc=beakos,dc=com" adding new entry "cn=francisco, dc=beakos,dc=com" Utilizamos los siguientes parmetros: x Indica que se debe utilizar la autenticacin de LDAP en vez de SASL. D Se utiliza para especificar el nombre diferenciado que se va a utilizar. W Permite utilizar la autenticacin simple, en lugar de teclear la contrasea en la lnea de comandos. f Especifica el archivo que se utilizar para la importacin de los datos.
objectClass: organization o: Proyecto Beakos dc: beakos Salida truncada # search result search: 2 result: 0 Success # numResponses: 4 # numEntries: 3
Realizaremos nuestra consulta ahora buscando el objeto cuyo nombre sea angel. Tecleamos: root [ ~ ]# ldapsearch -x -b "dc=beakos,dc=com" "cn=angel" # extended LDIF Salida truncada # angel, beakos.com dn: cn=angel,dc=beakos,dc=com objectClass: organizationalRole cn: angel Salida truncada .
Ahora bien utilizaremos la herramienta ldapdelete eliminar el objeto cuyo cn es igual a francisco. root [ ~ ]# ldapdelete -x -W -D "cn=admin,dc=beakos,dc=com" \ "cn=francisco,dc=beakos,dc=com" Enter LDAP Password:
Una vez que hemos agregado estas lneas podemos proceder a reiniciar el servidor. root [ ~ ]# /etc/init.d/openldap restart Deteniendo servidor LDAP... Iniciando servidor LDAP...
[ [
OK OK
] ]
Una vez instalados nos cambiamos al directorio de publicacin de apache: root [ ~ ]# cd /srv/www/htdocs/ Descargamos phpldapadmin de su sitio oficial, ya que lo hemos descargado descomprimimos el paquete, tecleamos: root [ /srv/www/htdocs ]# tar -xf phpldapadmin-1.2.0.5.tgz A este directorio le podemos crear un enlace simblico para recordar ms fcil su acceso. root [ /srv/www/htdocs ]# ln -sf phpldapadmin-1.2.0.5 \ phpldapadmin
Posterior a esto procedemos a instalar el archivo de configuracin de phpldapadmin, llamado config.php, copiamos el archivo config.php.example con el nombre config.php: root [ /srv/www/htdocs ]# cd phpldapadmin/config/ root [ /srv/www/htdocs/phpldapadmin/config ]# cp \ config.php.example config.php Procedemos a iniciar nuestro servidor apache. root [ ~ ]# /etc/init.d/apache start Ahora podemos acceder a la interfaz web con la siguiente URL. http://192.168.0.133/phpldapadmin/htdocs/index.php Nos deber mostrar la siguiente ventana:
Figura 17-2. Interfaz web de PLA Damos un click en conectar, la interfaz nos solicitar el nombre de usuario y contrasea, proporcionamos el nombre diferenciado de nuestro servidor que corresponde a cn=admin,dc=beakos,dc=com y la respectiva contrasea.
Figura 17-3. Autenticacin al servidor OpenLDAP a travs de PLA Una vez autenticados en el servidor podemos observar que existe nuestro dominio raz (dc=beakos, dc=com).
Figura 17-5 Creacin de objetos en PLA Verificamos los datos y damos un click en el botn cometer.
Thunderbird nos mostrar un formulario donde colocaremos los datos de nuestro servidor LDAP con el objetivo de establecer conexin. Donde Nombre corresponde al nombre de la libreta de direcciones, Servidor corresponde a la direccin IP o nombre de Host del servidor LDAP, DN base corresponde a dominio de LDAP donde estableceremos la conexin, Nmero de puerto corresponde a 389 de TCP, a menos que le hayamos configurado otro valor a nuestro servidor dejaremos este parmetro como est, por ltimo especificamos el DN para inicio de sesin , este valor corresponde en nuestro caso a cn=admin,dc=beakos,dc=com.
Figura 17-9. Configuracin de parmetros del servidor LDAP Seleccionamos el botn aceptar y slo resta realizar las pruebas pertinentes. En el cuadro de bsqueda, tecleamos un carcter y nos debe mostrar las direcciones que coincidan con ese patrn de bsqueda.
Captulo 18 DHCP
DHCP (Dinamic Host Control Protocol), es un servicio que permite a los nodos de una red obtener su configuracin de manera automtica. En una organizacin donde residen cientos o tal vez miles de nodos resultara un ardua labor asignar la configuracin del la red de los hosts de forma manual. La asignacin dinmica de direcciones IP es muy til para equipos mviles o que residirn en nuestra red de manera temporal. Las personas que se desplazan en diferentes oficinas pueden obtener una configuracin de red de acuerdo a sus necesidades. En este captulo mostraremos la mecnica del funcionamiento del servidor DHCP, ensearemos los pasos de la instalacin en Beakos GNU/Linux y realizaremos la configuracin de un servidor DHCP.
root [ ~ ]# swaret --install dhcp-3.0.6-i386-1 Completado el comando anterior, debe ya tener instalado el servidor DHCP listo para funcionar.
OK
Para detener el servicio de DHCP tecleamos: root [ ~ ]# /etc/init.d/dhcp stop Deteniendo servidor DHCP...
OK
Verificar el estado del servicio de DHCP, escribimos en la consola: root [ ~ ]# /etc/init.d/dhcp status dhcpd is running with Process ID(s) 3226. Configurar el servidor para que inicie a la par del sistema, tecleamos: root [ ~ ]# chkconfig add dhcp
18.3.1 Declaraciones
Quiz se requiera agrupar a los clientes, para realizar esta labor podemos hacer uso de las siguientes declaraciones: group Esta declaracin nos permite aplicar una serie de parmetros y declaraciones a una lista de clientes, redes o subredes. Su sintaxis es la siguiente: group etiqueta [parmetros] [subdeclaraciones] Donde etiqueta es el nombre definido al grupo. host Esta declaracin se usa para aplicar un conjunto de parmetros y declaraciones a un anfitrin en particular. Su sintaxis es la siguiente: host etiqueta [parmetros] [subdeclaraciones]
shared network Esta declaracin agrupa un conjunto de direcciones dentro de una red fsica. Su sintaxis corresponde a: shared-network etiqueta [parmetros] [subdeclaraciones]
subnet Esta declaracin se utiliza para aplicar una serie de parmetros a un conjunto de direcciones IP que coincidan con la descripcin de esta declaracin. Su sintaxis es la siguiente: subnet numero_subred netmask mscara_de_red [parmetros] [subdeclaraciones]
El nmero_subred es la red a la que pertenecern los anfitriones conectados a la red fsica. Netmask es justamente eso, la mscara de sub red.
range Especifica el rango de direcciones que estarn disponibles para la asignacin a los clientes. La sintaxis es como sigue:
18.3.2 Parmetros
El uso de los parmetros permite afectar el comportamiento del servidor para un determinado nmero de clientes. Los parmetros de uso ms frecuente son: authoritative Este parmetro sirve para evitar que los hosts que han recibido una direccin de otro servidor DHCP, reciban mensajes DHCPNAK de un servidor no autntico, esto es especialmente til para un servidor DHCP que ha sido instalado de forma accidental y pueda causar conflictos a un servidor DHCP autntico. La sintaxis de este parmetro corresponde a: authoritative; not authoritative;
default-lease-time Este parmetro nos permite fijar el periodo de tiempo que una direccin IP estar asignada a un host, si terminado ese periodo el host no se encuentra conectado en la red el servidor DHCP liberar esta direccin para poder asignarla a otro equipo. Su sintaxis corresponde a: default-lease-time periodo en segundos;
fixed address Este parmetro slo aparece en la declaracin del host. Indica las direcciones que ese host puede utilizar. Su sintaxis es la siguiente: fixed-address direccin, direccion2;
hardware A fin de que un cliente de BOOTP sea reconocido, la direccin MAC debe ser declarada en la declaracin host. Su sintaxis es: hardware tipo_hardware direccinMAC; Donde tipo_hardware corresponde al tipo de interfaz de red del hardware ethernet y token-ring son los nicos soportados.
max-lease-time Un cliente tiene la opcin de especificar los segundos que requerir la direccin IP en prstamo. Esta direccin IP le ser asignada mientras no exceda el nmero de segundos declarados en este parmetro, de lo contrario se le asignar con un mximo de segundos especificado aqu. Su sintaxis es:
max-lease-time segundos; server-name Este parmetro se utiliza para informar al cliente el servidor desde el cual est iniciando. Esta instruccin resulta til para aquellos clientes remotos. Su sintaxis es: server-name nombre del servidor;
18.3.3 Opciones
DHCP ofrece soporte para ms de 60 opciones, la sintaxis para ellas es la siguiente: option nombreDelaOpcin [modificadores] En la siguiente tabla describimos las opciones ms utilizadas. Tabla 18-1 Opciones para DHCP Descripcin La direccin en la subred que ser especificada como broadcast. Nombre de dominio que los clientes deben utilizar en bsquedas locales de otros hosts. Servidores de nombres de dominio que los clientes utilizarn. Cadena de texto utilizada para identificar al cliente. Nombre de dominio de NIS para el cliente. Servidores NIS disponibles para los clientes. Una lista de ruteadores que el cliente debe utilizar, preferentemente declarar en orden. Mscara de red para la subred. Declara una lista de servidores de tiempo para nuestra clientes.
Opcin broadcast-address domain-name domain-name-servers host-name nis-domain nis-servers routers subnet-mask ntp-servers
option domain-name-servers 192.168.105.50; option ntp-servers 200.23.51.205, 132.248.81.29, 148.234.7.30; range 192.168.4.220 192.168.4.226; } } En este ejemplo podemos observar que hemos definido una sola subred (192.168.4.0), se ha establecido para nuestros clientes como puerta de enlace la direccin 192.168.4.254, como servidores DNS la direccin 192.168.105.50, como servidores de tiempo para nuestros clientes est definidos los hosts 200.23.51.205, 132.248.81.29, tambin se defini el rango de direcciones IP que se pueden asignar a los clientes entre las direcciones IP 192.168.4.220 y 192.168.4.226.
19.1 Amanda
Amanda es el software Open Source lder mundial en soluciones de respaldo y recuperacin. En la actualidad protege ms de un milln de servidores y equipos de escritorio ejecutando distintas versiones de Sistemas Operativos Linux, UNIX, BSD, Mac OS-X y Microsoft Windows. Amanda es una solucin estable debido a su cdigo de alta calidad Como Amanda no utiliza drivers propietarios de dispositivos, cualquier dispositivo soportado por el sistema operativo ser funcional con Amanda. El administrador del sistema no tiene que preocuparse de romper el soporte para un dispositivo al actualizar Amanda. Amanda simplifica la vida de los administradores de sistemas quienes pueden fcilmente poner un servidor de respaldos para mltiples clientes y respaldar directamente en cinta o en un sistema basado en algn tipo de almacenamiento.
disable }
= no
/etc/xinetd.d/amidxtape #default: on # description: The amanda service amidxtape { socket_type = protocol = wait = user = group = groups = server = server_args = amidxtaped disable = } tape service stream tcp no backup backup yes /usr/libexec/amidxtaped -auth=bsdtcp amdump amindexd no
root [ ~ ]# mkdir p /etc/amanda/ejemplo root [ ~ ]# mkdir p /var/amanda/ejemplo Con los permisos de propietario y grupo backup ejecutamos el siguiente comando: root [ ~ ]# chown backup:backup /etc/amanda/ejemplo Crear la configuracin amanda.conf mnima para el uso de amanda server. Creamos el archivo
Con el siguiente contenido: #Configuracion Amanda org "Infotec.com.mx" reports mailto "backup" your site dumpuser "backup" logdir infofile filename indexdir tapelist tapes # your organization name for # space separated list of operators at # the user to run dumps under # log directory # database # index directory # list of used
#dumpcycle 1 days tapecycle 1 tapes tapetype DISK tpchanger "chg-disk" changerfile "/etc/amanda/ejemplo/changer" # needed by amlabel tapedev "file:/backup/vtapes/ejemplo/slots" define tapetype DISK { comment "Backup to HD" length 30 gbytes } # comment holding disk section if needed #holdingdisk hd1 { # directory "/dumps/" #} # to be used by any other dumptype define dumptype global { comment "Global definitions" index yes record yes auth "bsdtcp" } define dumptype daily { global comment "daily dumptype" compress client fast program "GNUTAR" strategy standard priority high exclude list "/etc/amanda/ejemplo/global-debian-exclude.list" }
La configuracin amanda.conf muestra cmo vamos hacer un backup manual de nuestro cliente con una sola cinta de 5 GigaBytes. Que ser remplazada cada vez que se realice el backup. En la pgina de wiki.zmanda.com encontraras ms informacin acerca de amanda.conf Ahora comenzaremos por crear la base de datos de nuestro respaldo para la configuracin ejemplo que fue especificada dentro de amanda.conf: root [ ~ ]# su backup -c "mkdir /etc/amanda/ejemplo/logs" root [ ~ ]# su backup -c "mkdir /etc/amanda/ejemplo/index" root [ ~ ]# touch /etc/amanda/ejemplo/tapelist root [ ~ ]# su backup -c "mkdir /etc/amanda/ejemplo/curinfo"
Cambiamos el dueo del directorio /backup al usuario backup: root [ ~ ]# chown backup:backup -R /backup/
Cambiamos los permisos al directorio /backup/vtapes por 750: root [ ~ ]# chmod 750 /backup/vtapes
backup [ ~ ]$ cd /backup/vtapes/ejemplo/slots/ Creando directorio de cinta virtual: backup [ /backup/vtapes/ejemplo/slots ]$ mkdir slot1 Inicializando el cargador de la cinta creando el siguiente enlace simblico: backup [ /backup/vtapes/ejemplo/slots ]$ ln -sf slot1 data
Probamos las cintas virtuales ejecutando los commandos siguientes con el usuario backup: backup [ /backup/vtapes/ejemplo/slots ]$ /usr/sbin/ammt -f \ file:/backup/vtapes/ejemplo/slots status file:/backup/vtapes/ejemplo/slots status: ONLINE backup [ /backup/vtapes/ejemplo/slots ]$ /usr/sbin/amlabel \ ejemplo slot1 Reiniciar la cinta virtual para que regrese al primer slot, esto debe hacerse con el usuario backup. backup [ /backup/vtapes/ejemplo/slots ]$ /usr/sbin/amtape ejemplo reset amtape: changer is reset, slot 1 is loaded. backup [ /backup/vtapes/ejemplo/slots ]$ lrwxrwxrwx 1 backup backup 35 jun /space/vtapes/ejemplo/slots/slot1 ls -l data
Con el siguiente contenido: server1 root amindexd amidxtaped server1 backup amdump client1 root amindexd amidxtaped En la lnea: server1 backup amdump permite al usuario backup de server1 correr respaldos en el mismo server1. En la lnea: client1 root amindexd amidxtapd le estamos otorgando permiso al cliente para que lleva acabo la restauracin de informacin. Para una mayor informacin sobre accesos puedes consultar la informacin referente en wiki.zmanda.com Debemos de darle solo privilegios de lectura al archivo /etc/amandahosts y este debe pertenecer al usuario y grupo backup. Revisar que exista el enlace simblico que creamos en la directorio inicial del root [ ~ ]# chmod 400 /etc/amandahosts root [ ~ ]# chown backup:backup /etc/amandahosts root [ ~ ]# ls -l /etc/amandahosts -r-------- 1 backup backup 157 mai 27 02:12 /etc/amandahosts root [ ~ ]# ls -l /home/backup/.amandahosts lrwxrwxrwx 1 root root 16 mai 17 00:41 /home/backup/.amandahosts -> /etc/amandahosts
root [ ~ ]# groupadd backup root [ ~ ]# useradd backup g backup root [ ~ ]# swaret install amanda-client
= = = = = = = =
= no
auth "bsdtcp"
Autorizaciones en amandahosts Editamos el archivo amandahosts para permitir respaldos de zserver # vi /etc/amandahosts zserver backup amdump #el hostname del servidor de respaldo para dar acceso
Ms informacin en wiki.zamanda.com Creamos un enlace simblico #ln s /etc/amandahosts /home/backup/.amandahosts # ls -la /home/backup/.amandahosts lrwxrwxrwx 1 root root 23 mai 25 11:19 /home/backup/.amandahosts -> /etc/amanda/amandahosts #chmod 400 /etc/amandahosts Creamos el archivo amandates #vim /etc/amandates Y guardamos Creamos gnutar-lists #mkdir /etc/amanda/gnutar-lists Asignamos permisos #chown backup:backup /etc/amanda/gnutar-lists Lista de exclusin Es una lista para que el usuario backup salte el respaldo en dichos directorios Ms informacin wiki.amanda.com $ vi /etc/amanda/ejemplo/global-debian-exclude.list ./proc ./media ./mnt ./dev chmod 644 /var/amanda/ejemplo/global-debian-exclude.list
Prueba de configuracin Accede con usuario backup e introducir la siguiente lnea en el servidor de respaldo $ /usr/sbin/amcheck ejemplo Amanda Tape Server Host Check ----------------------------Holding disk /dumps/: 48800396 kB disk space available, using 48800396 kB slot 2: read label `ejemplo, date `20100607' cannot overwrite active tape DailySet1-02 slot 3: read label `ejemplo, date `X' NOTE: skipping tape-writable test Tape DailySet1-03 label ok NOTE: host info dir /etc/amanda/ejemplo/curinfo/zclient does not exist NOTE: it will be created on the next run. NOTE: index dir /etc/amanda/ejemplo/index/zclient does not exist NOTE: it will be created on the next run. Server check took 0.115 seconds Amanda Backup Client Hosts Check -------------------------------Client check: 1 host checked in 0.132 seconds, 0 problems found (brought to you by Amanda 2.5.2p1) Prueba de respaldo Accede como usuario backup en el servidor de respaldo seguido del siguiente comando $ amdump ejemplo Para ver informacion acerca del respaldo echo teclea los siguientes comandos $amadmin ejemplo find $amstatus ejemplo Ms informacin en wiki.zamada.com Programar respaldo Respaldo diario a la 1:00 hrs # su backup -c "crontab -e" 0 1 * * 1-7 /usr/local/sbin/amdump ejemplo
Restaurar El usuario root de zclient mediante cd se sita en el lugar que se piensa restaurar ejemplo: /temp siguiendo el siguiente comando # amrecover AMRECOVER Version 2.5.2p1. Contacting server on zserver ... 220 zserver AMANDA index server (2.5.2p1) ready. Setting restore date to today (2010-06-07) 200 Working date set to 2010-06-07. 200 Config set to ejemplo. 501 Host zclient is not in your disklist. Trying host bckclient.mydomain.com ... 200 Dump host set to bckclient.mydomain.com. Use the setdisk command to choose dump disk to recover amrecover> listdisk 200- List of disk for host bckclient.mydomain.com 201- / 201- /var/www/www.mysite.com 201- /boot amrecover> setdisk /var/www/www.mysite.com 200 Disk set to /var/www/www.mysite.com. amrecover> ls 2010-06-07 xmlrpc/ 2010-06-07 tmp/ 2010-06-07 templates/ 2010-06-07 robots.txt 2010-06-07 plugins/ 2010-06-07 modules/ 2010-06-07 logs/ 2010-06-07 libraries/ 2010-06-07 language/ 2010-06-07 index2.php 2010-06-07 index.php 2010-06-07 includes/ 2010-06-07 images/ 2010-06-07 htaccess.txt 2010-06-07 configuration.php-dist 2010-06-07 configuration.php 2010-06-07 components/ 2010-06-07 cache/ 2010-06-07 aicontactsafe/ 2010-06-07 administrator/
2010-06-07 LICENSES.php 2010-06-07 LICENSE.php 2010-06-07 INSTALL.php 2010-06-07 CREDITS.php 2010-06-07 COPYRIGHT.php 2010-06-07 CHANGELOG.php 2010-06-07 .htaccess 2010-06-07 . amrecover> add * Added dir /xmlrpc/ at date 2010-06-07 Added dir /tmp/ at date 2010-06-07 Added dir /templates/ at date 2010-06-07 Added file /robots.txt Added dir /plugins/ at date 2010-06-07 Added dir /modules/ at date 2010-06-07 Added dir /logs/ at date 2010-06-07 Added dir /libraries/ at date 2010-06-07 Added dir /language/ at date 2010-06-07 Added file /index2.php Added file /index.php Added dir /includes/ at date 2010-06-07 Added dir /images/ at date 2010-06-07 Added file /htaccess.txt Added file /configuration.php-dist Added file /configuration.php Added dir /components/ at date 2010-06-07 Added dir /cache/ at date 2010-06-07 Added dir /aicontactsafe/ at date 2010-06-07 Added dir /administrator/ at date 2010-06-07 Added file /LICENSES.php Added file /LICENSE.php Added file /INSTALL.php Added file /CREDITS.php Added file /COPYRIGHT.php Added file /CHANGELOG.php Added file /.htaccess amrecover> extract Extracting files using tape drive chg-disk on host zserver The following tapes are needed: ejemplo Restoring files into directory /tmp Continue [?/Y/n]? y
Extracting files using tape drive chg-disk on host zserver. Load tape ejemplo now Continue [?/Y/n/s/t]? y ./administrator/ ./administrator/backups/ Note: Ejecutar help dentro de amrecover para ver ms comandos
El servicio de DNS maneja una relacin de nombres mucho ms robusta, en los siguientes temas veremos la instalacin y configuracin de servidor DNS, pero antes debemos comprender como funciona.
mail.
beakos.
com
Dominio raz
Figura 20-1. Ejemplo de FQDN para beakos.com Las zonas son definidas en servidores de nombres autorizados a travs del uso de archivos de zona, los servidores de correo a ser utilizados por un dominio particular o sub-dominio y ms. Los archivos de zona son almacenados en servidores de nombres primarios (tambin llamados servidores de nombres maestros), los cuales son autorizados y en donde los cambios se hacen a los archivos, y los servidores de nombres secundarios (tambin llamados servidores de nombres esclavos), reciben sus archivos de zona desde los servidores de nombres primarios. Cualquier servidor de nombres puede ser un servidor primario y secundario para zonas diferentes al mismo tiempo, y tambin pueden ser considerados autoritarios para mltiples zonas. Todo depende de cmo se configure el servidor de nombres.
Este punto no aparece cuando escribimos un FQDN, pero supongamos que ah est aunque no est escrito. Un ejemplo sera el FQDN de www.beakos.com.mx que en realidad es www.beakos.com.mx. aunque el punto no se escriba. En el mundo existen alrededor de 13 servidores de dominio raz administrados por diversos proveedores y estos proveedores a sus vez pueden tener rplicas para balancear la carga de peticiones, mejorar la seguridad y la disponibilidad del servicio. El sitio de internet www.rootservers.org nos ofrece una lista de servidores raz con sus respectivas rplicas distribuidos por el mundo.
Dominio RAIZ (.) Dominios de primer nivel genricos y geogrficos .com .gob.mx .edu .org.mx
bicentenario biblioteca
ilce
udem
beakos news
El enunciado se refiere a una faceta que se est a punto de declarar que contendr instrucciones para el funcionamiento del bind , las opciones son las instrucciones especificas que se ejercen sobre los enunciados. Veamos un ejemplo: options { directory "/etc/namedb"; pid-file "/var/run/named.pid"; };
La opcin directory nos indica el directorio de configuracin de named, la opcin pidfile indicar la ruta donde se almacena el archivo con el nmero de proceso de bind.
20.6.1 Comentarios
Los comentarios puede escribirse de alguna de las siguientes formas, no hay un estilo mejor que otro, puede usar el que mejor le guste. Tabla 20-1. Formato para los comentarios Descripcin Comentarios al estilo de C++ Comentarios al estilo de C Comantarios al estilo de BASH, PERL o Python
Formato // /**/ #
Enunciado acl include logging options controls server zone key view masters
include ruta_del_archivo_incluido;
20.6.6 Zonas
Este enunciado nos permite definir Zonas, la definicin de zona resulta muchas veces confusa, una zona no es siempre lo mismo que un dominio de DNS, analicemos, los dominios son designados junto con los lmites organizacionales. De un dominio pueden surgir varios subdominios, cada subdominio recibe su zona, estas zonas en conjunto representan al dominio en su totalidad. Ejemplo: Supongamos que el news.beakos.com.mx, dominio beakos.com.mx tiene varios subdominios como soporte.beakos.com.mx, descargas.beakos.com.mx,
mail.beakos.com.mx. Cada uno de estos 4 subdominios tiene una zona, dentro del dominio beakos.com.mx existen algunos hosts, por lo tanto tambin tiene su propia zona. En total estamos hablando de 5 zonas para el dominio beakos.com.mx. Cuando hablamos de un dominio que no tiene subdominios, podemos decir que la zona y el dominio son los mismos en cuestin de configuracin.
zone beakos.com.mx { type master; file beakos.com.mx.db; }; Si analizamos el archivo de configuracin named.conf, observamos que en el enunciado options en la opcin directory ya viene la ruta definida para los archivos de configuracin, esta apunta a /etc/namedb, pero como named se ejecuta en un entorno enjaulado la ruta verdadera corresponde a /srv/named/etc/namedb por lo que no ser necesario incluir toda la ruta completa en la declaracin de la zona. Esta declaracin de zona nos permite obtener la direccin IP de un nombre, pero no olvidemos que hay que realizar la declaracin inversa, sobre todo si se trata de un servidor de correo electrnico. La declaracin in-addr.arpa dentro del archivo de configuracin de bind correspondiente a beakos.com.mx: zone 1.168.192.in-addr.arpa { type master; file beakos.com.mx.rev; }; El formato de in-addr.arpa consiste en declarar los tres primeros objetos de la direccin IP como se puede observar. En la siguiente tabla se muestran algunas opciones que podemos utilizar para nuestra declaracin de zona, slo aplicarn para la zona en cuestin. Tabla 20-2. Opciones adicionales para declaracin de Zonas primarias. Opcin Descripcin check-names Esta opcin se utiliza para restringir el conjunto de caracteres y la sintaxis de nombres de dominio en ciertos archivos maestros. allow-update Especifica los servidores DNS que podrn recibir actualizaciones de las zonas primarias. allow-query Especifica cules hosts tienen permitido hacer consultas de DNS ordinarias. Si no se especifica, el valor por defecto es permitir a las preguntas de todos los hosts. allow-transfer Especifica que servidores pueden recibir transferencias de zonas del servidor maestro. notify El servidor DNS enva mensajes de notificacin a los servidores secundarios, si no se especifica esta opcin su valor es positivo yes. also-notify Define una lista servidores a los que se les notificar los cambios , esta opcin slo es vlida si el valor de notify es no.
donde nombre_dominio debe corresponder al mismo especificado en la zona primaria, lista_servidores_primarios corresponde a la direccin IP donde est el servidor primario para esta zona. Tabla 20-3. Opciones adicionales para declaracin de Zonas secundarias. Opcin Descripcin check-names Esta opcin se utiliza para restringir el conjunto de caracteres y la sintaxis de nombres de dominio en ciertos archivos maestros. allow-update Especifica los servidores DNS que podrn recibir actualizaciones de las zonas primarias. allow-query Especifica cules hosts tienen permitido hacer consultas de DNS ordinarias. Si no se especifica, el valor por defecto es permitir a las preguntas de todos los hosts. allow-transfer Especifica que servidores pueden recibir transferencias de zonas del servidor maestro. max-transfer- Tiempo mximo para recibir una transferencia. time-in
La segunda seccin se muestra a continuacin, su funcin es definir la bsqueda inversa para el anfitrin local. Esta es la entrada inversa para resolver 127.0.0.1 al nombre localhost : zone "0.0.127.in-addr.arpa" { type master; file "pz/127.0.0"; };
Con estas entradas es suficiente para poder crear un servidor de nombres de cach. La directiva file apunta a los archivos con la configuracin de las zonas, que son de suma importancia para la configuracin de un servidor DNS.
En la primer lnea debemos reemplazar nombre.dominio. por el nombre de nuestro dominio. IN indica que se trata de un registro de internet. SOA le dice al servidor DNS que es un inicio de autoridad sn.nombre.dominio. es el dominio calificado (FQDN) para el servidor de nombres en este dominio, no omita el punto final. admin.nombre.dominio. es la direccin de correo electrnico del administrador del dominio. Observemos que no se incluye la direccin con @, esta se sustituye con un punto (.) ejemplo: linux.infotec.com.mx La lnea 2 indica el nmero de serie. No olvide incrementar el nmero de serie cada que edite el registro, es un error frecuente cuando se actualizan datos en un servidor DNS.
La lnea 3 le ndica a los DNS secundarios la frecuencia con la que deben preguntarle al servidor primario si los valores se han actualizado. La lnea 4 indica le indica a los servidores secundarios el intervalo de tiempo en segundos de los reintentos en caso de no poder comunicarse con el servidor primario. La lnea 5 especifica la caducidad, les indica a los servidores secundarios que si no pueden contactar al servidor primario para una actualizacin, deben de dejar de hacer consultas, el tiempo establecido es de 2 semanas. La lnea 6 les indica a los servidores de cach el tiempo que deben esperar antes de que caduque una entrada en caso de no poder contactar al servidor primario.
Un registro de un host llamado servidor.beakos.com.mx que tiene una direccin IP 192.168.4.251se definira de la siguiente manera: servidor IN A 192.168.4.251
El nombre del equipo se aadir de manera automtica al nombre de registro SOA, supongamos que en el registro SOA tenemos beakos.com.mx. (no olvide poner el punto), la direccin IP 192.168.4.251 corresponde a servidor.beakos.com.mx.
La direccin IP debe escribirse completa y con un punto al final, el nombre del host debe llevar el FQDN competo con el punto al final. Ejemplo:
192.168.4.251.
IN
PTR
servidor.beakos.com.mx.
Donde nombre_dominio se refiere al nombre del sitio, con punto final (no olvidar). Peso se refiere a la prioridad de cada servidor mientras ms grande es el nmero menor prioridad tiene. El nombre_host indica el nombre del host que funcionar como servidor de correo para la zona. El nombre_host debe tener una entrada correspondiente a un registro A. Veamos un ejemplo de este registro: beakos.com.mx. IN IN MX MX 10 20 mail1 mail2
El registro RP enuncia quien es el responsable para un determinado equipo. Ejemplo: www.beakos.com.mx IN RP linux.beakos.com.mx. beakos.com.mx.
beakos.com.mx. soporte.beakos.com.mx. ( ; nmero de serie ; actualizacin (3 horas) ; reintentos en segundos (30 minutos) ; caduca en segundos (2 semanas) ; mnimo en segundos
dns1
IN IN IN
NS MX A
IN IN IN IN
A A A CNAME
beakos.com.mx. soporte.beakos.com.mx. ( ; nmero de serie ; actualizacin (3 horas) ; reintentos en segundos (30 minutos) ; caduca en segundos (2 semanas) ; mnimo en segundos IN IN IN IN NS NS PTR PTR dns1.beakos.com.mx. dns2.beakos.com.mx. web1.beakos.com.mx. mail.beakos.com.mx.
251 56
Los primeros nmeros del registro PTR (251 y 26) corresponden al ltimo octeto de la direccin IP, recordemos que los primeros 3 octetos estn declarados en la zona dentro del archivo de configuracin de Bind.
Una vez concluida la configuracin debemos de iniciar los servicios en el servidor primario y secundario. root [ /srv/named/etc ]# /etc/init.d/bind start Iniciando servidor named... [ OK ]
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20845 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3 ;; QUESTION SECTION: ;beakos.com.mx. ;; ANSWER SECTION: beakos.com.mx. mail.beakos.com.mx. ;; AUTHORITY SECTION: beakos.com.mx. dns2.beakos.com.mx. beakos.com.mx. dns1.beakos.com.mx. ;; ADDITIONAL SECTION: mail.beakos.com.mx. dns1.beakos.com.mx. dns2.beakos.com.mx. ;; ;; ;; ;;
IN
MX
604800
IN
MX
10
604800 604800
IN IN
NS NS
IN IN IN
A A A
Query time: 0 msec SERVER: 192.168.0.133#53(192.168.0.133) WHEN: Thu Nov 11 19:43:55 2010 MSG SIZE rcvd: 138
De lo ms destacado podemos ver que el registro MX para el dominio beakos.com.mx corresponde al host mail.beakos.com.mx y su registro A corresponde a la direccin IP 192.168.0.56.
Una vez que se ha establecido conexin con el servidor el cliente tendr acceso a los archivos y directorios, a travs de navegador web, lnea de comandos o clientes con interfaz grfica para FTP, los privilegios de cada usuario dependern directamente de la configuracin del servidor.
Comprobamos los niveles de ejecucin en los cuales se activa, ejecutando el comando: root [ ~ ]# chkconfig --list vsftpd vsftpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Tabla 21-1. Opciones ms comunes para el archivo de configuracin vsftpd.conf Opcin Descripcin write_enable Habilita la escritura en el servidor FTP. dirmessage_enable Muestra un mensaje al usuario al acceder a los directorios. ftpd_banner Muestra un mensaje de bienvenida. local_enable Habilita el acceso por FTP a los usuario con cuenta en el servidor. local_umask Establece la mscara de creacin de archivos, es decir si el valor es 022 los archivos creados tendrn permisos 755. chroot_local_user Limita el acceso a los usuarios a usar slo su directorio. chroot_list_enable Habilita una lista de usuarios con cuenta en el servidor a los que no se les restringe el acceso a otros directorios. Se debe usar con el parmetro chroot_list_file chroot_list_file Apunta al archivo que contiene los usuarios con cuenta en el servidor que no estn limitados a su directorio. local_max_rate Indica la tasa de transferencia de informacin expresada en bytes. anonymous_enable Habilita el acceso al servidor a usuarios que no tienen cuenta en el servidor. anon_world_readable_only permite descargar ficheros a los usuarios sin cuenta en el servidor. anon_upload_enable Permite colocar ficheros en el servidor a los usuarios sin cuenta. anon_umask Establece los permisos a los directorios y ficheros colocados por usuarios sin cuenta en el servidor. anon_mkdir_write_enable Permite la creacin de directorios a los usuarios sin cuenta en el servidor. anon_other_write_enable Permite borrar y actualizar en el servidor a los usuarios annimos. anon_max_rate Tasa de transferencia de datos para usuarios annimos (valor en bites). log_ftp_protocol Habilita el registro de todas la peticiones al servidor y su respuesta. xferlog_enable Habilita o inhabilita el registro de las transferencias de archivos. vsftpd_log_file Indica el fichero y la ruta que contendr el archivo de registro conect_from_prot_20 Habilita el puerto 20 del servidor para la transferencia de datos. idle_session_timeout Establece el tiempo en que se cerrara la conexin de usuarios inactivos. listen Habilita el modo de trabajo standalone para el servidor FTP chown_uploads Esta opcin cambia la propiedad de los archivos subidos en forma annima al usuario especificado en la opcin chown_username. chown_username Especifica el nombre del usuario que se asignar como propietario de los archivos subidos en forma annima. Su valor predeterminado es root.
Referencias
Las siguientes referencias presentan informacin que consideramos til y que abarca temas ms all de los presentados en este manual de implementacin. Considere que la rpida evolucin de GNU/Linux puede hacer que algn material de los presentes ya no se encuentre disponible o se considere obsoleto. Existen dos formas de montar un sistema de archivos NFS, la primera es utilizando el comando mount con sus distintas opciones, la segunda es creando una entrada en el archivo /etc/fstab, esta ultima persistir a un reinicio del sistema por lo tanto es la ms viable.
Libros
Manual de administracin de Linux Steve Shah, Wale Soyinka Editorial Mc Graw Hill, 2007 Programacin en Linux Al Descubierto Kurt Wall Editorial Prentice Hall, Segunda Edicin Redes GNU/Linux, Manual del Administrador Emiliano Francisco Spinella Editorial USERS, 2007 Gua Esencial de Linux Jonh Ray Editorial Prentice Hall, 2002
Manual de Rsync http://samba.anu.edu.au/ftp/rsync/rsync.html Manuales diversos para GNU/Linux http://www.howtoforge.com/ Administracin Linux http://fferrer.dsic.upv.es/cursos/Linux/basico/ Gua para administradores de Sistema GNU/Linux http://www.ibiblio.org/pub/Linux/docs/LDP/system-admin-guide/translations/es/html/
Informacin general
Kernel de Linux http://www.kernel.org/ Free Software Fundation http://www.fsf.org/ GNU Operating System http://www.gnu.org/home.es.html Razones para usar GNU/Linux http://www.obtengalinux.org/