Páginas

viernes, 17 de junio de 2016

RAID 1 en FreeBSD


RAID- 1,  o reflejo, es donde el contenido de un disco se duplica en otro. Esta es una gran manera de conseguir la fiabilidad a bajo costo. Yo uso RAID 1 en todos mis servidores. La duplicación puede dar incluso a un servidor de escritorio barato alguna medida de protección de datos. El tamaño de la matriz RAID 1 es el tamaño de
el disco duro más pequeño del array. Es recomendable utilizar discos del mismo tamaño.

Configuración de la Máquina Virtual

FreeBSD 10.3-RELEASE
Neetwork adapter : Bridge (Conectado directamente a la red física)
Dos discos duros de 40 GB cada uno.


Iniciamos el instalador FreeBSD

#

Entramos a la Shell para establecer la matriz manualmente. Esto es suponiendo que tenga una máquina capaz de arrancar desde GPT y tiene dos unidades de disco duro, de igual tamaño en el sistema. En este laboratorio dos discos, da0 y da1, de 40 GB c/u en una máquina virtual.

Averiguar los discos conectados

# sysctl -a|grep kern.disks
kern.disks cd0 da1 da0

Tamaño de los discos da0 y da1


# kldstat

# kldload geom_mirror

# gmirror list

# gmirror label root /dev/da0 /dev/da1

# gmirror status


# exit


seleccionar teclado

Nombre de host


Elegir componentes opcionales del sistema a instalar:


Particionado - manual


Elegir /mirror/roo del disco da0


GPT   GUID Partition Table



La tabla de particiones fue creada con éxito. Por favor, de nuevo para crear particiones.


Partición boot




Crear partición raíz




Creadas las particiones nos desplazamos con el tabulador hasta Finish y luego Intro.
En la siguiente pantalla Commit e Intro para guardar los cambios.


 Writing partition tables
 Initializing mirror/rootp2


Password for the system management account (root)
 New Password
 Retype New Password

Configuración de la red


Le gustaría configurar IPV4 para esta interfaz


Le gustaría utilizar DHCP para configurar esta interfaz?. No, nuestro servidor tendrá una IP estática.


 Static Network Interface Configuration
 IP Address      192.168.1.10
 Subnet mas 255.255.255.0
 Default Router  192.168.1.1

 Le gustaría configurar IPv6 para esta interfaz.
 NO

 Resolver Configuration



El reloj CMOS de esta máquina en hora UTC ? Si se ha establecido con la hora local ,
 o no sabe, por favor, seleccione NO en esta lista?
NO

Selecciones una región
 Europe
 Spain
 Madrid

 Does the abbreviation 'CEST' look reasonable?
 Yes

Elegir los servicios que le gustaría iniciar con el sistema:

 (*) sshd
 (*) ntpd
 (*) dumpdev

Le gustaría agregar usuarios a la instalación del sistema ahora?

Invite carles into other groups? []: wheel

 Aplicar configuración y salir del instalador

 La instalación ha finalizado. Antes de salir del instalador, le gustaría abrir una shell en el nuevo sistema para realizar para realizar manualmente alguna modificación final?
 Yes

# kldstat
 1 ...
 2   1  0xc60ce000  geom_mirror.ko

# gmirror status
    Name       Status    Components
 mirror/root  COMPLETE   ada0 (ACTIVE)
        ada1 (ACTIVE)

Iniciar GEOM con el sistema
# echo 'geom_mirror_load="YES"'>>/boot/loader.conf

# mount
# df


# exit y reiniciar


 login: root
 Password:
# mount

# df

# cat /boot/loader.conf
geom_mirror_load="YES"


Reparar RAID 1

El propósito principal de un RAID es redundancia. Si una unidad de disco duro muere, quiero ser capaz de recuperar los datos y/o mantener las operaciones. Su hardware dicta su capacidad para continuar las operaciones y/o recuperar. Si tiene un sistema intercambiables en caliente con unidades SCSI o SATA, puede reparar RAID sobre la marcha, si está utilizando un sistema ATA (prácitamente desaparecidos) es probable que tenga que cerrar para reemplazar el disco duro defectuoso.

# gmirror status

# ls /dev/mirror

