Páginas

Buscar este blog

martes, 4 de junio de 2019

Cambiar nombre de interfaces de red

Cambiar nombre a las tarjetas de red. Archlinux - Manjaro Linux

Por comodidad cambiaremos los nombres de las tarjetas de red

Obtener la dirección MAC de cada tarjeta

$ cat /sys/class/net/enp3S0/address
fc:3f:db:d1:52:75

$ cat /sys/class/net/wln2us/address
b6:59:5f:32:79:c4

Definiendo manualmente el nombre con una regla udev:

# nano -w /etc/udev/rules.d/10-network.rules

SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="fc:3f:db:d1:52:75", NAME="net0"
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="b6:59:5f:32:79:c4", NAME="wifi0"

Después de reiniciar tenemos los nuevos nombres de las interfaces de red

$ ls /sys/class/net
lo  net0  wifi0

Conectar manualmente al arranque usando systemd


Primero se crea el archivo de configuración de servicio de systemd
# nano -w /etc/conf.d/network@net0

address=192.168.3.200
netmask=24
broadcast=192.168.3.255
gateway=192.168.3.1

Luego se crea un archivo de unidad de systemd:

/etc/systemd/system/network@.service

[Unit]
Description=Network connectivity (%i)
Wants=network.target
Before=network.target
BindsTo=sys-subsystem-net-devices-%i.device
After=sys-subsystem-net-devices-%i.device

[Service]
Type=oneshot
RemainAfterExit=yes
EnvironmentFile=/etc/conf.d/network@%i

ExecStart=/usr/bin/ip link set dev %i up
ExecStart=/usr/bin/ip addr add ${address}/${netmask} broadcast ${broadcast} dev %i
ExecStart=/usr/bin/ip route add default via ${gateway}

ExecStop=/usr/bin/ip addr flush dev %i
ExecStop=/usr/bin/ip link set dev %i down

[Install]
WantedBy=multi-user.target

Activamos e iniciamos la unidad, proporcionando el nombre de la interfaz

# systemctl enable network@net0.service
# systemctl start network@net0.service

En el nuevo kernel cambiaremos los nuevos valores por defecto para intercambiar entre la tarjeta de red alámbrica e inalámbrica sin ningún problema. 

# echo 1 > /proc/sys/net/ipv4/conf/net0/ignore_routes_with_linkdown
# echo 1 > /proc/sys/net/ipv4/conf/wifi0/ignore_routes_with_linkdown

Para que los cambios sobrevivan al reinicio del sistema


# echo net.ipv4.conf.all.ignore_routes_with_linkdown=1 > /etc/sysctl.d/10-linkdown.conf
# sysctl -p /etc/sysctl.d/10-linkdown.conf

# ip r
default via 192.168.3.1 dev net0 proto dhcp metric 100
192.168.3.0/24 dev net0 proto kernel scope link src 192.168.3.10 metric 100

# ip addr
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: net0: mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether fc:3f:db:d1:52:75 brd ff:ff:ff:ff:ff:ff
    inet 192.168.3.10/24 brd 192.168.3.255 scope global dynamic noprefixroute net0
       valid_lft 35953sec preferred_lft 35953sec
    inet6 fe80::3637:14af:6cb9:ee7e/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
3: wifi0: mtu 1500 qdisc fq_codel state DORMANT group default qlen 1000
    link/ether 12:af:c7:9b:ed:31 brd ff:ff:ff:ff:ff:ff

En este momento estoy conectado a la red 192.168.3.0/24 (router soekris OpenBSD). Por tanto el sistema utiliza los DNS servidor dhcp del router.

$ cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 1.1.1.1
nameserver 1.0.0.1

OpenBSD es genial!.

lunes, 3 de junio de 2019

Instalar OpenBSD desde USB

Al realizar la instalación de OpenBSD desde un dispositivo USB Booteable, llega el momento de la instalación en que debe decidir entre 2 sets ("Location of sets") cd o disk y ftp o http para la instalación en red.

