sábado, 21 de diciembre de 2019

Crear nueva partición en linux CentOS a partir de un nuevo disco duro.




Situación :

Una tienda de ropa tiene un servidor CentOS con un disco de 500 Gb y tiene 7 particiones, no tiene espacio disponible y se requiere crear una partición adicional de 50 Gb que sea únicamente para guardar catálogos que se generan diariamente para luego publicarlos en un portal.
Se agregó un disco de 50 GB para montarlo en una partición independiente. La partición se llamará /catalogos.

Desarrollo.

1) Escanear e identificar el disco
2) Crear la partición en el nuevo disco
3) Crear el directorio que será el punto de montaje
4) Agregar la ruta del punto de montaje en el fstab
5) Montar la unidad
6) Realizar pruebas

Solución:


1)  Escanear e identificar el disco

Antes de ejecutar el comando fdisk -l, le recomendamos que ejecute los siguientes comandos para volver a escanear todo.






2) Crear la partición en el nuevo disco:

Fdisk es un programa que se utiliza para dividir o particionar un disco duro y guarda éstas particiones en una tabla de particiones .
Para verificar los discos y particiones, vamos a ejecutar el comando fdisk -l. En éste caso veremos que identifica el nuevo disco agregado: 

fdisk -l




Ahora lo que haremos es ingresar al programa fdisk y vamos a empezar a particionar nuestro disco duro. 
Para ello vamos a ejecutar el comando fdisk y la ruta donde se encuentra el disco, en éste caso está en /dev/sdb 

fdisk /dev/sdb 


Al momento de ingresar al programa fdisk, nos encontraremos con ésta información y con unas opciones que tiene el programa. Si desea ver esas opciones ingrese la letra m. En éste caso vamos a consultar qué particiones tiene ése disco en éste momento. Para ello ingresamos la letra p


En la imagen anterior vimos que éste disco no posee ninguna partición en su tabla de particiones, así que iniciaremos con la creación de una partición nueva, en éste caso vamos a ingresar la tecla n, seguido nos preguntará qué tipo de partición, le diremos que será una primaria digitado la letra p y el resto de valores los dejamos predeterminados presionando la tecla enter





Vamos a volver a imprimir la tabla de particiones ingresando la tecla p y encontraremos que ya tenemos una partición activa y que se está en /dev/sdb1. 
Pero aún, no hemos guardados los cambios, para hacer los cambios efectivos entonces ingrese la letra w, el programa sincronizará los discos y saldrá de la utilidad fdisk, regresando a la sesión del usuario actual. 




Y finalizando, para que nuestra partición quede con un sistema de archivos reconocible lo vamos a formatear como ext4 con el comando mkfs.ext4

mkfs.ext4 /dev/sdb1 




3) Crear el directorio que será el punto de montaje:

ahora, como ya tenemos nuestro filesystem, lo vamos a montar en la ruta que se solicita. Pero como aún no hemos creado esa ruta no lo podremos hacer. Para ello vamos a crear la ruta con el comando mkdir. 

mkdir /catalogos



4) Agregar la ruta del punto de montaje en el fstab

Ahora que ya tenemos el punto de montaje definido, vamos a ir al fstab para indicar que nuestro filesystem de 50 gb se va a montar en la ruta /catalogos.

Para ello, vamos a editar el fstab con el comando vi y vamos a agregar las siguientes líneas: 

vi /etc/fstab

/dev/sdb1       /catalogos       ext4         defaults    0 0



Vamos a verificar cada uno de los filesystems en nuestra máquina y en dónde se encuentran montados o cual es su punto de montaje, para ello vamos a ingresar el comando df 

df    -h




5) Montar la unidad

El fstab permite que los sistemas de archivos que están especificados se monten automáticamente al iniciar el sistema, pero no los monta inmediatamente guardamos los cambios en el archivo, por ello, vamos a forzar a que se monten de nuevo todas las unidades del fstab como si hubiéramos reiniciado nuestro sistema.Para ello utilizamos el comando mount.

mount     -a 



6) Realizar pruebas

Ahora vamos a volver a verificar todos los filesystem de nuestra máquina y veremos que al final está nuestro sistema de archivos /dev/sdb1 de 50 gb montado en la ruta /catalogos. Ésto lo hacemos con el comando df 

df  -h