Eliminar todas las unidades que no están actualmente disponibles en el configurador espejo
# gmirror forget root

Utilizamos el comando insert para agregar una unidad a la configuración
# gmirror insert root /dev/da1

Comprobar sincronización
# gmirror status

Este mensaje avisa de la finalización del proceso 
# GEOM_MIRROR: Device root: rebulding provider da1 finished.

Verificar operación
# gmirror status

Todo es correcto.





Referencias:
BSD magazine
BSDnow
http://bsdwiki.reedmedia.net/wiki/View_the_status_of_a_software_RAID_mirror_or_stripe.html
Obsolute FreeBSD Michael Lucas
Ivan Voras Programador FreeBSD

Unix es genial!.

viernes, 27 de mayo de 2016

Instalar OpenBSD 5.9 xfce4

Instalar con exito OpenBSD 5.9, xfce4 y slim


Después del primer reinicio definimos un mirror (espejo) cercano en la variable de entorno PKG_PATH.

# export PKG_PATH="http://ftp.eu.openbsd.org/pub/OpenBSD/5.9/packages/`machine -a`/"

Listos para instalar paquetes pero antes hacemos permanente los cambios agregando las siguientes
lineas al archivo .profile

# vi /root/.profile
PKG_PATH="http://ftp.eu.openbsd.org/pub/OpenBSD/5.9/packages/`machine -a`/"
export PKG_PATH

# vi /home/carles/.profile
PKG_PATH="http://ftp.eu.openbsd.org/pub/OpenBSD/5.9/packages/`machine -a`/"
export PKG_PATH

Comprobar que PKG_PATH es válido
# pkg_add -Iv ee wget

Instalar un ambiente de escritorio más algunas aplicaciones.

# pkg_add -v xfce xfce-extras slim toad firefox libreoffice gimp gedit evince-light

Instalar toad (cuyo daemon es toadd), proporciona el montaje automático y activa apmd. El demonio hotplugd se instala como una dependencia.

Algunos de los paquetes más complejos, en especial aquellos que instalan demonios, vienen detallados
en los arachivos readme en /usr/local/share/doc/pkg-readmes/. Por ejemplo:

#############################################
$ cat /usr/local/share/doc/pkg-readmes/avahi-0.6.31p23
+-----------------------------------------------------------------------
| Running avahi-0.6.31p23 on OpenBSD
+-----------------------------------------------------------------------
Para una adecuada funcionalidad multicast debe estar habilitado. Para hacer eso, añada la línea siguiente al archivo /etc/rc.conf.local

multicast=YES

Observe que antes debe tener en todo el sistema un D-BUS daemon en ejecución

starting avahi, ej.:

rcctl enable messagebus avahi_daemon
rcctl order messagebus avahi_daemon

$ cat /usr/local/share/doc/pkg-readmes/xfce-4.12p3
The escritorio Xfce consta de 2 meta-packages:
* xfce, instalación base Xfce
* xfce-extras, for a full Xfce installation.

Startup
=======
El entorno de escritorio xfce se inicia a través del script 'startxfce4'.
Simplemente añada el guión '/usr/local/bin/startxfce4' a los archivos .xinitrc/.xsession
si usted utiliza startx, xdm or slim.
############################################

Siguiendo las indicaciones de los archivos readme:

# vi /etc/rc.conf.local
apmd_flags="-A"
hotplugd_flags=""
multicast=YES
pkg_scripts="messagebus avahi_daemon toadd slim"

# rcctl enable messagebus avahi_daemon
# rcctl order messagebus avahi_daemon

$ vi /home/carles/.xinitrc
/usr/local/bin/startxfce4

$ vi /home/carles/.xsession
/usr/local/bin/startxfce4

# reboot

Código fuente OpenBSD 5.9

src.tar.gz contiene un fichero de fuentes a partir de /usr/src . Este archivo contiene todo lo necesario a excepción de las fuentes del núcleo, que están en un archivo aparte.

Listado de mirrors de descarga
http://www.openbsd.org/ftp.html

# cd /tmp
# wget http://mirror.switch.ch/ftp/pub/OpenBSD/5.9/src.tar.gz
# mkdir -p /usr/src
# cd /usr/src
# tar xvfz /tmp/src.tar.gz


