viernes, 28 de febrero de 2020

ACL

ACL

Proporciona un mecanismo de permisos adicionales más flexibles para los sistemas de archivos. Está diseñado para ayudar con los permiso de archivos en UNIX. ACL permite dar permisos para cualquier usuario o grupo a cualquier recurso del disco.

Por defecto ya viene instalado pero lo comprobamos por si acaso:

- sudo apt-get install acl -y


Para dar permisos hay dos formas de hacerlo.

- Con ACL
- Con el comando chmod + (permisosquequieras)

Vamos a utilizar ACL.

Los comandos a utilizar son:

- setfacl (Significa colocar el archivo en la lista de control de acceso) -m u(usuario):antonio:r (permisos) hola.txt (fichero) (LE ESTAMOS ASIGNANDO AL USUARIO ANTONIO EL PERMISO LECTURA EN EL FICHERO HOLA.TXT)


Cuando utilizamos un setfacl si hacemos un ls -la nos aparecerá un + al final 


Si hacemos el comando getfacl nos mostrará los permisos:


Para asignar ACL a un directorio recursivamente sería:

- setfacl -R -m u:antonio (USUARIO):rw(PERMISOS) /home/antonio/hola (ruta del directorio)

Y para comprobar el ACL sería:

- getfacl -R /home/antonio/hola


Para asignar ACL por grupos:

- setfacl -m g:grupo(NOMBREGRUPO):rwx (PERMISOS)


AHORA PARA QUITAR UN ACL:

- setfacl -b /ruta_fichero o /ruta_carpeta

Para quitar a un usuario o grupo en concreto:

- setfacl -x u:antonio (nombreusuario)
- setfacl -x g:grupo (nombregrupo)

Asignar ACL por defecto:

- setfacl -d -m u:antonio:rwx /hola.txt


Para eliminar el ACL por defecto:

- setfacl -k hola/


Asignar ACL a un fichero de configuración:

1º Creas un fichero llamado como quieras.

Y dentro das permisos a los archivos que quieras

Y si queremos restaurar los permisos con ese fichero ponemos:

- setfacl --restore=acl.txt


PRACTICA:

Vamos a crear dentro de home, la carpeta permisos y dentro de la carpeta permisos ponemos permisos.txt y con el acl le vamos a dar el usuario propio le vamos a dar rw y a otro usuario solamente r, y cuando hagamos.




Con el usuario antonio, me deja leer y escribir.

Y con el usuario mateos me sale:






























NTP

NTP

Network Time Protocol (NTP) es un protocolo de Internet para sincronizar los relojes de los sistemas informáticos a través del enrutamiento de paquetes en redes con latencia variable.

Para realizar el NTP, primero tenemos que instalarlo en el servidor:

- sudo apt-get install ntp -y


Ahora vamos a configurarlo en:

- sudo nano /etc/ntp.conf y aquí dentro vamos a cambiar los pools que tengamos en mi caso voy a poner a los de Europa:


Ahora guardamos y reiniciamos el servicio:

- sudo systemctl restart ntp y luego se checkea con status en vez de restart.



Ahora nos vamos al cliente, y si es nuevo, se establece la red y lo metes dentro del DNS y DHCP, si no tienes que configurar la red automática.

Dentro del cliente nos vamos a /etc/hosts y vamos a poner dentro de este fichero:

IP_PUERTA_ENLACE_RED_INTERNA  nombre_servidor_ntp


Reiniciamos el equipo.

Ahora vamos a instalar el paquete:

- sudo apt-get install ntpdate ntp -y

Una vez lo tengamos instalado chequeamos que puede actualizar la fecha y hora con el nombre:

- sudo ntpdate ubuntuserver (nombre que le hemos dado en el hosts)

Después tenemos que deshabilitar el servicio de sincronización de tiempo predeterminado:

- sudo timedatectl set-ntp off 

