SlideShare une entreprise Scribd logo
1  sur  19
Télécharger pour lire hors ligne
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 de
la 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áctica
anterior. Para la cual se hizo uso de las herramientas proporcionadas por Linux y fueron
necesarios 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ían
accesible desde la máquina cliente por los usuarios de la organización, lo cuál se tuvo
en 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 esta
práctica podría considerarse como una ampliación de la situación anterior con el fin de
obtener un caso más realista sobre una organización corporativa.
En definitiva, el objetivo del presente informe es explicar cómo se montó el dominio
cumpliendo con los requerimientos exigidos por la organización (en este caso, por el
supuesto 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 puede
hacerlo), hasta la estructura organizativa (máquinas, usuarios, grupos, directorios).




                                                          1
Índice

1. Sistemas                                   3

2. Directorio de cada usuario                 6

3. Proyectos en ejecución                     8

4. Proyectos en ejecución                     9

5. Situación actual de la Organización        9

Anexos                                       10

A. Autofs                                    10

B. Script                                    13

C. Seguridad                                 18




                                         2
1. Sistemas
    Uno de los ordenadores (máquina virtual) de la organización debe actuar como servidor tanto
para el servicio openldap como para el servicio NFS. Todas las cuentas de usuarios y grupos deben
ser gestionadas por este servidor.
    El otro ordenador (máquina virtual) actuará como cliente y accederá al servidor tanto en los
procesos de autenticación como para acceder a la información de la organización (directorios de
usuarios 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 posteriormente
se 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, en
base 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 del
administrador 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ó la
contraseñ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áficas
o comandos de consola). Una de las que se utilizaron fueron las migrationtools. Para instalarlas se hizo
lo 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) genera
el formato de las entradas con todos los usuarios y grupos del sistema. Por lo cual, en nuestro caso
fueron redirigidas a otros ficheros, los cuáles hubo que modificar posteriormente para seleccionar tan
só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, el
cual fue necesario descargar de la web. Una vez descargado se extrajo y pudo ser ejecutado mostrando un
menú gráfico con el estado del dominio donde se podía crear, modificar o consultar a través de ventanas
las entradas de LDAP.
    Previamente, para conectarse al servidor LDAP se especificaron algunos parámetros configurados
anteriormente:

      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-tui
en 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>” en
cualquier 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 en
el equipo servidor (sin percatarse que a si fuese), se tuvo que usar tanto en la máquina del servidor como
en la del cliente el servicio NFS. Este servicio permitió que el equipo cliente pudiera montar y acceder
a estos subdirectorios remotos, exportados por el equipo servidor, es decir, tener todos los directorios
home centralizados y en una sóla máquina. Además, se hizo necesario utilizar en la máquina del cliente
el 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 dichos
servicios, 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 desde
todas 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 ese
directorio, así como los permisos asociados a cada uno. Por lo tanto, se incorporó una línea al fichero
donde se estableció que todas las máquinas (192.168.1.0) tuvieran permisos de lectura/escritura (rw) y
los 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 comando
exportfs 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 que
crear el directorio donde se importaría el directorio remoto /home, tal como se hizo en la práctica
anterior:

            [root@:~]# mkdir -p /import/casa/


    Luego, para llevar a cabo la configuración, y poder realizar el montaje, se optó por utilizar la línea
de comandos en vez de estar editando el fichero “/etc/fstab”, mediante el comando mount y sus
opciones:
     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 el
directorio 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 tuvo
que añadir nada nuevo para poder cumplir esta parte. Puesto que aunque todos los usuarios se les den
permiso 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 se
almacenará 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 paquetes
NFS 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 tuvo
que 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 cualquier
ordenador o usuario que quiera utilizarlo. Este directorio será de sólo lectura y todos los accesos
deberán ser considerados como anónimos.
    En este apartado, aunque los requerimientos son similares a los de los apartados 2 y 3, se diferencia