sys.tar.gz contiene un fichero de fuentes a partir de /usr/src/sys . Este archivo contiene todas las fuentes del núcleo, si necesita reconstruir kernels.

# cd /tmp
# wget http://mirror.switch.ch/ftp/pub/OpenBSD/5.9/sys.tar.gz
# mkdir -p /usr/src/sys
# cd /usr/src
# tar xvfz /tmp/sys.tar.gz

El archivo genérico de OpenBSD contiene la configuración del núcleo. Un poco más de 600 líneas de largo, en comparación con las más de 7.700 de un reciente archivo de configuración del núcleo Linux.

# cd /usr/src/sys/arch/amd64/conf/
# cat GENERIC | wc -l
640
#


Construir (build) e instalar un nuevo kernel

Por ejemplo, vamos a cambiar el color de los mensajes del kernel.

# cd /usr/src/sys/arch/amd64/conf/

Agregar estas dos líneas al archivo GENERIC para cambiar a un color de fondo marrón y letras negras

option WS_KERNEL_FG=WSCOL_BLACK
option WS_KERNEL_BG=WSCOL_BROWN

O agregar estas dos líneas al archivo GENERIC para un color de fondo verde y letras negras

option WS_KERNEL_FG=WSCOL_BLACK
option WS_KERNEL_BG=WSCOL_GREEN

Este archivo contiene otros colores posibles:

$ /usr/src/sys/dev/wscons/wsdisplayvar.h
...
WSCOL_BLACK
WSCOL_RED
WSCOL_GREEN
WSCOL_BROWN
WSCOL_BLUE
WSCOL_MAGENTA
WSCOL_WHITE
...

Construir el Kernel (núcleo)

Configure el archivo CONFIG:

# config GENERIC

Preparar la contrucción, eliminando todos los archivos de objetos sobrantes y crear las dependencias:

# cd /usr/src/sys/arch/amd64/compile/GENERIC
# make clean
# make depend

Construir el kernel:
# make

Instalar el nuevo kernel:

# make install

cmp -s bsd /bsd || ln -f /bsd /obsd
cp bsd /nbsd
mv /nbsd /bsd


El anterior kernel se llama /obsd

Si no quiere recordar el nuevo nombre durante el boot prompt utilice "h" para ver la lista de comandos de arranque disponibles:



Arrancando el nuevo kernel con los colores GREEN Y BLACK


Obtener el código fuente de xenocara y los ports

Ports tree

# cd /tmp
# wget http://mirror.switch.ch/ftp/pub/OpenBSD/5.9/ports.tar.gz
# cd /usr
# tar xvfz /tmp/ports.tar.gz

Xenocara (versión X de OpenBSD)

Xenocara incluye tres gestores de ventanas: los clásicos fvwm, twm, y el CWM (específico para OpenBSD) escrito por los desarrolladores de OpenBSD, y utilizado por el núcleo duro de usuarios UNIX. En cambio, GNOME, KDE y xfce aunque son más amigables consumen más recursos del sistema (sobre todo los dos primeros).

# cd /tmp
# wget http://mirror.switch.ch/ftp/pub/OpenBSD/5.9/xenocara.tar.gz
# cd /usr
# tar xzvf /tmp/xenocara.tar.gz

El árbol de puertos (ports) está disponible a través de AnonCVS. Por lo tanto, para mantenerse al día con la -stable branch (rama), el árbol de ports debe estar disponible en un medio lectura-escritura (rw) y actualizarlo con una orden como:

# cd /usr/ports
# cvs -d anoncvs@anoncvs.eu.openbsd.org:/cvs update -Pd -rOPENBSD_5_9

Referencias:
http://www.openbsd.org/faq/faq4.html
http://www.openbsd.org/anoncvs.html

Unix es genial!

miércoles, 10 de febrero de 2016

OpenSMTPD OpenBSD

OpenSMTPD Redirigir mail



smtpd.conf es el archivo de configuración para el demonio de correo smtpd

El archivo predeterminado smtpd.conf que se suministra con OpenBSD escucha en la interfaz de red de bucle de retorno (lo0), y permite correo de usuarios y demonios en la máquina local, así como el correo electrónico a servidores remotos.

En este caso todo el correo saliente se reenvía a una cuenta de correo Gmail. Se necesita un fichero de claves para especificar un nombre de usuario y contraseña:

Archivo /etc/rc.conf.local

# echo 'sendmail_flags=NO' >> /etc/rc.conf.local
# echo 'smtpd_flags=""' >> /etc/rc.conf.local

Crear un nuevo /etc/mailer.conf

# mv /etc/mailer.conf /etc/mailer.conf.backup
# touch /etc/mailer.conf

Archivo /etc/mailer.conf

# vim /etc/mailer.conf
sendmail /usr/sbin/smtpctl
send-mail /usr/sbin/smtpctl
mailq /usr/sbin/smtpctl
makemap /usr/libexec/smtpd/makemap
newaliases /usr/libexec/smtpd/makemap

# mv /etc/mail/smtpd.conf /etc/mail/smtpd.conf.backup
# touch /etc/mail/smtpd.conf

Archivo /etc/mail/smtpd.conf

# vim /etc/mail/smtpd.conf

listen on lo0
table aliases db:/etc/mail/aliases.db
table secrets db:/etc/mail/secrets.db
accept for local deliver to mbox
accept from local for any relay via tls+auth://gmail321@smtp.gmail.com:587 auth

# touch /etc/mail/secrets
# chmod 640 /etc/mail/secrets
# chown root:_smtpd /etc/mail/secrets
# echo "label gmail_login@gmail.com:password" > /etc/mail/secrets
# cat /etc/mail/secrets
label gmail_login@gmail.com:password
# /usr/libexec/smtpd/makemap /etc/mail/secrets

Cambios en el archivo /etc/mail/aliases

# vim /etc/mail/alisases

root: gmail_login@gmail.com

# /usr/libexec/smtpd/makemap /etc/mail/aliases
# /etc/rc.d/smtpd start

Enviar correo de prueba:
# echo "Hola Mundo" | mail -s "Hola" root@localhost; tail -f /var/log/maillog

Enviar salida dmesg:
# echo `dmesg` | mail -s "openbsd machine" root@localhost; tail -f /var/log/maillog
...
Feb 11 11:35:43 soekris smtpd[1774]: relay: Ok for b923b84f934ad760: session=87fd5613745bfb86, from=, to=, rcpt=, source=192.168.1.200, relay=64.233.184.109 (wa-in-f109.1e100.net), delay=3s, stat=250 2.0.0 OK 1455186943 i5sm6903045wja.23 - gsmtp
Feb 11 11:35:53 soekris smtpd[1774]: smtp-out: Closing session 87fd5613745bfb86:
1 message sent.
...

Consultar reporte diario:









Referencia: https://www.opensmtpd.org/smtpd.conf.5.html

OpenBSD es genial!.

sábado, 16 de enero de 2016

OpenBSD Soekris Ralink AP

Cambiar la tarjeta wireless (AP) Atheros (estandard a/b 11 Mbps) por Ralink (estandard a/b/g 54 Mbps)

Contribuir con el projecto OpenBSD

1.- http://gnulinuxcodigo.blogspot.com.es/2015/12/pxe-servidor-freebsd.html
2.- http://gnulinuxcodigo.blogspot.com.es/2015/12/openbsd-soekris-router.html
3.- http://gnulinuxcodigo.blogspot.com.es/2015/12/scums-bruteforce-openbsd-pf.html
4.- http://gnulinuxcodigo.blogspot.com.es/2016/01/punto-de-aceso-tiene-las-funciones-de.html
5.- http://gnulinuxcodigo.blogspot.com.es/2016/01/openbsd-soekris-ralink-ap.html

Ralink RT2561T tarjeta mini PCI Soekris


El adaptador de red elegido es soportado por OpenBSD


Características

CNet CWM-854 54 Mbps 802.11a/b/g Wireless Mini PC
802.11g: OFDM
Tipo de factor de forma III B
Modulación: 802.11b: CCK, DQPSK, DBPSK
no compatible con ranuras mini PCI express

Desde un terminal entrar vía ssh al router Soekris

$ ssh 192.168.3.1
Last login: Sat Jan 16 09:05:46 2016 from 192.168.3.22
OpenBSD 5.7 (GENERIC.MP) #0: Tue Jan  5 11:47:15 CET 2016