(SI NO FUNCIONA, REINICIAMOS DESPUES DE DESHABILITAR Y PONEMOS: sudo ntpdate -u ubuntuserver para forzarlo)


Y despues tenemos que editar el fichero /etc/ntp.conf y poner:

- server ubuntuserver prefer iburst


Y después reinciamos:

- sudo systemctl restart ntp

Para terminar de comprobar tenemos que poner:

ntpq -p 



Carpetas compartidas entre Linux y Windows (CIFS)

Carpetas compartidas entre Linux y Windows (CIFS)

PREVIAMENTE ES RECOMENDABLE REALIZAR EL DHCP y DNS.

Para configurar CIFS deberemos tener un cliente de Windows 7, creado.

Una vez hayamos configurado nuestro nuevo cliente de Windows 7, vamos a crear una nueva carpeta donde le vamos a dar permisos de lectura y escritura a nuestro usuario.

El nombre de la carpeta deberá ir en mayúsculas para que no haya conflictos.


Una vez hayamos creado la carpeta vamos a compartirla:


Una vez la hayamos compartido, vamos al ubuntu server y vamos a instalar el paquete:

- sudo apt-get install smbclient cifs-utils 



Y ahora vamos a crear la carpeta donde vamos a montar la carpeta en linux. Se suele meter en la carpeta mnt.



Y ahora nos vamos a cambiar al usuario root y nos vamos a ir a la carpeta /root, donde vamos a crear un .sh que vamos a montar la carpeta.


Dentro del fichero vamos a poner lo siguiente:

- mount -t cifs //(IPWINDOWS)/CARPETA_QUE_HEMOS_CREADO_EN_WINDOWS /mnt/COMPARTIDA (CARPETA QUE HEMOS CREADO EN EL SERVIDOR) -o user=antonio,password=losbarru,vers=1.0 (A PARTIR DEL -o definimos el usuario y contraseña del WINDOWS).

Después si queremos hacer copias de seguridad, o comprimir algún fichero tendremos que poner el script correspondiente.

Y como último paso tenemos que poner:

