Páginas

martes, 31 de marzo de 2015

Configurar repositorios FreeBSD 10

Vamos a copiar el DVD bsdstudy en formato iso en el disco duro:

# cd /usr/home/carles/bsdplk/
# dd if=/dev/cd0 of=bsdstudydvd.iso bs=4k

Montar imagen ISO:
# mdconfig -a -t vnode -f /home/bsdplk/ISO/bsdadvdstudy.iso
md0
# mount_cd9660 /dev/`mdconfig -f /home/bsdplk/ISO/bsdadvdstudy.iso` /mnt


Crear repositorio local FreeBSD 10.1 host

# mkdir /usr/local/etc/pkg/repos
# cd /usr/local/etc/pkg/repos
# cat FreeBSD.conf
FreeBSD:{
  enabled:NO
}
EOF

# cat /usr/local/etc/pkg/repos/example.conf
example:{
  url: file:///mnt/F10.1/packages_bsdcg/freebsd:10:x86:32
}

Configurar un repos para descargar paquetes del servidor FreeBSD:


Instalar fuentes del kernel FreeBSD 10.0

# fetch ftp://ftp6.freebsd.org/pub/FreeBSD/releases/amd64/10.0-RELEASE/src.txz
# tar -C / -xzvf src.txz

Después de desmontar el directorio, puede destruir el dispositivo creado por mdconfig; El nombre del dispositivo impreso inmediatamente después de ejecutar el comando mdconfig, ej. md0, md1, md2.
# mdconfig -d -u 0

Unix es genial!.

lunes, 23 de marzo de 2015

Qemu configurar red FreeBSD

Nivel : avanzado

Diseño de la red : 4 Máquinas virtuales corriento sobre QEMU y FreeBSD 10.1 como host. Instalar los cuatro sistemas operativos basados en BSD (NetBSD, FreeBSD, OpenBSD, DragonFly), permitirles la salida a Internet para adquirir los conocimientos necesarios y acceder al examen de Certificación BSDA.

Referencia:
http://virtuallyhyper.com/2013/02/running-vms-on-freebsd-using-qemu-with-vde/
http://bsdwiki.reedmedia.net/wiki/networking_qemu_virtual_bsd_systems.html
http://www.area536.com/projects/freebsd-as-a-kvm-guest-using-virtio/
http://en.wikibooks.org/wiki/QEMU/Networking
http://www.bsdcertification.org/

BSDCG Videos Jim Brown. Como instalar so host + qemu + VM

La instalación del host + fvwm-crystal + qemu + aqemu + los so invitados tiene este aspecto.:





Interfaz de red TUN/TAP:

En este modo, la máquina virtual QEMU abre un dispositivo TUN o TAP preasignados en el host y utiliza esa interfaz para transferir los datos al sistema operativo invitado.

El puente (bridge) se crea en el sistema host (FreeBSD 10.1)

Cargar módulos:

# kldload aio
# kldload if_bridge
# kldload if_tap

Realizar comprobación:

# kldstat > modulos; awk '{ print $5 }' modulos
 Size     Name
 kernel
 if_tap.ko
 if_bridge.ko
 bridgestp.ko
 aio.ko
...

Crear las interfaces

# ifconfig bridge0 create up
# ifconfig tap0 create
# ifconfig tap1 create
# ifconfig tap2 create
# ifconfig tap3 create
# ifconfig tap4 create

Agregar los grifos al puente. Parámetros para agregar dispositivos de derivación al puente.

# ifconfig bridge0 addm tap0 addm tap1 addm tap2 addm tap3 addm tap4 up

Antes de utilizar los dispositivos de derivación en QEMU dos sysctl requieren ajustes. El primero permite a cualquier programa de usuario y Qemu los es, utilizar el dispositivo de grifo (tap). El segundo marca la interfaz como up:

# sysctl net.link.tap.user_open=1
# sysctl net.link.tap.up_on_open=1

Para que permanezcan los cambios después de un reinicio