por las opciones permitidas en el directorio del servidor. Para suplir estas restricciones se utilizó las
opciones de sólo lectura (ro), la de que todos los accesos se transforman en accesos de usuarios anónimos
y la de especificación de la identidad del grupo de usuario (anongid, que es un grupo ya creado en el
servidor 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 fueron
definidos 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ón
adicional gracias a los servicios de NFS y NIS. Debido a que en el servidor todos estos requerimientos
ya estaban contemplados y realizados.




                                                     9
ANEXOS
A. 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, que
nos llevaría a tener montado el directorio remoto en la máquina cliente. Para evitar esto, se utilizará el
servicio automount, que montará las particiones de forma automática y bajo demanda. Es decir, una
vez ejecutado el servicio autofs al arranque del sistema, cuando se accede a un punto de montaje, este
servicio invoca al automount para que recorra cada línea del fichero “/etc/auto.master”. Y se
desactiva transcurrido un tiempo sin utilizar.
    En primer lugar será necesario instalar el paquete “autofs” que será el que nos permita poder
realizar 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 cada
punto de montaje (“/import/casa/”, “/import/proyectos/” y “/import/info/” ) en el
sistema 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 de
búsqueda situada en el punto de montaje (en este caso, se usó el comodín “*” que hará uso de todos los
archivos y subdirectorio), la segunda serán las opciones (que en nuestro caso, no se hizo uso de ellas) y
la 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 contenido
es 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ía
definido 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 de
añadir alguna otra interesante. Principalmente, el motivo que conllevo a la realización conjunta fue que
al 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. " enterKey
101           echo -e "033[0m"
102   }
103
104   # GESTIÓN DE NFS : addDirect
105   # Función : Se añaden los directorios a compartir
106   function compDirect
107   {
108           cabecera "NFS : ANADIR DIRECTORIO"
109           echo -e "n 033[0m"
110
111           read -p "   Directorio Compartir : " directorio
112           read -p "   IP Clientes : " IP
113           if [ -z "$IP" ]; then
114                   IP="192.168.1.0/24"
115           fi
116           read -p "   Permisos : " permisos
117           if [ -z "$permisos" ]; then
118                   permisos="rw,root_squash"
119           fi
120
121           # Añadir aquí que si directorio = NULL entonces no hacer nada
122           echo "$directorio $IP($permisos)" >> /etc/exports
123           echo -e "n 033[0m"
124
125           exportfs -rav
126
127           echo -e "033[1;34m n"
128           read -p "    Presiona [ENTER] para continuar. " enterKey
129           echo -e "033[0m"



                                                 14
130   }
131
132   # GESTIÓN DE NFS : Configurar Cliente
133   # Función : Se instala los paquetes y se tratan los demonios
134   function confServer
135   {
136           cabecera "NFS : CONFIGURAR CLIENTE"
137           echo -e "n 033[0m"
138
139           echo -e "033[0;32m     Instalando los paquetes necesarios 033[0m"
140           sleep 1
141
142           instalar nfs-utils rpcbind
143           actDem rpcbind start
144
145           echo -e "033[0;32m     Comprobamos la informacion 033[0m"
146           sleep 1
147           rpcinfo -p
148
149           echo -e "033[1;34m n"
150           read -p "    Presiona [ENTER] para continuar. " enterKey
151           echo -e "033[0m"
152   }
153
154   # GESTIÓN DE NFS : Montar
155   # Función : Se monta la máquina en el cliente
156   function montar
157   {
158           cabecera "NFS : MONTAR"
159           echo -e "n 033[0m"
160
161           read   -p   "   Directorio Servidor : " directorioServer
162           read   -p   "   Directorio Cliente : " directorioClient
163           read   -p   "   IP Servidor : " IP
164           if [   -z   "$IP" ]; then
165                       IP="192.168.1.10"
166           fi
167
168           # Añadir aquí que si directorio = NULL entonces no hacer nada
169           mount -t nfs -o vers=3 $IP:$directorioServer $directorioClient
170
171           echo -e "033[1;34m n"
172           read -p "    Presiona [ENTER] para continuar. " enterKey
173           echo -e "033[0m"
174   }
175
176   # GESTIÓN DE NFS : Desmontar
177   # Función : Se desmonta la máquina en el cliente
178   function umontar
179   {
180           cabecera "NFS : DESMONTAR"
181           echo -e "n 033[0m"
182
183           read -p "       Directorio a Desmontar : " directorioClient
184
185           # Añadir aquí que si directorio = NULL entonces no hacer nada
186           umount $directorioClient
187
188           echo -e "033[1;34m n"
189           read -p "    Presiona [ENTER] para continuar. " enterKey
190           echo -e "033[0m"
191   }
192
193   # GESTIÓN DE AUTOFS : instalarAutofs
194   # Función : Instala todos los paquetes necesarios
195   function instalarAuto
196   {
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 1
202
203          instalar autofs autofs-ldap ldap-utils
204
205          echo -e "033[1;34m n"
206          read -p "    Presiona [ENTER] para continuar. " enterKey
207          echo -e "033[0m"
208   }
209
210   #***********************************************************************************
211   #                                       MENÚS
212   #***********************************************************************************
213
214   # MENÚ OpenLDAP -----------------------
215   function menuLDAP
216   {
217           cabecera USUARIOS
218
219          select opcionUsu in "Configurar" "Paquetes" "Anadir" "Salir"
220          do
221                  echo -e "n 033[0m"
222                  case "$opcionUsu" in
223                          "Configurar")                   ;;
224                          "Paquetes")                             instalarLDAP;;
225                          "Anadir")                               addLDAP;;
226                          "Salir")                                break;;
227                  esac
228                  break
229          done
230   }
231
232   # MENÚ NFS -----------------------
233   function menuNFS
234   {
235           cabecera USUARIOS
236
237          select opcionUsu in "Configurar Servidor" "Compartir Directorio" "Configurar
                  Cliente" "Montar" "Desmontar" "Salir"
238          do
239                   echo -e "n 033[0m"
240                   case "$opcionUsu" in
241                           "Configurar Servidor") confServer;;
242                           "Compartir Directorio") compDirect;;
243                           "Configurar Cliente")   confClient;;
244                           "Montar")                               montar;;
245                           "Desmontar")                    umontar;;
246                           "Salir")                                break;;
247                   esac
248                   break
249          done
250   }
251
252   # MENÚ AUTOFS -----------------------
253   function menuAuto
254   {
255           cabecera USUARIOS
256
257          select opcionUsu in "Paquetes" "Salir"
258          do
259                  echo -e "n 033[0m"
260                  case "$opcionUsu" in
261                          "Paquetes")                             instalarAuto;;
262                          "Salir")                                break;;
263                  esac
264                  break
265          done
266   }
267
268   # MENÚ PRINCIPAL ----------------------



                                                16
