<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title></title>
	<atom:link href="http://dysloke.com/blog/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://dysloke.com/blog</link>
	<description></description>
	<lastBuildDate>Mon, 05 Dec 2011 18:51:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.4</generator>
		<item>
		<title>Instalando Web Servers..</title>
		<link>http://dysloke.com/blog/?p=932</link>
		<comments>http://dysloke.com/blog/?p=932#comments</comments>
		<pubDate>Mon, 05 Sep 2011 23:47:20 +0000</pubDate>
		<dc:creator>dysloke</dc:creator>
				<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://dysloke.com/blog/?p=932</guid>
		<description><![CDATA[Primero vamos a arrancar con Lighttpd: Lo primero que hacemos es instalar desde consola, lighttpd: aptitude install lighttpd Ya está, tenemos funcionando nuestro servidor web.. muy dificil .. Ahora lo que vamos a hacer es darle soporte para php, entonces instalamos el paquete: aptitude install php5-cgi Para que PHP5 funcione correcamente deberemos agregar un par [...]]]></description>
			<content:encoded><![CDATA[<p>Primero vamos a arrancar con <strong>Lighttpd</strong>:</p>
<p>Lo primero que hacemos es instalar desde consola, lighttpd:</p>
<blockquote><p>aptitude install lighttpd</p></blockquote>
<p>Ya está, tenemos funcionando nuestro servidor web.. muy dificil ..<br />
Ahora lo que vamos a hacer es darle soporte para <strong>php</strong>, entonces instalamos el paquete:</p>
<blockquote><p>aptitude install php5-cgi</p></blockquote>
<p>Para que <strong>PHP5</strong> funcione correcamente deberemos agregar un par de cositas a nuestra configuración tanto de php.ini como de lighttpd.conf.</p>
<p>Empezamos por agregar al final del archivo php.ini lo siguiente:</p>
<blockquote><p>nano /etc/php5/cgi/php.ini</p>
<p>cgi.fix_pathinfo = 1</p></blockquote>
<p>Y ahora editamos lighttpd.conf y agregamos al final del archivo lo siquiente:</p>
<blockquote><p>nano /etc/lighttpd/lighttpd.conf</p></blockquote>
<p>Y agregamos:</p>
<blockquote><p>
fastcgi.server = ( &#8220;.php&#8221; => ((<br />
                     &#8220;bin-path&#8221; => &#8220;/usr/bin/php-cgi&#8221;,<br />
                     &#8220;socket&#8221; => &#8220;/tmp/php.socket&#8221;,
</p></blockquote>
<p>Para cambiar el puerto de escucha del lighttpd editamos nuevamente lighttpd.conf y agregamos estas lineas (en este caso ponemos en escucha el puerto 8080)</p>
<blockquote><p>
server.port               = 8080<br />
server.socket = &#8220;[::]:8080&#8243;
</p></blockquote>
<p>Ahora habilitamos el módulo fastcgi:</p>
<blockquote><p>lighttpd-enable-mod fastcgi</p></blockquote>
<p>Reiniciamos la configuracion de <strong>lighttpd</strong> para que tome los cambios:</p>
<blockquote><p>/etc/init.d/lighttpd force-reload</p></blockquote>
<p>Ahora creamos el popular phpinfo para ver si funciona nuestro php:</p>
<blockquote><p>nano /var/www/info.php</p></blockquote>
<p>Agregamos:</p>
<blockquote><p>
< ?php<br />
phpinfo();<br />
?>
</p></blockquote>
<p>Ahora deberiamos ingresar a la ip del servidor poniendo /info.php y debería aparecernos algo como esto:</p>
<p><a href="http://dysloke.com/blog/wp-content/uploads/2011/09/webservers10.png"><img src="http://dysloke.com/blog/wp-content/uploads/2011/09/webservers10-575x380.png" alt="" title="webservers10" width="575" height="380" class="aligncenter size-medium wp-image-943" /></a></p>
<p>Listo, ya está funcionando .. sigamos con cherokee que es más lindo! <strong>(aptitude purge lighttpd)</strong></p>
<p>Comenzamos por instalarlo con el querido amigo aptitude:</p>
<blockquote><p>aptitude install cherokee</p></blockquote>
<p>Y ya deberia estar funcionando!</p>
<p>Ahora para poder ingresar al panel de control de Cherokee vamos a escribir lo siguiente, (fijandonos que ip tenemos en la maquina anfitriona, en mi caso por ejemplo tengo la 192.168.1.101 entonces pondria)</p>
<blockquote><p>cherokee-admin -b 192.168.1.101</p></blockquote>
<p>Eso nos va a generar un usuario y contraseña con los que debemos ingresar al panel de control (NO PARAR CON CTRL+C)</p>
<p>El panel se ve parecido a esto, para agregar soporte a php5 vamos a seguir los mismos pasos que con lighttpd salvo lo de agregar lineas en lighttpd por obvias razones..</p>
<p>O sea que vamos a necesitar el php5-cgi y la linea en php.ini, sigamos estos pasos para activar php:</p>
<p><a href="http://dysloke.com/blog/wp-content/uploads/2011/09/webservers1.png"><img src="http://dysloke.com/blog/wp-content/uploads/2011/09/webservers1-575x320.png" alt="" title="webservers1" width="575" height="320" class="aligncenter size-medium wp-image-934" /></a></p>
<p><a href="http://dysloke.com/blog/wp-content/uploads/2011/09/webservers2.png"><img src="http://dysloke.com/blog/wp-content/uploads/2011/09/webservers2-575x300.png" alt="" title="webservers2" width="575" height="300" class="aligncenter size-medium wp-image-935" /></a></p>
<p><a href="http://dysloke.com/blog/wp-content/uploads/2011/09/webservers3.png"><img src="http://dysloke.com/blog/wp-content/uploads/2011/09/webservers3-575x354.png" alt="" title="webservers3" width="575" height="354" class="aligncenter size-medium wp-image-936" /></a></p>
<p><a href="http://dysloke.com/blog/wp-content/uploads/2011/09/webservers4.png"><img src="http://dysloke.com/blog/wp-content/uploads/2011/09/webservers4-575x348.png" alt="" title="webservers4" width="575" height="348" class="aligncenter size-medium wp-image-937" /></a></p>
<p><a href="http://dysloke.com/blog/wp-content/uploads/2011/09/webservers5.png"><img src="http://dysloke.com/blog/wp-content/uploads/2011/09/webservers5-575x329.png" alt="" title="webservers5" width="575" height="329" class="aligncenter size-medium wp-image-938" /></a></p>
<p><a href="http://dysloke.com/blog/wp-content/uploads/2011/09/webservers6.png"><img src="http://dysloke.com/blog/wp-content/uploads/2011/09/webservers6-575x288.png" alt="" title="webservers6" width="575" height="288" class="aligncenter size-medium wp-image-939" /></a></p>
<p><a href="http://dysloke.com/blog/wp-content/uploads/2011/09/webservers7.png"><img src="http://dysloke.com/blog/wp-content/uploads/2011/09/webservers7-575x271.png" alt="" title="webservers7" width="575" height="271" class="aligncenter size-medium wp-image-940" /></a></p>
<p><a href="http://dysloke.com/blog/wp-content/uploads/2011/09/webservers8.png"><img src="http://dysloke.com/blog/wp-content/uploads/2011/09/webservers8-575x272.png" alt="" title="webservers8" width="575" height="272" class="aligncenter size-medium wp-image-941" /></a></p>
<p><a href="http://dysloke.com/blog/wp-content/uploads/2011/09/webservers9.png"><img src="http://dysloke.com/blog/wp-content/uploads/2011/09/webservers9-575x274.png" alt="" title="webservers9" width="575" height="274" class="aligncenter size-medium wp-image-942" /></a></p>
<p><a href="http://dysloke.com/blog/wp-content/uploads/2011/09/webservers10.png"><img src="http://dysloke.com/blog/wp-content/uploads/2011/09/webservers10-575x380.png" alt="" title="webservers10" width="575" height="380" class="aligncenter size-medium wp-image-943" /></a></p>
<p>Listo .. pase el que sigue!</p>
<p><strong>Nginx</strong></p>
<p>Primero, usamos el dificilisimo aptitude:</p>
<blockquote><p>aptitude install nginx</p></blockquote>
<p>Ya deberíamos poder ingresar al sitio..</p>
<p>Ahora terminamos de instalar todos los paquetes para php5 ..</p>
<blockquote><p>aptitude install php5-cgi php5-fpm php5-dev php5-curl php5-cli php5-imagick php5-sqlite php-pear</p></blockquote>
<p>Ahora vamos a darle soporte con FastCGI, lo que hacemos es abrir el archivo defaults situado en /etc/nginx/sites-available</p>
<blockquote><p>nano /etc/nginx/sites-available/default</p></blockquote>
<p>Agregamos esto (antes podriamos hacer un echo > para borrar todo)</p>
<blockquote><p>
# You may add here your<br />
# server {<br />
#    &#8230;<br />
# }<br />
# statements for each of your virtual hosts</p>
<p>server {</p>
<p> listen   80; ## listen for ipv4<br />
 listen   [::]:80 default ipv6only=on; ## listen for ipv6</p>
<p> server_name  localhost;</p>
<p> access_log  /var/log/nginx/localhost.access.log;</p>
<p> location / {<br />
 root   /var/www;<br />
 index  index.php index.html index.htm;<br />
 }</p>
<p> location /doc {<br />
 root   /usr/share;<br />
 autoindex on;<br />
 allow 127.0.0.1;<br />
 deny all;<br />
 }</p>
<p> location /images {<br />
 root   /usr/share;<br />
 autoindex on;<br />
 }</p>
<p> #error_page  404  /404.html;</p>
<p> # redirect server error pages to the static page /50x.html<br />
 #<br />
 #error_page   500 502 503 504  /50x.html;<br />
 location = /50x.html {<br />
 root   /var/www;<br />
 }</p>
<p> # proxy the PHP scripts to Apache listening on 127.0.0.1:80<br />
 #<br />
 #location ~ \.php$ {<br />
 #proxy_pass   http://127.0.0.1;<br />
 #}</p>
<p> # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000<br />
 #<br />
 location ~ \.php$ {<br />
 fastcgi_pass   127.0.0.1:9000;<br />
 fastcgi_index  index.php;<br />
 fastcgi_param  SCRIPT_FILENAME  /var/www$fastcgi_script_name;<br />
 include fastcgi_params;<br />
 }</p>
<p> # deny access to .htaccess files, if Apache&#8217;s document root<br />
 # concurs with nginx&#8217;s one<br />
 #<br />
 location ~ /\.ht {<br />
 deny  all;<br />
 }<br />
}
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://dysloke.com/blog/?feed=rss2&#038;p=932</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Servidor NFS bajo Debian</title>
		<link>http://dysloke.com/blog/?p=927</link>
		<comments>http://dysloke.com/blog/?p=927#comments</comments>
		<pubDate>Thu, 18 Aug 2011 14:16:02 +0000</pubDate>
		<dc:creator>dysloke</dc:creator>
				<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://dysloke.com/blog/?p=927</guid>
		<description><![CDATA[¿Qué es NFS? El Network File System , o NFS, es un protocolo de nivel de aplicación, según el Modelo OSI. Es utilizado para sistemas de archivos distribuido en un entorno de red de computadoras de área local. Posibilita que distintos sistemas conectados a una misma red accedan a ficheros remotos como si se tratara [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://dysloke.com/blog/wp-content/uploads/2010/09/share1.jpg"><img src="http://dysloke.com/blog/wp-content/uploads/2010/09/share1-575x178.jpg" alt="" title="share" width="570" height="128" class="aligncenter size-medium wp-image-593" /></a></p>
<p style="text-align: center;">¿Qué es <strong>NFS</strong>?</p>
<p>El <strong>Network File System</strong> , o <strong>NFS</strong>, es un protocolo de nivel de aplicación, según el Modelo OSI. Es utilizado para sistemas de archivos distribuido  en un entorno de red de computadoras de área local. Posibilita que distintos sistemas conectados a una misma red accedan a ficheros remotos como si se tratara de locales. Originalmente fue desarrollado en 1984 por Sun Microsystems, con el objetivo de que sea independiente de la máquina, el sistema operativo y el protocolo  de transporte, esto fue posible gracias a que está implementado sobre los protocolos XDR (presentación) y ONC RPC (sesión) . El protocolo NFS está incluido por defecto en los Sistemas Operativos UNIX y la mayoría de distribuciones Linux.</p>
<p><strong>Características de NFS</strong></p>
<p>* El sistema NFS está dividido al menos en dos partes principales: un servidor  y uno o más clientes. Los clientes acceden de forma remota a los datos que se encuentran almacenados en el servidor.</p>
<p>* Las estaciones de trabajo locales utilizan menos espacio de disco debido a que los datos se encuentran centralizados en un único lugar pero pueden ser accedidos y modificados por varios usuarios, de tal forma que no es necesario replicar la información.</p>
<p>* Los usuarios no necesitan disponer de un directorio “home” en cada una de las máquinas de la organización. Los directorios “home” pueden crearse en el servidor de NFS para posteriormente poder acceder a ellos desde cualquier máquina a través de la infraestructura de red.</p>
<p>* También se pueden compartir a través de la red dispositivos de almacenamiento como disqueteras, CD-ROM y unidades ZIP. Esto puede reducir la inversión en dichos dispositivos y mejorar el aprovechamiento del hardware existente en la organización.</p>
<p>Todas las operaciones sobre ficheros son síncronas. Esto significa que la operación sólo retorna cuando el servidor ha completado todo el trabajo asociado para esa operación. En caso de una solicitud de escritura, el servidor escribirá físicamente los datos en el disco, y si es necesario, actualizará la estructura de directorios, antes de devolver una respuesta al cliente. Esto garantiza la integridad de los ficheros.</p>
<p>Vamos a ver cómo funciona, empezamos por descargar los archivos para montar nuestro servidor NFS.</p>
<blockquote><p>
   apt-get install portmap</p>
<p>    apt-get  install nfs-kernel-server</p>
<p>     apt-get install nfs-common
</p></blockquote>
<p>La configuración de <strong>NFS</strong> consta de 3 archivos, <strong>/etc/exports, /etc/hosts.deny y /etc/hosts.allow.</strong></p>
<p>En /etc/exports irán los directorios que vamos a compartir, la estructura es bastante simple.</p>
<p><strong>CARPETA-A-COMPARTIR    &#8211;     MODO EN QUE SE COMPARTE      &#8211;     CLIENTE/S QUE VA A TENER ACCESO</strong></p>
<p>Ejemplo:</p>
<blockquote><p>
// Ejemplo de archivo /etc/exports de configuración del servidor NFS:  </p>
<p>    # Compartir la carpeta home del servidor<br />
    # en modo lectura y escritura y accesible desde la red 10.0.0.1/24<br />
    /home 10.0.0.1/255.255.255.0(rw)</p>
<p>    # Compartir carpeta tmp a todos como &#8216;solo-lectura&#8217;<br />
    /tmp *(ro)</p>
<p>    # Compartir carpeta /var/log a un PC como &#8216;solo-lectura&#8217;<br />
    /var/log 10.0.0.5(ro)</p>
</blockquote>
<p>Los archivos /etc/hosts.allow y /etc/hosts.deny tienen la siguiente estructura:</p>
<p><strong>SERVICIO: HOST/S</strong></p>
<p>El servicio será justamente al que tendrá acceso el cliente, en este caso <strong>portmap y rpc.nfsd</strong></p>
<p>En el caso de <strong>hosts.deny</strong> lo aconsejable es dejar el <strong>portmap:ALL</strong> puesto que sin este servicio será imposible acceder a los archivos compartidos.</p>
<p>Una vez que seteamos la configuración, tendremos que reiniciar el servicio de NFS:</p>
<blockquote><p>
/etc/init.d/nfs-kernel-server restart
</p></blockquote>
<p>Iniciamos portmap</p>
<blockquote><p>/etc/init.d/portmap start</p></blockquote>
<p>Listo, ya tenemos configurada la parte del <strong>Servidor NFS</strong>, ahora nos toca configurar nuestro cliente para acceder a los archivos compartidos:</p>
<p>Instalamos nfs-common en la maquina cliente:</p>
<blockquote><p>apt-get install nfs-common</p></blockquote>
<p>Creamos una carpeta en /mnt o donde tengamos ganas para luego montarla:</p>
<blockquote><p>mkdir /mnt/compartido</p></blockquote>
<p>y montamos la carpeta compartida de nuestro <strong>Servidor NFS</strong>:</p>
<blockquote><p>
mount -t nfs IP.SERVER:/carpeta-compartida /mnt/compartido
</p></blockquote>
<p>Listo, ya tenemos montada la carpeta compartida, para que quede automáticamente montada al iniciar el sistema sólo debemos añadirla a nuestro <strong>fstab</strong></p>
<blockquote><p>nano /etc/fstab</p></blockquote>
<p>y añadimos al final:</p>
<blockquote><p>ip-del-servidor:/CARPETA-COMPARTIDA /mnt/compartido nfs</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://dysloke.com/blog/?feed=rss2&#038;p=927</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Samba y Cups</title>
		<link>http://dysloke.com/blog/?p=874</link>
		<comments>http://dysloke.com/blog/?p=874#comments</comments>
		<pubDate>Mon, 15 Aug 2011 23:52:52 +0000</pubDate>
		<dc:creator>dysloke</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[samba]]></category>
		<category><![CDATA[smb]]></category>

		<guid isPermaLink="false">http://dysloke.com/blog/?p=874</guid>
		<description><![CDATA[Samba es una implementación libre del protocolo de archivos compartidos de Microsoft Windows (antiguamente llamado SMB, renombrado a CIFS) para sistemas de tipo UNIX. De esta forma, es posible que máquinas con GNU/Linux o Mac actúen como clientes en redes de Windows. Samba también permite validar usuarios haciendo de Controlador Principal de Dominio, como miembro [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Samba</strong> es una implementación libre del protocolo de archivos compartidos de Microsoft Windows (antiguamente llamado <a href="http://es.wikipedia.org/wiki/Server_Message_Block">SMB</a>, renombrado a <strong>CIFS</strong>) para sistemas de tipo UNIX. De esta forma, es posible que máquinas con GNU/Linux o Mac actúen como clientes en redes de Windows. <strong>Samba</strong> también permite validar usuarios haciendo de <a href="http://es.wikipedia.org/wiki/Controlador_de_dominio">Controlador Principal de Dominio</a>, como miembro de dominio e incluso como un dominio <a href="http://es.wikipedia.org/wiki/Active_Directory">Active Directory</a> para redes basadas en Windows; aparte de ser capaz de servir colas de impresión, directorios compartidos y autenticar con su propio archivo de usuarios.</p>
<p>Instalando Samba ..</p>
<blockquote><p>aptitude install samba samba-common samba-client smbfs</p></blockquote>
<p>Lo primero que vamos a hacer es agregar un usuario, de una manera distinta, puesto que la mayoría de las veces que un usuario se conecte vía Samba no va a necesitar acceso a la consola, por lo tanto crearemos el usuario de la siguiente manera:</p>
<p>Planteemos el escenario, hagamos de cuenta que vamos a crear al usuario &#8220;<strong>patito</strong>&#8221; y su ip es la <strong>10.0.0.7</strong></p>
<blockquote><p>useradd -s /bin/nologin patito</p></blockquote>
<p>Lo que sigue es asignarle una clave al usuario con smbpasswd:</p>
<blockquote><p>smbpasswd -a patito</p></blockquote>
<p>Listo, hasta acá ya creamos un usuario en el sistema y su respectiva clave para Samba.</p>
<p><strong>Pasemos a la configuración de Samba:</strong></p>
<p>El archivo de configuración se encuentra en <strong>/etc/samba/smb.conf</strong></p>
<p>Editamos la configuración y vamos viendo un par de parámetros dentro de ella..</p>
<blockquote><p>nano /etc/samba/smb.conf</p></blockquote>
<p><code><strong>workgroup = instel</strong>: Define el grupo de trabajo donde trabajará Samba.<br />
<strong>server string = Servidor Samba Instel</strong>: Mensaje de Bienvenida de Samba<br />
<strong>netbios name = debian</strong>: Se indica el nombre del equipo (en mi caso, debian)<br />
<strong>interfaces = lo eth0 192.168.1.1/24 </strong>: Las interfaces que tendrán permiso, cualquiera no incluída será ignorada.<br />
<strong>log file = /var/log/samba/log.%m </strong>: Lugar donde se guardará el log<br />
<strong>max log size = 50 </strong>: Tamaño del log</code></p>
<p>Todo muy lindo, y cómo compartimos algo acá ?</p>
<p>Muy fácil, creamos un &#8220;entorno&#8221; dentro de la misma configuración, un ejemplo acá abajo y luego la explicación de cada parámetro:</p>
<blockquote><p>[fotitos] </p>
<p>       comment = &#8220;esto esta compartido..&#8221;<br />
       path = /home/patito/fotos<br />
       public = yes<br />
       writable = yes<br />
       printable = no<br />
       write list = prueba</p></blockquote>
<p>Aquí debajo tienen algunas de las opciones que pueden agregarse y su descripción:</p>
<p><a href="http://dysloke.com/blog/wp-content/uploads/2011/08/1.png"><img src="http://dysloke.com/blog/wp-content/uploads/2011/08/1-575x162.png" alt="" title="1" width="575" height="162" class="aligncenter size-medium wp-image-881" /></a></p>
<p>Entonces, ya sabiendo qué parámetros podríamos utilizar, debajo les dejo un ejemplo de una Empresa que comparte un recurso llamado &#8220;Facturación&#8221; a la que por obvias razones sólamente deberían tener acceso ciertos usuarios y más aún a la hora de escribir datos.</p>
<blockquote><p><strong>[FacturasDiarias]<br />
        comment = Facturas<br />
        path = /var/facturas<br />
        guest ok = no<br />
        write list = jefe<br />
        directory mask = 1770<br />
        create mask = 0660<br />
        browseable = yes<br />
        admin users = jefe contador<br />
        valid users = jefe contador<br />
        writable = yes<br />
        public = yes </strong></p></blockquote>
<p><strong>Iniciando, Reiniciando o Deteniendo Samba</strong></p>
<p><strong>/etc/init.d/samba start</strong>: Inicia el Servicio<br />
<strong>/etc/init.d/samba stop</strong>: Detiene el Servicio<br />
<strong>/etc/init.d/samba reload</strong>: Carga cualquier actualización a la configuración<br />
<strong>/etc/init.d/samba restart</strong>: Reinicia el Servicio<br />
<strong>/etc/init.d/samba status</strong>: Muestra el estado del Servicio</p>
<p>Bueno, suponiendo que agregamos la carpeta <strong>/home/patito/fotos</strong> como recurso compartido, vamos a conectarnos desde fuera de esa máquina con el siguiente comando:</p>
<blockquote><p>smbclient -U patito -L 10.0.0.7</p></blockquote>
<blockquote><p>-U hace referencia al usuario en Samba, en este caso: patito</p></blockquote>
<p>Eso nos devolverá información sobre la ip introducida (o el nombre de la máquina) con sus respectivos recursos compartidos.<br />
En este caso, nuestro recurso compartido se llama &#8220;<strong>fotitos</strong>&#8221; y está ubicado en<strong> /home/patito/fotos</strong></p>
<p>Para acceder al recurso compartido podemos hacerlo de la siguiente manera:</p>
<blockquote><p> smbclient //10.0.0.7/fotitos -U patito </p></blockquote>
<p>Eso nos pedirá la clave de &#8220;patito&#8221; y luego nos dará acceso al recurso en la misma consola.</p>
<p>Si queremos montar el recurso en nuestro Sistema utilizando GNU/Linux tenemos dos formas:</p>
<p><strong>PRIMERA OPCION:</strong></p>
<blockquote><p>mkdir /mnt/fotitos</p></blockquote>
<p>Creamos un directorio donde montar el recurso compartido..</p>
<blockquote><p>smbmount //10.0.0.7/fotitos /mnt/fotitos</p></blockquote>
<p>Montamos el recurso ..</p>
<p><strong>SEGUNDA OPCION</strong></p>
<blockquote><p>mount -t smbfs -o username=patito,password=clave-de-patito //10.0.0.7/fotitos /mnt/fotitos</p></blockquote>
<blockquote><p>ATENCION: ESTOS DOS METODOS SON TANTO PARA CUANDO UNA MAQUINA GNU/LINUX COMPARTE UN RECURSO; COMO PARA CUANDO UNA MAQUINA CON MICROSOFT WINDOWS LO HACE.</p></blockquote>
<p>Existe una <strong>tercera</strong> opción, que sería la gráfica .. ingresando simplemente a &#8220;<strong>Lugares</strong>&#8221; > &#8220;<strong>Red</strong>&#8221; (en Gnome)</p>
<p>Para ingresar a un recurso compartido en GNU/Linux desde Windows es aún más fácil, desde &#8220;Mis Sitios de Red&#8221; (siempre que tengamos el mismo nombre de grupo de trabajo) podemos ingresar y nos pedirá usuario y contraseña dependiendo de cómo hayamos configurado el <strong>smb.conf</strong></p>
<p>Hasta acá vimos cómo configurar de manera &#8220;manual&#8221; nuestro <strong>Samba</strong>, ahora vamos a ver cómo hacerlo de manera asquerosamente fácil, con entorno web utilizando <a href="http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/SWAT.html">Swat</a> (no, no son esos polis yankees)</p>
<p>Vamos a instalarlo con el difícil y complejo comando, aptitude:</p>
<blockquote><p>aptitude install swat</p></blockquote>
<p>Listo, ya está funcionando .. ahora entramos a la ip del servidor Samba con el puerto 901, ej:</p>
<p><strong>http://10.0.0.7:901</strong></p>
<p>Nos logueamos y luego podemos configurar de manera gráfica nuestros recursos a compartir, editarlos, compartir impresoras, manipular el servicio, etc.</p>
<p><a href="http://dysloke.com/blog/wp-content/uploads/2011/08/2.png"><img src="http://dysloke.com/blog/wp-content/uploads/2011/08/2-575x328.png" alt="" title="2" width="575" height="328" class="aligncenter size-medium wp-image-890" /></a></p>
<p><a href="http://dysloke.com/blog/wp-content/uploads/2011/08/3.png"><img src="http://dysloke.com/blog/wp-content/uploads/2011/08/3-575x500.png" alt="" title="3" width="575" height="500" class="aligncenter size-medium wp-image-891" /></a></p>
<p>Bueno.. ahora vamos a hablar un rato de <a href="http://es.wikipedia.org/wiki/Common_Unix_Printing_System">CUPS</a>, un<br />
Podemos decir a grandes rasgos que CUPS es un Sistema de Impresión que trabaja como Servidor de Impresión.</p>
<p><strong>CUPS</strong> es libre con licencia <strong>GNU</strong>, como requisitos mínimos pide un procesador de al menos 1 Ghz y 256 de ram, (recomendando 512 para un mejor funcionamiento). </p>
<p>Para instalarlo vamos a recurrir a nuestro querido/odiado aptitude:</p>
<blockquote><p>aptitude install cups</p></blockquote>
<p>Una vez instalado vamos a instalar nuestra impresora, y cuando ésta esté funcionando correctamente haremos lo siguiente:</p>
<p>a) Compartiremos esa impresora para que otros Clientes (GNU/Linux o Windows) puedan utilizarla<br />
b) Usaremos una impresora funcionando en Windows (seremos clientes)</p>
<p>Todos pensarán que es difícil, pero no .. es tan fácil que da verguenza tener que contarlo.</p>
<p>Para el primer paso lo único que haremos es ingresar a nuestra ip con el puerto 631:</p>
<blockquote><p>http://localhost:631</p></blockquote>
<p>Nos logueamos como root y dejamos tildadas las siguientes opciones:</p>
<p><a href="http://dysloke.com/blog/wp-content/uploads/2011/08/41.png"><img src="http://dysloke.com/blog/wp-content/uploads/2011/08/41-575x346.png" alt="" title="4" width="575" height="346" class="aligncenter size-medium wp-image-896" /></a></p>
<p>Vamos a ir a <strong>&#8220;Añadir Impresora&#8221;</strong> y elegiremos la impresora local (la que está correctamente instalada y funcionando)</p>
<p>En mi caso no tengo ninguna impresora conectada, pero esto no me va a impedir que pueda añadir una impresora :D</p>
<p>Me toma como <strong>&#8220;SCSI Printer&#8221;</strong>, voy a seleccionar esa .. y hago click en <strong>&#8220;Siguiente&#8221;</strong></p>
<p>En la siguiente ventana haremos algo parecido a esto:</p>
<p><a href="http://dysloke.com/blog/wp-content/uploads/2011/08/impre11.png"><img src="http://dysloke.com/blog/wp-content/uploads/2011/08/impre11-575x328.png" alt="" title="impre1" width="575" height="328" class="aligncenter size-medium wp-image-916" /></a></p>
<p>Le damos a Siguiente y yo completé con estos datos:</p>
<p><a href="http://dysloke.com/blog/wp-content/uploads/2011/08/impre2.png"><img src="http://dysloke.com/blog/wp-content/uploads/2011/08/impre2-575x315.png" alt="" title="impre2" width="575" height="315" class="aligncenter size-medium wp-image-917" /></a></p>
<p>Le di click a Siguiente y ahora tengo que mentirle diciéndole que tengo <strong>X MARCA de impresora.. </strong></p>
<p><a href="http://dysloke.com/blog/wp-content/uploads/2011/08/impre3.png"><img src="http://dysloke.com/blog/wp-content/uploads/2011/08/impre3-575x365.png" alt="" title="impre3" width="575" height="365" class="aligncenter size-medium wp-image-918" /></a></p>
<p>Seguimos (Siguiente) con nuestra mentirita .. ahora a seleccionar un modelo.. (damos click a Añadir Impresora)</p>
<p><a href="http://dysloke.com/blog/wp-content/uploads/2011/08/impre4.png"><img src="http://dysloke.com/blog/wp-content/uploads/2011/08/impre4-575x363.png" alt="" title="impre4" width="575" height="363" class="aligncenter size-medium wp-image-919" /></a></p>
<p>Un último paso y listo ..</p>
<p><a href="http://dysloke.com/blog/wp-content/uploads/2011/08/9.png"><img src="http://dysloke.com/blog/wp-content/uploads/2011/08/9-575x304.png" alt="" title="9" width="575" height="304" class="aligncenter size-medium wp-image-902" /></a></p>
<p>Tiene que habernos quedado algo así:</p>
<p><a href="http://dysloke.com/blog/wp-content/uploads/2011/08/impre5.png"><img src="http://dysloke.com/blog/wp-content/uploads/2011/08/impre5-575x260.png" alt="" title="impre5" width="575" height="260" class="aligncenter size-medium wp-image-922" /></a></p>
<p>Ahora supongamos que queremos agregar la impresora estando en Windows XP seguimos estos pasos: </p>
<p><a href="http://dysloke.com/blog/wp-content/uploads/2011/08/12.png"><img src="http://dysloke.com/blog/wp-content/uploads/2011/08/12-575x385.png" alt="" title="12" width="575" height="385" class="aligncenter size-medium wp-image-905" /></a></p>
<p><a href="http://dysloke.com/blog/wp-content/uploads/2011/08/13.png"><img src="http://dysloke.com/blog/wp-content/uploads/2011/08/13-575x380.png" alt="" title="13" width="575" height="380" class="aligncenter size-medium wp-image-906" /></a></p>
<p><a href="http://dysloke.com/blog/wp-content/uploads/2011/08/14.png"><img src="http://dysloke.com/blog/wp-content/uploads/2011/08/14-575x379.png" alt="" title="14" width="575" height="379" class="aligncenter size-medium wp-image-907" /></a></p>
<p><a href="http://dysloke.com/blog/wp-content/uploads/2011/08/15.png"><img src="http://dysloke.com/blog/wp-content/uploads/2011/08/15-575x459.png" alt="" title="15" width="575" height="459" class="aligncenter size-medium wp-image-908" /></a></p>
<p><a href="http://dysloke.com/blog/wp-content/uploads/2011/08/16.png"><img src="http://dysloke.com/blog/wp-content/uploads/2011/08/16-575x383.png" alt="" title="16" width="575" height="383" class="aligncenter size-medium wp-image-909" /></a></p>
<p><a href="http://dysloke.com/blog/wp-content/uploads/2011/08/17.png"><img src="http://dysloke.com/blog/wp-content/uploads/2011/08/17-575x387.png" alt="" title="17" width="575" height="387" class="aligncenter size-medium wp-image-910" /></a></p>
<p>Hasta acá llegamos.<br />
Para quien le interese dejo material para leer muy interesante ..</p>
<p><a href="http://dysloke.com/linux/modulo6/usando-samba.pdf">Libro de Samba (viejito pero muy muy muy bueno)</a><br />
<a href="http://lalegiondeyoda.wordpress.com/2009/07/22/configuracion-samba-con-validacion-en-active-directory-y-quota-de-disco/">Implementación de Samba y Active Directory</a><br />
<a href="http://www.ajduenas.com/wp-content/uploads/2007/07/proyecto-integrado-antonio-jesus-duenas.pdf">Autentificación en Samba con LDAP</a></p>
]]></content:encoded>
			<wfw:commentRss>http://dysloke.com/blog/?feed=rss2&#038;p=874</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Virtualización en GNU/Linux</title>
		<link>http://dysloke.com/blog/?p=859</link>
		<comments>http://dysloke.com/blog/?p=859#comments</comments>
		<pubDate>Tue, 09 Aug 2011 12:05:00 +0000</pubDate>
		<dc:creator>dysloke</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[emulacion]]></category>
		<category><![CDATA[emular]]></category>
		<category><![CDATA[kvm]]></category>
		<category><![CDATA[openssh]]></category>
		<category><![CDATA[qemu]]></category>
		<category><![CDATA[squeeze]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[ssh-askpass]]></category>
		<category><![CDATA[virtualbox]]></category>
		<category><![CDATA[virtualización]]></category>
		<category><![CDATA[virtualizar]]></category>

		<guid isPermaLink="false">http://dysloke.com/blog/?p=859</guid>
		<description><![CDATA[Aunque a primera vista suena muy similar, virtualización no es lo mismo que emulación. La diferencia es que, mientras la virtualización “encapsula” una máquina virtual y le da acceso casi directo al hardware del equipo, la emulación crea un entorno de hardware completo, que puede no tener ninguna relación con el hardware donde se está [...]]]></description>
			<content:encoded><![CDATA[<p>Aunque a primera vista suena muy similar, <strong><a href="http://es.wikipedia.org/wiki/Virtualizaci%C3%B3n">virtualización</a></strong> no es lo mismo que <strong><a href="http://es.wikipedia.org/wiki/Emulador">emulación</a></strong>. La diferencia es que, mientras la virtualización “encapsula” una máquina virtual y le da acceso casi directo al hardware del equipo, la emulación crea un entorno de hardware completo, que puede no tener ninguna relación con el hardware donde se está ejecutando. ¿Más simple? La virtualización usa la misma arquitectura, y lo que hace es conectar la instancia virtual al hardware del equipo. El emulador parte de cero y crea todo un ambiente nuevo, en el que hasta el procesador puede ser “de mentira”, e incluso de una arquitectura distinta al del hardware original.</p>
<p>O sea, un PC x86 con GNU/Linux puede virtualizar Windows, pero un Mac PowerPC no podría hacerlo. Eso tendría que ser emulado, lo que también significa lentitud. La virtualización es mucho más rápida ya que es básicamente una abstracción del hardware. </p>
<p><strong>Qemu &#8211; KVM</strong></p>
<p><strong><a href="http://es.wikipedia.org/wiki/Kernel-based_Virtual_Machine">KVM</a></strong> significa <strong>K</strong>ernel <strong>V</strong>irtual <strong>M</strong>achine y, como su nombre lo dice, es un “virtualizador” que fue incluído en el propio kernel de Linux desde su versión <strong>2.6.20</strong>.<br />
Es decir que desde esa versión de kernel se pueden abrir instancias de otros S.O nativamente en GNU/Linux sin necesidad de utilizar un Software Externo.</p>
<p>fuente: <a href="http://bootlog.org">bootlog</a></p>
<p><strong>¿Cómo saber si puedo virtualizar?</strong></p>
<p>Simplemente escribimos esto en consola:</p>
<p><code>egrep -c '(vmx|svm)' /proc/cpuinfo</code></p>
<p>Si el resultado de la consulta es <strong>0</strong>, no podemos virtualizar.<br />
Si el resultado de la consola es <strong>1</strong> o más, podemos virtualizar. (a veces es necesario habilitar la opción en el BIOS)</p>
<p>Suponiendo que nos haya arrojado el valor 1, procedemos con la instalación de <strong>kvm y qemu</strong></p>
<p>En consola y como root vamos a instalar los paquetes necesarios ..</p>
<blockquote><p>aptitude install kvm qemu-kvm libvirt-bin virtinst virt-manager openssh-server</p></blockquote>
<p>Luego, vamos a agregar al usuario &#8220;común&#8221; del sistema, a los grupos <strong>libvirt</strong> y <strong>kvm</strong></p>
<blockquote><p>adduser tu-usuario libvirt &#038;&#038; adduser tu-usuario kvm</p></blockquote>
<p>Ahora vamos a chequear si todo salió bien ..</p>
<blockquote><p>virsh -c qemu:///system list</p></blockquote>
<p>Si el resultado es parecido a esto:<br />
<code><br />
<strong>root@dysloke:~# virsh -c qemu:///system list<br />
 Id Name           State</strong></code></p>
<p>Entonces podemos seguir, de lo contrario vamos a volver con el proceso de instalación para ver si no salteamos ningún paquete..</p>
<p>Una vez hecho esto, vamos a reiniciar <strong><a href="http://www.reloco.com.ar/linux/X.html">las X</a></strong>, o si les resulta más cómodo .. reiniciamos la máquina :)</p>
<p>Listo, ya reiniciamos .. ahora vamos a &#8220;puentear&#8221; la interfaz nuestra con una nueva, llamada <strong>&#8220;br0&#8243;</strong></p>
<p>Primero instalamos bridge-utils y luego editamos nuestras interfaces:</p>
<blockquote><p>aptitude install bridge-utils</p></blockquote>
<blockquote><p>nano /etc/network/interfaces</p></blockquote>
<p>Ejemplo de cómo dejé yo mi archivo <strong>&#8220;interfaces&#8221;</strong></p>
<p><code><strong># The primary network interface<br />
allow-hotplug eth0<br />
iface eth0 inet manual<br />
auto br0<br />
iface br0 inet static<br />
        address 192.168.1.10<br />
        network 192.168.1.0<br />
        netmask 255.255.255.0<br />
        broadcast 192.168.1.255<br />
        gateway 192.168.1.1<br />
        bridge_ports eth0<br />
        bridge_fd 9<br />
        bridge_hello 2<br />
        bridge_maxage 12<br />
        bridge_stp off<br />
</strong></code></p>
<p>Ovbiamente cada uno modificará según corresponda en su red, si el <strong>gateway</strong> es el 10.0.0.2 tendrán que cambiar los datos.</p>
<p>Una vez hecho los cambios, procedemos a reiniciar nuestra red:</p>
<blockquote><p>/etc/init.d/networking restart</p></blockquote>
<p>Ahora escribimos <strong>ifconfig</strong> y debería largarnos algo como esto:</p>
<p><code><strong><br />
root@dysloke:/home/dke# ifconfig<br />
br0       Link encap:Ethernet  HWaddr 6c:f0:49:a5:90:01<br />
          inet addr:192.168.1.10  Bcast:192.168.1.255  Mask:255.255.255.0<br />
          inet6 addr: fe80::6ef0:49ff:fea5:9001/64 Scope:Link<br />
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1<br />
          RX packets:19 errors:0 dropped:0 overruns:0 frame:0<br />
          TX packets:42 errors:0 dropped:0 overruns:0 carrier:0<br />
          collisions:0 txqueuelen:0<br />
          RX bytes:2931 (2.8 KiB)  TX bytes:7204 (7.0 KiB)</p>
<p>eth0      Link encap:Ethernet  HWaddr 6c:f0:49:a5:90:01<br />
          inet6 addr: fe80::6ef0:49ff:fea5:9001/64 Scope:Link<br />
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1<br />
          RX packets:913094 errors:0 dropped:0 overruns:0 frame:0<br />
          TX packets:782281 errors:0 dropped:0 overruns:0 carrier:1<br />
          collisions:0 txqueuelen:1000<br />
          RX bytes:1072795056 (1023.0 MiB)  TX bytes:69528171 (66.3 MiB)<br />
          Interrupt:27<br />
</strong></code></p>
<p>Planteemos el escenario .. supongamos que queremos virtualizar un Windows XP, darle 5 gigas de espacio al disco, 512 de ram, 2 cpus y que la imagen del disco tenga como nombre &#8220;dke&#8221;, escribiremos lo siguiente:</p>
<p><code>virt-install --connect qemu:///system -n dke -r 512 --vcpus=2 --disk path=/var/lib/libvirt/images/dke.img,size=5 -c /lugar/donde/esta/el/iso/del/xp.iso --vnc --noautoconsole --os-type windows --os-variant winxp --accelerate --network=bridge:br0 --hvm</code></p>
<p>Si todo salió bien, debería devolvernos algo parecido a esto:</p>
<p><code><strong><br />
root@dysloke:/home/dke# virt-install --connect qemu:///system -n dke -r 512 --vcpus=2 --disk path=/var/lib/libvirt/images/dke.img,size=5 -c /home/dke/xp.iso --vnc --noautoconsole --os-type windows --os-variant winxp --accelerate --network=bridge:br0 --hvm</p>
<p>Empezando la instalación...<br />
Asignando 'dke.img'                                                                                                  | 5.0 GB     00:00<br />
Creando dominio...                                                                                                   |    0 B     00:00<br />
La instalación del dominio continúa en progreso. Esperando  para que se complete la instalación.<br />
</strong></code></p>
<p>Esperamos unos minutos a que termine de generar la imagen, nos daremos cuenta porque nos &#8220;devolverá&#8221; el control a la consola.</p>
<p>Luego de esto (si es que reiniciamos anteriormente cuando agregamos nuestro usuario a los grupos libvirt y kvm), vamos a irnos hasta <strong>&#8220;Aplicaciones > Herramientas del Sistema > Administrador de Máquina Virtual&#8221;</strong></p>
<p>O en su defecto si tienen en inglés: <strong>Applications > System Tools > Virtual Machine Manager</strong></p>
<p>Si nos salta un error al toque, es porque no reiniciamos :)<br />
Nos debería aparecer una pantallita linda como esta:</p>
<p><a href="http://dysloke.com/blog/wp-content/uploads/2011/08/virtual1.png"><img src="http://dysloke.com/blog/wp-content/uploads/2011/08/virtual1-476x500.png" alt="" title="virtual1" width="476" height="500" class="aligncenter size-medium wp-image-866" /></a></p>
<p>Luego de esto ya podríamos empezar a instalar el SO que vamos a Virtualizar, haciendo doble click sobre el nombre de la máquina virtual creada debería abrirnos una ventana con la instalación del SO:</p>
<p><a href="http://dysloke.com/blog/wp-content/uploads/2011/08/virtual2.png"><img src="http://dysloke.com/blog/wp-content/uploads/2011/08/virtual2-575x442.png" alt="" title="virtual2" width="575" height="442" class="aligncenter size-medium wp-image-868" /></a></p>
<p>Hasta acá podrían instalar el S.O tranquilamente .. en un rato sigo con el tuto agregando cómo instalar el SO si estamos fuera de nuestra máquina, usando un túnel SSH.</p>
]]></content:encoded>
			<wfw:commentRss>http://dysloke.com/blog/?feed=rss2&#038;p=859</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Instalando Broadcom 43x en Debian Squeeze</title>
		<link>http://dysloke.com/blog/?p=854</link>
		<comments>http://dysloke.com/blog/?p=854#comments</comments>
		<pubDate>Thu, 28 Jul 2011 01:33:02 +0000</pubDate>
		<dc:creator>dysloke</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[assistant]]></category>
		<category><![CDATA[broadcom-sta]]></category>
		<category><![CDATA[initrams]]></category>
		<category><![CDATA[module]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[wifi]]></category>
		<category><![CDATA[wireless]]></category>
		<category><![CDATA[wireless-tools]]></category>

		<guid isPermaLink="false">http://dysloke.com/blog/?p=854</guid>
		<description><![CDATA[Debian Squeeze no trae instalado el driver de las placas Broadcom 43xx, por lo tanto hay que instalarlo de forma manual. Para empezar vamos a asegurarnos de tener los repositorios correctos: deb http://ftp.uk.debian.org/debian squeeze main contrib deb-src http://ftp.uk.debian.org/debian squeeze main contrib deb http://ftp.uk.debian.org/debian squeeze main contrib non-free deb-src http://ftp.uk.debian.org/debian squeeze main contrib non-free Donde dice [...]]]></description>
			<content:encoded><![CDATA[<p>Debian Squeeze no trae instalado el driver de las placas <strong>Broadcom 43xx</strong>, por lo tanto hay que instalarlo de forma manual.</p>
<p>Para empezar vamos a asegurarnos de tener los <strong>repositorios</strong> correctos:</p>
<blockquote><p>
deb http://ftp.uk.debian.org/debian squeeze main contrib<br />
deb-src http://ftp.uk.debian.org/debian squeeze main contrib<br />
deb http://ftp.uk.debian.org/debian squeeze main contrib non-free<br />
deb-src http://ftp.uk.debian.org/debian squeeze main contrib non-free
</p></blockquote>
<p>Donde dice &#8220;<strong>uk</strong>&#8221; podemos cambiarle por &#8220;us&#8221;, &#8220;de&#8221; &#8220;br&#8221; &#8220;fr&#8221;, etc.</p>
<p>Luego de hacer un <strong>apt-get update</strong> vamos a disponernos a instalar los siguientes paquetes:</p>
<blockquote><p>aptitude install module-assistant wireless-tools</p></blockquote>
<p>Una vez instalado esto, vamos a usar <strong>module-assistant</strong> para instalar de forma automática el paquete <strong>broadcom-sta</strong></p>
<blockquote><p>m-a a-i broadcom-sta</p></blockquote>
<p>Ahora quedaría reconstruir nuestro <strong>&#8220;initial ramdisk&#8221;</strong> con el siguiente comando:</p>
<blockquote><p>update-initramfs -u -k $(uname -r) </p></blockquote>
<p>Ya casi estamos terminando, ahora removermos los módulos que no necesitamos:</p>
<blockquote><p>modprobe -r b44 b43 b43legacy ssb</p></blockquote>
<p>Finalmente cargamos el módulo <strong>wl</strong> (driver que vamos a utilizar)</p>
<blockquote><p>modprobe wl</p></blockquote>
<p>Ahora solo nos resta reiniciar y ya tendremos funcionando nuestra placa Broadcom B43xx</p>
<p>Otra solución es bajar <a href="http://www.mediafire.com/?m6c9ch2mc58wum6">este .deb</a> que utiliza el driver <strong>b43 openfwwf</strong>.</p>
<p>Y lo instalamos con<br />
<blockquote>dpkg -i b43*.deb</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://dysloke.com/blog/?feed=rss2&#038;p=854</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Securizando Asterisk ..</title>
		<link>http://dysloke.com/blog/?p=845</link>
		<comments>http://dysloke.com/blog/?p=845#comments</comments>
		<pubDate>Fri, 01 Jul 2011 00:56:14 +0000</pubDate>
		<dc:creator>dysloke</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[asterisk]]></category>
		<category><![CDATA[correo]]></category>
		<category><![CDATA[elastix]]></category>
		<category><![CDATA[iptables]]></category>
		<category><![CDATA[logs]]></category>
		<category><![CDATA[logtrigger]]></category>
		<category><![CDATA[logwatch]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[seguridad]]></category>

		<guid isPermaLink="false">http://dysloke.com/blog/?p=845</guid>
		<description><![CDATA[Hace unos días hablaba con un amigo que realmente sabe de Asterisk y le comentaba que quería implementar algo de seguridad extra en mi servidor, especialmente para los script-kiddies que se dedican a intentar loguearse via SSH con ataques de fuerza bruta. En mi caso, utilizo la última versión de Elastix, que incorpora Logwatch ya [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://dysloke.com/blog/wp-content/uploads/2011/07/secure.jpg"><img src="http://dysloke.com/blog/wp-content/uploads/2011/07/secure.jpg" alt="" title="secure" width="501" height="120" class="aligncenter size-full wp-image-849" /></a></p>
<p>Hace unos días hablaba con un amigo que realmente sabe de <strong>Asterisk</strong> y le comentaba que quería implementar algo de seguridad extra en mi servidor, especialmente para los <strong><a href="http://es.wikipedia.org/wiki/Script_Kiddie">script-kiddies</a></strong> que se dedican a intentar loguearse via <strong><a href="http://es.wikipedia.org/wiki/Secure_Shell">SSH</a></strong> con ataques de fuerza bruta.</p>
<p>En mi caso, utilizo la última versión de <strong><a href="http://www.elastix.org/ ">Elastix</a></strong>, que incorpora <strong><a href="http://sourceforge.net/projects/logwatch/files/">Logwatch</a></strong> ya configurado para que nos envíe un correo local sobre la actividad en nuestro servidor.</p>
<p>Para quien no sepa, <strong>Logwatch</strong> es un programa que se encarga de verificar los logs del sistema y darnos aviso ya sea mediante un correo local, o directamente a una cuenta de correo. (Siempre y cuando tengamos salida por <strong>SMTP</strong>)<br />
Se instala en Debian con <strong>aptitude install logwatch</strong>, y en mi caso en CentOS con <strong>yum install logwatch</strong></p>
<p>Siguiendo con la idea de securizar el servidor se me había ocurrido como primer medida instalar un <strong><a href="http://es.wikipedia.org/wiki/Honeypot">Honeypot</a></strong> para <strong>SSH</strong>  así los nenes se cansaban de probar y probar, mientras el tráfico verdadero se establecía en otro puerto.<br />
Como honeypot SSH utilicé <strong><a href="http://dysloke.com/blog/?p=836">Kippo</a></strong>.</p>
<p>Como segunda medida, en caso que &#8220;descubrieran&#8221; el verdadero puerto donde corría <strong>SSH</strong> necesitaba algo que no sólo logueara a los picarones atacantes, sino que también los bloqueara.<br />
<strong>Logwatch</strong> lo único que me hace es registrarme intentos fallidos de logueo en los distintos tipos de servicios instalados, debajo un ejemplo como para ilustrar cómo funciona:</p>
<blockquote><p>
################### Logwatch 7.3 (03/24/06) ####################<br />
       Processing Initiated: Thu Jun 30 10:54:15 2011<br />
       Date Range Processed: yesterday<br />
                             ( 2011-Jun-29 )<br />
                             Period is day.<br />
     Detail Level of Output: 0<br />
             Type of Output: unformatted<br />
          Logfiles for Host: xxx.com.ar<br />
 ##################################################################</p>
<p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; httpd Begin &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p> Requests with error response codes<br />
   401 Unauthorized<br />
      /admin/config.php: 2 Time(s)<br />
   404 Not Found<br />
      /modules/pbxadmin/js/script.legacy.js: 2 Time(s)</p>
<p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- httpd End &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; pam_unix Begin &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p> runuser-l:<br />
   Unknown Entries:<br />
      session closed for user cyrus: 1 Time(s)<br />
      session opened for user cyrus by (uid=0): 1 Time(s)</p>
<p> sshd:<br />
   Authentication Failures:<br />
      root (urban.atmos.pccu.edu.tw): 29 Time(s)<br />
      root (60.216.12.25): 27 Time(s)<br />
      root (server2.tanintechnology.net): 25 Time(s)<br />
      root (94.102.213.133): 4 Time(s)<br />
      unknown (server2.tanintechnology.net): 4 Time(s)<br />
      bin (server2.tanintechnology.net): 3 Time(s)<br />
      unknown (urban.atmos.pccu.edu.tw): 3 Time(s)<br />
   Invalid Users:<br />
      Unknown Account: 7 Time(s)</p>
<p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- pam_unix End &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; postfix Begin &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p> 28443 bytes transferred<br />
 4 messages sent<br />
 4 messages removed from queue</p>
<p> Database files are not up-to-date (probably rehash is needed): 1 File(s), 1 Time(s)</p>
<p> **Unmatched Entries**</p>
<p> 975C52B8AD7: to=<faxmaster @xxx.com.ar>, orig_to=</faxmaster><faxmaster>, relay=local, delay=0.34, delays=0.03/0/0/0.31, dsn=5.1.1, status=bounced (unknown user: &#8220;faxmaster&#8221;)<br />
 975C52B8AD7: sender non-delivery notification: ECB932B8AD8</p>
<p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- postfix End &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; Connections (secure-log) Begin &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p> New Users:<br />
   vnstat (101)</p>
<p> New Groups:<br />
   vnstat (102)</p>
<p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- Connections (secure-log) End &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; SSHD Begin &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p> Failed logins from:<br />
   60.216.12.25: 27 times<br />
   94.102.213.133: 4 times<br />
   140.137.32.110 (urban.atmos.pccu.edu.tw): 29 times<br />
   184.107.18.248 (server2.tanintechnology.net): 28 times</p>
<p> Illegal users from:<br />
   140.137.32.110 (urban.atmos.pccu.edu.tw): 3 times<br />
   184.107.18.248 (server2.tanintechnology.net): 4 times</p>
<p> Users logging in through sshd:<br />
   root:<br />
      192.168.1.100: 1 time</p>
<p> Received disconnect:<br />
   11: Bye Bye : 95 Time(s)</p>
<p> **Unmatched Entries**<br />
 pam_succeed_if(sshd:auth): error retrieving information about user cvs : 1 time(s)<br />
 pam_succeed_if(sshd:auth): error retrieving information about user jack : 1 time(s)<br />
 pam_succeed_if(sshd:auth): error retrieving information about user nagios : 3 time(s)<br />
 pam_succeed_if(sshd:auth): error retrieving information about user test : 1 time(s)<br />
 pam_succeed_if(sshd:auth): error retrieving information about user http : 1 time(s)</p>
<p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- SSHD End &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p> &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; vsftpd-messages Begin &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p> User FTP Logins:<br />
    (192.168.1.100): ****** &#8211; 2 Time(s)</p>
<p> Incoming FTP Files:<br />
   /videos_df.avi < - 192.168.1.100 (User: *******)</p>
<p>(Los asteriscos los pongo para ocultar el nombre de usuario, en el log sale el usuario)<br />
 TOTAL KB IN: 215771KB (210MB)</p>
<p> ---------------------- vsftpd-messages End -------------------------</p>
<p> --------------------- XNTPD Begin ------------------------</p>
<p> **Unmatched Entries**<br />
  sendto(198.137.202.16) (fd=21): Invalid argument: 84 time(s)<br />
  sendto(216.45.57.38) (fd=21): Invalid argument: 84 time(s)<br />
  sendto(169.229.70.64) (fd=21): Invalid argument: 84 time(s)</p>
<p> ---------------------- XNTPD End -------------------------</p>
<p> --------------------- yum Begin ------------------------</p>
<p> Packages Installed:<br />
   vnstat-1.6-1.el5.i386</p>
<p> ---------------------- yum End -------------------------</p>
<p> --------------------- Disk Space Begin ------------------------</p>
<p> Filesystem            Size  Used Avail Use% Mounted on<br />
 /dev/mapper/VolGroup01-LogVol00<br />
                       71G  6.0G   61G   9% /<br />
 /dev/hda1              99M   12M   82M  13% /boot</p>
<p> ---------------------- Disk Space End -------------------------</p>
<p> ###################### Logwatch End #########################
</p></blockquote>
<p>Como podemos ver hubo varios intentos fallidos de logueo como <strong>root</strong> en <strong>SSH</strong>.<br />
Tiene la particularidad de no tener que tocar ni agregar nada, por ejemplo .. el Servidor de FTP (<strong>vsftpd</strong>) lo instalé hace unos días y automáticamente va y busca en los logs para botonearme día a día vía correo..</p>
<p>Pero bueno, ya vimos que podemos empezar por instalar <strong>logwatch</strong> como para enterarnos qué sucede en nuestro sistema ..</p>
<p>Luego de instalar y configurar <strong>logwatch</strong> me puse a investigar algo que bloquee un rango de ips y encontré esto:</p>
<blockquote><p>
#!/bin/bash<br />
### Block all traffic from AFGHANISTAN (af) and CHINA (CN). Use ISO code ###<br />
ISO=&#8221;af cn&#8221; </p>
<p>### Set PATH ###<br />
IPT=/sbin/iptables<br />
WGET=/usr/bin/wget<br />
EGREP=/bin/egrep </p>
<p>### No editing below ###<br />
SPAMLIST=&#8221;countrydrop&#8221;<br />
ZONEROOT=&#8221;/root/iptables&#8221;<br />
DLROOT=&#8221;http://www.ipdeny.com/ipblocks/data/countries&#8221; </p>
<p>cleanOldRules(){<br />
$IPT -F<br />
$IPT -X<br />
$IPT -t nat -F<br />
$IPT -t nat -X<br />
$IPT -t mangle -F<br />
$IPT -t mangle -X<br />
$IPT -P INPUT ACCEPT<br />
$IPT -P OUTPUT ACCEPT<br />
$IPT -P FORWARD ACCEPT<br />
} </p>
<p># create a dir<br />
[ ! -d $ZONEROOT ] &#038;&#038; /bin/mkdir -p $ZONEROOT </p>
<p># clean old rules<br />
cleanOldRules </p>
<p># create a new iptables list<br />
$IPT -N $SPAMLIST </p>
<p>for c in $ISO<br />
do<br />
# local zone file<br />
tDB=$ZONEROOT/$c.zone </p>
<p># get fresh zone file<br />
$WGET -O $tDB $DLROOT/$c.zone </p>
<p># country specific log message<br />
SPAMDROPMSG=&#8221;$c Country Drop&#8221; </p>
<p># get<br />
BADIPS=$(egrep -v &#8220;^#|^$&#8221; $tDB)<br />
for ipblock in $BADIPS<br />
do<br />
$IPT -A $SPAMLIST -s $ipblock -j LOG &#8211;log-prefix &#8220;$SPAMDROPMSG&#8221;<br />
$IPT -A $SPAMLIST -s $ipblock -j DROP<br />
done<br />
done </p>
<p># Drop everything<br />
$IPT -I INPUT -j $SPAMLIST<br />
$IPT -I OUTPUT -j $SPAMLIST<br />
$IPT -I FORWARD -j $SPAMLIST </p>
<p># call your other iptable script<br />
# /path/to/other/iptables.sh </p>
<p>exit 0 </p>
</blockquote>
<p>El anterior script lo que hace es bloquear directamente un rango de ips gigante ..<br />
Pero no sirve, no porque no funcione, sino porque no le encuentro sentido a bloquear absolutamente todo, eso no es securizar un servidor, es simplemente ser paranoico ..</p>
<p>Entonces me topé con un amigo que me tiró un script hecho por él, este &#8220;pibe&#8221; no es ni más ni menos que uno de los desarrolladores de <strong><a href="http://x-wrt.org/about/developers.html">X-wrt</a></strong> &#8211; <strong>Fabian Omar Franzotti (fofware) </strong></p>
<p>El script se llama <strong><a href="http://code.google.com/p/logtrigger/">logtrigger</a></strong></p>
<p>Veamos una descripción de lo que es:</p>
<p>Fue escrito para correr en embedded linux como <strong>OpenWRT</strong> por tal motivo es pequeño, pero funciona muy bien en sistemas más grandes con linux, realizando una tarea muy especifica leer los registros de logs de otros programas y/o servicios para poder lanzar procesos externos cuando uno de estos registros coincide con una regla creada.</p>
<p><strong>Logtrigger</strong> lee cada evento registrado, extrae información del mismo y la publica en variables de sistema para que pueda ser leida por un proceso externo llamado por Logtrigger.</p>
<p>Esto lo hace muy flexible y con un gran potencial ya que los procesos pueden ser escritos en cualquier lenguaje de script o programación dándole la posibilidad de automatizar infinidad de tareas en el momento en que el evento sucede.</p>
<p>Todo <strong>administrador</strong> de un host o una red, en ocasiones necesita leer archivos de logs para poder encontrar porque sucedieron algunas cosas o realizar procesos de mantenimiento cada vez que un error o evento fue registrado en el sistema.</p>
<p>Con <strong>Logtrigger</strong> ya no necesitará revisar archivos de eventos para ejecutar los procesos necesarios.<br />
Logtrigger lo hace por Ud.</p>
<p>Muchos de estos procesos pueden ser realizados con CRON pero esto puede que sobrecargue mucho nuestro procesador o que la acción llegue tarde, (ej.: un ataque a nuestro ssh, asterisk, o algún otro porceso, donde estan tratando de robarnos una cuenta), ya que en el momento en que CRON ejecuta el proceso esto ya terminó.</p>
<p>Como Logtrigger puede lanzar procesos especificos ante cada evento se convierte en una herramienta de gran ayuda para:</p>
<p><strong>Analizar Eventos<br />
Detección de Errores<br />
Mantenimiento<br />
Seguridad<br />
Auxiliar de otros procesos</strong></p>
<p>Entonces pasando en limpio, lo que hace <strong>logtrigger</strong> es analizar los logs de los distintos tipos de servicios y actuar en consecuencia ante determinadas alertas..<br />
Por ejemplo, si un usuario intenta loguearse a nuestro <strong>SSH</strong> y no logra conectarse tras 5 intentos, <strong>logtrigger</strong> directamente bloquea el puerto que utiliza <strong>SSH</strong> para la ip de ese usuario, del mismo modo actúa ante logins fallidos en nuestro <strong>Asterisk</strong>, que es lo que me interesaba a mi :) </p>
<p>Lo podemos correr de 2 formas, una con el &#8220;debug&#8221; activado</p>
<blockquote><p>logtrigger -D 5</p></blockquote>
<p>O directamente lo dejamos corriendo y ante algún evento nos guardará el log en <strong>/tmp/blockedip</strong></p>
<blockquote><p>logtrigger &#038;</p></blockquote>
<p>Imagen de cómo funciona al recibir un login incorrecto en nuestro <strong>Asterisk</strong></p>
<p><a href="http://dysloke.com/blog/wp-content/uploads/2011/07/Pantallazo.png"><img src="http://dysloke.com/blog/wp-content/uploads/2011/07/Pantallazo-575x209.png" alt="" title="Pantallazo" width="575" height="209" class="aligncenter size-medium wp-image-850" /></a></p>
<p>Bueno si, todo muy lindo pero entonces qué onda, qué instalo ?</p>
<p>Yo, recomiendo tener instalado</p>
<p>1) logwatch<br />
2) kippo (honeypot ssh)<br />
3) logtrigger<br />
4) iptables</p>
<p>Y listo, con eso ya estaríamos un poquito más seguros ..<br />
</faxmaster></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://dysloke.com/blog/?feed=rss2&#038;p=845</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Instalando kippo, un honeypot SSH</title>
		<link>http://dysloke.com/blog/?p=836</link>
		<comments>http://dysloke.com/blog/?p=836#comments</comments>
		<pubDate>Sun, 06 Mar 2011 14:44:53 +0000</pubDate>
		<dc:creator>dysloke</dc:creator>
				<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://dysloke.com/blog/?p=836</guid>
		<description><![CDATA[Según Wikipedia: Se denomina honeypot al software o conjunto de computadores cuya intención es atraer a atacantes, simulando ser sistemas vulnerables o débiles a los ataques. Es una herramienta de seguridad informática utilizada para recoger información sobre los atacantes y sus técnicas. Los honeypots pueden distraer a los atacantes de las máquinas más importantes del [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://dysloke.com/blog/wp-content/uploads/2011/03/sshh.png"><img src="http://dysloke.com/blog/wp-content/uploads/2011/03/sshh.png" alt="" title="sshh" width="570" height="125" class="aligncenter size-full wp-image-837" /></a></p>
<p>Según <a href="http://es.wikipedia.org/wiki/Honeypot">Wikipedia</a>:</p>
<p>Se denomina <strong>honeypot </strong>al software o conjunto de computadores cuya intención es atraer a atacantes, simulando ser sistemas vulnerables o débiles a los ataques. Es una herramienta de seguridad informática utilizada para recoger información sobre los atacantes y sus técnicas. Los honeypots pueden distraer a los atacantes de las máquinas más importantes del sistema, y advertir rápidamente al administrador del sistema de un ataque, además de permitir un examen en profundidad del atacante, durante y después del ataque al honeypot.</p>
<p>Algunos honeypots son programas que se limitan a simular sistemas operativos no existentes en la realidad y se les conoce como honeypots de baja interacción y son usados fundamentalmente como medida de seguridad. Otros sin embargo trabajan sobre sistemas operativos reales y son capaces de reunir mucha más información; sus fines suelen ser de investigación y se los conoce como honeypots de alta interacción.</p>
<p><strong>Entonces, y ya sin citar a Wikipedia, básicamente (y muy básicamente) un Honeypot tiene como función atraer a los mal llamados &#8220;hackers&#8221; para conocer e investigar los compartamientos.<br />
Por ejemplo, supongamos que tenemos un servidor ofreciendo servicios tales como SSH, FTP, WEB, etc.<br />
Con una Honeypot podríamos emular esos servicios en los puertos stándars (22, 21, 80, en este caso) y distraer a los atacantes para que pierdan el tiempo y de paso ver qué hacen, qué exploits utilizan, si explotan alguna vulnerabilidad nueva, etc..<br />
Eso, nos dará tiempo para ir a nuestros verdaderos servicios y &#8220;parchear&#8221; o securizar sabiendo qué es lo que los atacantes podrían hacer.</strong></p>
<p>El diagrama de red de un honeypot sería más o menos así:</p>
<p><a href="http://dysloke.com/blog/wp-content/uploads/2011/03/honeypot.png"><img src="http://dysloke.com/blog/wp-content/uploads/2011/03/honeypot-563x500.png" alt="" title="honeypot" width="563" height="500" class="aligncenter size-medium wp-image-839" /></a></p>
<p>Vamos a los bifes, en este caso (porque vamos a ver más adelante varios ejemplos de honeypots)<br />
Instalaremos <a href="http://code.google.com/p/kippo">kippo</a> un honeypot destinado a emular un Servidor SSH.</p>
<p>Lo primero que vamos a hacer es instalar <strong>python-twisted</strong></p>
<blockquote><p>apt-get install python-twisted</p></blockquote>
<p>Y luego (como usuarios comunes) vamos a descarganos <strong>kippo</strong>.</p>
<blockquote><p>wget http://kippo.googlecode.com/files/kippo-0.5.tar.gz </p></blockquote>
<p>Descomprimimos:</p>
<blockquote><p>tar -xvzf kippo*</p></blockquote>
<p>Entramos al directorio y lo ejecutamos:</p>
<blockquote><p> cd kippo*<br />
                   ./start.sh</p></blockquote>
<p>Listo, eso es todo .. demasiado fácil no?<br />
Ya tenemos corriendo un honeypot de baja-media interacción, emulando ser un servidor SSH.<br />
Si ustedes pueban conectarse van a ver que pueden hacer exactamente las mismas cosas que podrían hacer en un servidor SSH común y corriente.</p>
<p>Este tipo de honeypots son totalmente inofensivos para el sistema, puesto que (justamente) el servicio emulado no existe y jamás podrán acceder al sistema real.<br />
Se trata de un software hecho en python que emula cada uno de los módulos de una distribución (wget, apt-get, ping, uptime, ls, cd, cat, etc etc etc)</p>
<p>Ahora seguimos, porque en mi caso tuve que cambiar el puerto del servidor SSH original, para que si el atacante quiere conectarse al 22 lo lleve al 2222 (que es el puerto del servidor SSH emulado)</p>
<p>Esto lo hacemos con IPTABLES de la siguiente manera:</p>
<blockquote><p>iptables -t nat -A PREROUTING -i eth0 -p tcp –dport 22 -j REDIRECT –to-port 2222</p></blockquote>
<p>(Puede variar la interface, en mi caso es eth0)</p>
<p>Si usteden tienen un cliente SSH como Putty (<a href="http://he.fi/putty/putty.exe">click acá para bajarlo</a>) pueden probarlo contra un VPS mío.</p>
<p>Pongan en host name o ip: <strong>www.efe4.com.ar</strong><br />
Y el puerto queda como está, el 22</p>
<p>Logueense como <strong>root </strong>con la clave <strong>123456</strong> y vean cómo funciona <strong>kippo</strong>.</p>
<p>Entre otras cosas, kippo tiene la opción de loguear todo lo que el atacante hizo y luego reproducirse en tiempo real como si estuvieran frente a la consola, un ejemplo pueden verlo aquí:</p>
<p><a href="http://kippo.rpg.fi/playlog/?l=20100316-233121-1847.log">http://kippo.rpg.fi/playlog/?l=20100316-233121-1847.log</a></p>
<p>La función &#8220;playlog&#8221; se encuentra en la carpeta &#8220;utils&#8221; y la ejecutan con:</p>
<p><strong>python playlog.py -b -m 2 ubicacion-del-log 0</strong></p>
<p>Eso es todo .. después seguimos con un par de honeypots un poco más complejos y completos.</p>
<p>Salutes!</p>
]]></content:encoded>
			<wfw:commentRss>http://dysloke.com/blog/?feed=rss2&#038;p=836</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Instalando vsftpd + mySQL</title>
		<link>http://dysloke.com/blog/?p=822</link>
		<comments>http://dysloke.com/blog/?p=822#comments</comments>
		<pubDate>Wed, 15 Dec 2010 21:13:40 +0000</pubDate>
		<dc:creator>dysloke</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[tutoriales]]></category>
		<category><![CDATA[archivos]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[libpam]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[secure]]></category>
		<category><![CDATA[seguridad]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[servidor]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[vsftpd]]></category>

		<guid isPermaLink="false">http://dysloke.com/blog/?p=822</guid>
		<description><![CDATA[Ya sabemos que vsftpd es considerado el FTP más seguro del planeta, así que vamos a dejar las introducciones y la teoría de lado y vamos a ir al grano. Lo primero que hacemos es instalar mysql-server, mysql-client y libpam-mysql: apt-get install mysql-server mysql-client libpam-mysql Seteamos la clave de root de nuestro SQL y vamos [...]]]></description>
			<content:encoded><![CDATA[<p>Ya sabemos que <strong>vsftpd </strong>es considerado el <strong>FTP </strong>más seguro del planeta, así que vamos a dejar las introducciones y la teoría de lado y vamos a ir al grano.</p>
<p>Lo primero que hacemos es instalar <strong>mysql-server, mysql-client y libpam-mysq</strong>l:</p>
<blockquote><p>apt-get install mysql-server mysql-client libpam-mysql</p></blockquote>
<p>Seteamos la clave de root de nuestro SQL y vamos a usar la base de datos mysql.</p>
<blockquote><p>mysql -u root -p</p></blockquote>
<p>Nos pide la contraseña de root, la insertamos y seguimos:</p>
<blockquote><p>use mysql;</p></blockquote>
<p>Creamos el usuario en mysql:</p>
<pre class="brush:sql">INSERT INTO user (Host, User, Password) VALUES ('localhost','vsftpd',password('ftppass'));</pre>
<p>Le damos <strong>privilegios </strong>:)</p>
<pre class="brush:sql">INSERT INTO db (Host, Db, User, Select_priv) VALUES ('localhost','vsftpd','vsftpd','Y');</pre>
<p>Actualizamos los <strong>privilegios</strong>:</p>
<pre class="brush:sql">FLUSH PRIVILEGES;</pre>
<p>Ahora creamos la base de datos <strong>vsftpd</strong></p>
<pre class="brush:sql">CREATE DATABASE vsftpd;</pre>
<p>Usamos la base de datos creada:</p>
<pre class="brush:sql">use vsftpd</pre>
<p>Creamos la table con sus dos campos:</p>
<pre class="brush:sql">CREATE TABLE `usuarios` (
  `usuario` varchar(30) NOT NULL default '',
  `password` varchar(50) NOT NULL default ''
);</pre>
<p>Salimos de mysql:</p>
<blockquote><p>quit</p></blockquote>
<p>Ahora instalamos vsftpd:</p>
<blockquote><p>apt-get install vsftpd</p></blockquote>
<p>Editamos el archivo de configuración:</p>
<blockquote><p>nano /etc/vsftpd.conf</p></blockquote>
<p>Y vamos a ir descomentando las líneas para que quede más o menos así:</p>
<blockquote><p>listen=YES<br />
anonymous_enable=NO<br />
local_enable=YES<br />
write_enable=YES<br />
local_umask=022<br />
dirmessage_enable=YES<br />
xferlog_enable=YES<br />
connect_from_port_20=YES<br />
chown_uploads=YES<br />
nopriv_user=vsftpd<br />
chroot_local_user=YES<br />
secure_chroot_dir=/var/run/vsftpd<br />
pam_service_name=vsftpd<br />
rsa_cert_file=/etc/ssl/certs/vsftpd.pem</p></blockquote>
<p>Al final del archivo agregamos éstas líneas:</p>
<blockquote><p>guest_enable=YES<br />
guest_username=vsftpd<br />
local_root=/home/vsftpd/$USER<br />
user_sub_token=$USER<br />
virtual_use_local_privs=YES<br />
user_config_dir=/etc/vsftpd_user_conf</p></blockquote>
<p>Agregamos un usuario &#8220;fantasma&#8221; :</p>
<pre class="brush:plain">useradd –home /home/vsftpd –gid nogroup -m –shell /bin/false vsftpd</pre>
<p>Ahora editamos el archivo vsftpd dentro de /etc/pam.d/, borramos todo y agregamos éstas dos líneas:</p>
<blockquote><p>nano /etc/pam.d/vsftpd</p></blockquote>
<blockquote><p>auth required pam_mysql.so user=vsftpd passwd=ftppass host=localhost db=vsftpd table=usuarios usercolumn=usuario passwdcolumn=password crypt=2</p></blockquote>
<blockquote><p>account required pam_mysql.so user=vsftpd passwd=ftppass host=localhost db=vsftpd table=usuarios usercolumn=usuario passwdcolumn=password crypt=2</p></blockquote>
<p>Nuevamente usamos nuestro sql ..</p>
<blockquote><p>mysql -u root -p</p></blockquote>
<p>Creamos un usuario para probar nuestro FTP:</p>
<pre class="brush:sql">INSERT INTO usuarios (usuario, password) VALUES ('test',password('12345'));</pre>
<p>Creamos el directorio para nuestro usuario:</p>
<blockquote><p>mkdir /home/vsftpd/test</p></blockquote>
<p>Cambiamos de grupo al usuario:</p>
<blockquote><p>chown vsftpd:nogroup test</p></blockquote>
<p>Ahora intentamos conectarnos con el usuario <strong>&#8220;test&#8221;</strong> y la clave <strong>&#8220;12345&#8243;</strong> a nuestro FTP :)</p>
<p><a href="http://dysloke.com/blog/wp-content/uploads/2010/11/vsftpd1.png"><img class="aligncenter size-medium wp-image-806" title="vsftpd1" src="http://dysloke.com/blog/wp-content/uploads/2010/11/vsftpd1-335x500.png" alt="" width="335" height="500" /></a></p>
<p><a href="http://dysloke.com/blog/wp-content/uploads/2010/11/vsftpd2.png"><img class="aligncenter size-medium wp-image-807" title="vsftpd2" src="http://dysloke.com/blog/wp-content/uploads/2010/11/vsftpd2-339x500.png" alt="" width="339" height="500" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://dysloke.com/blog/?feed=rss2&#038;p=822</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Servidores FTP</title>
		<link>http://dysloke.com/blog/?p=782</link>
		<comments>http://dysloke.com/blog/?p=782#comments</comments>
		<pubDate>Wed, 24 Nov 2010 20:35:11 +0000</pubDate>
		<dc:creator>dysloke</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[tutoriales]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[ftpd]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[proftpd]]></category>
		<category><![CDATA[pureftpd]]></category>
		<category><![CDATA[root]]></category>
		<category><![CDATA[secure]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[vsftpd]]></category>

		<guid isPermaLink="false">http://dysloke.com/blog/?p=782</guid>
		<description><![CDATA[FTP, (File Transfer Protocol)  es un programa especial que se ejecuta en un servidor conectado normalmente en Internet (aunque puede estar conectado en otros tipos de redes, LAN, MAN, etc.). La función del mismo es permitir el desplazamiento de datos entre diferentes servidores / ordenadores. En una imagen sería algo así: Observamos que intervienen tres [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://dysloke.com/blog/wp-content/uploads/2010/11/ftp1.png"><img src="http://dysloke.com/blog/wp-content/uploads/2010/11/ftp1.png" alt="" title="ftp" width="570" height="125" class="aligncenter size-full wp-image-803" /></a></p>
<p>FTP, (<strong>F</strong>ile<strong> T</strong>ransfer <strong>P</strong>rotocol)  es un programa especial que se ejecuta en un servidor conectado  normalmente en Internet (aunque puede estar conectado en otros tipos de  redes, LAN, MAN, etc.). La función del mismo es permitir el  desplazamiento de datos entre diferentes servidores / ordenadores.</p>
<p>En una imagen sería algo así:<a href="http://dysloke.com/blog/wp-content/uploads/2010/11/servidor-FTP.png"><img src="http://dysloke.com/blog/wp-content/uploads/2010/11/servidor-FTP.png" alt="" title="servidor-FTP" width="418" height="444" class="aligncenter size-full wp-image-783" /></a></p>
<p>Observamos que intervienen tres elementos:</p>
<p>    * El servidor FTP, donde subiremos / descargaremos los archivos.<br />
    * Usuario 1, es el usuario que en este ejemplo, sube un archivo al servidor FTP.<br />
    * Usuario 2, es el usuario que en este ejemplo, se descarga el archivo subido por el usuario 1 y a continuación sube otro archivo.</p>
<p>fuente: <a href="http://servidorftp.es/">http://servidorftp.es/</a></p>
<p>En esta ocasión vamos a instalar un par de Servidores FTP, con distintas variantes y tipos de funcionamiento.</p>
<p>Empezaremos por uno de los más utilizados, <strong><a href="http://www.proftpd.org/">Proftpd</a></p>
<p></strong><strong>ProFTPd</strong> es un servidor <strong>FTP</strong> bajo licencia <strong>GPL</strong> y multiplataforma, aunque no está para Microsoft Windows. <strong>ProFTPd</strong> puede ser fácilmente configurable, siendo sus archivos de configuración muy parecidos a los de Apache. Puede ser enjaulado independientemente del sistema de archivos sobre el que trabaje y soporta <strong>IPv6</strong>.</p>
<p>Lo primero, la instalación:</p>
<blockquote><p>apt-get install proftpd</p></blockquote>
<p>Listo, muy difícil de instalarlo hasta ahora eh ..</p>
<p>Ahora pasemos a la configuración..</p>
<blockquote><p>nano /etc/proftpd/proftpd.conf</p></blockquote>
<p>Al final del archivo vamos a agregar estas dos líneas:</p>
<blockquote><p>
AccessGrantMsg    &#8220;¡Bienvenido al Servidor FTP! &#8221;<br />
AccessDenyMsg    &#8220;¡Acceso denegado!&#8221;
</p></blockquote>
<p>Claramente serán las líneas de bienvenida y de &#8220;no&#8221; bienvenida a los usuarios que se conecten.</p>
<p>Seguimos con nuestra instalación, ahora vamos a crear una shell falsa para los usuarios.<br />
Creamos el primer usuario:</p>
<p>Creamos primeramente su home..</p>
<blockquote><p>mkdir /home/dysloke</p></blockquote>
<p>Y luego sí, su usuario:</p>
<blockquote><p>useradd -d /home/dysloke -s /bin/false dysloke</p></blockquote>
<p>Ahora lo hacemos dueño y amo de su home:</p>
<blockquote><p>chown -R dysloke /home/dysloke</p></blockquote>
<p>Le asignamos un password al usuario &#8220;dysloke&#8221;</p>
<blockquote><p>passwd dysloke</p></blockquote>
<p> (repetir 2 veces la clave)</p>
<p>Listo, ya tenemos creado el primer usuario, repetimos los pasos y creamos otro usuario, ej: &#8220;dke&#8221;</p>
<p>Cuando tengamos los dos usuarios creados vamos a volver al archivo de configuración del proftpd.</p>
<blockquote><p>nano /etc/proftpd/proftpd.conf</p></blockquote>
<p>Y nuevamente al final del archivo añadiremos estas líneas:</p>
<blockquote>
<li class="li1">
<div class="de1">&lt;Limit LOGIN&gt;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp;AllowUser dysloke</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp;DenyAll</div>
</li>
<li class="li2">
<div class="de2">&lt;/Limit&gt;</div>
</li>
<li class="li1">
<div class="de1">RequireValidShell &nbsp; off</div>
</li>
</blockquote>
<p>De esta manera sólo permitiremos el acceso al usuario &#8220;dysloke&#8221;.</p>
<p>Reiniciamos el servicio:</p>
<blockquote><p>/etc/init.d/proftpd restart</p></blockquote>
<p>Y nos conectamos con cualquier cliente FTP como <a href="http://filezilla-project.org/download.php">Filezilla </a>o <a href="https://addons.mozilla.org/es-ES/firefox/addon/684/">Fireftp </a>para <a href="http://firefox.com">Firefox</a></p>
<p><a href="http://dysloke.com/blog/wp-content/uploads/2010/11/proftpd1.png"><img src="http://dysloke.com/blog/wp-content/uploads/2010/11/proftpd1-390x500.png" alt="" title="proftpd1" width="390" height="500" class="aligncenter size-medium wp-image-789" /></a></p>
<p><a href="http://dysloke.com/blog/wp-content/uploads/2010/11/proftpd2.jpg"><img src="http://dysloke.com/blog/wp-content/uploads/2010/11/proftpd2-419x500.jpg" alt="" title="proftpd2" width="419" height="500" class="aligncenter size-medium wp-image-790" /></a></p>
<p>Listo, ya lo tenemos funcionando. !</p>
<p><strong>ProFTPd seguro con TLS</strong></p>
<p>Ahora vamos a pasar a una cosa un poquito más segura, como muchos sabrán los datos hasta ahora se pasan en texto plano con la peligrosidad de poder ser sniffeados o robados.</p>
<p>Qué vamos a hacer? Vamos a utilizar un protocolo seguro para nuestro Proftpd (TLS)</p>
<p>Empecemos como si no hubíeramos instalado absolutamente nada..</p>
<p>Instalamos entonces ProFTPd y OpenSSL:</p>
<blockquote><p>apt-get install protftpd openssl</p></blockquote>
<p>Editamos el archivo de configuración del ProFTPd:</p>
<blockquote><p>nano /etc/proftpd/proftpd.conf</p></blockquote>
<p>Agregamos al final éstas líneas:</p>
<blockquote><p>
DefaultRoot ~<br />
IdentLookups off<br />
ServerIdent on &#8220;FTP listo.&#8221;
</p></blockquote>
<p>Ahora vamos a crear el certificado <strong>SSL</strong>, para ello crearemos un directorio llamado ssl dentro de la carpeta del ProFTPd:</p>
<blockquote><p>mkdir /etc/proftpd/ssl</p></blockquote>
<p>Y luego sí, creamos el certificado con el siguiente comando:</p>
<blockquote><p>
openssl req -new -x509 -days 365 -nodes -out /etc/proftpd/ssl/proftpd.cert.pem -keyout /etc/proftpd/ssl/proftpd.key.pem
</p></blockquote>
<p>Completamos los datos que nos pida y listo, tenemos certificado <strong>SSL </strong>:)<br />
Ahora vamos a activar la opción del <strong>TLS </strong>en nuestra configuracion:</p>
<blockquote><p>nano /etc/proftpd/proftpd.conf</p></blockquote>
<p>Buscamos la línea <strong>&#8220;Include /etc/proftpd/tls.conf&#8221;</strong> y la descomentamos.</p>
<p>Finalmente configuramos el archivo <strong>tls.conf</strong></p>
<blockquote><p>nano /etc/proftpd/tls.conf/</p></blockquote>
<p>Y seteamos los valores de las líneas que aparecen abajo de la misma manera:</p>
<blockquote><p>
<ifmodule mod_tls.c><br />
TLSEngine                  on<br />
TLSLog                     /var/log/proftpd/tls.log<br />
TLSProtocol                SSLv23<br />
TLSOptions                 NoCertRequest<br />
TLSRSACertificateFile      /etc/proftpd/ssl/proftpd.cert.pem<br />
TLSRSACertificateKeyFile   /etc/proftpd/ssl/proftpd.key.pem<br />
TLSVerifyClient            off<br />
TLSRequired                on<br />
</ifmodule>
</p></blockquote>
<p>Sólo nos quedaría reiniciar el servicio:</p>
<blockquote><p>/etc/init.d/proftpd restart</p></blockquote>
<p>Ahora, en el cliente seguiremos los siguientes pasos (Filezilla)<br />
<a href="http://dysloke.com/blog/wp-content/uploads/2010/11/proftpdseguro11.png"><img src="http://dysloke.com/blog/wp-content/uploads/2010/11/proftpdseguro11-401x500.png" alt="" title="proftpdseguro1" width="401" height="500" class="aligncenter size-medium wp-image-798" /></a></p>
<p><a href="http://dysloke.com/blog/wp-content/uploads/2010/11/proftpdseguro2.png"><img src="http://dysloke.com/blog/wp-content/uploads/2010/11/proftpdseguro2.png" alt="" title="proftpdseguro2" width="525" height="471" class="aligncenter size-full wp-image-793" /></a></p>
<p><a href="http://dysloke.com/blog/wp-content/uploads/2010/11/proftpdseguro3.png"><img src="http://dysloke.com/blog/wp-content/uploads/2010/11/proftpdseguro3-405x500.png" alt="" title="proftpdseguro3" width="405" height="500" class="aligncenter size-medium wp-image-794" /></a></p>
<p>Listo, ya tenemos configurado y funcionando todo :)</p>
]]></content:encoded>
			<wfw:commentRss>http://dysloke.com/blog/?feed=rss2&#038;p=782</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Qmailrocks, servidor de correo completo!</title>
		<link>http://dysloke.com/blog/?p=727</link>
		<comments>http://dysloke.com/blog/?p=727#comments</comments>
		<pubDate>Wed, 20 Oct 2010 14:27:08 +0000</pubDate>
		<dc:creator>dysloke</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[tutoriales]]></category>
		<category><![CDATA[apache2]]></category>
		<category><![CDATA[correo]]></category>
		<category><![CDATA[courier]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[openssl]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[perl-modules]]></category>
		<category><![CDATA[qmail]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[servidor]]></category>

		<guid isPermaLink="false">http://dysloke.com/blog/?p=727</guid>
		<description><![CDATA[En esta ocasión vamos a instalar un Servidor de Correo con otro MTA, anteriormente lo habíamos hecho con Postfix y luego con Axigen, ahora le toca el turno a Qmail utilizando un pack que incluye todos los paquetes que necesitamos: Qmailrocks No voy a contarles la historia de Qmail, o por qué lo elegí, simplemente [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://dysloke.com/blog/wp-content/uploads/2010/10/qmail.png"><img src="http://dysloke.com/blog/wp-content/uploads/2010/10/qmail.png" alt="" title="qmail" width="570" height="128" class="aligncenter size-full wp-image-755" /></a></p>
<p>En esta ocasión vamos a instalar un <strong>Servidor de Correo</strong> con otro <strong>MTA</strong>, anteriormente lo habíamos  hecho con <strong>Postfix</strong> y luego con <strong>Axigen</strong>, ahora le toca el turno a <strong>Qmail</strong> utilizando un pack que incluye todos los paquetes que necesitamos: <strong><a href="http://www.qmailrocks.org">Qmailrocks</a></strong></p>
<p>No voy a contarles la historia de Qmail, o por qué lo elegí, simplemente vamos a ir al grano, ya que la instalación es bastante larga..</p>
<p>Lo primero que tenemos que hacer es cumplir un par de requisitos (paquetes instalados):</p>
<blockquote><p>apt-get install apache2 mysql-server php5 perl-modules patch patchutils openssl libssl-dev build-essential</p></blockquote>
<p>Con eso ya podemos EMPEZAR..</p>
<p>Ahora necesitamos instalar un par de módulos de nuestro <strong>Perl</strong>, vamos a usar el queridísimo <a href="http://www.cpan.org/">CPAN</a></p>
<p>En nuestra consola escribimos:</p>
<blockquote><p>perl -MCPAN -e shell</p></blockquote>
<p>Nos aparece algo parecido a esto:</p>
<blockquote><p>
cpan shell &#8212; CPAN exploration and modules installation (v1.9205)<br />
ReadLine support available (maybe install Bundle::CPAN or Bundle::CPANxxl?)</p>
<p>cpan[1]>
</p></blockquote>
<p>Allí vamos a ir escribiendo uno por vez estos comandos para ir instalando los módulos necesarios: </p>
<p><strong>NOTA: </strong>(son :: DOS puntos)</p>
<blockquote><p>
install Digest::SHA1<br />
install Digest::HMAC<br />
install Net::DNS<br />
install Time::HiRes<br />
install HTML::Tagset<br />
install HTML::Parser
</p></blockquote>
<p>Una vez que tenemos todo instalado para comenzar (todavía ni siquiera descargamos nuestro <strong>Qmail</strong>)</p>
<p>Creamos un directorio llamado <strong>downloads</strong> en el directorio raiz <strong>( / )</strong></p>
<blockquote><p>
cd /<br />
mkdir downloads</p></blockquote>
<p>Entramos al directorio:</p>
<blockquote><p>cd /downloads</p></blockquote>
<p>Descargamos <strong>Qmailrocks</strong> y luego lo descomprimimos:</p>
<blockquote><p>
wget http://www.qmailrocks.org/downloads/qmailrocks.tar.gz<br />
tar zxvf qmailrocks.tar.gz
</p></blockquote>
<p>Vamos a editar los archivos <strong>/etc/hosts y /etc/hostname</strong> ..</p>
<blockquote><p>nano /etc/hosts</p></blockquote>
<p>Yo lo dejé así, ustedes como quieran (es 127.0.0.1     DOMINIO      mail) el &#8220;mail&#8221; es obligatorio.</p>
<blockquote><p>127.0.0.1        dysloke.net       mail</p></blockquote>
<p>Edito <strong>/etc/hostname</strong></p>
<blockquote><p>nano /etc/hostname</p></blockquote>
<p>Y solo dejo escrito <strong>&#8220;mail&#8221;</strong> (sin comillas obviamente)</p>
<p>Comenzamos la instalación ejecutando el script siguiente:</p>
<blockquote><p>/downloads/qmailrocks/scripts/install/qmr_install_linux-s1.script</p></blockquote>
<p>Con eso iniciamos la instalación, ahora vamos a parchear varias fallas que <strong>Qmailrocks</strong> corrige..</p>
<blockquote><p>/downloads/qmailrocks/scripts/util/qmail_big_patches.script</p></blockquote>
<p>Ahora compilamos <strong>Qmail</strong>. Seguimos estos pasos:</p>
<blockquote><p>
cd /usr/src/qmail/qmail-1.03</p>
<p>make man &#038;&#038; make setup check
</p></blockquote>
<p>Ahora lo configuramos:</p>
<blockquote><p>./config-fast TUDOMINIO</p></blockquote>
<p> <strong>Ej: ./config-fast dysloke.net</strong></p>
<p>Luego, generamos un certificado seguro que va a usarse para encriptar el servidor con <strong>TLS</strong>,</p>
<blockquote><p>
make cert
</p></blockquote>
<p>Nos va a empezar a hacer un par de preguntas, algo así contesté yo:</p>
<blockquote><p>
Country Name (2 letter code) [GB]:AR<br />
State or Province Name (full name) [Berkshire]:Corrientes<br />
Locality Name (eg, city) [Newbury]:Corrientes<br />
Organization Name (eg, company) [My Company Ltd]:dysloke.net<br />
Organizational Unit Name (eg, section) []:mail<br />
Common Name (eg, your name or your server&#8217;s hostname) []: dysloke.net<br />
Email Address []:postmaster@dysloke.net
</p></blockquote>
<p>Si el certificado se instaló bien, va a generar el certificado acá: <strong>/var/qmail/control/servercert.pem</strong> y otro archivo que linkea a ese certificado en <strong>/var/qmail/control/clientcert.pem</strong></p>
<p>Ahora manifestamos el propietario que utilizará estos archivos:</p>
<blockquote><p>chown -R vpopmail:qmail /var/qmail/control/clientcert.pem /var/qmail/control/servercert.pem</p></blockquote>
<p>Vamos a compilar ahora <strong>ucspi-tcp</strong>:</p>
<blockquote><p>cd /usr/src/qmail/ucspi-tcp-0.88/</p></blockquote>
<p>Le damos un <strong>make &#038;&#038; make setup check</strong></p>
<blockquote><p>patch < /downloads/qmailrocks/patches/ucspi-tcp-0.88.errno.patch</p></blockquote>
<p>Seguramente nos tire un error, así que vamos a parchearlo ;)</p>
<p>Escribimos esto (tal cual)</p>
<blockquote><p>patch < /downloads/qmailrocks/patches/ucspi-tcp-0.88.errno.patch</p></blockquote>
<p>Ahora si ejecutamos make &#038;&#038; make setup check</p>
<blockquote><p>make &#038;&#038; make setup check</p></blockquote>
<p>Proximo turno: <strong>daemontools</strong></p>
</blockquote>
<p>cd /package/admin/daemontools-0.76</p></blockquote>
<p>Para no perder tiempo, vamos a tener que parchear así que vamos directo:</p>
<blockquote><p>cd /package/admin/daemontools-0.76/src</p></blockquote>
<blockquote><p>patch < /downloads/qmailrocks/patches/daemontools-0.76.errno.patch</p></blockquote>
<blockquote><p>cd /package/admin/daemontools-0.76 </p></blockquote>
<p>Y lo armamos:</p>
<blockquote><p>package/install</p></blockquote>
<p>Instalando EZmlm ..<br />
<strong>EZmlm es un mailing-list</strong> (un addon) para <strong>Qmail</strong>, se integra al <strong>qmailadmin</strong> (más adelante lo vamos a ver) </p>
<p>Seguimos estos pasos:</p>
<blockquote><p>
cd /downloads/qmailrocks/
</p></blockquote>
<blockquote><p>tar zxvf ezmlm-0.53-idx-0.41.tar.gz</p></blockquote>
<blockquote><p>cd ezmlm-0.53-idx-0.41</p></blockquote>
<blockquote><p>make &#038;&#038; make setup</p></blockquote>
<p>Listo? Sin errores? Seguimos ..</p>
<p>Instalamos <strong>Autoresponder</strong> que hace exáctamente lo que ustedes piensan, así que no me gasto en explicarlo .. </p>
<p>Seguimos los pasos:</p>
<blockquote><p>cd /downloads/qmailrocks</p></blockquote>
<blockquote><p>tar zxvf autorespond-2.0.5.tar.gz</p></blockquote>
<blockquote><p>cd autorespond-2.0.5</p></blockquote>
<blockquote><p>make &#038;&#038; make install</p></blockquote>
<p>Le toca el turno a uno de los pulmones de nuestro Servidor de Correo, <strong>Vpopmail</strong> el cual permite usar dominios virtuales.</p>
<p>Seguimos los pasos:</p>
<blockquote><p>cd /downloads/qmailrocks</p></blockquote>
<blockquote><p>tar zxvf vpopmail-5.4.13.tar.gz</p></blockquote>
<blockquote><p>cd vpopmail-5.4.13</p></blockquote>
</blockquote>
<p>Ahora lo configuramos con la opción de <strong>logging=p</strong> para que loguee los intentos fallidos de logueo.</p>
<blockquote><p>./configure &#8211;enable-logging=p</p></blockquote>
<blockquote><p>make &#038;&#038; make install-strip</p></blockquote>
<p>Si no saltó un error, seguimos .. (es largo, avisé ..)</p>
<p>Ahora le toca a <strong>Vqadmin</strong>, que como sabrán es un gestor de <strong>vpopmail</strong>, pero con una interface (fea, pero interfaz al fin) web.</p>
<p>Atención porque acá tenemos que hacer todo perfecto y sin errores, seguimos estos pasos:</p>
<blockquote><p>cd /downloads/qmailrocks</p></blockquote>
<blockquote><p>tar zxvf vqadmin-2.3.6.tar.gz</p></blockquote>
<blockquote><p>cd vqadmin-2.3.6</p></blockquote>
<blockquote><p>./configure &#8211;enable-cgibindir=/var/www/cgi-bin &#8211;enable-htmldir=/var/www</p></blockquote>
<blockquote><p>make &#038;&#038; make install-strip</p></blockquote>
<p>Vamos a editar el archivo <strong>/etc/apache2/sites-available/default</strong></p>
<p>Y vamos a agregar estas líneas:</p>
<blockquote><p>
<directory "/var/www/cgi-bin/vqadmin"><br />
deny from all<br />
Options +ExecCGI<br />
AllowOverride AuthConfig<br />
Order deny,allow<br />
</directory>
</p></blockquote>
<p>Luego, más abajo en el mismo archivo buscamos la línea que dice ScriptAlias /cgi-bin y nos aseguramos de que quede de la siguiente manera:</p>
<blockquote><p>ScriptAlias /cgi-bin /var/www/cgi-bin/</p></blockquote>
<p>Guardamos, salimos y nos vamos hasta <strong>/var/www/cgi.bin/vqadmin</strong></p>
<blockquote><p>cd /var/www/cgi-bin/vqadmin</p></blockquote>
<p>Editamos el archivo <strong>.htaccess</strong></p>
<blockquote><p>nano .htaccess</p></blockquote>
<p>Y debería quedarnos así:</p>
<blockquote><p>
AuthType Basic<br />
AuthUserFile /var/www/cgi-bin/vqadmin/.htpasswd<br />
AuthName vQadmin<br />
require valid-user<br />
satisfy any
</p></blockquote>
<p>Hacemos que &#8220;nobody&#8221; use el .<strong>htaccess</strong></p>
<blockquote><p>chown nobody .htaccess</p></blockquote>
<p>Damos permisos:</p>
<blockquote><p>chmod 644 .htaccess</p></blockquote>
<p>Creamos el archivo <strong>.htpasswd</strong></p>
<blockquote><p>htpasswd -bc /var/www/cgi-bin/vqadmin/.htpasswd admin CLAVE</p></blockquote>
<p>Damos permisos:</p>
<blockquote><p>chmod 644 /var/www/cgi-bin/vqadmin/.htpasswd </p></blockquote>
<p>Reiniciamos apache:</p>
<blockquote><p>
apachectl stop<br />
apachectl start
</p></blockquote>
<p>Y si todo salió bien, deberíamos poder ingresar vía URL.</p>
<p><strong>http://IP-DEL-MAILSERVER/cgi-bin/vqadmin/vqadmin.cgi</strong></p>
<p>En mi caso, uso una máquina virtual con la ip <strong>192.168.62.63</strong> así que ingreso a:</p>
<p><strong>http://192.168.62.63/cgi-bin/vqadmin/vqadmin.cgi</strong></p>
<p>Nos perdirá usuario y clave<br />
<strong><br />
usuario: admin<br />
clave: la que hayan creado en el .htpasswd</strong></p>
<p>Y nos muestra una interfaz:</p>
<p><a href="http://dysloke.com/blog/wp-content/uploads/2010/10/vqadmin.jpg"><img src="http://dysloke.com/blog/wp-content/uploads/2010/10/vqadmin-575x283.jpg" alt="" title="vqadmin" width="575" height="283" class="aligncenter size-medium wp-image-735" /></a></p>
<p>Creamos un nuevo dominio yendo a <strong>&#8220;Add Domain&#8221;</strong></p>
<p><strong>En la parte de &#8220;Options&#8221; configuramos las cantidades de cuentas virtuales que podrá tener ese domino, los alias, los autoresponders, las listas de correo y la capacidad en bytes, lo configuramos a gusto..</strong></p>
<p>Listo, ahora vamos con <strong>Maildrop</strong> un agente que filtra mensajes que vayan llegando a nuestro server..</p>
<p>Hacemos lo siguiente:</p>
<blockquote><p>cd /downloads/qmailrocks</p></blockquote>
<blockquote><p>tar zxvf maildrop-1.6.3.tar.gz</p></blockquote>
<blockquote><p>cd maildrop-1.6.3</p></blockquote>
<blockquote><p>./configure &#8211;prefix=/usr/local &#8211;exec-prefix=/usr/local &#8211;enable-maildrop-uid=root &#8211;enable-maildrop-gid=vchkpw &#8211;enable-maildirquota</p></blockquote>
<blockquote><p>make &#038;&#038; make install-strip &#038;&#038; make install-man</p></blockquote>
<p>Todo bien hasta ahora ? si no tiró errores .. sigamos! falta mucho todavía ;)</p>
<p>Bueno, ahora empieza la parte más &#8220;linda?&#8221; donde al menos vamos a ver un par de imágenes! ..</p>
<p>Instalaremos <strong>Qmailadmin</strong>, un administrador con interface gráfica para crear cuentas de correo, listas de correo, fowards, robots, etc .. siempre y cuando exista el dominio creado en el anterior <strong>vqadmin</strong></p>
<p>Hacemos lo siguiente:</p>
<blockquote><p>cd /downloads/qmailrocks</p></blockquote>
<blockquote><p>tar zxvf qmailadmin-1.2.9.tar.gz</p></blockquote>
<blockquote><p>cd qmailadmin-1.2.9</p></blockquote>
<blockquote><p>./configure &#8211;enable-cgibindir=/var/www/cgi-bin &#8211;enable-htmldir=/var/www</p></blockquote>
<blockquote><p>make &#038;&#038; make install-strip</p></blockquote>
<p>Listo, si todo salió bien, deberíamos poder acceder vía browser a <strong>http://IP-DEL-SERVER/cgi-bin/qmailadmin</strong><br />
En mi caso: <strong>http://192.168.62.63/cgi-bin/qmailadmin</strong></p>
<p>Vemos algo así (nos logueamos con los datos que creamos en <strong>vqadmin</strong>)</p>
<p><a href="http://dysloke.com/blog/wp-content/uploads/2010/10/qmailadmin1.png"><img src="http://dysloke.com/blog/wp-content/uploads/2010/10/qmailadmin1.png" alt="" title="qmailadmin1" width="518" height="395" class="aligncenter size-full wp-image-744" /></a></p>
<p><a href="http://dysloke.com/blog/wp-content/uploads/2010/10/qmailadmin2.png"><img src="http://dysloke.com/blog/wp-content/uploads/2010/10/qmailadmin2-512x500.png" alt="" title="qmailadmin2" width="512" height="500" class="aligncenter size-medium wp-image-745" /></a></p>
<p>Creamos una nueva cuenta:</p>
<p><a href="http://dysloke.com/blog/wp-content/uploads/2010/10/qmailadmin3.png"><img src="http://dysloke.com/blog/wp-content/uploads/2010/10/qmailadmin3-575x180.png" alt="" title="qmailadmin3" width="575" height="180" class="aligncenter size-medium wp-image-746" /></a></p>
<p><a href="http://dysloke.com/blog/wp-content/uploads/2010/10/qmailadmin4.png"><img src="http://dysloke.com/blog/wp-content/uploads/2010/10/qmailadmin4-575x285.png" alt="" title="qmailadmin4" width="575" height="285" class="aligncenter size-medium wp-image-747" /></a></p>
<p>Finalizando con la instalación de <strong>Qmail</strong> .. (no se hagan ilusiones, sólo de Qmail..)</p>
<p>Ejecutamos este script:</p>
<blockquote><p>/downloads/qmailrocks/scripts/finalize/linux/finalize_linux.script</p></blockquote>
<p>Editamos este archivo: <strong>/var/qmail/supervise/qmail-pop3d/run</strong></p>
<p>y donde dice <strong>&#8220;mail.example.com&#8221;</strong> lo reemplazamos por nuestro dominio.</p>
<blockquote><p>nano /var/qmail/supervise/qmail-pop3d/run</p></blockquote>
<p>Hacemos lo mismo con el archivo <strong>/var/qmail/supervise/qmail-smtpd/run</strong></p>
<p>Abajo de todo reemplazamos con nuestro dominio.</p>
<blockquote><p>nano /var/qmail/supervise/qmail-smtpd/run</p></blockquote>
<p>Paramos Qmail:</p>
<blockquote><p>qmailctl stop</p></blockquote>
<p>Hacemos que sólo nuestro localhost sea el <strong>relay</strong></p>
<blockquote><p>echo &#8217;127.:allow,RELAYCLIENT=&#8221;"&#8216; >> /etc/tcp.smtp</p></blockquote>
<p>Atención, en esta parece: <strong>RELAYCLIENT=</strong> van: <strong>DOS COMILLAS DOBLES y UNA SIMPLE todo junto</strong></p>
<p>Actualizamos..</p>
<blockquote><p>qmailctl cdb</p></blockquote>
<p>Creamos las direcciones de root, postmaster y mailer-daemon, en mi caso llevan @dysloke.net, en el suyo, sus dominios.</p>
<blockquote><p>
echo root@dysloke.net > /var/qmail/alias/.qmail-root<br />
echo postmaster@dysloke.net > /var/qmail/alias/.qmail-postmaster<br />
echo mailer@dysloke.net > /var/qmail/alias/.qmail-mailer-daemon
</p></blockquote>
<p>Enlazamos:</p>
<blockquote><p>ln -s /var/qmail/alias/.qmail-root /var/qmail/alias/.qmail-anonymous</p></blockquote>
<p>Damos permisos:</p>
<blockquote><p>chmod 644 /var/qmail/alias/.qmail*</p></blockquote>
<p>Y si todo salió bien, seguimos..</p>
<p>Falta poco ..<br />
Vamos a desinstalar cualquier rastro de <strong>exim4</strong> y <strong>sendmail</strong> que hubiera existido ..</p>
<blockquote><p>/etc/init.d/exim4 stop</p></blockquote>
<blockquote><p>cd /etc/rc2.d</p></blockquote>
<blockquote><p>mv S20exim4 K20exim4</p></blockquote>
<p>Ahora volamos lo que haya quedado de <strong>sendmail</strong></p>
<blockquote><p>
 rm -f /usr/lib/sendmail</p>
<p>rm -f /usr/sbin/sendmail
</p></blockquote>
<p>Creamos unos enlaces &#8220;de mentirita&#8221;:</p>
<blockquote><p>
ln -s /var/qmail/bin/sendmail /usr/lib/sendmail</p>
<p>ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
</p></blockquote>
<p>Y ya que estamos si llegó a existir alguna vez <strong>postfix</strong> lo volamos:</p>
<blockquote><p>dpkg &#8211;purge &#8211;force-depends postfix </p></blockquote>
<p>Si todo va bien, ya deberíamos tener nuestro servidor totalmente .. vamos a probar si realmente está funcionando todo:</p>
<p>Ejecutamos esto:</p>
<blockquote><p>/downloads/qmailrocks/scripts/util/qmr_inst_check</p></blockquote>
<p>Si nos dice Congratulations, bla bla bla.. es porque somos muy buenos siguiendo un tutorial!<br />
De lo contrario, a arrancar de nuevo ..</p>
<p>Paramos Qmail</p>
<blockquote><p>qmailctl stop</p></blockquote>
<p>Lo arrancamos:</p>
<blockquote><p>qmailctl start</p></blockquote>
<p>Hago un telnet al 110 para ver si funciona todo bien, debería mostrarnos algo como esto (modifiquen los datos del dominio y la clave obviamente)</p>
<blockquote><p>
Trying 127.0.0.1&#8230;<br />
Connected to 127.0.0.1.<br />
Escape character is &#8216;^]&#8217;.<br />
+OK &lt;16658.1054485137@dysloke.net><br />
user postmaster@dysloke.net<br />
+OK<br />
pass LA-CLAVE-DE-USTEDES<br />
+OK<br />
quit<br />
+OK<br />
Connection closed by foreign host.
</p></blockquote>
<p>Bien, funciona!</p>
<p>Ahora veamos con el <strong>25 (SMTP)</strong></p>
<blockquote><p>
telnet localhost 25</p>
<p>Trying 127.0.0.1&#8230;<br />
Connected to localhost.<br />
Escape character is &#8216;^]&#8217;.<br />
220 dysloke.net ESMTP<br />
ehlo localhost<br />
250-dysloke.net<br />
250-AUTH LOGIN CRAM-MD5 PLAIN<br />
250-AUTH=LOGIN CRAM-MD5 PLAIN<br />
250-STARTTLS<br />
250-PIPELINING<br />
250 8BITMIME<br />
starttls<br />
220 ready for tls<br />
quit<br />
quit<br />
Connection closed by foreign host.<br />
[root@somewhere control]#
</p></blockquote>
<p>Bien, funciona!</p>
]]></content:encoded>
			<wfw:commentRss>http://dysloke.com/blog/?feed=rss2&#038;p=727</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

