Menú alternativo
Alternar el menú de preferencias
Menú alternativo personal
No has accedido
Tu dirección IP será visible si haces alguna edición

Diferencia entre revisiones de «CachyOS»

De TechShareRoom wiki
Sin resumen de edición
Sin resumen de edición
 
(No se muestran 19 ediciones intermedias del mismo usuario)
Línea 1: Línea 1:
= Personalización =
= Actualización e instalación de paquetes =
*En Efectos de Escritorio quitar Desactivar Vista general
*Mostrar configuración del Panel (inferior) en otras pantallas - Entrar en modo edición y clonar en la otra pantalla
*Gestión de ventanas - Comportamiento de las ventanas - Movimiento - Zona de adhesión en el centro - Ninguna
*Usar script de reset de USB. Por ejemplo [https://github.com/gbiz123/reset-usb reset-usb]
 
= Actualización =
<syntaxhighlight lang="bash" copy>
<syntaxhighlight lang="bash" copy>
sudo pacman -Syu
sudo pacman -Syu
Línea 16: Línea 10:
</syntaxhighlight>
</syntaxhighlight>


= Firewall =
*Desactivar mirrors de CachyOS, opcional.
 
<syntaxhighlight lang="bash" copy>
sudo nano /etc/pacman.conf
</syntaxhighlight>
 
<syntaxhighlight lang="bash" copy>
<syntaxhighlight lang="bash" copy>
sudo nft list ruleset
#[cachyos-extra-v3]
sudo systemctl enable --now nftables
#Include = /etc/pacman.d/cachyos-mirrorlist
sudo systemctl status nftables
 
sudo nano /etc/nftables.conf
#[cachyos-core-v3]
#Include = /etc/pacman.d/cachyos-mirrorlist
 
#[cachyos-v3]
#Include = /etc/pacman.d/cachyos-mirrorlist
 
#[cachyos]
#Include = /etc/pacman.d/cachyos-mirrorlist
</syntaxhighlight>
</syntaxhighlight>
*Usar paru para instalar paquetes AUR


<syntaxhighlight lang="bash" copy>
<syntaxhighlight lang="bash" copy>
#!/usr/sbin/nft -f
sudo pacman -S paru --noconfirm --needed
</syntaxhighlight>


# nftables.conf para PC escritorio con aMule
En Octopi - Herramientas - Opciones - AUR - seleccionar paru y activar --noconfirm
# - Todo entrante bloqueado por defecto
# - Saliente permitido
# - Loopback y ICMP permitidos
# - Puertos aMule abiertos
# - SSH abierto opcional (borra si no lo usas)


table inet filter {
*Instalación de paquetes automatizada con este fork de [https://github.com/adgellida/ArchMatic ArchMatic]


    chain input {
= Personalización =
        type filter hook input priority 0; policy drop;
*Desactivar Vista general, en Efectos de Escritorio lo puedes quitar
*Mostrar configuración del Panel (inferior) en otras pantallas - Entrar en modo edición y clonar en la otra pantalla
*Quitar zona de adhesión en el centro - Gestión de ventanas - Comportamiento de las ventanas - Movimiento - Zona de adhesión en el centro - Ninguna
*Si tienes problemas con periféricos USB cuando se inicia el sistema usar script de reset de USB. Por ejemplo [https://github.com/gbiz123/reset-usb reset-usb]
<syntaxhighlight lang="bash" copy>
sudo ~/.local/bin/reset-usb
</syntaxhighlight>


        # Rechazar conexiones inválidas
Si quieres resetear un USB concreto, por ejemplo:
        ct state invalid drop comment "early drop of invalid connections"


        # Permitir conexiones ya establecidas o relacionadas
<syntaxhighlight lang="bash" copy>
        ct state { established, related } accept comment "allow tracked connections"
#!/usr/bin/env bash


        # Loopback
# ID del dispositivo (VendorID:ProductID)
        iif "lo" accept comment "allow loopback"
VENDOR_ID="1532"
PRODUCT_ID="0520"


        # ICMP (ping)
sleep_secs=1
        ip protocol icmp accept comment "allow icmp"
        ip6 nexthdr icmpv6 accept comment "allow icmp v6"


        # Puertos aMule
echo "Buscando Razer Kraken ($VENDOR_ID:$PRODUCT_ID)..."
        tcp dport 4662 accept comment "aMule TCP"
        udp dport 4665 accept comment "aMule UDP"
        tcp dport 4642 accept comment "aMule Webserver"


         # (Opcional) SSH - borrar si no usas
for devpath in /sys/bus/usb/devices/*; do
        tcp dport 22 accept comment "SSH"
    if [[ -f "$devpath/idVendor" && -f "$devpath/idProduct" ]]; then
         if [[ "$(cat $devpath/idVendor)" == "$VENDOR_ID" && \
              "$(cat $devpath/idProduct)" == "$PRODUCT_ID" ]]; then


        # Limitar paquetes de otros tipos para no saturar
            DEVICE=$(basename "$devpath")
        meta pkttype host limit rate 5/second burst 5 packets counter packets 0 bytes 0 reject with icmpx admin-prohibited
            echo "Encontrado dispositivo: $DEVICE"
    }
            echo "Reseteando..."


    chain forward {
            echo "$DEVICE" | sudo tee /sys/bus/usb/drivers/usb/unbind > /dev/null
        type filter hook forward priority 0; policy drop;
            sleep "$sleep_secs"
    }
            echo "$DEVICE" | sudo tee /sys/bus/usb/drivers/usb/bind > /dev/null


    chain output {
            echo "Reset completado."
         type filter hook output priority 0; policy accept;
            exit 0
     }
         fi
     fi
done


}
echo "No se encontró el dispositivo."
exit 1
</syntaxhighlight>
</syntaxhighlight>


<syntaxhighlight lang="bash" copy>
= Limpieza =
sudo nft -f /etc/nftables.conf
 
sudo systemctl enable --now nftables
*Limpieza general del sistema
sudo nft list ruleset
 
<syntaxhighlight lang="bash" copy>                    
#!/bin/bash
 
echo "Limpieza de caches pacman..."
sudo paccache -rk1
 
echo "Limpieza de cache paru/yay..."
sudo rm -rf /home/usuario/.cache/paru/clone
 
echo "Limpieza de systemd journal..."
sudo journalctl --vacuum-time=7d
 
echo "Limpieza de /tmp..."
sudo rm -rf /tmp/*
 
echo "Limpieza de kernels antiguos"
#Cambia 47e29bacae1a435da82822ebd19ffdfc por tu caso concreto
sudo rm -rf /boot/47e29bacae1a435da82822ebd19ffdfc/limine_history
 
echo "Limpieza de huérfanos..."
orphans=$(pacman -Qtdq)
 
if [ -n "$orphans" ]; then
  sudo pacman -Rns $orphans
else
  echo "No hay paquetes huérfanos."
fi
 
echo "Done."
</syntaxhighlight>
</syntaxhighlight>


= Keyring (Chrome based browsers) =
*Desactivar actualización de kernels lts
Así quitamos que cada vez nos pida la contraseña, sin perder seguridad porque estarán las contraseñas cifradas.


<syntaxhighlight lang="bash" copy>
<syntaxhighlight lang="bash" copy>
sudo pacman -S kwallet-pam kwalletmanager
sudo pacman -R linux-cachyos-lts linux-cachyos-lts-headers linux-cachyos-lts-nvidia-open
sudo nano /etc/pam.d/sddm
</syntaxhighlight>
</syntaxhighlight>


Cambiar esto, quitando todos los guiones, salvo los de password:
-Comando para ver lo que ocupan los kernels instalados:
<syntaxhighlight lang="bash" copy>
<syntaxhighlight lang="bash" copy>
#%PAM-1.0
sudo du -h --max-depth=1 /boot/47e29bacae1a435da82822ebd19ffdfc
</syntaxhighlight>


auth        include    system-login
= Snapshots =
-auth      optional    pam_gnome_keyring.so
Recomendado bajar los snapshots máximos a guardar de 50 a 10 por ejemplo con Btrfs Assistant.
-auth      optional    pam_kwallet5.so


account    include    system-login
= Keyring (Chrome based browsers) =
Deshabilitar kwallet si cualquier otra app no funciona bien, instalar gnome-keyring y poner contraseña vacía cuando pregunte al abrir la app.


password    include    system-login
= Energía =
-password  optional    pam_gnome_keyring.so    use_authtok
*Configurar modos para que en caso de cambio no haya incompatibilidad al restaurar el equipo. Por ahora, se desactiva que se suspenda.
*Restaurar sesión - Comenzar con una sesión vacía.


session    optional    pam_keyinit.so          force revoke
= Firewall =
session    include    system-login
<syntaxhighlight lang="bash" copy>
-session    optional    pam_gnome_keyring.so    auto_start
sudo nft list ruleset
-session    optional    pam_kwallet5.so        auto_start
sudo systemctl enable --now nftables
sudo systemctl status nftables
sudo nano /etc/nftables.conf
</syntaxhighlight>
</syntaxhighlight>


Así:
Cambiar esto:
<syntaxhighlight lang="bash" copy>
<syntaxhighlight lang="bash" copy>
#%PAM-1.0
#!/usr/bin/nft -f
# vim:set ts=2 sw=2 et:


auth        include    system-login
# IPv4/IPv6 Simple & Safe firewall ruleset.
auth      optional    pam_gnome_keyring.so
# More examples in /usr/share/nftables/ and /usr/share/doc/nftables/examples/.
auth      optional    pam_kwallet5.so


account     include     system-login
destroy table inet filter
table inet filter {
  chain input {
     type filter hook input priority filter
     policy drop


password    include     system-login
     ct state invalid drop comment "early drop of invalid connections"
-password   optional    pam_gnome_keyring.so    use_authtok
    ct state {established, related} accept comment "allow tracked connections"
    iif lo accept comment "allow from loopback"
    ip protocol icmp accept comment "allow icmp"
    meta l4proto ipv6-icmp accept comment "allow icmp v6"
    tcp dport ssh accept comment "allow sshd"
    pkttype host limit rate 5/second counter reject with icmpx type admin-prohibited
    counter
  }
  chain forward {
    type filter hook forward priority filter
    policy drop
   }
}
</syntaxhighlight>


session     optional    pam_keyinit.so          force revoke
Por esto:
session     include     system-login
 
session    optional    pam_gnome_keyring.so    auto_start
<syntaxhighlight lang="bash" copy>
session    optional    pam_kwallet5.so        auto_start
#!/usr/sbin/nft -f
 
table inet filter {
    chain input {
        type filter hook input priority 0; policy drop;
       
        # UDP aMule PRIMERO (antes de ct state)
        udp dport 4672 accept comment "aMule Kad UDP FIRST"
        udp dport 4665 accept comment "aMule UDP"
        tcp dport 4662 accept comment "aMule TCP"
        tcp dport 4642 accept comment "aMule Webserver"
       
        # AHORA ct state
        ct state invalid drop comment "early drop invalid"
        ct state { established, related } accept comment "allow tracked"
       
        # Loopback
        iif "lo" accept
       
        # ICMP
        ip protocol icmp accept
        ip6 nexthdr icmpv6 accept
       
        # SSH rate-limited
        tcp dport 22 ct state new limit rate 15/minute accept comment "SSH"
       
        # Anti-spoofing
        meta pkttype host limit rate 5/second burst 5 packets reject with icmpx admin-prohibited
     }
      
     chain forward { type filter hook forward priority 0; policy drop; }
    chain output { type filter hook output priority 0; policy accept; }
}
</syntaxhighlight>
</syntaxhighlight>


<syntaxhighlight lang="bash" copy>
<syntaxhighlight lang="bash" copy>
sudo systemctl restart sddm
sudo nft -f /etc/nftables.conf
sudo systemctl enable --now nftables
sudo nft list ruleset
</syntaxhighlight>
</syntaxhighlight>

Revisión actual - 11:00 22 feb 2026

Actualización e instalación de paquetes

sudo pacman -Syu

Si tienes problemas con los mirrors al actualizar:

sudo cachyos-rate-mirrors
  • Desactivar mirrors de CachyOS, opcional.
sudo nano /etc/pacman.conf
#[cachyos-extra-v3]
#Include = /etc/pacman.d/cachyos-mirrorlist

#[cachyos-core-v3]
#Include = /etc/pacman.d/cachyos-mirrorlist

#[cachyos-v3]
#Include = /etc/pacman.d/cachyos-mirrorlist

#[cachyos]
#Include = /etc/pacman.d/cachyos-mirrorlist
  • Usar paru para instalar paquetes AUR
sudo pacman -S paru --noconfirm --needed

En Octopi - Herramientas - Opciones - AUR - seleccionar paru y activar --noconfirm

  • Instalación de paquetes automatizada con este fork de ArchMatic

Personalización

  • Desactivar Vista general, en Efectos de Escritorio lo puedes quitar
  • Mostrar configuración del Panel (inferior) en otras pantallas - Entrar en modo edición y clonar en la otra pantalla
  • Quitar zona de adhesión en el centro - Gestión de ventanas - Comportamiento de las ventanas - Movimiento - Zona de adhesión en el centro - Ninguna
  • Si tienes problemas con periféricos USB cuando se inicia el sistema usar script de reset de USB. Por ejemplo reset-usb
sudo ~/.local/bin/reset-usb

Si quieres resetear un USB concreto, por ejemplo:

#!/usr/bin/env bash

# ID del dispositivo (VendorID:ProductID)
VENDOR_ID="1532"
PRODUCT_ID="0520"

sleep_secs=1

echo "Buscando Razer Kraken ($VENDOR_ID:$PRODUCT_ID)..."

for devpath in /sys/bus/usb/devices/*; do
    if [[ -f "$devpath/idVendor" && -f "$devpath/idProduct" ]]; then
        if [[ "$(cat $devpath/idVendor)" == "$VENDOR_ID" && \
              "$(cat $devpath/idProduct)" == "$PRODUCT_ID" ]]; then

            DEVICE=$(basename "$devpath")
            echo "Encontrado dispositivo: $DEVICE"
            echo "Reseteando..."

            echo "$DEVICE" | sudo tee /sys/bus/usb/drivers/usb/unbind > /dev/null
            sleep "$sleep_secs"
            echo "$DEVICE" | sudo tee /sys/bus/usb/drivers/usb/bind > /dev/null

            echo "Reset completado."
            exit 0
        fi
    fi
done

echo "No se encontró el dispositivo."
exit 1

Limpieza

  • Limpieza general del sistema
                     
#!/bin/bash

echo "Limpieza de caches pacman..."
sudo paccache -rk1

echo "Limpieza de cache paru/yay..."
sudo rm -rf /home/usuario/.cache/paru/clone

echo "Limpieza de systemd journal..."
sudo journalctl --vacuum-time=7d

echo "Limpieza de /tmp..."
sudo rm -rf /tmp/*

echo "Limpieza de kernels antiguos"
#Cambia 47e29bacae1a435da82822ebd19ffdfc por tu caso concreto
sudo rm -rf /boot/47e29bacae1a435da82822ebd19ffdfc/limine_history

echo "Limpieza de huérfanos..."
orphans=$(pacman -Qtdq)

if [ -n "$orphans" ]; then
  sudo pacman -Rns $orphans
else
  echo "No hay paquetes huérfanos."
fi

echo "Done."
  • Desactivar actualización de kernels lts
sudo pacman -R linux-cachyos-lts linux-cachyos-lts-headers linux-cachyos-lts-nvidia-open

-Comando para ver lo que ocupan los kernels instalados:

sudo du -h --max-depth=1 /boot/47e29bacae1a435da82822ebd19ffdfc

Snapshots

Recomendado bajar los snapshots máximos a guardar de 50 a 10 por ejemplo con Btrfs Assistant.

Keyring (Chrome based browsers)

Deshabilitar kwallet si cualquier otra app no funciona bien, instalar gnome-keyring y poner contraseña vacía cuando pregunte al abrir la app.

Energía

  • Configurar modos para que en caso de cambio no haya incompatibilidad al restaurar el equipo. Por ahora, se desactiva que se suspenda.
  • Restaurar sesión - Comenzar con una sesión vacía.

Firewall

sudo nft list ruleset
sudo systemctl enable --now nftables
sudo systemctl status nftables
sudo nano /etc/nftables.conf

Cambiar esto:

#!/usr/bin/nft -f
# vim:set ts=2 sw=2 et:

# IPv4/IPv6 Simple & Safe firewall ruleset.
# More examples in /usr/share/nftables/ and /usr/share/doc/nftables/examples/.

destroy table inet filter
table inet filter {
  chain input {
    type filter hook input priority filter
    policy drop

    ct state invalid drop comment "early drop of invalid connections"
    ct state {established, related} accept comment "allow tracked connections"
    iif lo accept comment "allow from loopback"
    ip protocol icmp accept comment "allow icmp"
    meta l4proto ipv6-icmp accept comment "allow icmp v6"
    tcp dport ssh accept comment "allow sshd"
    pkttype host limit rate 5/second counter reject with icmpx type admin-prohibited
    counter
  }
  chain forward {
    type filter hook forward priority filter
    policy drop
  }
}

Por esto:

#!/usr/sbin/nft -f

table inet filter {
    chain input {
        type filter hook input priority 0; policy drop;
        
        # UDP aMule PRIMERO (antes de ct state)
        udp dport 4672 accept comment "aMule Kad UDP FIRST"
        udp dport 4665 accept comment "aMule UDP" 
        tcp dport 4662 accept comment "aMule TCP"
        tcp dport 4642 accept comment "aMule Webserver"
        
        # AHORA ct state
        ct state invalid drop comment "early drop invalid"
        ct state { established, related } accept comment "allow tracked"
        
        # Loopback
        iif "lo" accept
        
        # ICMP
        ip protocol icmp accept
        ip6 nexthdr icmpv6 accept
        
        # SSH rate-limited
        tcp dport 22 ct state new limit rate 15/minute accept comment "SSH"
        
        # Anti-spoofing
        meta pkttype host limit rate 5/second burst 5 packets reject with icmpx admin-prohibited
    }
    
    chain forward { type filter hook forward priority 0; policy drop; }
    chain output { type filter hook output priority 0; policy accept; }
}
sudo nft -f /etc/nftables.conf
sudo systemctl enable --now nftables
sudo nft list ruleset