martes, 26 de noviembre de 2019

Crear unidad compartida por NFS en linux CentOS


Situación :

En una empresa el jefe el área de compras solicita al administrador de servidores que 2 servidores linux dentro de una misma red se comuniquen a  un tercer servidor que se utiliza como almacenamiento principal de información y que será compartida entre ellos. Allí, los servidores harán backup y guardarán otro tipo de información. 
La unidad compartida se creará en la ruta /compras/backup  en el servidor de almacenamiento principal ya que a éste se le ha agregado un disco destinado exclusivamente para ésta área.
El punto de montaje en los dos servidores será en la ruta /server1/compras y /server2/compras

Desarrollo

1) Descargar en cada uno de los servidores la utilidad nfs-utils.

2) Crear la unidad compartida en el servidor de almacenamiento. 

3) Agregar los servidores que se conectarán a ese recurso compartido en el archivo /etc/exports y reiniciar el servicio nfs.

4 ) Agregar la excepción del servicio nfs en el iptables. 

5) En los 2 servidores que se van a conectar, agregar la ruta del servidor de almacenamiento y el punto de montaje en el archivo /etc/fstab

6) Montar la unidad

7) Realizar pruebas


TOPOLOGÍA: 















1)  Descargar en cada uno de los servidores la utilidad nfs-utils: 
para descargar e instalar paquetes en linux CentOS se utiliza el comando yum install.
Estando con un usuario con privilegios, en cada servidor ejecute el siguiente comando: sudo yum -y install nfs-utils

SERVER1: 








SERVER2:



SERVERBACKUP: 



2 ) Crear la unidad compartida en el servidor de almacenamiento. 

Para crear nuevos directorios en linux, se utiliza el comando mkdir. En éste caso, el servidor principal de almacenamiento ya cuenta con un disco agregado y montado en la partición /compras, así que crearemos la unidad compartida /compras/backup

sudo mkdir  /compras/backup









3)   Agregar los servidores que se conectarán a ese recurso compartido en el archivo /etc/exports y reinicia el servicio nfs:

Para editar archivos planos en linux podemos utilizar el comando vi.

sudo vi /etc/exports



En éste caso agregaremos los servidores que se conectarán al recurso compartido. Agregamos la ruta a la que se conectará, qué servidor se conectará (ip o nombre )  y los permisos. 


En linux, en éste caso CentOS 7, el comando para detener, ver el estado, iniciar o reiniciar un servicio es el comando systemctl. En éste caso reiniciaremos el servicio nfs.

sudo systemctl restart nfs.service


4) Agregar la excepción del servicio nfs en el iptables y reiniciar el servicio: 

Para agregar una excepción de firewall en linux para un servicio, en este caso en el iptables en CentOS, utilizamos la siguiente línea de comandos:

sudo firewall-cmd --permanent --add-service nfs


En linux, en éste caso CentOS 7, el comando para detener, ver el estado, iniciar o reiniciar un servicio es el comando systemctl. En éste caso reiniciaremos el servicio del firewall.

sudo systemctl restart firewalld


5) En los 2 servidores que se van a conectar, agregar la ruta del servidor de almacenamiento y el punto de montaje en el archivo /etc/fstab

SERVER 1

Para crear nuevos directorios en linux, se utiliza el comando mkdir. En éste caso, utilizaremos la opción -p indicando que si el directorio padre no existe entonces proceda con la creación del mismo. 

sudo mkdir -p /server2/compras


Ahora que ya tenemos el punto de montaje creado, vamos a especificar en el fstab que quien estará ahí montado en esa ruta va a ser nuestro servidor de backup.

Para editar archivos planos en linux podemos utilizar el comando nano. 


sudo nano /etc/fstab




En el archivo fstab especificamos la ip del servidor donde está el filesystem que vamos a montar, luego la ruta del punto de montaje en nuestro servidor, seguido el tipo de filesystem y las opciones.















SERVER 2

Para crear nuevos directorios en linux, se utiliza el comando mkdir. En éste caso, utilizaremos la opción -p indicando que si el directorio padre no existe entonces proceda con la creación del mismo. 

sudo mkdir -p /server2/compras



Ahora que ya tenemos el punto de montaje creado, vamos a especificar en el fstab que quien estará ahí montado en esa ruta va a ser nuestro servidor de backup.

