script per iniciar iptables i carregar-les com a persistents

#! /bin/sh
set -e
XARXALAN=192.168.242.0/24

case "$1" in
  start)
  # Engeguem el firewall
  echo "Aplicant regles de Firewall ..."

  # Netegem el firewall
  /sbin/iptables -F
  /sbin/iptables -X
  /sbin/iptables -Z
  /sbin/iptables -t nat -F

  # Establim regles per defecte
  /sbin/iptables -P INPUT ACCEPT
  /sbin/iptables -P OUTPUT ACCEPT
  /sbin/iptables -P FORWARD ACCEPT
  /sbin/iptables -t nat -P PREROUTING ACCEPT
  /sbin/iptables -t nat -P POSTROUTING ACCEPT

  # Filtrem ssh al Firewall
  /sbin/iptables -A INPUT -p tcp -s 80.64.32.9 --dport 22 -j ACCEPT
  /sbin/iptables -A INPUT -p tcp -s 80.64.32.11 --dport 22 -j ACCEPT
  /sbin/iptables -A INPUT -p tcp -s $XARXALAN --dport 22 -j ACCEPT
  /sbin/iptables -A INPUT -p tcp --dport 22 -j DROP

  # Gravem a persitent
  /usr/sbin/iptables-save > /etc/iptables/rules.v4

  echo "OK. Fet  !!!"

  ;;

  stop)
  # Aturem el firewall
  /sbin/iptables -F
  /sbin/iptables -X
  /sbin/iptables -Z
  /sbin/iptables -t nat -F

  ;;

  *)

echo "Usage: /etc/init.d/firewall {start|stop}"

exit 1

esac

exit 0



script per sincronitzar les EFI en entorns amb RAID

#!/usr/bin/bash

#
# Aquest script sincronitza la partició EFI activa amb la de l'altre
# disc en RAID 1, per tal de sincronitzar possibles canvis.
# En aquest exemple la partició EFI del disc no bootable es troba a /dev/sbd2,
# cal ajustar-ho al sistema que hi hagi.
# Es pot ficar com a tasca de cron, per exemple:
#   5 15 * * *     /root/scripts/efisync
#
mount /dev/sdb2 /mnt
rsync -av /boot/efi /mnt
umount /mnt

script per controlar no quedar-nos sense espai en disc

#!/bin/sh
#
# Aquest script comprova si alguna de les particions esta a mes d'un 80 o
# un 90 % de la seva capacitat. I si es aixi, envia un correu.
# Es pot ficar com a tasca de cron, per exemple:
#   5 15 * * *     /root/scripts/espai-disc
#

valor1=`df -k | grep "9[0-9]%" | wc -c`
valor2=`df -k | grep "8[0-9]%" | wc -c`

df > /tmp/f1

if [ $valor1 -gt 1 ]
then
mail -s "Particio a + del 90% d'ocupacio a $HOSTNAME" admin@grn.es < /tmp/f1
fi

if [ $valor2 -gt 1 ]
then
mail -s "Particio a + del 80% d'ocupacio a $HOSTNAME" admin@grn.es < /tmp/f1
fi

rm /tmp/f1

 

ssh amb versions velles

Quan la versió de ssh del client és molt nova i la del servidor molt vella, tenim errors com “no matching host key type found. Their offer: ssh-dss”

Una solució és afegir IPs, rangs d’IPs o noms al fitxer ~/.ssh/config amb les següents línies

Host my.host.com *.myinsecure.net 192.168.1.* 192.168.2.*
    HostKeyAlgorithms ssh-dss
    KexAlgorithms diffie-hellman-group1-sha1

xRDP amb Debian 12 Mate

Per controlar una màquina Linux en mode gràfic tenim 2 opcions: VNC o xRDP. Amb VNC sempre hi ha històries de compatibilitat amb els diferents clients que hi ha i algun d’ells a passat a modalitat de pagament. xRDP és una bona opció, ja que tenim clients per les diferents plataformes:

  • Linux -> Remina
  • Mac -> Windows App
  • Windows -> Connexió a Escriptori Remot

Després de trastejar uns dies amb xRDP he trobat diferents problemes. El més important és que en alguns casos no funciona si l’ordinador a controlar no tenia pantalla en el moment d’engegar, cosa que dificulta el treball en mode headless. L’altre problema és que funcioni amb els diferents entorns gràfics. He aconseguit que funcioni amb XFCE i amb Mate. Personalment prefereixo Mate i aquest post explica la instal·lació en aquest cas.

1. Instal·lem Debian 12

El procés d’instal·lació de tota la vida… En el moment de triar els paquets a instal·lar, canviar GNOME per MATE i activar SSH, que sempre va bé.

2. Donem permisos de sudo a l’usuari

Si no treballem amb root, necessitem que l’usuari habitual amb el qual connectarem. Per això afegirem aquesta línia a /etc/sudoers, amb el vostre nom d’usuari corresponent:

esteve ALL=(ALL:ALL) ALL

3. Instal·lem xRDP

He trobat un script que et fa tota la feina eficientment. S’ha d’executar des de l’usuari normal, no des de root. És per això que hem activat el sudo al pas 2. Ho he trobat aquí.

Baixem el script d’Internet:

wget https://www.c-nergy.be/downloads/xRDP/xrdp-installer-1.4.2.zip

El descomprimim:

unzip xrdp-installer-1.4.2.zip

Li donem permisos d’execució:

chmod -x xrdp-installer-1.4.2.sh

L’executem des de l’usuari normal:

./xrdp-installer-1.4.2.sh

4. Un últim retoc perquè funcioni

Fet això no acaba de funcionar amb un error “Could not acquire name on session bus”. La solució que he trobat per arreglar-ho és editar el fitxer ~/.xsession i afegir-hi aquestes línies:

unset DBUS_SESSION_BUS_ADDRESS
unset SESSION_MANAGER
mate-session

I amb això ja ho tenim, muntem un client de RDP i provem de connectar-nos-hi.

Salut i bits !!

Xarxa amb més d’un servidor de DHCP

Podem saber si hi ha més d’un servidor DHCP a la xarxa amb aquesta comanda

nmap --script broadcast-dhcp-discover -e eth0

Comandes Linux administració de xarxa

ip a o ip addr sh o ip addr show (antiga: ifconfig)

ip r o ip route sh o ip route sh (antiga: route -n)

ip link set eth0 up o nmcli dev connect eth0 (antiga: ifup eth0)

ip link set eth0 down o nmcli dev disconnect eth0 (antiga: ifdown eth0)

ip route add default via 192.168.253.1 dev eth0 (antiga: route add default gw 192.168.253.1 eth0)

ip route add 192.168.100.0/24 via 192.168.253.1 dev eth0 (antiga: route add -net 192.168.100.0/24 gw 192.168.253.1 eth0) I per fer una ruta persistent, a /etc/network/interfaces ficar-hi up ip route add 192.168.100.0/24 via 192.168.253.1 dev eth0

Corregir un fitxer de text que ha quedat marcat com a binari

tr -d '\000' < filein > fileout

OpenVPN quan el servidor no és el default gateway de la xarxa

Si el servidor OpenVPN no és el router de la xarxa, he de fer NAT perquè les màquines de la xarxa sàpiguen tornar els paquets

iptables -t nat -I POSTROUTING -o enp2s0 -s 10.8.0.0/24 -j MASQUERADE

Deshabilitar visual mode a vim

add to ~/.vimrc:

set mouse-=a
syntax on