<?xml version="1.0" encoding="ISO-8859-1"?>
<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>Donde estan mis llaves? &#187; Fedora</title>
	<atom:link href="http://www.cike.ws/category/fedora/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.cike.ws</link>
	<description>Blog dedicado a la seguridad informática, linux y otras extravagancias</description>
	<lastBuildDate>Wed, 11 Aug 2010 21:52:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Nginx y Plesk</title>
		<link>http://www.cike.ws/2010/08/11/nginx-y-plesk/</link>
		<comments>http://www.cike.ws/2010/08/11/nginx-y-plesk/#comments</comments>
		<pubDate>Wed, 11 Aug 2010 06:49:15 +0000</pubDate>
		<dc:creator>cike</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Fedora]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Optimizaciones]]></category>
		<category><![CDATA[Plesk]]></category>
		<category><![CDATA[RedHat]]></category>
		<category><![CDATA[Servicios]]></category>

		<guid isPermaLink="false">http://www.cike.ws/?p=45</guid>
		<description><![CDATA[Desde hace bastante tiempo sé de lo complicado que puede ser un servidor Plesk, sobre todo si tienes sitios de alto volumen. Algunos de los artículos de este sitio tratan sobre la optimización de servidores web. Ya conocia el proyecto Nginx y lo habia utilizado parcialmente tal como esta señalado en post previo usando redirecciones [...]]]></description>
			<content:encoded><![CDATA[<p>Desde hace bastante tiempo sé de lo complicado que puede ser un servidor Plesk, sobre todo si tienes sitios de alto volumen.</p>
<p>Algunos de los artículos de este sitio tratan sobre la optimización de servidores web.</p>
<p>Ya conocia el proyecto Nginx y lo habia utilizado parcialmente tal como esta señalado en post previo usando redirecciones con .httaccess</p>
<p>Encontré hace un par de dias la solución perfecta para hacer convivir el Apache en Plesk y el Nginx sacando provecho de lo mejor de ambos.</p>
<p>Sigue leyendo y descubrirás como integrar perfectamente el Nginx con tu Plesk</p>
<p><span id="more-45"></span></p>
<p>La primer parte es instalar el Nginx. Puedes hacerlo de la manera tradicional bajando la fuente e instalandolo a mano.</p>
<p>para este ejemplo usaremos el rpositorio de rpms de ART</p>
<p>En mi caso uso RHEL pero ART tambien hace rpms para Fedora y Centos.</p>
<p>La manera más fácil de instalar el repositorio de ART en tu servidor plesk con Fedora/Centos/RHEL es usando el comando:</p>
<p><code> wget -q -O - http://www.atomicorp.com/installers/atomic.sh | sh </code></p>
<p>una vez instalado el repositorio instalar Nginx es tan sencillo como</p>
<p><code> yum install nginx </code></p>
<p>La ventaja de hacerlo de esta manera es que el rpm te ayuda con la instalación correcta y activacion como servicio.</p>
<p>una vez instalado  descarguen este <a href="http://www.grafxsoftware.com/download/nginx/nginx_setup.zip" target="_blank">archivo ZIP</a> y descomprímanlo en la carpeta /etc/nginx/ sobreescribiendo los archivos que asi lo soliciten.</p>
<p>una ves descomprimido el contenido de ese zip ejecuten el siguiente comando:</p>
<p><code> sh /etc/nginx/&lt;code&gt;generate_nginx_conf.sh</code></p>
<p>lo cual leerá la configuracion del apache modificada por el Plesk y generará los scripts correspondientes de nginx para cada dominios existente en el servidor. ( En el caso de un plesk normal en un servidor dedicado con varios ips no fue necesaria modificación alguna de los templates que vienen en el zip ).</p>
<p>Ahora de momento nos enfocaremos en los cambios necesarios del Apache. La idea es que el Nginx se quede escuchando en el puerto 80 y el apache en algun otro puerto&#8230;. digamos el 8080&#8230;</p>
<p>El Nginx servira contenido estático y todo el contenido dinámico lo pasará al apache liberando a este ultimo del servicio de imágenes y anexos para lo cual es mas eficiente el Nginx.</p>
<p>Como cambiar el Apache de plesk de puerto y no morir en el intento:<br />
<code>/usr/local/psa/admin/sbin/websrvmng --set-http-port --port=8080<br />
/usr/local/psa/admin/sbin/websrvmng --reconfigure-all<br />
/usr/local/psa/admin/sbin/webmailmng --disable --name=horde<br />
/usr/local/psa/admin/sbin/webmailmng --enable --name=horde<br />
/usr/local/psa/admin/sbin/webmailmng --disable --name=atmail<br />
/usr/local/psa/admin/sbin/webmailmng --enable --name=atmail<br />
/usr/local/psa/admin/sbin/webmailmng --disable --name=atmailcom<br />
/usr/local/psa/admin/sbin/webmailmng --enable --name=atmailcom<br />
service httpd restart<br />
service nginx restart</code><br />
Fimalmente les recomiendo que configuren el Nginx para que arranque al inicio del equipo con el comando:</p>
<p>chkconfig &#8211;level 345 nginx on</p>
<p>Y listo!!!! Nginx esta funcionando ahora en el puerto 80 y el apache esta feliz ahora en el puerto 8080 y todo funciona de maravilla.</p>
<p>La implementacion del Nginx puede ayudarte a usar al maximo los recursos de tu servidor, ya que nginx usa significativamente mucha menos menoria ram que los procesos comunes de apache y por lo tanto te da la oportunidad de entregar mas paginas/contenido utilizando el mismo hardware.</p>
<p>Este proceso de sustitucion es altamente recomendado si tu sitio tiene constantes y continuas cargas altas debidas a trafico Web.</p>
<p><strong>Nota</strong>: El puerto 8080 es usado regularmente por una parte el Tomcat, si no usas Tomcat en ese servidor, simplemente desactivalo para que no tengas problema alguno con el Apache.</p>
<p><code> chkconfig --level 345 tomcat5 off</code></p>
<p>service tomcat5 stop</p>
<p>Revisa tambien que el servicio de Tomcat no este monitoreado por el módulo de Watchdog, de ser así desactívalo en el módulo para que el Watchdog no lo arranque de nuevo.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cike.ws/2010/08/11/nginx-y-plesk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Seguridad usando la Obscuridad</title>
		<link>http://www.cike.ws/2007/08/04/seguridad-usando-la-obscuridad/</link>
		<comments>http://www.cike.ws/2007/08/04/seguridad-usando-la-obscuridad/#comments</comments>
		<pubDate>Sun, 05 Aug 2007 00:26:53 +0000</pubDate>
		<dc:creator>cike</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Fedora]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Optimizaciones]]></category>
		<category><![CDATA[Seguridad General]]></category>
		<category><![CDATA[Servicios]]></category>

		<guid isPermaLink="false">http://www.cike.ws/2007/08/04/seguridad-usando-la-obscuridad/</guid>
		<description><![CDATA[Estas configuraciones no son en el sentido físico para asegurar el servidor sino más bien para ayudar a protegerlo de ataques automatizados basados en las versiones de los servicios. Si alguien comienza a revisar tu sistema en busca de agujeros de seguridad es muy común que inicie recolectando datos de las versiones de los servicios. [...]]]></description>
			<content:encoded><![CDATA[<p>Estas configuraciones no son en el sentido físico para asegurar el servidor sino más bien para ayudar a protegerlo de ataques automatizados basados en las versiones de los servicios. Si alguien comienza a revisar tu sistema en busca de agujeros de seguridad es muy común que inicie recolectando datos de las versiones de los servicios. Estas instrucciones te ayudarán a desactivar los reportes que comúnmente algunos demonios entregan al reportar su versión. <span id="more-8"></span></p>
<p>Esto es comúnmente es llamado seguridad por obscuridad y no debería confiar sólamente en esto, es sólo una de las muchas cosas que puede hacer para ayudar a minimizar las posibilidades de que un servidor sea hackeado.</p>
<p>Primero desabilitaremos la información de versión en el <strong>Apache</strong>.</p>
<p>&#8212;&#8211;comando&#8212;&#8211;<br />emacs /etc/httpd/conf/httpd.conf<br />&#8212;&#8211;comando&#8212;&#8211;</p>
<p>Presiona  control + s para buscar &#8220;<em>ServerSignature</em>&#8220;<br />Seguramente dice <em>On</em>, cámbialo a  <em>Off</em><br />Esto remueve la identificacion de versión del Apache en las páginas de error.</p>
<p>Justo  abajo de esa linea agrega otra que diga:</p>
<p><em>ServerTokens Prod </em><br />Esto identificará al Apache simplemente como eso&#8230;  &#8220;apache&#8221; sin los números de version o datos del sistema operativo</p>
<p>Salva el archivo (  Control + S    y Control + X ) y reinicia  el apache</p>
<p>&#8212;&#8211;comando&#8212;&#8211;<br />service httpd restart<br />&#8212;&#8211;comando&#8212;&#8211;</p>
<p>Ahora desabilitaremos el <strong>named</strong> para que no dé version</p>
<p>&#8212;&#8211;comando&#8212;&#8211;<br />emacs /etc/named.conf<br />&#8212;&#8211;comando&#8212;&#8211;</p>
<p>Busca  &#8220;query-source address * port 53;&#8221;<br />Agrega una línea justo abajo que diga:</p>
<p>version &#8220;Named&#8221;;</p>
<p>Salva y reinicia el servicio  named</p>
<p>Recuerda que esto sólo es seguridad por obscuridad y aun asi necesitarás actualizar el servidor. Esto sólo va a detener a algunos de encontrar tu server en primera instancia usando escaneos automáticos. No te ayudará en nada si alguien esta tratando de entrar al servidor.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cike.ws/2007/08/04/seguridad-usando-la-obscuridad/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Optimizando apache al máximo</title>
		<link>http://www.cike.ws/2006/06/03/optimizando-apache-al-maximo/</link>
		<comments>http://www.cike.ws/2006/06/03/optimizando-apache-al-maximo/#comments</comments>
		<pubDate>Sun, 04 Jun 2006 05:41:32 +0000</pubDate>
		<dc:creator>cike</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Fedora]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Optimizaciones]]></category>
		<category><![CDATA[RedHat]]></category>
		<category><![CDATA[Servicios]]></category>

		<guid isPermaLink="false">http://www.cike.ws/archives/24</guid>
		<description><![CDATA[Hace poco tuve que enfrentarme con un servidor de un amigo que tenia varios sitios muy populares&#8230; mucho swapping, altos iowaits y se bloqueaba de manera aleatoria. El server es un Celeron 1.7 con 512 MB RAM y cada uno de los sitios andan por el orden de varios de miles de hits al dia. [...]]]></description>
			<content:encoded><![CDATA[<p>Hace poco tuve que enfrentarme con un servidor de un amigo que tenia varios sitios muy populares&#8230; mucho swapping, altos iowaits y se bloqueaba de manera aleatoria.</p>
<p><span id="more-24"></span></p>
<p>El server es un Celeron 1.7 con 512 MB RAM y cada uno de los sitios andan por el orden de  varios de miles de hits al dia.</p>
<p>Despues de experimentar varios dias con estos problemas encontré una mezcla de soluciones que me permitio que el server no se caiga y mantenga el paso con las peticiones de clientes&#8230;</p>
<ul>
<li>Instala <a href="http://www.eaccelerator.net" target="_blank">eaccelerator</a> para reducir la carga al compilar las paginas php. UPDATE Jul 2009 ( Ahora uso <a href="http://xcache.lighttpd.net/" target="_blank">Xcache </a>en lugar de Eaccelerator)</li>
<li>Desactiva el logging en el apache: si tienes trafico alto los logs pueden causarte pesadillas por el uso de disco. Al desactivarlo permites que se entreguen archivos mas rapidamente.</li>
<li>Descargué e instale <a href="http://www.litespeedtech.com/" target="_blank">Litespeed Webserver</a> ( yo usé la version Standard, libre pero solo llega hasta 300 clientes concurrentes.. si son necesarios más&#8230; tendrias que comprar la version enterprise y ya no te costea $500 USD )  y lo configuré para correr en un puerto alto (8080) importando las configuraciones de virtual hosting del apache.</li>
<li>Usé una regla de  redirección para que todo el contenido estatico ( imagenes, videos y swf ) sean redireccionados al servidor recien instalado en el puerto alto (8080)</li>
</ul>
<p>Esto puede ser configurado directamente en el httpd.conf o un  .htaccess en el directorio publico. ( Yo normalmente lo pongo en un .httaccess en la carpeta donde esta mi sitio mas usado )<br />
<code>RewriteEngine on<br />
RewriteRule .*\.(gif|GIF|jpg|JPG|png|PNG|swf|SWF|pdf|PDF)$ http://%{HTTP_HOST}:8080%{REQUEST_URI}</code></p>
<p>(Son dos lineas )</p>
<ul>
<li>Activa las opcionesde  compresion en /etc/php.ini</li>
</ul>
<p>output_buffering = On<br />
output_handler = ob_gzhandler</p>
<ul>
<li>Como ya no estoy enviando contenido estático con el apache, desactivo las opciones de Keepalive, ajusto MaxRequestsPerChild a un valor alto, MinSpareServers 10 MaxSpareServers 20  y StartServers a un valor inicial medio ( yo usé 80 )</li>
</ul>
<p>El webserver en el puerto alto hace parte de la magia, corre practicamente sin demasiada memoria ( 20MB en horas pico pero solo en un proceso ) y sirve hasta 300 usuarios concurrentes con un gasto minimo de CPU ( mucho menos del 1% ), Apache aun sigue enviando contenido dinámico, usando esta combinación Apache aún usa de 10 a 20 MB  de RAM por proceso pero el tiempo que un cliente utiliza el Apache es menor que en una configuración tradicional, esto reduce la concurrencia de clientes en el Apache.<br />
Los cambios en KeepAlive permiten que el apache termine una peticion y atienda la siguiente sin esperar peticiones extra del cliente. ( las cuales son atendidas por el otro servidor ) bajando asi el numero de clientes concurrentes usando Apache</p>
<p>Estos ajustes redujeron dramaticamente la carga de el servidor<br />
Ahora el server tiene un promedio de carga muy diferente&#8230;<br />
load average: 0.68, 0.56, 0.59<br />
manejando unos  140 procesos de apache ( muchos más en hora pico cerca de los 250 ) y aun tiene la mitad del procesador libre..<br />
El load común antes de estos cambios era de más de 9<br />
.</p>
<p align="left">10:10pm  up 36 days, 12:19,  1 user,  load average: 0.68, 0.56, 0.59<br />
203 processes: 193 sleeping, 10 running, 0 zombie, 0 stopped<br />
CPU states: 15.9% user, 14.4% system, 11.1% nice, 58.3% idle<br />
Mem:   506024K av,  468176K used,   37848K free,       0K shrd,   25916K buff<br />
Swap: 1020116K av,   49596K used,  970520K free                  195640K cached</p>
<p align="center">
<p align="left">.       .  . .total         used         free     shared    buffers     cached<br />
Mem:           494  455         38                0                                             23                                   181<br />
-/+ buffers/cache:                                    250                  243<br />
Swap:          996           48        947</p>
<p>Adicionalmente una optimización del servidor mysql seria lo indicado&#8230;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cike.ws/2006/06/03/optimizando-apache-al-maximo/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Creando y usando llaves ssh</title>
		<link>http://www.cike.ws/2006/03/16/creando-y-usando-llaves-ssh/</link>
		<comments>http://www.cike.ws/2006/03/16/creando-y-usando-llaves-ssh/#comments</comments>
		<pubDate>Fri, 17 Mar 2006 03:24:32 +0000</pubDate>
		<dc:creator>cike</dc:creator>
				<category><![CDATA[Fedora]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Seguridad General]]></category>

		<guid isPermaLink="false">http://www.cike.ws/archives/14</guid>
		<description><![CDATA[Esta pequeña guía tiene como fin explicar la manera de crear e instalar llaves ssh para hacer mas agradables, seguros y rapidos accesos via ssh entre servidores.Una llave ssh consiste en dos partes, hay una llave privada y una llave pública. La llave privada es basicamente eso&#8230; privada. Si alguna persona se le permite ver [...]]]></description>
			<content:encoded><![CDATA[<p>Esta pequeña guía tiene como fin explicar la manera de crear e instalar llaves ssh para hacer mas agradables, seguros y rapidos accesos via ssh entre servidores.<span id="more-14"></span>Una llave ssh consiste en dos partes, hay una llave privada y una llave pública. La llave privada es basicamente eso&#8230; privada. Si alguna persona se le permite ver o copiar ese archivo se vuelve posible para esa persona entrar a cualquier server que tenga esta llave ssh instalada. La llave pública se usa para distribuirla entre servidores y puede ser mostrada sin problema. El proceso de autorización de llaves SSH funciona en dos pasos. Cuando yo me conecto a un servidor con la llave privada instalada el cliente de ssh la ofrecerá al servidor remoto.El servidor entonces compara contra el archivo authorized_keys2 que contiene una lista de llaves públicas permitidas para autorizar el acceso. Si este proceso es satisfactorio el server permitirá acceso sin el uso de una contraseña. Este procedimiento es usualmente más rápido.</p>
<p>El primer paso es generar un par de llaves, usaremos DSA debido a que es más segura que RSA. Si deseas ponerle una contraseña, la puedes poner, en caso contrario solo presiona enter. Una contraseña es recomendable por que forza al usuario a necesitar la contraseña de la llave. El problema es que si deseas la llave para realizar procedimientos automatizados la llave tiene que hacerse sin password por comodidad.( Normalmente mis llaves personales van sin contraseña )</p>
<p>&#8212;&#8211;comando&#8212;&#8211;<br />
ssh-keygen -t dsa<br />
&#8212;&#8211;comando&#8212;&#8211;</p>
<p>Esto crea dos archivos id_dsa y  id_dsa.pub. Seria altamente recomendable que mantuvieras un respaldo de ambos archivos en caso de querer usar esta llave en varios servidores. La parte más importante es que guardes el archivo id_dsa en un lugar MUY seguro, si alguien más obtiene dicho archivo, podrá entrar a cualquier servidor con esa llave instalada. Ahora haz cat en el archivo pub y salva el texto, lo vamos a usar en el otro servidor.</p>
<p>&#8212;&#8211;comando&#8212;&#8211;<br />
cat ~/.ssh/id_dsa.pub<br />
&#8212;&#8211;comando&#8212;&#8211;</p>
<p>Ahora entra a el otro servidor como el usuario en donde quieres instalar la llave y haz lo siguiente:</p>
<p>&#8212;&#8211;comandos&#8212;&#8211;<br />
mkdir ~/.ssh/<br />
touch ~/.ssh/authorized_keys2<br />
emacs ~/.ssh/authorized_keys2<br />
&#8212;&#8211;comandos&#8212;&#8211;</p>
<p>Ahora pega los contenidos de id_dsa.pub ahi y salva el archivo. Ahora cambiaremos los permisos del archivo ( algunas versiones de SSH son muy pedantes al respecto de los permisos del archivo authorized_keys2 ).</p>
<p>&#8212;&#8211;comando&#8212;&#8211;<br />
chmod 700 ~/.ssh/authorized_keys2<br />
&#8212;&#8211;comando&#8212;&#8211;</p>
<p>Las llaves Ssh ahora deberian estar funcionando. Intenta entrar y revisa si funciona, si no es asi, intenta hacer un ssh -v user@host, la opción  -v activará el modo en el cual verás pasos relevantes de la transaccion actual y puede ayudarte a diagnosticar el error.</p>
<p>**********************************************<br />
**********************************************<br />
Algunas cosas mas avanzadas que se pueden hacer con llaves ssh:</p>
<p>Activar login de root solo si el usuario usa llave ssh:</p>
<p>El permitir acceso a root solo con el uso de llaves ssh. Esta opción es muy valiosa ya que prevendrá que alguien intente entrar con procesos de login aleatorio y eventualmente obtener acceso al sistema y permitirá aún entrar como root. En un mundo ideal se configuraria el acceso solo usando llaves de ssh y permitiendo sólamente a un usuario capaz de hacer sudo en accesar. pero sé que esto no es algo práctico para muchas personas.Para permitir acceso a root usando solo llaves ssh se necesita editar el archivo sshd_config</p>
<p>&#8212;&#8211;comando&#8212;&#8211;<br />
emacs /etc/ssh/sshd_config<br />
&#8212;&#8211;comando&#8212;&#8211;</p>
<p>Busca donde dice  &#8220;PermitRootLogin yes&#8221;, comentala con un #. Haz una nueva linea justo abajo que diga &#8220;PermitRootLogin without-password&#8221;. Salva y reinicia ssh.</p>
<p>&#8212;&#8211;comando&#8212;&#8211;<br />
service sshd restart<br />
&#8212;&#8211;comando&#8212;&#8211;</p>
<p>Despues de esto.. solo se puede entrar con root por ssh usando autorización por llaves.</p>
<p>**********************************************<br />
**********************************************</p>
<p>Si quisiera usar llaves ssh con putty descarga puttygen.exe de <a href="http://the.earth.li/%7Esgtatham/putty/latest/x86/puttygen.exe">http://the.earth.li/~sgtatham/putty/latest/x86/puttygen.exe  </a>y ejecuta el programa. En las opciones selecciona DSA y luego &#8220;generate&#8221;. Una vez hecho verás una seccion con el texto que contiene la llave publica para colocarla en el archivo authorized_keys2 justo como arriba se describe.</p>
<p>**********************************************<br />
**********************************************</p>
<p>Hay muchas cosas que se pueden hacer con ssh, como mover backups automaticamente o correr comandos en un servidor remoto desde otro pero eso es más de lo que explique esta vez. Hay mucha información en Google acerca de llaves ssh si es que necesitas más información o ideas de como usarlas más.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cike.ws/2006/03/16/creando-y-usando-llaves-ssh/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