# echo 'if_bridge_load="YES"' >>/boot/loader.conf
# echo 'if_tap_load="YES"' >>/boot/loader.conf
# echo 'aio_load="YES"' >>/boot/loader.conf

# echo 'cloned_interfaces="tap0 tap1 tap2 tap3 tap4 bridge0"' >>/etc/rc.conf
# echo 'ifconfig_bridge0="addm tap0 addm tap1 addm tap2 addm tap3 addm tap4 up"' >>/etc/rc.conf

# echo 'net.link.tap.user_open=1' >>/etc/sysctl.conf
# echo 'net.link.tap.up_on_open=1' >>/etc/sysctl.conf

# ifconfig -a

Tenemos que cambiar el modo de conexión de interfaz de red de la máquina virtual para que pueda utilizar la interfaz TUN/TAP.

Parámetros de conexión para DragonFly VM:


Parámetros de conexión para FreeBSD VM:


Parámetros de conexión para NetBSD VM:


Parámetros de conexión para OpenBSD VM:


Iniciar nbsd (NetBSD) desde el terminal:
# qemu -monitor stdio -m 512 -localtime -hda /usr/.aqemu/nbsd_HDA.img -boot once=c,menu=off -net nic,vlan=0,macaddr=00:ee:ae:c6:9b:50,model=e1000 -net user,vlan=0 -name "nbsd"


Método "VDE" (Ethernet Virtual Distribuido):

Modo de usuario en red - En este modo, la máquina virtual QEMU inicia automáticamente un servidor DHCP interno en una dirección de red interna 10.0.2.2/24. Una red  interna para huéspedes que no es visible desde el entorno de acogida (host). Si el sistema operativo invitado está configurado para DHCP, el cliente obtendrá una dirección IP de este servidor DHCP interno.

FreeBSD 9.2 - 10.0.2.15/24
NetBSD 6.0 - 10.0.2.20
OpenBSD 5.6 - 10.0.2.25
DragonFly - 10.0.2.30

Utilizando el método "VDE" (Ethernet Virtual Distribuido):

El backend de red VDE utiliza la infraestructura Ethernet Distributed Virtual para clientes de la red. Desde la página VDE:

VDE interruptor Al igual que un conmutador Ethernet física, un interruptor VDE tiene varios puertos virtuales en máquinas virtuales, aplicaciones, interfaces virtuales, herramientas de conectividad y - por qué no? - Otro interruptor VDE puede virtualmente enchufado.

# cd /usr/ports/net/vde2
# sudo make install

Ver las opciones de configuración:

# make showconfig
===> The following configuration options are available for vde2-2.3.2_1:
     PYTHON=on: Python bindings or support
===> Use 'make config' to modify these settings
# make install clean

# Cargar módulos necesarios:
# kldload if_bridge
# kldload if_tap

Activar módulos al inicio del sistema:
# echo if_bridge_load="YES">>/boot/loader.conf
# echo if_tap_load="YES">>/boot/loader.conf

Después de instalar debemos crear una interfaz tap para actuar como un enlace ascendente para nuestro VDE-switch. En primer lugar vamos a crear el puente:

# ifconfig bridge0 create

Crear las interfaces tap:

# ifconfig tap0 create
# ifconfig tap1 create

Ahora vamos a tender un puente sobre nuestra interfaz física con la interfaz tap:

# ifconfig bridge0 addm tap0 up

Para que los cambios permanezcan después de un reinicio:
# echo 'cloned_interfaces="tap0 bridge0"'>>/etc/rc.conf
# echo 'ifconfig_bridge0="addm tap0 up"'>>/etc/rc.conf

# ifconfig bridge0

Si vamos a conectar con el dispositivo tap con usuarios habituales, vamos a permitir que esos usuarios se conecten al dispositivo tap:
# sysctl net.link.tap.user_open=1
net.link.tap.user_open: 0 -> 1
# sysctl net.link.tap.up_on_open=1
net.link.tap.up_on_open: 0 -> 1

Establecer los permisos del dispositivo tap:
# chown carles /dev/tap0
# chmod 660 /dev/tap0

