• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Administracion de Sistemas
 

Administracion de Sistemas

on

  • 477 views

Es la práctica 2 en centos sobre la asignatura de administración de sistemas.

Es la práctica 2 en centos sobre la asignatura de administración de sistemas.

Statistics

Views

Total Views
477
Views on SlideShare
477
Embed Views
0

Actions

Likes
0
Downloads
9
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Administracion de Sistemas Administracion de Sistemas Document Transcript

    • Administración de Sistemas Dominio en Linux I TAHISA M. D ÍAZ D ÍAZ M ARÍA D. BATISTA G ALVÁN E SCUELA T ÉCNICA S UPERIOR DE I NGENIERÍA I NFORMÁTICA Universidad de La Laguna
    • R ESUMEN . El presente informe describe los pasos seguidos para la consecución dela segunda práctica de laboratorio de Administración de Sistemas. Dicha práctica con-sistió en la implementación de un dominio para la organización creada en la prácticaanterior. Para la cual se hizo uso de las herramientas proporcionadas por Linux y fueronnecesarios la instalación y configuración de servicios tales como NFS, LDAP y autofs.En este dominio toda la información de la organización, tanto referente a los datos co-mo a los usuarios, estaría almacenada y administrada en el servidor, y los datos seríanaccesible desde la máquina cliente por los usuarios de la organización, lo cuál se tuvoen cuenta a la hora de implementarlo. Ambas máquinas, tanto servidor como cliente,habían sido previamente creadas y configuradas en la práctica anterior, por lo cual estapráctica podría considerarse como una ampliación de la situación anterior con el fin deobtener un caso más realista sobre una organización corporativa.En definitiva, el objetivo del presente informe es explicar cómo se montó el dominiocumpliendo con los requerimientos exigidos por la organización (en este caso, por elsupuesto práctico), los cuales van a marcar la estructura del informe, pues se irá respon-diendo qué se hizo para cumplirlos y se describirá de qué manera se hizo. Estos reque-rimientos van, desde cuestiones de seguridad (quién puede acceder a qué y cómo puedehacerlo), hasta la estructura organizativa (máquinas, usuarios, grupos, directorios). 1
    • Índice1. Sistemas 32. Directorio de cada usuario 63. Proyectos en ejecución 84. Proyectos en ejecución 95. Situación actual de la Organización 9Anexos 10A. Autofs 10B. Script 13C. Seguridad 18 2
    • 1. Sistemas Uno de los ordenadores (máquina virtual) de la organización debe actuar como servidor tantopara el servicio openldap como para el servicio NFS. Todas las cuentas de usuarios y grupos debenser gestionadas por este servidor. El otro ordenador (máquina virtual) actuará como cliente y accederá al servidor tanto en losprocesos de autenticación como para acceder a la información de la organización (directorios deusuarios e información de los proyectos). En el Servidor: Se instalaron en primer lugar los paquetes necesarios [root@:~]# yum install -y openldap-servers openldap-clients Se renombró el archivo ldap.conf con el fin de que no interfiriera con la instalación que posteriormentese realizaría: [root@:~]# mv /etc/openldap/ldap.conf /etc/openldap/ldap.conf. old A continuación, se modificaron los ficheros de configuración /etc/openldap/slapd.d /cn=config, enbase al dominio as07.org, en primer lugar: [root@:~]# vi /etc/openldap/slapd.d/cn=config/olcDatabase={2}bdb .ldif dentro del mismo se modificaron el nombre de dominio del servidor y el nombre distinguido deladministrador del LDAP en las líneas correspondientes: 1 olcSuffix: dc=as07, dc=org 2 olcRootDN: cn=Manager,dc=as07,dc=org en cuánto a la contraseña para dicho administrador, tuvo que encriptarse previamente con el coman-do slappasswd, que genera la encriptación de la contraseña que se introduzca. Por lo que se copió lacontraseña generada, y se modificó la línea correspondiente en el archivo anterior: 1 olcRootPW: {SSHA}a45rTI6toGH1z02+hjhjW6ffyX+a9ZpQ En segundo lugar, se modificó el DN del administrador especificado anteriormente en el fichero /et-c/openldap/slapd.d/cn=config/olcDatabase=1monitor.ldif, en la línea correspondiente (olcAccess) aña-diendo el DN correspondiente (cn=Manager, dc=as07,dc=org). Seguidamente, una vez configurado, se inició el demonio slapd: 3
    • [root@:~]# service slapd start A la hora de añadir, modificar o consultar entradas se podía utilizar diferentes herramientas (gráficaso comandos de consola). Una de las que se utilizaron fueron las migrationtools. Para instalarlas se hizolo siguiente: [root@:~]# yum install -y migrationtools Al instalarla se creó el directorio /usr/share/migrationtools donde se almacenaron una serie de scripts,por nos cambiamos al susodicho para poder ejecutarlos: [root@:~]# cd /usr/share/migrationtools Por ejemplo, para la presente práctica fueron útiles los siguiente: [root@:~]# ./migrate_passwd.pl /etc/passwd >> users.ldif [root@:~]# ./migrate_group.pl /etc/group >> group.ldif Para las cuales al introducirles los ficheros del sistema (en este caso, el passwd y el group) generael formato de las entradas con todos los usuarios y grupos del sistema. Por lo cual, en nuestro casofueron redirigidas a otros ficheros, los cuáles hubo que modificar posteriormente para seleccionar tansólo aquellos usuarios y grupos necesarios, y cambiar el nombre distinguido del dominio. Luego, esos archivos se agregaron al LDAP: [root@:~]# ldapadd -xD "cn=Manager,dc=as07,dc=org" -W -f group. ldif Otra manera de realizar el proceso era gráficamente, por lo que una alternativa era el jxexplorer, elcual fue necesario descargar de la web. Una vez descargado se extrajo y pudo ser ejecutado mostrando unmenú gráfico con el estado del dominio donde se podía crear, modificar o consultar a través de ventanaslas entradas de LDAP. Previamente, para conectarse al servidor LDAP se especificaron algunos parámetros configuradosanteriormente: 1 host: localhost 2 port: 389 3 Base DN: dc=as07,dc=org 4 Level: User+Password 5 User DN: dc=Manager,dc=as07,dc=org 6 Password: a****** 4
    • Por ejemplo, está herramienta fue útil para cambiarle a cada usuario su directorio “home”, presio-nando sobre dicho usuario en el árbol y en el atributo homeDirectory: “/import/casa/usuario”. dc=org dc=as07 ou=Group ou=People usu1 usu2 usu3 usu4 usu5 usu6 ejec1 ejec2 aerpuertoACL comercialACL comun ejecutivo ... En el cliente: En cuanto al cliente, lo único necesario fue instalar los paquetes openldap-clients y nss-pamldapd,éste último permitiría autenticarse a los usuarios con el servidor LDAP. Luego, se comprobó que era posible acceder a la información del servidor, por ejemplo: [root@:~]# ldapsearch -h 192.168.1.10 -x -b "dc=as07,dc=org" " surname=usu*" Para configurar la autenticación a través del servidor LDAP se utilizó la herramienta authconfig-tuien la cual se especificó que se quería emplear LDAP, la IP del servidor y el DSE. 5
    • 2. Directorio de cada usuario Todo usuario del sistema debe poseer un subdirectorio en la máquina servidora en la ruta/home cuyo nombre debe coincidir con el nombre del usuario. Este directorio debe ser accesi-ble al usuario (como directorio home) bajo la ruta “/import/casa/<nombre_usuario>” encualquier ordenador de la organización. Se deben cumplir los siguientes requisitos: Sólo podrán acceder a este directorio los ordenadores de la organización, suponiendo que todos los equipos se encuentran en la red 192.168.1.0. Para que cada usuario que entrase en el equipo cliente pudiera acceder a su directorio raíz ubicado enel equipo servidor (sin percatarse que a si fuese), se tuvo que usar tanto en la máquina del servidor comoen la del cliente el servicio NFS. Este servicio permitió que el equipo cliente pudiera montar y accedera estos subdirectorios remotos, exportados por el equipo servidor, es decir, tener todos los directorioshome centralizados y en una sóla máquina. Además, se hizo necesario utilizar en la máquina del clienteel servicio rpcbind para asignar dinámicamente los puertos utilizados por NFS. Para ello, primero se tuvo que preparar ambos equipos (servidor y cliente) para poder soportar dichosservicios, de manera que estos servicios fueron instalados en las máquinas correspondientes: [root@:~]# yum install -y nfs-utils nfs-utils-lib [root@:~]# yum install -y rpcbind Luego, se inicializó en el cliente los demonios rpcbind y nfs y en el servidor el demonio nfs: [root@:~]# service nfs start [root@:~]# service rpcbind start A la hora de configurar el sistema para el subdirectorio home fuera accesible, únicamente desdetodas las máquinas (192.168.1.0), se hizo uso de un fichero existente en el servidor “/etc/export”.En dicho fichero, cada línea define un directorio y las máquinas que están permitidas conectarse a esedirectorio, así como los permisos asociados a cada uno. Por lo tanto, se incorporó una línea al ficherodonde se estableció que todas las máquinas (192.168.1.0) tuvieran permisos de lectura/escritura (rw) ylos accesos de root desde el cliente se convierten en el servidor como un usuario anónimo (root_squash).Para poderlo realizar en un script de manera automática se utilizó el comando echo y el operador “>>”. [root@:~]# echo "/home/ 192.168.1.0/24 (rw,root_squash)" >> / etc/exports En este punto, ya sólo fue necesario refrescar la nueva configuración, para ello se utilizó el comandoexportfs con las siguientes opciones que se describen a continuación: Opciones Descripción : exportfs -a Exporta todos los directorios. -v Muestra los detalles. -r Refresca la lista de exportación con cualquier cambio. 6
    • [root@:~]# exports -avr Una vez terminado con el servidor, se tuvo que configurar el cliente. Aunque primero se tuvo quecrear el directorio donde se importaría el directorio remoto /home, tal como se hizo en la prácticaanterior: [root@:~]# mkdir -p /import/casa/ Luego, para llevar a cabo la configuración, y poder realizar el montaje, se optó por utilizar la líneade comandos en vez de estar editando el fichero “/etc/fstab”, mediante el comando mount y susopciones: Opciones Descripción : mount -t Especifica el tipo de sistema de archivos a instalar. -o Dice a mount que aplique las opciones que son especificadas para el sistema de archivos que se montará. [root@:~]# mount -t nfs -o vers=3 192.168.1.10 /home/ /import/ casa Donde /home sería el directorio remoto, 192.168.1.10 la IP del servidor y /import /casa eldirectorio cliente donde se montaría el directorio remoto. En este directorio, el usuario debe poder crear y borrar ficheros y directorios, pero no debe poder modificar los permisos del mismo (directorio home del usuario). Ningún otro usuario del sistema debe poder acceder a este directorio ni a su contenido. Al tener ya configurado el servidor bajo estos requisitos realizados en la práctica anterior, no se tuvoque añadir nada nuevo para poder cumplir esta parte. Puesto que aunque todos los usuarios se les denpermiso de lectura y escritura en el directorio de conexión se preservan los permisos del mismo. 7
    • 3. Proyectos en ejecución Cada proyecto debe tener un directorio bajo el directorio “/export/proyectos” donde sealmacenará la información relativa a los mismos. Debe cumplir: Este directorio debe residir físicamente en el servidor. Sólo podrán acceder los ordenadores de la organización a este directorio. Este directorio debe ser accesible desde cualquier ordenador de la organización en la ruta “/import/proyectos”. Se actuó de igual manera que en el apartado 2. Aunque esta vez no se tuvo que instalar los paquetesNFS ni rpcbind, ni inicializar los demonios puesto que ya están corriendo. En el cliente: [root@:~]# echo "/export/proyectos/ 192.168.1.0/24 (rw,root _squash)" >> /etc/exports [root@:~]# exports -avr En el servidor: [root@:~]# mkdir -p /import/proyectos/ [root@:~]# mount -t nfs -o vers=3 192.168.1.10 /export/proyectos / /import/proyectos/ Todos los usuarios que participan en un proyecto deben tener la posibilidad de leer, modificar, crear y borrar los archivos que forman parte del proyecto. Cuando un usuario cree un archivo en el directorio del proyecto, por defecto, éste debe poder ser leído, modificado o borrado por cualquier otro usuario del mismo proyecto, mientras que el resto de los usuarios tendrán denegado el acceso a estos directorios. Al tener ya configurado el servidor bajo estos requisitos realizados en la práctica anterior, no se tuvoque añadir nada nuevo para poder cumplir esta parte. 8
    • 4. Proyectos en ejecución El servidor debe ofrecer un directorio denominado “/export/info/comun” para cualquierordenador o usuario que quiera utilizarlo. Este directorio será de sólo lectura y todos los accesosdeberán ser considerados como anónimos. En este apartado, aunque los requerimientos son similares a los de los apartados 2 y 3, se diferenciapor las opciones permitidas en el directorio del servidor. Para suplir estas restricciones se utilizó lasopciones de sólo lectura (ro), la de que todos los accesos se transforman en accesos de usuarios anónimosy la de especificación de la identidad del grupo de usuario (anongid, que es un grupo ya creado en elservidor llamado comun). Por el resto, como puede observarse sigue igual: En el cliente: [root@:~]# echo "/export/info/comun/ 192.168.1.0/24 (ro,all _squash,anongid=487)" >> /etc/exports [root@:~]# exports -avr En el servidor: [root@:~]# mkdir -p /import/info/comun/ [root@:~]# mount -t nfs -o vers=3 192.168.1.10 /export/info/ comun/ /import/info/comun/5. Situación actual de la Organización En la actualidad, la empresa tiene la misma configuración de usuarios y proyectos que fuerondefinidos para la práctica 1. Como ya se ha comentado en apartados anteriores, al realizar una importación de la gestión de usua-rios, grupos, directorios y proyectos desde el servidor al cliente, no se tuvo que realizar ninguna operaciónadicional gracias a los servicios de NFS y NIS. Debido a que en el servidor todos estos requerimientosya estaban contemplados y realizados. 9
    • ANEXOSA. Autofs En este anexo se muestra una alternativa más efeciente para montar las particiones que se realiza-ron en los apartados de la práctica. La que se propuso fue modificando el archivo /etc/fstab, quenos llevaría a tener montado el directorio remoto en la máquina cliente. Para evitar esto, se utilizará elservicio automount, que montará las particiones de forma automática y bajo demanda. Es decir, unavez ejecutado el servicio autofs al arranque del sistema, cuando se accede a un punto de montaje, esteservicio invoca al automount para que recorra cada línea del fichero “/etc/auto.master”. Y sedesactiva transcurrido un tiempo sin utilizar. En primer lugar será necesario instalar el paquete “autofs” que será el que nos permita poderrealizar lo antes comentado: [root@:~]# yum install -y autofs Luego, se edita el fichero “/etc/auto.master” en el cual se le añadirá una línea por cadapunto de montaje (“/import/casa/”, “/import/proyectos/” y “/import/info/” ) en elsistema con su fichero NIS correspondiente (“/etc/ auto.casa”, “/etc/auto.proyectos”y /etc/auto.comun”). [root@:~]# echo "/import/casa/ /etc/auto.casa" >> /etc/auto. master [root@:~]# echo "/import/proyectos/ /etc/auto.proyectos" >> /etc /auto.master [root@:~]# echo "/import/info/ /etc/auto.info" >> /etc/auto. master A continuación, se crean los ficheros NIS que constarán de 3 partes. La primera indicará la ruta debúsqueda situada en el punto de montaje (en este caso, se usó el comodín “*” que hará uso de todos losarchivos y subdirectorio), la segunda serán las opciones (que en nuestro caso, no se hizo uso de ellas) yla tercera indicará la ubicación donde se encuentra el directorio original. [root@:~]# echo "* 192.168.1.10:/home/&" >> /etc/auto.casa [root@:~]# echo "* 192.168.1.10:/export/proyectos/&" >> /etc/ auto.proyectos [root@:~]# echo "* 192.168.1.10:/export/info/&" >> /etc/auto. info Por último, se inicializa el demonio y se hacen efectivos todos los cambios realizados. [root@:~]# service autofs start 10
    • A continuación, se describe una alternativa a los montajes de archivos. Esta vez se realizará el ser-vicio automount utilizando el servicio LDAP. Para ello, se creará un nuevo esquema de configu-ración que se ajuste mejor a lo que nosotros necesitamos. Para ello, se edita el fichero /etc/openlda-p/slapd/cn=config/olcDatabase=/0/config.ldif añadiendo al atributo “olcRootDN” el valor: cn=admin,cn=config, además, en este caso se añadió el atributo “olcRootPW” y como valor la contraseña cifrada(tal como se hizo en el apartado 1. Posteriormente, se bajó el archivo .ldif con el esquema proporcionado por el profesor cuyo contenidoes el siguiente: 1 dn: cn=autofs,cn=schema,cn=config 2 objectClass: olcSchemaConfig 3 cn: autofs 4 olcAttributeTypes: {0}( 1.3.6.1.1.1.1.25 NAME ’automountInformation’ DESC ’Inf 5 ormation used by the autofs automounter’ EQUALITY caseExactIA5Match SYNTAX 1. 6 3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE ) 7 olcObjectClasses: {0}( 1.3.6.1.1.1.1.13 NAME ’automount’ DESC ’An entry in an 8 automounter map’ SUP top STRUCTURAL MUST ( cn $ automountInformation $ object 9 class ) MAY description ) 10 olcObjectClasses: {1}( 1.3.6.1.4.1.2312.4.2.2 NAME ’automountMap’ DESC ’An gro 11 up of related automount objects’ SUP top STRUCTURAL MUST ou ) Y por último, se añadió el esquema al ldap con el comando ldapadd comentado en el anexo 1: [root@:~]# ldapadd -xD "cn=admin,cn=config" -W -f autofs.ldif Para acabar se deberá introducir las entradas necesarias para configurar el autofs tal como lo habíadefinido antes. El fichero .ldif que se hizo necesario fue el siguiente: 1 dn: ou=admin,dc=as07,dc=org 2 ou: admin 3 objectClass: top 4 objectClass: organizationalUnit 5 6 dn: ou=automount,ou=admin,dc=as07,dc=org 7 ou: automount 8 objectClass: top 9 objectClass: organizationalUnit 10 11 dn: ou=auto.master,ou=automount,ou=admin,dc=as07,dc=org 12 ou: auto.master 13 objectClass: top 14 objectClass: automountMap 15 16 dn: cn=/import/casa,ou=auto.master,ou=automount,ou=admin,dc=as07,dc=org 17 cn: /import/casa 18 objectClass: top 19 objectClass: automount 20 automountInformation: ldap:ou=auto.casa,ou=automount,ou=admin,dc=as07,dc=org --timeout =60 --ghost 21 22 dn: cn=/import/proyectos,ou=auto.master,ou=automount,ou=admin,dc=as07,dc=org 23 cn: /import/proyectos 24 objectClass: top 25 objectClass: automount 26 automountInformation: ldap:ou=auto.proyectos,ou=automount,ou=admin,dc=as07,dc=org -- timeout=60 --ghost 27 11
    • 28 dn: cn=/import/info,ou=auto.master,ou=automount,ou=admin,dc=as07,dc=org 29 cn: /import/info 30 objectClass: top 31 objectClass: automount 32 automountInformation: ldap:ou=auto.info,ou=automount,ou=admin,dc=as07,dc=org --timeout =60 --ghost 33 34 dn: ou=auto.casa,ou=automount,ou=admin,dc=as07,dc=org 35 ou: auto.casa 36 objectClass: top 37 objectClass: automountMap 38 39 dn: cn=*,ou=auto.casa,ou=automount,ou=admin,dc=as07,dc=org 40 cn: * 41 objectClass: top 42 objectClass: automount 43 automountInformation: -fstype=nfs,rw,hard,intr,nodev,exec,nosuid,rsize=8192,wsize=8192 192.168.1.10:/home/& 44 45 dn: ou=auto.info,ou=automount,ou=admin,dc=as07,dc=org 46 ou: auto.info 47 objectClass: top 48 objectClass: automountMap 49 50 dn: cn=*,ou=auto.info,ou=automount,ou=admin,dc=as07,dc=org 51 cn: * 52 objectClass: top 53 objectClass: automount 54 automountInformation: -fstype=nfs,rw,hard,intr,nodev,exec,nosuid,rsize=8192,wsize=8192 192.168.1.10:/export/info/& 55 56 dn: ou=auto.proyectos,ou=automount,ou=admin,dc=as07,dc=org 57 ou: auto.proyectos 58 objectClass: top 59 objectClass: automountMap 60 61 dn: cn=*,ou=auto.proyectos,ou=automount,ou=admin,dc=as07,dc=org 62 cn: * 63 objectClass: top 64 objectClass: automount 65 automountInformation: -fstype=nfs,rw,hard,intr,nodev,exec,nosuid,rsize=8192,wsize=8192 192.168.1.10:/export/proyectos/&Y se añade tal como se hizo antes, pero al DIT 1 que ya teníamos definido en el anexo 1: [root@:~]# ldapadd -xD "cn=Manager,dc=as07,dc=org" -W -f auto. ldif cn=admin ou=automount ou=auto.master ou=auto.casa ou=auto.proyectos ou=auto.info * * * cn=/import/casa cn=/import/proyectos cn=/import/info 12
    • B. Script A continuación se muestra el código del script que fue creado para la realización de la práctica.Este script podría mejorarse separando las funciones típicas del servidor de las del cliente, además deañadir alguna otra interesante. Principalmente, el motivo que conllevo a la realización conjunta fue queal realizarla en casa, el ordenador era el mismo. 1 #!/bin/bash 2 3 clear 4 5 # Este filtro sólo dejará ejecutar el script al root 6 if [ "‘whoami‘" != "root" ]; then 7 echo -e "n" 8 echo -e "033[1;31m Permiso denegado : No eres root. 033[0m" 9 echo -e "n" 10 exit 1 11 fi 12 13 #*********************************************************************************** 14 # FUNCIONES CON ENTRADAS PARA BASE DE OTRAS 15 #*********************************************************************************** 16 17 # Es la función que crea la cabecera del scripts 18 function cabecera 19 { 20 clear 21 echo -e "033[1m***********************************************************" 22 echo " $1 " 23 echo -e "***********************************************************" 24 } 25 26 # Función : Activa los demonios necesarios con los parámetros 27 function actDem 28 { 29 service $1 $2 30 } 31 32 # Función : Instala los paquetes necesarios 33 function instalar 34 { 35 yum install $1 36 } 37 38 #*********************************************************************************** 39 # FUNCIONES DE LOS MENÚS 40 #*********************************************************************************** 41 42 # GESTIÓN DE OpenLDAP : instalarLDAP 43 # Función : Instala todos los paquetes necesarios 44 function instalarLDAP 45 { 46 cabecera "OpenLDAP : INSTALAR PAQUETES LDAP" 47 echo -e "n 033[0m" 48 49 echo -e "033[0;32m Instalando los paquetes necesarios 033[0m" 50 sleep 1 51 52 instalar openldap-servers openldap-clients migrationtools 53 54 echo -e "033[1;34m n" 55 read -p " Presiona [ENTER] para continuar. " enterKey 56 echo -e "033[0m" 57 } 58 59 # GESTIÓN DE OpenLDAP : instalar 13
    • 60 # Función : Instala todos los paquetes necesarios 61 function addLDAP 62 { 63 cabecera "OpenLDAP : ANADIR LDAP" 64 echo -e "n 033[0m" 65 66 echo -e "033[0;32m Ej: DN: cn=Manager,dc=as07,dc=org 033[0m" 67 sleep 1 68 read -p " Nombre Distinguido : " DN 69 if [ -z "$DN" ]; then 70 DN="cn=Manager,dc=as07,dc=org" 71 fi 72 73 read -p " Fichero ldif : " fichero 74 if [ -n "$DN" ]; then 75 ldapadd -xD "$DN" -W -f $fichero 76 else 77 echo -e -n "033[1;31m No se ha introducido fichero. 033[0m" 78 fi 79 80 echo -e "033[1;34m n" 81 read -p " Presiona [ENTER] para continuar. " enterKey 82 echo -e "033[0m" 83 } 84 85 # GESTIÓN DE NFS : Configurar Servidor 86 # Función : Se instala los paquetes y se tratan los demonios 87 function confServer 88 { 89 cabecera "NFS : CONFIGURAR SERVIDOR" 90 echo -e "n 033[0m" 91 92 echo -e "033[0;32m Instalando los paquetes necesarios 033[0m" 93 sleep 1 94 95 instalar nfs-utils nfs-utils-lib 96 actDem iptables stop 97 actDem slapd start 98 99 echo -e "033[1;34m n"100 read -p " Presiona [ENTER] para continuar. " enterKey101 echo -e "033[0m"102 }103104 # GESTIÓN DE NFS : addDirect105 # Función : Se añaden los directorios a compartir106 function compDirect107 {108 cabecera "NFS : ANADIR DIRECTORIO"109 echo -e "n 033[0m"110111 read -p " Directorio Compartir : " directorio112 read -p " IP Clientes : " IP113 if [ -z "$IP" ]; then114 IP="192.168.1.0/24"115 fi116 read -p " Permisos : " permisos117 if [ -z "$permisos" ]; then118 permisos="rw,root_squash"119 fi120121 # Añadir aquí que si directorio = NULL entonces no hacer nada122 echo "$directorio $IP($permisos)" >> /etc/exports123 echo -e "n 033[0m"124125 exportfs -rav126127 echo -e "033[1;34m n"128 read -p " Presiona [ENTER] para continuar. " enterKey129 echo -e "033[0m" 14
    • 130 }131132 # GESTIÓN DE NFS : Configurar Cliente133 # Función : Se instala los paquetes y se tratan los demonios134 function confServer135 {136 cabecera "NFS : CONFIGURAR CLIENTE"137 echo -e "n 033[0m"138139 echo -e "033[0;32m Instalando los paquetes necesarios 033[0m"140 sleep 1141142 instalar nfs-utils rpcbind143 actDem rpcbind start144145 echo -e "033[0;32m Comprobamos la informacion 033[0m"146 sleep 1147 rpcinfo -p148149 echo -e "033[1;34m n"150 read -p " Presiona [ENTER] para continuar. " enterKey151 echo -e "033[0m"152 }153154 # GESTIÓN DE NFS : Montar155 # Función : Se monta la máquina en el cliente156 function montar157 {158 cabecera "NFS : MONTAR"159 echo -e "n 033[0m"160161 read -p " Directorio Servidor : " directorioServer162 read -p " Directorio Cliente : " directorioClient163 read -p " IP Servidor : " IP164 if [ -z "$IP" ]; then165 IP="192.168.1.10"166 fi167168 # Añadir aquí que si directorio = NULL entonces no hacer nada169 mount -t nfs -o vers=3 $IP:$directorioServer $directorioClient170171 echo -e "033[1;34m n"172 read -p " Presiona [ENTER] para continuar. " enterKey173 echo -e "033[0m"174 }175176 # GESTIÓN DE NFS : Desmontar177 # Función : Se desmonta la máquina en el cliente178 function umontar179 {180 cabecera "NFS : DESMONTAR"181 echo -e "n 033[0m"182183 read -p " Directorio a Desmontar : " directorioClient184185 # Añadir aquí que si directorio = NULL entonces no hacer nada186 umount $directorioClient187188 echo -e "033[1;34m n"189 read -p " Presiona [ENTER] para continuar. " enterKey190 echo -e "033[0m"191 }192193 # GESTIÓN DE AUTOFS : instalarAutofs194 # Función : Instala todos los paquetes necesarios195 function instalarAuto196 {197 cabecera "OpenLDAP : INSTALAR PAQUETES Autofs"198 echo -e "n 033[0m"199 15
    • 200 echo -e "033[0;32m Instalando los paquetes necesarios 033[0m"201 sleep 1202203 instalar autofs autofs-ldap ldap-utils204205 echo -e "033[1;34m n"206 read -p " Presiona [ENTER] para continuar. " enterKey207 echo -e "033[0m"208 }209210 #***********************************************************************************211 # MENÚS212 #***********************************************************************************213214 # MENÚ OpenLDAP -----------------------215 function menuLDAP216 {217 cabecera USUARIOS218219 select opcionUsu in "Configurar" "Paquetes" "Anadir" "Salir"220 do221 echo -e "n 033[0m"222 case "$opcionUsu" in223 "Configurar") ;;224 "Paquetes") instalarLDAP;;225 "Anadir") addLDAP;;226 "Salir") break;;227 esac228 break229 done230 }231232 # MENÚ NFS -----------------------233 function menuNFS234 {235 cabecera USUARIOS236237 select opcionUsu in "Configurar Servidor" "Compartir Directorio" "Configurar Cliente" "Montar" "Desmontar" "Salir"238 do239 echo -e "n 033[0m"240 case "$opcionUsu" in241 "Configurar Servidor") confServer;;242 "Compartir Directorio") compDirect;;243 "Configurar Cliente") confClient;;244 "Montar") montar;;245 "Desmontar") umontar;;246 "Salir") break;;247 esac248 break249 done250 }251252 # MENÚ AUTOFS -----------------------253 function menuAuto254 {255 cabecera USUARIOS256257 select opcionUsu in "Paquetes" "Salir"258 do259 echo -e "n 033[0m"260 case "$opcionUsu" in261 "Paquetes") instalarAuto;;262 "Salir") break;;263 esac264 break265 done266 }267268 # MENÚ PRINCIPAL ---------------------- 16
    • 269 while true270 do271 cabecera "GESTION DE USUARIOS"272273 PS3="Elige una opcion : "274 select opcion in "OpenLDAP" "NFS" "autofs" "Demonios" "Salir"275 do276 case "$opcion" in277 "OpenLDAP") menuLDAP;;278 "NFS") menuNFS;;279 "autofs") menuAuto;;280 "Demonios") actDem slapd start281 actDem nfs start282 actDem iptables stop283 actDem autofs start;;284 "Salir") clear285 echo -e "n 033[1m"286 echo -n " Guardando los cambios ... "287 sleep 2288 echo -e "033[0m n"289 exit 2;;290 esac291 break292 done293 done 17
    • C. Seguridad A continuación se muestra el código del script que fue creado para la otorgar una mayor seguridada la hora de la realización de la práctica. Ya que al realizarla siempre se paraba el demonio iptables.Con este script, no nos haría falta pararlo tan sólo ejecutar el script (./iptablesScript) cada vez que seiniciace el sistema. [root@:~]# service iptables stop Aunque tiene el inconveniente de que el servicio NFS no tiene puerto fijo, y se tendría que buscarcada vez que se iniciace. 1 #!/bin/bash 2 ## SCRIPT de IPTABLES 3 ## Internet: eth1 - IP dinámica 4 ## Red Local: eth1 - 192.168.1.0/24 5 6 # Borrar reglas: 7 iptables -F 8 iptables -X 9 iptables -Z 10 iptables -t nat -F 11 12 # Política por defecto (-P) (aceptar): 13 iptables -P INPUT ACCEPT 14 iptables -P OUTPUT ACCEPT 15 iptables -P FORWARD ACCEPT 16 iptables -t nat -P PREROUTING ACCEPT 17 iptables -t nat -P POSTROUTING ACCEPT 18 19 # Permiso acceso local (-A anexar, -i interface, -j jump): 20 iptables -A INPUT -i lo -j ACCEPT 21 22 # Acceso al Servidor desde la red local (-s origen) 23 iptables -A INPUT -s 192.168.1.0/24 -i eth1 -j ACCEPT 24 25 # Enmascarando la ip de la red local con IP pública dinámica: 26 iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE 27 28 # Cerrar acceso al puerto LDAP salvo para localhost (-p protocolo, --dport puerto entrada) 29 iptables -A INPUT -i lo -p tcp --dport 389 -j ACCEPT 30 iptables -A INPUT -i eth0 -p tcp --dport 389 -j REJECT 31 32 # Cerrar los accesos indeseados del exterior 33 iptables -A INPUT -s 0.0.0.0/0 -i eth0 -p tcp --dport 1:1024 -j DROP 34 iptables -A INPUT -s 0.0.0.0/0 -i eth0 -p ucp --dport 1:1024 -j DROP 35 36 service iptables start 37 38 # Comprobamos el estado final de la máquina 39 iptables -L -n 18