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!.
freebsd, unix, openbsd, servidores, bsd, redes, linux, mikrotik, synology, zfs,
Páginas
Mostrando entradas con la etiqueta openbsd. Mostrar todas las entradas
Mostrando entradas con la etiqueta openbsd. Mostrar todas las entradas
lunes, 3 de junio de 2019
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
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!.
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
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!.
sábado, 12 de agosto de 2017
Actualizar FreeBSD 11 a 11.1
Actualizar FreeBSD 11.0 a 11.1-RELEASE
# freebsd-update upgrade -r 11.1-RELEASE
# /usr/sbin/freebsd-update install
Installing updates...
Kernel updates have been installed. Please reboot and run
"/usr/sbin/freebsd-update install" again to finish installing updates.
# reboot
# freebsd-update install
FreeBSD es genial!.
# freebsd-update upgrade -r 11.1-RELEASE
# /usr/sbin/freebsd-update install
Installing updates...
Kernel updates have been installed. Please reboot and run
"/usr/sbin/freebsd-update install" again to finish installing updates.
# reboot
# freebsd-update install
FreeBSD es genial!.
lunes, 31 de octubre de 2016
Slackware Puerto Serie
Cambiar fuente de alimentación del firewall.
OpenBSD Soekris Router
Especificaciones de la fuente:
Switching AC/DC Power Adapter
I/P: AC 100-240V 50/60Hz 0.35A
O/P: DC 12V, 1.5A
Después de cambiar la fuente de alimentación del firewall (Soekris) vamos a conectar el cable usb serie null modem al portátil para iniciar el dispositivo de forma adecuada.
# cu -l /dev/ttyUSB0 -s 19200
Presionamos las teclas Crtl + p
> boot
boot> stty com0 19200
boot> set tty com0
boot> Intro
No olvide comprobar que su archivo /etc/resolv.conf esta configurado correctamente
# cat /etc/resolv.conf
search linux.bcn
nameserver 192.168.3.1
Conexión ssh al firewall
Una vez tenemos nuestro firewall en marcha configuramos nuestra máquina con una dirección IP perteneciente a la misma red y entrar vía ssh.
# ifconfig eth0 192.168.3.7 netmask 255.255.255.128
# route add default gw 192.168.3.1
La configuracion del servidor ssh en el firewall OpenBSD solo acepta conexiones desde usuario sin privilegios:
$ ssh 192.168.3.1
Eric Hameleers
Slackware docs
OpenBSD es genial!.
OpenBSD Soekris Router
Especificaciones de la fuente:
Switching AC/DC Power Adapter
I/P: AC 100-240V 50/60Hz 0.35A
O/P: DC 12V, 1.5A
Después de cambiar la fuente de alimentación del firewall (Soekris) vamos a conectar el cable usb serie null modem al portátil para iniciar el dispositivo de forma adecuada.
# cu -l /dev/ttyUSB0 -s 19200
Presionamos las teclas Crtl + p
> boot
boot> stty com0 19200
boot> set tty com0
boot> Intro
# cat /etc/resolv.conf
search linux.bcn
nameserver 192.168.3.1
Conexión ssh al firewall
Una vez tenemos nuestro firewall en marcha configuramos nuestra máquina con una dirección IP perteneciente a la misma red y entrar vía ssh.
# ifconfig eth0 192.168.3.7 netmask 255.255.255.128
# route add default gw 192.168.3.1
La configuracion del servidor ssh en el firewall OpenBSD solo acepta conexiones desde usuario sin privilegios:
$ ssh 192.168.3.1
Eric Hameleers
Slackware docs
OpenBSD 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:
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!
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.9src.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!.
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=
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:
# 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
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
$ 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):
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
ifconfig -a
Mostrar todas las direcciones MAC e IPv4 que Soekris conoce
# arp -a
OpenBSD es genial!.
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
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!.
sábado, 2 de enero de 2016
Punto de Acceso OpenBSD
Punto de Aceso (tiene las funciones de un puente, conecta dos redes con niveles de enlace parecidos o distintos) Soekris net5501 OpenBSD 5.7.
Contribuir con el projecto OpenBSD
OpenBSD Soekris router instalación y configuración
OpenBSD y su fabuloso firewall "PF" para hacer un gran punto de acceso inalámbrico, (estación base) para otras tarjetas wireless.
OpenBSD es confiable, segura y para alguien que esté familiarizado con UNIX OS muy intuitivo de usar. Todo es sencillo, bien diseñado y documentado. El principal esfuerzo del proyecto es mantener el source base libre de vulnerabilidades mediante el mantenimiento de un código fuente de alta calidad.
La tarjeta de red mini-PCI inalámbrica está basada en el chipset Atheros (ath), posee dos conectores UFL para la conexión de dos antenas externa. Soporta estándar a/b. Los chipsets basados en Realtek (rl0) funcionan mejor en OpenBSD (p.e, Ralink RT2561 mini-PCI):
OpenBSD chipsets Realtek
Soporte OpenBSD chipsets Wireless
Identificar la tarjeta inalámbrica
# /usr/sbin/pcidump |grep -i atheros
0:17:0: Atheros AR5413
# dmesg | grep -i ath0
mpath0 at root
scsibus0 at mpath0: 256 targets
ath0 at pci0 dev 17 function 0 "Atheros AR5413" rev 0x01: irq 15
ath0: AR5413 10.4 phy 6.1 rf 6.3 eeprom 5.3, FCC2A*, address 00:80:48:69:7f:cc
Para poder utilizar algunas de estas tarjetas, tendrá que adquirir los archivos de firmware que los fabricantes se niegan a permitir la libre distribución, por lo que no puede incluirse en OpenBSD. Para facilitarnos la vida, OpenBSD nos proporciona el comando fw_update para instalar o actualizar paquetes de firmware non-free
Calcular los rangos de IP, dos segmentos de red (ethernet, wireless)
Archivo configuración /etc/hostname.ath0 encriptación WPA
inet 192.168.3.129 255.255.255.128 NONE media autoselect mediaopt hostap \
mode 11b nwid soekris wpakey speak%#frie45 chan 4
Permisos de /etc/hostname.ath0
# chmod 0600 /etc/hostname.ath0
Cambios en el archivo /etc/hostname.vether0
inet 192.168.3.1 255.255.255.128 NONE
up
CREAR EL ARCHIVO /va/db/dhcpd.leases.ral0, interfaz inalámbrica
# touch /var/db/dhcpd.leases.ath0
# /usr/sbin/dhcpd -l /var/db/dhcpd.leases.ath0 ath0
Añadir al archivo /etc/rc.conf.local dhcpd_flags ath0:
dhcpd_flags="vether0 ath0"
Configurar unbound
Archivo de configuración
Archivos creados durante la instalación del Router que no cambiarán
# cat /etc/hostname.vr0
inet 192.168.1.200 255.255.255.0
# cat /etc/hostname.vr1
up
# cat /etc/hostname.vr2
up
# cat /etc/hostname.vr3
up
Reiniciar todas las interfaces de red:
# sh /etc/netstart
dnscrypt-proxy
Instalar desde ports
# pkg_add -v dnscrypt-proxy
Crear el archivo log y hacer al usuario _dnscrypt-proxy propietario del archivo
# 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. La opción -l /var/log/dnscrypt-proxy.log permite monitorear errores. La opción por defecto es -l /dev/null.
Tablas de enrutamiento ipv4
# netstart -rn
OpenBSD es genial!.
Contribuir con el projecto OpenBSD
OpenBSD Soekris router instalación y configuración
OpenBSD y su fabuloso firewall "PF" para hacer un gran punto de acceso inalámbrico, (estación base) para otras tarjetas wireless.
OpenBSD es confiable, segura y para alguien que esté familiarizado con UNIX OS muy intuitivo de usar. Todo es sencillo, bien diseñado y documentado. El principal esfuerzo del proyecto es mantener el source base libre de vulnerabilidades mediante el mantenimiento de un código fuente de alta calidad.
La tarjeta de red mini-PCI inalámbrica está basada en el chipset Atheros (ath), posee dos conectores UFL para la conexión de dos antenas externa. Soporta estándar a/b. Los chipsets basados en Realtek (rl0) funcionan mejor en OpenBSD (p.e, Ralink RT2561 mini-PCI):
OpenBSD chipsets Realtek
Soporte OpenBSD chipsets Wireless
Identificar la tarjeta inalámbrica
# /usr/sbin/pcidump |grep -i atheros
0:17:0: Atheros AR5413
# dmesg | grep -i ath0
mpath0 at root
scsibus0 at mpath0: 256 targets
ath0 at pci0 dev 17 function 0 "Atheros AR5413" rev 0x01: irq 15
ath0: AR5413 10.4 phy 6.1 rf 6.3 eeprom 5.3, FCC2A*, address 00:80:48:69:7f:cc
Para poder utilizar algunas de estas tarjetas, tendrá que adquirir los archivos de firmware que los fabricantes se niegan a permitir la libre distribución, por lo que no puede incluirse en OpenBSD. Para facilitarnos la vida, OpenBSD nos proporciona el comando fw_update para instalar o actualizar paquetes de firmware non-free
Calcular los rangos de IP, dos segmentos de red (ethernet, wireless)
Archivo configuración /etc/hostname.ath0 encriptación WPA
inet 192.168.3.129 255.255.255.128 NONE media autoselect mediaopt hostap \
mode 11b nwid soekris wpakey speak%#frie45 chan 4
Permisos de /etc/hostname.ath0
# chmod 0600 /etc/hostname.ath0
Cambios en el archivo /etc/hostname.vether0
inet 192.168.3.1 255.255.255.128 NONE
up
Archivo /etc/dhcpd.interfaces
# cat dhcpd.interfaces
vether0 ath0
Los clientes recibirán una ip del servidor DHCP
shared-network LOCAL-NET {
option domain-name "unix.bcn";
option domain-name-servers 208.67.222.222, 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;
default-lease-time 3600;
max-lease-time 1200;
}
# 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;
}
}
dhcpd.leases* archivo(s) donde se almacena un log con todas las peticiones:CREAR EL ARCHIVO /va/db/dhcpd.leases.ral0, interfaz inalámbrica
# touch /var/db/dhcpd.leases.ath0
# /usr/sbin/dhcpd -l /var/db/dhcpd.leases.ath0 ath0
Añadir al archivo /etc/rc.conf.local dhcpd_flags ath0:
dhcpd_flags="vether0 ath0"
Configurar unbound
# wget ftp://FTP.INTERNIC.NET/domain/named.cache -O \
/var/unbound/etc/root.hints
Archivo de configuración
## 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
Archivos creados durante la instalación del Router que no cambiarán
# cat /etc/hostname.vr0
inet 192.168.1.200 255.255.255.0
# cat /etc/hostname.vr1
up
# cat /etc/hostname.vr2
up
# cat /etc/hostname.vr3
up
Reiniciar todas las interfaces de red:
# sh /etc/netstart
dnscrypt-proxy
Instalar desde ports
# pkg_add -v dnscrypt-proxy
# echo 'pkg_scripts="dnscrypt_proxy"' >> /etc/rc.conf.local
# echo 'dnscrypt_proxy_flags="-l /dev/null -R dnscrypt.eu-nl -a \
127.0.0.1:40"' >> /etc/rc.conf.local
# echo 'nameserver 127.0.0.1' > /etc/resolv.conf
Crear el archivo log y hacer al usuario _dnscrypt-proxy propietario del archivo
# 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. La opción -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
Cambios en el archivo de conguración /etc/pf.conf
# 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 ath0 }"
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
# Pass all traffic on internal interfaces
# vether0 is necessary here, but bridge0 is not
# pass quick on { vether0 vr1 vr2 vr3 }
pass quick on $int_if
# permitir ICMP entrante sobre todas las interfaces
pass in inet proto icmp all icmp-type echoreq
# 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 ($ext_if) inet
# bloquear todo el trafico IPv6 evaluar y soltar, sin perder el tiempo
block return out quick inet6 all
block in quick inet6 all
# 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
# proteger el puerto 22 (SSH ) a partir de intentos no autorizados
# para escribir logins fuerza bruta
block quick log from <bruteforce>
pass in quick log on vr0 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)
# bloquear spam ip's
block quick log from <scums>
# 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
# Permitir conexiones SSH desde el exterior y rdr a maquina interna
pass in on egress inet proto tcp to (egress) port ssh flags S/SA \
synproxy state rdr-to 192.168.3.130
Conectar un cliente al AP
Tablas de enrutamiento ipv4
# netstart -rn
OpenBSD es genial!.
Suscribirse a:
Entradas (Atom)





























