Agregar lo siguiente al fichero /etc/devfs.conf
own tap0 root:carles
perm tap0 660

Vamos a crear una VDE-Switch y añadir los tap como uplink (enlace ascendente)
# vde_switch -d -s /tmp/vdel -M /tmp/mgmtl -tap tap0 -m 660 -g carles --mgmtmode 660 --mgmtgroup carles

root@fbsd:~ # vde_switch -d -s /tmp/vdel -M /tmp/mgmtl -tap tap0 -m 660 -g carles --mgmtmode 660 --mgmtgroup carles
root@fbsd:~ # unixterm /tmp/mgmtl
VDE switch V.2.3.2
(C) Virtual Square Team (coord. R. Davoli) 2005,2006,2007 - GPLv2

vde$ ds/showinfo
0000 DATA END WITH '.'
ctl dir /tmp/vdel
std mode 0660
.
1000 Success

vde$ port/allprint
0000 DATA END WITH '.'
.
1000 Success

vde$ vlan/allprint
0000 DATA END WITH '.'
VLAN 0000
.
1000 Success

vde$ logout
9999 END OF SESSION root@fbsd:~ #


Tarjeta de red Qemu para todos los so invitados:


Iniciar los diferentes sistemas operativos instalados en la VM (Qemu) para configurar la red y comprobar que tienen conexión a Internet:

nbsd:
obsd:


dfly:

fbsd:
Cerrar Qemu

Unix es genial!.

miércoles, 4 de marzo de 2015

Samba compartir archivos en un grupo de trabajo


Version recomendada 4.0 porque la 4.1 no contiene el modulo pam_smbpass disponible en el paquete samba4.

Autor : Ivan Voras

Configuracion inicial

La configuracion de Samba se realiza en un simple archivo de configuracion,
/usr/local/etc/smb4.conf cuyas opciones estan documentadas en smb4.conf(5) main paginas.

[global]
workgroup = MIOFICINA
server string = Servidor Trabajo
dos charset = cp852
unix charset = UTF-8
security = user
encrypt passwords = yes
socket options = TCP_NODELAY SO_RCVBUF=262144
SO_SNDBUF=262144
use sendfile = yes
use mmap = yes
unix extensions = no
wide links = yes
[homes]
comment = Home Directories
browseable = no
writeable = yes
directory mask = 0770
create mask = 0660
[public]
comment = Public
path = /srv/public
public = no
writeable = yes
write list = @wheel
directory mask = 0770
create mask = 0660

La estructura es similar a ficheros .INI de Windows.

Entre las secciones de configuracion globales:

- workgroup - el nombre de Windows (entorno de red)
- server string - descripcion que se muestra en el explorador de Windows
- dos charset - conjunto de caracteres utilizado por las aplicaciones no unicode en el lado cliente
- unix charset - conjunto de caracteres se utilizaran en el Servidor para almacenar nombre de archivos
- security - user es la utilizada en versiones de escritorio de Windows xp, 7.
- encrypt passwords - obliga a los clientes a transmitir solo contrasenas cifradas.
- socket options - define opciones de socket de red; desactiva algoritmo Nagle's y establece tamanos de bufer grande.
- use sendmail, use nmap - activa algunas optimizaciones genericas en el acceso a archivos y servicios
- unix extensions, wide links - extensiones unix sólo son útiles para los clientes Unix, no Windows.

Otra seccion especial es homes, establece el modo en que tradicionalmente los directorios home Unix seran automaticamente compartidos con samba y puede contener cualquier opciones de configuracion disponible para configurar comparticiones.

- comment - descripcion visible en el explorador de Windows
- browseable - los directorios de inicio que estaran visible en el explorador de Windows
- writeable - cualquier usuario bajo cualquier circunstancia podran escribir a este recurso compartidos
- directory mask - al crear nuevos directorios seran propiedad del usuario que los crea y su grupo de Unix se establecera en el grupo predeterminado de este usuario, pero los permisos de archivo de Unix se estableceran en la mascara de numero octal tradicional dada en esta directiva.
- create mask - similar a directory mask pero para archivos ordinarios.

