Implementaciones libres de S3
Lista de implementaciones open source del protocolo S3 para almacenamiento en red:
RustFS
PetaSAN
Minio
Garage
SeaweedFS
Ceph+RadosGateway
Etiquetas: Administracion, Linux
Lista de implementaciones open source del protocolo S3 para almacenamiento en red:
RustFS
PetaSAN
Minio
Garage
SeaweedFS
Ceph+RadosGateway
Etiquetas: Administracion, Linux
Etiquetas: Administracion, Docker, Kubernetes
Anoto por aquí una serie de cosas a tener en cuenta al instalar un nuevo sistema Linux para optimizarlo todo lo posible:
- Habilitar zram. En Debian instalo el paquete zram-tools y habilito el servicio zramswap.service en systemctl
- Usar noatime,nodiratime o relatime en los sistemas de ficheros de Linux para evitar escrituras innecesarias (/etc/fstab)
- Añadir los parámetros --disk-cache-dir=/dev/null --disk-cache-size=1 al arranque de Chrome / Chromium para deshabilitar la caché y evitar escrituras innecesarias en disco (/etc/chromium.d/default-flags).
- Establecer browser.cache.disk.enable=false en about:config de Firefox para deshabilitar la caché y evitar escrituras innecesarias en disco.
- Deshabilitar servicios innecesarios en systemctl.
- Deshabilitar ipv6 si no vamos a usarlo:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
net.ipv6.conf.tun0.disable_ipv6 = 1
- Deshabilitar ipv6 en NetworkManager, ya que por defecto escucha en el puerto 546/udp:
nmcli connection modify <nombre_conexion> ipv6.method ignore
- Montar /tmp y /var/tmp como tmpfs
Etiquetas: Administracion, Configuración, Linux
java -XX:+PrintFlagsFinal -version
Etiquetas: Administracion, Java, Programación
strings /sys/firmware/acpi/tables/MSDM | grep -E '[A-Z0-9]{5}(-[A-Z0-9]{5}){4}'
Necesitaremos ejecutarlo como usuario root para que el comando funcione.
En Windows se puede consultar ejecutando este comando en PowerShell como administrador:
wmic path softwarelicensingservice get OA3xOriginalProductKey
Etiquetas: Administracion, Linux, Windows
La web cheat.sh es una maravilla que permite obtener una referencia rápida y ejemplos de uso de comandos Linux.
Para consultar algo desde línea de comandos de forma rápida podemos añadir al fichero .bashrc lo siguiente:
alias cheat='function _cheat(){ curl cheat.sh/$1; };_cheat'
Y lo usaríamos de la siguiente forma para consultar ejemplos de openssl:
cheat openssl
Etiquetas: Administracion, Documentacion, Linux
Etiquetas: Administracion, Configuración, Curiosidades, Hardware, Linux, Navegadores
Si hemos modificado alguna configuración de Jenkins o una tarea directamente accediendo a los ficheros en disco y queremos recargar esa configuración hay que hacerlo desde la Script Console ejecutando el siguiente comando:
Jenkins.instance.getAllItems(AbstractItem.class).each { it.doReload() };
No funcionará hacerlo de otra forma porque tanto la opción de recarga de configuración que ofrece Jenkins en la pantalla de administración como intentarlo con Jenkins-cli no produce el resultado esperado. Hay un bug en esta funcionalidad que sigue abierto en la URL https://issues.jenkins.io/browse/JENKINS-30870
Etiquetas: Administracion, Configuración, Jenkins
inst.ks=http://IP_SERVIDOR_WEB/ks.cfg ip=IP_ESTATICA::GATEWAY:NETMASK:HOSTNAME.DOMAIN:INTERFAZ:none
IP_SERVIDOR_WEB es la ip del servidor web donde alojamos el fichero kickstart
IP_ESTATICA es la ip de la interfaz de red local que se configura inicialmente donde instalamos para poder acceder al servidor web anterior
GATEWAY ip del gateway
NETMASK máscara de subred de la interfaz de red local
HOSTNAME.DOMAIN nombre y dominio que tendrá inicialmente el equipo
INTERFAZ nombre de la interfaz de red, normalmente enp1s0 o eth0
Un ejemplo de fichero kickstart sería el siguiente:
# Generated by Anaconda 34.25.0.29 # Generated by pykickstart v3.32 #version=RHEL9 text repo --name="AppStream" --baseurl=file:///run/install/sources/mount-0000-cdrom/AppStream %addon com_redhat_kdump --disable %end # Keyboard layouts keyboard --xlayouts='es' # System language lang es_ES.UTF-8 # Network information network --bootproto=dhcp --device=enp1s0 --noipv6 --no-activate # Use CDROM installation media cdrom %packages @^minimal-environment %end # Run the Setup Agent on first boot firstboot --enable # Generated using Blivet version 3.4.0 ignoredisk --only-use=vda autopart # Partition clearing information clearpart --none --initlabel timesource --ntp-disable # System timezone timezone Europe/Madrid --utc # Root password rootpw --iscrypted $6$d2fDfieZew3$7dP/2Movv18TJoIZ9KEM4Iwei0NF6m6a9dDAGMj013f2qu6ReLIv9geB/BFBcQ1vrjKFA5VICIo0yS8S4ze0r/
Etiquetas: Administracion, Linux
udisksctl power-off -b /dev/sdb udisks --detach /dev/sdbEl disco /dev/sdb debe cambiarse por el que queramos desconectar de forma segura.
Etiquetas: Administracion, Linux
nginx.ingress.kubernetes.io/enable-modsecurity: "true" nginx.ingress.kubernetes.io/enable-owasp-core-rules: "true" nginx.ingress.kubernetes.io/modsecurity-transaction-id: "$request_id" nginx.ingress.kubernetes.io/modsecurity-snippet: | SecRuleEngine OnFuente: ModSecurity with ingress-nginx
Etiquetas: Administracion, Configuración, Kubernetes
Si necesitamos arrancar una base de datos MySQL / MariaDB de la que no conocemos la contraseña del usuario root podemos hacerlo con lanzando el demonio de la base de datos con el comando mysqld o mysqld_safe con el parámetro --init-file=FICHERO
FICHERO debe ser un fichero que contenga un comando SQL , sin comentarios, para cambiar la contraseña de root. Por ejemplo:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('prueba');Arrancaríamos la base de datos con
mysqld_safe --init-file=FICHEROy probaríamos a entrar con mysql -u root -p usando la contraseña que hemos puesto.
En las pruebas que he hecho he tenido que poner el fichero usado en el parámetro --init-file en el directorio donde se ubican los datos de MySQL / MariaDB, por defecto en /var/lib/mysql, ya que con SELinux habilitado no era posible leerlo en otras ubicaciones con otro contexto.
Etiquetas: Administracion, BBDD
Para obtener el yaml desplegado por Helm en un cluster Kubernetes usamos el siguiente comando donde indicaremos el nombre de la versión desplegada, que puede consultarse con el comando helm list -n NAMESPACE y el nombre del namespace si hemos desplegado en un namespace que no es default
Etiquetas: Administracion, Helm, Kubernetes
Etiquetas: Administracion, Kubernetes
ansible localhost -m debug -a 'var=groups' ansible localhost -m debug -a 'var=groups.keys()'
Etiquetas: Administracion, Ansible, Linux
for servicio in $(docker service ls -f label=com.docker.lb.hosts --format "{{.Name}}")
do
docker service inspect "$servicio" --format '{{ range $k, $v := .Spec.Labels }}{{ $k }}={{ $v }} {{end}}' | \
tr " " "\n" | awk -F= '/com.docker.lb.hosts/ { print $NF }'
done;
kubectl get virtualservice -A --no-headers -o custom-columns=HOSTS:.spec.hosts | sed 's/\[//; s/\]//; s/ /\n/'
Etiquetas: Administracion, Docker, Kubernetes, Linux
Etiquetas: Administracion, Linux, Optimización, swap, zram
python -c "import socket; print ( socket.gethostbyname('google.com') )"
perl -e 'use Socket; use Data::Dumper;
@addrs = gethostbyname("google.com") or die "No puedo resolver el nombre$!\n";
@addrs = map { inet_ntoa($_) } @addrs[4 .. $#addrs];
foreach my $addr (@addrs) { print "$addr\n"; }'
Etiquetas: Administracion, Linux
Para ver los datos de una petición de certificado (CSR):
openssl req -text -noout -in fichero.csr
Para ver los datos de un certificado en formato x509:
openssl x509 -text -noout -in certificado.cer
Para generar un fichero .pfx a partir de un certificado en formato x509:
openssl pkcs12 -export -out fichero.pfx -inkey claveprivada.key -in certificado.cer -certfile certificadoCA.cer
Para establecer una contraseña en un fichero de clave privada ya existente
openssl rsa -aes256 -in fichero.key -out fichero.cifrado.key
Para generar una clave privada (de 4096 bits)
openssl genrsa -des3 -out clave.key 4096
Para generar una solicitud de certificado
openssl req -new -key clave.key -out solicitud.csr
Para generar una clave privada, de 2048 bits, y solicitud de certificado
openssl req -newkey rsa:2048 -keyout clave.key -out solicitud.csr
Para generar un certificado (con validez de un año)
openssl x509 -req -days 365 -in solicitud.csr -signkey clave.key -out certificado.crt
Para eliminar la contraseña de una clave privada
openssl rsa -in clave.key -out clave.key.sincontraseña
Para convertir un certificado de formato .crt / .cer / .der a .pem:
openssl x509 -inform der -in certificado.cer -out certificado.pem
Para convertir un certificado de formato .pem a .crt / .cer / .der:
openssl x509 -outform der -in certificado.pem -out certificate.cer
Para verificar la validez de un certificado respecto a la clave privada:
openssl x509 -noout -modulus -in certificado.crt| openssl md5
openssl rsa -noout -modulus -in clave.key| openssl md5
Para convertir un certificado de formato .pem a .p12 con contraseña:
openssl pkcs12 -export -out cert.p12 -in cert.pem -inkey key.pem
Más comandos en Certificado Digitales con OpenSSL aquí
Otros comandos OpenSSL para conversión de formato de certificados y uso habitual de openssl
Etiquetas: Administracion, Seguridad
az account list-locations
az group create --name RG_Prueba --location westeurope
az network vnet create -n vnetPrueba -g RG_Prueba --address-prefixes 10.0.0.0/16 --location westeurope --subnet-name subnetProduccion --subnet-prefix 10.0.0.0/24 --tags 'cadena=valor';
az network nsg create -g RG_Prueba -n MiNSG --location westeurope
az network nsg rule create -g RG_Prueba --nsg-name MiNsg -n MiNsgRule --source-address-prefix 0.0.0.0/24 --source-port-range '*' --destination-address-prefix '*' --destination-port-range 22 --access Allow --protocol Tcp --description "Prueba" --priority 100
az storage account create --location westeurope --name sprueba --resource-group RG_Prueba --sku Standard_LRS;
az vm availability-set create -n MiAvSet -g RG_Prueba --platform-fault-domain-count 2 --platform-update-domain-count 2
az vm image list
az vm create -n MaquinaPrueba -g RG_Prueba --image "Canonical:UbuntuServer:16.04-LTS:latest" --location westeurope --size Standard_A0 --tags 'maquina=prueba' --authentication-type ssh --ssh-key-value ~/.ssh/id_rsa.pub --nsg MiNsg --private-ip-address 10.0.0.5 --vnet-name vnetPrueba --subnet subnetProduccion --availability-set MiAvSet --storage-sku Standard_LRSNOTA: El parámetro --storage-account no se admite para managed disks del market
az vm deallocate -n MaquinaPrueba -g RG_Prueba
az vm list-ip-addresses
az group delete --name RG_Prueba --no-wait -y
Etiquetas: Administracion, Azure