lunes, mayo 01, 2023

How to Switch Between GDM and LightDM in Ubuntu

 fuente: https://www.programbr.com/ubuntu/how-to-switch-between-gdm-and-lightdm


How to Switch Between GDM and LightDM or other display managers in Ubuntu.

To switch between gdm3 and LightDM. Your system should have already installed gdm3 and lightdm. Earlier LightDM was default display manager of Ubuntu. But from Ubuntu 20.04 comes with gdm3 as the default display manager.

ADVERTISEMENT

To install gdm use this command sudo apt install gdm3 or to install LightDM use this command sudo apt install lightdm in terminal.

Switching Between GDM3 and LightDM

Read also: gdm3 vs lightdm

To switch between gdm3 and lightdm, run the below command in terminal.

ADVERTISEMENT

sudo dpkg-reconfigure gdm3

Using the above mentioned command will take you to a warning page. Enter to go to next screen. After that On the next screen, you will see all the available display managers. Select your preferred display manager and then press enter, Once you have selected it, press the tab to go to ok and press enter again. Then, restart your computer.

You can got this error (gdm.service is not active, cannot reload. invoke-rc.d: initscript gdm3, action “reload” failed.)

ADVERTISEMENT

gdm.service is not active, cannot reload.
invoke-rc.d: initscript gdm3, action "reload" failed.

The error that you’re receiving just means that gdm3 wasn’t already running, so it couldn’t reload it. reboot it or run below command in terminal.

sudo systemctl start gdm3.service
sudo dpkg-reconfigure gdm3

Conclusion

you can run the same command sudo dpkg-reconfigure gdm to switch to any display manager between LightDM, MDM, KDM, Slim, GDM.

sábado, abril 01, 2023

Ver los puertos abiertos en Ubuntu

 Ver los puertos abiertos en Ubuntu

