psshfs in DragonFlyBSD

How I got mount_psshfs(8) to work.

mount_psshfs basically offers the same functionality as sshfs(1). Putting it to work is quite easy but it is not enabled by default, so some work is required.

0) Set up ssh keys

1) Build, install and boot a new kernel which includes the following parameters. Here is how.
 pseudo-device putter # PUFFS(4)
options PUFFS #Pass-to-Userspace Framework File System

Alternatively, just load the module
kldload puffs

2) Add device rules in /etc/devfs.conf
 perm putter root:wheel 0666

3) Enable vfs.usermount
In /etc/sysctl.conf add
 vfs.usermount=1

4) Mount it!
 mount_psshfs -O IdentityFile=/home/earthling/.ssh/mercury_rsa mercurius@192.168.0.11:/Users/mercurius/export /home/earthling/mnt/remote_to_mercury

________________________________

Links:

http://leaf.dragonflybsd.org/cgi/web-man?command=mount_psshfs&section=8
http://static.usenix.org/event/usenix09/tech/full_papers/kantee/kantee_html
http://fuse.sourceforge.net/sshfs.html
http://www.dragonflybsd.org/docs/newhandbook/ConfigureKernel

mount_psshfs: handshake failed, server does not support sftp?
mount_psshfs: puffs_mount: cannot open /dev/putter
mount_psshfs: puffs_daemon: Permission denied
mount_psshfs: puffs_mount: Permission denied
mount_psshfs: puffs_mount: Operation not permitted

Advertisements

jailuser en FreeBSD

Antes que nada decir que jailuser es una excelente herramienta para manejar ambientes chrooteados.

La instalé en FreeBSD 7.0 desde ports y packages pero no servía:

# pkg_info |grep jail
jailuser-1.9_1 Builds a chrooted environment

Al intentar

# mkjailenv /tmp/jailuser/


arch i386 doesn't exist.
Compilation failed in require at /usr/local/bin/mkjailenv line 35.
BEGIN failed--compilation aborted at /usr/local/bin/mkjailenv line 35.

Estuve viendo el código y encontre una forma de solucionarlo aunque muy probablemente no es la mejor funciona bien mkjail y los demas comandos de jailuser.

No encontre documentacion, ni pude contactar al autor del jailuser, trataré de informar al mantainer de FreeBSD.

diff entre el original y el modificado de /usr/local/lib/libjail.pm

62c62
< local $found = 0;
---
> local $found = 1;
74c74,75
< return($ARCH_DIR_LOOKUP{$arch});
---
> #return($ARCH_DIR_LOOKUP{$arch});
> return freebsd;

Mi /usr/local/etc/jail.conf

$VERSION="1.9";
$ARCH="freebsd";
$DEBUG=0;
$INSTALL_DIR="/usr/local";

SSH iptables

Siempre me gusta tener activado SSH pero es peligroso en maquinas expuestas a internet debido a los ataques de fuerza de bruta, por esto agregue una cadena a iptables(8) que limita el número de intentos a SSH desde una IP, además de registrar en el log del kernel los intentos fallidos.


#--Crea una cadena SSH-fal
/sbin/iptables -N SSH-fal


#--Una IP solo puede intentar 3 veces cada 100 segundos, los intentos fallidos van al log del kernel
/sbin/iptables -A SSH-fal -p tcp --dport 22 -m state --state NEW -m recent --set
--name SSH
/sbin/iptables -A SSH-fal -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 100 --hitcount 2 --rttl --name SSH -j LOG --log-prefix "IPTABLES> ssh intento fallido"
/sbin/iptables -A SSH-fal -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 100 --hitcount 3 --rttl --name SSH -j DROP

#--Carga las reglas definidas en SSH-fal
/sbin/iptables -A INPUT -j SSH-fal