Algo parecido a esto:
Location of sets? (cd disk ftp http or 'done') [disk]
Is the disk partition already mounted? [no]
Avaliable disks are: sd0 wd0.
Which one contains the install media? (or 'done') [sd0]
mount_cd9660: /dev/sd0c on /mnt2: Invalid argument

Location of sets? (cd disk ftp http or 'done') [disk]
Is the disk partition already mounted? [yes]
Pathname to the sets? (or 'done') [5.9/i386]
The directory '5.9/i386' does not exist.

Solución:

En este punto puede salir de la shell usando el comando "!" montar del dispositivo y volver a la shell tecleando exit:

  Location of sets? (cd disk ftp http or 'done') [disk] !
  # mount /dev/sd0i /mnt2
  # exit
  Location of sets? (cd disk ftp http or 'done') [disk]
  Is the disk partition already mounted? [yes] yes
  Pathname to the sets? (or 'done') [5.9/i386] /mnt2/5.9/i386

Fuente: OpenBSD archive

OpenBSD es genial!.

martes, 6 de noviembre de 2018

PF OpenBSD

Firewall PF OpenBSD router Soekris 2018 

Instalación OpenBSD en una monoplaca Soekris net5501
OpenBSD soekris router

# cat /etc/pf.conf
#       $OpenBSD: pf.conf,v 1.54 2014/08/23 05:49:42 deraadt Exp $
#
# See pf.conf(5) and /etc/examples/pf.conf
int_if="{ vether0 vr1 vr2 vr3 }"
ext_if="vr0"
icmp_types="echoreq"
vpn_if="tun0"
openvpn_port="1198"
lan1="192.168.3.0/24"
lan2="192.168.1.0/24"
ssh_port="21000"

# Esta es una tabla de direcciones privadas no enrutables que se utilizara mas adelante.
table <martians> { 0.0.0.0/8 224.0.0.22 127.0.0.0/8 172.16.0.0/12 \
        169.254.0.0/16 192.0.2.0/24 \
        192.0.2.0/24 198.51.100.0/24 203.0.113.0/24 \
        169.254.0.0/16 240.0.0.0/4 255.255.255.255/32 }

# Bloquear todo
block all

# Decide si los paquetes rechazados deben enviar un TCP RST o descartarse silenciosamente.
set block-policy drop

# Habilitada la recopilacion de estadisticas de bytes y paquetes en egress.
# estas estadisticas pueden verse con el comando pfctl -si
set loginterface egress

# Omitir la interfaz lo del procesamiento de paquetes
set skip on lo

# Las reglas de coincidencia que se utilizan aqui logran dos cosas: normalizar los paquetes
# entrantes y realizar la traduccion de direcciones de red, con la interfaz de salida entre
# la LAN y la Internet publica
match in all scrub (no-df max-mss 1440 reassemble tcp random-id)
match out on egress inet from !(egress:network) to any nat-to (egress:0)
match inet6 all

# La palabra clave antispoof proporciona cierta proteccion de paquetes con direcciones de 
# origen falsificadas. Los paquetes que llegan a la interfaz de egress deben eliminarse si
# parecen pertenecer a la lista de direcciones que no se pueden enrutar que definimos.  
# Dichos paquetes probablemente se enviaron debido a una configuracion incorrecta, o 
# posiblemente como parte de un ataque de suplantacion de identidad. Del mismo modo, 
# nuestros clientes no deben intentar conectarse a dichas direcciones. Especificaremos la 
# accion de "retorno" para evitar tiempos de espera molestos para los usuarios. 
antispoof quick for (egress) 
block in quick on egress from <martians> to any
block return out quick on egress from any to { <martians> no-route }
block return out quick inet6 all

# Por defecto, no permite conecciones remota a X11
block return in on ! lo0 proto tcp to port 6000:6010
  
# Permitir el trafico saliente de IPv4 desde la propia puerta de enlace y los clientes LAN.
pass out quick inet