(gracias a:  https://www.hoswedaje.com/web/ver-los-puertos-abiertos-en-ubuntu/ )


1.1 El comando: lsof

1.2 El comando : netstat

1.3 El comando:  nmap

1.4 El comando:  netcat




1.1 El comando: lsof

sudo lsof -i -P -n

sudo lsof -i -P -n | grep LISTEN


1.2 El comando : netstat

    • p: Te muestra las conexiones para el protocolo especificado,  que podría ser ser TCP o UDP.
    • u: Te lista todos los puertos UDP.
    • t: Te lista todos los puertos TCP.
    • o: Te muestra los timers.
    • n: Te muestra el numero de puerto.
    • a: Te visualiza todas las conexiones activas del sistema.

Así, ponemos el comando y con una tubería podemos obtener información sobre un determinado puerto, por ejemplo

netstat -putona | grep numero-de-puerto

1.3 El comando:  nmap

sudo nmap -sU -O localhost

sudo nmap -sT -O 192.168.0.1

1.4 El comando : netcat   (investigar más las prestaciones)

  • z es un parámetro que se encarga de que, al finalizar la comprobación, la conexión se cierre o, de lo contrario, el programa quedaría funcionando en bucle hasta que lo finalizáramos nosotros manualmente con control+C, de forma similar a cuando se realiza un ping en Linux.
  • v es el parámetro que se encarga de comprobar si el puerto está abierto o cerrado.

nc -zv {IP} {PUERTO}

 


sábado, febrero 18, 2023

Instalar Odoo en Contenedor Docker por ssh

Hoja de ruta:

  1. Instalar SO en máquina anfitriona
  2. Habilitar SSH
  3. ingresar por SSH y continuar:
  4. Preparar directorios para volúmenes
  5. instalar docker y docker-compose
  6. Instalar contenedor Portainer
  7. Instalar contenedor Postgres
  8. Instalar contenedor Odoo
  9. Instalar contenedor Pgadmin4
  10. poder agregar módulos en los volúmenes
  11. preparar instalador docker-compse.yml para postgres+odoo


Habilitar SSH

https://www.ionos.es/digitalguide/servidores/configuracion/ubuntu-ssh/

sudo apt install openssh-server

sudo systemctl status ssh

sudo systemctl enable ssh

sudo systemctl start ssh

Abrir el puerto SSH

sudo ufw allow ssh

UFW es el programa de configuración de Ubuntu para su propio firewall. Configura una regla para la comunicación SSH con este programa, de modo que el puerto esté abierto para los datos entrantes y salientes:

Para ver la ip:

sudo apt install net-tools

ifconfig     192.168.1.105

ip a

Para acceder por ssh:

ssh 192.168.1.105

Preparar directorios para volúmenes

Crear los directorios dónde irán los volúmenes. (cambiar rutas y carpetas por las elegidas para la máquina anfitriona)

/home/fernando/odoo: nombre de carpeta dónde irán los volúmenes, adaptar a las rutas respectivas de la máquina anfitriona


mkdir /home/fernando/odoo

mkdir /home/fernando/odoo/mnt/extra-addons

mkdir /home/fernando/odoo/var/lib/odoo

mkdir /home/fernando/odoo/logs         

mkdir /home/fernando/odoo/etc/odoo


IMPORTANTE:  crear etc/odoo/odoo.conf y odoo/logs/odoo.log


instalar docker y docker-compose
https://help.wnpower.com/hc/es/articles/360048910771-C%C3%B3mo-instalar-Docker-en-tu-servidor-con-Ubuntu
  1. Loguéate con root a tu consola de comandos.

  2. Primero, instala los requisitos iniciales corriendo estos comandos.
    sudo apt-get update

    sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common
  3. Ahora instala la llave.
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  4. Agregaremos en este paso el repositorio de Docker.
    sudo add-apt-repository \
    "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
    $(lsb_release -cs) \
    stable"
  5. Instala los paquetes.
    sudo apt-get update
    sudo apt-get install docker-ce docker-ce-cli containerd.io

    Si durante el proceso de instalación arroja el error "dpkg: error processing package linux-image-unsigned-..." puedes desestimarlo sin problema.

  6. Prueba la instalación usando comando de "hola mundo".
    sudo docker run hello-world
  7. Si todo salió bien veremos el siguiente mensaje.
    latest: Pulling from library/hello-world
    0e03bdcc26d7: Pull complete
    Digest: sha256:49a1c8800c94df04e9658809b006fd8a686cab8028d33cfba2cc049724254202
    Status Downloaded newer image for hello-world:latest
    Hello from Docker!
    This message shows that your installation appears to be working correctly.
    To generate this message, Docker took the following steps:
    1. The Docker client contacted the Docker daemon.
    2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
    3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
    4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.
    To try something more ambitious, you can run an Ubuntu container with:
    $ docker run -it ubuntu bash
    Share images, automate workflows, and more with a free Docker ID:
    https://hub.docker.com/
    For more examples and ideas, visit:
    https://docs.docker.com/get-started/
  8. Listo, Docker ya está instalado en tu servidor.


VEr el link también para instalar un usuario de Docker y un contenedor de wordpress: https://help.wnpower.com/hc/es/articles/360048910771-C%C3%B3mo-instalar-Docker-en-tu-servidor-con-Ubuntu





Instalar contenedor Portainer

sudo docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest

https://localhost:9443/ 

User admin:**********


Instalar contenedor Postgres
Contenedor de Postgres crea el directorio psq


sudo docker run -d -v /home/fernando/odoo/psq:/var/lib/postgresql/data -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo -e POSTGRES_DB=postgres -p5432:5432 --name db --add-host=docker:172.17.0.3 --restart always postgres:13


Instalar contenedor Odoo



  • –name: indica el nombre del Docker en el sistema.

  • -t odoo:14  indica la versión a instalar


Arrancar el contenedor, con sus parámetros


Uno simple de prueba:


sudo docker run -d -p 8069:8069 --name Odoo --restart always --link db:db -t odoo


Uno con todos los volúmenes:


IMPORTANTE: 

los volúmenes deben estar indicados en odoo.conf, 

y odoo.conf cargado en /etc/odoo


sudo docker run -d -v /home/fernando/odoo/mnt/extra-addons:/mnt/extra-addons -v /home/fernando/odoo/log/odoo:/var/log/odoo -v /home/fernando/odoo/var/lib/odoo:/var/lib/odoo -v /home/fernando/odoo/etc/odoo:/etc/odoo -p 8069:8069 --name Odooconvol --restart always --link db:db -t odoo


odoo.conf ejemplo

[options]

addons_path = /mnt/extra-addons

data_dir = /var/lib/odoo

;admin_passwd = Tela+0+Rojo

admin_passwd = odoo

db_host = 172.17.0.3

db_maxconn = 100

db_password = odoo

db_user = odoo

limit_time_cpu = 5400

limit_time_real = 14400 

list_db = True

logfile = /var/log/odoo/odoo.log

logrotate = True

max_cron_threads = 1

proxy_mode = True

syslog = False

workers = 8

xmlrpcs_port = 8069

without_demo = all

[queue_job]

channels = root:4





Instalar Docker Pgadmin4 (en construc.)

https://www.pgadmin.org/docs/pgadmin4/latest/container_deployment.html

docker pull dpage/pgadmin4

docker run -p 80:80 \

    -e 'PGADMIN_DEFAULT_EMAIL=user@domain.com' \

    -e 'PGADMIN_DEFAULT_PASSWORD=SuperSecret' \

    -d dpage/pgadmin4


Instalar Pgadmin4

# Install the public key for the repository (if not done previously):

curl -fsS https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo gpg --dearmor -o /usr/share/keyrings/packages-pgadmin-org.gpg


# Create the repository configuration file:

sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/packages-pgadmin-org.gpg] https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$(lsb_release -cs) pgadmin4 main" > /etc/apt/sources.list.d/pgadmin4.list && apt update'


