Linux

Tips para linux como usuario final

Extraer páginas de un PDF en Linux desde el shell

Antecedentes

Mucha sveces necesitamos extraer de un docuemnto PDF una o varias páginas, y para mi la forma más comoda es la de usar un comando de terminal. Tampoco soy amigo de instalar software pirata como hacen muchos usuarios de Linux, que instalarían el Acrobat Pro en un windows emulado. Ni amigo de instalar apps de escritorio que muchas veces dependen de mucho software.

Pdftk

Pdftk es una herramienta para trabajar con documentos PDF en la linea de comandos.

Instalación

Apt (Debian, Ubuntu)

sudo apt install pdftk

Snap (Preferida por mi)

sudo snap install pdftk

Extraer páginas de un PDF con PDFtk

pdftk [nombre_original.pdf] cat [paginas_numeros] output [nombre_del_fichero_extraido.pdf]

Extrarer páginas especificas

pdftk [nombre_original.pdf] cat 2 4 6 output [nombre_del_fichero_extraido.pdf]

Otros enlaces

Instalar la última version de HPLIP Driver para impresoras HP en Ubuntu 20.04

Introducción

No soy fan de las impresoras HP por motivos políticos y su inmersión en el territorio ocupado de Palestina. Pero en su día compré una HP Officejet Pro 7220. Como casi siempre, HP y su sistema de driver es penoso con linux.

En mi caso me era imposible instalar el HPLIP para Ubuntu 20.04 por error de dependencias con python, python-pyqt5

Arreglar la dependencia de python-pyqt5

El tema está en que para compatibilizar las versiones de python 2 y 3 hay un juego de enlace simbólicos y en Ubuntu esa vinculación hará que el instalador HPLIP intentará por error instalar bibliotecas dependientes de Python 2 en lugar de las de Python 3.

Instalar python-is-python3

sudo apt install python-is-python3
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias        
Leyendo la información de estado... Hecho
Los paquetes indicados a continuación se instalaron de forma automática y ya no son necesarios.
 hplip-data libqrcodegencpp1 librlottie0-1 libxxhash0 python3-notify2
Utilice «sudo apt autoremove» para eliminarlos.
Los siguientes paquetes se ELIMINARÁN:
 python-is-python2
Se instalarán los siguientes paquetes NUEVOS:
 python-is-python3
0 actualizados, 1 nuevos se instalarán, 1 para eliminar y 6 no actualizados.
Se necesita descargar 2.364 B de archivos.
Se utilizarán 0 B de espacio de disco adicional después de esta operación.
¿Desea continuar? [Y/n] y
Des:1 http://es.archive.ubuntu.com/ubuntu focal/main amd64 python-is-python3 all 3.8.2-4 [2.364 B]
Descargados 2.364 B en 0s (9.362 B/s)          
(Leyendo la base de datos ... 468110 ficheros o directorios instalados actualmente.)
Desinstalando python-is-python2 (2.7.17-4) ...
Seleccionando el paquete python-is-python3 previamente no seleccionado.
(Leyendo la base de datos ... 468108 ficheros o directorios instalados actualmente.)
Preparando para desempaquetar .../python-is-python3_3.8.2-4_all.deb ...
Desempaquetando python-is-python3 (3.8.2-4) ...
Configurando python-is-python3 (3.8.2-4) ...

Intentar de nuevo la instalación

Podemos instalar de nuevo nuestro paquete instalador en modo automático descargado de la página de drivers de HP

$ ./hplip-3.21.12.run
…

Agradecimientos

A Ji m, en su atirulo How to Install the Latest HPLIP Driver in Ubuntu 20.04

Aviso

Esta documentación y su contenido, no implica que funcione en tu caso o determinados casos. También implica que tienes conocimientos sobre lo que trata, y que en cualquier caso tienes copias de seguridad. El contenido el contenido se entrega, tal y como está, sin que ello implique ningún obligación ni responsabilidad por parte de Castris

Si necesitas soporte profesional puedes contratar con Castris soporte profesional.

OpeVPN WireGuard: Servidor y cliente en unos minutos (Ubuntu 20.04)

VPN WireGuard, como VPN

