sábado, 29 de febrero de 2020

Samba y sus carpetas en modo anónimo

Samba y sus carpetas en modo anónimo

Samba es una implementación libre del protocolo de archivos compartidos de Microsoft Windows (antiguamente llamado SMB, renombrado recientemente a CIFS) para sistemas de tipo UNIX.

Samba también permite validar usuarios haciendo de Controlador Principal de Dominio (PDC), como miembro de dominio e incluso como un dominio Active Directory para redes basadas en Windows; aparte de ser capaz de servir colas de impresión, directorios compartidos y autentificar con su propio archivo de usuarios.

*REQUISITO IMPORTANTE PARA REALIZAR SAMBA:*

Tener antes de nada instalado, configurado y en funcionamiento: ENRUTAMIENTO, DHCP y DNS y una máquina W7 configurada con la red.

Instalación SAMBA:

- sudo apt-get install -y samba samba-common (python-glade2 system-config-samba opcional)


Configuración SAMBA:

Tenemos que ir a /etc/samba/

1º Hacer copia de seguridad del fichero de smb.conf.

- sudo cp smb.conf smb.conf.old


2º Configuración del fichero de smb.conf

- sudo nano smb.conf

Dentro de aquí vamos a diferenciar de dos formas de hacerlo:

COMPARTIR CARPETAS DE FORMA ANÓNIMA y COMPARTIR CARPETAS DE FORMA SEGURA.


COMPARTIR CARPETAS DE FORMA ANÓNIMA:

- En el fichero de configuración smb.conf tendremos que tenerlo tal que así:

Esta es la parte global.


workgroup: Defines el nombre de grupo
server string = Samba server (NO SE TOCA)
netbios name = nombre del servidor
map to guest =bad user 
dns proxy = no
Y lo demás no se toca.

Ahora nos vamos a "Share Definitions"

Y ponemos para la carpeta compartida anonima:


[Anonima] (Como se va a llamar la compartida en Windows)
path = /samba/anonima (Ruta completa donde se encuentra la carpeta creada)
browseable = yes (Navegable)
writable = yes (Escribible)
guest ok = yes (Invitados)
read only = no (Solo lectura)
force user = nobody (Fuerza al nobody)

Después de configurar esto, (O ANTES) pasaremos a crear la carpeta en la raíz de samba con el nombre de la carpeta que hemos configurado anteriormente.

- sudo mkdir -p /samba/anonima


Y en esa carpeta establecemos los permisos:

- chmod -R 0775 /samba/anonima (Quiere decir: Para el usuario: Lectura, Escritura y Ejecución, Para grupos: Lectura, Escritura y Ejecución. Para otros usuarios: Lectura y Ejecución)

Y después establecemos los dueños:

- chown -R nobody:nogroup (Nadie y ningún grupo) /samba/anonima


Una vez tengamos esto, reiniciamos SAMBA:

- sudo service smbd restart

Y ahora si nos vamos a el Windows 7 configurado previamente con Enrutamiento, DHCP y DNS:
Ponemos en la barra de búsqueda: \\ubuntuserver (nombre del netbios)





Y nos aparecerá nuestra carpeta que hemos definido en el archivo de smb.conf



Ahora creamos un fichero para comprobar que está bien:


Y nos vamos a la carpeta en el Ubuntu para comprobarla:


Cuotas de disco en Ubuntu Server

Cuotas de disco en Ubuntu Server

Primeramente antes de empezar se tienen que instalar los paquetes quota y quotatool:

- sudo apt-get install quota quotatool


Una vez instalado tenemos que definir en el disco los siguientes parametros: usrquota,grpquota dentro del disco de /home.

Para ello nos vamos al fichero /etc/fstab.

- sudo nano /etc/fstab:


Guardamos y reiniciamos el equipo.

O también puedes poner el comando: sudo mount -o remount,rw /home (YO RECOMIENDO REINICIAR).

Ahora vamos a crear las cuotas para ello ponemos: 

- sudo quotacheck -cmgu /home


Si nos vamos a /home y hacemos un ls, podemos comprobar que tenemos los ficheros de las cuotas creados correctamente:


Ahora vamos a editar las cuotas tanto para usuarios como para grupos con los comandos:

- edquota -u antonio (nombre usuario)
- edquota -g grupomaestro (nombre grupo)

Hay dos tipos de cuotas: por bloques o por inodos.

Por bloques:

- Un bloque corresponde a un 1kb

Por inodos: 

- Se puede ver como 1 inodo = 1 archivo

Las columnas de bloques y de inodos son informativas, esto quiere decir que ahí se muestra los bloques o los inodos que está utilizando actualmente los usuarios.

Y las que tenemos que editar son las columnas: blando y duro.


IMPORTANTE: Si vamos a poner blando y duro, el límite del blando es menor que el duro, ya que si se pone solamente el duro, no habrá advertencias previas al usuario, si se establecen los dos tanto el duro como el blando, cuando supere el blando, tiene una cierta cantidad hasta el duro y entra en periodo de gracia. (Más adelante se explica como hacer)

Nosotros vamos a hacerlo por bloques:

-  Le voy a poner en blando 100 MB que son en bloques 102400 (Hacer conversión multiplicando por 1024)

- Y en duro le voy a poner 110 MB que son en bloques 112640



Ahora guardamos y cerramos y vamos a modificar el periodo de gracia que hay entre blando y duro:

Para ello ponemos:

- edquota -t


Como podemos ver tenemos dos, por bloque o por inodo.

Para definir el periodo de gracia deberemos utilizar las unidades de tiempo en inglés (days, hours, minutes o seconds)

Tendremos que cambiar los dos para que funcione y ponerlo en inglés, lo voy a cambiar por 1 día. (1days)

Una vez tengamos ya las cuotas puestas, para saber si las tenemos bien y comprobar pondremos:

- sudo repquota -sv /home y nos saldrá toda la información:

Si queremos ver la de un usuario en específico pondremos:

- sudo quota -u mateos (nombreusuario)


Para desactivar las quotas tenemos que poner:

- sudo quotaoff /home (ruta)

IMPORTANTE *Si se reinicia el equipo se pondrá las cuotas automáticamente otra vez, para quitar las cuotas definitivamente hay que ponerlas a 0*

Para volver a activar las quotas:

- sudo quotaon /home (ruta)

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: