Páginas

viernes, 28 de febrero de 2014

Alinear particiones SSD con Gpart

Alinear particiones SSD con Gpart para optimizar el rendimiento de un disco SSD.

La utilidad gpart se utiliza para dividir los proveedores GEOM, normalmente discos


Este proceso de particinado y agregar soporte TRIM puede realizarse en el entorno gráfico durante durante la instalación de FreeBSD eligiendo particionado manual.

Tabla de partición GUID (GPT) es un estándar para la colocación de la tabla de particiones en un disco duro. Es parte del estándar EFI y Permite un tamaño de partición de 9.4 ZB y 128 slices.

Listar particiones:

$ ls /dev/da0*
/dev/da0   /dev/da0p2 /dev/da0p4 /dev/da0p6
/dev/da0p1 /dev/da0p3 /dev/da0p5

Listar la tabla de particiones:

$ gpart show da0

# gpart delete -i 1 da0
da0p1 deleted
# gpart delete -i 2 da0
da0p2 deleted
# gpart delete -i 3 da0
da0p3 deleted
# gpart delete -i 4 da0
da0p4 deleted
# gpart delete -i 5 da0
da0p5 deleted
# gpart delete -i 6 da0
da0p6 deleted

# gpart create -s gpt da0

# gpart show da0
=>  34  234441577  da0  GPT  (111G)
34  234441577 - free -  (111G)

Vamos a crear las particiones, si usted utiilza particiones separadas para usr, var y tmp deberá crearlas utilizando el mismo método:
# gpart add -s 64k -t freebsd-boot -l boot0 da0
# gpart add -s 8G -t freebsd-swap -l swap0 da0
# gpart add -t freebsd-ufs -a 4k -l root0 da0

# -- Install boot code
gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 da0

Crear sistema de ficheros:
# newfs -U -L root /dev/da0p3
/dev/da0p3: 110377.4MB (226052832 sectors) block size 32768, fragment size 4096
using 177 cylinder groups of 626.09MB, 20035 blks, 80256 inodes.
with soft updates
super-block backups (for fsck_ffs -b #) at:
 192, 1282432, 2564672, 3846912, 5129152, 6411392, 7693632,
....

No hara falta alinear las particiones de arranque o de intercambio, ya que no cuentan con sistemas de archivos "reales". Si está utilizando particiones separadas para /var /usr /tmp deberá crearlas siguiendo el mismo método:

# gpart show da0
=>   34  234441577  da0  GPT  (111G)
34 128 1  freebsd-boot  (64k)
162  8388608  2  freebsd-swap  (4.0G)
8388770  6   - free -  (3.0k)
8388776  226052832    3  freebsd-ufs  (107G)
234441608  3  - free -  (1.5k)

Eliminar index, slice, particiones:

Eliminar particiones
$ gpart delete -i 1 da0s1

Destruir slices
$ gpart destroy da0s1

Eliminar GEOM label,
$ gpart delete -i 1 da0

Destruir GEOM label,
$ gpart destroy da0

Comprobar tabla de particioines:
$ gpart show da0

y
$ gpart list


Unix es genial!.

viernes, 7 de febrero de 2014

Encriptar con geli FreeBSD

Encriptar disco duro usb con geli:

Geli es una clase GEOM criptográfica que utiliza el framework crypto y entre otras características, soporta múltiples algoritmos criptográficos (AES, Blowfish y 3DES).

Conectar un disco duro externo a un puerto usb, se creará el dispositivo /dev/da0.

Habilitar soporte para geli en del kernel de FreeBSD

options    GEOM_ELI
device     crypto

Recompilar el kenel y reiniciar con el nuevo kernel.

Cargar el nuevo múdulo geli en el arranque añadiendo la siguiente línea al archivo /boot/loader.conf

geom_eli_load="YES"

Generar la clave maestra

Generar una archivo un archivo de clave que se utilizará como parte de la clave maestra para el proveedor de cifrado montado en /private. El archivo de clave algunos datos aleatorios que se utilizan para encriptar la clave maestra. La clave principal también estará protegida por una contraseña. El tamaño del sector del proveedor /dev/da0.eli será de 4kb

# dd if=/dev/random of=/root/safe/da0.key bs=64 count=1

Inicializar el proveedor que necesita ser encriptado. Aquí se puede
configurar el algoritmo criptográfico a usar, longitud de la clave, etc:

# geli init -s 4096 -K /root/safe/da0.key bs=64 count=1

Comprobar el sistema de archivos:


Conectar el proveedor con la clave generada:
# geli atach -k /root/safe/da0.key /dev/da0

# ls /dev/da0*
da0 da0.eli

Crear un nuevo sistema de archivos:

# dd if=/dev/random of=/dev/da0.eli bs=1m
# newfs /dev/da0.eli


# mount /dev/da0.eli /private

El sistema de archivos cifrado ahora es visible y disponible para su uso

# df -h


Desmontar y desconectar del proveedor:
Una vez terminado el trabajo sobre la partición cifrada, es prudente desmontar y separar la partición cifrada geli del kernel (en este caso desconectar el disco duro usb):

# umount /private/
# geli detach da0.eli

Conectar de nuevo:
# geli attach -k /root/safe/da0.key /dev/da0
Enter passphrase:

# umount /private
# geli detach da0.eli

Utilizar solo password:

Es más conveniente para cifrar una memoria USB o una imagen de archivo basada sólo en una fase de contraseña sin clave. En este caso no es necesario llevar el archivo de clave adicional para acceder al contenido del disco. El procedimiento es en gran medida el mismo que el anterior, sólo sin el archivo de clave. Vamos a encriptar un archivo basado en imagen /cryptedfile de 1 GB.

# dd if=/dev/zero of=/cryptedfile bs=1M count=1000
# mdconfig -at vnode -f /cryptedfile


# geli init /dev/da0
# geli attach /dev/da0

# newfs -U -m 0 /dev/da0.eli
# mount /dev/da0.eli /private
# geli detach da0.eli

Ahora es posible mountar esta imagen en otro sistema de solo con el password:
# mdconfig -at vnode -f /cryptedfile
# geli attach /dev/ad0
# mount /dev/da0.ali /private


Fuente:
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/disks-encrypting.html
http://bsdtutorial.org/
http://cb.vu/unixtoolbox_pt.xhtml

Unix es genial!.

martes, 4 de febrero de 2014

pure-ftpd FreeBSD

Configuración de un servidor FTP Pure-ftpd con usuarios virtuales

Pure-ftpd es un país libre (BSD), con calidad de producción segura y servidor FTP estándar conforme.

Esta guía proporciona instrucciones para utilizar el sistema de usuario virtual para gestionar y controlar a los usuarios. Mediante el uso de usuarios virtuales, cuentas FTP se pueden administrar sin afectar las cuentas del sistema.

Iniciar la instalación de Pure-ftpd:

# portsnap
# cd /usr/ports/ftp/pure-ftpd
# make config-recursive

Un menú emergente contiene opciones de compilación de Pure-ftpd. Es posible incluir y excluir opciones. En mi caso, he optado por dejar estas opciones en sus valores por defecto.

# ee /var/db/ports/pure-ftpd/options
WITH_UTF8=true
WITH_LARGEFILE=true

# make install clean distclean
# rehash

Al finalizar el proceso de instalación empezaremos copiando el archivo
de configuración de ejemplo y establecer los permisos adecuados:

# cd /usr/local/etc
# cp pure-ftpd.conf.sample pure-ftpd.conf
# chmod 444 pure-ftpd.conf

Ajustar valores net.inet.ip.portrange.{first,last} en /etc/sysctl.conf


Fase de configuración:

# ee pure-ftpd.conf
# Rango de puertos para conexiones de respuestas pasivas. - Para los
# cortafuegos.
PassivePortRange 30000 30900

# Dirección IP/puerto para escuchar (default = todas IP y puerto 21).
# Bind 127.0.0.1,21

# Si desea registrar todos los comandos del cliente, ajústelo a "sí".
# Esta directiva puede ser duplicado para también registrar
# las respuestas del servidor.
VerboseLog yes

# PureDB base de datos de usuario (see README.Virtual-Users)
PureDB /usr/local/etc/pureftpd.pdb

# Crear un archivo de registro adicional con transferencias
# registradas en el estándar W3C Formato # (compatible con
# la mayoría de los analizadores de registros comerciales)
AltLog w3c:/var/log/pureftpd.log

# Creación automática de los directorios de inicio si se han perdido
CreateHomeDir yes

# No permitir conexiones anónimas. Sólo permitirá a los usuarios autenticados.
NoAnonymous yes

# No permitir a los usuarios anónimos para subir nuevos archivos
# (no = se permite cargar)
AnonymousCantUpload yes

# Número máximo de clientes sim con la misma dirección IP
MaxClientsPerIP  5

# Máximo numero de usuarios simultaneos
MaxClientsNumber  50

# Máscara de creación de archivos. :
# 177:077 si se siente paranoico.
Umask  022:022

# UID mínimo para un usuario autenticado que entrar
MinUID  100

La opción CreateHomeDir permite añadir usuarios virtuales más fácil mediante la creación del directorio principal de un usuario al iniciar sesión por primera vez.

Existe la posibilidad de importar usuarios con cuentas en el sistema (definidos en /etc/master.passwd) a la vez o crear nuevos usuarios de forma manual. Para importar los usuarios que ya existen en el sistema a usuarios virtuales FTP con la herramienta pure-pwconvert:

# pure-pwconvert >> /usr/local/etc/pureftpd.passwd
# chmod 600 /usr/local/etc/pureftpd.passwd
# pure-pw mkdb

No olvidemos que la pure-pwconvert sólo importa las cuentas que tienen
acceso a una consola. Las cuentas con la shell establecida a nologin
se tienen que añadir de forma manual.

Para agregar usuarios a la base de datos de usuarios virtual Pure-FTPd
manualmente, tenemos que crear una cuenta a nivel de sistema que se
asociará con los usuarios virtuales. Crear un nuevo usuario llamado ftp:

Crear una cuenta a nivel de sistema:
# pw useradd -n ftp -s /sbin/nologin -w no -d /home/ftp -c "FTP user" -m

Nota: Al instalar pureftp, se crea un grupo de ftp, pero ningún usuario ftp, lo que da como resultado el error "mail pure-ftpd:(?:?) [ERROR] Unable to find the 'ftp' account". So we need to manually create the ftp user.

Llegados a esta punto, ahora podemos agregar usuarios a la base de datos de usuarios virtuales utilizando los siguientes comandos:

Agregar usuarios a la base de datos de usuarios virtuales:
# pure-pw useradd ftpuser1 -u ftp -g ftp -d /home/ftp/ftpuser1
# pure-pw mkdb

# pure-pw useradd ftpuser2 -u ftp -g ftp -d /home/ftp/ftpuser2
# pure-pw mkdb

Permitir direcciones IP de clientes:
# pure-pw usermod remote_user -r 95.21.88.35
# pure-pw mkdb

Restablecer la contraseña del usuario ftpuser2: 
# pure-pw passwd fptuser2
# pure-pw mkdb

Ver información acerca del usuario ftpuser1
# pure-pw show fptuser1

Para ver una lista de los usuarios: 
# pure-pw list

Eliminar el usuario ftpuser2
# pure-pw userdel fptuser2
# pure-pw mkdb

Iniciar Pure-FTPd: 
# /usr/local/etc/rc.d/pure-ftpd onestart

Determinar si pure-ftpd se está ejecutando:


Probando el servidor FTP:

 

Para que Pure-FTPd se inicie durante el arranque:
# echo 'pureftpd_enable="YES"' >> /etc/rc.conf

Reiniciar pure-ftpd
# /usr/local/etc/rc.d/pure-ftpd restart


Rotar archivo de registro pure-ftpd: 
# vim /etc/newsyslog.conf
/var/log/pureftpd.log 600 7 100000 * JC /var/run/pure-ftpd.pid

# /etc/rc.d/newsyslog restart

Pure-ftpd proporciona características útiles para los usuarios personales, así como los proveedores de alojamiento. Esta es solo una configuración básica, para más opciones de configuración visite la página web del proyecto.

Fuente:
http://download.pureftpd.org/pub/pure-ftpd/doc/FAQ
http://www.pureftpd.org/project/pure-ftpd/doc
http://forums.freebsd.org/showthread.php?t=591


Unix es genial!.