Welcome to OpenBSD: The proactively secure Unix-like operating system.
...

Apagar la máquina

$ su
password

# halt -p

Cambiar tarjeta wireless

Despues de apagar, desconectar la fuente de alimentación, abrir y sustituir la tarjeta atheros por la ralink.

El cable serie se conecta al portátil (FreeBSD) y teclear (como usuario root):

# cu -l /dev/ttyU0 -s 19200
Connected

Encender router Soekris

Poner en marcha el router conectando el cable de alimentación. Cargará comBios, oprimir Ctrl-P para entrar en el monitor.

> boot
> stty com0 19200
> set tty com0
> Intro

Cuando termine de cargar el sistema, entrar vía ssh desde un cliente de la red autorizado:

$ ssh 192.168.3.1

$ uname -a
OpenBSD soekris.unix.bcn 5.7 GENERIC.MP#0 i386

Si no ha creado el archivo /etc/boot.conf con anterioridad, hágalo ahora para evitar introducir estos comandos manualmente: 
$ su
Password:

CREAR ARCHIVO /etc/boot.conf:

# echo 'stty com0 19200'>/etc/boot.conf
# echo 'set tty com0'>>/etc/boot.conf
# chmod 644 /etc/boot.conf

Algunas consideraciones:

El script fw_update, utiliza el sistema de paquetes para buscar a través de Internet. Donde quiera que el firmware proviene, se almacena en /etc/firmware por defecto.

# ls /etc/firmware/ral-*
/etc/firmware/ral-license  /etc/firmware/ral-rt2561s  /etc/firmware/ral-rt2860
/etc/firmware/ral-rt2561   /etc/firmware/ral-rt2661

fw_update se ejecuta en el primer arranque después de instalar o actualizar OpenBSD, pero se puede ejecutar en cualquier momento que se desee (se almacena en /usr/sbin). Soporta WPA 256 bits.

En la FAQ de OpenBSD vemos que esta inalámbrica soporta el modo Access Point (AP). El chipset Ralink RT2561 consiste en dos chipsets integrados, RT2561 MAC/BBP y un transceptor de radio RT2527. Soporta cifrado WPA-PSK de 264 bits.

$ dmesg | grep -i ral0

ral0 at pci0 dev 17 function 0 "Ralink RT2561" rev 0x00: irq 15, address 00:08:a1:c0:6e:e6
ral0: MAC/BBP RT2561C, RF RT2527


Averiguar el tipo de medio físico compatible con la interfaz:

# ifconfig ral0 media

supported media:

...

media autoselect
media autoselect mediaopt ibss
media autoselect mediaopt hostap
media autoselect mediaopt monitor
media autoselect mode 11b
media autoselect mode 11b mediaopt ibss
media autoselect mode 11b mediaopt hostap
media autoselect mode 11b mediaopt monitor
media autoselect mode 11g
media OFDM48 mode 11g mediaopt ibss
media OFDM48 mode 11g mediaopt hostap
media OFDM48 mode 11g mediaopt monitor
media OFDM54 mode 11g
media OFDM54 mode 11g mediaopt ibss
media OFDM54 mode 11g mediaopt hostap
media OFDM54 mode 11g mediaopt monitor
...

El archivo /etc/hostname.ral0 queda así

# cat /etc/hostname.ral0      
                                          
inet 192.168.3.129 255.255.255.128 192.168.3.255 media OFDM54 mode 11g \
mediaopt hostap \
nwid soekris wpakey 08xK78gBuY952euO \
priority 0 \
chan 1 \
up

El archivo /etc/dhcpd.conf

shared-network LOCAL-NET {
option domain-name "unix.bcn";
option domain-name-servers 192.168.3.1, 208.67.220.220;

# ethernet network
subnet 192.168.3.0 netmask 255.255.255.128 {
        option routers 192.168.3.1;
        range 192.168.3.10 192.168.3.100;
        max-lease-time 1200;
        host portatil {
            fixed-address 192.168.3.2;
            hardware ethernet 00:21:9b:e2:cd:44;
         }
        host servidor {
            fixed-address 192.168.3.10;
            hardware ethernet 00:1f:3c:bf:a0:3c;
         }
    }

# wireless network
subnet 192.168.3.128 netmask 255.255.255.128 {
        option routers 192.168.3.129;
        range 192.168.3.130 192.168.3.250; 
        max-lease-time 1200;
     }
}