# Permitir ICMP entrante sobre todas las interfaces
pass in inet proto icmp icmp-type $icmp_types 

# Permitir el rango predeterminado para traceroute (8):
pass out on $ext_if inet proto udp from any to any port 33433:33626 keep state

# Permitir el trafico interno LAN 
pass in on $int_if inet

# Permitir conexiones desde LAN ssh
pass in inet proto tcp from { $lan1 $lan2 } to port $ssh_port

# Permitir conexiones a Internet a través de un servidor VPN. VPN permite el salto de los 
# bloqueos geográficos, un mayor anonimato en la Red y el bloqueo de publicidad 
pass in quick proto udp to $ext_if port $openvpn_port keep state
pass in quick on $vpn_if inet from any to any keep state
#############################################################################

# pfctl -vf /etc/pf.conf
                                                  
int_if = "{ vether0 vr1 vr2 vr3 }"
ext_if = "vr0"
icmp_types = "echoreq"
vpn_if = "tun0"
openvpn_port = "1198"
lan = "192.168.3.0/24"
ssh_port = "22"
table <martians> { 0.0.0.0/8 224.0.0.22 127.0.0.0/8 172.16.0.0/12 169.254.0.0/16 192.0.2.0/24 192.0.2.0/24 198.51.100.0/24 203.0.113.0/24 169.254.0.0/16 240.0.0.0/4 255.255.255.255 }
set block-policy drop
set loginterface egress
set skip on { lo }
block drop all
match in all scrub (no-df random-id reassemble tcp max-mss 1440)
match out on egress inet from ! (egress:network) to any nat-to (egress:0) round-robin
match inet6 all
block drop in quick on ! egress from (egress:network) to any
block drop in quick from (egress) to any
block drop in quick on egress from  to any
block return out quick on egress from any to 
block return out quick on egress from any to no-route
block return out quick inet6 all
block return in on ! lo0 proto tcp from any to any port 6000:6010
pass out quick inet all flags S/SA
pass in inet proto icmp all icmp-type echoreq
pass in on vether0 inet all flags S/SA
pass in on vr1 inet all flags S/SA
pass in on vr2 inet all flags S/SA
pass in on vr3 inet all flags S/SA
pass in inet proto tcp from 192.168.3.0/24 to any port = 21000 flags S/SA
pass out on vr0 inet proto udp from any to any port 33433:33626
pass in quick inet proto udp from any to 192.168.1.99 port = 1198
pass in quick on tun0 inet all flags S/SA


https://gnulinuxcodigo.blogspot.com/2015/12/openbsd-soekris-router.html
http://www.openbsd.org
http://www.freebsd.org
https://networkfilter.blogspot.com/2015/01/be-your-own-vpn-provider-with-openbsd.html
http://whoer.net/
https://en.wikipedia.org

OpenBSD es genial!.

martes, 22 de mayo de 2018

Disco de rescate Centos

Rescartar sistema Centos

Introduzca el disco de instalación para iniciar. Cuando aparezca la pantalla de bienvenida seleccione la entrada "Rescue installed system" con la tecla de dirección. Pulse Enter y continuar. Verá que la opción de arranque es simplemente rescue. Pulse Enter.

Lo primero es configurar el idioma spanish y Enter. Para el teclado Español/España, seleccione es luego la tecla TAB hasta que resalte Aceptar y a continuación Enter.

Método de rescate ¿Qué tipo de dispositivo contiene la imagen de rescate? seleccione CD/DVD

Si repondió Si en la pantalla ¿Desea arrancar las tarjetas de red del sistema? se le solicitará que elija la tarjeta o tarjetas que desea utilizar para establecer una conexión de red. Puede establecer la conexión de red por medio de DHCP o ip estática. Al finalizar pulse TAB y Aceptar

Rescatar

Las opciones son

Continuar. Intentará encontrar una instalación de Linux en el disco duro e intentará montar las particiones correspondiente debajo del directorio /mnt/sysimage. Se podrá acceder en modo lectura y escritura al sistema de archivos para realizar los cambios pertinentes.

