lunes, 25 de febrero de 2019

Crear una VPN con Ubuntu server y OpenVPN

Resultado de imagen de open vpn
Una manera rápida de hacerlo es utilizando los scripts desarrollados en:

https://github.com/angristan/openvpn-install

Como bien lo describe, lo primero es descargar el ejecutable y darle permisos de ejecución

curl -O https://raw.githubusercontent.com/Angristan/openvpn-install/master/openvpn-install.sh
chmod +x openvpn-install.sh

Ejecutarlo

./openvpn-install.sh

La ejecución inicia un entorno guiado vía terminal en la que permite:
  • Instalar la VPN
  • Agregar un cliente
  • Eliminar un cliente
  • Desinstalar la VPN
Probado en:
Ubuntu server 16.04

domingo, 24 de febrero de 2019

Montar un disco para compartir con Samba en Ubuntu server

Resultado de imagen de share "files" samba

Formatear disco

Consultar particiones y sistemas de fichero
sudo lsblk -fm

Otra forma de consultar los discos y particiones
sudo fdisk -l

Para gestionar particiones se indica el disco y se opera con las opciones dadas («m» para ver opciones)
sudo fdisk /dev/sdb

Para crear una partición se presiona «d» y se sigue la guía.


Formatear la partición
sudo mkfs.ext4 /deb/sdb1

*Tienen que estar desmontado. La primera vez que se haga lo estará. Pero si se ha montado y se quiere desmontar un disco:
sudo umount /dev/sdb1

*Si está ocupado no se puede desmontar el disco, se puede consultar qué procesos lo usan previo desmontaje:
sudo fuser -vm /dev/sdb1

En el ejemplo, estaba siendo usado por el proceso de Samba, así que detuve Samba y se pudo desmontar. Sino tocaría matar/parar procesos, o forzar el desmontaje.

*Si se da formato NTFS al disco no se puede aplicar la política unix de usuario/grupo a los ficheros impidiendo la gestión por usuario al compartir ficheros

Montar disco

Crear carpeta donde alojar el disco
sudo mkdir /media/data

Montar el disco en la carpeta
sudo mount /dev/sdb1 /media/data

Modificar el fichero fstab para que la configuración quede guardada
sudo nano /etc/fstab

En el ejemplo:
/dev/sdb1 /media/data ext4 defaults 1 2

Instalación y configuración de Samba (Ubuntu server 16.04)

Si estamos aquí es porque queremos compartir ficheros. Samba se instaló en Ubuntu y se accede desde Windows, Mac OS X, otros Linux. El proceso indica cómo hacer una carpeta de acceso general y otra de uso bajo usuario y contraseña.

Si no estuviera instalado samba se instala
sudo apt install samba

Se edita el archivo: /etc/samba/smb.conf

Se descomenta/modifica la línea
wins support = yes
net bios = MySERVER #nombre del equipo en la red

Y al final del fichero se añade la configuración de cada carpeta a compartir:
[publica]
path = /media/data/folderpublic 
browsable = yes 
guest ok = yes 
only guest = no 
read only = no 
create mask = 0777 
directory mask = 0777 
public = yes

[privada] 
path = /media/data/folderpriv 
browsable = yes 
guest ok = no 
read only = no 
create mask = 0770 
directory mask = 0770
  • path ubicación de la carpeta a compartir
  • browsable si es navegable desde el Explorador de Windows
  • guest si permite la conexión de forma anónima sin usuario y contraseña
  • read only si solo es de lectura o se permite escritura
  • create mask permisos con los que se van a crear los nuevos ficheros
Se tienen que tener la carpeta creada con los permisos adecuados
sudo mkdir -p /media/data/folderpublic 
sudo mkdir -p /media/data/folderpriv

Crear usuario linux y grupo a utilizar para acceso a la carpeta privada
sudo useradd userpriv
sudo groupadd grouppriv

Se asigna el grupo al usuario
sudo usermod -g grouppriv userpriv

*Si se quiere añadir el usuario a grupos adicionales
sudo adduser userpriv otrogrupo

Se agrega como usuario samba
sudo smbpasswd -a userpriv

Listar usuarios samba
pdbedit -L

Si se quiere eliminar un usuario
sudo smbpasswd -x userpriv

Aplicar permiso de forma recursiva al directorio y subdirectorios (por si los hubiese)
sudo chmod -R 775 /media/data/folderpublic
sudo chmod -R 775 /media/data/folderpriv

Cambiamos grupo a la carpeta
sudo chown -hR root:grouppriv /media/data/forderpriv
sudo chown -hR nobody:nogroup /media/data/folderpublic

Reiniciar samba tras los cambios
sudo /etc/init.d/samba restart

*Para Samba (en caso de necesitar)
sudo /etc/init.d/samba stop

*Iniciar Samba (en caso de necesitar)
sudo /etc/init.d/samba start

Eliminar credenciales de Windows para conexiones compartidas

Cuando estamos viendo carpetas compartidas Windows ya suele almacenar credenciales y como solo permite una a la vez si luego queremos acceder a otro recurso con credenciales diferentes tendremos problemas de acceso, para ello lo más rápido eliminamos credenciales guardadas.

- Presionar las teclas Windows + R
- Escriben en la ventana de Ejecutar: cmd
- En la ventana que se abre escribir: net use * /del
- Escriben una ese «S» para confirmar la eliminación de entradas en caso de existir.
- Pueden cerrar la ventana

Cerrar todas las ventanas del Explorador de Windows que están viendo recursos de red.

Ahora en la ventana de Ejecutar (Windows+R) escribir
rundll32.exe keymgr.dll, KRShowKeyMgr

En la ventana que se abre se elimina las credenciales que acceden a recursos compartidos (o se configura una para la conexión que queremos, en mi caso a 192.168.1.5). En el ejemplo no influye ni DriveFS ni GitHub.


Reiniciar el servicio de credenciales

Una vez hecho esto se podrá iniciar sesión para acceder al recurso. Si se almacenan las credenciales el acceso será directo.







viernes, 15 de febrero de 2019

MySQL: crear índice único y no único

Una PRIMARY KEY crea un índice único asociado al campo que es clave primaria, además es NOT NULL por defecto, y por tabla se tiene una sola clave primaria.
Cuando queremos que un campo o varios sean únicos entonces creamos una constraint UNIQUE y si queremos que sea un índice no único lo declaramos como KEY pero no en la misma línea del campo porque significaría que declaramos una PRIMARY KEY, y no es lo que queremos.

create table test(
    clave_primaria    int unsigned not null,
    clave_unica       varchar(128) default null,
    clave_nounica     varchar(128) default null,
    constraint pk_test_claveprimaria primary key(clave_primaria),
    constraint uq_test_claveunica unique(clave_unica),
    key(clave_nounica)
);





Se ha utilizado
-MySQL Ver 14.14 Distrib 5.7.23, for Win64

Sublime text: colocar cursor al inicio de varias líneas seleccionadas


Cuando se quiere editar varias líneas colocamos el cursor en las líneas deseadas presionando cmd, pero cuando son muchas líneas o todas las líneas podemos:

cmd + A selecciona todas las líneas
cmd + shift + L divide el cursor en cada línea seleccionada
cmd + izquierda mueve el cursor al inicio de la línea