Iniciar el servidor dhcp
# /etc/rc.d/dhcpd start


Desde el cliente
# killall -9 dhclient
# dhclient msk0
# ifconfig msk0



Crear el archivo /var/db/dhcp.leases para ral0

# touch /var/db/dhcpd.leases.ral0
# /usr/sbin/dhcpd -l /var/db/dhcpd.leases.ral0 ral0


Permisos de /etc/hostname.ral0

# chmod 600 /etc/hostname.ral0

Sin cambios /etc/hostname.vether0

# cat /etc/hostname.vether0                                                  
inet 192.168.3.1 255.255.255.128 192.168.3.127
up

El formato para IP estática versión 4

inet => IPv4
ipaddress => 192.168.3.1
netmask => 255.255.255.128
broadcast => 192.168.3.127

# cambios en el archivo /etc/hostname.bridge0

add vether0
add vr1
add vr2
add vr3
blocknonip vether0
blocknonip vr1
blocknonip vr2
blocknonip vr3
up

Reiniciar todas las interfaces de red

# sh /etc/netstart

Sustituir en los archivos /etc/rc.conf.local, /etc/pf.conf ath0 por ral0

Los archivos restantes (dhcpd.conf, unbound.conf), no precisan cambios.

unbound dnscrypt-proxy

# cat /var/unbound/etc/unbound.conf

# wget ftp://FTP.INTERNIC.NET/domain/named.cache -O \
/var/unbound/etc/root.hints

## Simple recursive caching DNS
## /var/unbound/etc/unbound.conf 
#
server:
    # log verbosity
    verbosity: 1

    interface: 192.168.3.1
    interface: 192.168.3.129
    interface: 127.0.0.1
    do-ip6: no
        access-control: 127.0.0.0/8 allow
        access-control: 192.168.3.0/25 allow 
        access-control: 192.168.3.128/25 allow

# file.  get one from ftp://FTP.INTERNIC.NET/domain/named.cache
    root-hints: "/var/unbound/etc/root.hints"

# nombre de usuario por defecto
    username: "_unbound"

# enable to not answer id.server and hostname.bind queries.
    hide-identity: yes

# enable to not answer version.server and version.bind queries.
    hide-version: yes

    do-not-query-localhost: no

    do-ip4: yes
    directory: "/var/unbound/etc"

forward-zone:
      name: "."
      forward-addr: 127.0.0.1@40


# touch /var/log/dnscrypt-proxy.log
# chown _dnscrypt-proxy:_dnscrypt-proxy /var/log/dnscrypt-proxy.log 
Lo siguiente es iniciar dnscrypt-proxy como usuario _dnscrypt-proxy, -l /var/log/dnscrypt-proxy.log permite monitorear errores. La opción por defecto es -l /dev/null.

# /usr/local/sbin/dnscrypt-proxy -d --user=_dnscrypt-proxy -l \
/var/log/dnscrypt-proxy.log -R dnscrypt.eu-nl -a 127.0.0.1:40
Visualizar el registro

# tail -n 20 /var/log/dnscrypt-proxy.log  
[NOTICE] Starting dnscrypt-proxy 1.4.3
[INFO] Initializing libsodium for optimal performance
[INFO] Generating a new key pair
[INFO] Done
[INFO] Server certificate #808464433 received
[INFO] This certificate looks valid
[INFO] Chosen certificate #808464433 is valid from [2015-09-11] to [2016-09-10]
[INFO] Server key fingerprint is E7AC:5C21:A4E6:6A90:B254:DD73:5229:3BA1:5BE9:8EB3:4E8F:E538:52DE:A2FB:DDB6:1357
[NOTICE] Proxying from 127.0.0.1:40 to 176.56.237.171:443                                                              
[INFO] Generating a new key pair
[INFO] Done
[NOTICE] Starting dnscrypt-proxy 1.4.3
[INFO] Initializing libsodium for optimal performance
[INFO] Generating a new key pair
[INFO] Done

$ ifconfig ral0


Conectar smartphone a la red inalámbrica