Para editar archivos planos en linux podemos utilizar el comando nano. 



6) Montar la unidad. 

SERVER 1

Para montar una unidad en linux, teniendo en cuenta la configuración en el fstab vamos a utilizar el comando mount con la opción -a que quiere decir que monta todos los filesystems especificados en el fstab.

sudo mount -a 


Para verificar los filesystems montados en nuestro servidor, ejecutamos el comando mount. En éste caso, si el montaje fue exitoso, podremos ver la ip de nuestro servidor de backup montado como filesystem en la ruta /server1/compras.

sudo mount 


SERVER 2 

Para montar una unidad en linux, teniendo en cuenta la configuración en el fstab vamos a utilizar el comando mount con la opción -a que quiere decir que monta todos los filesystems especificados en el fstab.

sudo mount -a 



Para verificar los filesystems montados en nuestro servidor, ejecutamos el comando mount. En éste caso, si el montaje fue exitoso, podremos ver la ip de nuestro servidor de backup montado como filesystem en la ruta /server2/compras.

sudo mount 






7) Realizar pruebas

En el servidor de backups vamos a crear un archivo que debe de visualizarse en los otros dos servidores si todo quedó correctamente configurado. 

SERVERBACKUP: 



SERVER 1 


SERVER 2

martes, 15 de octubre de 2019

Gestionar grupos, gestionar usuarios, asignar permisos en linux. CentOS



Muchas veces requerimos de asignar permisos a carpetas específicas en un sistema compartido.
Cuando tenemos un servidor o un sistema donde acceden múltiples usuarios, necesitamos un grado de seguridad para que la integridad y la confidencialidad se mantenga entre los colaboradores. Es así como surge la necesidad de limitar el acceso y la gestión de ciertos elementos en nuestro sistema.
Existen diferentes maneras de realizarlo, ya sea una implementación de políticas de grupo por directorio activo, creación de listas de acceso o simplemente permisos aplicados sobre archivos y directorios a un grupo de usuarios. 
En ésta ocasión, vamos a proponer un caso y daremos la solución en el siguiente tutorial.

Caso:
Una empresa tiene un servidor CentOS, allí, varios usuarios incluidos los proveedores, ingresan para realizar diferentes tareas.
El jefe del área de insumos necesita crear un directorio en la ruta /opt/insumos, donde él pueda ser el propietario, tener permisos de lectura, escritura y ejecución.
Él creará los archivos que su equipo de trabajo únicamente podrá ver y ejecutar pero no podrá modificar ni crear. También requiere que los usuarios que no pertenezcan al área de insumos incluidos los proveedores no puedan tener acceso por seguridad.

Desarrollo:
  1. Crear el directorio  /opt/insumos
  2. Crear el usuario Alejo Saenz "alejos" (Jefe del área de insumos)
  3. Crear el usuario Rosa Pérez  "rosap" ( Del equipo de trabajo del área de insumos)
  4. Crear el usuario Proveedor "provee" (Usuario proveedor que no pertenece al área insumos)
  5. Creación del grupo insumos
  6. Los propietarios del directorio /opt/insumos serán:  alejos y el grupo insumos
  7. La usuaria rosap será agregada al grupo insumos.
  8. Aplicar los permisos para que alejos tenga control total como propietario del directorio /opt/insumos, para que rosap que pertenece al grupo insumos pueda ver y ejecutar archivos del directorio /opt/insumos y para que el usuario provee y los demás usuarios (excepto root) no puedan tener acceso al directorio /opt/insumos
  9.  Realizar pruebas.



1)  Crear el directorio  /opt/insumos. 



  • Creamos el directorio con el comando para crear directorios mkdir /opt/insumos 



  • Ingresemos a /opt. Para cambiar de directorio, con el comando cd /opt





  • Para ver los permisos y para ver el propietario de un directorio o archivo en linux podemos utilizar el comando ll






2) Crear el usuario Alejo Saenz "alejos" (Jefe de insumos)
3) Crear el usuario Rosa Pérez  "rosap" ( Del equipo de trabajo del área de insumos)
4) Crear el usuario Proveedor "provee" (Usuario proveedor que no pertenece al área insumos)


  • Para crear usuarios en linux utilizamos el comando useradd seguido de una serie de opciones como lo son: -u para crear el id del usuario, -c para el nombre completo -d para el directorio del usuario, -s para la shell  y finalmente el nombre del usuario.
