Mundo de Linux, Todo Lo que nesecitas ahora tu alcance para empezar en el mundo de Linux
Mundo de Linux,Manuales linux,software libre,driver linux,hosting en linux,linux peru,php en linux, Dominios, Alojamiento web perú,portales linux, comunidad linux perú,portales educaticos linux, foro de noticias linux, grupos de usuarios,red hat
Untitled Document
Google
  las 7 maravillas del Mundo del Software Libre
Instalación y desinstalación de software en Linux
  Instalación de Linux Fedora
  Instalación de Linux Debian con NetInst
Caracteristicas de Linux
  Cómo actualizar el Kernel a partir de paquetes RPM
Definición de Linux
Definición de Servidor DNS
Documentación
  Conexión a Internet por cable con Linux
Diseño de paginas en linux
Servidor Apache
Servidor Web
Uso de Yum
Uso de Samba en linux
Uso de webmin en linux
  Musica en linux
 
 
  • Web Oficial de Linux Fedora
  • Web Oficial de Linux Debian
  Web oficial de Linux Ubuntu
  Web oficial de Linux Suse
  Web oficial de Linux Gentoo
  Web oficial de Mandrake
 
  • Manuales de Linux
  • Manuales Básicos de Linux
   Manuales de redes
  Instalacion de ubuntu linux
  Cuso de Servidores en Ubunto
 
   Archivo de Noticias
   Noticias de linux Analisis
  Ultimas Noticias de linux
  Infonoticias linux
  Marketing en internet
  Busca linux
 
  Curso de Servidores en Ubunto
  • Videocurso de Ubunto Linux
  Instalacion de ubuntu linux
  Introducción a Linux
 
  • Descargas de Videotutoriales
  • Juegos en linux
Untitled Document

Cómo OpenSSH con Chroot.    

Introducción
SSH es un protocolo que permite realizar transferencias seguras a través de un túnel seguro donde toda la información trasmitida va cifrada. Sin embargo, SSH potencialmente se puede volver un arma de dos filo si una cuenta de usuario se ve comprometida. Configurar un sistema con OpenSSH con soporte para Chroot brinda una mayor seguridad al aislar a los usuarios dentro de un entorno separado del sistema principal con un mínimo de herramientas para trabajar y que disminuye los riesgos potenciales en caso de verse comprometida alguna cuenta.
Este manual considera el lector utiliza Red Hat™ Enterprise Linux 4, CentOS 4 o White Box Enterprise Linux 4.
Procedimientos
Se requiere instalar los paquetes se OpenSSH modificados con el parche disponible en http://chrootssh.sourceforge.net/ y que están disponibles a través de Linux Para Todos.
Los siguientes son los componentes mínimos de la jaula.


/bin/sh
/bin/cp
/bin/false
/bin/ls
/bin/mv
/bin/pwd
/bin/rm
/bin/rmdir
/bin/sh
/bin/true
/etc/group
/etc/passwd
/lib/ld-linux.so.2
/lib/libacl.so.1
/lib/libattr.so.1
/lib/libc.so.6
/lib/libcom_err.so.2
/lib/libcrypt.so.1
/lib/libcrypto.so.4
/lib/libdl.so.2
/lib/libnsl.so.1
/lib/libpthread.so.0
/lib/libresolv.so.2
/lib/librt.so.1
/lib/libselinux.so.1
/lib/libtermcap.so.2
/lib/libutil.so.1
/usr/lib/libz.so.1
/usr/lib/libgssapi_krb5.so.2
/usr/lib/libk5crypto.so.3
/usr/lib/libkrb5.so.3
/usr/libexec/openssh/sftp-server
/sbin/nologin

Es decir, si se requiere utilizar /bin/sh, y suponiendo se utiliza /chroot/ como directorio raíz para la jaula, se debe copiar dentro de éste como /chroot/bin/sh, si se requiere /lib/libtermcap.so.2 se debe copiar como /chroot/lib/libtermcap.so.2, si se requiere /usr/libexec/openssh/sftp-server se debe copiar como /chroot/usr/libexec/openssh/sftp-server, y asi sucesivamente.
Cualquier otra herramienta que se quiera agregar solo requiere estén presentes dentro de la jaula las bibliotecas correspondientes. Éstas se determinan a través del mandato ldd aplicado sobre la herramienta que se quiere utilizar. Por ejemplo, si se quiere añadir el mandato more a la jaula, primero se determina que bibliotecas requiere para funcionar:


ldd /bin/more

Lo anterior devuelve algo como lo siguiente:


        libtermcap.so.2 => /lib/libtermcap.so.2 (0x00bea000)
        libc.so.6 => /lib/tls/i586/libc.so.6 (0x00515000)
        /lib/ld-linux.so.2 (0x004fe000)

Lo anterior significa que para poder utilizar more dentro de la jaula deberán estar presentes dentro de ésta y en el subdirectorio lib/ las bibliotecas libtermcap.so.2, libc.so.6 y ld-linux.so.2.
Los ficheros /etc/group y /etc/passwd solo necesitan contener la información de los usuarios que interese enjaular así como la ruta relativa al directorio donde se encuentra la jaula de sus directorios de inicio (es decir, se define /home/usuario, suponiendo que realmente se localiza en /var/www/sitiocliente/home/usuario). Es indispensable esté presente esta información dentro de la jaula o de otro modo no será posible realizar el ingreso al sistema.


Ejemplo del contenido de /etc/passwd dentro de la jaula

usuario:x:503:503::/home/usuario:/bin/bash

Ejemplo del contenido de /etc/group dentro de la jaula

usuario:x:503:

Aunque no del todo indispensable para utilizar OpenSSH con Chroot, es buena idea crear los siguiente nodos dentro de la jaula:


mkdir dev
mknod -m 0666 dev/tty c 5 0
mknod -m 0644 dev/urandom c 1 9
mknod -m 0666 dev/null c 1 3
mknod -m 0666 dev/zero c 1 12

Solo root deberá poder modificar la estructura de la jaula y su contenido. El objeto es poder permitir el acceso por SSH/SFTP a un entorno aislado del sistema principal. Adicionalmente si se configura el servicio de FTP con jaulas, se podrá acceder indistintamente por FTP, SSH o SFTP.
Ejemplo práctico:
Suponiendo que se tiene un cliente, y éste ha solicitado servicio de hospedaje para su sitio de red a través de HTTP. El cliente quiere dos usuarios diferentes para subir distinto contenido al sitio de red. Los usuarios serán fulano y mengano. El dominio a administrar sera empresa-ejemplo.com, que será administrado exclusivamente por fulano, y se quiere un sub-dominio denominado ventas.empresa-ejemplo.com que será administrado por mengano.
Crear las cuentas de los usuarios
Se crea el directorio /var/www/empresa-ejemplo.com y se copia la estructura de la jaula antes mencionada dentro de subdirectorios relativos a /var/www/empresa-ejemplo.com, teniendo cuidado de dejar a root como propietario a fin de impedir que los usuarios puedan borrar algún subdirectorio del interior.
Se crean las cuentas de los dos usuarios, tomando en cuenta que si se asigna /sbin/nologin o /bin/false como interprete de mandatos, se podrá acceder por FTP pero no se podrá acceder por SSH o SFTP, y si se asigna /usr/libexec/openssh/sftp-server, solo se podrá acceder por SFTP. Si se asigna /bin/sh como interprete de mandatos, se podrá acceder por SSH, SFTP y FTP.


useradd -s /bin/sh -d /var/www/empresa-ejemplo.com/./ fulano
mkdir /var/www/empresa-ejemplo.com
chown root.apache /var/www/empresa-ejemplo.com
passwd fulano

useradd -s /bin/sh -m -d /var/www/empresa-ejemplo.com/./ventas mengano
mkdir /var/www/empresa-ejemplo.com/ventas
chown root.apache /var/www/empresa-ejemplo.com/ventas
passwd mengano

Cabe señalar que los directorios de inicio pertenecen a root, de este modo se impide que el usuario pueda borrar subdirectorio relativos que se utilizarán para guardar las bitácoras de Apache.
Suponiendo que fulano tiene UID 513 y mengano tiene UID 514, el fichero /var/www/empresa-ejemplo.com/etc/passwd debería tener lo siguiente:


fulano:x:513:513::/var/www/empresa-ejemplo.com/./home/fulano:/bin/sh
mengano:x:514:514::/var/www/empresa-ejemplo.com/./home/mengano:/bin/sh

El fichero /var/www/empresa-ejemplo.com/etc/group debería tener lo siguiente:


apache:x:48:
fulano:x:513:
mengano:x:514:

Configuración de Apache.
El dominio www.empresa-ejemplo.com se configurará del siguiente modo:


         <VirtualHost *:80>
                 ServerName www.empresa-ejemplo.com
                 ServerAlias      empresa-ejemplo.com
                 DocumentRoot /var/www/empresa-ejemplo.com/html
                 ErrorLog /var/www/empresa-ejemplo.com/logs/error_log
                 CustomLog /var/www/empresa-ejemplo.com/logs/access_log combined
                 <Directory "/var/www/empresa-ejemplo.com/html/">
                          Options Indexes Indexes Includes
                          AllowOverrride all
                 </Directory>
         </VirtualHost>

Los directorios necesarios se crearán del siguiente modo con siguientes permisos:


mkdir /var/www/empresa-ejemplo.com
chown root.apache /var/www/empresa-ejemplo.com
mkdir -p /var/www/empresa-ejemplo.com/html
chown fulano.apache /var/www/empresa-ejemplo.com/html
mkdir -p /var/www/empresa-ejemplo.com/configs
chown fulano.apache /var/www/empresa-ejemplo.com/configs

El sub-dominio ventas.empresa-ejemplo.com se configurará del siguiente modo:


         <VirtualHost *:80>
                 ServerName ventas.empresa-ejemplo.com
                 DocumentRoot /var/www/empresa-ejemplo.com/ventas/html
                 ErrorLog /var/www/empresa-ejemplo.com/ventas/logs/error_log
                 CustomLog /var/www/empresa-ejemplo.com/ventas/logs/access_log combined
                 <Directory "/var/www/empresa-ejemplo.com/ventas/html/">
                          Options Indexes Indexes Includes
                          AllowOverrride all
                 </Directory>
         </VirtualHost>

Los directorios necesarios se crearán del siguiente modo con siguientes permisos:


mkdir /var/www/empresa-ejemplo.com/ventas
chown root.apache /var/www/empresa-ejemplo.com/ventas
mkdir -p /var/www/empresa-ejemplo.com/ventas/html
chown fulano.apache /var/www/empresa-ejemplo.com/ventas/html
mkdir -p /var/www/empresa-ejemplo.com/ventas/configs
chown fulano.apache /var/www/empresa-ejemplo.com/ventas/configs

Comprobaciones.
Al acceder con el usuario fulano por SSH o FTP hacia www.empresa-ejemplo.com se deberá acceder hacia /var/www/empresa-ejemplo.com, el cual será presentado como "/". El usuario publicará el contenido HTML dentro de /html, podrá guardar contenido fuera de Apache en /configs y podrá acceder hacia las bitácoras generadas por apache en /logs. Es importante recalcar que mengano no podrá borrar contenido de /ventas, como son el directorio de bitácoras /logs y el directorio /html que se mostrará en Apache como http://ventas.empresa-ejemplo.com/. En la ausencia de estos Apache no podría iniciar.
Al acceder con el usuario mengano por SSH o FTP hacia www.empresa-ejemplo.com se deberá acceder hacia /var/www/empresa-ejemplo.com, el cual será presentado como "/". El usuario publicará el contenido HTML dentro de /ventas/html, podrá guardar contenido fuera de Apache en /ventas/configs y podrá acceder hacia las bitácoras generadas por apache en /ventas/logs. Es importante recalcar que mengano no podrá borrar contenido de /ventas, como son el directorio de bitácoras /ventas/logs y el directorio /ventas/html que se mostrará en Apache como http://ventas.empresa-ejemplo.com/. En la ausencia de estos Apache no podría iniciar.

 

Untitled Document
   
Av. Petith Thouars 1255 Of. 302 Lima-Perú
Teléfonos
: 2662540 / 7959969 Celular: (telfónica) 9-96929470 / (claro) 9-91554872   Perú
 Email:   informes@ticomperu.com     MSN:   ticomperu@hotmail.com
curso gratis trucos de linux,

curso grtis guia de referencia de comandos unix y linux

,

curso gratis linux router

,

cursos gratis de impresion en linux

,

curso gratis linux basico manual

,
cursos gratis de linux red hat 9
,
curso gratis de servidores web para linux
,
cursos gratis linux
,
curso gratis de unix
,
curso gratis de configuracion de correo en linux
,
cursos gratis instalacion del suse linux
,
curso gratis de suse linux 10 1
, curso gratis que es redaccion, cursos gratis goma eva, cursos gratis de cine, curso gratis papiroflexia, cursos gratis celador, curso gratis limpieza, policia local badajoz, geografia , Foro de Linux