Administraci´On De Sistemas Unix
Total Page:16
File Type:pdf, Size:1020Kb
ADMINISTRACION´ DE SISTEMAS UNIX Antonio Villal´onHuerta <[email protected]> Sergio Bayarri Gausi <[email protected]> Mayo, 2005 2 ´Indice General 1 Introducci´on:el superusuario 5 1.1 Conceptos b´asicospara administradores . 5 1.2 El entorno del superusuario . 5 1.3 El papel del administrador . 6 1.4 Comunicaci´oncon los usuarios. 7 2 Arranque y parada de m´aquina 11 2.1 Arranque del sistema . 11 2.2 Parada del sistema . 16 2.3 El int´erpretede ´ordenes . 16 3 Procesos 19 3.1 Conceptos b´asicos . 19 3.2 Actividades de los usuarios . 20 3.3 Control de procesos . 23 4 Sistemas de ficheros 27 4.1 Ficheros . 27 4.2 Sistemas de ficheros . 29 4.3 Creaci´one incorporaci´onde sistemas de ficheros . 30 4.4 Gesti´ondel espacio en disco . 31 4.5 Algunos sistemas de ficheros . 32 5 Tareas. Mantenimiento del sistema 35 5.1 Gesti´onde usuarios . 35 5.2 Automatizaci´onde tareas . 39 5.3 Actualizaci´one instalaci´onde paquetes software . 42 5.4 Copias de seguridad . 44 5.4.1 Consejos a considerar al realizar copias de seguridad . 45 5.4.2 Planificaci´onde un programa de copias de seguridad . 45 5.4.3 Realizaci´onde copias de seguridad y restauraci´onde archivos . 46 5.4.4 Ejemplo pr´actico:copia de seguridad del sistema . 51 5.4.5 Resumen . 52 5.5 Instalaci´onde la red . 52 5.5.1 Conceptos sobre redes . 52 5.5.2 Configuraci´onde la red . 55 5.5.3 Configuraci´onde servicios en Internet . 61 5.5.4 Utilidades de red . 64 5.6 El servicio de impresi´on . 65 5.7 Configuraci´ondel correo electr´onico . 67 5.7.1 Conceptos . 67 5.7.2 El gestor de correo sendmail ........................... 67 3 4 Sergio Bayarri Gausi 6 Seguridad 73 6.1 Seguridad f´ısicade la m´aquina . 73 6.2 Shadow Password . 74 6.3 Ataques externos al sistema . 75 6.3.1 Introducci´on . 75 6.3.2 Negaci´onde servicio (Denial of Service) . 76 6.3.3 Acceso a servicios . 76 6.3.4 Informaci´onsobre el sistema . 78 6.4 Ataques internos al sistema . 80 6.4.1 Introducci´on . 80 6.4.2 Demonios y SUID . 80 6.4.3 Acceso a informaci´on. 80 6.4.4 DoS . 81 6.5 Registro de actividades . 81 6.5.1 syslog/syslog.conf . 81 6.5.2 Informes del sistema . 84 6.5.3 Ejemplos del fichero /etc/syslog.conf ..................... 87 6.6 Software de Seguridad para m´aquinasUnix . 89 6.6.1 Tcp Wrappers . 89 6.6.2 Crack . 91 6.6.3 Tripwire . 91 6.6.4 COPS . 91 6.6.5 Secure Shell . 92 6.6.6 LSOF, ls Open Files . 92 A El sistema X Window 93 A.1 >Qu´ees X Window? .................................... 93 A.2 >Qu´ees un sistema Cliente/Servidor? . 94 A.2.1 Posibilidades de salida . 95 A.2.2 Posibilidades de la interfaz de usuario . 95 A.2.3 Posibilidades de entrada . 95 A.3 Trabajando con X Window ................................ 95 A.3.1 Navegaci´onpor X Window ............................ 96 A.3.2 Xterm . 96 A.3.3 Conexiones remotas . 96 A.4 Gestores de ventanas para X Window .......................... 98 B Direcciones de inter´esen INet 109 B.1 Varios . 109 B.2 Seguridad . 110 B.3 Revistas On-Line . 110 B.4 X-Window . 111 B.5 Programaci´on. 111 B.6 Compa~n´ıas . 112 C El n´ucleode Linux 113 C.1 Introducci´on. 113 C.2 La organizaci´ondel n´ucleo. 113 C.3 Configurando y compilando el n´ucleo. 117 C.4 M´odulos. 119 Cap´ıtulo1 Introducci´on:el superusuario 1.1 Conceptos b´asicospara administradores El administrador de una m´aquinaUnix se conoce habitualmente como root (´estees su nombre de entrada al sistema o login), y la principal caracter´ısticadistintiva respecto al resto de usuarios de una m´aquinaes su UID, igual a 0 (el GID tambi´enes 0 en ciertos Unices). Este hecho le va a permitir evitar todos los controles del sistema operativo en cuanto a permisos de ficheros, acceso al hardware, protecci´onde memoria, etc. Por tanto, el root o superusuario es (o ha de ser) la ´unicaentidad del sistema con acceso total a los recursos del entorno. Aunque en principio cualquier usuario con UID 0 en el archivo de contrase~nastendr´aprivilegios de administrador, en la mayor´ıa de los casos es conveniente por seguridad y estabilidad de la m´aquinaque este tipo de usuario sea ´unicoy con login `root'. El root ha de suministrar al resto de usuarios un entorno fiable, seguro y estable en el cual puedan desarrollar sus trabajos de forma efectiva. Aunque a muchas m´aquinasUnix se les asigna un administrador elegido entre todos los usuarios, esto no suele ser una buena opci´ona la larga: el superusuario ha de ser una persona t´ecnicamente preparada para desarrollar todas las actividades propias de esta tarea (que veremos m´asadelante), y por supuesto ha de tener unos conocimientos del sistema muy superiores al del resto de usuarios. Aparte de poseer conocimientos t´ecnicos,ha de tener una gran responsabilidad, ya que su papel suele ser tambi´ennormativo: tiene que definir unas reglas de convivencia y aprovechamiento del sistema para regular su uso. Suele ser una regla habitual { y recomendable { entre administradores el crear para s´ımismos un usuario com´un,sin ning´unprivilegio especial, para trabajar de forma normal en el sistema. As´ı, las entradas a la m´aquinacomo superusuario se minimizan, y s´olose realizan para efectuar tareas privilegiadas, como copias de seguridad, actualizaci´onde software o creaci´onde nuevos usuarios. Es importante recordar que s´olodebemos utilizar un acceso privilegiado para las tareas que lo re- quieran, no para el resto: no hay m´asque pensar en que, si tenemos un peque~noerror como usuario `root', podemos destruir por completo el sistema. 1.2 El entorno del superusuario El shell o int´erpretede ´ordenesdel sistema Unix proporciona para el administrador un valor especial de la variable de entorno $PS1, `#', en lugar de los habituales `$', `%' o `>', proporcionados al resto de usuarios. Esto no da ning´unprivilegio especial al administrador (recordemos que todos sus privilegios provienen del UID 0), y cualquier usuario puede modificar el valor de su $PS1 para igualarlo a `#'; sin embargo es ´utilpara recordar a la persona encargada del sistema que est´a trabajando sin ning´untipo de restricci´on,por lo que un error en sus acciones puede ser fatal para la m´aquina. 5 6 Sergio Bayarri Gausi Otras variables de entorno que suelen diferir del resto de usuarios son el directorio $HOME, que para el root es / o /root/ generalmente, y tambi´enel $PATH, que incluir´aciertos directorios como /sbin/ o /usr/sbin/, donde se encuentran mandatos para la administraci´ondel sistema que no son necesarios para un usuario sin privilegios. En la pr´acticatotalidad de sistemas Unix, las conexiones a la m´aquinacomo root mediante tel- net u otro tipo de acceso remoto est´anlimitadas a una serie de terminales denominadas `seguras', terminales que generalmente son la propia consola del equipo y sus terminales virtuales (es decir, restringimos las conexiones root al monitor f´ısicodel ordenador); con esto se evita que el root pueda conectar desde cualquier lugar de la red, y su password sea capturado por un potencial in- truso. La forma de definir qu´eterminales son las autorizadas para el administrador var´ıaentre diferentes Unices; por ejemplo, en SunOS se definen en el archivo /etc/ttytab, en Solaris e IRIX en /etc/default/login, en OSF/1 en /etc/securettys, etc. En el caso de HP-UX y Linux, la lista de terminales seguras se encuentra en el fichero /etc/securetty; como hemos dicho, es con- veniente que s´olose permita una conexi´on root desde el monitor f´ısicodel ordenador, para evitar as´ıel movimiento de una contrase~nade superusuario por la red. Sin embargo, tambi´ense permite la administraci´onremota: en casos de urgencia, es posible para el root entrar al sistema como un usuario normal, y obtener privilegios de superusuario mediante la orden su: rosita:~$ id uid=1000(toni) gid=100(users) groups=100(users) rosita:~$ su Password: rosita:/home/toni# id uid=0(root) gid=0(root) groups=0(root) rosita:/home/toni# exit exit rosita:~$ id uid=1000(toni) gid=100(users) groups=100(users) rosita:~$ Acabamos de comentar que las conexiones como root se van a producir sobre todo desde la consola del sistema. Por defecto, algunos Unices como Linux, FreeBSD o SCO1 nos van a ofrecer en modo texto varias terminales (por norma general 6, de tty1 a tty6); podremos conmutar entre ellas pulsando Alt-F[1..6]. Si pulsamos Alt-F7 llegamos a la salida de los sistemas de ventanas (para conmutar entre estos y el modo texto). Este conjunto de terminales virtuales en la consola del sistema es muy ´utilpara m´aquinassin entorno gr´afico,en los que si s´olotuvi´eramosuna terminal y esta se inutilizara por cualquier motivo, no podr´ıamostrabajar en modo local. Aunque con seis terminales suele ser m´asque suficiente para la correcta administraci´ondel sistema, si en alg´unmomento necesitamos m´aspodemos conseguirlas mediante ´ordenescomo agetty, mingetty o ttymon (dependiendo del Unix en que trabajemos), con las opciones adecuadas. 1.3 El papel del administrador Las tareas de un administrador dependen habitualmente del tipo de sistema del cual se ocupe, y.