Páginas

martes, 21 de junio de 2016

Raid 1 OpenBSD 5.9

RAID-1, o mirroring es donde el contenido de un disco es duplicado sobre otro. Es una manera de lograr fiabilidad a bajo coste.

El subsistema softraid funciona emulando un scsibus con dispositivos sd hechos combinando una serie de disklabel particiones OpenBSD en un disco virtual con el nivel de RAID deseado. En este momento sólo RAID 0, RAID 1, RAID 5 y cripto son totalmente compatibles. Este disco virtual es tratado como cualquier otro disco, primero particionando con fdisk y luego creando disklabels como de costumbre.



RAID en general

El kernel install sólo tiene las entradas /dev para un dispositivo wd y un dispositivo sd en el arranque, por lo que tendrá que crear manualmente más dispositivos de disco si su configuración deseada softraid los requiere. Este proceso se realiza de forma automática por el instalador, pero recuerde que aún no ha ejecutado el instalador.

Entrar en el modo shell


Welcome to the OpenBSD/amd64 5.8 installation program.
(I)nstall, (U)pgrade, (A)utoinstall or (S)hell? s

#
Cambiar el teclado a español
# kbd es

Agregar el segundo disco
# cd /dev
# sh MAKEDEV sd1

Inicializar los discos con fdisk
# fdisk -iy sd0
# fdisk -iy sd1

Crear particiónes con disklabel
# echo -n "d\n\n\n\nRAID\nw\nq\n\n" | disklabel -E sd0
# echo -n "d\n\n\n\nRAID\nw\nq\n\n" | disklabel -E sd1


# disklabel -E sd0
> a
partition: [a] d
offset: [64]
size: [16777216]
FS type: [4.2BSD] RAID
> w
> q

# disklabel -E sd1
> a
partition: [a] d
offset: [64]
size: [16777216]
FS type: [4.2BSD] RAID
> w
> q


Crear el espejo (mirror)
# bioctl -c 1 -l /dev/sd0d,/dev/sd1d softraid0
sd2 at scsibus2 targ 1 lun 0: SCSI2 0/direct fixed
Now exit the shell and install as usual, using sd2 as root disk.

Instalar el sistema
# exit

Instalar sd2 como root


layout para sd2

Inicializar disco



Instalación de conjuntos (sets)


Continuar sin verificar

Instalación completada satisfactoriamente


Reiniciar. Veremos nuestro nuevo disco sr0 (sd2)


Comprobar RAID


IP estática.
# echo "192.168.1.50 255.255.255.0 192.168.1.255" > /etc/hostname.em0


Bibliografía:
Stefan Sperling EuroBSDcon 2015
http://www.openbsd.org/faq/faq14.html#softraid
https://www.openbsd.org/papers/

OpenBSD es genial!.

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!.