269   while true
270   do
271           cabecera "GESTION DE USUARIOS"
272
273           PS3="Elige una opcion : "
274           select opcion in "OpenLDAP" "NFS" "autofs" "Demonios" "Salir"
275           do
276                   case "$opcion" in
277                           "OpenLDAP")     menuLDAP;;
278                           "NFS")                  menuNFS;;
279                           "autofs")               menuAuto;;
280                           "Demonios")             actDem slapd start
281                                                           actDem nfs start
282                                                           actDem iptables stop
283                                                           actDem autofs start;;
284                           "Salir")                clear
285                                                           echo -e "n 033[1m"
286                                                           echo -n " Guardando los cambios
                                                                  ... "
287                                                           sleep 2
288                                                           echo -e "033[0m n"
289                                                           exit 2;;
290                   esac
291                   break
292           done
293   done




                                               17
C. Seguridad
    A continuación se muestra el código del script que fue creado para la otorgar una mayor seguridad
a 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 se
iniciace el sistema.

          [root@:~]# service iptables stop


   Aunque tiene el inconveniente de que el servicio NFS no tiene puerto fijo, y se tendría que buscar
cada 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

Contenu connexe

Tendances

Administracion servidores
Administracion  servidoresAdministracion  servidores
Administracion servidoresIsaac Gonzalez
 
Unidad 14 - SAMBA, NFS y LDAP
Unidad 14 - SAMBA, NFS y LDAPUnidad 14 - SAMBA, NFS y LDAP
Unidad 14 - SAMBA, NFS y LDAPvverdu
 
Administración y comandos básicos. Arquitectura del Computador
Administración y comandos básicos. Arquitectura del ComputadorAdministración y comandos básicos. Arquitectura del Computador
Administración y comandos básicos. Arquitectura del ComputadorFernandoPadilla78
 
Correo multidomino
Correo multidominoCorreo multidomino
Correo multidominoGuiro Lin
 
2 filesystem basics
2 filesystem basics2 filesystem basics
2 filesystem basicscyberleon95
 
Actividad 3.1 unix essentials – file system basics
Actividad 3.1 unix essentials – file system basicsActividad 3.1 unix essentials – file system basics
Actividad 3.1 unix essentials – file system basicsjonny95
 
Configuracion de samba
Configuracion de sambaConfiguracion de samba
Configuracion de sambaluis Dias
 
Cómo usar rsync para sincronizar directorios locales y remotos digital ocean
Cómo usar rsync para sincronizar directorios locales y remotos   digital oceanCómo usar rsync para sincronizar directorios locales y remotos   digital ocean
Cómo usar rsync para sincronizar directorios locales y remotos digital oceanDanicientoFalcon
 
Infraestructura de sistemas en entornos Windows de una empresa - Proyecto IMSO
Infraestructura de sistemas en entornos Windows de una empresa - Proyecto IMSOInfraestructura de sistemas en entornos Windows de una empresa - Proyecto IMSO
Infraestructura de sistemas en entornos Windows de una empresa - Proyecto IMSOAdrián Lois
 
Administración de Usuarios, Grupos y Permisos
Administración de Usuarios, Grupos y PermisosAdministración de Usuarios, Grupos y Permisos
Administración de Usuarios, Grupos y PermisosKramer Garay Gómez
 
2.7 nombre de archivos y directorios rutas y exploracion de arbol
2.7 nombre de archivos y directorios rutas y exploracion de arbol2.7 nombre de archivos y directorios rutas y exploracion de arbol
2.7 nombre de archivos y directorios rutas y exploracion de arbolFernando Solis
 

Tendances (20)

Administracion servidores
Administracion  servidoresAdministracion  servidores
Administracion servidores
 
Practica Inicial LDAP (JLG)
Practica Inicial LDAP (JLG)Practica Inicial LDAP (JLG)
Practica Inicial LDAP (JLG)
 
Unidad 14 - SAMBA, NFS y LDAP
Unidad 14 - SAMBA, NFS y LDAPUnidad 14 - SAMBA, NFS y LDAP
Unidad 14 - SAMBA, NFS y LDAP
 