zip -r /mnt/COMPARTIDA/$ARCHIVO (RUTA DE UBUNTU DONDE SE QUIERE GUARDAR EL ARCHIVO Y NOMBRE DEL ARCHIVO CREADO EN EL SCRIPT) /home/antonio/* (RUTA DE LOS FICHEROS QUE QUIERES COMPRIMIR)

Y después lo desmontas con:

umount /mnt/COMPARTIDA (SE DESMONTA LA CREADA EN LINUX)



Y ahora a ese fichero se le da permisos de ejecución:

- chmod +x compartida.sh (nombrefichero)

Y ahora lo ejecutamos, y debería de salir así:



También lo puedes automatizar con el crontab.

miércoles, 19 de febrero de 2020

Configuración e instalación de DHCP y DNS en Ubuntu Server 18.04

Configuración e instalación de DHCP y DNS en Ubuntu Server 18.04

ANTES DE EMPEZAR:

1º Tenemos que quedar la red bien, y realizamos la configuración de la tarjeta de red y el enrutamiento. Enrutamiento

Instalación y configuración DNS:

Primeramente para instalarlo tendremos que poner el comando:

- sudo apt-get update && sudo apt-get upgrade && sudo apt-get install bind9


Ahora vamos a ir a configurarlo para ello nos vamos a la ruta:

- /etc/bind y dentro de aquí tenemos que:

1º Hacer una copia de db.local y renombrarlo a db.nombrequequieras. (Yo lo renombro como db.antonio)


2º Ahora vamos a configurar los dos siguientes ficheros:

named.conf.options.
named.conf.local

- sudo nano named.conf.options 


Dentro de aquí tenemos que descomentar forwarders y cambiarlo por: 8.8.8.8 (Mirar tabulación)

Guardamos y salimos.

Y ahora vamos a configurar el siguiente fichero:

- sudo nano named.conf.local

Dentro de aquí tenemos que poner lo siguente:

zone "nombre.dominioprincipal" {
type master;
file "/etc/bind/db.dominio (ES EL NOMBRE DEL ARCHIVO DEL PASO 1º)";
};


3º Vamos a configurar el fichero que hemos copiado en el paso 1º:

- sudo nano /etc/bind/db.antonio

Y aquí tenemos que cambiar:

- En la línea 5 tenemos que cambiar localhost. por nombre.dominio. 
- En la línea 5 tenemos que cambiar root.localhost. por root.nombre.dominio.
- En la línea 12 tenemos que cambiar localhost. por ns0.nombre.dominio.
- En la línea 13 tenemos que cambiar 127.0.0.1 por la ippuertadeenlace (Interna)

A partid de aquí podemos definir los subdominios: EJEMPLO:
- www IN A 192.168.100.2
- ftp IN A 192.168.100.3

Si queremos que todos los subdominio, entren por la misma puerta de enlace ponemos:

- * IN A IPPUERTAENLACE

Deberemos quedar el fichero así:


Instalación y configuración DHCP:

1º Instalar el paquete: apt-get install isc-dhcp-server para instalar el DHCP.



Cuando termine de instalar tenemos que irnos a el fichero /etc/dhcp/dhcpd.conf:


Y tenemos que añadir lo siguiente:

*MIRAR EL FICHERO BIEN PARA NO REPETIR DOMAIN-NAME y DOMAIN-NAME-SERVERS*

option domain-name "nombre.dominio";
option domain-name-servers ippuertadeenlacedelservidor (red interna)
default-lease-time 600;
max-lease-time 7200;
subnet ipdelaredinterna netmask máscara 255.255.255.0 {
range ip ip;
option routers ippuertadeenlace; (Cliente)
option broadcast-address ipterminadaen.255;
}


Guardamos y salimos.

Por último tendremos que irnos a /etc/defualt y configurar el fichero "isc-dhcp-server":

INTERFACESv4="" (Aquí tenemos que poner el nombre de la tarjeta de red interna del servidor)


Guardamos y salimos.

Reiniciamos el equipo:

*IMPORTANTE TIENE QUE ESTAR EL FICHERO DEL ENRUTAMIENTO ACTIVADO*

Ahora vamos a irnos a un W7, y vamos a probar la configuración:


Aquí dentro tendremos que poner los DNS simplemente y poner: 8.8.8.8 y 8.8.4.4
Deberiamos de obtener la red:

Deberiamos de tener red:



Y ahora vamos a cambiar, en vez de 8.8.8.8 y 8.8.4.4 vamos a poner solo la ip de la red.


Y deberíamos ver con ipconfig:


Y si hacemos un ping debería darnos:


viernes, 14 de febrero de 2020

Webmin

Webmin

¿Qué es Webmin?

Webmin es una interfaz basada en web para la administración del sistema para Unix. Con cualquier navegador web moderno, puede configurar cuentas de usuario, Apache, DNS, uso compartido de archivos y mucho más.

Descarga de Webmin:

Para instalarlo tendremos que irnos a la página web de Webmin: http://www.webmin.com/

Y a la izquierda nos aparecerá el paquete que tenemos que descargarnos pero antes tenemos que diferenciar entre dos:

RPM: Es para distribuciones para Red HAT.
Debian Package: Es para todas las distribuciones de Debian (Linux, Ubuntu, Debian) 
Esta útlima es la que tenemos que descargar dentro del servidor.

Si no tenemos entorno gráfico hay tres maneras de descargar un fichero:

1º Comando Wget:

wget (enlace a descargar) http://prdownloads.sourceforge.net/webadmin/webmin_1.941_all.deb


2º Por FTP:


Después tendremos que tener los permisos adecuados, descargarnos el paquete de webmin desde la máquina Host y pasarlo automáticamente dentro del servidor.

3º Por instalación de carpetas virtuales entre Vbox y Ubuntu (Necesitaremos Guest Additions)

(Más adelante)

4º Por carpetas NFS con un cliente.

Mirar: NFS, simplemente crearemos una carpeta por NFS entre un servidor y un cliente, y a partir de ahí, dentro del cliente descargaremos el paquete y lo pasaríamos al servidor por la carpeta.

Instalación Webmin:

Ahora lo vamos a instalar, para ello vamos a instalar.

1º La libreria: sudo apt-get install libauthen-pam-perl (Si no va mirar cambiar los repositorios)


Una vez terminado de instalar el paquete vamos a instalar el paquete de webmin que nos hemos descargado:

2º El paquete: sudo dpkg -i webmin_1.941_all.deb (nombre paquete)




3º Meter en el navegador del cliente: https://192.168.200.1:10000 o navegador local: https://ubuntuserver(localhost):10000

Para ponerlo en el host tienes que reedirigir el puerto 10000 en VBox, a la WAN.


Y para acceder tendremos que poner: https://127.0.0.1:10000


Y aquí deberemos poner el usuario y contraseña de un usuario con permisos de root del Ubuntu Server.

Dentro de Webmin nos podemos encontrar diferentes funciones:


Más adelante veremos más a fondo Webmin.

Copias de seguridad con Ubuntu

Copias de seguridad con Ubuntu 

Ahora vamos a realizar copias de seguridad y automatizarlas con Cron.

MANUALMENTE:

Para realizar una copia de seguidad vamos a combinar el NFS y el Cron. (NFS EN EL ANTERIOR)

1º Ahora vamos a realizar un zip con la carpeta a la que queramos hacer la copia de seguridad:

 - zip -r /(carpeta)/carpetaderespaldo.zip (nombre que le damos) /home/antonio/* (La carpeta que queremos comprimir)


Primeramente se define en la carpeta donde quieres colocar el zip, luego el nombre del zip y después lo que quieres meter en el zip.


Como podemos observar se me ha creado el respaldo de los ficheros.

MODO AUTOMÁTICO:

1º Vamos a crear un script dentro de /root

Para ello vamos a meternos como usuario root.

Y lo siguiente vamos a poner:

- sudo nano respaldo.sh
Y dentro de aquí vamos a poner:

DIA=`date +%d` (DEFINES EL DIA DENTRO DEL NOMBRE)
MES=`date +%m`(DEFINES EL MES DENTRO DEL NOMBRE)
ANNO=`date +%Y`(DEFINES EL AÑO DENTRO DEL NOMBRE)
HORA=`date +%H`(DEFINES LA HORA DENTRO DEL NOMBRE)
ARCHIVO=respaldo$ANNO$MES$DIA-$HORA:00.zip (ESTE ES EL NOMBRE DEL ARCHIVO QUE VAMOS A PONER)
# copia del archivo

zip -r /respaldos/$ARCHIVO (Nombrearchivo) /usr/archivos/* (Carpetaquequierescomprimir)


Guardamos y cerramos.


2º Ahora vamos a abrir el crontab:

- sudo nano /etc/crontab 

Y dentro de aquí vamos a configurar automáticamente la fecha y la hora que queremos que se haga la copia de seguridad para ello tenemos que saber que significa la m, h, dom, mon y dow:


Ahora vamos a manipular el fichero vamos a ponerlo:

- 0 (minuto 0) 14,21 (Hora (14 y 21) Si se quieren poner varios, se separan por comas) * (Todos dias del mes) * (Todos los meses) * (Todos los dias de la semana)  root (usuario) /root/respaldo.sh (Ruta donde está el fichero que hemos creado del scritp)

Así es como quedaría:


Guardamos y cerramos.

3º Vamos a darle permisos de ejecución al respaldo.sh para que funcione:

- chmod +x /root/respaldo.sh (Cambia de color a verde ya que es un script)


Y vamos a ejecutarlo con ./respaldo.sh (dentro de la carpeta root)



Y ahora deberia aparecernos en el servidor: