lunes, 6 de septiembre de 2010

Jaula chroot via sftp en CentOS

Hola a todos!!

Hace unos dias necesite crear unos accesos via ftp seguro al ftp de la compañia para la cual trabajo. El requerimiento era tambien enjaular al usuario dentro de ese mismo contexto sftp (actualmente trabajamos con vsftp que SI ofrece chroot, pero solo para ftp).
El problema basico es que la version de OpenSSH que tiene CentOS instalada por defecto es un poco vieja y hay parametros que no funcionan.
Encontre un repo donde hay RPMs de OpenSSH actualizados para 32 y 64 bits.

Para instalar el nuevo OpenSSH:
wget http://fs12.vsb.cz/hrb33/el5/hrb-ssh/stable/i386/openssh-5.1p1-3.el5.hrb.i386.rpm
wget http://fs12.vsb.cz/hrb33/el5/hrb-ssh/stable/i386/openssh-clients-5.1p1-3.el5.hrb.i386.rpm
wget http://fs12.vsb.cz/hrb33/el5/hrb-ssh/stable/i386/openssh-server-5.1p1-3.el5.hrb.i386.rpm
En este caso tuve que instalar de 32 bits, para 64 bits http://fs12.vsb.cz/hrb33/el5/hrb-ssh/stable/x86_64/

una vez tomados los paquetes, desinstalar los rpm actuales

yum remove -y openssh-server openssh
instalo version nueva que habia bajado con wget

rpm -ivh openssh-5.1p1-3.el5.hrb.i386.rpm
rpm -ivh openssh-clients-5.1p1-3.el5.hrb.i386.rpm
rpm -ivh openssh-server-5.1p1-3.el5.hrb.i386.rpm
ahora creo un usuario para sftp con un grupo especial llamado ftponly

groupadd ftponly
useradd ftpuser -g ftponly
lo ultimo que falta es editar el archivo de configuracion de OpenSSH

vim /etc/ssh/sshd_config

comentar la linea
#Subsystem sftp /usr/libexec/openssh/sftp-server

y reemplazar por...

Subsystem sftp internal-sftp


y agregar...
Match User ftpuser
ChrootDirectory /directoriosftp
AllowTCPForwarding no
X11Forwarding no


y.. reinicio el servicio
service sshd restart

tambien se podria usar Match Group en el caso de ser varios usuarios en la misma jaula chroot.
nota: con ssh NO se enjaluara el usuario, esto es solo valido para sftp

viernes, 27 de agosto de 2010

Validando clientes de Ubuntu en Active Directory

Supongamos que tenemos una red mixta, con clientes Window$ y x ejemplo IT y desarrolladores utilizan linux y el equipo de diseñadores usa macintosh. El problema con el que nos encontramos es que los usuarios Windows se pueden validar al dominio, pero los demas usuarios por defecto no pueden, deberiamos crearles usuarios locales, y muchas veces (como es en mi caso) esto no es posible al tener logins unificados contra el arbol de Active Directory.
Afortunadamente existe un programita llamado likewise que nos soluciona todo esto (http://www.likewise.com)

En ubuntu lo podemos instalar desde los repositorios, cualquier otra plataforma se puede bajar el software desde la pagina que les pase antes.
para instalarlo

apt-get install likewise-open

una vez instalado, se debe unir al equipo a la red Window$, antes fijarse que las entradas de dns para el equipo a unir esten presentes, mas especialmente si el dns es de Micro$oft, a veces puede ocasionar problemas.
El comando es

domainjoin-cli join tudominio.com.ar admin


en mi caso puse admin porque admin es mi cuenta de administrador de dominio, sino ingresar la que corresponda


root@pirulo:~# domainjoin-cli join pepe.com.ar admin
Joining to AD Domain: pepe.com.ar
With Computer DNS Name: pirulo.pepe.com.ar

admin@PEPE.COM.AR's password:

DNS update failed!
SUCCESS



A no asustarse con el error de DNS update, solo avisa que la entrada en el DNS ya estaba y no la puede actualizar.

Ya esta unido el linux a Active Directory. Para que el usuario se loguee deberia loguearse como "dominio\usuario", esto se evita agregando al archivo etc/samba/lwiauthd.conf

winbind use default domain = yes


y listo! ya se puede usar usuarios de windows en linux.

jueves, 26 de agosto de 2010

Bloquear Facebook por HTTPS con iptables en IpCop

Ultimamente en la oficina me encontre con que, a pesar que tengo filtro http para determinadas urls, me hacian un bypass del SquidGuard por el puerto 443 (HTTPS).

Actualmente estoy usando IpCop 1.4.21 + layer 7 + UrlFilter (SquidGuard) + AdvProxy (2.7 stable 9).

Para poder bloquear el trafico a determinados sitios por https use iptables.
Obviamente no es tan facil tocar las tablas que vienen por defecto, para agregar reglas personalizadas hay una cadena CUSTOMFORWARD

Editamos el archivo /etc/rc.d/rc.local

#bloqueo facebook
#primero HABILITO a la ip o las ips que esten permitidas acceder a la ip en cuestion (facebook)
/sbin/iptables -t filter -A CUSTOMFORWARD -s 192.168.10.11/24 -d 66.220.144.0/20 -p tcp --dport 443 -j ACCEPT
#DENIEGO a todas las demas
/sbin/iptables -t filter -A CUSTOMFORWARD -s 192.168.10.0/24 -d 69.63.189.0/24 -p tcp --dport 443 -j DROP
#DENIEGO otro rango de ips que a veces es usado por facebook
/sbin/iptables -t filter -A CUSTOMFORWARD -s 192.168.10.0/24 -d 69.63.190.0/24 -p tcp --dport 443 -j DROP

esta es otra manera de hacerlo, pero atentos ya que nuestro ipcop debe tener el modulo iprange (el mio si lo tiene, tal vez haya alguna version sin este modulo)


/sbin/iptables -t filter -A CUSTOMFORWARD -m iprange --src-range 192.168.10.2-192.168.10.250 -d 204.74.0.0/16 -p tcp --dport 443 -j DROP
/sbin/iptables -t filter -A CUSTOMFORWARD -m iprange --src-range 192.168.10.2-192.168.10.250 -d 66.220.144.0/20 -p tcp --dport 443 -j DROP
Otra forma de poder hacerlo es setear todos los browsers con proxy (ip del proxy puerto 81 o el puerto en el que apunten sus proxys), en mi caso preferi bloquear con tablas ya que son muchos clientes que deberia configurar y como no tengo uniformidad de browsers hay que hacelo a mano.

espero que les haya servido.

lunes, 23 de agosto de 2010

Convirtiendo imagenes de Xen a VirtualBox

Una pavada pero que puede llegar a ser util...

Para convertir una imagen creada en Xen a VirtualBox.... primero hay que tener instalado el VirtualBox y desde la linea de comandos (donde mas sino) correr

vboxmanage convertfromraw -format VDI nombredelaimagenxen.img nombredelaimagenvirtualbox.vdi

Es importante haber instalado el host de xen como Fully Virtualized, sino no va a funcionar (VirtualBox no soprta kernels basados en xen).