La seccion public la configuraremos como un recurso compartido accesible a todos los usuarios del sistema grup "wheel" y la colocaremos en el directorio /srv/publico. Las opciones adicionales son:

- path - el directorio que sera compartido
- public - accesible sin contrasena
- write list - lista de usuarios o grupos (nombres de grupo con el prefijo @), que podran escribir en este recurso compartido (los usuarios tienen que tener los adecuados
permisos dentro del propio directorio).

Despues de creado el archivo smb4.conf, Samba tiene que ser activado agregando la siguiente linea al archivo /etc/rc.conf

samba_server_enable="YES"

Sincronizando usuarios

Samba tiene que asignar usuarios que los clientes Windows utilizan para los usuarios del sistema. En otras palabras, cada usuario Windows necesita ser usuario del sistema Unix
 para que coincidan. Los sistemas Unix y Windows almacenan las contrasenas en formatos totalmente incompatibles. Para resolverlo hay que mantener manualmente los usuarios FreeBSD
 y Sincronizar con una base de datos de usuarios Samba especifica mediante la utilidad sbmpasswd (una combinacion de adduser, deleuser, etc). Es una solucion simple recomendada
 para pequenas instalaciones con varios usuarios que rara vez cambian sus contrasenas. Hay que tener en cuenta que primero tendra que agregar un usuario FreeBSD y luego un
 usuario Samba con el mismo nombre con:

 "smbpasswd -a"

 Una segunda manera de hacer lo mismo es replicar las dos bases de datos de contrasenas. En este escenario, tanto la base de datos de usuarios FreeBSD como la de Samba existen en el mismo
 tiempo, pero las contrasenas son copiadas de uno a otro segun sea necesario. Agregar la linea siguiente:

 pam password change = yes

 a la seccion global de smb4.conf para permitir a los usuarios cambiar la contrasena de Windows, que Samba propagara a la base de datos de los usuarios del sistema FreeBSD.
 En el otro sentido (cambiar la contrasena del ususario del sistema y propagarla a la base de datos de los usuarios Samba se puede activar anadiendo la siguiente linea
 al archivo /etc/pam.d/system:

 auth optional
 /usr/local/lib/pam_smbpass.so migrate

 y la linea siguiente al archivo /etc/pam.d/passwd

 passwd required
 /usr/local/lib/pam_smbpass.so nullok use_authtok try_first_pass

 Esto permitirá a los usuarios a cambiar tanto su contraseña FreeBSD y Samba contraseña en
al mismo tiempo mediante la utilidad "passwd" , así como migrate (copia) su FreeBSD
contraseña para la base de datos Samba la próxima vez que inicien sesión.
Tenga en cuenta que usted todavía necesita para mantener la pertenencia a grupos fuera de Samba, en el /etc/group, y que los usuarios todavía tienen que ser creado con el argumento

smbpasswd -a

en la base de datos de Samba.

La ultima manera es tener la base de datos de usuario principal sólo en Samba, y utilizar el Winbind facilitado por Samba para que aquellos usuarios a disposición del sistema a través de los mecanismos PAM y NSS. De esta manera que, no es necesario crear o mantener usuarios y grupos FreeBSD, sólo los usuarios y grupos de samba, y FreeBSD los trata como si fueran usuarios locales del sistema .

Permisos de archivo

Listas ACL de estilo de Windows pueden introducirse añadiendo la opción de montaje " nfsv4acls " al sistema de archivos deseado, y permitiendo que el "zfsacl" VFS plugin smb4.conf, la entrada fstab debería tener este aspecto:

/dev/da0p2 / ufs rw,nfsv4acls 1 1

Las entradas adicionales para la seccion global en el archivo nfs4.conf son:

vfs objects = zfsacl
map acl inherit = Yes
inherit permissions = Yes
inherit acls = Yes
store dos attributes = Yes

Unix es genial!.