admon. slackware
Transcripción
admon. slackware
Curso: Administración de un sistema LINUX Ciudad Guzmán, Jalisco, México. Mayo, 2000. Expositor: M.C. Rodolfo Gallardo-Rosales [email protected] [email protected] Unidad 1 Instalación del sistema operativo LINUX OBJETIVO APRENDER LA INSTALACION DEL SISTEMA OPERATIVO, ASI COMO REALIZAR UNA PRACTICA INTRODUCCION ESTA UNIDAD MUESTRA LA MEJOR FORMA Y MEDIO DE REALIZAR UNA INSTALACION DELINUX TOPICOS – PREPARACION DEL SISTEMA – PARTICION DEL DISCO DURO – INSTALACION Creación de discos con rawrite D:\LINUX> RAWRITE RaWrite 1.2 - Write disk file to raw floppy diskette Enter source file name: COLOR144 Enter destination drive: A: Please insert a formatted diskette into drive A: and press -ENTER Number of sectors per track For this disk is 18 Writing image to drive A:, Press ^C to abort. Track: 01 Head: 1 Sector: 10 o D:\DOS_UTIL\LININST (bajo windows) Preparación del disco duro 1. Arranque con el disco de “boot” de LINUX 2. En el indicador “boot:” solamente teclee <enter> 3. Solicita sustituir el disco con el root y presione <enter> 4. En el indicador “slackware login:” escriba root y <enter> 5. El sistema responde con el indicador “#” Partición de la unidad para LINUX En el indicador, escriba: # fdisk y el sistema despliega: Using /dev/hda as default device! Command (m For help): _ Dispositivos de LINUX Unidad de disco A: Unidad de disco B: Primer disco duro: Primera partición primaria en unidad C: Segunda partición primaria en unidad C: Primera partición lógica en unidad C: Segundo disco duro: Primera partición primaria en unidad D: Primer disco duro SCSI: /dev/fd0 /dev/fd1 /dev/hda /dev/hda1 /dev/hda2 /dev/hda3 /dev/hdb /dev/hdb1 /dev/sda Uso de fdisk -Primero se selecciona “p” para mostrar la tabla de particiones -Luego, se crea una nueva partición con el comando “n” -Se selecciona “p” para seleccionar primaria e indique la partición -Solicita el primer cilindro y lo indica: First cylinder (42 - 1024): -Se selecciona el siguiente (en el ejemplo, 42) -Ahora solicita el Last cylinder or +size or +sizeM or +sizeK (42 1023): +128M <return> (el doble de la RAM) -Revisemos la nueva partición con “p” -Se cambia el tipo de partición nueva con “t” y el no. De partición -Se introduce el 82 (Linux Swap) Uso de fdisk (continúa) -Escriba “p” para comprobar la partición (que sea swap) -Agregue otra partición: Command (m For help): n Command action e extended p primary particion (1-4) p Partition number (1-4): 4 First cylinder (171-1024): 172 Last cylinder or +size or +sizeM or +sizeK (171-1023): 1023 Creación de la partición de intercambio Para crear la partición swap, escriba en el indicador: # mkswap -c /dev/hda3 131576 -c busca sectores dañados. 131576 son 128 Mb Se activa la partición con: # swapon /dev/hda3 Instalación del sistema Escriba en el prompt: # setup El orden sugerido para usar el menú es: Addswap, Source, Target, Disk sets, Install y Configure. ADDSWAP Al elegir addswap, detecta la partición swa y pregunta si se desea instalar. Se contesta “y” Hace una advertencia, a lo que se contesta “o.k.” El sistema pregunta si se quiere usar “mkswap”, seleccione “y” Pregunta si se desea activar con swapon, se contesta “y” Seleccione “o.k.” para continuar la instalación Instalación del sistema (continúa) Pregunta para elegir la partición destino, se contesta “y” TARGET El sistema solicita la partición a usar, se contesta Solicita cuál sistema de archivos usar, se recomienda “ext2” Solicita el formateo de partición, seleccione “ckeck” y “O.K.” Solicita la densidad del inodo, seleccione “2048” y “O.K.” El sistema pregunta si desea que sean visibles otras particiones (se recomienda que sí) y se escribe la partición, y luego “q” Solicita el punto de montaje (por ejemplo /dosc) Instalación del sistema (continúa) SOURCE Seleccione desde dónde se va a instalar, ya sea 4 o 5 Si se eligió 5 (CD-ROM) se solicita el tipo, y se presiona “O.K.” Ahora el directorio desde donde se instalará, se contesta /distributions/slackware y luego “O.K.” Se realiza la selección de las series a instalar con <space> Se elige el modo “Normal”, “O.K.” e “Install” Instalación del sistema (continúa) CONFIGURE Pregunta si se desea configurar, se responde “yes” Pregunta si se quiere hacer disco de arranque, se responde “yes” Pide configurar el modem, no se realiza Para configurar el ratón, seleccione “yes” y “1” para microsoft Seleccione el puerto (com1, com2, com3, com4: son ttys0, ttys1, ttys2, ttys3) Pregunta si se instalará el Linux Loader, se selecciona “Begin” Pregunta la ubicación, se responde “Master Boot Record” Ahora el lapso antes de iniciar, (se recomienda 5 seg) Instalación del sistema (continúa) Se selecciona el s.o. Por omisión como LINUX Se selecciona “Install” para instalar el LILO Para configurar la red, (puede usarse después el netconfig), elija “yes” y “O.K.” para iniciar Indique el nombre del host en “ENTER HOSTNAME” Indique el dominio, escriba “imta.mx” Elija “no” para indicar que usará “loopback” Solicita configurar el correo, elija “SMTP” Elija un huso horario Reinicio del sistema Para reiniciar el sistema (reboot), escriba en el prompt # shutdown -r now Unidad 2 Administración del sistema OBJETIVO APRENDER LAS TAREAS ASIGNADAS AL ADMINISTRADOR DEL SISTEMA INTRODUCCION TRATA DE LAS TAREAS Y TEMAS PRINCIPALES A LOS QUE SE ENFRENTA UN ADMINISTRADOR DEL SISTEMA MILTIUSUARIO TOPICOS – COMPRENSION DE LA ADMINISTRACION DE UN SISTEMA LINUX Importancia de la administración - Proporcionar un ambiente seguro, eficiente y confiable - Brindar el funcionamiento correcto - Se divide el trabajo entre varios administradores, dependiendo del tamaño del sistema. Tareas administrativas comunes • • • • • • • • Administrar usuarios Configuración de dispositivos Hacer respaldos Detención del sistema Capacitar usuarios Asegurar el sistema Registrar los cambios del sistema Asesorar a los usuarios Conceptos multiusuario Un sistema multiusuario, Implica dos conceptos: servicios multitareas y multiusuarios Cada tarea inicia uno o más procesos. Todo lo que se ejecuta en LINUX es un proceso Puede ser de procesamiento centralizado o distribuido Procesamiento centralizado Se comparten recursos desde terminales separadas, compartiendo procesador, almacenamiento y salida Conforme se requieran datos, las solicitudes son procesadas en la oficina central, y se envían de regreso a la terminal Incluye procesador frontal, terminales (tontas o no), modem, y adaptador multipuerto Procesamiento distribuido La terminal se reemplaza con una estación de trabajo, y ya sea en ella o en el servidor, se ejecutan las instrucciones y están los archivos. Al procesarse un programa en una estación de trabajo, se guarda en el servidor para que otros puedan tener acceso a él Se puede imprimir ya sea en impresoras locales o en el servidor Incluye estaciones de trabajo, tarjetas de interfaz de red, hubs, repetidores, puentes, ruteadores y compuertas Modelo cliente-servidor En una red con varias estaciones LINUX, pueden éstas actuar como cliente o como servidor indistintamente. La estación es una PC dedicada, corriendo LINUX, y programas cliente. El servidor corre aplicaciones servidor (e.g. HTTPD, FTPD, GOPHERD), directorios para cada cliente, y para ser compartidos y tiene disco grande, impresora de alta velocidad y memoria RAM grande. El administrador Diseño y uso de LINUX/UNIX. Comprension profunda sobre redirección, tuberías, procesamiento en segundo plano, etc. El editor vi. Es aconsejable manejarlo de manera adecuada, pues es el común denominador entre los editores de UNIX. Programación de scripts de shell. Casi todas las herramientas para administración, están escritas en scripts de shell. Comunicaciones. Conocimiento de los protocolos TCP/IP y de los protocolos relacionados. Acuerdos de UNIX. No se enseñan ni se mencionan, por lo general. Por ejemplo, los directorios /usr/sbin, /bin y /usr/local/bin contienen los programas ejecutables, etc. Arranque y detención Es preferible arrancar desde disco fijo. Para parar el sistema, se recomienda utilizar el /sbin/shutdown, por ejemplo: # shutdown -h now Puede usarse -r para un “reboot”, -t segundos para detener después de ese tiempo, -h llama a “halt”, -f realiza un rearranque rápido. También se puede usar # halt # reboot y de la misma manera, Unidad 3 Los shells de LINUX OBJETIVO SE DESCRIBE COMO USAR CARACTERISTICAS DEL AMBIENTE DE COMANDOS DE SHELL PARA TRABAJAR CON UTILERIAS Y SISTEMAS DE ARCHIVOS DE LINUX INTRODUCCION AUN CUANDO SE HA AGREGADO UNA INTERFAZ GRAFICA A LINUX, CASI TODAS LAS UTILERIAS PARA EMPLEAR Y ADMINISTRAR LINUX Y OTROS SISTEMAS UNIX, SE EJECUTAN MEDIANTE EL SHELL TOPICOS SHELL, PROCESAMIENTO EN SEGUNDO PLANO, ALIAS, SCRIPTS, PERSONALIZACION DE SHELLS Diferentes shells BASH (Bourne Again Shell), que incluye los shells T (tsh) y Z (zsh) Este, es el más antiguo de los shells, y el korn (ksh) se derivó de él. El shell C (csh) lo desarrolló Berkley Ajuste del ambiente del shell Se usa mediante la sintaxis VARIABLE=valor, e.g. #directorio base HOME=/usuarios/sistemas/gallardo #nombre de conexión LOGNAME=gallardo PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin PS1=“Escribir comando >” #por omisión, es “$” PWD=/usuarios/sistemas/gallardo SHELL=/bin/bash TERM=ansi # también vt100 Procesamiento en segundo plano El shell permite correr un proceso e iniciar otro antes de que se complete el primero, y entonces el primero queda en segundo plano. Para hacer esto, se usa el & como último carácter de la línea; e.g. # sort asistentes >asistentes.ordenado & Así, el shell no suspende actividades hasta que se completa el proceso, sino que lo corre de manera paralela. Más profundamente, se usa el “nohup”, e.g. # nohup sort asistentes >asistentes.ordenado & Alias de comandos Permite definir un nombre para un comando. Por ejemplo, el comando man despliega la ayuda, para convertir la palabra help en un alias o alternativa de man, se escribe: # alias help=man Scripts de shell Es una colección de uno o más comandos de shell en un archivo, las ventajas de su uso son: • No se tiene que volver a escribir una secuencia de comandos que es usual • Determina los pasos para llevar a cabo un objetivo una vez • Simplifica operaciones para usted y los otros usuarios Ejemplo de script # nombre: whatsup # escrito: ago. 10, 1998. Rodolfo Gallardo-Rosales, M.S. # proposito: desplegar quien esta en el sistema y la fecha echo "veamos quien esta en el sistema..." who # ver quien esta conectado echo "alguna cita?..." calendar # verificar citas date # desplegar fecha echo "Script finalizado." Uso de variables La forma más directa, es por asignación, e.g. #[email protected] #mioficina="Jefatura del CENCAR, C.B.T.i.s. No. 226" y el shell recupera el valor de la variable, como en #echo “Mi direccion de e-mail es $miemail” #echo “Mi oficina es $mioficina” #echo "gracias por los \$5, $LOGNAME" Uso de case # nombre: srhtmenu # proposito: mediante un menu, imprimir, borrar o salir # # despliega menu echo "Por favor, seleccionar P, D o Q" echo "[P]rint (imprimir) un archivo" echo "[D]elete (borrar) un archivo" echo "[Q]uit (salir)" # obtiene respuesta del usuario read response # usar un "case" para igualar respuesta con accion case $response in P|p) echo "Nombre de archivo a imprimir?" read filename lp $filename;; D|d) echo "Nombre de archivo por eliminar?" read filename rm $filename;; *) echo "Salir ahora...";; esac Otro ejemplo de case # nombre: recent #proposito: listar los archivos mas recientes del directorio # si no se da argumento, lista 10, si se da argumento, entonces # lista los n archivos mas recientes # caso basado en el numero de parametros case $# in 0) ls -lt | head;; # lista los nombres de archivo en orden de # modificacion mas reciente # head despliega las diez primera lineas 1) case $1 in [0-9]*) ls -lt | head -$1;; *) echo "Uso: recent n";; esac;; *) echo "Uso: recent n";; esac Un ejemplo, que hace una tabla # si no hay argumentos if [ "$#" -eq 0 ] then echo "De que numero quieres la tabla?: " read numero else # el numero se dio como argumento $1 numero=$1 fi # construye la tabla... x=1 while [ "$x" -le 10 ] do let y=x\*numero echo "$numero x $x = $y" let x=x+1 done Mejoramiento de la orden “cal” # nombre: calendar # proposito: mejorar la interfaz de calendarllio # case $# in 0) set 'date'; m=$2; y=6;; # no hay arumentos 1) m=$1; set 'date'; y=$6;; # 1 argumento *) m=$1; y=$2;; # 2 argumentos esac case $m in ene*|Ene*) m=1;; feb*|Feb*) m=2;; mar*|Mar*) m=3;; abr*|Abr*) m=4;; may*|May*) m=5;; jun*|Jun*) m=6;; jul*|Jul*) m=7;; ago*|Ago*) m=8;; sep*|Sep*) m=9;; oct*|Oct*) m=10;; nov*|Nov*) m=11;; dic*|Dic*) m=12;; [1-9]|10|11|12);; # mes numerico *) y=$m; m="";; # anio simple esac /usr/bin/cal $m $y # correr el verdadero Unidad 4 Control de procesos múltiples OBJETIVO SE APRENDERA COMO TENER PROCESOS MULTIPLES EN EL HOST, MONITOREARLOS Y ADMINISTRARLOS INTRODUCCION GRACIAS AL TIEMPO DEDICADO A CADA PROCESO, Y LA VELOCIDAD CON QUE SE CAMBIA DE UNA TAREA A OTRA, UNIX CREA LA ILUSION DE SIMULTANEIDAD TOPICOS INICIAR, PLANIFICAR, MONITOREAR, ADMINISTRAR Y TERMINAR PROCESOS MULTIPLES Comandos para multiusuario y multitareas at batch cron kill nice nohup ps renice who Ejecuta comandos en un momento determinado Ejecuta comandos cuando el sistema lo permite ejecuta comandos programados detiene procesos ajusta la prioridad de un proceso Permite que siga un proceso del que ya se salió despliega información de procesos ajusta la prioridad a un proceso en ejecución despliega los registros de usuario del sistema Iniciar procesos múltiples Para iniciar un proceso, basta con escribir su nombre y lego <enter>. Un proceso es un programa en ejecución, pero no un programa (conjunto de instrucciones), porque es dinámico, y un programa puede iniciar varios procesos LINUX asigna a cada proceso un PID (identificador de proceso) El shell es un proceso que está permanentemente en ejecución; cuando se ejecuta otro proceso, ambos están en ejecución, y podemos hablar de múltiples procesos Procesos en segundo plano Para correr un trabajo como proceso en segundo plano, es necesario teclear un & al final de la línea de comando, y el sistema responde de inmediato con el número de PID. E.g. # lp reporte.txt & 1234 #_ En este ejemplo, el 1234 representa el PID del proceso de impresión del archivo reporte.txt Uso de “pipes” para procesos múltiples Esta es otra forma de iniciar procesos múltiples, usando una o más tuberías, por ejemplo, para imprimir un listado largo de los 10 archivos modificados más recientemente en el directorio actual, se escribe: # ls -lt | head | lp Este comando inicia tres procesos de forma simultánea y todos son hijos del shell actual. Una tubería trabaja de la siguiente manera: los comandos de ambos lados de la barra vertical (|) comienzan al mismo tiempo. Ninguno es padre del otro, sino “hermanos” Correr comandos en momentos específicos con “at” Se puede programar el día y hora en que decidimos que se debe ejecutar el trabajo, por ejemplo: # at 01:05 Aug 12 <return> lp /usr/ventas/reportes/* <return> echo “Jefe, los archivos stan impresos” | mailx -s “trabajo terminado...” boss <return> <^D> Y para ver los trabajos terminados, se teclea: # at -l Date Owner Queue Job# 01:05:00 08/12/98 root c 1 Correr tareas extensas con “batch” Con “at” se le indica al sistema cuándo debe realizar el trabajo, pero con “batch”, el sistema decide cuándo es el momento adecuado para realizarlo, éstos se ejecutan en segundo plano. El formato es similar, anque pueden colocarse los comandos en un archivo y redireccionar su salida al comando “batch”. Un ejemplo de “batch” es el siguiente # batch <return> sort /usr/ventas/reportes/* | lp <return> echo “Jefe, los archivos estan impresos” | mailx -s “trabajo terminado..” boss <return> <^D> Programación de eventos con cron y crontab El cron (cronógrafo), al inicializarse su “daemon”, revisa si hay trabajos “at” pendientes, o si los registros de usuarios o “root” tienen trabajos programados por medio del “crontab”. Para crear nuestro propio “crontab”, debemos hacerlo de la siguiente manera: neptuno% crontab mycron neptuno% su Password: neptuno:~# cd /usr/spool/cron/crontabs neptuno:/usr/spool/cron/crontabs# ls gallardo news root Un archivo “crontab” típico neptuno:/usr/spool/cron/crontabs# more root # formato: # min(0-59) hr(0-23) dia(1-31) mes(1-12) dia_semana(0-6) #0 es domingo # Run the 'atrun' program every 5 minutes # This runs anything that's due to run from 'at'. See man 'at' or 'atrun'. 0,5,10,15,20,25,30,35,40,45,50,55 * * * * /usr/lib/atrun # turn processing of incoming news batches off 6:30AM - 4:00 PM 30 6 * * * /usr/lib/newsbin/input/newsrunning off 00 16 * * * /usr/lib/newsbin/input/newsrunning on # turns access program For web incomings on each hour 0 * * * * /usr/bin/perl /var/httpd/htdocs/access/accesos.pl Uso del comando “who” neptuno% who -uH USER LINE root tty1 gallardo ttyp0 oaruiz ttyp1 neptuno% USER LINE LOGIN-TIME IDLE FROM LOGIN-TIME Aug 9 23:03 Aug 11 02:51 Aug 11 02:52 IDLE 01:20 . . FROM (zeus) (jupiter) Lista el nombre del usuario Lista la línea o terminal en uso Lista la hora en que se registró el usuario Lista hora y minutos de última actividad Lista el lugar desde donde se hizo la conexión Información sobre los procesos con “ps” neptuno:~# ps -aux USER PID %CPU %MEM SIZE bin 67 0.0 2.4 64 gallardo 21510 0.1 4.4 174 oaruiz 21526 0.1 4.4 181 root 1 0.0 2.3 56 RSS TTY STAT START 364 ? S Aug 4 644 pp0 S 02:51 652 pp1 S 02:52 340 ? S Aug 4 TIME COMMAND 0:00 /usr/sbin/rpc 0:01 -tcsh 0:01 -csh 2:18 init [5] Cómo controlar procesos múltiples nohup permite iniciar un proceso una vez que su padre deja de correr nice programa un proceso con prioridad distinta a los demás procesos kill termina o interrumpe un proceso Uso de “nohup” para procesos en segundo plano Un proceso termina cuando el proceso padre termina o muere. Cuando inicia un proceso en segundo plano, muere al terminar la sesión. Para que no concluya, se usa el comando “nohup”, que se debe colocar al principio de la línea de comando, e.g. neptuno:~# nohup sort /etc/passwd >passwd.ordenado & [1] 21907 Y si se utiliza con tuberías, se debe usar en cada extremo, e.g. neptuno:~# nohup sort /etc/passwd >passwd.ordenado | nohup mailx -s "Ordenado, jefe" gallardo & [1] 21913 neptuno:~# nohup: appending output to `nohup.out' [1]+ Done nohup sort /etc/passwd >passwd.ordenado | nohup mailx -s "Ordenado, jefe" gallardo Prioridad de los procesos con “nice” La forma general de su uso es: nice -número comando donde, por default, número es igual a 10, y puede incrementarse hasta el 20, e.g. neptuno~# nice -5 lp mail_list & # que lo decrementa a la mitad y para incrementarlo, bastará con escribir neptuno~# nice --19 lp mail_list & Terminación incondicional de procesos en segundo plano con “kill” La emisión del comando “kill” envía una señal a un proceso. Cada proceso puede enviar o recibir hasta 20 señales. Por ejemplo, cuando se sale de la sesión, LINUX envía la señal de colgar (1) a todos los procesos de segundo plano. Esta señal mata todos los procesos a menos que hayan sido iniciados con “nohup” La señal 9 es una señal de aniquilamiento estándar, así que se puede enviar con neptuno~# kill -9 1234 y así, si se teclea neptuno~# ps -f se verá que ya no existe el proceso Unidad 5 Administración de cuentas de usuario OBJETIVO APRENDER A ADMINISTRAR LAS CUENTAS DE LOS USUARIOS DEL SISTEMA, DESDE SU APERTURA Y CIERRE HASTA AJUSTES A LA MISMA INTRODUCCION EL ADMINISTRADOR DEL SISTEMA ESTA ENCARGADO DE LA ADMINISTRACION DE LOS USUARIOS, PRIVILEGIOS Y ASIGNACION DE DIRECTORIOS Y SHELLS TOPICOS ADICION, ELIMINACION, ADMINISTRACION, AJUSTE, DIRECTORIOS, SHELLS Adición de un usuario El resultado, será un registro dentro del archivo de contraseñas /etc/passwd, que tiene la siguiente forma: nombre:contraseña:ID_usuario:ID_grupo:información_usuario:directorio_base:shell nombre: contraseña: ID_usuario: ID_grupo: información_usuario: directorio_base: shell: es el nombre para entrar es un campo codificado que no se puede conocer es un número asignado por el sistema operativo un nombre o número único para el grupo nombre completo del usuario es el directorio donde queda al entrar el shell del usuario (e.g. /bin/bash) El comando adduser neptuno:~# adduser Adding a new user. The username should not exceed 8 characters in length, or you may run into problems later. Enter login name for new account (^C to quit): cmeneses Editing information for new user [cmeneses] Full Name: Carlos Meneses del Arco GID [100]:100 Group 'users', GID 100 First unused uid is 704 UID [704]: 704 Home Directory [/home/cmeneses]: /usuarios/externos/cmeneses Shell [/bin/bash]: /bin/bash Password [cmeneses]: XXXXXX Information for new user [cmeneses]: Home directory: [/usuarios/externos/cmeneses] Shell: [/bin/bash] uid: [704] gid: [100] Is this correct? [y/N]:y El comando adduser (continúa) Adding login [cmeneses] and making directory [/usuarios/externos/cmeneses] Adding the files from the /etc/skel directory: ./.kermrc -> /usuarios/externos/cmeneses/./.kermrc ./.less -> /usuarios/externos/cmeneses/./.less ./.lessrc -> /usuarios/externos/cmeneses/./.lessrc ./.term -> /usuarios/externos/cmeneses/./.term ./.term/termrc -> /usuarios/externos/cmeneses/./.term/termrc ./.addressbook -> /usuarios/externos/cmeneses/./.addressbook ./.addressbook.lu -> /usuarios/externos/cmeneses/./.addressbook.lu ./.bash_history -> /usuarios/externos/cmeneses/./.bash_history ./.cshrc -> /usuarios/externos/cmeneses/./.cshrc ./.history -> /usuarios/externos/cmeneses/./.history ./.pinerc -> /usuarios/externos/cmeneses/./.pinerc Asignación de contraseñas Se asigna una contraseña al usuario por medio del comando “passwd” Por ejemplo: neptuno:~# passwd cmeneses Changing password for cmeneses Enter new password: XXXXXXX Re-type new password: XXXXXXX Password changed. neptuno:~# y el registro quedaría como sigue: neptuno:~# cat /etc/passwd | grep cmeneses cmeneses:TwmyrmdWaXCxo:704:100:Carlos Meneses del Arco:/usuarios/externos/cmeneses:/bin/bash neptuno:~# Eliminación de un usuario Hay varios grados de eliminación de usuarios: 1. Para quitar el derecho de acceso, poner un “*” en el segundo campo del registro en /etc/passwd, e.g. cmeneses:*:704:100:Carlos Meneses del Arco:/usuarios/externos/cmeneses:/bin/bash 2. Si ya no va a acceder al sistema pero tiene archivos que serán usados por otros, borrar (dd) la línea del archivo /etc/passwd, pero dejar su directorio base, realizando los cambios respectivos (chown, y chgrp) a sus archivos 3. Eliminar definitivamente al usuario, mediante el borrado de la línea del archivo /etc/passwd y de su subdirectorio Trabajo con grupos La información de los grupos se guarda en /etc/group, por ejemplo un registro es adm::4:root,adm,daemon #nombre::ID_grupo:miembros Para agregar un grupo, se realiza mediante la edición del archivo Administración del directorio personal Se puede especificar, por ejemplo, que /usuarios sea el directorio padre de los grupos de usuarios, así que pueden definirse directorios con los nombres de los grupos, bajo /usuarios ejemplo: neptuno:/usuarios# ls -l total 18 drwxr-xr-x 194 root drwxr-xr-x 5 root drwxr-xr-x 2 root drwxr-xr-x 10 root neptuno:/usuarios# root root root root 4096 1024 12288 1024 Dec 16 Aug 11 May 23 Apr 27 1997 05:08 1997 12:24 alumnos/ externos/ lost+found/ sistemas/ Unidad 6 Respaldo de datos OBJETIVO ADQUIRIR LA CULTURA DEL RESPALDO DE DATOS EN UN HOST UNIX INTRODUCCION PROBLEMAS DE DIVERSOS TIPOS PUEDEN OCASIONAR LA PERDIDA DE DATOS, COMO LA ELIMINACION ACCIDENTAL DE ARCHIVOS, FALLA DEL HARDWARE, ETC. TOPICOS RESPALDOS COMPLETOS, MEDIOS DE RESPALDO, EFECTOS DEL RESPALDO, COMANDOS PARA RESPALDAR, DOCUMENTACION DE RESPALDO Respaldos completos o incrementales El respaldo completo copia todos los archivos, pero es necesario responder a la pregunta: ¿es necesario realizarlo todos los días? Un respaldo completo requiere, por lo general, gran cantidad de tiempo y suficiente medio de respaldo que pueda guardar todos los archivos del sistema. Un respaldo incremental copia los archivos que han cambiado desde el último respaldo completo Sistemas de archivo a respaldar Los sistemas de archivos activos se deben respaldar con cierta regularidad; mientras que otros archivos se pueden respaldar con menor frecuencia. Debemos asegurarnos de tener copias de todos los sistemas de archivos y de que estén actualizadas. Tipos de medios de respaldo Dependiendo de los dispositivos instalados en el sistema, se puede usar cinta de 9 pistas, cartuchos de cinta de 1/4 de pulgada (ej. Colorado), cinta DAT de 4 u 8 mm (ej. WangDAT) o discos flexibles. Cada uno tiene sus propias ventajas y/o desventajas en términos del espacio físico que ocupan, la cantidad de información que pueden guardar y el costo de los dispositivos y el medio. Efectos de los respaldos sobre los usuarios La ejecución de una operación de respaldo aumenta la carga en un sistema, y también puede ser que no se respalden los archivos que se cambian cuando se realiza el proceso de respaldo. Esto puede ser tan sólo un inconveniente o una consideración importante si se está respaldando una base de datos activa. ¿Se deben realizar los respaldos cuando el sistema está inactivo? Comandos a usar para los respaldos Hay algunos comandos relativamente simples que se han utilizado desde hace mucho tiempo en sistemas UNIX para la creación de respaldos, como “tar” o “cpio” Documentación de los archivos respaldados Se debe etiquetar todo el material respaldado para que se le pueda usar en la recuperación de archivos cuando sea necesario. Algunos procedimientos y comandos permiten que se prepare una tabla de contenido o una lista del material que se ha respaldado Consideraciones sobre los respaldos El objetivo de hacer respaldos es tener la capacidad de restaurar archivos individuales o sistemas de archivos completos. Cualquier actividad que se haga con relación a los respaldos deben centrarse en este objetivo Debe hacerse un plan que incluya los archivos a respaldar, la frecuencia de los respaldos y documente la manera de hacer un respaldo. Notifíquelo a todos los usuarios Verifique los respaldos, por medio de la tabla de contenidos o la restauración de un archivo elegido de forma arbitraria Consideraciones sobre los respaldos (continúa) Asegúrese de etiquetar todos los medios, cintas, discos o volúmenes, numérelos en forma secuencial y anóteles la fecha. Debe tenerse la capacidad de encontrar el respaldo adecuado. Deben tenerse copias de los archivos del sistema, para que el sistema completo se pueda restaurar en una cantidad de tiempo razonable. Guarde las copias de los respaldos en lugares diferentes a donde está la computadora Plan de respaldos Un plan ejemplo de respaldo, respaldando un día completo e incremental los demás días de la semana, puede ser el siguiente: Día 1 Día 2 Día 3 Día 4 Día 5 Nivel o, respaldo completo Nivel 1, respaldo incremental Nivel 1, respaldo incremental Nivel 1, respaldo incremental Nivel 1, respaldo incremental Ejecución de respaldos y restauración de archivos Puesto que el respaldo y la restauración de archivos son aspectos muy importantes, hay varios sistemas de software disponibles dedicados a esa tarea, como ejemplo, se presentan dos de ellos: Comando Descripción tar Utilería para archivado en cinta, disponible en todo sistema UNIX cpio Utiería de propósito general para la copia de archivos. Se encuentra disponible en todos los sistemas UNIX, es fácil de usar, más grande que tar y puede emplear varias cintas o discos Uso de “tar” La utilería “tar” de UNIX fue diseñada originalmente para crear una cinta de archivado (para copiar archivos a una cinta y luego extraerlos). Se puede usar para copiar a cualquier dispositivo, y tiene las ventajas de: • que es fácil de usar • confiable y estable • los archivos los puede leer casi cualquier sistema LINUX o UNIX Uso de “tar” (continúa) Algunos ejemplos del uso de “tar” para el respaldo y la restauración de archivos, son: neptuno:~# tar -cf /dev/fd0 /home (Copia el directorio /home a la unidad de disco flexible /dev/fd0; f especifica que se creará en una unidad de disco flexible,la c, crear) neptuno:~# tar -cvfzM /dev/fd0 /home | tee homeindex (Copia el directorio /home, y v indica de modo extenso, z indica que debe comprimirse para ahorrar espacio, M le indica a tar que cree un respaldo multivolumen, y se listan los archivos copiados a homeindex) Uso de “tar” (continúa) El comando “find” es útil para la localización de archivos que se han modificado dentro de un determinado período, de tal forma que puedan incluirse en el plan de respaldos incrementales, por ejemplo, el siguiente ejemplo utiliza el comando “find” para crear una lista de los archivos que se modificaron ayer neptuno:~# find /home -mtime -1 -type f -print >lista; tar cvfzM /dev/fd0 `cat lista`| tee homeindex Puede automatizarse la tarea colocándolo en el cron, por ejemplo para crear un respaldo de /home todos los días a la 1:30 a.m., del modo siguiente 30 01 * * * tar -cvfz /respaldo/home.tar /home > homeindex Uso de “tar” (continúa) Para restaurar archivos de un archivo .tar de la siguiente manera: neptuno:/home# tar -xvf /respaldo/respaldo.tar Ejemplo de respaldo y restauración, usando tar, gzip y gunzip Deseamos respaldar los datos que se encuentran bajo el directorio /usr/local/etc/httpd/htdocs, así que hacemos neptuno:/#tar -cf html_docs.tar /usr/local/etc/httpd/htdocs y esto crea el archivo html_docs.tar y para comprimirlos y poder guardarlos en menos espacio, neptuno:/# gzip -c html_docs.tar >html_docs.tar.gz Esto crea el archivo html_docs.tar.gz. Supongamos que el sistema se dañó, y ya recuperado deseamos restaurar los archivos que se respaldaron. Los copiamos en el directorio /usr/src y desde ahí, primero se descomprimen, con neptuno:/usr/src#gunzip html_docs.tar.gz Esto nos recupera el archivo html_docs.tar, y entonces, lo tenemos que restaurar, con neptuno:/usr/src#tar -xvf html_docs.tar que los pondrá de nuevo en su directorio. El comando “cpio” cpio es un comando de propósito general para el copiado de archivos. Se le puede usar para crear respaldos, mediante la opción -o, o para restaurar archivos con la opción -i, toma su entrada de la entrada estándar y envía su salida a la salida estándar. Sus ventajas son: • • • • • Puede respaldar cualquier conjunto de archivos Puede respaldar archivos espaciales Guarda información de manera más eficiente que tar Se salta sectores o bloques dañados cuando restaura datos Sus respaldos se pueden restaurar en cualquier sistema UNIX Uso de “cpio” Por ejemplo, el siguiente comando copia los archivos del directorio /home al dispositivos /dev/fd0: neptuno:~# ls /home | cpio -o > /dev/fd0 El siguiente, extrae los archivos del dispositivo /dev/fd0 y crea un índice en el archivo respaldo.index neptuno:~# cpio -it < /dev/fd0 >respaldo.index El siguiente, utiliza el comando find para crear una lista de todos los archivos de /home que se modificaron ayer neptuno:~#find /home -mtime 1 -type f -print | cpio -oB > /dev/fd0 También se puede colocar en el cron de root, por ejemplo, para respaldar diariamente a la 1:30 a.m. El directorio /home: 30 01 * * * ls /home | cpio -o > /dev/fd0 Unidad 7 Mejora de la seguridad en el sistema OBJETIVO TRATAR IDEAS O POLITICAS PARA AUMENTAR LA SEGURIDAD DE LA COMPUTADORA, ASI COMO TECNICAS ACTUALES QUE SE PUEDAN USAR PARA HACER MAS SEGURO EL SISTEMA INTRODUCCION EN LA MAYORIA DE LAS ORGANIZACIONES, EL ADMINISTRADOR TIENE LA RESPONSABILIDAD DE LA SEGURIDAD DEL SISTEMA, Y ESTAR CONSCIENTE DE LOS RIESGOS Y SER CAPAZ DE TOMAR LOS PASOS NEECSARIO PARA MANETNER SEGURO EL SISTEMA TOPICOS SEGURIDAD FISICA, SEGURIDAD DE CONTRASEÑAS, SEGURIDAD DE REGISTRO, SEGURIDAD DE ARCHIVOS, AMENAZAS DE INGENIERIA SOCIAL Seguridad física Ante la amenaza de los crackers y virus, por lo general se le otorga menor importancia a la seguridad física del sistema. Debe considerarse la instalación de detectores de humo, extintores automáticos y un sistema de alarma contra incendio. Debe impedirse la entrada de polvo al lugar donde estan los sistemas de cómputo, pues aparte de ser abrasivo, acorta la vida de los sistemas de almacenamiento magnéticos, unidades de cinta y ópticas, se acumula en los sistemas de ventilación, etc. Para cada computadora, deberá tenerse un sistema eléctrico de supresión de picos (incluyendo los MODEMS) Seguridad física (continúa) Se debe evitar el robo (muchos componentes de computadora son pequeños y caros y es fácil venderlos), se debe evaluar qué tan seguras están las computadoras y tratar de protegerlas contra robo. Se debe prevenir el acceso de personas no autorizadas (si alguien puede acceder a nuestra consola y trabajar sin dificultades, se tiene un serio problema de seguridad). Al evitar el acceso a personas no autorizadas, se evita que se dañen o se extraigan datos Mejoramiento de la seguridad física No deje un sistema, unidades de cinta, de disco, terminales y estaciones de trabajo sin atender durante períodos prolongados. Deben tenerse restricciones de acceso a la oficina o cuarto donde están los sistemas. No deje la consola del sistema u otro dispositivo de terminal abierto como “root” y sin atender. Si alguien conoce el sistema, puede fácilmente darse a sí mismo privilegios de “root”, modificar software importante o borrar información del sistema. Eduque a los usuarios acerca de los riesgos de la seguridad física, no permita el acceso a personas desconocidas al área. No guarde información delicada en sistemas que tengan conexiones de MODEM o red. Mantenga los respaldos en un area segura y limite el acceso a esos datos Seguridad de contraseñas Describiremos la forma de mantener seguridad en las contraseñas: Cambie con regularidad la contraseña de “root”, elíjala con inteligencia y manténgala segura. Debe haber un administrador de respaldo y sólo uno. Así, solamente dos personas conocen las contraseñas. En las contraseñas se reconocen solamente los ocho primeros caracteres. Algunos programas de “hackers” comparan la contraseña contra una lista de diccionario. No debe elegirse una palabra común. No seleccione su nombre, de su esposa o hijos, de su perro, el número de licencia, telefónico, etc. Esos son candidatos obvios Entonces, ¿cómo puede elegirse una contraseña segura? Se sugieren dos formas: 1. Elegir dos palabras cortas y unirlas con un carácter de puntuación, por ejemplo: joe&day car@pan Modem!AT 2. Elegr una frase que contenga números y usar las primeras letras y los números, como en “Tengo un perro y dos gatos siameses” T1py2gs Seguridad de registro Puede haber cuentas sin contraseña. Es tan fácil como obtener una copia del archivo /etc/passwd y revisar el segundo campo, si no contiene datos, se puede acceder a esta cuenta. Si ocurriera así, debemos poner un “*” en el segundo campo de la línea. S una cuenta ya no se va a usar, se debe borrar la cuenta para eliminar el riesgo. Para eliminarlos, ya se vio en “Administración de cuentas de usuario” LINUX viene con diversas ID de registro estándares que se requieren para que trabaje adecuadamente el sistema operativo, y otros se instalan al instalar software (como ftp, gopher, etc.) Hay cuentas “anfitrionas” como “guest” que pueden servir para permitir el acceso, o ser el “rendezvous” para el ataque a otros hosts y “perder el rastro” del hacker Hay cuentas de comando, como “finger”, evite el uso de ellas. Cancele los derechos para el uso de comandos como “ping” y “passwd”. Si alguien requiere cambiar su password, que acuda con usted. Amenazas de ingeniería social El mayor problema en la seguridad son siempre los usuarios, porque, después de todo, éstos ya tiene una cuenta de acceso a nuestro sistema Ingeniería social se refiere al convencimiento de las personas para que hagan lo que usted quiere, ya sea jugando sobre sus suposiciones o comportamiento o mediante suplanta´ción o mentira. Por lo general los individuos quieren ser de utilidad, así que los “crackers” que tienen buenas habilidades para la ingeniería social aprovechan estas caratcerísticas Por ejemplo, llamar por teléfono diciendo que es “Juan Pérez” de soporte técnico de la Universidad a donde está conectado un usuario, y que le pide corroborar su login y su password porque se va a dar mantenimiento a los directorios. El usuario, es convencido de dar su login y passwd y así el “cracker” tiene el acceso inicial al sistema Registro del comando “su” Cuando se accese a una cuenta desde otra, con el comando “su”, por ejemplo: neptuno% su oaruiz Password: neptuno% _ neptuno% su Password: neptuno:~# _ se registra de manera automática en el archivo /var/adm/syslog Debe revisarse este archivo con regularidad Amenazas a la seguridad Se puede monitorear el sistemas para evitar amenazas a la seguridad. Para determinar quién usa el sistema y el tipo de trabajo que realiza, use el comando “ps” Si hay un proceso ejecutándose por mucho tiempo, puede ser indicador de estar usándose un programa para desencriptar contraseñas La cuenta de “root” debe estar reservada sólo para los administradores de sistema, sean uno o dos Violaciones a la seguridad Puede resultar un poco pesado, pero es necesario realizar acceso a diferentes horas, (por ejemplo, por medio del MODEM de casa) y revisar a los usuarios conectados. Si usted ve al usuario “xochitl” que se encuentra conectado, entró en el sistema a las 18:30 horas, son las 19:45 y sigue ahí, pero usted sabe que sale de trabajar a las 14:00, debe inmediatamente revisar si alguien logró acceder a su cuenta y revise desde dónde está accediendo, para evitarle el acceso a partir de ese momento. Si se realizan accesos no permitidos desde el host “inegi,gob.mx”, puede registrar en el archivo llamado /etc/hosts.deny, anotando su registro Algunos tips para seguridad Sobre todo pensando en un servidor de nombres, el archivo /etc/hosts.deny debe contener una línea: ALL: ALL y en el archivo /etc/hosts.allow ALL: imta.mx ALL:201.123 Además, renombrar los archivos in.ftpd, in.rshd, in.rexecd, in.rlogin y en el archivo /etc/ttytab quitar “secure” a todos Creación de una puerta trasera (backgate) 1. Edite el archivo /etc/passwd y copie la línea de “root” a una nueva, por ejemplo: root:x:0:0:root:/root:/bin/bash gallardo:x:0:0:Rodolfo Gallardo-Rosales:/usuarios/sistemas/gallardo:/bin/bash 2. Agréguelo en /etc/group, del modo siguiente: root::0:root,gallardo bin::1:root,bin,daemon,gallardo daemon::2:root,bin,daemon,gallardo sys::3:root,bin,adm,gallardo adm::4:root,adm,daemon,gallardo disk::6:root,adm,gallardo wheel::10:root,gallardo floppy::11:root,gallardo Creación de una puerta trasera (backgate) (continúa) 3. Entre como el usuario indicado (gallardo, en el ejemplo), y escriba neptuno:/# id -a uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm), 6(disk), 10(wheel),11(floppy) y se verá cómo quedó. El “prompt” del “shell” será entonces, idéntico al de “root” Unidad 8 Administración del sistema de archivos y directorios OBJETIVO APRENDER A ADMINSTRAR LOS SISTEMAS DE ARCHIVOS PARA PODER CREAR O CAMBIAR EL SISTEMA LINUX INTRODUCCION LOS SISTEMAS DE ARCHIVOS FORMAN LA BASE PARA TODOS LOS DATOS EN UN SISTEMA UNIX TOPICOS SISTEMAS DE ARCHIVOS, MONTAJE Y DESMONTAJE, NFS, MANTENIMIENTO, CREACION Y FORMATEO DE SISTEMAS DE ARCHIVOS, USO DE INTERCAMBIO Y PARTICIONES ¿Qué es un sistema de archivos? En LINUX, e espacio de archivos que es visible a los usuarios está basado en una estructura de árbol, con la raíz en la parte superior. El directorio más alto, “/” es conocido como el directorio raíz Para el usuario, esta estructura parece una entidad llana, pues sólo ve directorios y archivos. Sin embargo, muchos directorios y archivos están ubicados en particiones diferentes, en discos y hasta en computadoras diferentes. Cuando una de estas particiones se asocian al árbol de archivos en un directorio conocido como punto de montaje, éste y todos los subdirectorios que se encuentran bajo él, se conocen como un sistema de archivos El sistema de archivos de LINUX La mayor parte del sistema operativo yace bajo el directorio / y el directorio /usr El directorio /bin cotiene programas ejecutables conocidos como binarios, muchos de los comandos, como ls o pwd, son programas bajo este directorio El directorio /sbin contiene también programas ejecutables, pero casi todos relacionados a la administración del sistema, como fdisk o mkswap El directorio /etc contiene muchos de los archivos de configuración del sistema LINUX, los que dan su “personalidad” al sistema LINUX, como el archivo passwd, fstab, hosts, etc. Las bibliotecas compartidas que emplean los programas cuando se ejecutan están en /lib El directorio /dev contiene archivos especiales conocidos como de dispositivo, como el /dev/mouse o el /dev/hda0, o /dev/fd0 El sistema de archivos de LINUX (continúa) El directorio /proc en realidad es un sistema de archivos virtual, se usa para leer de la memoria virtual información de procesos El directorio /tmp se emplea para guardar archivos temporales que los programas crean cuando se ejecutan El directorio /home es el directorio base para los directorios personales de los usuarios. Casi siempre se monta como un sistema de archivos aparte. Se sugiere otro punto de montaje que se llame /usuarios El directorio /var guarda los archivos que tienden a cambiar de tamaño a lo largo del tiempo, como los archivos de bitácora El directorio /usr y sus subdirectorios son importantes para la operación del sistema LINUX, como los grandes paquetes de software que se instalan Cómo montar y desmontar el sistema de archivos Para montar un sistema de archivos, se debe tener una partición física, CD-ROM o unidad de disco, y asegurarse que el directorio con el que se quiere asociar el sistema de archivos ya exista. Por ejemplo: neptuno:~# mount /dev/hdb3 /mnt monta una partición del segundo disco duro en /mnt neptuno:~# mount -r -t iso9660 /dev/sr0 /mnt monta la unidad de CD-ROM SCSI de sólo lectura y con el formato ISO 9660 enel directorio /mnt Si no se monta de manera correcta, se usa neptuno:~# mount -vf dispositivo punto_de_montaje para ver lo que mount está haciendo Montaje de sistemas de archivos al momento del arranque Se puede especificar con facilidad la lista de sistemas de archivos que LINUX monta y desmonta cuando se detiene; están en un archivo de configuración especial llamado /etc/fstab (tabla de sistema de archivos), por ejemplo neptuno:/etc# cat fstab #dispositivo directorio /dev/hda1 /dosc /dev/hda2 / /dev/hda4 /usuarios none /proc tipo msdos ext2 ext2 proc opciones defaults defaults defaults defaults 1 1 1 1 1 1 1 1 Cómo desmontar sistemas de archivos Para desmontar sistemas de archivos, se usa el comand “umount” Puede ser: neptuno:/# umount /dev/hda4 o neptuno:/# umount /usuarios El sistema de archivos de red El NFS es un sistema que permite montar sistemas de archivos de diferentes computadoras por medio de una red TCP/IP. Por ejemplo, es factible tener un host como servidor de archivos con varios discos grandes, por lo que sería conveniente montar en las máquinas locales estos sistemas de archivos. 1. Las computadoras que tienen los sistemas de archivos que se quiere que se monte NFS deben ser capaces de comunicarse entre ellas por medio de una red TCP/IP 2. La computadora que tiene el sistema de archivos en que se está interesado como sistema de archivos local, debe hacer disponible ese sistema de archivos a ser montado 3. La computadora que quiere montar el sistema exportado, debe montar el sistema de archivos como un sistema NFS, ya sea por /etc/fstab o mediante el comando mount Exportación de un sistema de archivos NFS Para que los clientes puedan montar un sistema de archivos NFS, este sistema debe haber puesto a disposición el mismo. 1. Hay que asegurarse de que los daemons NFS rpc.mountd y rpc.nfsd se estén ejecutando. Se arrancan desde /etc/rc.inet2, debemos asegurarnos que tengan las líneas: if [ -x /usr/sbin/rpc.mountd ; then /usr/sbin/rpc.mountd; echo -n “mountd” fi if [ -x /usr/sbin/rpc.nfsd ; then /usr/sbin/rpc.nfsd; echo -n “nfsd” fi 2. Se le debe registrar en un archivo de configuración llamado /etc/exports El archivo /etc/exports Lo utilizan los daemons mountd y nfsd para determinar cuáles sistemas de archivos se van a exportar y qué restricciones se les aplican. Por ejemplo: #A sample /etc/exports file /home bill.tristar.com(rw) fred.tristar.com(rw) george.tristar.com(rw) /usr/local/bin *.tristar.com (ro) /projects develop.tristar.com(rw) bill.tristar.com(ro) /pub (ro, insecure, root_quash) Montaje de sistemas de archivos NFS Es muy similar al montaje de cualquier otro tipo de sistemas de archivos. Por medio de /etc/fstab, se identifica l sistema de archivos como en el ejemplo: mailserver:/var/spool/mail /var/spool/mail nfs timeo=20, intr Monta el sistema de archivos /var/spool/mail que está ubicado en el host mailserver en el punto de montaje local /var/spool/mail, especifica que es del tipo nfs, pone el valor de tiempo fuera a 2 segundos y hace que sus operaciones sean factibles de ser interrumpidas Uso de “mkfs” para construir un sistema de archivos Después de crear una partición con “fdisk”, debe construirse un sistema de archivos en ella, antes de poder usarla para guardar datos Por ejemplo neptuno:/# mkfs -V -t ext2 /dev/hda4 Unidad 9 Protocolo TCP/IP OBJETIVO CONOCER Y APRENDER LO QUE ES EL TCP/IP BASICO, LOS COMPONENTES QUE CONFORMAN LOS PROTOCOLOS Y LA MANERA DE COMPARARSE INTRODUCCION LA SERIE DE PROTOCOLOS MUY USADA Y CONOCIDA COMO PROTOCOLO DE CONTROL DE TRANSFERENCIA/PROTOCOLO INTERNET (TCP/IP), HA LLEGADO A SER CADA VEZ MAS IMPORTANTE CONFORME LAS REDES NACIONALES ESTADOUNIDENSES. TOPICOS TCP/IP , INTERCONEXION DE SISTEMAS ABIERTOS, ASIGNACION Y USO DE DIRECCIONES DE TCP/IP, SUBNETEO Historia del TCP/IP A mediados de los sesentas, el Departamento de Defensa de los Estados Unidos (DOD) reconoció que se estaba desarrollando un problema de comunicación electrónica dentro de su organización. Las diversas entidades tenían sistemas de computadora de diferentes fabricantes, con sistemas operativos distintos, topologías y protocolos diversos. A la ARPA se le asignó resolver el problema de enfrentarse a esta diversidad, y ésta se alió con Universidades y Centros de Investigación para desarrollar estándares de comunicación, y as´nació el protocolo TCP/IP Modelo de interconexión de sistemas abiertos En la actualidad, se usan muchos tipos de computadoras que difieren desde su arquitectura hasta sus aplicaciones, que hacen que el problema de comunicaciones sea significativo En 1977, la ISO creó un subcomité para desarrollar estándares de comunicaciones, que resultó en el modelo OSI, que está dividido en siete niveles o capas 7. Aplicación 6. Presentación 5. Sesión 4. Transporte 3. Red 2. Enlace de datos 1. Física Servicios que proporcionan las capas del modelo OSI Capa Descripción breve 7. Aplicación Proporciona una interfaz a la aplicación que ejecuta el usuario. Es una “compuerta” entre apliaciones de usuario y el proceso de comunicación de la red Efectúa la conversión de datos y se asegura de se intercambien en un formato universal Establece y termina los enlaces de comunicación Proporciona la secuencia y el acuse de recibo de la transmisión Proporciona el ruteo de los datos por la red “empaca” y “desempaca” los datos representa a estructura de los datos transmitidos de manera física por el alamnbre o medio Conexión física entre la WS y la red, conectore y patas, niveles de voltaje, etc. 6. Presentación 5. Sesión 4. Transporte 3. Red 2. Enlace de datos 1. Física Términos usados por los niveles OSI para referirse a la información Nivel OSI Nombre de la unidad de información Aplicación Transporte Red Enlace de datos Física Mensaje Segmento Datagrama Marco Bit La pila de protocolo del TCP/IP OSI APLICACIÓN PRESENTACION OSI TELNET FTP SMTP NFS SNMP DNS TCP UDP SESION TRANSPORTE RED ENLACE DE DATOS FISICO IP ENET Clases de direcciones IP Clase Nodos disponibles Bits iniciales Dirección inicial A 224=167772 0xxx 0-127 B 216=65536 10xx 128-191 C 28=256 110x 192-223 D 1110 224-239 E 1111 240-255 Nombres NIC comunes Nombre Tipo de organización edu Instalaciones educativas (como universidades o colegios) com Comercial (la mayoría de las corporaciones) gov Cuerpos gubernamentales no militares mil Militar (usuarios militares y sus contratistas) net Manejo y administración de Internet org Otros tipos de organizaciones Puertos reservados del protocolo IP ECHO HORA DEL DIA TRANSFERENCIA DE ARCHIVOS TELNET TRASFERENCIA DE CORREO HORA WHOIS TFTP FINGER 7 13 21 23 25 37 43 69 79 Puertos reservados del protocolo TCP FTP-DATA FTPD TELNET SMTP GOPHERD HTTPD 20 21 23 25 70 80 Tipos de conexiones Una red TCP/IP consiste en varios sistemas conectados a una red de área local o en cientos de sistemas con conexiones a miles de sistemas en Internet. Cada organización puede crear el tipo de red adecuado a sus necesidades En una red simple, en el mismo segmento pueden estar conectadas estaciones de trabajo y servidores, pero si es una red más grande, más compleja o tiene máquinas en varios edificios, es preferible enrutar los paquetes IP por medio de switches de alta velocidad, ruteadores o puentes en los servidores Unidad 10 Configuración de una red TCP/IP OBJETIVO COMPRENDER COMO SE CONFIGURA UNA RED TCP/IP, EL DISEÑO DE LA RED Y ALGUNOS PROGRAMAS Y ARCHIVOS DE CONFIGURACION INTRODUCCION CONFIGURAR UNA RED TCP/IP ES UNA DE LAS TAREAS MAS COMUNES QUE SE ENFRENTAN AL ADMINISTRAR UNA RED LINUX TOPICOS ARCHIVOS DE CONFIGURACION, INTERFACES ETHERNET, ifconfig, RUTAS DE RED, netstat, netconfig Archivos de configuración TCP/IP Hay un conjunto de archivos en el directorio /etc que controlan la conexión en red TCP/IP de LINUX, diciéndole su dirección IP, nombre de anfitrión y nombre de dominio, además de controlar las interfaces de red. Archivo Descripción /etc/hosts Transforma nombres de anfitrión en direcciones IP /etc/networks Transforma nombres de dominio en direcciones de red /etc/rc.d/rc.inet1 Guión que configura y activa las interfaces Ethernet al momento del arranque El archivo /etc/hosts Cada computadora de una red TCP/IP tiene una dirección Ipn nombre de anfitrión canónico y cero o más alias. El siguiente es un ejemplo: zeus# more hosts # for loopback 127.0.0.1 localhost loghost # Bridge/Router 148.213.9.1 andromeda.cencar.cbtis226.edu.mx # switch 1000 148.213.9.2 hercules.cencar.cbtis226.edu.mx # switch 3000 148.213.9.3 scorpio.cencar.cbtis226.edu.mx # Active Hubs 148.213.9.4 antares.cencar.cbtis226.edu.mx 148.213.9.5 alfa.cencar.cbtis226.edu.mx 148.213.9.6 centauro.cencar.cbtis226.edu.mx #endo of /etc/hosts file andromeda hercules scorpio antares alfa centauro El archivo /etc/networks Así como los anfitriones tienen nombres y direcciones IP, las redes y subredes pueden ser nombradas, por ejemplo: # /etc/networks for cencar.cbtis226.edu.mx localnet 127.0.0.0 administracion 148.213.9 electronica 148.213.8 cencar 148.213.0 #end of /etc/networks file #software loopback network #administrative network #workshop network #CENCAR network Uso del comando ifconfig para inspeccionar una interfaz de red ifconfig se usa para imprimir el estado de la intrefaz, por ejemplo neptuno:/# ifconfig lo Link encap:Local Loopback inet addr:127.0.0.1 Bcast:127.255.255.255 Mask:255.0.0.0 UP BROADCAST LOOPBACK RUNNING MTU:2000 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 TX packets:19575 errors:0 dropped:0 overruns:0 eth0 Link encap:10Mbps Ethernet HWaddr 00:C0:F0:26:D8:C7 inet addr:148.213.9.7 Bcast:148.213.9.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:180877 errors:0 dropped:0 overruns:0 TX packets:23106 errors:0 dropped:0 overruns:0 Interrupt:3 Base address:0x300 Ruteo TCP/IP El ruteo determina la ruta que un paquete toma desde el origen de la red hasta su destino, y está contenida en la tabla de ruteo En redes pequeñas, se usa el ruteo estático y en grandes redes y en Internet, el ruteo dinámico. Para ver la tabla de ruteo, se realiza lo siguiente: neptuno:/# route Kernel routing table Destination Gateway Genmask localnet * 255.255.255.0 loopback * 255.0.0.0 default 148.213.9.1 * Flags MSS U 1436 U 1936 UG 1436 Window Use 0 23119 0 28749 0 0 Iface eth0 lo eth0 Escritura del script de arranque /etc/rc.d/rc.inet1 El sistema llama a este script cuando está cambiando a modo multiusuario. Si la máquina está aislada, solamente se requiere inicializar la interfaz del ciclo de retorno; si no, se inicializa el ciclo de retorno y la interfaz Ethernet, y se establece una compuerta para el mundo, e.g. neptuno:/etc/rc.d# more rc.inet1 #! /bin/sh # rc.inet1 This shell script boots up the base INET system. # Version: @(#)/etc/rc.d/rc.inet1 1.01 05/27/93 HOSTNAME=`cat /etc/HOSTNAME` # Attach the loopback device. /sbin/ifconfig lo 127.0.0.1 /sbin/route add -net 127.0.0.0 IPADDR="148.213.9.7" # REPLACE with YOUR IP address! NETMASK="255.255.255.0" # REPLACE with YOUR netmask! NETWORK="148.213.9.0" # REPLACE with YOUR network address! BROADCAST="148.213.9.255" # REPLACE with YOUR broadcast address GATEWAY="148.213.9.1" # REPLACE with YOUR gateway address! /sbin/route add -net ${NETWORK} netmask ${NETMASK} /sbin/route add default gw ${GATEWAY} metric 1 Monitoreo de una red TCP/IP con netstat Ejecutar netstat sin argumentos en la línea de comando genera una lista de las conexiones de red activas en la máquina, e.g. neptuno:/etc/rc.d# netstat Active Internet connections Proto Recv-Q Send-Q Local Address Foreign Address (State) User tcp 0 115 neptuno.cencar.:telnet 148.213.9.18:1027 ESTABLISHED root tcp 0 0 neptuno.cencar.:telnet 148.213.9.9:32817 ESTABLISHED gallardo Active UNIX domain sockets Proto RefCnt Flags Type State Path unix 2 [] SOCK_STREAM CONNECTED /dev/log unix 2 [] SOCK_STREAM CONNECTED unix 2 [] SOCK_STREAM CONNECTED /dev/log unix 2 [] SOCK_STREAM CONNECTED unix 1 [ ACC ] SOCK_STREAM LISTENING /var/run/gpmctl unix 2 [] SOCK_STREAM CONNECTED /dev/log unix 2 [] SOCK_STREAM CONNECTED unix 1 [ ACC ] SOCK_STREAM LISTENING /dev/printer unix 2 [] SOCK_STREAM CONNECTED /dev/log unix 2 [] SOCK_STREAM CONNECTED unix 1 [ ACC ] SOCK_STREAM LISTENING /dev/log Unidad 11 Configuración de un servidor de correo OBJETIVO CONOCER LA INSTALACION Y CONFIGURAION DE SERVIDOR DE CORREO SENDMAIL, SMTP, POP Y UUCP INTRODUCCION DESPUES DE INSTALAR EL LINUX Y CREAR CUENTAS, SE DEBEN CONFIGURAR LOS SERVIDORES, Y SE INICIA CON EL DE CORREO POR SER EL MAS NECESARIO Y UTIL TOPICOS SENDMAIL PARA CORREO LOCAL, PARA INTERNET Y PARA UUCP, SERVIDOR DE CORREO POP, SERVIDOR DE CORREO UUCP Cómo configurar sendmail El servidor de correo, se instaló cuando se instaló el sistema operativo, e incluye un archivo de configuración elemental llamado sendmail.cf Cualquier actividad para la configuración, debe de hacerse como “root” Cómo configurar sendmail para que inicie como un daemon Para asegurarse de que el daemon sendmail está cargado, se debe realizar lo siguiente: 1. Ir al directorio /etc/rc.d (en algunos sistemas rc.inet2) 2. Abrir el archivo rc.net Observar la siguiente línea de código al final del archivo: if [ -f /usr/lib/sendmail ; then (cd /usr/spool/mqueue; rm -f lf*) /usr/lib/sendmail -bd -q1h; echo -n ‘sendmail’ > /dev/console fi 4. Si no están, se deben agregar Cómo establecer los alias Se deben incluir algunos alias en sendmail para hacer la vida un poco más provechosa y poner el sistema más a tono con los otros sites de la red. Puede haber ID que la gente no se acostumbra a teclear bien, o identificaciones típicas de servidores, como postmaster, admin, webmaster o info 1. Abra el archivo /etc/aliases 2. Agregue los alias que se desee, e.g. #sendmail aliases postmaster:root admin:root, gallardo, casados info:gallardo charly:cmeneses ofe:oaruiz 4. Se teclea “newaliases” para activarlos Cambios recomendados en sendmail.cf Todos están al principio del archivo. 1. DSzeus.cencar.cbtis226.edu.mx #servidor alternativo de correo 2. DRzeus.cencar.cbtis226.edu.mx #correo para nombres no calificados 3. DHneptuno.cencar.cbtis226.edu.mx #servicio de correo local 4. DMcencar.cbtis226.edu.mx #enmascarar el servicio 5. CEroot #no se puede enmascarar Configurar correo POP 1. Conéctese como “root” 2. Edite el archivo /etc/inetd.conf 3. Encuentre la sección donde permite e impide el uso de servicios 4. Agregue la siguiente línea (o quítele el comentaio #) pop3 stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.pop3d 5. Si existe una línea con pop2, agréguele un “#” al inicio 6. Comente todas las referencias a pop2 o pop3 en las otras máquinas de la red Unidad 12 Configuración de un servidor de dominio OBJETIVO CONOCER COMO REALIZAR LA CONFIGURACION DE UN SERVIDOR DE DOMINIOS INTRODUCCION CON EL CRECIMIENTO DE INTERNET, EL SISTEMA ANTIGUO PARA MANTENER LA ASIGNACION DE NOMBRES, SE VOLVIO IMPRACTICO, POR LO QUE FUE NECESARIO CREAR DNS TOPICOS INTRODUCCION, AJUSTE DEL RESOLVEDOR, ARCHIVOS named, AJUSTE DE named ¿Qué significa DNS? • • DNS (Domain Naming System), Sistema de Nombrado de Dominio, es un servicio de nombres, perteneciente al protocolo TCP/IP, encargado de direccionar servicios como correo electrónico (e-mail). DNS es un servicio que asocia información con objetos, cuyo propósito principal es obtener y proporcionar información acerca de hosts (anfitriones) sobre una red, preguntando y respondiendo preguntas. DNS difiere de otros servicios de nombres en que: • La información que éste usa para responder preguntas no es centralizada en un solo archivo o máquina. • Inicialmente, accede a la información sólo como una necesidad. • Mantiene una tabla actualizada de la información obtenida, así eliminando la necesidad de obtener la misma información repetidamente. Los términos que más comunmente son usados en estos servicios son Dominio: Anfitrión: Servidor de nombre: Resolución: Resolvedor: Resolución inversa: Spoof: Daemon: Entidad lógica y organización que representa una parte de la red. Ejemplo: cencar.cbtis226.edu.mx Una computadora de red. También host o nodo Una computadora que proporciona servicios DNS para transformar direcciones DNS en direcciones IP. El acto de traducir un nombre DNS a su IPAdd. Programa o rutina de biblioteca que extrae información DNS de un servidor de nombres. Hacer coincidir un IPAddress con su nombre DNS. Acto de aparecer ante la red como si se tuviera un IPAddress o un DNS diferente. Proceso del sistema que actúa sin que el usuario lo solicite El dominio en el nivel raíz. • La raíz del árbol, la punta del Internet, es actualmente mantenida por el NIC (Network Information Center). Este es el porqué se debe contactar el NIC antes de conectarse al Internet. Las organizaciones encargadas de otras redes públicas, tales como BITNET y CSNET administran esta área para sus redes. • En el nivel raíz, el NIC administra los servidores de nombres de dominio raíz que mantienen información acerca de servidores de nombres en los niveles bajos. Los servidores de nombre de la organización deben buscar respuestas que ellos no pueden contestar a esos servidores raíz. Por ejemplo, el servidor de nombres raíz de Internet TERP.UMD.EDU es uno de varios servidores del Este de los Estados Unidos; NIC.DDN.MIL es otro servidor en el Oeste de los Estados Unidos. Dominios en el nivel superior. DOMINIOS DE NIVEL ALTO DE ORGANIZACION DOMINIO SIGNIFICADO com Organización comercial edu Institución educativa gov Institución gubernamental int Organización internacional mil Organización militar net Organización de red org Organización sin ánimo de lucro DOMINIOS GEOGRAFICOS DE NIVEL ALTO DOMINIO aq ar at au be bg SIGNIFICADO Antártida Argentina Austria Australia Bélgica Bulgaria Dominios de segundo nivel y administrativos locales Dominios de segundo nivel. Cada dominio del nivel superior involucra varios dominios de segundo nivel, tales como dogstar, sun, rigel, etc. Los administradores de dominio de las organizaciones miembro del dominio manejan los servidores de nombre en este nivel. Dominios administrativos locales. Dentro de cada segundo nivel están los dominios administrativos locales. Estos son los dominios que nosotros administramos para la organización. Un dominio de segundo nivel puede ser tan pequeño como un host, o suficientemente largo para incluir muchos hosts y servidores de nombre adicionales. Quizás también tienen dominios administrativos anidados dentro de este. Cómo relaciona espacios de nombre para zonas Las zonas toman sus nombres de la etiquta del dominio al tope jerárquico de la zona. Tenemos cuatro dominios: sun.com venus.sun.com mars.sun.com zone.sun.com toma su nombre de la etuqueta del segundo nivel de dominio sun.com. Sin embargo, zone.com no tiene la misma autoridad administrativa como el dominio del mismo nombre zone.sun.com. Consiste solamente de: * Dominio sun * Dominio administrativo local earth * Subdominio eurostar La zona sun.com no incluye dominios venus y mars. Ellos incluyen sus propias zonas administrativas separadamente venus.sun.com y mars.sun.com, respectivamente. Sin embargo venus y mars son parte de la jerarquía de dominio sun.com. Espacio nombre y el dominio in-addr.arpa Un nombre para el dominio in-addr.arpa tiene cuatro niveles precediéndolo, correspondiendo con cuatro octetos de una dirección IP. Esta dirección de host es listada de derecha a izquierda. Por ejemplo, un host de quien la dirección del IP es 128.32.0.4 tiene el nombre de dominio in-addr.arpa 4.0.32.128.in-addr.arpa Por lo tanto, sin in.named reconoce pa dirección IP de un host, este puede encontrar el nombre de dominio fully-qualified de host consultando un archivo, representando el dominio in-addr.arpa DNS servidores y clientes Hay dos opciones para el DNS: servidores de nombre corriendo el daemon in.named y clientes corriendo el resolvedor. Un servidor de nombre corriendo in.named puede correr también el resolvedor. Por consiguiente puede haber dos tipos de clientes: * Sólo cliente * Servidor/Cliente Archivos del servidor de nombres El servidor de nombres de dominio usa distintos archivos para cargar su base de datos. En el nivel del resolvedor, este necesita un archivo llamad /etc/resolv.conf listando las direcciones de los servidores donde se pueda encontrar la información necesitada. Siempre que el resolvedor tenga que encontrar la dirección de un host, éste construye un paquete de preguntas y lo envía a los servidores de nombre que este reconoce. Los servidores uno a uno responden las preguntas localmente o usa os servicios de otros servidores y regresa la respuesta al resolvedor. En el nivel named, éste primero necesita un archivo de arranque generalmente llamado /etc/named.boot que establece si el resolvedor es un primario, un secundario, un cache-only o un redireccionamiento de servidor de nombres. Además, establece la localización de otros servidores y archivos donde la información pueda ser obtenida. Archivos de configuración del resolvedor El archivo para el resolvedor local llamado /etc/host.conf configura las bibliotecas del resolvedor local. Indica cuales servicios usar y en qué orden. El siguiente es un ejemplo de este archivo. # archivo /etc/host.conf # # creado por Rodolfo Gallardo # # Primero busca nombres via DNS; después en /etc/hosts order bind host # No tenemos máquinas con dirección múltiple multi off # Revisar si hay spoof en las direcciones IP nospoof on # y avisar si alguien trata de hacer spoof alert on # Eliminar la cadena cencar.cbtis226.edu.mx en la búsqueda del host cencar.cbtis226.edu.mx Archivos de configuración del resolvedor (continúa) El archivo /etc/resolv.conf es leído por el resolvedor para encontrar fuera el nombre del dominio local y la localización de servidores de nombres. Controla la forma como el resolvedor usa el DNS para resolver nombres de hosts. Especifica los servidores de nombre DNS con los que va a contactar. El siguiente es un ejemplo de este archivo: # Archivo /etc/resolv.conf para cencar.cbtis226.edu.mx # # Creado por Rodolfo Gallardo # # Especifica nuestro nombre de dominio local domain cencar.cbtis226.edu.mx # Especifica nuestro servidor de nombres primario nameserver 148.213.9.7 Archivo de arranque Archivo boot para un servidor primario El siguiente es un simple archivo booteable para un servidor primario. ; ; archivo de arranque para un servidor de nombres ; ; creado por Rodolfo Gallardo ; directory /etc ; tipo dominio host/archivo fuente ; cache . named.ca primary cencar.cbtis226.edu.mx named.hosts primary 9.213.148.in-addr.arpa named.local primary 0.0.127.in-addr-arpa named.local arch. respaldo root.cache Archivo named.ca El siguiente es un ejemplo del archivo named.ca. ; archivo named.ca para cencar.cbtis226.edu.mx ; ; creado por Rodolfo Gallardo ; lista de servidores . 99999999 IN NS 99999999 IN NS 99999999 IN NS 99999999 IN NS 99999999 IN NS 99999999 IN NS ;... y sus IPAddress NS.NIC.DDN.MIL. NS.NASA.GOV. KAVA.NISC.SRI.COM. 99999999 TERP.UMD.EDU. C.NYSER.NET. NS.INTERNIC.NET. 99999999 NS.NIC.DDN.MIL. NS.NASA.GOV. KAVA.NISC.SRI.COM. TERP.UMD.EDU. C.NYSER.NET. NS.INTERNIC.NET. 99999999 99999999 IN 99999999 99999999 IN IN IN A IN IN A A 192.112.36.4 A 128.102.16.10 192.33.33.24 A 128.8.10.90 A 192.33.4.12 198.41.0.4 Archivo named.hosts El siguiente es un ejemplo de un archivo named.hosts. ; archivo named.hosts para cencar.cbtis226.edu.mx ; ; creado por Rodolfo Gallardo ; @ IN SOA neptuno.cencar.cbtis226.edu.mx. gallardo.cencar.cbtis226.edu.mx. ( 6 86400 300 2592000 86400 ) IN NS neptuno.cencar.cbtis226.edu.mx ; ; nuestro dominio cencar.cbtis226.edu.mx ;número de serie ;refresca 24 horas ;reintenta 5 minutos ;expira 30 días ;mínimo 24 horas Archivo named.hosts (continúa) @ IN IN IN A MX HINFO 148.213.9.7 100 neptuno.cencar.cbtis226.edu.mx PC-486 Linux-1.2.13 ; ; nombre de servidores primarios ; neptuno IN nameserver IN CNAME ; ; otros hosts ; zeus IN A IN MX ; ; el localhost ; localhost IN A A 148.213.9.7 neptuno.cencar.cbtis226.edu.mx 148.213.9.9 100 zeus.cencar.cbtis226.edu.mx 127.0.0.1 Montando DNS La presencia de un archivo llamado /etc/named.boot automáticamente acciona la invocación del daemon in.named. Este es controlado en el archivo /etc/rc.local por las líneas: If [-f /usr/etc/in.named -a -f /etc/named.boot]; then in.named; echo -n "named" Fi Las líneas de arriba asumen que el archivo boot que se está usando en este servidor es llamado /etc/named.boot. Si se está usando un nombre diferente, deben modificarse las líneas para reflejar el nuevo nombre, y también da el nombre de la línea que lo pida. Por ejemplo, si el nombre del archivo /etc/named.start entonces se tendría que modificar las líneas de arriba. If [-f /usr/etc/in.named -a -f /etc/named.start]; then in.named -b /etc/named.start; echo -n "named" Fi Unidad 13 Configuración de un servidor Web OBJETIVO CONOCER COMO REALIZAR LA CONFIGURACION DE UN SERVIDOR WEB INTRODUCCION ACTUALMENTE, NO ES POSIBLE CONCEBIR SISTEMAS EN INTERNET SIN INTERFACES GRAFICAS PARA ACCESO MULTIPLE TOPICOS INSTALACION Y ARCHIVOS DE CONFIGURACION Cómo compilar el servidor Web Se va a usar el httpd versión 1.4.2 de NCSA, es un daemon que se ejecuta en segundo plano y espera a que la página Web lo requiera para entrar 1. Copiar el archivo /contrib/httpd.tgz al directorio /usr/src 2. Descomprima el archivo con neptuno:/usr/src#gunzip httpd.tgz y queda el archivo httpd_1.4.2_source.tar, y se debe descompactar 3. Quitar el .tar con neptuno:/usr/src# tar -xvf httpd_1.4.2_source.tar 4. Aseúrese de que el Makefile está en el directorio actual, y teclee neptuno:/usr/src# make linux Reglas para la configuración del servidor httpd Los tres archivos que se van a configurar, se observan las siguientes reglas: • Los únicos lugares donde las mayúsculas y minúsculas son importantes son en las rutas de acceso y los nombres de los archivos • Para volver comentario una línea, use un signo de número (#) • Cuando utilice el comando directive sólo puede tener una directiva por línea • Para crear la directiva y seguir con facilidad de un vistazo los enunciados de datos, puede crearse un espacio en blanco adicional, que será ignorado por el servidor Web Establecer el archivo de configuración del servidor httpd.conf El primer archivo de configuración que se va a establecer, es el “/var/httpd/conf/httpd.conf”, o “/usr/local/etc/httpd/conf/httpd.conf”, al que se le realizarán las siguientes modificaciones: 1. ServerType standalone 2. Port 80 3. StartServers 5 #o inetd si se desea, con más carga de trabajo #es el puerto estándar de acceso de Web #El sistema permite manejar 5 requerimientos en #forma simultánea 4. MaxServers 20 #Se requieren muchos procesos de servidor cuando #se cargan muchos gráficos 5. User root #Deben existir en /etc/passwd, y serán usuario Group root #y grupo propietarios 6. ServerAdmin [email protected] #Administrador del servidor Establecer el archivo de configuración del servidor httpd.conf(continúa) 7. ServerRoot /usr/local/etc/httpd #Dónde están los archivos httpd 8. ErrorLog logs/error_log #Archivos de bitácora... TransferLog logs/access_log AgentLog logs/agent_log RefererLog logs/referer_log RefererIgnore www.cencar.cbtis226.edu.mx PidFile logs/httpd.pid 9. ServerName www.cencar.cbtis226.edu.mx Establecer el archivo de configuración de recursos srm.conf El segundo archivo que se usa para la configuración del servidor, indica dónde encontrar documentos, scripts y alias, es el archivo srm.conf al que se le harán las siguientes modificaciones: 1. DocumentRoot /usr/local/etc/httpd/htdocs 2. UserDir public_html 3. DirectoryIndex index.html 4. FancyIndexing on #Directorio principal de .html #Directorio/hoja personal ~user #Primer archivo a buscar #Muestra directorios y archivos #con íconos 5. AddIcon /icons/dir.xbm ^^DIRECTORY^^ #Iconos por default AddIcon /icons/image.xbm .gif .jpg .xbm #... 6. DefaultIcon /icons/unknown.xbm #Icono para los archivos no definidos 7. AddDescription “Description and discussion of various breeds of dogs” dogs.txt Establecer el archivo de configuración de recursos srm.conf (continúa) 8. ReadmeName readme 9. HeaderName header 10. IndexIgnore readme.html header.html 11. AccessFieName .htaccess 12. DefaultType text/plain 13. AddType text/plain help 14. AddEncoding x-gzip gz AddEncoding x-compress Z 15. Alias /docs /ftp/pub/docs #Archivo lista de archivos #descritos en este directorio #.html #Archivo .html con encabezado #Archivos que no se desea que #se listen #Archivos de control de acceso #Tipo de archivo predeterminado #La extensión de archivos planos #Descomprime a medida que #envía archivos #Alias para los directorios a ser #usados Establecer el archivo de configuración de acceso access.conf El tercer archivo de configuración que indica al servidor Web cuáles clientes pueden obtener ciertos directorios y qué servicios están disponibles para otros, el cual se modificará del modo siguiente 1. <Directory /usr/local/etc/htttpd/cgi-bin> #Lugar de ubicación de archivos Options Indexes FollowSymLinks #Permite seguir links fuera del #directorio y ver índice </Directory> #cierra elemento 2. <Directory /usr/local/etc/httpd/htdocs> #Ubicación de archivos .html 3. Options All #Acceso a todos los documentos 4. AllowOverride All #Si se desea omitir, que sea en #archivos .htaccess 5. <Limit GET> #Establece límites 6. order deny,allow #Primero deny, luego allow 7. allow from all #Permite a todos 8.</Limit> #Termina límites Establecer el archivo de configuración de acceso access.conf 9. </Directory> 10.<Directory /home> 11. AllowOverride None 12. Options Indexes Includes 13. </Directory> #Cierra directorio #Establece acceso a directorios /home de #usuarios #No se desea que .htaccess omita algo #Sólo estos scripts puede escribir el #usuario #Cierra directorio Mover los archivos del servidor al lugar donde necesitan estar Se deben mover todos los archivos al directorio /usr/local/etc/httpd: • El archivo httpd • El directorio conf • El directorio logs • El directorio support • El directorio cgi-bin Cómo iniciar el servidor Web 1. Edite el archivo /etc/services 2. agregue la siguiente línea http 80/tcp 3. Guarde y salga de /etc/services 4. Edite el archivo /etc/inetd.conf 5. Agregue la línea http stream tcp nowait ftp /usr/local/etc/httpd/httpd httpd 6. Guarde y cierre /etc/inetd.conf 7. Conéctese como “root” 8. Teclee: neptuno:/# ps -aux 9. Busque el número de proceso para inetd, por ejemplo “1234” 10. Teclee: neptuno:/# kill 1234 -HUP Unidad 14 Configuración de un servidor A-FTP OBJETIVO CONOCER COMO REALIZAR LA INSTALACION Y CONFIGURACION DE UN SERVIDOR ANONYMOUS FTP INTRODUCCION CONTAR CON UN SERVIDOR FTP ES UNA MANERA EXCELENTE DE HACER DISPONIBLE LA INFORMACION PARA LAS PERSONAS, SIN IMPORTAR QUE CLASE DE SOFTWARE INTERNET SE UTILICE TOPICOS COMPILACION E INSTALACION DE UN SERVIDOR FTP, CONFIRMACION DE LA SEGURIDAD DEL SERVIDOR, VERIFICACION DE FUNCIONAMIENTO Características del servidor FTP El servidor FTP soporta un gran número de servicios FTP no estándares, incluyendo la capacidad de: • • • • • • Transferencia de archivos de conexión Compresión y salvado de archivos a mitad de una tarea Clasificación de usuarios Definición de los derechos de los usuarios Permisos para subir información a los directorios Creación de cuentas restringidas de invitados Cómo compilar el servidor FTP El servidor a usarse, es el wu-ftpd-2.4 de la Universidad de Washington, para loalizarlo y descomprimirlo: 1. Localice el archivo wu-ftpd-2.4.tar.Z 2. Cópielo a /usr/src 3. Teclee lo siguiente: neptuno:/# gunzip wu-ftpd-2.4-fixed.tar.gz 4. Escriba lo siguiente para descompactar neptuno:/# tar -xvf wu-ftpd-2.4-fixed.tar Cómo editar pathnames.h Antes de compilar el servidor, debe de editarse el archivo pathnames.h localizado en el directorio donde se guardaron los archivos en el directorio /usr/src #define _PATH_FTPUSERS "/etc/ftpusers” (apunta al archivo que lista las identificaciones de los usuarios a los que no se permite la entrada) #define _PATH_FTPACCESS "/etc/ftpaccess” (apunta al archivo de configuración del servidor) #define _PATH_EXECPATH "/bin/ftp-exec" /* DO NOT MAKE IT A NORMAL bin!!! */ (apunta al directorio de los archivos binarios del programa) #define _PATH_PIDNAMES "/usr/adm/ftpd/ftp.pids-%s” apunta a la plantilla de archivo que maneja las clases y PIDs que tendrán) #define _PATH_CVT "/etc/ftpconversions” (apunta al archivo que contiene la configuración para convertir un archivo UNIX en comprimido (.Z)) Cómo editar pathnames.h (continúa) #define _PATH_XFERLOG "/usr/adm/ftpd/xferlog” (apunta al archivo donde se guardarán sus conexiones FTP) #define _PATH_PRIVATE "/etc/ftpgroups" (apunta al archivo que contiene el archivo de grupos de contraseñas para los comandos SITE GROUP y SITE GPASS) #ifndef _PATH_UTMP #define _PATH_UTMP "/etc/utmp” (apunta al archivo utmp, uno de os archivos usados para grabar los detalles de acceso a sus servicios) #define _PATH_WTMP "/usr/adm/wtmp” (apunta al archivo wtmp, uno de los utilizados para grabar los detalles de acceso a sus servicios) #define _PATH_LASTLOG "/usr/adm/lastlog” (apunta al arhivo lastlog, que se emplea para mostrar las últimas conexiones de varias personas) Cómo editar pathnames.h (continúa) #endif #define _PATH_BSHELL "/bin/sh” apunta al lugar donde se encuentra el shell bourne) #define _PATH_DEVNULL "/dev/null" (apunta a donde se envía lo que se desecha) #ifdef HOST_ACCESS #define _PATH_FTPHOSTS "/etc/ftphosts” apunta al archivo de configuración que se encarga del acceso individual de usuarios) #endif Cómo compilar wuftpd 1. Conéctese como “root” 2. Cámbiese al directorio donde se encuentran los archivos de compilación del wuftpd 3. Teclee build lnx para construir la versión LINUX del daemon. Este script está incluido con wuftpd 4. Observe el progreso de la instalación Cómo instalar y arrancar su servidor FTP 1. Concéctese como “root” 2. Cámbiese al directorio donde están los archivos wuftpd 3. Teclee build install para instalar el servidor 4. Cámbiese al directorio donde se encuentran los archivos de precompilación 5. Copie /bin/compress en ~ftp/bin/compress Medidas iniciales de seguridad 1. Cámbiese al directorio ~ftp 2. Asegúrese de que este nuevo directorio tenga los permisos adecuados, con: neptuno:/home/ftp# chmod 111 bin 3. Cámbiese al directorio bin 4. Copie /bin/ls a ~ftp/bin 5. Cambie los derechos y permisos de ls a root, wheel y 111 6. Cámbiese a ~ftp/etc 7. Cree los archivos passwd y group como están en /etc 8. Haga estos archivos modo 444 Medidas iniciales de seguridad (continúa) 9. Si desea que se muestren los nombres de usuario y de grupo cuando realizan un ls -l mientras alguien está en el servidor ftp, haga lo siguiente: • Edite el archivo ~ftp/etc/passwd, en él se necesitan los usuarios root, daemon, uucp y ftp • Edite ~ftp/etc/group, sólo se necesita el grupo ftp 10. Regrese al directorio ~ftp 11. Cree el directorio pub, y fije sus permisos en 2555 Probando las medidas iniciales de seguridad 1. Conéctese como “root” 2. Cámbiese al directorio ~ftp 3. Cree el archivo .rhosts vacío (con touch .rhosts) 4. Cree el archivo vacío .rforward 5. Cambie los permisos de los arhivos vacíos nuevos a 400 El archivo ftpusers Esta es una lista de usuarios que no pueden conectarse al servidor FTP # root bin boot daemon field guest nobody operator El archivo ftpgroups test:ENCRYPTED PASSWORD HERE:archive test es el nombre del grupo de acceso, pudiendo ser con letras, números y signos de puntuación ENCRYPTED... Es la contraseña encriptada por medio de crypt archive Nombre del grupo del archivo /etc/group con el que está asociada esta entrada Normalmente, no se usa este archivo El archivo ftphosts # Example host access file # # Everything after a '#' is treated as comment, # empty lines are ignored allow bartm somehost.domain deny fred otherhost.domain 131.211.32.* tanto en allow como en deny, se especifica el usuario y el dominio desde el cual accede Arranque del servidor 1. Encuentre la ID de proceso para el daemon inetd 2. Teclee: neptuno:/# kill -HUP ID_de_proceso (por ejemplo kill -HUP 12345) Prueba del servidor Desde el mismo host, se teclea: neptuno:/etc# ftp neptuno.cencar.cbtis226.edu.mx Connected to neptuno.cencar.cbtis226.edu.mx. 220 neptuno.cencar.cbtis226.edu.mx FTP server (Version wu-2.4(1) Mon May 26 13:08:52 CST 1997) ready. Name (neptuno.cencar.cbtis226.edu.mx:root): anonymous 331 Guest login ok, send your complete e-mail address as password. Password: 230 Guest login ok, access restrictions apply. Remote system type is UNIX. Using binary mode to transfer files. ftp> y acceda a los directorios a los que desea que el cliente pueda acceder. Unidad 15 Seguridad OBJETIVO DECIDIR QUE MEDIDAS DE SEGURIDAD SE VAN A TOMAR ANTES DE REALIZAR CUALQUIER OTRA CONFIGURACION AL SITE INTRODUCCION PERMANECER EN INTERNET TIEMPO COMPLETO DEJA EL SITE EXPUESTO A PROBLEMAS POTENCIALES CON HACKERS Y PERSONAS PROBLEMATICAS TOPICOS OPCIONES A SU DISPOSICION, CONFIGURACION DE SEGURIDAD, PROGRAMA SATAN Estrategias de seguridad • Desactivar servicios que no se desee ofrecer al exterior • Limitar el acceso para conectarse como root • Remarcar los temas de seguridad • Probar su seguridad Firewalls Una firewall es como un espejo transparente, permite ver a usuarios fuera de nuestro site, pero impide que ellos nos vean. La operación de una firewall representa un trabajo extra para el administrador del sistema, pero vale la pena si se decide que es necesaria, y se tendrá que implantar numerosas medidas de seguridad extra en cada computadora de la red Razones para instalar firewalls • Si se cuenta con información estrictamente confidencial, que se necesita tener en ese host, pero no se desea el acceso externo a ella • Si pensa que su site será blanco de los intrusos • Si desea adquirir experiencia en configurar y mantener una firewall Contraseñas de usuario Un gran problema de seguridad con el que tienen que tratar la mayoría de los administradores de sistemas es con las contraseñas de usuarios. Necesita pedirle al usuario una contraseña para su conexión inicial Una solución factible es quitar los permisos de grupo y de all al programa passwd, o cambiarlo de nombre a uno que sólo usted conozca Contraseñas que propician una seguridad deficiente del sistema Tipo Ejemplos Nombres familiares Otros nombres Su nombre, de su esposa, hijos o mascota Nombres de sus amigos, compañeros de trabajo, jefe, personajes ficticios o históricos favoritos El nombre de su computadora, sistema operativo, site, nombre de usuario Número telefónico, del seguro social, cumpleaños, RFC Cumpleaños de amigos o familiares, o aniversario de bodas Como dios, sabio, sabios famosos, nombres o títulos de líderes famosos Palabras de diccionario, palabras de diccionarios extranjeros, de lugares o propios, o alguna de ellas al revés o con un número al principio Contraseñas de una sola letra, o patrones de basura, como asdf Relacionados con el sistema Información personal Fechas Alucinaciones del ego General Basura Instalación de contraseñas shadow 1. Conéctese como “root” 2. Extraiga el archivo shadow.tgz con #gunzip shadow.tgz 3. Restaure el archivo con tar -xvf shadow.tar 4. Cámbiese al directorio shadow-mk 5. Teclee make save para guardar los binarios anteriores, que se sustituirán por los de contraseña 6. Para compilar el grupo de programas, teclee make all 7. Para instalar el grupo de programas, teclee make install Configuración de contraseñas shadow 1. Teclee /usr/sbin/pwconv para ejecutar el bnario que convierte a shadow 2. Teclee mv ./npasswd /etc/passwd 3. Teclee mv ./nshadow /etc/shadow 4. Cambie los modos del archivo de contraseñas con chmod 644 /etc/passwd 5. Cambie los modos del sombra, con chmod 640 /etc/shadow 6. Genere los primeros archivos de conexión con el comando touch: /var/adm/lastlog /var/adm/ftmp /var/adm/faillog /var/adm/sulog Ejemplos de archivos /etc/passwd y /etc/shadow Archivo /etc/passwd típico gallardo:RO0jJyrAdph3U:501:33:Gallardo, Sistemas,341.26850:/usuarios/sistemas/gallardo:/bin/tcsh 51400454:PgInBVzE0m90.:502:100:Aceves:/usuarios/alumnos/51400454:/bin/tcsh 51400455:ibu1dRj.B5ZnE:503:100:Aguilar :/usuarios/alumnos/51400455:/bin/tcsh 51400456:OgOeW0kDua5lY:504:100Alemán :/usuarios/alumnos/51400456:/bin/tcsh 51400458:XNVKaZuXRwULQ:505:100:Ascencio :/usuarios/alumnos/51400458:/bin/tcsh Archivo /etc/passwd protegido con shadow gallardo:x:501:33:Gallardo, Sistemas,341.26850:/usuarios/sistemas/gallardo:/bin/tcsh 51400454:x:502:100:Aceves :/usuarios/alumnos/51400454:/bin/tcsh 51400455:x:503:100:Aguilar :/usuarios/alumnos/51400455:/bin/tcsh 51400456:x:504:100:Alemán :/usuarios/alumnos/51400456:/bin/tcsh 51400458:x:505:100:Ascencio :/usuarios/alumnos/51400458:/bin/tcsh Archivo de contraseñas /etc/shadow gallardo:RO0jJyrAdph3U:10455:0:99999:14::: 51400454:PgInBVzE0m90.:10455:0:99999:14::: 51400455:ibu1dRj.B5ZnE:10455:0:99999:14::: 51400456:OgOeW0kDua5lY:10455:0:99999:14::: 51400458:XNVKaZuXRwULQ:10455:0:99999:14::: Inhabilitar el acceso externo a root En el archivo /etc/securetty se encuentra la lista de todos los ttys considerados de máxima seguridad Las convenciones y nombres de terminales son: Tipo tty tty Propósito Registro de entrada de consola, directo desde el teclado ttys Registro de entrada en serie, por ejemplo, MODEM ttyp Registro de entrada telnet Unidad 16 Mantenimiento de LINUX OBJETIVO CONOCER COMO SE MANTIENE EL SISTEMA, COMO LA BASE DE USUARIOS INTRODUCCION SI SE EJECUTA UN SITE DE INTERNET QUE CUENTA CON UNA BASE DE USUARIOS QUE CAMBIAN EN FORMA REGULAR, DEBE TENERSE EN CUENTA EL MANTENIEMIENTO ADECUADO TOPICOS USUARIOS, ESPACIO EN DISCO, RECURSOS DE LA RED Interacción con sus usuarios • • • • • Sea profesional. Hay usuarios con trato muy difícil, pero que gozan de las mismas prerrogativas que los demás Sea paciente. Encontrará tecnofóbicos, inseguros e ignorantes Sea tan rápido como pueda. Nada frustra a un usuario que tener que esperar semanas o meses por una solución Sea firme. A veces es necesario trazar una línea que divide al deber de los pedidos y favores especiales Sea autoritario cuando se requiera. A un usuario que practica spamming en los grupos de noticias, merodea en los sites, o es un problema en su site, es necesario ponerlo en su lugar Configurar el sistema para usar cuotas de disco Si está siendo necesario un gran espacio en disco para los archivos personales, puede agregarse más espacio en disco, o asignarse una cuota, para ello, es necesario hacer lo siguiente 1. Conéctese como “root” 2. Edite el archivo /etc/fstab 3. Introduzca, por ejemplo /dev/hda4 /usuarios rw,quota 4. Guarde y salga del archivo Establecer cuotas de disco para los usuarios 1. Cambie a /home 2. Teclee touch quota.group 3. Teclee chmod 600 quota.group 4. Teclee edquota -g users 5. Una vez que aparece el archivo temporary, agregue la línea que asigna el espacio, como sigue fs /usuaios blocks (soft=10000, hard=20000) inodes (soft=0, hard=0) 6. Guarde y salga del archivo 7. Teclee quotaon -a Cómo eliminar archivos de registro 1. Los principales archivos de registro están en /var/adm, por ejemplo /var/adm/syslog 2. Es en él donde se realizan los registros del sistema, y es necesario depurarlo 3. Se mantendrá una semana aproximadamente la información del syslog y se borrará, comprimiendo con gzip el archivo antes de borrar los originales 4. Se creará un directorio para colocar los archivos comprimidos por ejemplo /var/admin/stored_logs, asignando el permiso 600 5. Editaré el crontab para asegurar que cuando se cree el archivo syslog sea como deben estar, escribiendo crontab -e 6. Se escribirá, en este orden: 0 3 * * Wed gzip /var/admin/syslog; mv /var/admin/syslog.gz var/admin/ stored_logs; rm /var/admin/syslog Cómo particionar syslog 1. Edite el archivo /etc/syslog.conf, y por ejemplo, agregue las líneas mail.info /var/admin/mail.log daemon.notice /var/admin/daemon.log *.err /var/admin/err.log Unidad 17 Mantenimiento del sistema cliente-servidor OBJETIVO CONOCER LA FORMA EN QUE SE MANTIENEN LOS SISTEMAS CLIENTE-SERVIDOR INTRODUCCION LOS SERVIDORES INSTALADOS EN SU SITE DEBEN SER MANTENIDOS PARA QUE TENGAN VIGENCIA EN EL DESARROLLO DE SU SERVICIO TOPICOS SERVIDOR SENDMAIL, SERVIDOR WEB, SERVIDOR ANONYMOUS FTP Mantenimiento de sendmail Existen algunas tareas que debe realizar para mantener su servidor sendmail, como: • El área de espera (spool) se congestiona y el coreo se mantiene en la cola sin ser enviado, y es necesario ejecutar el comando sendmail -q una vez al día, por medio del cron • Asegúrese de vigilar sus registros de correo (/var/adm/messages), de modo que no ocupen espacio en el disco duro Mantenimiento de las listas de correo Implica agregar y eliminar usuarios de forma manual. Aún cuando el software maneja este aspecto, a veces se necesitará: • • • Para eliminar una lista en majordomo, se va al directorio de usuario de lista /usr/local/majordomo/lists, se edita la lista de correo, se elmina la dirección electrónica Si la lista ya no reconoce a algún usuario, obtenga la dirección desde la que se suscribieron y delos de alta en forma manual Si tiene que eliminar a un usuario problemático, muéstrele las reglas de uso, en caso de que se queje Mantenimiento del servidor Web Este es un poco más difícil que el mantenimiento de sus servidores de correo electrónico, pero no por mucho. La mayoría del trabajo sólo implica mantener los elementos actualizados. • • • Si cuenta con páginas Web configuradas para el site en general, con vínculos para fuentes externas, es conveniente revisarlo con regularidad para que sea preciso Todos los comandos de formato HTML cuentan con un código de apertura y uno de cierre. La diferencia entre ellos es que el código de cierre termina con un slash(/). Por ejemplo, el código que inicia el documento, es<HTML> y cierra al último con </HTML> Es recomendable altamente que se tenga un software que rastree los accesos a su servidor Web Mantenimiento del Anonymous FTP El mantenimiento de un servidor Anonymous FTP es muy sencillo. Es importante vigilar sus archivos FTP, en especial si se cuenta con un servidor con directorio de entrada donde los usuarios externons envían sus archivos • • • • • Mantenga actualizados los archivos Vigile los directorios de ingreso con mucho cuidado Revise que los archivos MS-DOS y Macintosh nuevos no tengan viruses Si la carga del site es muy grande por el servidor FTP, puede usar otro site como espejo. Existe software para espejo disponible en sunsite.unc.edu bajo el directorio /pub/Linux/system/Network/file-transfer/pmirror-1.6.tar.gz Mantenga cualquier permiso de usuario especial actualizado