Comandos linux
Comandos linuxComandos linux
Comandos linux
 
Administración y comandos básicos. Arquitectura del Computador
Administración y comandos básicos. Arquitectura del ComputadorAdministración y comandos básicos. Arquitectura del Computador
Administración y comandos básicos. Arquitectura del Computador
 
Administración de Sistemas
Administración de SistemasAdministración de Sistemas
Administración de Sistemas
 
Autenticacion unica
Autenticacion unicaAutenticacion unica
Autenticacion unica
 
Trabajo protos
Trabajo protosTrabajo protos
Trabajo protos
 
Correo multidomino
Correo multidominoCorreo multidomino
Correo multidomino
 
2 filesystem basics
2 filesystem basics2 filesystem basics
2 filesystem basics
 
Actividad 3.1 unix essentials – file system basics
Actividad 3.1 unix essentials – file system basicsActividad 3.1 unix essentials – file system basics
Actividad 3.1 unix essentials – file system basics
 
Cafe con Bacula
Cafe con BaculaCafe con Bacula
Cafe con Bacula
 
Configuracion de samba
Configuracion de sambaConfiguracion de samba
Configuracion de samba
 
18 permisos linuxasoitson
18 permisos linuxasoitson18 permisos linuxasoitson
18 permisos linuxasoitson
 
Cómo usar rsync para sincronizar directorios locales y remotos digital ocean
Cómo usar rsync para sincronizar directorios locales y remotos   digital oceanCómo usar rsync para sincronizar directorios locales y remotos   digital ocean
Cómo usar rsync para sincronizar directorios locales y remotos digital ocean
 
Infraestructura de sistemas en entornos Windows de una empresa - Proyecto IMSO
Infraestructura de sistemas en entornos Windows de una empresa - Proyecto IMSOInfraestructura de sistemas en entornos Windows de una empresa - Proyecto IMSO
Infraestructura de sistemas en entornos Windows de una empresa - Proyecto IMSO
 
Administración de Usuarios, Grupos y Permisos
Administración de Usuarios, Grupos y PermisosAdministración de Usuarios, Grupos y Permisos
Administración de Usuarios, Grupos y Permisos
 
2.7 nombre de archivos y directorios rutas y exploracion de arbol
2.7 nombre de archivos y directorios rutas y exploracion de arbol2.7 nombre de archivos y directorios rutas y exploracion de arbol
2.7 nombre de archivos y directorios rutas y exploracion de arbol
 
Taller sobre Bacula - The Network Backup Solution
Taller sobre Bacula - The Network Backup SolutionTaller sobre Bacula - The Network Backup Solution
Taller sobre Bacula - The Network Backup Solution
 
Linux
LinuxLinux
Linux
 

En vedette

Para reflexionar
Para reflexionarPara reflexionar
Para reflexionarcheliama
 
Las TIC en los hogares españoles (Resumen Ejecutivo)
Las TIC en los hogares españoles (Resumen Ejecutivo)Las TIC en los hogares españoles (Resumen Ejecutivo)
Las TIC en los hogares españoles (Resumen Ejecutivo)Alfredo Alday
 
Avec voix, entrez : http://tinyurl.com/bs7qvd
Avec voix, entrez : http://tinyurl.com/bs7qvdAvec voix, entrez : http://tinyurl.com/bs7qvd
Avec voix, entrez : http://tinyurl.com/bs7qvdSimon Hénault
 