useradd -u 1001 -c "Rosa Pérez" -d /home/rosap -s /bin/bash rosap






  • Para cambiar la contraseña de un usuario en linux, se utiliza el comando passwd usuario: 
passwd rosap


  • Los usuarios en linux se pueden consultar con el comando cat /etc/passwd





5) Creación del grupo insumos

  • Para la creación de grupos en linux, utilizamos el comando groupadd insumos 




  • Los grupos creados en linux se pueden consultar con el comando cat /etc/group






6) El propietario del directorio /opt/insumos será alejos  y el grupo insumos.



  • Para asignar propietarios en linux se realiza con el comando chown con el parámetro -R queriendo decir que se hará de forma recursiva, luego el usuario y si de una vez queremos asignar el grupo simplemente separamos con : y luego el grupo y luego el archivo o directorio de ésta manera :
chown -R alejos:insumos insumos














  • Para ver los permisos y para ver el propietario de un directorio o archivo en linux podemos utilizar el comando ll







  • 7) La usuaria rosap será agregada al grupo insumos.

    • un comando utilizado en linux para agregar usuarios a un grupo es gpasswd con el parámetro -a y seguido el usuario y luego el grupo. 
    gpasswd -a rosap insumos





    • Para ver los usuarios que tiene un grupo se pueden consultar con el comando cat /etc/group




    8) Aplicar los permisos para que alejos tenga control total como propietario del directorio /opt/insumos, para que rosap que pertenece al grupo insumos pueda ver y ejecutar archivos del directorio /opt/insumos y para que el usuario provee y los demás usuarios (excepto root) no puedan tener acceso al directorio /opt/insumos

    para asignar permisos a directorios en linux se utiliza el comando chmod -R que con una combinación de parámetros que puede ser con números o con letras se define si los usuarios propietarios editan, leen y ejecutan o no, de igual manera, para los grupos propietarios y para los demás usuarios que no son propietarios ni pertenecen a grupos propietarios. 

    Los permisos representados por números tienen el siguiente valor : 

    1: Ejecución

    2: Escritura
    4: Lectura

    De tal modo que el caso nos pide que los usuarios propietarios del directorio insumos, en éste caso alejos, sea quien tenga el control total. Ahí tenemos un 7. Luego que los grupos propietarios del directorio insumos, en éste caso el grupo insumos donde está rosap, sólo pueda ver y ejecutar. Tenemos un 5. Luego que los demás usuarios que no tienen ninguna relación con insumos, no puedan tener acceso a ese directorio ni a sus archivos. Temos un 0 .

    En conclusión,  la combinación numérica será de 750. 
    Finalmente, el comando se ejecutaría de la siguiente manera:

    chmod -R 750 insumos donde -R quiere decir que se realizará de manera recursiva. 













    • Para ver los permisos y para ver el propietario de un directorio o archivo en linux podemos utilizar el comando ll





    • 9)  Realizar pruebas.

      • En linux, para cambiar de un usuario a otro se usan los comandos sudo y su. En éste caso como ya estamos con el usuario root, vamos a iniciar sesión con el usuario alejos para realizar pruebas. Se hace con el comando su alejos.
      • Para crear archivos en linux se realiza con el comando touch. 

      touch saludo.sh



      • alejos creará un script que podrá ser ejecutado por los usuarios del grupo insumos, en éste caso por rosap y también lo podrá leer como un archivo de texto. Para editar archivos de texto en linux, se puede usar el comando nano. 
      nano insumos/saludo.sh







      • Ahora, iniciaremos con el usuario que pertenece al grupo insumos. El grupo insumos es propietario del directorio insumos. El usuario rosap, pertenece al grupo insumos.


      su rosap




      • para ejecutar un script.sh en linux se puede utilizar el comando bash.
      • rosap ejecutará el script que ha creado alejos 

      bash insumos/saludo.sh



      • rosap tratará de editar el archivo pero al momento de guardarlo, sale un mensaje de denegación:


      • Ahora cambiaremos al usuario provee, quien no es propietario de la carpeta insumos, tampoco pertenece a ningún grupo propietario de la carpeta insumos.


      • El usuario provee, intentará ingresar a la carpeta insumos y a su contenido