Modo lectura. El sistema de archivos se montará en modo de sólo lectura.

Omitir. No se montaŕa el sistema de archivos del disco, ideal para realizar reparaciones del sistema de archivos de las particiones utilizando fsck.

Avanzado. Esta opción permite hacer uso de dispositivos especiales de almacenamiento.

Tan pronto como sea detectada la instalación en el disco duro, las particiones de la instalación existente quedarán montadas debajo del directorio /mnt/sysimage. Pulse Enter.

La pantalla que aparecerá presenta tres opciones.

Start shell. Inicia el intérprete de comandos, tendrá acceso a un conjunto básico de herramientas de diagnóstico y reparación.
Run diagnostic. Esta opción ejecuta FirstAidKit, una herramienta de reparación y verificación automática de algunos problemas comunes.
Reboot. Reinicia el sistema.

Seleccione Start shell y verifique que todas las particiones de la instalación han sido montadas utilizando el comando df -h

# df -h

Teclee exit para regresar a la anterior pantalla.

El comando 

# chroot /mnt/sysimage

Cambia al sistema operativo en el disco duro, desde el sistema operativo del disco de rescate.

Puede cambiar la clave de acceso del usuario root ejecutando passwd sin argumentos

# passwd

Es posible reinstalar manualmente el gestor de arranque del sistema ejecutando

# grub-install /dev/sda

Teclee exit para regresar al sistema operativo del entorno de rescate

# exit

Puede seleccionar ejecutar fakd (FirstAidKit), herramienta de diagnóstico y reparación automática de, el gestor de arranque, imagen del disco RAM para el inicio del sistema (initrd), arreglos de discos por software y reinstalación del algunos paquetes básicos.

Teclee exit para regresar a la anterior pantalla y reboot para reiniciar el sistema sin olvidar extraer el disco de rescate.


Centos es genial!.

sábado, 12 de mayo de 2018

Sector de arranque maestro Centos Linux

Respaldo y restauración del sector de arranque maestro

El sector de arranque maestro corresponde a los primeros 512 bytes del disco duro utilizado por el sistema operativo.

Los primeros 446 bytes corresponden al gestor de arranque
Los 64 bytes siguientes a la tabla de particiones (16 bytes para cada partición primaria y/o extendida que existan).
Los últimos 2 bytes corresponden a la firma de unidad arrancable, también conocida como los 2 bytes mágicos.

Tenga cuidado al ejecutar cualquiera de los siguientes comandos, si se equivoca corre el riesgo de dañar irreversiblemente los datos de la unidad de almacenamiento utilizada.

Respaldo y restauración del sector de arranque maestro

Respaldo del sector de arranque maestro

dd if=/dev/sda of=mbr.bin bs=512 count=1

Restaurar el sector de arranque maestro

dd if=mbr.bin of=/dev/sda bs=512 count=1

Respaldar exclusivamente el sector de arranque

dd if=/dev/sda of=gestor.bin bs=446 count=1

Para restaurar el gestor de arranque

dd if=gestor.bin of=/dev/sda bs=446 count=1

Respaldar la tabla de particiones

dd if=/dev/sda of=tabla.bin skip=446 bs=1 count=64

Para restaurar exclusivamente la tabla de particiones

dd if=tabla.bin of=/dev/sda seek=446 bs=1 count=64

Para borrar exclusivamente el gestor de arranque

dd if=/dev/zero of=/dev/sda bs=446 count=1

Para borrar exclusivamente la tabla de particiones, algo que nadie haría sin tener un respaldo a mano

dd if=/dev/zero of=/dev/sda seek=446 bs=1 count=64

Por último para borrar el sector de arranque completo, quiero decir el gestor de arranque, tabla de particiones y los dos bytes mágicos

dd if=tabla.bin of=/dev/sda bs=512 count=1

Red Hat System Administrator Guide


Centos es genial!.