Evidencias Personales ( F L O R
Evidencias  Personales (  F L O REvidencias  Personales (  F L O R
Evidencias Personales ( F L O Rejoya
 

En vedette (20)

Delitos informaticos en el Codigo Penal
Delitos informaticos en el Codigo PenalDelitos informaticos en el Codigo Penal
Delitos informaticos en el Codigo Penal
 
Codigos Deontologicos: Informatica vs Periodismo
Codigos Deontologicos: Informatica vs PeriodismoCodigos Deontologicos: Informatica vs Periodismo
Codigos Deontologicos: Informatica vs Periodismo
 
Administracion de Sistemas
Administracion de SistemasAdministracion de Sistemas
Administracion de Sistemas
 
Administracion de Sistemas
Administracion de SistemasAdministracion de Sistemas
Administracion de Sistemas
 
Intrusismo En Informatica
Intrusismo En InformaticaIntrusismo En Informatica
Intrusismo En Informatica
 
Codigo Deontologico y Aspectos Legales: Conceptos y Examen Tipo Test
Codigo Deontologico y Aspectos Legales: Conceptos y Examen Tipo TestCodigo Deontologico y Aspectos Legales: Conceptos y Examen Tipo Test
Codigo Deontologico y Aspectos Legales: Conceptos y Examen Tipo Test
 
Glosario y Mapa conceptual sobre LOPD
Glosario y Mapa conceptual sobre LOPDGlosario y Mapa conceptual sobre LOPD
Glosario y Mapa conceptual sobre LOPD
 
Funciones oracle sql
Funciones oracle sqlFunciones oracle sql
Funciones oracle sql
 
Cuestionario sobre Contratacion Recursos Humanos
Cuestionario sobre Contratacion Recursos HumanosCuestionario sobre Contratacion Recursos Humanos
Cuestionario sobre Contratacion Recursos Humanos
 
Licitacion SAE
Licitacion SAELicitacion SAE
Licitacion SAE
 
Proyecto : Human-computer interaction
Proyecto : Human-computer interactionProyecto : Human-computer interaction
Proyecto : Human-computer interaction
 
Para reflexionar
Para reflexionarPara reflexionar
Para reflexionar
 
Convention aeras
Convention aerasConvention aeras
Convention aeras
 
Las TIC en los hogares españoles (Resumen Ejecutivo)
Las TIC en los hogares españoles (Resumen Ejecutivo)Las TIC en los hogares españoles (Resumen Ejecutivo)
Las TIC en los hogares españoles (Resumen Ejecutivo)
 
Avec voix, entrez : http://tinyurl.com/bs7qvd
Avec voix, entrez : http://tinyurl.com/bs7qvdAvec voix, entrez : http://tinyurl.com/bs7qvd
Avec voix, entrez : http://tinyurl.com/bs7qvd
 
Power poiint
Power poiintPower poiint
Power poiint
 
paris 2.0 = Quelles sont les bonnes pratiques du brand content dans l’univers...
paris 2.0 = Quelles sont les bonnes pratiques du brand content dans l’univers...paris 2.0 = Quelles sont les bonnes pratiques du brand content dans l’univers...
paris 2.0 = Quelles sont les bonnes pratiques du brand content dans l’univers...
 
El proceso creativo c&m
El proceso creativo c&mEl proceso creativo c&m
El proceso creativo c&m
 
Muñecos y complementos
Muñecos y complementosMuñecos y complementos
Muñecos y complementos
 
Evidencias Personales ( F L O R
Evidencias  Personales (  F L O REvidencias  Personales (  F L O R
Evidencias Personales ( F L O R
 

Similaire à Administracion de Sistemas

Samba como PDC y autentificación LDAP
Samba como PDC y autentificación LDAPSamba como PDC y autentificación LDAP
Samba como PDC y autentificación LDAPiesgrancapitan.org
 
Red t4 practica_ftp2
Red t4 practica_ftp2Red t4 practica_ftp2
Red t4 practica_ftp2garciadebora
 
cupdf.com_presentacion-de-samba.pptx
cupdf.com_presentacion-de-samba.pptxcupdf.com_presentacion-de-samba.pptx
cupdf.com_presentacion-de-samba.pptxBelnCevallos
 
Presentación de Samba
Presentación de SambaPresentación de Samba
Presentación de SambaMatías Leal
 
Andrés González Suárez - Acceso a FTP a través de usuarios almacenados en un ...
Andrés González Suárez - Acceso a FTP a través de usuarios almacenados en un ...Andrés González Suárez - Acceso a FTP a través de usuarios almacenados en un ...
Andrés González Suárez - Acceso a FTP a través de usuarios almacenados en un ...Andrés González Suárez
 
Sistemas de Operacion - Presentación Servidor LDAP
Sistemas de Operacion - Presentación Servidor LDAPSistemas de Operacion - Presentación Servidor LDAP
Sistemas de Operacion - Presentación Servidor LDAPViviana Trujillo
 
Manual de instalacion servicios en red hat
Manual de instalacion servicios en red hatManual de instalacion servicios en red hat
Manual de instalacion servicios en red hatjcausil1
 
Instalación de Servicios de Red para OpenSUSE
Instalación de Servicios de Red para OpenSUSEInstalación de Servicios de Red para OpenSUSE
Instalación de Servicios de Red para OpenSUSEBlack Moral Яesistance
 
Sistemas operativos de red
Sistemas operativos  de redSistemas operativos  de red
Sistemas operativos de redmaruchiz
 
Sistemas operativos de red
Sistemas operativos  de redSistemas operativos  de red
Sistemas operativos de redmaruchiz
 
Active directory.docx
Active directory.docxActive directory.docx
Active directory.docxpeterete8
 
Apli t1 practicas_apache
Apli t1 practicas_apacheApli t1 practicas_apache
Apli t1 practicas_apachegarciadebora
 

Similaire à Administracion de Sistemas (20)

Samba como PDC y autentificación LDAP
Samba como PDC y autentificación LDAPSamba como PDC y autentificación LDAP
Samba como PDC y autentificación LDAP
 
Autenticacion ldap
Autenticacion ldapAutenticacion ldap
Autenticacion ldap
 
Dfs y samba
Dfs y sambaDfs y samba
Dfs y samba
 
Red t4 practica_ftp2
Red t4 practica_ftp2Red t4 practica_ftp2
Red t4 practica_ftp2
 
Openldap
OpenldapOpenldap
Openldap
 
cupdf.com_presentacion-de-samba.pptx
cupdf.com_presentacion-de-samba.pptxcupdf.com_presentacion-de-samba.pptx
cupdf.com_presentacion-de-samba.pptx
 
Presentación de Samba
Presentación de SambaPresentación de Samba
Presentación de Samba
 
Andrés González Suárez - Acceso a FTP a través de usuarios almacenados en un ...
Andrés González Suárez - Acceso a FTP a través de usuarios almacenados en un ...Andrés González Suárez - Acceso a FTP a través de usuarios almacenados en un ...
Andrés González Suárez - Acceso a FTP a través de usuarios almacenados en un ...
 
Server 2008(2)
Server 2008(2)Server 2008(2)
Server 2008(2)
 
Sistemas de Operacion - Presentación Servidor LDAP
Sistemas de Operacion - Presentación Servidor LDAPSistemas de Operacion - Presentación Servidor LDAP
Sistemas de Operacion - Presentación Servidor LDAP
 
Servidor ftp
Servidor ftpServidor ftp
Servidor ftp
 
Manual de instalacion servicios en red hat
Manual de instalacion servicios en red hatManual de instalacion servicios en red hat
Manual de instalacion servicios en red hat
 
Servidor ftp
Servidor ftpServidor ftp
Servidor ftp
 
Manual phd
Manual phdManual phd
Manual phd
 
Instalación de Servicios de Red para OpenSUSE
Instalación de Servicios de Red para OpenSUSEInstalación de Servicios de Red para OpenSUSE
Instalación de Servicios de Red para OpenSUSE
 
GOsa+samba+ldap
GOsa+samba+ldapGOsa+samba+ldap
GOsa+samba+ldap
 
Sistemas operativos de red
Sistemas operativos  de redSistemas operativos  de red
Sistemas operativos de red
 
Sistemas operativos de red
Sistemas operativos  de redSistemas operativos  de red
Sistemas operativos de red
 
Active directory.docx
Active directory.docxActive directory.docx
Active directory.docx
 
Apli t1 practicas_apache
Apli t1 practicas_apacheApli t1 practicas_apache
Apli t1 practicas_apache
 

Administracion de Sistemas

  • 1. 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
  • 2. R ESUMEN . El presente informe describe los pasos seguidos para la consecución de la 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áctica anterior. Para la cual se hizo uso de las herramientas proporcionadas por Linux y fueron necesarios 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ían accesible desde la máquina cliente por los usuarios de la organización, lo cuál se tuvo en 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 esta práctica podría considerarse como una ampliación de la situación anterior con el fin de obtener un caso más realista sobre una organización corporativa. En definitiva, el objetivo del presente informe es explicar cómo se montó el dominio cumpliendo con los requerimientos exigidos por la organización (en este caso, por el supuesto 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 puede hacerlo), hasta la estructura organizativa (máquinas, usuarios, grupos, directorios). 1
  • 3. Índice 1. Sistemas 3 2. Directorio de cada usuario 6 3. Proyectos en ejecución 8 4. Proyectos en ejecución 9 5. Situación actual de la Organización 9 Anexos 10 A. Autofs 10 B. Script 13 C. Seguridad 18 2
  • 4. 1. Sistemas Uno de los ordenadores (máquina virtual) de la organización debe actuar como servidor tanto para el servicio openldap como para el servicio NFS. Todas las cuentas de usuarios y grupos deben ser gestionadas por este servidor. El otro ordenador (máquina virtual) actuará como cliente y accederá al servidor tanto en los procesos de autenticación como para acceder a la información de la organización (directorios de usuarios 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 posteriormente se 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, en base 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 del administrador 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ó la contraseñ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
  • 5. [root@:~]# service slapd start A la hora de añadir, modificar o consultar entradas se podía utilizar diferentes herramientas (gráficas o comandos de consola). Una de las que se utilizaron fueron las migrationtools. Para instalarlas se hizo lo 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) genera el formato de las entradas con todos los usuarios y grupos del sistema. Por lo cual, en nuestro caso fueron redirigidas a otros ficheros, los cuáles hubo que modificar posteriormente para seleccionar tan só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, el cual fue necesario descargar de la web. Una vez descargado se extrajo y pudo ser ejecutado mostrando un menú gráfico con el estado del dominio donde se podía crear, modificar o consultar a través de ventanas las entradas de LDAP. Previamente, para conectarse al servidor LDAP se especificaron algunos parámetros configurados anteriormente: 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
  • 6. 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-tui en la cual se especificó que se quería emplear LDAP, la IP del servidor y el DSE. 5
  • 7. 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>” en cualquier 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 en el equipo servidor (sin percatarse que a si fuese), se tuvo que usar tanto en la máquina del servidor como en la del cliente el servicio NFS. Este servicio permitió que el equipo cliente pudiera montar y acceder a estos subdirectorios remotos, exportados por el equipo servidor, es decir, tener todos los directorios home centralizados y en una sóla máquina. Además, se hizo necesario utilizar en la máquina del cliente el 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 dichos servicios, 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 desde todas 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 ese directorio, así como los permisos asociados a cada uno. Por lo tanto, se incorporó una línea al fichero donde se estableció que todas las máquinas (192.168.1.0) tuvieran permisos de lectura/escritura (rw) y los 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 comando exportfs 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
  • 8. [root@:~]# exports -avr Una vez terminado con el servidor, se tuvo que configurar el cliente. Aunque primero se tuvo que crear el directorio donde se importaría el directorio remoto /home, tal como se hizo en la práctica anterior: [root@:~]# mkdir -p /import/casa/ Luego, para llevar a cabo la configuración, y poder realizar el montaje, se optó por utilizar la línea de comandos en vez de estar editando el fichero “/etc/fstab”, mediante el comando mount y sus opciones: 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 el directorio 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 tuvo que añadir nada nuevo para poder cumplir esta parte. Puesto que aunque todos los usuarios se les den permiso de lectura y escritura en el directorio de conexión se preservan los permisos del mismo. 7
  • 9. 3. Proyectos en ejecución Cada proyecto debe tener un directorio bajo el directorio “/export/proyectos” donde se almacenará 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 paquetes NFS 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 tuvo que añadir nada nuevo para poder cumplir esta parte. 8
  • 10. 4. Proyectos en ejecución El servidor debe ofrecer un directorio denominado “/export/info/comun” para cualquier ordenador o usuario que quiera utilizarlo. Este directorio será de sólo lectura y todos los accesos deberán ser considerados como anónimos. En este apartado, aunque los requerimientos son similares a los de los apartados 2 y 3, se diferencia por las opciones permitidas en el directorio del servidor. Para suplir estas restricciones se utilizó las opciones de sólo lectura (ro), la de que todos los accesos se transforman en accesos de usuarios anónimos y la de especificación de la identidad del grupo de usuario (anongid, que es un grupo ya creado en el servidor 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 fueron definidos 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ón adicional gracias a los servicios de NFS y NIS. Debido a que en el servidor todos estos requerimientos ya estaban contemplados y realizados. 9
  • 11. ANEXOS A. 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, que nos llevaría a tener montado el directorio remoto en la máquina cliente. Para evitar esto, se utilizará el servicio automount, que montará las particiones de forma automática y bajo demanda. Es decir, una vez ejecutado el servicio autofs al arranque del sistema, cuando se accede a un punto de montaje, este servicio invoca al automount para que recorra cada línea del fichero “/etc/auto.master”. Y se desactiva transcurrido un tiempo sin utilizar. En primer lugar será necesario instalar el paquete “autofs” que será el que nos permita poder realizar 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 cada punto de montaje (“/import/casa/”, “/import/proyectos/” y “/import/info/” ) en el sistema 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 de búsqueda situada en el punto de montaje (en este caso, se usó el comodín “*” que hará uso de todos los archivos y subdirectorio), la segunda serán las opciones (que en nuestro caso, no se hizo uso de ellas) y la 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
  • 12. 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 contenido es 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ía definido 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
  • 13. 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
  • 14. 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 de añadir alguna otra interesante. Principalmente, el motivo que conllevo a la realización conjunta fue que al 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
  • 15. 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. " enterKey 101 echo -e "033[0m" 102 } 103 104 # GESTIÓN DE NFS : addDirect 105 # Función : Se añaden los directorios a compartir 106 function compDirect 107 { 108 cabecera "NFS : ANADIR DIRECTORIO" 109 echo -e "n 033[0m" 110 111 read -p " Directorio Compartir : " directorio 112 read -p " IP Clientes : " IP 113 if [ -z "$IP" ]; then 114 IP="192.168.1.0/24" 115 fi 116 read -p " Permisos : " permisos 117 if [ -z "$permisos" ]; then 118 permisos="rw,root_squash" 119 fi 120 121 # Añadir aquí que si directorio = NULL entonces no hacer nada 122 echo "$directorio $IP($permisos)" >> /etc/exports 123 echo -e "n 033[0m" 124 125 exportfs -rav 126 127 echo -e "033[1;34m n" 128 read -p " Presiona [ENTER] para continuar. " enterKey 129 echo -e "033[0m" 14
  • 16. 130 } 131 132 # GESTIÓN DE NFS : Configurar Cliente 133 # Función : Se instala los paquetes y se tratan los demonios 134 function confServer 135 { 136 cabecera "NFS : CONFIGURAR CLIENTE" 137 echo -e "n 033[0m" 138 139 echo -e "033[0;32m Instalando los paquetes necesarios 033[0m" 140 sleep 1 141 142 instalar nfs-utils rpcbind 143 actDem rpcbind start 144 145 echo -e "033[0;32m Comprobamos la informacion 033[0m" 146 sleep 1 147 rpcinfo -p 148 149 echo -e "033[1;34m n" 150 read -p " Presiona [ENTER] para continuar. " enterKey 151 echo -e "033[0m" 152 } 153 154 # GESTIÓN DE NFS : Montar 155 # Función : Se monta la máquina en el cliente 156 function montar 157 { 158 cabecera "NFS : MONTAR" 159 echo -e "n 033[0m" 160 161 read -p " Directorio Servidor : " directorioServer 162 read -p " Directorio Cliente : " directorioClient 163 read -p " IP Servidor : " IP 164 if [ -z "$IP" ]; then 165 IP="192.168.1.10" 166 fi 167 168 # Añadir aquí que si directorio = NULL entonces no hacer nada 169 mount -t nfs -o vers=3 $IP:$directorioServer $directorioClient 170 171 echo -e "033[1;34m n" 172 read -p " Presiona [ENTER] para continuar. " enterKey 173 echo -e "033[0m" 174 } 175 176 # GESTIÓN DE NFS : Desmontar 177 # Función : Se desmonta la máquina en el cliente 178 function umontar 179 { 180 cabecera "NFS : DESMONTAR" 181 echo -e "n 033[0m" 182 183 read -p " Directorio a Desmontar : " directorioClient 184 185 # Añadir aquí que si directorio = NULL entonces no hacer nada 186 umount $directorioClient 187 188 echo -e "033[1;34m n" 189 read -p " Presiona [ENTER] para continuar. " enterKey 190 echo -e "033[0m" 191 } 192 193 # GESTIÓN DE AUTOFS : instalarAutofs 194 # Función : Instala todos los paquetes necesarios 195 function instalarAuto 196 { 197 cabecera "OpenLDAP : INSTALAR PAQUETES Autofs" 198 echo -e "n 033[0m" 199 15
  • 17. 200 echo -e "033[0;32m Instalando los paquetes necesarios 033[0m" 201 sleep 1 202 203 instalar autofs autofs-ldap ldap-utils 204 205 echo -e "033[1;34m n" 206 read -p " Presiona [ENTER] para continuar. " enterKey 207 echo -e "033[0m" 208 } 209 210 #*********************************************************************************** 211 # MENÚS 212 #*********************************************************************************** 213 214 # MENÚ OpenLDAP ----------------------- 215 function menuLDAP 216 { 217 cabecera USUARIOS 218 219 select opcionUsu in "Configurar" "Paquetes" "Anadir" "Salir" 220 do 221 echo -e "n 033[0m" 222 case "$opcionUsu" in 223 "Configurar") ;; 224 "Paquetes") instalarLDAP;; 225 "Anadir") addLDAP;; 226 "Salir") break;; 227 esac 228 break 229 done 230 } 231 232 # MENÚ NFS ----------------------- 233 function menuNFS 234 { 235 cabecera USUARIOS 236 237 select opcionUsu in "Configurar Servidor" "Compartir Directorio" "Configurar Cliente" "Montar" "Desmontar" "Salir" 238 do 239 echo -e "n 033[0m" 240 case "$opcionUsu" in 241 "Configurar Servidor") confServer;; 242 "Compartir Directorio") compDirect;; 243 "Configurar Cliente") confClient;; 244 "Montar") montar;; 245 "Desmontar") umontar;; 246 "Salir") break;; 247 esac 248 break 249 done 250 } 251 252 # MENÚ AUTOFS ----------------------- 253 function menuAuto 254 { 255 cabecera USUARIOS 256 257 select opcionUsu in "Paquetes" "Salir" 258 do 259 echo -e "n 033[0m" 260 case "$opcionUsu" in 261 "Paquetes") instalarAuto;; 262 "Salir") break;; 263 esac 264 break 265 done 266 } 267 268 # MENÚ PRINCIPAL ---------------------- 16
  • 18. 269 while true 270 do 271 cabecera "GESTION DE USUARIOS" 272 273 PS3="Elige una opcion : " 274 select opcion in "OpenLDAP" "NFS" "autofs" "Demonios" "Salir" 275 do 276 case "$opcion" in 277 "OpenLDAP") menuLDAP;; 278 "NFS") menuNFS;; 279 "autofs") menuAuto;; 280 "Demonios") actDem slapd start 281 actDem nfs start 282 actDem iptables stop 283 actDem autofs start;; 284 "Salir") clear 285 echo -e "n 033[1m" 286 echo -n " Guardando los cambios ... " 287 sleep 2 288 echo -e "033[0m n" 289 exit 2;; 290 esac 291 break 292 done 293 done 17
  • 19. C. Seguridad A continuación se muestra el código del script que fue creado para la otorgar una mayor seguridad a 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 se iniciace el sistema. [root@:~]# service iptables stop Aunque tiene el inconveniente de que el servicio NFS no tiene puerto fijo, y se tendría que buscar cada 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