WireGuard es un protocolo de comunicación open source que implementa un sistema de creación de redes virtuales privadas (vpn) con gran facilidad de uso y un perfil bajo de susceptibilidad a ataques.

En este doc cómo instalar una vpn en un pequeño VPS con Ubuntu 20.04, y como instalar tu cliente en linux y en android

Instalación del servidor

Existe un instalador muy simpático llamado wireguard-install que funciona a la perfección

Existe una versión del mismo para OpenVPN

# wget https://git.io/vpn -O openvpn-install.sh && bash openvpn-install.sh
Welcome to this WireGuard road warrior installer!

What port should WireGuard listen to?
Port [51820]: 

Enter a name for the first client:
Name [client]: castris

Select a DNS server for the client:
   1) Current system resolvers
   2) Google
   3) 1.1.1.1
   4) OpenDNS
   5) Quad9
   6) AdGuard
DNS server [1]: 1
….
suggested packages:
  openresolv | resolvconf
The following NEW packages will be installed:
  wireguard wireguard-tools
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/86.6 kB of archives.
After this operation, 344 kB of additional disk space will be used.
Selecting previously unselected package wireguard-tools.
(Reading database ... 76796 files and directories currently installed.)
Preparing to unpack .../wireguard-tools_1.0.20200513-1~20.04.2_amd64.deb ...
Unpacking wireguard-tools (1.0.20200513-1~20.04.2) ...
Selecting previously unselected package wireguard.
Preparing to unpack .../wireguard_1.0.20200513-1~20.04.2_all.deb ...
Unpacking wireguard (1.0.20200513-1~20.04.2) ...
Setting up wireguard-tools (1.0.20200513-1~20.04.2) ...
wg-quick.target is a disabled or a static unit, not starting it.
Setting up wireguard (1.0.20200513-1~20.04.2) ...
Processing triggers for man-db (2.9.1-1) ...
Created symlink /etc/systemd/system/multi-user.target.wants/wg-iptables.service → /etc/systemd/system/wg-iptables.service.
Created symlink /etc/systemd/system/multi-user.target.wants/wg-quick@wg0.service → /lib/systemd/system/wg-quick@.service.

Al final verás un código QR que puedes guardar (a buen seguro) que te permite con la aplicación de Android, configurar con simple escaneo de la imagen tu conexión VPN en Android.

Código QR Wiredguard

También verás el fichero de configuración del cliente que has creado.

Si quieres crear más clientes, desinstalar el servidor, etc, solo tienes que volver a ejecutar bash openvpn-install.sh

Cliente Ubuntu 20.04

Instalar

Sencillo. Los comandos de abajo instalar wireguard y wireguard-tools

$ sudo apt update
$ sudo apt install wireguard

Configurar

Copiar el contenido del fichero que la pantalla de instalación nombre_de_cliente.conf en el fichero de tu equipo local.

sudoedit /etc/wireguard/wg0.conf

Arranque de la VPN