#

# Install pgAdmin

#


# Install for both desktop and web modes:

sudo apt install pgadmin4


# Install for desktop mode only:

sudo apt install pgadmin4-desktop


# Install for web mode only: 

sudo apt install pgadmin4-web 


# Configure the webserver, if you installed pgadmin4-web:

sudo /usr/pgadmin4/bin/setup-web.sh



User  fersystem@gmail.com : ***********

ver df -h: 


con cuidado por que reinicia el apache……




jueves, enero 12, 2023

Clonado de contenedores Docker:

  

El contenedor debe estar detenido (para evitar pérdida de datos)

 

para ver lista de contenedores

sudo docker ps -a 

 

para generar la imagen clonada a partir del contenedor:

sudo docker commit -m “comentarios” -a “autor” “id del cont. a clonar”  “nombre imagen nueva”

(esta no funcionó, quedaba en un promt)

sudo docker commit “id del cont. a clonar”  “nombre imagen nueva”  (sin comillas)

 

 

para ver imágenes

sudo docker images

 

para copiar y comprimir la imagen

sudo docker save “imagen-posgres13-2301120655” | gzip > “imagen-posgres13-2301120655.tar.gz”

 

(se genera en el dir donde uno se encuentra)



en lugar de destino:

gunzip -c mycontainerimage.tar.gz | docker load

miércoles, enero 11, 2023

SErvidor ftp loclahost VSFTPD

 SErvidor ftp loclahost VSFTPD


tomado de:  https://ubunlog.com/vsftpd-instalar-un-servidor-ftp-ubuntu/?msclkid=14610ebdca2b11ecb4eb432b1dbc16c5

Instalar vsftpd

Para este ejemplo, voy a instalar un servidor FPT en mi red local sobre un Ubuntu 20.04. Si no lo tienes instalado en tu equipo, se puede instalar con el comando (Ctrl+Alt+T):

instalar vsftpd

1
sudo apt install vsftpd

Una vez instalado, vamos a empezar por hacer una copia del archivo de configuración original. Si algo sale mal, se puede restaurar la configuración predeterminada.

1
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf_default

Ahora vamos a iniciar el servicio con el comando:

1
sudo systemctl start vsftpd

Confirmamos que se está ejecutando con:

enable vsftpd

1
sudo systemctl enable vsftpd

Cuenta de usuario FTP

Con esto podremos usar cualquier cliente FTP para acceder a los archivos alojados en el servidor a través de vsftpd. En la terminal (Ctrl+Alt+T) solo tendremos que utilizar el comando:

1
sudo useradd –m nombre-usuario

Sustituye ‘nombre-usuario‘ por tu nombre de usuario previsto. A continuación vamos a establecer una contraseña:

crear usuario ftp

1
sudo passwd nombre-usuario

Después nos vamos a mover a la carpeta de usuario recién creada:

1
cd /home/nombre-usuario

Lo ideal es que el FTP se restrinja a un directorio específico por motivos de seguridad. Vsftpd usa jaulas chroot para lograr esto. Con chroot habilitado, un usuario local está restringido a su directorio de inicio (por defecto). Para este ejemplo, vamos a crear un directorio ftp que actuará como chroot, junto con un directorio de archivos modificables.

Para empezar creamos la carpeta FTP:

1
sudo mkdir ftp

Estableceremos la propiedad de la carpeta con este otro comando:

propiedad carpeta ftp

1
sudo chown nobody:nogroup /home/nombre-usuario/ftp

Ahora eliminamos los permisos de escritura de esta carpeta:

1
sudo chmod a-w /home/nombre-usuario/ftp

Continuamos creando directorio contenedor de archivos y le asignaremos la propiedad:

crear la carpeta files

1
2
3
sudo mkdir /home/nombre-usuario/ftp/files
 
sudo chown nombre-usuario:nombre-usuario /home/nombre-usuario/ftp/files

En este punto, vamos a crear un archivo de prueba en la carpeta files:

crear archivo de ejemplo

1
echo "vsftpd archivo de ejemplo" | sudo tee /home/nombre-usuario/ftp/files/ejemplo.txt

Asegurar el servidor FTP

En esta paso vamos a abrir los puertos 20 y 21 para el tráfico FTP. Los puertos 40000-50000 serán los reservados para el rango de puertos pasivos que eventualmente se establecerán en el archivo de configuración y el puerto 990 se usará cuando se habilite el TLS. Ejecuta lo siguiente para hacerlo:

1
sudo ufw allow 20/tcp; sudo ufw allow 21/tcp; sudo ufw allow 990/tcp; sudo ufw allow 40000:50000/tcp

Si utilizas un firewall diferente, consulta su documentación para abrir los puertos.

Configurar vsftpd

Como nos interesa que los usuarios puedan cargar archivos, vamos a editar el archivo de configuración de vsftpd:

1
sudo vim /etc/vsftpd.conf

Dentro del archivo vamos a buscar las siguientes entradas y descomentarlas:

anonymous write local a descomentar

1
2
3
4
5
anonymous_enable=NO
 
write_enable=YES
 
local_enable=YES

Chroot_local_user tampoco se comentará, con ello nos garantizamos que el usuario conectado solo acceda a los archivos dentro del directorio permitido:

chroot local users a descomentar

1
chroot_local_user=YES

También vamos a añadir manualmente algunos valores nuevos al final del archivo. Esto permitirá que la configuración funcione con el usuario actual y con cualquier otro usuario que se agregue posteriormente:

usr local USER

1
2
user_sub_token=$USER
local_root=/home/$USER/ftp

Reinicia el daemon para cargar los cambios:

1
sudo systemctl restart vsftpd

Conexiones cifradas

Vamos a utilizar TTL/SSL para garantizar la seguridad. Debemos crear el certificado SSL y usarlo para proteger el servidor FTP. Esto lo haremos con el comando:

generar certificado SSL

1
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

El flag -days hace que el certificado sea válido por un año y hemos incluido una clave privada RSA de 2048 bits en el mismo comando. Cuando termines de crear el certificado, abre otra vez el archivo de configuración:

1
sudo vim /etc/vsftpd.conf

El final del archivo debemos encontrar dos líneas que comiencen con «rsa«. Comenta ambas líneas y escribe las siguientes:

1
2
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem

líneas rsa

Ahora habilitaremos SSL para que solo los clientes que tengan SSL habilitados puedan conectarse. Cambia el valor de ssl_enable a YES:

1
ssl_enable=YES

Para no permitir conexiones anónimas a través de SSL, añade las líneas:

configuración seguridad

1
2
3
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES

Configura el servidor para usar TLS, añadiendo:

1
2
3
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO

También conseguiremos que no será necesario reutilizar SSL, porque puede ocasionar que muchos clientes de FTP no funcionen. Además utilizaremos suites de encriptación de alto cifrado, añadiendo las líneas:

1
2
require_ssl_reuse=NO
ssl_ciphers=HIGH

Guardamos el archivo y reiniciamos el servicio:

1
sudo systemctl restart vsftpd

Acceder desde un cliente FTP

Ahora ya podremos conectarnos a nuestro servidor FTP. Para esto podremos utilizar una aplicación desde el entorno gráfico o el comando de terminal ftp. Si optas por el entorno gráfico, necesitarás un cliente FTP como FileZilla. Para instalarlo puedes recurrir al artículo que un compañero escribió en este blog hace un tiempo.

Una vez instalado e iniciado Filezilla, haz clic en Archivo / Gestor de sitios. Lo siguiente será hacer clic en “Nuevo sitio”.

conexión de filezilla a vsftpd

En el panel de la derecha, selecciona como protocolo FTP. Si está utilizando FTPS, selecciona TLS para cifrado. A continuación, escribe el nombre de host o la dirección IP en Servidor y añade el puerto (21). Para el modo de acceso selecciona Normal, y escribe las credenciales de tu cuenta en Usuario y Contraseña. Haz clic en Conectar.

Tendremos que aceptemos el certificado que creamos anteriormente.

aceptar certificado SSL

Llegados a este punto veremos el archivo de ejemplo que creamos dentro de la carpeta files. Ya podemos comenzar a usar nuestro servidor FTP. Simplemente arrastra y suelta los archivos que quieras mover.

filezilla archivo ejemplo

Usando un FTP, podremos capturar los datos siempre que los necesitemos. Se puede saber más sobre vsftpd y su configuración desde la página de documentación de Ubuntu.