Nota: Los teléfonos inteligentes Android utilizan el archivo /system/etc/resolv.conf para decirle al sistema los servidores de nombre a utilizar, (por defecto los de Google: 8.8.8.8 y 8.8.4.4). Para cambiarlos se utliza la app Terminal (Terminal emulador para Android, solo dispositivos rooteados) y desde alli remontar /system en modo rw y cambiar el contenido del archivo. También puede remontar /system con, por ejemplo, el explorador de archivos root explorer (para dispositivos rooteados):

Dentro de Terminal
> su
# mount -o remount, rw /system 
# cat /system/etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4

Que permisos tiene el archivo?
# ls -l /system/etc/resolv.conf
-rwsr-xr-x root root 58 2016-03-24 20:33 resolv.conf
# chmod 4755 /system/etc/resolv.conf

Cambiar el contenido del archivo
# echo 'search unix.bcn'>/system/etc/resolv.conf
# echo 'nameserver 192.168.3.1'>>/system/etc/resolv.conf


Ahora el contenido ha cambiado:
# cat /system/etc/resolv.conf
search unix.bcn
nameserver 192.168.3.1
# mantiene compatibilidad con otras redes wifi fuera del entorno del router configurado anteriormente
nameserver 8.8.8.8 

Remontar /system en modo ro
# mount -o remount, ro /system/

Otro cambio más, esta vez en el firewall Soekris. Desactivamos dhcpd en la interfaz ral0 (wifi) en el archivo rc.conf.local y en el archivo /etc/dhcpd.interfaces. Por último otorgamos IP's fijas a los dispositivos inalámbricos.






PF /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 ral0 }"
ext_if="vr0"
int_net="192.168.3.0/24"
table  <bruteforce> persist file "/var/db/bruteforce"
table <scums> persist file "/var/db/scums"
broken="224.0.0.22 127.0.0.0/8 172.16.0.0/12 \
        10.0.0.0/8 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 0.0.0.0/8 240.0.0.0/4 255.255.255.255/32"
set block-policy drop
set loginterface egress
set skip on lo0
# scrub proporciona una medida de proteccion contra ciertos tipos
# de los ataques basados en la manipulacion incorrecta de fragmentos
# de paquetes .
match in all scrub (no-df max-mss 1440)

block return    # block stateless traffic
#pass            # establish keep-state

# By default, do not permit remote connections to X11
block return in on ! lo0 proto tcp to port 6000:6010

# port forwarding
match out on egress inet from !(egress:network) to any nat-to (egress:0) 

# Es recomendable desactivar el filtrado en las interfaces de
# loopback, pero esto se convierte en necesidad cuando se utilizan
# reglas contra  falsificaciones: antispoof for vr0 inet
antispoof quick for $int_if
antispoof quick for egress

# bloquear todo el trafico IPv6 evaluar y soltar, sin perder el tiempo
block return out quick inet6 all
block in quick inet6 all

# bloquear spam ip's
block quick log from <scums>

# para escribir logins fuerza bruta
block quick log from <bruteforce>

# Asegurese de que usted no esta realmente utilizando estos rangos de 
# direcciones o puede romper la conectividad.
block in quick on egress from { $broken no-route urpf-failed } to any

# bloquea todas las conexiones salientes en el puerto 53 si no se destinan
# a nuestra memoria caché DNS
block return in log on $int_if inet proto { tcp udp } from any to ! 192.168.3.1 port 53

block in all

# proteger el puerto 22 (SSH ) a partir de intentos no autorizados 
pass in quick log on $ext_if inet proto tcp to egress port ssh flags \
S/SA keep state (max-src-conn 3, max-src-conn-rate 3/50, overload \
<bruteforce> flush global)

# Pass all traffic on internal interfaces
# vether0 is necessary here, but bridge0 is not
pass out quick inet
pass in on $int_if inet

# fuerza redireccion de toda la LAN al servidor ntpd que corre en soekris
pass in quick on $int_if proto udp from any to ! 192.168.3.1 port 123 \
rdr-to 192.168.3.1

# permitir ICMP entrante sobre todas las interfaces
pass out inet proto icmp all icmp-type echoreq





ifconfig -a 

Mostrar todas las direcciones MAC e IPv4 que Soekris conoce

# arp -a

OpenBSD es genial!.