sudo wg-quick up wg0
[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 10.7.0.2/24 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] resolvconf -a tun.wg0 -m 0 -x
[#] wg set wg0 fwmark 51820
[#] ip -6 route add ::/0 dev wg0 table 51820
[#] ip -6 rule add not fwmark 51820 table 51820
[#] ip -6 rule add table main suppress_prefixlength 0
[#] ip6tables-restore -n
[#] ip -4 route add 0.0.0.0/0 dev wg0 table 51820
[#] ip -4 rule add not fwmark 51820 table 51820
[#] ip -4 rule add table main suppress_prefixlength 0
[#] sysctl -q net.ipv4.conf.all.src_valid_mark=1
[#] iptables-restore -n

Apagado de la conexión


sudo wg-quick down wg0
[#] ip -4 rule delete table 51820
[#] ip -4 rule delete table main suppress_prefixlength 0
[#] ip -6 rule delete table 51820
[#] ip -6 rule delete table main suppress_prefixlength 0
[#] ip link delete dev wg0
[#] resolvconf -d tun.wg0 -f
[#] iptables-restore -n
[#] ip6tables-restore -n

Arranque automático

Si deseas que cuando se cargue el sistema, se conecte por defecto a la VPN puedes habilitar el arranque automático de la VPN con systemctl

$ sudo systemctl enable wg-quick@wg0

O deshabilitar el arranque automático.

$ sudo systemctl disable wg-quick@wg0

Bonus

Si tu servidor Wireguard quieres proteger, y CSF Firewall quieres usar, un truco tendrás que cocinar.

Editar /usr/local/csf/bin/csfpre.sh

IP En la última línea es la red que tiene tu wireguard configurada en la interface en el fichero de configuración /etc/wireguard/wg0.conf eth0 Es la interface de red de tu servidor. Puede ser esa, ens18, u otra.

sudo tee -a /usr/local/csf/bin/csfpre.sh > /dev/null <<EOT 
iptables -A INPUT -i wg0 -j ACCEPT
iptables -A OUTPUT -o wg0 -j ACCEPT
iptables -A FORWARD -i wg0 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o wg0 -j ACCEPT
iptables -t nat -A POSTROUTING -s  IP/24 -o eth0 -j MASQUERADE
EOT

Puertos abiertos

Wireguard necesita el puerto que indica el fichero de configuración del servidor, por lo general 51820

Bien debes ponerlo en TCP_IN, UDP_IN

En cuanto al OUT, deberías abrir todos. (o los que quieras, es tu lio)

TCP_OUT = "1:65535"
UDP_OUT = "1:65535"

Ya está. Reinicia tu firewall.

Enlaces

Aviso

Esta documentación y su contenido, no implica que funcione en tu caso o determinados casos. También implica que tienes conocimientos sobre lo que trata, y que en cualquier caso tienes copias de seguridad. El contenido el contenido se entrega, tal y como está, sin que ello implique ningún obligación ni responsabilidad por parte de Castris

Si necesitas soporte profesional puedes contratar con Castris soporte profesional.

Durante mucho tiempo use Squid para ciertas cosas, pero bueno, la verdad es que una VPN cumple muchas más expectativas de uso para la administración de sistemas. En particular, que puedo tener un punto de acceso a los sistemas como administrador (root) sin tener que usar un host dinámico, para cuando salgo fuera de la oficina y tener que andar con frikadas en el móvil.

Centos 8 : Failed to download metadata for repo 'appstream'

Introducción

Algunasveces con los cambios que existen en el ecosistema linux, como pueden ser los movimientos derivados de las actividades de Redhat, y en consecuencia sus derivados más directo Fedora y Centos, te saltan problemas esta vez y gracias a Proyectoa no perdi mucho el tiempo. ¡¡Gracias!!

Error

El error es simple, quieres actualiza o instalar algo y zas.

CentOS Linux 8 – AppStream Error: Failed to download metadata for repo ‘appstream’: Cannot prepare internal mirrorlist: No URLs in mirrorlist

Solución

Comentar los mirrorlist

sed -i -e "s|mirrorlist=|#mirrorlist=|g" /etc/yum.repos.d/CentOS-*

Modificar el baseurl

Modificaremos el baseurl de todos los ficheros del yum.repos.d

sed -i -e "s|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g" /etc/yum.repos.d/CentOS-*

Limpieza de caches y actualización del repositorio

[root@monitor01 ~] dnf clean all
91 files removed
[root@monitor01 ~]# dnf swap centos-linux-repos centos-stream-repos
CentOS Linux 8 - AppStream                                                                                                                                   2.2 MB/s | 8.4 MB     00:03    
CentOS Linux 8 - BaseOS                                                                                                                                      2.5 MB/s | 4.6 MB     00:01    
CentOS Linux 8 - Extras                                                                                                                                       70 kB/s |  10 kB     00:00    
MariaDB                                                                                                                                                      516 kB/s | 601 kB     00:01    
ELRepo.org Community Enterprise Linux Repository - el8                                                                                                       321 kB/s | 171 kB     00:00    
Extra Packages for Enterprise Linux 8 - x86_64                                                                                                               3.1 MB/s |  11 MB     00:03    
Extra Packages for Enterprise Linux Modular 8 - x86_64                                                                                                       1.1 MB/s | 1.0 MB     00:00    
Remi's Modular repository for Enterprise Linux 8 - x86_64                                                                                                    1.3 MB/s | 973 kB     00:00    
Safe Remi's RPM repository for Enterprise Linux 8 - x86_64                                                                                                   2.4 MB/s | 2.1 MB     00:00    
Webmin Distribution Neutral                                                                                                                                  3.2 MB/s |  18 MB     00:05    
Zabbix Official Repository - x86_64                                                                                                                          212 kB/s | 240 kB     00:01    
Zabbix Official Repository non-supported - x86_64                                                                                                            1.9 kB/s | 1.2 kB     00:00    
Dependencies resolved.
=============================================================================================================================================================================================
 Package                                               Architecture                             Version                                      Repository                                 Size
=============================================================================================================================================================================================
Installing:
 centos-stream-repos                                   noarch                                   8-3.el8                                      extras                                     19 k
Removing:
 centos-linux-repos                                    noarch                                   8-3.el8                                      @baseos                                    26 k

Transaction Summary
=============================================================================================================================================================================================
Install  1 Package
Remove   1 Package

Total download size: 19 k
Is this ok [y/N]: y
Downloading Packages:
centos-stream-repos-8-3.el8.noarch.rpm                                                                                                                       227 kB/s |  19 kB     00:00    
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                        216 kB/s |  19 kB     00:00     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                                                                                                     1/1 
  Installing       : centos-stream-repos-8-3.el8.noarch                                                                                                                                  1/2 
  Erasing          : centos-linux-repos-8-3.el8.noarch                                                                                                                                   2/2 
warning: /etc/yum.repos.d/CentOS-Linux-PowerTools.repo saved as /etc/yum.repos.d/CentOS-Linux-PowerTools.repo.rpmsave
warning: /etc/yum.repos.d/CentOS-Linux-Plus.repo saved as /etc/yum.repos.d/CentOS-Linux-Plus.repo.rpmsave
warning: /etc/yum.repos.d/CentOS-Linux-HighAvailability.repo saved as /etc/yum.repos.d/CentOS-Linux-HighAvailability.repo.rpmsave
warning: /etc/yum.repos.d/CentOS-Linux-FastTrack.repo saved as /etc/yum.repos.d/CentOS-Linux-FastTrack.repo.rpmsave
warning: /etc/yum.repos.d/CentOS-Linux-Extras.repo saved as /etc/yum.repos.d/CentOS-Linux-Extras.repo.rpmsave
warning: /etc/yum.repos.d/CentOS-Linux-Devel.repo saved as /etc/yum.repos.d/CentOS-Linux-Devel.repo.rpmsave
warning: /etc/yum.repos.d/CentOS-Linux-ContinuousRelease.repo saved as /etc/yum.repos.d/CentOS-Linux-ContinuousRelease.repo.rpmsave
warning: /etc/yum.repos.d/CentOS-Linux-BaseOS.repo saved as /etc/yum.repos.d/CentOS-Linux-BaseOS.repo.rpmsave
warning: /etc/yum.repos.d/CentOS-Linux-AppStream.repo saved as /etc/yum.repos.d/CentOS-Linux-AppStream.repo.rpmsave

  Verifying        : centos-stream-repos-8-3.el8.noarch                                                                                                                                  1/2
  Verifying        : centos-linux-repos-8-3.el8.noarch                                                                                                                                   2/2

Installed:
  centos-stream-repos-8-3.el8.noarch
Removed:
  centos-linux-repos-8-3.el8.noarch

Complete! 

Ya lo tienes.

Aviso

Esta documentación y su contenido, no implica que funcione en tu caso o determinados casos. También implica que tienes conocimientos sobre lo que trata, y que en cualquier caso tienes copias de seguridad. El contenido el contenido se entrega, tal y como esta, sin que ello implique ningún obligación ni responsabilidad por parte de Castris

Si necesitas soporte profesional puedes contratar con Castris soporte profesional.

Apuntes de bash, sed, awk para administradores

A veces hay que analizar, extrare datos de los logs (benditos logs) y viene bien una chuleta a mano, para los que no estamos todo el día con el sistema, o la memoria muy floja por la edad.

Apuntes de bash, sed, awk para administradores

Básicos de sed

Eliminar comentarios y lineas en blanco con sed (bash o zsh)

grep -Ev '^#|^$' /path/to/file/