tag:blogger.com,1999:blog-34196964131326756842024-03-13T11:50:18.017-07:00El blog del Pheriko y Unix/Linux!!!Hola que tal, mi nombre es Pedro Moreno, soy Ingeniero en Sistemas Computacionales. He vivido y sigo viviendo en la bella ciudad de Tijuana, B.C., Mexico. Mi edad hasta ahorita es de 29 años y contando. Este blog lo voy a utilizar para ir contando las altas y bajas que tengo con los sistemas operativos que tanto aprecio como lo son Unix/Linux en especial FreeBSD/Centos. No quiero llevarme lo poco que se de ellos, por ello prefiero aqui plasmarlo aqui.Unknownnoreply@blogger.comBlogger139125tag:blogger.com,1999:blog-3419696413132675684.post-5178835751301574492015-08-25T10:23:00.001-07:002015-08-25T10:23:18.526-07:00Pfsense 2.2.x: ntpdate no server suitable for synchronization foundHola, aqui de nuevo, estos dias pasados note que unos reportes que tengo en cron en uno de mis servidores Centos 5.11 x64 estaban llegando minutos adelantados.<br />
<br />
Tengo un simple batch que actualiza el tiempo de los servidores tomando a pfsense como fuente de tiempo, pero note que tengo correos donde dice que:<br />
<br />
<i><span style="font-family: Times, Times New Roman, serif;">ntpdate no server suitable for synchronization found</span></i><br />
<br />
Entonces me puse a ver el problema y confirmar que cada que corre ese script a las 11:59PM sale ese error, mis clientes windows ya sea XP y 7 no tienen problemas, ubuntu 12/14 igual sin detalles, solo los centos 5/6.<br />
<br />
<i><span style="font-family: Georgia, Times New Roman, serif;">ntpdate 192.168.4.1 </span><span style="font-family: Georgia, 'Times New Roman', serif;">25 Aug 10:15:35 ntpdate[6377]: no server suitable for synchronization found</span></i><br />
<br />
Ese es el mensaje latoso, dije bueno vamos a ver que dice en modo debug:<br />
<br />
<span style="font-family: Georgia, Times New Roman, serif;"><i>ntpdate -d 192.168.4.1</i></span><br />
<span style="font-family: Georgia, Times New Roman, serif;"><i>25 Aug 10:17:01 ntpdate[6385]: ntpdate 4.2.2p1@1.1570-o Sun Aug 28 19:21:07 UTC 2011 (1)</i></span><br />
<span style="font-family: Georgia, Times New Roman, serif;"><i>Looking for host 192.168.4.1 and service ntp</i></span><br />
<span style="font-family: Georgia, Times New Roman, serif;"><i>host found : firewall.XXXXXX.local</i></span><br />
<span style="font-family: Georgia, Times New Roman, serif;"><i>transmit(192.168.4.1)</i></span><br />
<span style="font-family: Georgia, Times New Roman, serif;"><i>transmit(192.168.4.1)</i></span><br />
<span style="font-family: Georgia, Times New Roman, serif;"><i>transmit(192.168.4.1)</i></span><br />
<span style="font-family: Georgia, Times New Roman, serif;"><i>transmit(192.168.4.1)</i></span><br />
<span style="font-family: Georgia, Times New Roman, serif;"><i>transmit(192.168.4.1)</i></span><br />
<span style="font-family: Georgia, Times New Roman, serif;"><i>192.168.4.1: Server dropped: no data</i></span><br />
<span style="font-family: Georgia, Times New Roman, serif;"><i>server 192.168.4.1, port 123</i></span><br />
<span style="font-family: Georgia, Times New Roman, serif;"><i><b>stratum 0</b>, precision 0, leap 00, trust 000</i></span><br />
<span style="font-family: Georgia, Times New Roman, serif;"><i>refid [192.168.4.1], delay 0.00000, dispersion 64.00000</i></span><br />
<span style="font-family: Georgia, Times New Roman, serif;"><i>transmitted 4, in filter 4</i></span><br />
<span style="font-family: Georgia, Times New Roman, serif;"><i>reference time: 00000000.00000000 Wed, Feb 6 2036 22:28:16.000</i></span><br />
<span style="font-family: Georgia, Times New Roman, serif;"><i>originate timestamp: 00000000.00000000 Wed, Feb 6 2036 22:28:16.000</i></span><br />
<span style="font-family: Georgia, Times New Roman, serif;"><i>transmit timestamp: d9872190.db112fd3 Tue, Aug 25 2015 10:17:04.855</i></span><br />
<span style="font-family: Georgia, Times New Roman, serif;"><i>filter delay: 0.00000 0.00000 0.00000 0.00000</i></span><br />
<span style="font-family: Georgia, Times New Roman, serif;"><i> 0.00000 0.00000 0.00000 0.00000</i></span><br />
<span style="font-family: Georgia, Times New Roman, serif;"><i>filter offset: 0.000000 0.000000 0.000000 0.000000</i></span><br />
<span style="font-family: Georgia, Times New Roman, serif;"><i> 0.000000 0.000000 0.000000 0.000000</i></span><br />
<span style="font-family: Georgia, Times New Roman, serif;"><i>delay 0.00000, dispersion 64.00000</i></span><br />
<span style="font-family: Georgia, Times New Roman, serif;"><i>offset 0.000000</i></span><br />
<span style="font-family: Georgia, Times New Roman, serif;"><i><br /></i></span>
<span style="font-family: Georgia, Times New Roman, serif;"><i>25 Aug 10:17:05 ntpdate[6385]: no server suitable for synchronization found</i></span><br />
<br />
Este servidor dice que la fuente es un <b>stratum 0</b>, otro me dice que <b>16</b>. Segun leyendo un poco, por lo regular ningun cliente se sincronizara con este tipo de stratum por ser o muy bajo o muy alto, el 16 significa que el servidor de tiempo no esta sincronizado.<br />
<br />
Pero me llamo la atencion por que revise mi pfsense y consulte su condicion, para ello entre a ver el estatus de mi servicio y me doy cuenta que esta en buena condicion y buen 'stratum' ver imagen siguiente:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-2NWNZMLKvbw/Vdyf8S53ckI/AAAAAAAAAz8/ZgQOQGHh3uI/s1600/Screenshot%2Bfrom%2B2015-08-25%2B10%253A01%253A55.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="92" src="http://3.bp.blogspot.com/-2NWNZMLKvbw/Vdyf8S53ckI/AAAAAAAAAz8/ZgQOQGHh3uI/s320/Screenshot%2Bfrom%2B2015-08-25%2B10%253A01%253A55.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
Estatus del NTP de pfsense.</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: justify;">
Como se podra ver nada que ver lo dice Centos de stratum 0 o 16 es 2.</div>
<div class="separator" style="clear: both; text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: justify;">
Entonces que podria estar causando este discrepancia con los centos?</div>
<div class="separator" style="clear: both; text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: justify;">
Bien pues al parecer tiene que ver con la opcion que viene de fabrica habilitada el ntp, el llamado beso de la muerte, ver siguiente imagen:</div>
<div class="separator" style="clear: both; text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-4Tx7AtPP14U/VdyiRWffY3I/AAAAAAAAA0I/CqcALmMHehk/s1600/Screenshot%2Bfrom%2B2015-08-25%2B10%253A06%253A00.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="66" src="http://4.bp.blogspot.com/-4Tx7AtPP14U/VdyiRWffY3I/AAAAAAAAA0I/CqcALmMHehk/s320/Screenshot%2Bfrom%2B2015-08-25%2B10%253A06%253A00.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
Kiss of death default.</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: justify;">
Entonces me comenta mi amigo del foro, 'wbon' que cuando el deshabilito esa opcion sus centos empezaron de nuevo a sincronizarse, lo hice y boom todo empezo de nuevo a trabajar, mis centos de nuevo con el tiempo correcto, saludos.</div>
<div class="separator" style="clear: both; text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: justify;">
<br /></div>
<br />
<br />
<br />
<br />Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-3419696413132675684.post-4757579168930668762015-08-24T15:59:00.004-07:002015-08-24T15:59:51.048-07:00Centos 5: httpd dead but subsys locked les ha pasado?Hola amigas/amigos, hace tiempo que no toco mi blog, a veces el tiempo no deja pero vamos viendo que podemos agregar para que no se nos olvide.<br />
<br />
Apache es un de esos servicios que rara vez uno tiene que reiniciarlo o revisar algunos logs por que los programadores se quejan de su funcionalidad.<br />
<br />
Pero ahi veces que de plano no reiniciar y salen un mensaje como este en la consola:<br />
<br />
service <span style="font-family: inherit;">httpd</span> status<br />
httpd dead but subsys locked<br />
<br />
Ok, no esta tronado, esta bien tronado jajajajaja...<br />
<br />
Pero bueno despues de leer algunos post al respecto, me encontre uno que me daba un comando mas feo que los codos pero que reparo el problema, no me gusta robar las soluciones, repito lo encontre en un foro y no recuerdo el link, pero funciona.<br />
<br />
Muchos foros decian que hiciera unos 3 pasos, borrara aqui, haya etc, ninguno funciona.<br />
<br />
Pero este siguiente espaguetti si:<br />
<br />
<span style="font-family: Arial, Helvetica, sans-serif;"> ipcs -s | grep apache | perl -e 'while(<stdin>){@a=split(/\s+/);print `ipcrm sem $a[1]`}'ipcs -s | grep apache | perl -e 'while(<stdin>){@a=split(/\s+/);print `ipcrm sem $a[1]`}'</stdin></stdin></span><br />
<div>
<br /></div>
<div>
Una vez ejecutado este comando logre reiniciar el servicio.</div>
<div>
<br /></div>
<div>
Centos 5.11, saludos.</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3419696413132675684.post-32488055992039067542014-09-22T18:36:00.001-07:002014-09-22T18:36:26.304-07:00Centos 6 KVM Instalando Windows 2008 R2 x64 Guest.Ya Centos trae KVM como su paquete para crear VM's, asi que tenemos que movernos a esta tecnologia, ya usamos Xen, excelente paquete, ahora le toca a KVM.<br />
<br />
Este vez estamos trabajando con Centos 6.5 x64 en un servidor SuperMicro.<br />
<br />
Vamos revisando nuestro LVM creado para este maquina virtual, solo para esta ocasion he creado una particion de 30G para este ejemplo, esta es la info:<br />
<br />
lvdisplay VG_BAK<br />
--- Logical volume ---<br />
LV Path /dev/VG_BAK/VmWin8Test<br />
LV Name VmWin8Test<br />
VG Name VG_BAK<br />
LV UUID kEQfdL-FmLQ-wvMJ-efQh-1pZ9-avJR-myJwbM<br />
LV Write Access read/write<br />
LV Creation host, time kvm1.host.local, 2014-09-16 13:14:23 -0700<br />
LV Status available<br />
# open 0<br />
LV Size 30.00 GiB<br />
Current LE 7680<br />
Segments 1<br />
Allocation inherit<br />
Read ahead sectors auto<br />
- currently set to 256<br />
Block device 253:7<br />
<div>
<br /></div>
<div>
Solo vamos asignarle el core 1 para esta vm, la imagen de Windows8 esta en /var.</div>
<div>
<br /></div>
<div>
Tenemos todo para llevar a cabo esto, vamos a prender VNC para que KVM nos ayude en la instalacion remotamente.</div>
<div>
<br /></div>
<div>
Estos son los parametros que vamos a usar:</div>
<div>
<br /></div>
<div>
virt-install --name=vm_win2k8T --ram=1024 --vcpus=1 --cpuset=1 --description 'Windows 2008 Standard x64 Test' --cdrom=/var/Win2k8_olicense.iso --os-type=windows --os-variant=win2k8 --disk path=/dev/VG_BAK/VmWin8Test --network bridge=br0 --graphics vnc,listen=0.0.0.0,port=5900,password=mipassword --hvm --check-cpu</div>
<div>
<br /></div>
<div>
Nos conectamos x vnc y terminamos la instalacion.</div>
<div>
<br /></div>
<div>
Vamos observando los pantallazos:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-9jwBjQLwAo0/VCDNsClK1vI/AAAAAAAAAwo/9agvBxKcmQk/s1600/kvm-1.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-9jwBjQLwAo0/VCDNsClK1vI/AAAAAAAAAwo/9agvBxKcmQk/s1600/kvm-1.JPG" height="251" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-hwGy9NtS5Sg/VCDNxalNiJI/AAAAAAAAAww/Tj0vQvndyv8/s1600/kvm-2.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-hwGy9NtS5Sg/VCDNxalNiJI/AAAAAAAAAww/Tj0vQvndyv8/s1600/kvm-2.JPG" height="240" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br /></div>
<div>
Ya una vez terminado todo, iniciamos el sistema y revisamos que todo este en orden.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-v8WbS6xyUd0/VCDOXLcSWeI/AAAAAAAAAw4/tRqFrhh68rk/s1600/kvm-3.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-v8WbS6xyUd0/VCDOXLcSWeI/AAAAAAAAAw4/tRqFrhh68rk/s1600/kvm-3.JPG" height="238" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Listo, servidor arriba y operando, saludos.</div>
<div>
<br /></div>
<div>
<br /></div>
Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-3419696413132675684.post-15908355381565279472014-02-25T20:51:00.001-08:002015-10-29T10:40:37.272-07:00Pfsense 2.x Habilitando y Accesando Squid3 cachemgr en GUI<div style="text-align: justify;">
Hola, por ahi anda un post hacerca de squid2 y como habilitar su cachemgr para ver informacion bien a fondo de la operacion de squid, ese era para la rama 2, ahora bien como hacer lo mismo para squid3?</div>
<div style="text-align: justify;">
<br />
Version de Prueba:<br />
Pfsense 2.2.4<br />
Squid Cache: Version 3.4.10<br />
IP de Pfsense en mi red: 192.168.1.1<br />
<br /></div>
Hay un post en el foro en Ingles:<br />
<br />
<a href="https://forum.pfsense.org/index.php?topic=67607.0">https://forum.pfsense.org/index.php?topic=67607.0</a><br />
<br />
Lo intente, pero no me funciono, revise mi post anterior e hice unas modificaciones,<br />
<br />
cd /usr/local/www/<br />
<br />
ln -s /usr/pbi/squid-i386/local/libexec/squid/cachemgr.cgi<br />
ln -s /usr/pbi/squid-i386/etc/squid/cachemgr.conf<br />
<br />
<div style="text-align: justify;">
NOTA: Recordar que la arquitectura indica la ruta en mi caso es un x32 la x64 cambia esa parte solamente, revisen su caso.</div>
<br />
Editar el archivo:<br />
<br />
/usr/pbi/squid-i386/etc/squid/cachemgr.conf<br />
<br />
Quedaria como lo indica la siguiente imagen:<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-G1lQfoz5Ohg/VjJTrtijAWI/AAAAAAAAA1I/bQDXmjjm7yQ/s1600/cachemgr-conf.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="171" src="http://2.bp.blogspot.com/-G1lQfoz5Ohg/VjJTrtijAWI/AAAAAAAAA1I/bQDXmjjm7yQ/s320/cachemgr-conf.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figura 1 Archivo cachemgr.conf editado.</td></tr>
</tbody></table>
Editar squid.conf, busca esta linea:<br />
<br />
acl localhost src 127.0.0.1/32 pasa a ==> 192.168.1.1/32<br />
<br />
Salvan.<br />
<br />
<div style="text-align: justify;">
Vamos a dejar un parametro por default, si desean hacerlo solo cuando lo necesiten lo modifican directamente en squid.conf y reconfigure, pero si desean que se quede de fabrica asi cuando reinicien se mantega siempre esta configuracion.</div>
<div style="text-align: justify;">
<br /></div>
Antes de editar el siguiente archivo le sacan una copia, se van a /usr/local/pkg/<br />
<br />
Uno de los archivos es squid.xml, pero antes de sacarle una copia.<br />
<br />
<div style="text-align: justify;">
Editan el archivo squid.xml, deben agregar lo indicado en la siguiente figura, esta parte no existe es el archivo que da forma a el contenido que ustedes ven en el GUI para squid, estan hackeando el sistema ;-), </div>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-Pmy7MkHxAK4/VjJUlUUxe9I/AAAAAAAAA1Q/c8HpbxKIRkk/s1600/squid-xml.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="137" src="http://2.bp.blogspot.com/-Pmy7MkHxAK4/VjJUlUUxe9I/AAAAAAAAA1Q/c8HpbxKIRkk/s320/squid-xml.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figura 2 Archivo squid.xml editado.</td></tr>
</tbody></table>
<div style="text-align: justify;">
Si ven la imagen anterior ahi viene lo que tenemos que agregar, asi debe quedar solo recordar cambiar el IP por que tiene su caja pfsense como LAN.</div>
<tab></tab><br />
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
El 2do archivo es squid.inc, vean en la figura 3 como debe quedar y la nota que les puse:</div>
<div style="text-align: justify;">
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-yuxGMJzbmjM/UxIZem1GrRI/AAAAAAAAAvI/4_fhCHRF8MI/s1600/squid-inc.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="160" src="http://1.bp.blogspot.com/-yuxGMJzbmjM/UxIZem1GrRI/AAAAAAAAAvI/4_fhCHRF8MI/s1600/squid-inc.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figura 3.</td></tr>
</tbody></table>
<br />
De ahi en ese mismo archivo buscan algo similar a la siguiente imagen:<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-uGkS8u5HjiU/VjJWejCMBcI/AAAAAAAAA1c/e1NMeePmO-c/s1600/squid-inc-2.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="94" src="http://1.bp.blogspot.com/-uGkS8u5HjiU/VjJWejCMBcI/AAAAAAAAA1c/e1NMeePmO-c/s320/squid-inc-2.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figura 4.</td></tr>
</tbody></table>
<span style="text-align: justify;">En ambos casos esos parametros no existen, deben agregarlos.</span><br />
<span style="text-align: justify;"><br /></span>
<span style="text-align: justify;">Este archivo es uno de los que usa pfsense para crear el famoso squid.conf, asi cualquier cambio aqui quedara impreso en ese archivo cuando reiniciemos, asi que cuidado con lo que le hacen.</span><br />
<div style="text-align: justify;">
<br />
De ahi nos vamos a la configuracion de squid en el GUI, a este menu: Squid Proxy Server->Local Cache.<br />
<br />
Buscamos la seccion que indica la figura 5 y agregamos en el campo 'External Cache Managers' la IP de nuestro pfsense, ver siguiente imagen.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-ENMr3In0zME/VjJYl6TmYKI/AAAAAAAAA1s/B6A7VCd7PjE/s1600/gui2.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="168" src="http://1.bp.blogspot.com/-ENMr3In0zME/VjJYl6TmYKI/AAAAAAAAA1s/B6A7VCd7PjE/s320/gui2.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figura 5.</td></tr>
</tbody></table>
Ya hecho todo esto, es cosa de reiniciar el servicio atraves del GUI, esto se hace dandole a el boton 'Save' en la parte baja del GUI.</div>
<br />
Ahora, cuando vayan a la seccion de squid, van a ver una pestana nueva, ver figura 6.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-nxOGHsntP6A/VjJXaxXJUfI/AAAAAAAAA1k/MaI3lu-sCJU/s1600/gui1.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="130" src="http://4.bp.blogspot.com/-nxOGHsntP6A/VjJXaxXJUfI/AAAAAAAAA1k/MaI3lu-sCJU/s320/gui1.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figura 6.</td></tr>
</tbody></table>
Le dan un click y van a ver algo similar a lo siguiente, ver figura 7.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-RlMGHC550P0/VjJZlwXiIYI/AAAAAAAAA10/soJ-Q69Elvg/s1600/cachemgr.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="165" src="http://2.bp.blogspot.com/-RlMGHC550P0/VjJZlwXiIYI/AAAAAAAAA10/soJ-Q69Elvg/s320/cachemgr.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figura 7.</td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: left;">
<span style="text-align: justify;">Empicen a revisar cada seccion, no todas estan disponibles pero muchas son de vital informacion hacerca del desempeno de squid.</span></div>
<div class="separator" style="clear: both; text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: justify;">
Espero esto les sirva de algo en su camino por este gran sistema, saludos.</div>
<div class="separator" style="clear: both; text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: justify;">
Necesitan ayuda, claro via $$$ pheriko arroba gmail punto com.</div>
Unknownnoreply@blogger.com3tag:blogger.com,1999:blog-3419696413132675684.post-72758392293387209942014-02-24T10:55:00.001-08:002014-02-24T10:55:17.043-08:00Pfsense 2.x y Discos Duros Grandes Problemas al arrancar.<div style="text-align: justify;">
Ahi veces que Pfsense le batalla identificar el disco duro o bien se instala pero al arrancar se queda colgado.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Les voy a platicar un poco de lo que me sucede a mi, tengo un servidor algo viejo, P4 Duo Core tipo servidor, no es un equipo tipo desktop, tiene etiqueta de Servidor.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Este equipo tiene muchas opciones en el BIOS, muy buena maquina, pero mi gran pelea me la dio, la cosa era que yo tengo un disco duro SATA 320GB SATAII, tuve que jugarle en el BIOS hasta que pfsense 2.1 lograra detectar el disco.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Esta fue mi 1er gran pelea.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
De ahi viene la parte rara, se hacia la instalacion, le decia que agarrar todo el disco y todo bien, se instalaba, pero cuando iniciaba el arranque me ponia el menu, F1 para arancar.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Cuando yo apretaba F1, se ponia el iconito que empieza a dar vueltas cuando arranca, pero se congelaba, ahi quedaba.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Por alguna razon, el problema radicaba en el tamano del disco, algo me decia que por ahi iba encaminado el problema.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Ahora analizando un poco, vamos entendiendo un firewall, es un sistema para protegernos del mundo exterior, claro que con pfsense tenemos muchos programas que nos ayudan a proteger aun mas nuestras redes.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
En mi caso la idea es implementar un web-proxy con squid3. Vamos viendo un poco el panorama de squid.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Squid es un web-proxy con opcion de ser u reverse proxy(Ingles), yo quiero que mis clientes crucen hacia Internet atraves de el, asi puedo yo implementar politicas de accesos(ACL) y controlar por medio de grupos, quien puede y quien no puede ir a ciertas paginas, quien tiene acceso ilimitado, etc.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Un mundo de cosas que nos permite squid, pero es necesario darle un disco de 320GB???</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
La respuesta es NO, si leen un poco como opera squid, en una empresa de por ejemplo 100 estaciones, un cache de 8 o 16GB es mas que suficiente, si mas tambien no es problema, siempre y cuando no se este guardando paginas dinamicas, si es el caso si requieren mas espacio para cache.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Aqui en mi situacion, lo que requiero es mucha memoria, minimo 1-2GB para sacarle provecho, entonces yo particionar mi disco de 320GB para Pfsense es una perdida de espacio, por que squid no lo va a usar, ahi que entender un poco sus algoritmos, no los va a usar.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Entonces lo que hice fue, 1 Particion de 20GB la cual quedo asi:</div>
<div style="text-align: justify;">
Aprox. 19.5GB /</div>
<div style="text-align: justify;">
512M SWAP</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Otro aspecto lo cual les decia que para squid memoria es la que si necesita, 512MB swap por que solo sigo las reglas de dejar cierta proporcion para swap, pero yo en lo personal cuando uno de mis servidores o firewalls usa la swap es momento de revisar y ver como optimizar las aplicaciones o bien, si no hay mas es incrementar la memoria, nunca depender de la SWAP.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Mi equipo tiene 4GB, 1.5-2GB--> squid, y ciertos parametros extras en la config para meter mas objetos grandes en ella y el resto a disco duro.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Ya hecho esto, indicandole a Pfsense estos cambios, logre que mi firewall preferido arrancara sin problema alguno, a lo mejor mas adelante necesite mas espacio, pero segun mi experiencia, pasaran mas de 24 meses para que esto pase o lo mejor mas.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Se los dejo esto como nota, saludos.</div>
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3419696413132675684.post-17326764574084721462014-01-27T11:10:00.000-08:002014-01-28T17:08:31.501-08:00FreeBSD 10: MAKE_JOBS_UNSAFE=yesAndo probando FreeBSD 10 x64, el plan es actualizar mi Spam Gateway, primero que nada todos nuestras aplicaciones deben compilarse, un spam filter lleva muchos programitas para funcionar, con el simple hecho de irse a amavisd-new, darle make config, nos muestra una infinidad de opciones.<br />
<br />
Hay una que nos detuvo la tarea:<br />
<br />
Freeze.<br />
<br />
Nos marca un error asi:<br />
<br />
freeze-2.5.tar.gz 100% of 35 kB 49 kBps 00m01s<br />
===> Fetching all distfiles required by freeze-2.5_2 for building<br />
===> Extracting for freeze-2.5_2<br />
=> SHA256 Checksum OK for freeze-2.5.tar.gz.<br />
===> Patching for freeze-2.5_2<br />
===> Applying FreeBSD patches for freeze-2.5_2<br />
===> Configuring for freeze-2.5_2<br />
===> FreeBSD 10 autotools fix applied to /usr/ports/archivers/freeze/work/freeze-2.5/configure<br />
checking how to run the C preprocessor<br />
checking for unaligned access<br />
checking integer size<br />
checking for 64K segments<br />
checking for long file names<br />
checking for directory library header<br />
checking for dirent.h<br />
checking for closedir return value<br />
checking for sys/stdtypes.h<br />
checking for rindex<br />
checking for setlinebuf<br />
checking for freeze to derive installation directory prefix<br />
creating config.status<br />
creating Makefile<br />
creating config.h<br />
===> Building for freeze-2.5_2<br />
make[3]: make[3]: don't know how to make CFLAGS. Stop<br />
<br />
make[3]: stopped in /usr/ports/archivers/freeze/work/freeze-2.5<br />
===> Compilation failed unexpectedly.<br />
Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to<br />
the maintainer.<br />
*** Error code 1<br />
<br />
Stop.<br />
make[2]: stopped in /usr/ports/archivers/freeze<br />
*** Error code 1<br />
<br />
Stop.<br />
make[1]: stopped in /usr/ports/security/amavisd-new<br />
*** Error code 1<br />
<br />
Stop.<br />
make: stopped in /usr/ports/security/amavisd-new<br />
root@fbsd10:/usr/ports/security/amavisd-new #<br />
<br />
Ya hemos leido al respecto, pero no hemos dado como solucionarlo, estamos ya en los foros viendo como arreglar este problema que varios programas segun google estan mostrando, esperemos pornto dar con el problema, saludos.<br />
<br />
2014-01-28<br />
<br />
No he hecho nada de hack, solo le actualice los ports y segui instalando paquetes para ver si alguno tronaba, ya que mi plan es migrar mi spam filter a esta versio, por obra del espiritu santo ya se logra instalar esa aplicacion.<br />
<br />
Saludos.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3419696413132675684.post-63504799190283874012013-10-30T17:45:00.000-07:002013-10-30T17:45:11.627-07:00Pfsense 2.x: squid3 no cache nada.Hola, les voy a platicar algo que me ha tocado vivir y a lo mejor ustedes tambien han pasado por esto.<br />
<br />
Estoy trabajando con pfsense 2.1 con squid3, lo instale configure y todo el asunto, pero al paso del poco tiempo me di cuenta que no estaba mi cache trabajando.<br />
<br />
Me fui a revisar el folder donde pfsense almacena esos folders creados:<br />
<br />
/var/squid/cache<br />
<br />
Estaban todos mis folders creados, opcion de fabrica: 16 directorios.<br />
<br />
Permisos bien, pero no estaba almacenando nada en el cache, como se?<br />
<br />
Bien, cuando busque la palabra HIT en mi log:<br />
<br />
grep HIT /var/squid/logs/access.log<br />
<br />
Solo salio 1 solo registro y ya tenia rato trabajando en el equipo, reinicie el sistema para ver esto de alguna manera squid checa su cache antes de arrancar.<br />
<br />
El problema continuaba, entonces otros usuarios pasaban por lo mismo, lo que hice en mi caso es que si sabran squid puede uno borrar el cache y volver a crearlo esto es algo normal, pero uno esta acostumbrado a que todo funciona a la 1ra.<br />
<br />
Desgraciadamente a veces esto no sucede, entonces lo que hice fue esto, 1ro que nada mi batch tenia que hacer lo siguiente:<br />
<br />
#!/bin/sh<br />
<br />
#1; Irnos a el folder donde esta el cache<br />
<br />
cd /var/squid/cache<br />
#2; Borrar cache:<br />
<br />
rm -rf ./*<br />
#3; crear cache de nuevo.<br />
<br />
squid -z<br />
#fin de batch.<br />
<br />
Lo salvo con el nombre de crear-cache.sh<br />
<br />
<br />
Poner el batch en modo de ejecucion:<br />
<br />
chmod +x crear-cache.sh<br />
<br />
Ahora si, ya con mi batch listo hice esto:<br />
<br />
1; Parar el servicio por el GUI.<br />
2; Revisar que ya no este ninguna instancia de squid en ejecucion:<br />
<br />
ps -ax | grep squid<br />
<br />
3; Ejecutar mi batch<br />
sh crear-cache.sh<br />
<br />
4; Revisar que se hayan creado todos mis 16 directorios.<br />
<br />
Con todo esto hecho, era cosa de iniciar el servicio atraves de la GUI.<br />
<br />
Servicio arriba, ejecutar el ccleaner para borrar todos los caches de los navegadores ya que ellos tambien guardan de paginas visitadas.<br />
<br />
Empece a navegar y despues de un rato usando los 3 navegadores: firefox, iexplore, chrome entrando a las mismas paginas, esto forza a usar el cache, empece a ver los:<br />
<br />
TCP_MEM_HIT<br />
<br />
Ya estoy usando mi cache, iba a tardar un poco en ver el registro:<br />
<br />
TCP_HIT<br />
<br />
Por que recuerden que 1ro se usa la memoria y despues el disco.<br />
<br />
LLeve a cabo otra instalacion para ver si habia un problema con la instalacion que lleva a cabo pfsense, pero en el otro equipo no hubo ningun problema. se instalo, configure el cache y empezo a funcionar sin hacer todo lo anterior, entonces puedo decir que fue algo mas especifico con la maquina.<br />
<br />
Bien, aqui les dejo esto, saludos.<br />
<br />
Unknownnoreply@blogger.com10tag:blogger.com,1999:blog-3419696413132675684.post-39026106831852399952013-10-25T17:12:00.003-07:002013-10-25T17:15:03.202-07:00Pfsense 2.x: squidGuard redirector warning.<div style="text-align: justify;">
Hola, bien este es un comentario para todos aquellos que tengan su pfsense con squid+squidGuard, cuando lo tengan ya operando, revisen el log de squid:</div>
<br />
<span style="font-size: x-small;"><b>/var/squid/logs/cache.log</b></span><br />
<br />
Ya que por default squidGuard tiene de fabrica abrir solo 5 hilos del redirector o sea el.<br />
<br />
<div style="text-align: justify;">
<span style="font-size: x-small;"><b>9573 ?? SN 0:02.30 (squidGuard) -c /usr/pbi/squidguard-squid3-i386/etc/squidGuard/squidGuard.conf (squidGuard)<br /> 9712 ?? IN 0:00.42 (squidGuard) -c /usr/pbi/squidguard-squid3-i386/etc/squidGuard/squidGuard.conf (squidGuard)<br /> 9935 ?? IN 0:00.31 (squidGuard) -c /usr/pbi/squidguard-squid3-i386/etc/squidGuard/squidGuard.conf (squidGuard)<br />10084 ?? IN 0:00.25 (squidGuard) -c /usr/pbi/squidguard-squid3-i386/etc/squidGuard/squidGuard.conf (squidGuard)<br />10110 ?? IN 0:00.22 (squidGuard) -c /usr/pbi/squidguard-squid3-i386/etc/squidGuard/squidGuard.conf (squidGuard)<br />10150 ?? IN 0:00.20 (squidGuard) -c /usr/pbi/squidguard-squid3-i386/etc/squidGuard/squidGuard.conf (squidGuard) </b></span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Entonces, esto esta bien uno solo en su casita, pero cuando ya estas hablando mas de 1 usuario ahi viene lo interesante, te hablan que esta lento, que si funciona pero lento o que no hay servicio, llegas y se cayo.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Un log que debemos siempre buscar y a lo mejor ya ajustado no lo vamos a ver por mucho tiempo es este:</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-size: x-small;"><b>2013/10/25 09:44:24| WARNING: All redirector processes are busy.<br />2013/10/25 09:44:24| Consider increasing the number of redirector processes in your config file.</b></span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
El mismo dice que el servicio esta ocupado, que debemos incrementar la cantidad, uno puede entrar a la config de squid en la pestaña: General.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
En la parte de abajo esta configurado la parte donde squid envia el trabajo a squidGuard y mas o menos asi esta:</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-size: x-small;"><b>redirect_program /usr/pbi/squidguard-squid3-i386/bin/squidGuard -c /usr/pbi/squidguard-squid3-i386/etc/squidGuard/squidGuard.conf;redirector_bypass off;url_rewrite_children 5</b></span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Podemos ajustar ahi, pero pasa algo, este parametro viene de las configuraciones de fabrica de pfsense, si reiniciamos el servidor, esta parte se pierde y coloca por default la que tiene en:</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-size: x-small;"><b>/usr/local/pkg/squidguard_configurator.inc</b></span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Busquen la linea:</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-size: x-small;"><b>define('REDIRECTOR_PROCESS_COUNT', '5'); # redirector processes count will started </b></span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Ahi es donde se debe cambiar si desean que se mantenga en cada reinicio y este valor es el que se colocara en la configuracion de squid.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Les recomiendo que lo incrementen de 5 en 5, por que?</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Si se dan cuenta, cada uno de ellos consume memoria, entonces, si dicen, vamos a ponerle 100 para no estar batallandole,estamos mal, vean lo siquiente:</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-OdV1W_-nXEA/UmsGSjmsXkI/AAAAAAAAAuA/YbNsQKrjhr0/s1600/squidg.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="http://4.bp.blogspot.com/-OdV1W_-nXEA/UmsGSjmsXkI/AAAAAAAAAuA/YbNsQKrjhr0/s320/squidg.JPG" width="274" /></a></div>
<br />
<div style="text-align: justify;">
Dice que estamos utilizando cerca de 67MB x cada uno de ellos, entonces nomas recuerden que nunca debemos usar la memoria virtual, aqui aun no hemos llegado a eso pero debemos estar al pendiente de monitorear este log, este tipo de sistemas no son de ponerlos 1dia y olvidarse de ellos, debemos estar minimo 2 semanas revisando, siempre requieren ajuste hasta dejarlo como filo de bisturo, a lo mejor hasta memoria vamos a requerir, aun no sabemos.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Estos ejemplos son de un equipo corriendo pfsense 2.1 i386 1GB RAM, cache de squid deshabilitado.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Nos vemos pronto,Saludos.</div>
Unknownnoreply@blogger.com3tag:blogger.com,1999:blog-3419696413132675684.post-66418911586996493732013-10-02T17:40:00.000-07:002013-10-02T17:40:17.656-07:00Pfsense 2: Habilitando squid 2.x cachemgr.<div style="text-align: justify;">
Hola, hace tiempo que no escribo nada, tengo muchas cosas en la cabeza, pero aqui me estoy dando un tiempo para hacer esto, creo que es momento de hacer un libro de pfsense+squid+squidguard...<br /><br />Muchos que manejamos squid, siempre estamos buscando como obtener datos de la operacion dia a dia de nuestro proxy, existen varios programas que nos ayuda, pero algo importante es que el mismo squid, trae ya una utileria via web que podemos consultar para tocarle el pulso y ver como anda operando.<br /><br />Trae tanta informacion que hasta el momento no he encontrado tanta informacion sobre sus partes mas internas en otra utileria libre.<br /><br />Pero antes de esto vamos aclarando que eso lo encontre en el foro gabacho de pfsense, y esta basado en squid 2.7.x, no importa si es pfsense 2.0.x o ya la rama nueva, funciona.<br /><br />Aclarando esto, es momento de explicar que vamos a editar el archivo fuente de pfsense para hechar a volar squid, este se localiza en:<br /><br /><blockquote class="tr_bq">
/usr/local/pkg/squid/squid.inc</blockquote>
<br />Antes de hacer un respaldo para cualquier problema que se les presente puedan retornarlo a su estado original.<br /><br />cp squid.inc backup-squid.inc<br /><br />Otra cosa estos son mis datos:<br /><br />Mi Pfsense tiene el IP: 192.168.2.4 Puerto 249 https<br />Se llama gw.midominio.org<br /><br />Abrimos el archivo squid.inc y buscamos esta linea:<br /><br /><blockquote class="tr_bq">
acl localhost src 127.0.0.1/255.255.255.255</blockquote>
<br />Le pones comentario y la dejamos asi, ajusten a sus parametros:<br /><br /><blockquote class="tr_bq">
#acl localhost src 127.0.0.1/255.255.255.255<br />acl localhost src 192.168.2.4/255.255.255.255<br />cachemgr_passwd disable offline_toggle reconfigure shutdown<br />cachemgr_passwd none all</blockquote>
<br />Salvan.<br /><br />De ahi sigue editar el archivo cachemgr.conf localizado en donde se instala squid:<br /><br /><blockquote class="tr_bq">
/usr/local/etc/squid/</blockquote>
<br />Lo abro y lo dejo asi al final:<br /><br />#localhost<br />gw<br /><br />Salvan.<br /><br />De aqui sigue el ultimo paso, creamos un enlace hacia el folder root the el webserver de pfsense.<br /><br /><blockquote class="tr_bq">
cd /usr/local/www<br /><br />ln -s /usr/local/libexec/squid/cachemgr.cgi cachemgr.cgi </blockquote>
<br />Ya con esto, se van a su navegador y ponen la direccion de su pfsense asi como esta la figura-1, excepto que yo lo tengo apuntando a el puerto https 249, a lo mejor ustedes lo tienen de fabrica 80, 443, ahi ustedes hagan sus ajustes.</div>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-s-y-__EznNQ/Uky7Ot4jOYI/AAAAAAAAAtc/IYBOidQPb3U/s1600/cachemgr-1.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="161" src="http://1.bp.blogspot.com/-s-y-__EznNQ/Uky7Ot4jOYI/AAAAAAAAAtc/IYBOidQPb3U/s320/cachemgr-1.JPG" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figura 1: Pantalla de inicio</td><td class="tr-caption" style="text-align: center;"><br /></td></tr>
</tbody></table>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-EXS7pCEX6ww/Uky7OakqYsI/AAAAAAAAAtY/5t57_irP-S8/s1600/cachemgr-2.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="http://4.bp.blogspot.com/-EXS7pCEX6ww/Uky7OakqYsI/AAAAAAAAAtY/5t57_irP-S8/s320/cachemgr-2.JPG" width="149" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-53RNft3JAZ0/Uky7Oe5PKFI/AAAAAAAAAtg/Vel_tfY5slI/s1600/cachemgr-3.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="http://4.bp.blogspot.com/-53RNft3JAZ0/Uky7Oe5PKFI/AAAAAAAAAtg/Vel_tfY5slI/s320/cachemgr-3.JPG" width="152" /></a></div>
<br />
<div style="text-align: justify;">
Navegen en todas sus opciones, ahi tenemos tantos datos por analizar, agarren su google y a empezar a buscar mas informacion.</div>
<br />
Espero les sirva, saludos.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3419696413132675684.post-34406469169935412762013-04-16T17:44:00.003-07:002013-04-16T17:44:57.849-07:00Pfsense 2.0.3 liberada!!! Esta semana aparecio la actualizacion de la rama 2.0, que es la 3, trae principalmente parches de bugs importantes de seguridad, vamos empezar nuestro laboratorio para la migracion y ver que todo funcione.<br />
<br />
Mas info: <a href="http://blog.pfsense.org/?p=694">http://blog.pfsense.org/?p=694</a><br />
<br />
Saludos!!!Unknownnoreply@blogger.com10tag:blogger.com,1999:blog-3419696413132675684.post-59823588090869616412013-03-05T22:19:00.000-08:002013-03-05T22:19:42.573-08:00SQL Server 2008: Restaurar una base de datos Full+Diferencial.<div style="text-align: justify;">
A veces me da risa como las grandes compañias de software cobran tanto por su aplicacion, lees la documentacion tecnica y sigues paso a paso el manual, te muestran las opciones, estoy refiriendome a SQL Server 2008 restauracion de la base de datos.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Como decia, te explican las opciones de restauracion pero hasta ahi, no se meten mas a una forma de: asi se debe hacer.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Por que digo esto? Hoy me llamo una persona del departamento de Import-Export, ellos estan ya en fase de implementar un software llamado "Intrade", corre bajo SQL Server, y yo instale el server, version 2008 Estandard.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Entonces me llamo por que alguien de su equipo acceso a la configuracion del sistema ya que aun no tienen dados de alta los usuarios y todos estan usando el mismo que nos dieron cuando se instalo la 1ra vez y es admin o sea como root en Linux.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Entonces esta persona modifica y afecta cierta funcionalidad del sistema, claro esta que para estas alturas, los de soporte de Intrade ya no lo haran gratis, tendra un costo y al final ellos me contactaran a mi ya que ellos no tienen la menor idea de los respaldos.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Yo si :-), cuando se implemento el sistema lo primero que hice fue configurar los respaldos y probarlos, aqui implemente lo que hago con Bacula, Lunes Full, el resto diferencial de martes a sabado.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Si necesitara restaurar la BD, es tomar el ultimo Full+el ultimo diferencial, pero aqui sucedio algo chistoso, la persona lo modifico ayer Lunes durante el dia, entonces mi respaldo Full de ayer no sirve ya que la BD esta mal, no tiene sentido hoy restaurar lo de ayer, asi que tuve que sacar el Full de la semana pasada mas el ultimo diferencial de ese Full que fue el sabado.</div>
<br />
Bien ya todo entendido, hice mi procedimiento:<br />
<br />
1; Respaldo de la BD actual por aquello del no te entumas.<br />
2; Borrar BD que deseamos restaurar.<br />
3; Restaurar BD en base a un Full correcto(Lunes semana pasada).<br />
4; Restaurar BD en base a el ultimo diferencial del Full seleccionado(Sabado).<br />
5; Listo.<br />
<br />
<div style="text-align: justify;">
Pero o sorpresa en paso 4, se supone que el manual dice, seleccionas el respaldo diferencial deseado y dale, pero cuando le daba click a el boton OK, salia un error que dice mas o menos asi:</div>
<br />
<h3 class="post-title entry-title" itemprop="name">
The log or differential backup cannot be restored because no files are ready to rollforward.
</h3>
<div style="text-align: justify;">
Que paso, lei el manual detenidamente y no di en cual era el motivo del error, que habia hecho mal?</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Bien, no me preocupe, me fui con nuestro aliado google y encontre un doc que ya tiene tiempo pero ahi explicaban lo que Microsoft con todo su equipo tenico y manuales bonitos no logro hacerlo, este es el link, no me gusta saludar con sombrero ajeno:</div>
<br />
<a href="http://justgeeks.blogspot.mx/2009/03/log-or-differential-backup-cannot-be.html">http://justgeeks.blogspot.mx/2009/03/log-or-differential-backup-cannot-be.html</a><br />
<br />
<div style="text-align: justify;">
Lo que dice en pocas palabra es que cuando restauremos el Full nos vayamos a las opciones y selecciones la que dice:</div>
<br />
<span style="font-size: 100%;"><span style="font-family: arial; font-style: italic; font-weight: bold;">Leave
the database non-operational, and do not roll back uncommitted
transactions. Additional transaction logs can be restored.(RESTORE WITH
NORECOVERY)</span></span><br />
<span style="font-size: 100%;"><span style="font-family: arial; font-style: italic; font-weight: bold;"> </span></span> <br />
De ahi, ahora si restauremos la diferencial con las opciones por default y listo.<br />
<br />
<div style="text-align: justify;">
Segui el proceso con esas sugerencias y listo, ya no arrojo ese maldito error, no fue una empresa que vale billones de dolares y tienen de los mejores tecnicos en BD la que me ayudo y me explico de una manera clara y objetiva como hacerlo, fue alguien como yo que vive esto dia a dia y sabe que la doc de esa gran empresa es un fiasco cuando en realidad te enfrentas a los problemas reales.</div>
<br />
Los de Import-Export revisaron y si estaba la BD en el estado adecuado.<br />
<br />
Saludos!!!<br />
<br />Unknownnoreply@blogger.com4tag:blogger.com,1999:blog-3419696413132675684.post-59190166844316217642013-02-24T22:16:00.005-08:002013-02-24T22:16:34.108-08:00Centos 5/6: Instalar Percona XtraBackup.<div style="text-align: justify;">
<b>XtraBackup </b>es un software que nos permite respaldar base de datos de MySQL del tipo <b>Innodb </b>sin necesidad de apagar el servicio y hacerlo manualmente, lo hace con la BD en operacion lo cual a nosotros los sysadm nos ayuda mucho.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Es gratuita pero ellos tambien tiene la version que comercializan por si alguien desea soporte profesional.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Existen para varias versiones de <b>Linux </b>segun sea su tipo de instalador, como sabran yo sigo con <b>Centos</b>, y estoy con la version 6 pero debe operar para la 5 sin problemas, <b>Percona </b>esta en este momento ofreciendo la version 2.0.5 asi que procedemos a bajarlo en formato rpm.</div>
<br />
Lo instalamos:<br />
<br />
<span style="background-color: #a2c4c9;">rpm -i percona-xtrabackup-2.0.5-499.rhel6.x86_64.rpm</span><br />
<br />
<div style="text-align: justify;">
Algo que no han arreglado y en la doc no lo mencionan ya que esta el reporte o bug, por que digo esto?</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Bien si seguimos el doc de como respaldar, al momento de ejecutar sin ningun argumento el comando <b>innobackupex </b>les a salir este error:</div>
<br />
<span style="background-color: #a2c4c9;">innobackupex<br />Can't locate Time/HiRes.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /usr/bin/innobackupex line 22.<br />BEGIN failed--compilation aborted at /usr/bin/innobackupex line 22.</span><br />
<br />
<div style="text-align: justify;">
No soy un guru pero como que entiendo que nos falta algo, alguna libreria, este software esta basado en <b>Perl </b>asi que googleando un poco, nos falta instalar esta libreria <b>perl-Time-HiRes</b>, asi que procedemos:</div>
<br />
<span style="background-color: #a2c4c9;">yum install perl-Time-HiRes</span><br />
<br />
Ahora vamos ejecutando el commando de nuevo sin ningun parametro:<br />
<br />
<span style="background-color: #a2c4c9;">innobackupex<br />innobackupex: You must specify the backup directory.</span><br />
<br />
Ya cambio el mensaje, esta listo para ser utilizando, que es el siguiente doc, saludos!!!<br />
<br />
<b>pmoreno arroba bajaopensolutions punto com</b><br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3419696413132675684.post-59396688571780984892013-02-24T21:34:00.003-08:002013-02-24T21:34:33.448-08:00Centos: Como resetear el root password de MySQL 5?<div style="text-align: justify;">
Que pasa cuando se te olvida el password del root en MySQL 5.x? te sientes bien estupido, la gran ventaja es que este es un servidor que aun no entra en operacion asi que no pasa nada, si te sucede con uno de producción entonces si sientete estupido.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Esto debe funcionar tanto para Centos 5 como 6 en la version de MySQL 5.x, los pasos son sencillos:</div>
<br />
<b>1; Apagar el servicio si esta en operacion:</b><br />
<br />
<span style="background-color: #a2c4c9;">service mysqld stop</span><br />
<span style="background-color: #a2c4c9;">Stopping mysqld: [ OK ]</span><br />
<br />
<b>2; Iniciar el servicio con la opcion --skip-grant-tables.</b><br />
<br />
<span style="background-color: #a2c4c9;">/usr/bin/mysqld_safe --skip-grant-tables &<br />[1] 2965<br />[root@oerp61 mysql]# 130224 21:25:03 mysqld_safe Logging to '/var/log/mysqld.log'.<br />130224 21:25:03 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql</span><br />
<br />
<b>NOTA: Dale ENTER ya que a veces se queda colgado y no retorna la consola.</b><br />
<br />
<b>3; Entramos a la consola de MySQL:</b><br />
<br />
<span style="background-color: #a2c4c9;">mysql</span><br />
<span style="background-color: #a2c4c9;">Welcome to the MySQL monitor. Commands end with ; or \g.<br />Your MySQL connection id is 1<br />Server version: 5.1.67 Source distribution<br /><br />Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.<br /><br />Oracle is a registered trademark of Oracle Corporation and/or its<br />affiliates. Other names may be trademarks of their respective<br />owners.<br /><br />Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.<br /><br />mysql></span><br />
<br />
<b>4; Cambiamos el password con comandos SQL asi se va directo a el corazon de la BD:</b><br />
<b>NOTA: Pongan el password que ustedes decidan.</b><br />
<br />
<br />
<span style="background-color: #a2c4c9;">UPDATE mysql.user SET Password=PASSWORD('123456');<br />Query OK, 3 rows affected (0.00 sec)<br />Rows matched: 3 Changed: 3 Warnings: 0</span><br />
<br /><span style="background-color: #a2c4c9;">mysql></span><br />
<span style="background-color: #a2c4c9;"><br /></span>
<span style="background-color: #a2c4c9;">FLUSH PRIVILEGES;<br />Query OK, 0 rows affected (0.00 sec)<br /><br />mysql></span><br />
<br />
<br />
<b>5; Salimos.</b><br />
<br />
<span style="background-color: #a2c4c9;">mysql>quit</span><br />
<br />
<b>6; Apagamos el servicio de nuevo:</b><br />
<br />
<span style="background-color: #a2c4c9;">service mysqld stop<br />130224 21:27:19 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended<br />Stopping mysqld: [ OK ]<br />[1]+ Done /usr/bin/mysqld_safe --skip-grant-tables</span><br />
<br />
<b>7; Lo iniciamos.</b><br />
<br />
<span style="background-color: #a2c4c9;">service mysqld start<br />Starting mysqld: [ OK ]</span><br />
<br />
<b>8; Probamos el nuevo password asignado:</b><br />
<br />
<span style="background-color: #a2c4c9;">mysql -u root -p<br />Enter password: <b><== ingresamos nuevo password.</b><br />Welcome to the MySQL monitor. Commands end with ; or \g.<br />Your MySQL connection id is 2<br />Server version: 5.1.67 Source distribution<br /><br />Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.<br /><br />Oracle is a registered trademark of Oracle Corporation and/or its<br />affiliates. Other names may be trademarks of their respective<br />owners.<br /><br />Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.<br /><br />mysql> </span><br />
<br />
9; Listo a seguir trabajando y tatuarnos el password, saludos!!!Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3419696413132675684.post-47477417424638536382013-02-19T10:14:00.007-08:002013-02-19T10:23:51.320-08:00Ubuntu 12: Configurar APC BackupUPS USB con apcupsd.<div style="text-align: justify;">
Necesito configurar mi desktop corriendo Ubuntu 12.x para que se apague cuando se nos va la luz, el modelo que me llego es el:</div>
<br />
Backup UPS 550.<br />
<br />
<div style="text-align: justify;">
Viene con su cable para monitorear su alimentacion el cual de lado del equipo es una conector RJ45 y de lado de la computadora es un USB.</div>
<br />
<div style="text-align: justify;">
Conectado el cable a la pc es necesario confirmar que nuestra PC pueda ver ese equipo asi podremos estar seguros que esto va a funcionar:</div>
<br />
2.692667] usbcore: registered new interface driver usb-storage<br />
[ 18.528092] usb 4-2: new low-speed USB device number 3 using ohci_hcd<br />
[ 18.959393] generic-usb 0003:051D:0002.0002: hiddev0,hidraw1: USB HID v1.10 Device [APC Back-UPS ES 550 FW:843.K2 .D USB FW:K2 ] on usb-0000:00:12.0-2/input0<br />
<br />
Ahi lo tienen, viene hasta el modelo detectado.<br />
<br />
<div style="text-align: justify;">
Como mencione el software que vamos a usar es apcupsd su sitio como muchos sabran se localiza en:</div>
<br />
<a href="http://www.apcupsd.com/">http://www.apcupsd.com/</a><br />
<br />
Asi que procedemos a la instalacion:<br />
<br />
apt-get install apcupsd<br />
<br />
Este nos trajo la version:<br />
<br />
<span style="background-color: #a2c4c9;">apcupsd 3.14.10-1 APC UPS Power Management (daemon)</span><br />
<br />
Segun el manual la configuracion es muy sencilla:<br />
<br />
<span style="background-color: #a2c4c9;">## apcupsd.conf v1.1 ##<br />UPSCABLE usb<br />UPSTYPE usb<br />DEVICE<br />LOCKFILE /var/lock<br />UPSCLASS standalone</span><br />
<br />
<div style="text-align: justify;">
Abran su archivo de configuracion /etc/apcupsd/apcupsd.conf, busquen esos parametros y modifiquenlos tal cual dice el manual.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
De ahi sigue pedirle a Ubuntu que habilite el servicio, para esto abran el archivo:</div>
<div style="text-align: justify;">
<br /></div>
<span style="background-color: #a2c4c9;">/etc/defaults/apcupsd</span><br />
<br />
Y dejen este parametro asi:<br />
<br />
<span style="background-color: #a2c4c9;">ISCONFIGURED=yes</span><br />
<br />
Salvan y salen.<br />
<br />
<div style="text-align: justify;">
Ya solo es cuestion de ver si gustan jugar con los parametros de cuando apagar la pila los que tienen a mi me han funcionado pero cada quien.</div>
<br />
Ya con esto listo es cuestion de hechar a volar servicio:<br />
<br />
<span style="background-color: #a2c4c9;">service apcupsd start<br />Starting UPS power management: apcupsd.</span><br />
<br />
La prueba de fuego, ejecuten este comando:<br />
<br />
apcaccess <br />
<br />
<span style="background-color: #a2c4c9;">APC : 001,034,0875<br />DATE : 2013-02-19 10:06:21 -0800 <br />HOSTNAME : my-pc<br />VERSION : 3.14.10 (13 September 2011) debian<br />UPSNAME : BackupUPS 550<br />CABLE : USB Cable<br />DRIVER : USB UPS Driver<br />UPSMODE : Stand Alone<br />STARTTIME: 2013-02-19 10:06:20 -0800 <br />MODEL : Back-UPS ES 550 <br /><i><b>STATUS : ONLINE </b></i><br />LINEV : 123.0 Volts<br />LOADPCT : 36.0 Percent Load Capacity<br />BCHARGE : 100.0 Percent<br />TIMELEFT : 14.4 Minutes<br />MBATTCHG : 5 Percent<br />MINTIMEL : 5 Minutes<br />MAXTIME : 0 Seconds<br />SENSE : Medium<br />LOTRANS : 092.0 Volts<br />HITRANS : 139.0 Volts<br />ALARMDEL : 30 seconds<br />BATTV : 13.5 Volts<br />LASTXFER : No transfers since turnon<br />NUMXFERS : 0<br />TONBATT : 0 seconds<br />CUMONBATT: 0 seconds<br />XOFFBATT : N/A<br />STATFLAG : 0x07000008 Status Flag<br />SERIALNO : 3B1044X16904 <br />BATTDATE : 2010-10-27<br />NOMINV : 120 Volts<br />NOMBATTV : 12.0 Volts<br />FIRMWARE : 843.K2 .D USB FW:K2<br />END APC : 2013-02-19 10:06:37 -0800</span><br />
<br />
<div style="text-align: justify;">
Vean el campo sombreado en <b>BOLD</b>, vamos hacer la prueba, quitemos la energia a ver que pasa:</div>
<br />
<span style="background-color: #a2c4c9;">Broadcast Message from root@my-pc <br /> (somewhere) at 10:08 ... </span> <br />
<br />
<span style="background-color: #a2c4c9;">Power failure on UPS BackupUPS 550. Running on batteries.</span><br />
<br />
Ahora que nos dice el comando apcaccess:<br />
<br />
<span style="background-color: #a2c4c9;">APC : 001,035,0924<br />DATE : 2013-02-19 10:08:14 -0800 <br />HOSTNAME : my-pc<br />VERSION : 3.14.10 (13 September 2011) debian<br />UPSNAME : BackupUPS 550<br />CABLE : USB Cable<br />DRIVER : USB UPS Driver<br />UPSMODE : Stand Alone<br />STARTTIME: 2013-02-19 10:06:20 -0800 <br />MODEL : Back-UPS ES 550 <br /><i><b>STATUS : ONBATT </b></i><br />LINEV : 000.0 Volts<br />LOADPCT : 27.0 Percent Load Capacity<br />BCHARGE : 091.0 Percent<br />TIMELEFT : 15.0 Minutes<br />MBATTCHG : 5 Percent<br />MINTIMEL : 5 Minutes<br />MAXTIME : 0 Seconds<br />SENSE : Medium<br />LOTRANS : 092.0 Volts<br />HITRANS : 139.0 Volts<br />ALARMDEL : 30 seconds<br />BATTV : 11.9 Volts<br />LASTXFER : Unacceptable line voltage changes<br />NUMXFERS : 1<br />XONBATT : 2013-02-19 10:08:04 -0800 <br />TONBATT : 11 seconds<br />CUMONBATT: 11 seconds<br />XOFFBATT : N/A<br />STATFLAG : 0x07060010 Status Flag<br />SERIALNO : 3B1044X16904 <br />BATTDATE : 2010-10-27<br />NOMINV : 120 Volts<br />NOMBATTV : 12.0 Volts<br />FIRMWARE : 843.K2 .D USB FW:K2<br />END APC : 2013-02-19 10:08:15 -0800</span><br />
<br />
<div style="text-align: justify;">
Ya notaron que esta corriendo con la bateria, bien que pasa cuando regresa la energia?</div>
<br />
<span style="background-color: #a2c4c9;">Broadcast Message from root@my-pc <br /> (somewhere) at 10:08 ... <br /> <br />Power has returned on UPS BackupUPS 550...</span><br />
<br />
<span style="background-color: #a2c4c9;">apcaccess <br />APC : 001,035,0947<br />DATE : 2013-02-19 10:10:40 -0800 <br />HOSTNAME : my-pc<br />VERSION : 3.14.10 (13 September 2011) debian<br />UPSNAME : BackupUPS 550<br />CABLE : USB Cable<br />DRIVER : USB UPS Driver<br />UPSMODE : Stand Alone<br />STARTTIME: 2013-02-19 10:06:20 -0800 <br />MODEL : Back-UPS ES 550 <br /><i><b>STATUS : ONLINE </b></i><br />LINEV : 123.0 Volts<br />LOADPCT : 27.0 Percent Load Capacity<br />BCHARGE : 074.0 Percent<br />TIMELEFT : 12.9 Minutes<br />MBATTCHG : 5 Percent<br />MINTIMEL : 5 Minutes<br />MAXTIME : 0 Seconds<br />SENSE : Medium<br />LOTRANS : 092.0 Volts<br />HITRANS : 139.0 Volts<br />ALARMDEL : 30 seconds<br />BATTV : 13.3 Volts<br />LASTXFER : Unacceptable line voltage changes<br />NUMXFERS : 1<br />XONBATT : 2013-02-19 10:08:04 -0800 <br />TONBATT : 0 seconds<br />CUMONBATT: 35 seconds<br />XOFFBATT : 2013-02-19 10:08:39 -0800 <br />STATFLAG : 0x07000008 Status Flag<br />SERIALNO : 3B1044X16904 <br />BATTDATE : 2010-10-27<br />NOMINV : 120 Volts<br />NOMBATTV : 12.0 Volts<br />FIRMWARE : 843.K2 .D USB FW:K2<br />END APC : 2013-02-19 10:10:54 -0800</span><br />
<br />
<div style="text-align: justify;">
Listo, todo operando ya solo es cuestion de que dejen que se drene la pila para que vean si su configuracion es la adecuada y en dado caso no sea asi hagan los ajustes.</div>
<br />
<br />Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-3419696413132675684.post-81981570065050370412013-02-16T12:25:00.000-08:002013-02-16T12:25:03.350-08:00Ubuntu 12: Instalacion de OpenERP 6.<div style="text-align: justify;">
Ya que estamos entrados con OpenERP v6, mi lado fuerte es Centos, pero como la mayoria de los manuales hablan de Ubuntu, decidi darme a la tarea de llevar a cabo la instalacion ya que deberia ser mas facil.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Pero me lleve la sorpresa que a el manual del OpenERP localizado en:</div>
<br />
<a href="http://doc.openerp.com/v6.1/install/linux/server/index.html">http://doc.openerp.com/v6.1/install/linux/server/index.html</a><br />
<br />
<div style="text-align: justify;">
Ahi vienen todas las dependencias que se deben instalar antes de proceder a la instalación, pero o sorpresa, le faltan, ya que ese doc fue hecho con la v10.x de Ubuntu que ya ha pasado algo de tiempo.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Entonces, solo voy a explicar lo que falta, lo demas es el mismo procedimiento o si gustan seguir en paralelo mi anterior post aunque habla de Centos no cambia, el proceso es muy parecido, algunas dependencias cambian en cuanto a sus nombres y es todo.</div>
<br />
Este post: <a href="http://pheriko.blogspot.mx/2013/02/centos-6-instalar-openerp-6.html">http://pheriko.blogspot.mx/2013/02/centos-6-instalar-openerp-6.html</a><br />
<br />
<div style="text-align: justify;">
Bien vamos a suponer que PostgreSQL ya esta instalado y todo listo para recibir OpenERP, entonces tenemos que instalar todo esto:</div>
<br />
Instalacion de dependencias:<br />
<br />
<span style="background-color: #a2c4c9;">apt-get install python-dateutil python-feedparser python-gdata python-ldap python-libxslt1 \<br />python-lxml python-mako python-openid python-psycopg2 python-pybabel python-pychart python-pydot \<br />python-pyparsing python-reportlab python-simplejson python-tz python-vatnumber \ </span><br />
<span style="background-color: #a2c4c9;">python-vobject python-webdav python-werkzeug python-xlwt python-yaml python-zsi \</span><br /><span style="background-color: #e06666;">python-setuptools python-cherrypy python-formencode python-dev gcc</span><br />
<br />
<b>NOTA</b>: Lo marcado en color rojo/rosa es lo que le falta a el manual.<br />
<br />
<div style="text-align: justify;">
Ahora si una vez instalado todo esto pueden seguir el manual o mi manual sin problemas, les debe funcionar tanto para openerp-server y openerp-web.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Una cosa mas, pense que la instalacion bajo Ubuntu iba a instalar algun batch para arranque auntomatico pero no, es el mismo caso que con Centos, entonces lo que estoy haciendo para arrancar el servicio es entrar con el usuario openerp y usando el comando screen:</div>
<br />
<span style="background-color: #9fc5e8;">screen</span><br />
<span style="background-color: #9fc5e8;">su openerp</span><br />
<span style="background-color: #9fc5e8;">openerp-server </span><br />
<span style="background-color: #9fc5e8;">Ctrl+d</span><br />
<span style="background-color: #9fc5e8;">screen</span><br />
<span style="background-color: #9fc5e8;">su - openerp</span><br />
<span style="background-color: #9fc5e8;">openerp-web </span><br />
<br />
<div style="text-align: justify;">
Aun no doy tampoco en el batch de arranque automatico, he intentado con algunos pero no funcionan, si saben de alguno me avisan, saludos!!!</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3419696413132675684.post-41404052105182323182013-02-09T14:56:00.001-08:002013-02-11T15:14:05.216-08:00Centos 6: Instalacion de OpenERP 6<div style="text-align: justify;">
Hemos estado trabajando, leyendo y entendiendo como instalar este gran ERP que ha dado la comunidad OpenSource, mucha de la documentacion esta basada en Ubuntu quien ya tiene el paquete listo para usar, pero como dicen, digo, si corre en Ubuntu corre en Centos.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Muchos de los manuales que lei, hablaban que la version de Python era la clave, Centos 6 viene por default con la version 2.6.6, por ello opte por tratar de hacerlo con esta version de Centos.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
La nube que tengo en la empresa esta soportada por Centos, no tengo problemas, para que meter otro OS como Ubuntu si no lo requiero?</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Continuando con OERP(Para ahorrar teclasos), una de las grandes preguntas era, que version usar? con cual arrancar mi curva de aprendizaje?</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Varios que lo han usado me comentaron que me fuera por la version 6.0, en el sitio de OERP, nos ofrecen la 7 que es la mas reciente, pero si nos vamos a la versiones anteriores en el sitio(older versions) tenemos 4:</div>
<br />
<ul>
<li>6.0</li>
<li>6.1</li>
<li>7.0</li>
<li>trunk</li>
</ul>
<div style="text-align: justify;">
Por ello mejor optamos por la que tiene mas en el mercado y mas instalaciones, esto nos da la certeza que si algo sale mal, alguien pudiera ya haberlo arreglado y darnos el parche, entonces elegimos la 6.0 que sigue LTS.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Una gran caracteristica de OERP, es que se basa en PostgreSQL, por que? Bien tengo mucho tiempo trabajando con MySQL, muchos de los sistemas que administro se basan en el, por que OERP no? No he preguntado ni lo voy hacer, por que ? Muy simple.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Quiero pensar que los que iniciaron este gran proyecto se dieron a la tarea de probar distintas bases de datos y que fueran de codigo abierto, y estoy seguro que PostgreSQL fue la mejor BD para este gran producto.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Yo nunca la he usado pero ya estoy aprendiendo hacerca de, y no lo he hecho por que muchos de las aplicaciones que manejo como bacula, un sistema de almacenaje fueron disenados para ella y yo no he tenido problemas serios, han sido muy leves y pocas pero muy pocas veces han sido problemas relacionados con MySQL en si, confio en ella plenamente, pero en este caso la historia es otra.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Es bueno conocer cosas nuevas, asi que vamos a tener que meternos con PostgreSQL.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Una cosa importante es que Centos a diferencia de Ubuntu viene con la version 8.4, bueno es una larga historia del por que RedHat/Centos hacen uso de estas versiones, son estables y no hay otra no los culpo, las cosas funcionan y es lo que importa.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Pero esta vez voy a irme mas arriba, nosotros vamos a trabajar con una version mas reciente de PostgreSQL, lo bueno que alguien ya hizo la tarea por nosotros asi que nos lo puso muy facil, la version sera la 9.2.</div>
<br />
<div style="text-align: justify;">
De ahi siguen varias dependencias de Python, por ello vamos a tener que instalar 2 repos, rpmforge y epel ya que el sistema base Centos no tiene todas pero alguien ya nos la dio facil.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
OERP 6.0 se basa en 2 aplicaciones, que son el servidor llamado openerp-server y openerp-web que es la interface con la que trabajaran los usuarios directamente, existe otra pero es la GUI que se instala en Windows, creo que hay tambien para Linux pero no la requiero yo, nosotros nos vamos a basar directamente con un navegador como firefox ejemplo.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
</div>
<div style="text-align: justify;">
Ya hemos explicado un poco a lo que nos vamos a enfrentar es momento de iniciar.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: center;">
<span style="font-size: large;">Instalacion del OS</span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Esto solo lo voy a comentar, vamos a trabajar como ya lo mencione en la version 6.3 release, mi caso es la arquitectura x64, un servidor debe ser siempre este tipo de hw, ya no compren nada x86, al menos que no tengan otra opcion, pero aun asi la instalacion debe funciona en la x86.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Una gran ventaja es que Centos 6 hizo algo que FreeBSD tiene desde hace mucho, puede hacer una instalacion con lo minimo y ya instalado empezar a meter todo lo que se vaya necesitando, esto me agrada mucho, solo tener lo que requerimos, nada mas.</div>
<div style="text-align: justify;">
</div>
<div style="text-align: justify;">
Instalen el OS, lo configuracion a su anotojo y lo actualizan antes de hacer cualquier instalacion, altamente recomendable lo actualicen.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Una vez actualizado, configurado a su antojo, lo reinician y seguimos lo que sigue.</div>
<br />
<div style="text-align: center;">
<span style="font-size: large;">Instalacion de Herramientas Basicas</span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
La version minima de Centos que les mencione no tiene las siguientes herramientas que vamos a requerir, asi que debemos instalarlas:</div>
<ul style="text-align: justify;">
<li>wget</li>
<li>telnet</li>
<li>vim</li>
</ul>
<div style="text-align: justify;">
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">yum install vim wget telnet</span></span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: center;">
<span style="font-size: large;">Instalacion de Repositorios Necesarios.</span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Como les comente, Centos base no proporciona todo lo requerido, asi que vamos a agregar los siguientes repos, estos los van a localizar rapido con google, pero aqui coloco los links por si tiene problemas de localizacion:</div>
<br />
<ul>
<li><a href="http://wiki.centos.org/AdditionalResources/Repositories/RPMForge" target="_blank">rpmforge</a></li>
<li><a href="http://dl.fedoraproject.org/pub/epel/6/x86_64/repoview/epel-release.html" target="_blank">epel</a></li>
<li><a href="http://yum.postgresql.org/repopackages.php" target="_blank">pg</a></li>
</ul>
<div style="text-align: justify;">
Para todos deben elegir que sea para su arquitectura en mi caso x64 para Centos 6.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Ya que los instalen vamos hacer unos ajustes, para epel, vamos abrir el archivo de configuracion y deshabilitar que centos los use cada que uno desea instalar algun paquete, pero no hay problema, cuando lo necesitemos le vamos hablar.</div>
<br />
Asi quedaria:<br />
<br />
Editar el siguiente archivo:<br />
<br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">vim /etc/yum.repos.d/epel.repo</span></span><br />
<br />
Y lo dejan asi:<br />
<br />
<span style="font-family: Georgia,"Times New Roman",serif;">[epel]<br />name=Extra Packages for Enterprise Linux 6 - $basearch<br />#baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch<br />mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch<br />failovermethod=priority<br /><span style="background-color: #76a5af;">enabled=0</span> <=========Solo cambian este parametro como dice aqui.<br />gpgcheck=1<br />gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6</span><br />
<br />
Salvan y salen.<br />
<br />
<div style="text-align: justify;">
De ahi sigue, Centos, como vamos hacer la instalacion de PostgreSQL de un repo externo, tenemos que pedirle a Centos que excluya a el de su lista de paquetes, para ellos editamos el siguiente archivo:</div>
<br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">vim /etc/yum.repos.d/CentOS-Base.repo</span></span><br />
<br />
[base]<br />
name=CentOS-$releasever - Base<br />
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os<br />
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/<br />
gpgcheck=1<br />
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6<br />
<span style="background-color: #76a5af;">exclude=postgres*</span> <======= agregan esto<br />
<br />
#released updates<br />
[updates]<br />
name=CentOS-$releasever - Updates<br />
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates<br />
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/<br />
gpgcheck=1<br />
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6<br />
<span style="background-color: #76a5af;">exclude=postgres*</span> <======= agregan esto<br />
<br />
Salvan y salen.<br />
<br />
De aqui yo voy a agregar el siguiente paquete:<br />
<br />
screen que nos lo proporciona rpmforge.<br />
<br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">yum install screen</span></span><br />
<br />
Listo vamos por el siguiente paso.<br />
<br />
<div style="text-align: center;">
<span style="font-size: large;">Instalacion de PostgreSQL 9.2</span></div>
<br />
Un simple comando:<br />
<br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">yum install postgresql92 postgresql92-server</span></span><br />
<br />
<div style="text-align: justify;">
Aqui observen de donde esta trayendo los repos, debe ser de nuestro repo externo verifiquen esto.</div>
<br />
Installing:<br />
postgresql92 x86_64 9.2.3-2PGDG.rhel6 pgdg92 968 k<br />
postgresql92-server x86_64 9.2.3-2PGDG.rhel6 pgdg92 3.8 M<br />
Installing for dependencies:<br />
postgresql92-libs x86_64 9.2.3-2PGDG.rhel6 pgdg92 185 k<br />
<br />
Ya instalado, vamos a configurarlo para OERP.<br />
<br />
Vamos iniciando el sistema base de PostgreSQL:<br />
<br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">service postgresql-9.2 initdb<br />Initializing database: [ OK ]</span></span><br />
<br />
Que arranca cada que prendamos el servidor:<br />
<br />
<br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">chkconfig postgresql-9.2 on</span></span><br />
<br />
Iniciamos el servicio:<br />
<br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">service postgresql-9.2 start<br />Starting postgresql-9.2 service: [ OK ]</span></span><br />
<br />
<div style="text-align: justify;">
PostgreSQL agrega un usuario llamado: postgres que es el administrador, algo que me agrado mucho es como el separa los permisos, este por default no tiene password y tiene su directorio en:</div>
<br />
/var/lib/pgsql<br />
<br />
Ahi dentro editamos el archivo .bash_profile y agregamos esto:<br />
<br />
<span style="background-color: #93c47d;"><span style="font-family: Georgia,"Times New Roman",serif;">PATH=$PATH:$HOME/bin:/usr/pgsql-9.2/bin<br />export PATH</span></span><br />
<br />
Ahora vamos a agregarle un pasword a el usuario admin de PostgreSQL ya saben 'postgres':<br />
<br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">su - postgres<br />-bash-4.1$</span></span><br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;"><br /></span></span>
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">psql postgres postgres<br />psql (9.2.3)<br />Type "help" for help.<br /><br />postgres=#</span></span><br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;"><br /></span></span>
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">postgres=# alter user postgres with password 'mipassword';</span></span><br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">ALTER ROLE<br />postgres=#</span></span><br />
<br />
<b>NOTA: aqui ustedes elijan su propio password.</b><br />
<br />
Salen, para esto es:<br />
<br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">postgres=# \q<br />-bash-4.1$ exit</span></span><br />
<br />
Salimos y regresamos a nuestro root.<br />
<br />
Lo que sigue es editar el archivo pg_hba.conf y hacer los siguientes cambios:<br />
<br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">vim /var/lib/pgsql/9.2/data/pg_hba.conf</span></span><br />
<br />
<span style="background-color: #76a5af;">local all all md5</span><br />
<span style="background-color: #76a5af;"># IPv4 local connections:</span><br />
<span style="background-color: #76a5af;">host all all 127.0.0.1/32 md5</span><br />
<span style="background-color: #76a5af;"># IPv6 local connections:</span><br />
<span style="background-color: #76a5af;">host all all ::1/128 md5</span><br />
<br />
Debe quedar asi, salvan y salen.<br />
<br />
<div style="text-align: justify;">
Por ultimo configurar PostgreSQL para que escuche en cualquiera de nuestras interfaces de red, ya que por default solo escucha en el localhost y aqui requiero que tambien mi nic(ethX) pueda responder peticiones por si requiero accesar via pgadmin.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Abren el archivo de configuracion y buscan el parametro listen, por default esta comentado:</div>
<br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">vim /var/lib/pgsql/9.2/data/postgresql.conf</span></span><br />
<span style="font-family: Georgia,"Times New Roman",serif;"><br /></span>
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">#listen_addresses = 'localhost'</span></span><br />
<br />
Lo dejan asi:<br />
<br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">listen_addresses = '*'</span></span><br />
<br />
Reinician el servicio de postgresql:<br />
<br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">service postgresql-9.2 restart</span></span><br />
<br />
<div style="text-align: justify;">
Ya con esto listo es ahora cuestion de agregar el usuario de PostgreSQL que administrara todo lo relacionado con OERP.</div>
<br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">su - postgres</span></span><br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;"><br />psql postgres postgres<br />Password for user postgres:<br />psql (9.2.3)<br />Type "help" for help.<br /><br />postgres=#create user openerp with password 'admin' superuser;<br />CREATE ROLE</span></span><br />
<br />
Ahora creamos la base de datos de OERP y de una vez le asignamos el usuario nuevo.<br />
<br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">create database empresa1 owner=openerp;<br />CREATE DATABASE</span></span><br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">postgres=# \q<br />-bash-4.1$exit</span></span><br />
<br />
<div style="text-align: justify;">
Regresamos a nuestro root y repetimos un paso, editar el archivo pg_hba.conf y agregamos esta linea:</div>
<br />
<span style="background-color: #93c47d;">host all openerp 192.168.50.0/24 md5</span><br />
<br />
Reinician el servidor, ya saben como, correcto?<br />
<br />
<div style="text-align: center;">
<span style="font-size: large;">Instalacion de Dependencias</span></div>
<br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">yum -y install python-dateutil python-ldap libxslt-python libxml2-python \ </span></span><br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">python-setuptools python-lxml python-mako python-psycopg2 babel \</span></span><br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">python-babel pychart python-pyparsing python-reportlab python-simplejson \</span></span><br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">pytz PyXML postgresql-python graphviz python-imaging python-devel \</span></span><br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">openldap-clients python-yaml python-cherrypy python-formencode</span></span><br />
<br />
Las que dependen de epel:<br />
<br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">yum install -y --enablerepo=epel python-feedparser python-ldaphelper \</span></span><br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">pydot python-vobject python-vatnumber python-werkzeug python-ZSI \</span></span><br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">python-werkzeug python-openid pywebdav</span></span><br />
<br />
Por ultimo requerimos gcc:<br />
<br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">yum install -y gcc</span></span><br />
<br />
<div style="text-align: center;">
<span style="font-size: large;">Instalacion de OpenERP 6</span></div>
<br />
Tenemos que bajar los 2 paquetes, server y web, de aqui:<br />
<br />
<ul>
<li><a href="http://nightly.openerp.com/6.0/releases/" target="_blank">openerp-server</a></li>
<li><a href="http://nightly.openerp.com/6.0/releases/" target="_blank">openerp-web </a></li>
</ul>
Estos los coloco en /opt y de ahi empiezo la fiesta:<br />
<br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">tar -xzf openerp-server-6.0-latest.tar.gz</span></span><br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">cd openerp-server-6.0.4</span></span><br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">python setup.py install</span></span><br />
<br />
Esto es solo una parte de la salida y no hay errores:<br />
<br />
<span style="font-size: x-small;">running install_data<br />copying man/openerp-server.1 -> /usr/share/man/man1<br />copying man/openerp_serverrc.5 -> /usr/share/man/man5<br />creating /usr/share/doc/openerp-server-6.0.4<br />copying doc/INSTALL -> /usr/share/doc/openerp-server-6.0.4<br />copying doc/openerp-server.logrotate -> /usr/share/doc/openerp-server-6.0.4<br />copying doc/README.userchange -> /usr/share/doc/openerp-server-6.0.4<br />copying doc/openerp-server.init -> /usr/share/doc/openerp-server-6.0.4<br />copying doc/Changelog-4.x -> /usr/share/doc/openerp-server-6.0.4<br />copying doc/openerp-server.conf -> /usr/share/doc/openerp-server-6.0.4<br />copying doc/Changelog-4.x.moved -> /usr/share/doc/openerp-server-6.0.4<br />copying doc/README.urpmi -> /usr/share/doc/openerp-server-6.0.4<br />copying doc/Changelog -> /usr/share/doc/openerp-server-6.0.4<br />copying doc/Changelog-6.x -> /usr/share/doc/openerp-server-6.0.4<br />creating /usr/share/doc/openerp-server-6.0.4/migrate<br />creating /usr/share/doc/openerp-server-6.0.4/migrate/3.3.0-3.4.0<br />copying doc/migrate/3.3.0-3.4.0/post.py -> /usr/share/doc/openerp-server-6.0.4/migrate/3.3.0-3.4.0<br />copying doc/migrate/3.3.0-3.4.0/pre.py -> /usr/share/doc/openerp-server-6.0.4/migrate/3.3.0-3.4.0<br />copying doc/migrate/3.3.0-3.4.0/README -> /usr/share/doc/openerp-server-6.0.4/migrate/3.3.0-3.4.0<br />creating /usr/share/doc/openerp-server-6.0.4/migrate/3.4.0-4.0.0<br />copying doc/migrate/3.4.0-4.0.0/pre-tiny.py -> /usr/share/doc/openerp-server-6.0.4/migrate/3.4.0-4.0.0<br />copying doc/migrate/3.4.0-4.0.0/post-tiny.py -> /usr/share/doc/openerp-server-6.0.4/migrate/3.4.0-4.0.0<br />copying doc/migrate/3.4.0-4.0.0/post.py -> /usr/share/doc/openerp-server-6.0.4/migrate/3.4.0-4.0.0<br />copying doc/migrate/3.4.0-4.0.0/pre.py -> /usr/share/doc/openerp-server-6.0.4/migrate/3.4.0-4.0.0<br />copying doc/migrate/3.4.0-4.0.0/README -> /usr/share/doc/openerp-server-6.0.4/migrate/3.4.0-4.0.0<br />running install_egg_info<br />Copying openerp_server.egg-info to /usr/lib/python2.6/site-packages/openerp_server-6.0.4-py2.6.egg-info<br />running install_scripts<br />copying build/scripts-2.6/openerp-server -> /usr/bin<br />changing mode of /usr/bin/openerp-server to 755</span><br />
<br />
Listo, ahora vamos a agregar el usario en centos que ejecutar OERP:<br />
<br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">useradd openerp</span></span><br />
<br />
<div style="text-align: justify;">
Una persona genero un script para poder arrancar openerp-server desde init, ya que por default esta forma de instalarlo no lo genera, recuerden solo Ubuntu tiene esas ventajas, pero no hay problema, baje este script y lo salvan en /etc/init.d/</div>
<br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">cd /etc/init.d</span></span><br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">wget http://www.bdeferme.net/downloads/openerp-server.txt</span></span><br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">mv openerp-server.txt openerp-server</span></span><br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">chmod +x openerp-server</span></span><br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">chkconfig --add openerp-server</span></span><br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">chkconfig openerp-server on</span></span><br />
<br />
<div style="text-align: justify;">
Como ya tenemos el usuario 'openerp' tenemos que agregar los parametros de PostgreSQL igual que a el usuario 'postgres', abre archivo </div>
<br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">su - openerp</span></span><br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">vim .bash_profile</span></span><br />
<br />
Y a el final agregamos esto:<br />
<br />
<span style="background-color: #93c47d;">PATH=$PATH:$HOME/bin:/usr/pgsql-9.2/bin</span><br />
<span style="background-color: #93c47d;">export PATH</span><br />
<br />
Salimos y salvamos, regresamos a el usuario root.<br />
<br />
<div style="text-align: justify;">
Ya podemos arrancar el servicio, pero antes de recordar que este servicio no se ejecuta como root, por ello agregamos el usuario openerp, asi que entramos a su consola y ejecutamos esto:</div>
<br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">su - openerp</span></span><br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">openerp-server -s</span></span><br />
<span style="font-size: x-small;">[2013-02-09 13:46:44,980][?] INFO:server:OpenERP version - 6.0.4<br />[2013-02-09 13:46:44,980][?] INFO:server:addons_path - /usr/lib/python2.6/site-packages/openerp-server/addons<br />[2013-02-09 13:46:44,980][?] INFO:server:database hostname - localhost<br />[2013-02-09 13:46:44,980][?] INFO:server:database port - 5432<br />[2013-02-09 13:46:44,980][?] INFO:server:database user - openerp<br />[2013-02-09 13:46:44,980][?] INFO:server:initialising distributed objects services<br />[2013-02-09 13:46:45,413][?] INFO:web-services:starting HTTP service at 0.0.0.0 port 8069<br />[2013-02-09 13:46:45,415][?] INFO:web-services:starting HTTPS service at 0.0.0.0 port 8071<br />[2013-02-09 13:46:45,416][?] INFO:web-services:Registered XML-RPC over HTTP<br />[2013-02-09 13:46:45,417][?] INFO:web-services:starting NET-RPC service at 0.0.0.0 port 8070<br />[2013-02-09 13:46:45,418][?] INFO:server:Starting 3 services<br />[2013-02-09 13:46:45,419][?] INFO:server:OpenERP server is running, waiting for connections...</span><br />
<br />
<div style="text-align: justify;">
Nos salimos, Ctrl+c, este parametro -s le pide a OERP que nos genere el archivo de configuracion en el folder del directorio del usuario que lo ejecuta, abrimos el archivo 'openerp_serverrc' y editamos estos parametros, los demas los dejamos tal cual estan, que ya anteriormente los habiamos anotado.</div>
<br />
<span style="background-color: #93c47d;">db_password = 'mipasword'</span><br />
<span style="background-color: #93c47d;">db_port = 5432</span><br />
<span style="background-color: #93c47d;">db_name = empresa1</span><br />
<span style="background-color: #93c47d;">db_user = openerp</span><br />
<span style="background-color: #93c47d;">db_host = 'localhost' </span><br />
<br />
Salvamos y salimos, nos vamos a el usuario root.<br />
<br />
Ahora hacemos lo siguiente:<br />
<br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">cd /var/run</span></span><br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">mkdir openerp</span></span><br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">chown openerp:openerp openerp/</span></span><br />
<br />
Ahora si vamos a iniciar el servicio:<br />
<br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">service openerp-server start</span></span><br />
<br />
<div style="text-align: justify;">
Van a empezar a ver muchas lineas en su consola, no hay problema toda va bien mientras el servicio este escuchando por peticiones, vamos a revisar:</div>
<br />
<span style="background-color: #76a5af;"><span style="font-size: x-small;">netstat -na -l --inet | grep :80</span></span><br />
<span style="background-color: #76a5af;"><span style="font-size: x-small;">tcp 0 0 0.0.0.0:8069 0.0.0.0:* LISTEN<br />tcp 0 0 0.0.0.0:8070 0.0.0.0:* LISTEN<br />tcp 0 0 0.0.0.0:8071 0.0.0.0:* LISTEN</span></span><br />
<br />
Listo, puertos escuchando por peticiones, ahora vamos a ver nuestro archivo messages y ver que dice:<br />
<br />
<span style="background-color: #76a5af;">tail /var/log/messages</span><br />
<span style="font-size: x-small;">Feb 9 13:57:01 oerp61 ¿<15>OpenERP Server 6.0.4:empresa1:DEBUG:orm:column uid is in the table wkf_instance but not in the corresponding object workflow.instance<br />Feb 9 13:57:01 oerp61 ¿<15>OpenERP Server 6.0.4:empresa1:DEBUG:orm:column version_pattern is in the table ir_module_module_dependency but not in the corresponding object ir.module.module.dependency<br />Feb 9 13:57:01 oerp61 ¿<14>OpenERP Server 6.0.4:empresa1:INFO:init:[01]: Assertions report:<br />Feb 9 13:57:01 oerp61 ¿<14>OpenERP Server 6.0.4:empresa1:INFO:init:[02]: Level#011success#011failed<br />Feb 9 13:57:01 oerp61 ¿<14>OpenERP Server 6.0.4:empresa1:INFO:init:[03]: error#0111#0110<br />Feb 9 13:57:01 oerp61 ¿<14>OpenERP Server 6.0.4:empresa1:INFO:init:[04]: total#0111#0110<br />Feb 9 13:57:01 oerp61 ¿<14>OpenERP Server 6.0.4:empresa1:INFO:init:[05]: end of report (1 assertion(s) checked)<br />Feb 9 13:57:01 oerp61 ¿<14>OpenERP Server 6.0.4:empresa1:INFO:data:Computing parent left and right for table res_partner_category...<br />Feb 9 13:57:02 oerp61 OpenERP Server 6.0.4:empresa1:INFO:server:Starting 3 services<br />Feb 9 13:57:02 oerp61 OpenERP Server 6.0.4:empresa1:INFO:server:OpenERP server is running, waiting for connections...<!--14--><!--14--><!--14--><!--14--><!--14--><!--14--><!--15--><!--15--><!--14--><!--14--><!--14--><!--14--><!--14--><!--14--><!--15--><!--15--></14></14></14></14></14></14></15></15></span><br />
<br />
Ahi esta, listo para recibir conexiones.<br />
<br />
<div style="text-align: center;">
<span style="font-size: large;">Instalacion de OpenERP-WEB</span></div>
<br />
<div style="text-align: justify;">
OERP server esta operando, pero necesitamos alguna interface para poder accesarlo, aqui entra openerp-web, como ya lo bajamos, ahora vamos por el.</div>
<br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">tar -xzf openerp-web-6.0-latest.tar.gz</span></span><br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">cd openerp-web-6.0.4/</span></span><br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">cd lib/</span></span><br />
<span style="font-family: Georgia,"Times New Roman",serif;"><span style="background-color: #76a5af;">../populate.sh</span> </span><br />
<b>NOTA:Van a empezar a ver mucho informacion, no se asusten.</b><br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">cd..</span></span><br />
<br />
<br />
<span style="font-size: x-small;">Installed /opt/openerp-web-6.0.4/lib/pytz-2012j-py2.6.egg<br />Processing dependencies for pytz>=2009j<br />Finished processing dependencies for pytz>=2009j<br />Searching for xlwt>=0.7<br />Reading http://pypi.python.org/simple/xlwt/<br />Reading https://secure.simplistix.co.uk/svn/xlwt/trunk<br />Best match: xlwt 0.7.4<br />Downloading http://pypi.python.org/packages/source/x/xlwt/xlwt-0.7.4.tar.gz#md5=231f4ff30894fc70d142b4ed1ba71cc0<br />Processing xlwt-0.7.4.tar.gz<br />Running xlwt-0.7.4/setup.py -q bdist_egg --dist-dir /tmp/easy_install-UgI6DI/xlwt-0.7.4/egg-dist-tmp-vvnHwe<br />zip_safe flag not set; analyzing archive contents...<br />Adding xlwt 0.7.4 to easy-install.pth file<br />Installed /opt/openerp-web-6.0.4/lib/xlwt-0.7.4-py2.6.egg<br />Processing dependencies for xlwt>=0.7<br />Finished processing dependencies for xlwt>=0.7</span><br />
<br />
Seguimos la instalacion:<br />
<br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">cd..</span></span><br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">python setup.py install</span></span><br />
<br />
Otra vez mucha info, al terminar tenemos algo +/- asi:<br />
<br />
Finished processing dependencies for openerp-web==6.0.4<br />
<br />
<div style="text-align: justify;">
Copeamos el archivo de configuracion ejemplo que esta en el mismo folder donde estamos pero dentro del 'doc':</div>
<br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">cd doc/</span></span><br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">cp openerp-web.cfg /etc/</span></span><br />
<br />
Ajustes, hacemos lo siguiente:<br />
<br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">mkdir /var/log/openerp-web</span></span><br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">touch /var/log/openerp-web/access.log</span></span><br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">touch /var/log/openerp-web/error.log</span></span><br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">chown -R openerp:openerp /var/log/openerp-web/</span></span><br />
<br />
<div style="text-align: justify;">
Editamos el archivo de configuracion y cambiamos los parametros acorde a su red, yo solo cambie estos:</div>
<br />
<span style="background-color: #93c47d;">server.socket_host = "192.168.50.112"</span><br />
<br />
Y estos:<br />
<br />
<span style="background-color: #93c47d;">log.access_file = "/var/log/openerp-web/access.log"</span><br />
<span style="background-color: #93c47d;">log.error_file = "/var/log/openerp-web/error.log"</span><br />
<span style="background-color: #93c47d;">#log.access_level = "INFO"</span><br />
<span style="background-color: #93c47d;">#log.error_level = "INFO"</span><br />
<br />
Salvamos y salimos.<br />
<br />
Ahora vamos a arrancarlo, para ellos debemos entrar con el usuario que ya tenemos listo:<br />
<br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">screen</span></span><br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">su - openerp</span></span><br />
<span style="background-color: #76a5af;"><span style="font-family: Georgia,"Times New Roman",serif;">openerp-web </span></span><br />
<br />
<div style="text-align: justify;">
No les va a arrojar nada hasta que empiecen a conectarse, pero vamos a verificar si nuestra inteface esta lista para recibir conexiones:</div>
<br />
<span style="background-color: #76a5af;">netstat -na -l --inet | grep :8080</span><br />
<span style="background-color: #76a5af;">tcp 0 0 192.168.50.112:8080 0.0.0.0:* LISTEN</span><br />
<br />
Ahi esta lista, vamos a una pc que tenga navegador dentro de la red y entremos a ver que pasa?<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-qP0XJMJRlGE/URbMScqAegI/AAAAAAAAAsQ/zZdDR3xWPIg/s1600/gui.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="177" src="http://3.bp.blogspot.com/-qP0XJMJRlGE/URbMScqAegI/AAAAAAAAAsQ/zZdDR3xWPIg/s320/gui.JPG" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figura 1: Interface de Entrada.</td></tr>
</tbody></table>
Listo, hemos tenido exito.<br />
<br />
Por default tenemos el usuario: admin con password: admin.<br />
<br />
Entramos y... listo esta listo para hacer configurado.Unknownnoreply@blogger.com5tag:blogger.com,1999:blog-3419696413132675684.post-47924842671785221872013-01-30T10:25:00.000-08:002013-01-30T10:25:11.899-08:00Linux/Unix: Mover configuracion dePutty a otro equipo.<div style="text-align: justify;">
No se les ha pasado, nos llega maquina nueva para poder seguir estando a el dia, corriendo alguna version de Linux/Unix, ya tenemos todo configurado y operando.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>Putty</b> que muchos admin de sistemas usamos para accesar remotamente nuestros servidores atraves del protocolo <b>SSH</b>, lo tenemos con varios servidores ya configurados y nos es dificil volver a configurar uno a uno en la nueva estacion.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Podemos ahorrarnos tiempo, solo tenemos que sacar el profile de putty del usuario en cuestion y mandarlo a la nueva estacion.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Putty genera en cada usuario que lo ejecuta, un folder escondido en la raiz del usuario:</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b><span style="font-family: "Courier New",Courier,monospace;">/home/Yo/.putty</span></b></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Ahi dentro esta un folder llamado:<b><span style="font-family: "Courier New",Courier,monospace;"> sessions</span></b></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Solo movemos este folder a nuestra nueva estacion y listo, a lo mejor en la nueva no tenemos aun el folder .putty, no hay problema, solo abran putty y trate de hacer una conexion a un servidor remoto y el se encargara de generar el folder.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Una vez hecho esto, movemos este folder ahi y listo, tendran ya todas sus sesiones tal cual las tenian en su vieja estacion.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Saludos!!!</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3419696413132675684.post-4404077509298349502013-01-28T01:43:00.001-08:002013-01-30T08:42:04.056-08:00Pfsense 2: Captive Portal+FreeRadius2 Manejo de Tiempo.<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-Y78EyPQQhew/UQYybufRUJI/AAAAAAAAApQ/HxMdAdblxNU/s1600/fr-4.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a></div>
<div style="text-align: justify;">
Hemos estado trabajando con otros usuarios de Pfsense en un problema que para muchos como yo es importante en un software como pFsense, como controlar los usuarios inhalambricos atraves de un CaptivePortal.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Como sabran, Pfsense tiene su propio CaptivePortal(CP de aqui en adelante) y asu vez tiene en su paqueteria a FreeRadius tanto 1 como 2, pero nos vamos a enfocar en la versión 2(FR2 de aqui en adelante).</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Uniendo estos 2 paquetes tenemos algo que encontramos en productos como Mikrotik, Ruckus, etc. Ya podemos controlar nuestros usuarios en base a tiempos de navegación, por ejemplo:</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
usr1 2 minutos</div>
<div style="text-align: justify;">
usr2 4 minutos</div>
<div style="text-align: justify;">
usr3 8 minutos</div>
<div style="text-align: justify;">
etc.</div>
<br />
<div style="text-align: justify;">
La logica dice que CP estara autenticando los usuarios cada 60 segundos y con esto FR2 validara si a el usuario aun le queda tiempo de navegacion atraves del modulo "Counter" que es parte de FR2 y el llevara a cabo la funcion de estar llevando los contadores de tiempo de cada usuario.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Asi podriamos tener un sistema de cobro por tiempo por ejemplo, un usuario llega y paga 1 hora por adelantado, le damos su usuario+contraseña y listo.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Esto es como deberia funcionar, pero CP tiene ciertos problemas los cuales un usuario que lo veran en este link da un parche para atacar el problema que les voy a explicar enseguida:</div>
<br />
<a href="http://redmine.pfsense.org/issues/2164" target="_blank">Parche CP.</a><br />
<br />
<div style="text-align: center;">
<span style="font-size: large;">Problema de CP.</span></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: justify;">
Resulta ser que CP no esta enviando los paquetes de Start/Stop cada 60 segundos, algo que yo he notado en mis pruebas es que no importa el tiempo que se le asigne a el usuario, siempre lo saca a los 5 minutos, y este asunto otros tambien lo han notado.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
No es problema de FR2 si no del codigo de CP, por ello aqui plasmo las indicaciones del parche que nos dan para este problema, quiero aclarar que ese parche es para versiones anteriores a la 2.0.2, ya que este ultima cambio algo no mucho pero si algo, no hay problema yo estoy con la ultima version(2.0.2) y aplique los cambios y al momento me esta funcionado.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Lo 1ro que vamos hacer es configurar FR2 en Pfsense, que es lo que sigue para probar, la instalacion no tiene ciencia ya que Pfsense se encarga de todo, asi que antes de seguir instalen el paquete FreeRadius2.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
Caracteristicas de Instalacion:</div>
<div style="text-align: left;">
Pfsense 2.0.2</div>
<div style="text-align: left;">
3 NIC's:</div>
<ol>
<li>WAN</li>
<li>Lan DHCP</li>
<li>Wifi DHCP</li>
</ol>
<div style="text-align: justify;">
La interface WiFi tiene conectado un access point Cisco WRT54G2 v1.5, no autentifica nada esta abierta, recuerden que todo lo controla CP asi que no hay problema ya que confio plenamente que aunque reciban IP los que no pertecen a mi red no podran navegar.</div>
<div style="text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-vxyx3FaYxeA/UQY0nLWCxhI/AAAAAAAAApw/-BlX80fhL7k/s1600/fr-3.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br /></a></div>
<div style="text-align: center;">
<span style="font-size: large;">Configurando FreeRadius 2 </span></div>
<div style="text-align: center;">
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-TFk-rSNhIpI/UQYwrP5oKnI/AAAAAAAAAoo/alo70Uf9hsk/s1600/fr-1.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="http://2.bp.blogspot.com/-TFk-rSNhIpI/UQYwrP5oKnI/AAAAAAAAAoo/alo70Uf9hsk/s320/fr-1.JPG" width="120" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figura 1: Configuracion Incial de FR2.</td><td class="tr-caption" style="text-align: center;"><br /></td><td class="tr-caption" style="text-align: center;"><br /></td><td class="tr-caption" style="text-align: center;"><br /></td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-YV9JkwdvyMg/UQYxBJIla0I/AAAAAAAAAow/z0GjNPcxKSU/s1600/fr-2.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="105" src="http://4.bp.blogspot.com/-YV9JkwdvyMg/UQYxBJIla0I/AAAAAAAAAow/z0GjNPcxKSU/s320/fr-2.JPG" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figura 2: Configuracion de la interface y puertos necesarios.</td></tr>
</tbody></table>
<br />
<br />
<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-vxyx3FaYxeA/UQY0nLWCxhI/AAAAAAAAApw/-BlX80fhL7k/s1600/fr-3.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="312" src="http://2.bp.blogspot.com/-vxyx3FaYxeA/UQY0nLWCxhI/AAAAAAAAApw/-BlX80fhL7k/s320/fr-3.JPG" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figura 3: Configuracion de NAS/Clientes.</td></tr>
</tbody></table>
<br />
<div style="text-align: left;">
</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-Y78EyPQQhew/UQYybufRUJI/AAAAAAAAApQ/HxMdAdblxNU/s1600/fr-4.JPG" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="http://3.bp.blogspot.com/-Y78EyPQQhew/UQYybufRUJI/AAAAAAAAApQ/HxMdAdblxNU/s320/fr-4.JPG" width="98" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figura 4: Configuración de 1 usuario.<u></u></td><td class="tr-caption" style="text-align: center;"><u><br /></u></td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-zF_s8ZxP-g4/UQYzI3L_dsI/AAAAAAAAApY/V6c75ab56eI/s1600/cp-1.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="http://1.bp.blogspot.com/-zF_s8ZxP-g4/UQYzI3L_dsI/AAAAAAAAApY/V6c75ab56eI/s320/cp-1.JPG" width="77" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figura 5: Configuración de Captive Portal.</td></tr>
</tbody></table>
<div style="text-align: justify;">
Basados en la figura-4 pueden agregar mas usuarios solo modificando el parametro de "Amount of Time" para cada uno asi podran entender esta configuración.</div>
<br />
<div style="text-align: center;">
<span style="font-size: large;">Reglas de Firewall</span></div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: justify;">
Antes de seguir recordar que Pfsense por default la interface opt1 en adelante no tiene reglas asi que nada puede cruzar por ahi asi que yo solo deseo ofrecer lo siguiente:</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><img border="0" height="133" src="http://4.bp.blogspot.com/-RdqCpDjkIOg/UQY3Rl2rINI/AAAAAAAAAqI/PtImjo9ynHQ/s320/wifi-rules.JPG" style="margin-left: auto; margin-right: auto;" width="320" /></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figura 6: Reglas de la red Inhalambrica.</td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: left;">
Por ultimo debemos aseguranos que ambos servicios esten operando</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-jKBYlWr4dRM/UQY34ISByQI/AAAAAAAAAqQ/J5yHfVixoSU/s1600/services.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="106" src="http://4.bp.blogspot.com/-jKBYlWr4dRM/UQY34ISByQI/AAAAAAAAAqQ/J5yHfVixoSU/s320/services.JPG" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figura 7: Servicios en linea.</td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: large;">Aplicaci<span style="font-size: large;">ó</span>n de Parche</span></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: justify;">
Si ya llegaron aqui es momento de llevar a cabo la aplicación del parche, aqui les recomiendo que abran su shell o consola via ssh ya que ahi que ensuciarse las manos con nuestro editor "ee", no soy hacker asi que no logre crear al parche y darselos, si alguien sabe de favor agreguenlo con los pasos necesarios para aplicarlo :-).</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Vamos a editar el archivo que controla a CP este se localiza en:</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-family: "Courier New",Courier,monospace;"><span style="color: blue;">/etc/inc/captiveportal.inc</span></span></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: justify;">
<span style="color: red;"><b><span style="font-family: "Trebuchet MS",sans-serif;">Recomendacion: Antes de modificar el archivo saquen un respaldo del archivo y tengalo a la mano por si algo les falla.</span></b></span></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Vamos a usar a nuestro amigo "diff" para que nos muestre nuestras diferencias y hacer la tarea mas sencilla:</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-size: small;"><span style="font-family: "Courier New",Courier,monospace;"><span style="color: blue;">diff /etc/inc/captiveportal.inc /root/captiveportal.inc</span><br />730,731c730<br />< $stop_time - 60,<br />< //$cpentry[0], // start time<br />---<br />> $cpentry[0], // start time<br />735,739c734,735<br />< //10); // NAS Request<br />< 10, // NAS Request<br />< false, //Not interim update<br />< $stop_time);<br />< exec("/sbin/ipfw table 1 entryzerostats {$cpentry[2]}");<br />---<br />> 10); // NAS Request<br />> exec("/sbin/ipfw table 1 entryzerostats {$cpentry[2]}");<br />741,742c737<br />< exec("sleep 1");<br />< RADIUS_ACCOUNTING_START($cpentry[1], // ruleno<br />---<br />> RADIUS_ACCOUNTING_START($cpentry[1], // ruleno<br />799d793<br />< $stop_time - 60,<br />872d865<br />< $stop_time = time();<br />878d870<br />< $stop_time - 60,<br />883,885c875<br />< //7); // Admin Reboot<br />< 7, // Admin Reboot<br />< false, $stop_time);<br />---<br />> 7); // Admin Reboot</span></span></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
</div>
<div class="separator" style="clear: both; text-align: left;">
Aproximadamente en la linea 730 nuestro codigo queda asi:</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
</div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-size: small;"> /* do periodic RADIUS reauthentication? */<br /> if (!$timedout && !empty($radiusservers)) {<br /> if (isset($config['captiveportal']['radacct_enable'])) {<br /> if ($config['captiveportal']['reauthenticateacct'] == "stopstart") {<br /> /* stop and restart accounting */<br /> RADIUS_ACCOUNTING_STOP($cpentry[1], // ruleno<br /> $cpentry[4], // username<br /> $cpentry[5], // sessionid<br /> $stop_time - 60,<br /> //$cpentry[0], // start time<br /> $radiusservers,<br /> $cpentry[2], // clientip<br /> $cpentry[3], // clientmac<br /> //10); // NAS Request<br /> 10, // NAS Request<br /> false, //Not interim update<br /> $stop_time);<br /> exec("/sbin/ipfw table 1 entryzerostats {$cpentry[2]}");<br /> exec("/sbin/ipfw table 2 entryzerostats {$cpentry[2]}");<br /> exec("sleep 1");</span></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Luego nos brincamos a la linea 799 vamos a dejar asi el codigo:</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-size: small;">function captiveportal_disconnect($dbent, $radiusservers,$term_cause = 1,$stop_time = null) {<br /> global $g, $config;<br /><br /> $stop_time = (empty($stop_time)) ? time() : $stop_time;<br /><br /> /* this client needs to be deleted - remove ipfw rules */<br /> if (isset($config['captiveportal']['radacct_enable']) && !empty($radiusservers)) {<br /> RADIUS_ACCOUNTING_STOP($dbent[1], // ruleno<br /> $dbent[4], // username<br /> $dbent[5], // sessionid<br /> $stop_time - 60,<br /> $dbent[0], // start time<br /> $radiusservers,<br /> $dbent[2], // clientip<br /> $dbent[3], // clientmac<br /> $term_cause, // Acct-Terminate-Cause<br /> false,<br /> $stop_time);<br /> }</span></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Y aproximadamente en la linea 872 dejamos asi el codigo:</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-size: small;">/* send RADIUS acct stop for all current clients */<br />function captiveportal_radius_stop_all() {<br /> global $config;<br /><br /> if (!isset($config['captiveportal']['radacct_enable']))<br /> return;<br /><br /> $radiusservers = captiveportal_get_radius_servers();<br /> if (!empty($radiusservers)) {<br /> $stop_time = time();<br /> $cpdb = captiveportal_read_db();<br /> foreach ($cpdb as $cpentry) {<br /> RADIUS_ACCOUNTING_STOP($cpentry[1], // ruleno<br /> $cpentry[4], // username<br /> $cpentry[5], // sessionid<br /> $stop_time - 60,<br /> $cpentry[0], // start time<br /> $radiusservers,<br /> $cpentry[2], // clientip<br /> $cpentry[3], // clientmac<br /> //7); // Admin Reboot<br /> 7, // Admin Reboot<br /> false, $stop_time);<br /> }<br /> }<br />}</span></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: justify;">
Revisen muy bien sus cambios, si creen que ya hicieron todo acorde, les recomiendo ampliamente reiniciar su equipo y revisar si no les marca algun error el archivo, lo van a ver en el GUI cuando le digan si a el boton de reboot.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: large;">Pruebas</span></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: justify;">
Ya con su equipo en linea, sin errores y sobre todo ambos servicios operando, conecten su "access point" y prendan su PC, tableta o lo que tengan inhalambrico para empezar las pruebas, se conectan a su red y les debe aparecer la pagina de CP.</div>
<div class="separator" style="clear: both; text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: justify;">
Metan su usuario de prueba y empiecen a navegar, se van a su pfsense y abran la pagina de <b>Status-CaptivePortal</b> y vean la hora que inicio su usuario:</div>
<div class="separator" style="clear: both; text-align: justify;">
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-mOheDjh5NB8/UQZJIYiTA-I/AAAAAAAAAr4/mVQ3KkjdRdw/s1600/cp-status.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="62" src="http://2.bp.blogspot.com/-mOheDjh5NB8/UQZJIYiTA-I/AAAAAAAAAr4/mVQ3KkjdRdw/s320/cp-status.JPG" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figura 8: Estatus de CP.</td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: justify;">
Un detalle es que una vez que el usuario termina si sesión el GUI no muestra su historial, pero por ello entra en funcion el log atraves de la consola, abran su shell y vean como van evolucionando el usuario:</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-tDpF4gzoMWc/UQZA13kBJFI/AAAAAAAAArA/IPOKGXiwA7o/s1600/fr2-log.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="97" src="http://1.bp.blogspot.com/-tDpF4gzoMWc/UQZA13kBJFI/AAAAAAAAArA/IPOKGXiwA7o/s320/fr2-log.JPG" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figura 9: Log de fr2.</td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: justify;">
Como podran ver cada cierto tiempo NAS esta enviando paquetes a FR2 y este asu vez los valida y si el usuario aun esta dentro del tiempo asignado le es permitido seguir navegando.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Cuando llega a su fin tenemos esto:</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-EGVEpA3DeIs/UQZEOsEUyhI/AAAAAAAAArY/9SsYkrIe61A/s1600/radius-los.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="175" src="http://4.bp.blogspot.com/-EGVEpA3DeIs/UQZEOsEUyhI/AAAAAAAAArY/9SsYkrIe61A/s320/radius-los.JPG" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figura 10: Usuario llego a su limite.</td></tr>
</tbody></table>
<div class="" style="clear: both; text-align: justify;">
El contador no es exacto, aun estan haciendo ajustes que estos dias voy a probar, si sacamos la diferencia el usuario navego:</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-a0YTZ93xwRY/UQZEyK6JaaI/AAAAAAAAArg/ifeIO6VnYHs/s1600/tiempo-nav.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="118" src="http://4.bp.blogspot.com/-a0YTZ93xwRY/UQZEyK6JaaI/AAAAAAAAArg/ifeIO6VnYHs/s320/tiempo-nav.JPG" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figura 11: Tiempo que duro usuario navegando.</td></tr>
</tbody></table>
<div class="" style="clear: both; text-align: justify;">
Pero aqui lo importante es que ya CP puede ser usado para controlar los tiempos de navegacion, ya podemos cobrar x tiempo, espero puedan llevar a cabo sus pruebas y regresen con sus resultados, mientras mas informacion de pruebas haya mejor, y si hay errores para informacion y seguir mejorando el codigo, saludos.<br />
<br />
2013-01-30<br />
<br />
<div style="text-align: center;">
<span style="font-size: large;">Detalles </span></div>
<div style="text-align: justify;">
<span style="font-size: small;"><b>Sesion abierta y cambio de dia</b>:</span> Supongamos que el usuario8, tiene 1 hora diario ejemplo arranca su sesion el dia 30/01/2013, pero el entra a las 23:30PM, que pasa?</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Bien CP le va a dar 2 horas de navegacion, por que?</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
CP/FR2 validan la duracion de la sesion pero no controlan estos cambios de dia, ya que ellos validan que durante el dia X el usuario haya consumido su tiempo asignado, y al brincarse a el dia Y es otro dia, por lo tanto reinicia el contador en 0, por ello el usuario tendra su hora del dia X+Y siempre y cuando en el dia X le quede menos de lo asignado cuando el inicio su navegacion.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Esto les puede pasar, entonces si tienen usuarios nocturnos y les reclaman por que ya no puede navegar en Y dia por la noche, digales que dice radius.log no miente sale, saludos!!!</div>
</div>
Unknownnoreply@blogger.com43tag:blogger.com,1999:blog-3419696413132675684.post-47429988910321275212013-01-12T15:04:00.002-08:002013-01-12T15:10:18.992-08:00Centos 5.x: Compilar cooavachilli<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Ahora nos toca meternos con este paquete para poder configurar un CaptivePortal, me vi en la tarea de compilar este paquete desde las fuentes(src) ya que en la pagina oficial <a href="http://coova.org/CoovaChilli">http://coova.org/CoovaChilli</a> no encontre por ningun lado el rpm para centos.</span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Bien, leyendo un poco la doc de como llevar a cabo esta labor que fue nada complicado, les quiero recordar que software debe tener nuestro sistema para llevar a cabo esto:</span></div>
<div style="text-align: justify;">
</div>
<ol style="text-align: justify;">
<li><b>rpm-build</b></li>
<li><b>gcc</b></li>
</ol>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">De aqui arrancamos todo, ahora viene la parte donde bajamos la fuente que en esta ocasión nos toco trabajar con la versión: 1.3.0.</span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Seguimos el manual, o sea que ponemos al archivo en:</span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><b><i>/usr/src/redhat/SOURCES/</i></b></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Lo descomprimimos segun la doc y luego dice que:</span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<pre><span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"><i><b>cd coova-chilli-1.0.X/
rpmbuild -ba coova-chilli.spec</b></i></span></span></pre>
<pre><span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"> </span></span></pre>
<pre><span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;">Bien aqui viene la parte fea, el ultimo comando no funciona ya que el archivo</span></span></pre>
<pre><span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;">coova-chilli.spec no existe en esa ruta, entonces donde esta?</span></span></pre>
<pre><span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"> </span></span></pre>
<pre><span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;">Usando la artilleria de Linux o sea el comando <i><b>find</b></i>, este localizo este archivo</span></span></pre>
</div>
<pre><span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;">en:</span></span></pre>
<div style="text-align: justify;">
<pre></pre>
<pre><span style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"><i><b>/usr/src/redhat/SOURCES/coova-chilli-1.3.0/distro/redhat/</b></i></span>
</span></pre>
</div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Asi que nos vamos a esa ruta y ahora si ejecutamos el comando:</span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><i><b>rpmbuild -ba coova-chilli.spec</b></i></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Y esperamos resultados, una vez terminado ya tenemos nuestro archivo.rpm en:</span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><i><b>/usr/src/redhat/RPMS/i386</b></i></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Asi que nos movemos a ese folder y de nuevo nuestra artilleria Linux para la instalación:</span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><i><b>rpm -iv coova-chilli-1.3.0-1.i386.rpm</b></i></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Listo, la configuracion esta en:</span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"></span></div>
<div style="text-align: justify;">
<br />
<span style="font-family: Arial,Helvetica,sans-serif;"><i><b>/etc/chilli</b></i></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"></span></div>
<div style="text-align: justify;">
<br />
<span style="font-family: Arial,Helvetica,sans-serif;">El servicio se llama:</span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"></span></div>
<div style="text-align: justify;">
<br />
<span style="font-family: Arial,Helvetica,sans-serif;"><i><b>chilli</b></i></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-family: Arial,Helvetica,sans-serif;">Asi que lo que sigue es configurarlo, a darle, saludos!!!</span></div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3419696413132675684.post-78744036798392974052013-01-07T20:51:00.001-08:002013-01-07T20:54:08.743-08:00Windows 7 x64: Contpaq i.<div style="text-align: justify;">
Hoy me tire una pelea con un Contpaq i, el contador me trajo una laptop donde lo queria correr ya que era nueva, el lo intento pero no logro hecharlo a volar, decia que arrancaba todo bien, pero cuando llegaba a el 100% la instalación ahi se quedaba colgada.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Y no le dejo otra opción que deter la instalacion, y claro como queda a medias no le permitia desinstalarlo ya que queda a medias, Contpaq instala 4 cosas:</div>
<ul>
<li>Microsoft SQL Server 2005</li>
<li>ContPAQ i 2.0.0</li>
<li>ContPAQ 2005</li>
<li>Compak SDK</li>
</ul>
<div style="text-align: justify;">
Uno de los grandes problemas era que si aparecian en el listado de programas instalados, pero cuando uno deseaba desintalarlos era donde las cosas no funcionaban, y el problema era el SDK ya que nos decia que no estaba instalado, y ni intentar quitar el ContPAQ i ya que regresa y quiere desinstalar el SDK y era el cuento de nunca acabar, ni ccleaner logro ayudar..</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Como atacamos el problema:</div>
<ul style="text-align: justify;">
<li>Renombrar todas las carpetas de contpaq, tanto las de la raiz como las de Program Files(x86).</li>
<li>Buscar en los registros de windows todo lo relacionado a computrabajo y renombrarlo, pero antes respaldo.</li>
<li>Ejecutar ccleaner y hacer limpia.</li>
<li>Reiniciar el equipo.</li>
<li>Ejecutar el instalador de contPAQ I como administrador.</li>
<li>Nos va a decir que la version de SQL Server tiene conflictos de compatibilidad y que si deseamos continuar, a lo cual le decimos que si, guardan la clave del usuario de SQL Server ya que contpaq se las va a requerir.</li>
<li>Cuando arranque la instalación de contpaq i, se abren 2 instalaciones: SDK y Contpaq i, cuando llegue a 100% y se quede colgada la instalación de ambos, cancelan la instalación de SDK, yo lo hice desde el "Taskmgr", contpaq i se terminara de instalar sin problemas.</li>
</ul>
<div style="text-align: justify;">
Segun mi sentido comun, el SDK tiene que ver con opciones para desarrolladores asi que no creo que contador quiera hacer programas para contpaq.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Bien, ya que termina todo, una reiniciada.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Cruzan las manos, todo lo relacionado a contpaq lo ejecutan como "Administrador" no se les olvide. Ejecutan el contpaq i configuracion, ahi le dan el password del usuario de la BD "sa", salvan y ahora si ejecutan el contPAQ i como "Administrador".</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Asi me funciono a mi, saludos!!!</div>
Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-3419696413132675684.post-19538656484026635092013-01-02T21:33:00.000-08:002013-01-02T21:33:18.939-08:00Freebsd/Pfsense: comando gnu-watch/ifstat<div style="text-align: justify;">
Feliz 2013 a todos los que llegan a mi blog, espero este 2013 sea mucho mejor que cualquiera de los anteriores y que todos sus deseos sean cumplidos y que tengan buen salud que es lo mas importante para continuar nuestro viaje por este vida.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Regresando a lo que hago dia a dia, bien he estado trabajando en distintos temas que me agradan con pfsense, a veces uno se pregunta como podre ver mis logs en tiempo real sin tener que estar ejecutando tail o cat:</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>tail -n 30 /var/log/radiusd.log </b></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Yo deseo ejecutar este comando constantemente sin mi intervención para poder debugear ciertos problemas que tengo, se puede?</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Claro que si, tenemos el comando <b>gnu-watch</b> en freebsd y por lo tanto para pfsense, en Linux se llama <b>watch</b>.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Como funciona?</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Yo deseo que el comando anterior sea ejecutado constantemente, esto lo hacemos asi:</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>gnu-watch</b> <b>tail -n 30 /var/log/radiusd.log </b></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Lo que va hacer el comando es mostrar ejecutar nuestro comando cada 2 segundos que es el valor que tiene por default, pero podemos reducirlo hasta 0 segundos que es lo minimo con el parametro -n.</div>
<br />
Ver siguiente figura:<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-nS7F6fKQKsE/UOUSq7DKP5I/AAAAAAAAAn8/uPhKF1dz4Zs/s1600/fr2-1.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="289" src="http://2.bp.blogspot.com/-nS7F6fKQKsE/UOUSq7DKP5I/AAAAAAAAAn8/uPhKF1dz4Zs/s320/fr2-1.JPG" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figura-1: gnu-watch en operación.</td></tr>
</tbody></table>
<div style="text-align: justify;">
Si observan la figura-2 esa pantalla se estara refrescando cada 2 segundos segun dice en la esquina superior izquierda, podemos estar trabajando y ver nuestro log como va cambiando si es que el sistema esta agragando entradas, de lo contrario nunca van a ver cambios.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Ustedes vean que utilidad pueden darle a este comando, y no solo para ver log, que tal si deseamos ver el comando netstat -m cada segundo:</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Ejecuten en su consola:</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>gnu-watch -n 1 netstat -m</b></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Y vean el resultado.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Ya hable del comando, ahora viene como instalarlo, estamos usando <b>pfsense </b>2.0.2 asi que nos vamos a la consola y ejecutamos el comando:</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<b>NOTA</b>: Puede ser que ya exista una version mas arriba, no hay problema solo verifiquen la versión y listo.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-size: x-small;">pkg_add -r ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8.2-release/misc/gnu-watch-3.2.8.tbz</span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Ya que termine recuerde ejectar <b>rehash </b>para que <b>pfsense </b>actualice su indice de aplicaciones y este lista para usar.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Comando <b>Ifstat</b>, <b>pfsense </b>tiene el gui que nos dice la taza de transferencia de cada tarjeta, pero a mi me gusta compararlo con algo en la consola para validar el dato, aparte <b>ifstat </b>te muestra todas las tarjetas de un solo golpe, es una herramienta que hasta para windows existe.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Su instalacion es parecida a el paquete anterior pero esta se localiza en otro directorio, asi lo instale: </div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
pkg_add -r ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8.2-release/net/ifstat-1.1_4.tbz</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Al momento de ejecutarla a mi me muestra lo siguiente:</div>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-ykyigyVo1iE/UOUUd3ol-1I/AAAAAAAAAoQ/silLZv42U9g/s1600/ifstat.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="249" src="http://2.bp.blogspot.com/-ykyigyVo1iE/UOUUd3ol-1I/AAAAAAAAAoQ/silLZv42U9g/s320/ifstat.JPG" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figura-2: Ifstat en ejecucion.</td></tr>
</tbody></table>
<div style="text-align: justify;">
Una vez instalada, puedo probar como esta la taza de transferencia interna, a lo mejor la PC de un cliente no esta operando a 100MBs Full, copeo un archivo de maquina a maquina y de cualquier lado ejecuto <b>ifstat </b>y veo los datos en consola. </div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Estas son 2 de mis herramientas favoritas cuando deseo encontrar la solucion a distintos problemas que se me presentan, espero a ustedes tambien les sirvan de algo, saludos!!!</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3419696413132675684.post-47837808720647164232012-12-15T15:12:00.004-08:002012-12-15T15:12:50.747-08:00Windows 2008 R2 x64: Task Scheduler con batches.<div style="text-align: justify;">
Hola, ya vimos en uno de mis blogs como configurar un batch para sacar los respaldos de SQL Server 2008 y configuramos el "Task Scheduler" de Windows 2008 sin problemas, ya que el usuario que lo hizo era el admin de la maquina e instale la bd en el folder default.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Entonces, el no tuvo problemas para ejecutar el batch, pero que pasa cuando:</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
1) Se instala la BD en otra particion.</div>
<div style="text-align: justify;">
2) El usuario que ejecuta el server es admin local.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Bien, si tratamos de ejecutar el batch manualmente recordar que debe ser "Como Administrador" de lo contrario "cmd" no lo ejecutara, cuando hacemos esto todo funciona de maravilla. </div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Pero que pasa cuando configuramos "Task Scheduler"? no funciona cuando el usuario por asi decirlo llamado 'sqls' no tiene el permiso "Full Rights" en el folder raiz, que significa esto?</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Bien yo instale el SQL-Server 2008 normal pero la BD las mande a otra particion llamada "D:" , ahi dentro hice un folder llamado "Backups", o sea</div>
<div style="text-align: justify;">
"D:\Backups" y dentro guarde mis batches, el que genera los respaldos "Full" y "Differenciales".</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Repito, si yo los probaba en la consola funcionan, el problema era cuando los trataba de ejecutar atraves del "Task Scheduler" no corrian, estuve leyendo en varios foros que muchos pasaban por el mismo problema, en mi caso el truco era que tenia que darle a el folder "Backups" todos los permisos a el usuario que estaba usando para ejecutar el servidor (sqls).</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Ya que en ese folder "Backups" estaban los batches y ahi mismo se iban los respaldos generados.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Y este usuario aparte debe formar parte del grupo de "Administradores". Listo.</div>
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-3419696413132675684.post-16017423039780884562012-11-28T15:10:00.002-08:002012-11-28T15:10:21.584-08:00Centos 5x: apcupsd y tarjeta powerchute PCNET.<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Esta vez me toco trabajar con una tarjeta APC9616 con apcupsd en Centos 5, la razon de esto es por que uno de mis servidores no acepto un APC BackupUPS 450 por USB.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Este servidor tiene corriendo Xen para virtualizar Windows XP, pero tuve que enviar el puerto USB a la maquina virtual ya que ahi estamos corriendo un software que tiene HASP USB KEY.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Quiero pensar que Xen rehusa a entragarle el USB a el host del Xen, bueno ni modo.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Entonces me vi en la tarea de poner a trabajar uno de mis 2 UPS modelo viejo pero con pila nueva, el modelo es el SmartUPS 1400.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Pero no queria hacer uso del puerto serial, por ello me vi en la necesidad de trabajar sobre una tarjeta que ya habia visto que hablaban de ella en el maillist de apcupsd.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
La conseguimos barata y empece a trabajar sobre ella.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Les voy a dar la informacion basica para ponerla a trabajar.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
De arranque esta configurada para tomar IP de nuestro DHCP, asi que no hubo problemas para esto.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
De ahi esta tiene habilitado un servidor web para administracion, se puede usar tambien via telnet, pero esto por el momento no me ha sido necesario.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
El usuario/password por default es:</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
apc/apc.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Simple, apuntan su navegador a el IP que haya tomado la tarjeta y listo.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
De ahi sigue configurar el password que los clientes remotos deben usar para contactar esta interface, no es el mismo que usamos para entrar via web eee Ojo.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Creo que el limite son 15 caracteres, en mi caso coloque hasta 15.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Para esto se van a el menu principal que dice UPS, a mano izquierda aparece el submenu PowerChute, tiene 2 opciones:</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
a) configuration</div>
<div style="text-align: justify;">
Aqui borran la clave que tiene, que de todos modos no se puede ver y colocan la suya "Apply".</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
b) clients</div>
<div style="text-align: justify;">
Aqui dan de alta los IP's de los clientes que desean contactar a el UPS en mi caso el IP del equipo que tiene corriendo apcupsd "Apply".</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Hay mas configuraciones pero no he tenido necesidad de usarlas.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Vamonos sobre apcupsd, la configuracion esta muy clara desde el manual:</div>
<br />
<pre class="literal-block">## apcupsd.conf v1.1 ##
UPSCABLE ether
UPSTYPE pcnet
LOCKFILE /var/lock
</pre>
<pre class="literal-block">DEVICE 192.168.2.69:apc:mipassword </pre>
<pre class="literal-block">UPSCLASS standalone
UPSMODE disable</pre>
<pre class="literal-block"> </pre>
<pre class="literal-block"></pre>
<pre class="literal-block"><span style="font-family: Arial,Helvetica,sans-serif; font-size: small;"> Ya los parametros de apagado se los dejo a su criterio. DEVICE es el IP que tomo la tarjeta
PCNET</span><span style="font-family: Arial,Helvetica,sans-serif; font-size: small;">,ya con esto listo es cosa de ejecutar el demonio:</span></pre>
<pre class="literal-block"><span style="font-family: Arial,Helvetica,sans-serif; font-size: small;"> </span></pre>
<pre class="literal-block"></pre>
<pre class="literal-block">service apcupsd start</pre>
<pre class="literal-block"> </pre>
<pre class="literal-block"></pre>
<pre class="literal-block">Ahora vamos a ver el estatus:</pre>
<pre class="literal-block"></pre>
<pre class="literal-block">root# apcaccess</pre>
<pre class="literal-block"></pre>
<pre class="literal-block"><span style="font-size: x-small;">APC : 001,052,1325
DATE : 2012-11-28 13:09:14 -0800
HOSTNAME : mbx-delllaptop
VERSION : 3.14.10 (13 September 2011) redhat
UPSNAME : mbx-delllaptop
CABLE : Ethernet Link
DRIVER : PCNET UPS Driver
UPSMODE : Stand Alone
STARTTIME: 2012-11-28 13:09:10 -0800
MODEL : SMART-UPS 1400
STATUS : ONLINE
LINEV : 122.8 Volts
LOADPCT : 0.0 Percent Load Capacity
BCHARGE : 100.0 Percent
TIMELEFT : 227.0 Minutes
MBATTCHG : 15 Percent
MINTIMEL : 5 Minutes
MAXTIME : 0 Seconds
MAXLINEV : 123.5 Volts
MINLINEV : 121.5 Volts
OUTPUTV : 122.2 Volts
SENSE : High
DWAKE : 000 Seconds
DSHUTD : 020 Seconds
DLOWBATT : 02 Minutes
LOTRANS : 103.0 Volts
HITRANS : 132.0 Volts
RETPCT : 000.0 Percent
ITEMP : 26.1 C Internal
ALARMDEL : 5 seconds
BATTV : 27.5 Volts
LINEFREQ : 60.0 Hz
LASTXFER : Automatic or explicit self test
NUMXFERS : 1
XONBATT : 2012-11-28 13:16:16 -0800
TONBATT : 0 seconds
CUMONBATT: 15 seconds</span></pre>
<pre class="literal-block"><span style="font-size: x-small;">XOFFBATT : 2012-11-28 13:16:31 -0800
LASTSTEST: 2012-11-28 13:16:16 -0800
SELFTEST : NO
STESTI : 336
STATFLAG : 0x07000008 Status Flag
REG1 : 0x00 Register 1
REG2 : 0x00 Register 2
REG3 : 0x00 Register 3
MANDATE : 03/17/99
SERIALNO : NUIMERODESERIE
BATTDATE : 03/17/99
NOMOUTV : 115 Volts
NOMBATTV : 24.0 Volts
EXTBATTS : 0
FIRMWARE : 70.11.D
END APC : 2012-11-28 13:40:09 -0800 </span></pre>
<pre class="literal-block"> </pre>
Como podran ver estos parametros son los que buscamos:<br />
<br />
<pre class="literal-block"><span style="font-size: x-small;">STATUS : ONLINE </span></pre>
<pre class="literal-block"><span style="font-size: x-small;">BCHARGE : 100.0 Percent
TIMELEFT : 227.0 Minutes</span></pre>
<pre class="literal-block"><span style="font-size: x-small;"></span></pre>
<pre class="literal-block"><span style="font-size: x-small;">
</span><span style="font-family: Arial,Helvetica,sans-serif; font-size: small;"> Apcupsd esta listo para controlar nuestros equipos, ya otros equipos pueden contactar </span></pre>
<pre class="literal-block" style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;">a apcupsd para autoapagarse.</span></pre>
<pre class="literal-block" style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"> </span></pre>
<pre class="literal-block" style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"> Ahora vamos a ver un cliente windows, la configuracion seria bien sencilla:</span></pre>
<pre class="literal-block" style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"> </span></pre>
<pre class="literal-block" style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: x-small;">UPSCABLE ether
UPSTYPE net
DEVICE 192.168.2.64
SCRIPTDIR c:\apcupsd\etc\apcupsd
PWRFAILDIR c:\apcupsd\etc\apcupsd
NOLOGINDIR c:\apcupsd\etc\apcupsd
ONBATTERYDELAY 20
BATTERYLEVEL 15
MINUTES 5
TIMEOUT 0
ANNOY 300
ANNOYDELAY 60
NOLOGON disable
KILLDELAY 0
NETSERVER on
NISIP 0.0.0.0
NISPORT 3551
EVENTSFILE c:\apcupsd\etc\apcupsd\apcupsd.events
EVENTSFILEMAX 10
UPSCLASS standalone
UPSMODE disable
STATTIME 0
STATFILE c:\apcupsd\etc\apcupsd\apcupsd.status
LOGSTATS off
DATATIME 0 </span></pre>
<pre class="literal-block" style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: x-small;">
</span><span style="font-size: x-small;"></span></pre>
<pre class="literal-block" style="font-family: Arial,Helvetica,sans-serif;"> Cuando arranquen el servicio sin problemas van a poder proteger sus clientes,</pre>
<pre class="literal-block" style="font-family: Arial,Helvetica,sans-serif;">cualquier otro ya sea windows, Linux, Unix no deben tener problemas.</pre>
<pre class="literal-block" style="font-family: Arial,Helvetica,sans-serif;">
<span style="font-size: x-small;"></span></pre>
<pre class="literal-block" style="font-family: Arial,Helvetica,sans-serif;"> Espero les sirva de algo, saludos!!
<span style="font-size: x-small;"></span></pre>
<pre class="literal-block" style="font-family: Arial,Helvetica,sans-serif;"><span style="font-size: small;"> </span></pre>
Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-3419696413132675684.post-10275790553442304922012-08-18T15:47:00.002-07:002012-09-17T22:51:01.742-07:00Pfsense 2: Squid Proxy y Envio de Parametros Automaticos WPAD.<div style="text-align: justify;">
Una persona que pregunto que si podia remplazar un equipo inhalambrico con pfsense, yo le dije que dependia de si el equipo tenia alguna funcion en especial, el me comento que no, que solo es un acceso para la visita, pero que si deseaba que se tuvieran que autenticar.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Su principal problema era que sentia que sus empleados estaban abusando de ese servicio y ya saben, uno le da clave y este empieza a repartirla a medio mundo, y deseaba saber cuanto tiempo duran, cuanto consumen y donde se la pasan.</div>
<br />
Yo le dije que si podria hacerlo, asi que empece mi tarea, tenia yo 6 objetivos:<br />
<ol>
<li>Que el cambio fuera sencillo y los empleados no notaran mucho el remplazo de equipo.</li>
<li>Usar las mismas credenciales de acceso.</li>
<li>Usar un equipo de bajo consumo de energia, de esos que no hacen ruido o sea sin abanicos y compactos. </li>
<li>No usar cache de squid.</li>
<li>No bloquear nada.</li>
<li>Que todos pasen por squid y nadie se lo pueda brincar.</li>
</ol>
<div style="text-align: justify;">
Ya con esto en mente, opte por un equipo que tengo tiempo usando de la marca Neoware modelo CA10 le cual tiene las siguientes caracteristicas:</div>
<ul>
<li>CPU 800Mhz.</li>
<li>512RAM DDR400</li>
<li>Slot para montar una adaptador de memoria CF y ahi cargar el OS.</li>
<li>1 Slot PCI para poder agregar cualquier tarjeta de PCI(De Red).</li>
<li>4 Puertos USB</li>
<li>1 Puerto Paralelo</li>
<li>2 Puertos Seriales</li>
<li>1 VGA</li>
<li>1 NIC Integrado VIA</li>
<li>1 NIC 3com en la ranura PCI</li>
<li>1 Memoria CF 4GB con pfsense 2.0.1 nano-vga version 4GB. </li>
</ul>
Aqui esta un imagen del equipo:<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-mpzyt19GLZg/UDAIaVwzFFI/AAAAAAAAAmo/AEUfIPr5r5c/s1600/neoware1.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="216" src="http://3.bp.blogspot.com/-mpzyt19GLZg/UDAIaVwzFFI/AAAAAAAAAmo/AEUfIPr5r5c/s320/neoware1.JPG" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figura 1: Neoware CA10 con Pfsense Nano.</td></tr>
</tbody></table>
<div style="text-align: justify;">
Como observaran, voy a usar la version nano, por cierto estos equipos los estoy ofreciendo en <a href="http://www.mercadolibre.com.mx/" target="_blank">mercadolibre.com.mx</a> si lo buscan como pfsense daran con el.</div>
<div style="text-align: justify;">
<br /></div>
Ahora regresando a el tema, ya tengo el equipo y pfsense cargado, que necesito configurar?<br />
<br />
<ul>
<li>squid</li>
<li>sarg</li>
</ul>
<div style="text-align: justify;">
Estos dos paquetes ya hemos visto en el blog como configurarlos ya no voy a tocar estos temas, aclarando que siempre he sido un seguidor de squid modo no-transparente y aqui es lo mismo, nadie se va a brincar el proxy.</div>
<br />
Lo que voy agregar es:<br />
<br />
<ul>
<li>Usar usuarios locales</li>
<li>WPAD para que los navegadores obtengan los parametros del proxy sin intervencion.</li>
</ul>
<div style="text-align: justify;">
Ahora si hago todo desde el GUI, ya no tengo que manipular la configuracion de squid desde la consola, para los usuarios existe una pestaña en los parametros de squid donde hacer esto, ver siguiente imagen:</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-nwMI8Gj8_BA/UDALJ4boz4I/AAAAAAAAAm0/vgNU8bt-0Y8/s1600/wpad1.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="77" src="http://3.bp.blogspot.com/-nwMI8Gj8_BA/UDALJ4boz4I/AAAAAAAAAm0/vgNU8bt-0Y8/s320/wpad1.JPG" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figura 2: Creacion de usuarios locales.</td></tr>
</tbody></table>
<div style="text-align: justify;">
Ya tenemos las credenciales de acceso igual como las tiene el sistema que ellos estan manejando, sigue por ahi como configurar WPAD para que los navegadores busquen a el proxy y obtengan los parametros sin la intervencion humana.</div>
<br />
Siguiendo el doc: <a href="http://doc.pfsense.org/index.php/WPAD_Autoconfigure_for_Squid" target="_blank">http://doc.pfsense.org/index.php/WPAD_Autoconfigure_for_Squid</a><br />
<br />
<div style="text-align: justify;">
Dice que debemos crear 1 archivo llamado: wpad.dat en la raiz del folder root de un servidor web, que en mi caso es la misma caja de pfsense y ahi esta squid mas facil, pero su caso puede ser otro, entoces mi configuración seria:</div>
<br />
function FindProxyForURL(url,host)<br />
{<br />
if (isPlainHostName(host)) { return .DIRECT.; }<br />if (isInNet(host, .192.168.0.0., .255.255.255.0.)) { return .DIRECT.; }<br />
return "PROXY 192.168.50.1:3128";<br />
}<br />
<br />
<div style="text-align: justify;">
Rapido podremos suponer que squid corre en la maquina con IP 192.168.50.1 y el puerto es el conocido 3128.</div>
<br />
Ahi viene como se puede brincar la intranet para que no pase por el Proxy.<br />
<br />
Tambien dice que debemos copear ese mismo archivo en otros con los nombres:<br />
<ul>
<li>wpad.da</li>
<li>proxy.pac </li>
</ul>
<div style="text-align: justify;">
Les quiero aclarar que yo no he usado esos archivos y mis clientes han logrado obtener la info automatica excepto el navegador opera, leyendo un poco este aun no tiene la funciona de autodescubrir proxies.</div>
<br />
<div style="text-align: justify;">
De ahi dice el manual que debemos apoyarnos de dns forwarder ya que debemos crear un registro en la seccion "Host Overrides" quedaria asi:</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-HqAoIwnvhw8/UDAOq_DKEaI/AAAAAAAAAng/M6W05erHS1w/s1600/wpad2.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="77" src="http://2.bp.blogspot.com/-HqAoIwnvhw8/UDAOq_DKEaI/AAAAAAAAAng/M6W05erHS1w/s320/wpad2.JPG" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figura 3: Registro en DNS Forwarder.</td></tr>
</tbody></table>
<div class="separator" style="clear: both; text-align: center;">
</div>
Ahora viene la parte del firewall, claro que tambien entra en juego pero estas reglas son sencillas, son 3:<br />
<br />
Permitir a la LAN consultar el DNS de pfsense TCP/UDP.<br />
Permitir a la LAN llegar a el puerto 3128 de squid de pfsense TCP.<br />
Permitir a la LAN salir a el puerto FTP si lo llegaran a necesitar TCP.<br />
<br />
<div style="text-align: justify;">
Es todo, no puedo ser mas abierto por que se supone que la conexion la estan usando para que los clientes puedan accesar a Internet solamente, nada mas, por ello no requiero mas puertos, a lo mejor va a salir algunos en especifico pero hasta el momento no ha pasado nada.</div>
<br />
Parece que tenemos todo en su lugar, vamos revisando:<br />
<ul>
<li>Squid configurado y operando.</li>
<li>Sarg configurado y operando los scripts de cron.</li>
<li>DNS Forwarder configurado.</li>
</ul>
Prueba de fuego con nuestros navegadores, los configuramos segun el manual:<br />
<br />
Windows XP Pro sp3:<br />
Firefox: Si Funciona.<br />
Iexplore: Si Funciona.<br />
Safari: Si Funciona. <br />
Opera: No Funciona, no tiene opcion de busqueda automatica hasta hoy.<br />
<br />
Windows 2003:<br />
Firefox: Si Funciona.<br />
Iexplore: Si Funciona.<br />
Safari: Si Funciona. <br />
Opera: No Funciona, no tiene opcion de busqueda automatica hasta hoy.<br />
<br />
<br />
Windows 7:<br />
Firefox: Si Funciona.<br />
Iexplore: Si Funciona.<br />
Safari: Si Funciona. <br />
<br />
Windows Server 2008:<br />
Firefox: Si Funciona.<br />
Iexplore: Si Funciona.<br />
Safari: Si Funciona. <br />
<br />
<br />
Deseaba probar mi caja Linux pero desgraciadamente fallo el disco, asi que luego pruebo y les informo.<br />
<br />
Los updates de Windows sin problemas.<br />
<br />
<br />
Posibles problemas:<br />
<br />
<br />
<div style="text-align: justify;">
Si estan trabajando sobre esto y cuando prueben y no les aparezca la ventana de autentificacion les recomiendo renovar su IP, este asunto me paso cuando hice los cambios en el DNS forwarder, al renovar mi IP empezo a funcionar sin problemas.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Este equipo entra a trabajar la proxima semana, asi que estaremos monitoreando su funcionamiento, saludos!!!<br />
<br />
<div style="text-align: center;">
2012-08-25 </div>
<div style="text-align: justify;">
Problemas con ciertas tabletas: Pues cabe la sorpresa para enterarme por mi propios ojos que por ejemplo tenemos una tableta de asus con adroid version 4.0.3 y resulta que no tiene soporte para proxy, mucho menos para deteccion automatica, he leido al respecto como muchos equipos y creo que todos tienen este problema, por que google tomo esta decision tan estupida de no agregarle una caracteristica tan basica que es soporte de proxy?</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Resumen no puedo usarlo con esta implementacion de pfsense, tengo que buscar el IP crear un alias y agregar una regla que permita la navegacion libre.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Tenemos otro smartphone de motorola con android 2.x, este al menos tiene la opcion de ponerle manualmente el proxy y funciona con el esta implementacion.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Hasto donde he leido la familia de IOS(Apple) desde que salieron tiene este soporte, aun flata probar y ver si es correcto, solo me toco ver uno donde si aparecia la opcion de configuracion.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Si alguien tiene info al respecto espero pueda proporcionarla, saludos!!!</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: center;">
2012-08-27<br />
<div style="text-align: justify;">
Si estan trabajando y ya han modificado mucho su pfsense a el punto que ya sus navegadores no pueden obtener los parametros del proxy de manera automatica, les recomiendo que ejecuten el ccleaner en los equipos windows para limpiar todo el cache de sus navegadores.</div>
</div>
<div style="text-align: justify;">
<br /></div>
</div>
Unknownnoreply@blogger.com9tag:blogger.com,1999:blog-3419696413132675684.post-5327181756488002232012-08-03T08:29:00.001-07:002012-08-03T09:12:01.450-07:00Pfsense 2: OpenVPN a FreeBSD/Linux via Shared KeyBuenos dias.<br />
<br />
<div style="text-align: justify;">
Me llego la inquietud de una persona, que me preguntaba como podria conectar una VPN via OpenVPN de Pfsense a Linux?</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Me puse a pensar un poco y me dije si ya hemos levantado tipo Site2Site entre Pfsense, RoadWarrior con clientes Windows, que diferencia hay con clientes tipo Linux/FreeBSD.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Tengo mi dominio y ahi tengo una VPN, no tipo shared por que se me hacen muy fragiles, pero al final de cuenta la puedo usar para llevar a cabo esta pequeña tarea.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Haya tengo FreeBSD 8.x con openvpn 2.2.2, ahora pfsense 2.0.1 tiene la version 2.2.0 entonces no hay tanta diferencia de versiones debe funcionar.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
La configuracion de este tipo "Shared Key" es de las mas sencilla, ya que solo hay una llave compartida por todas las partes y esto la hace realmente simple, si alguien tiene esa llave puede entablar comunicacion sin problemas.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Para generar la llave se puede hacer desde Pfsense o atraves de Linux/FreeBSD, desde este ultimo puede ser algo tan sencillo como ejecutar:</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
openvpn --genkey --secret shared.key</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Pero podemos ponerle algunos parametros hacer la llave de encriptacion mas grande que es lo mas recomendable 2048, 4096, etc.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Recordar que al aumentar el tamaño tanto la encriptada como desencriptada y la compresion le lleva mas tiempo a el CPU entonces nuestro equipo de computo va a ser masacrado, por ello es conveniente al estar configurando estos parametros hacer pruebas, ya que le podemos poner una llave de 8192 bits y los equipos encargados de la VPN son pc's PIII 500Mhz 512RAM disco IDE 5400RPM, estos sin van resentir nuestra avaricia de seguridad y mas si vamos a entablar comunicacion con varios puntos.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Volviendo a el caso, ya tenemos nuestra llave(shared.key) creada la cual yo la hice en mi caja FreeBSD y la almacene en:</div>
<br />
/usr/local/etc/openvpn/keys<br />
<br />
Es momento de configurar ese lado de la conexión, mi archivo de configuración quedaria asi:<br />
<br />
<br />
local W.X.Y.Z<br />
port 1194<br />
proto udp<br />
dev tun<br />
secret /usr/local/etc/openvpn/keys/shared.key<br />
ifconfig 10.8.0.1 10.8.0.2<br />
push "route 192.168.40.0 255.255.255.0"<br />
route 192.168.50.0 255.255.255.0<br />
keepalive 10 120<br />
cipher AES-192-CBC # AES<br />
comp-lzo<br />
persist-key<br />
persist-tun<br />
status openvpn-status.log<br />
log /var/log/openvpn.log<br />
verb 0<br />
daemon<br />
<br />
<div style="text-align: justify;">
<b>NOTA: verb 0 para no arroje tanto log, pueden subirlo a mas cuando esten empezando por si hay errores poder leer los logs para ver si damos con el problema, una vez entablada y probada la conexion lo bajan a 0 para que no haya nada y salvar accesos a el disco y CPU, si hay problema lo vuelven a subir y de nuevo repiten el ciclo.</b></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Recordar que siempre debemos mandar la red que estamos protegiendo, este FreeBSD es mi firewall para la red:</div>
<br />
192.168.40.0/24<br />
<br />
Por ello el parametro:<br />
<br />
<b>push "route 192.168.40.0 255.255.255.0"</b>
<br />
<br />
Y mi otro punto que seria el Pfsense que protege la red:<br />
<br />
<b>192.168.50.0/24</b><br />
<br />
<b>route 192.168.50.0 255.255.255.0</b>
<br />
<br />
<div style="text-align: justify;">
Estos parametros al momento de entablar la comunicacion el 1ro envia esas ruta a el cliente remoto y el 2do agrega la ruta a el mismo, de lo contrario va a ver enlace pero de ahi no vamos a pasar.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Una vez hecho esto de lado de FreeBSD ya ven que estos sistemas controlan muchos demonios atraves del archivo /etc/rc.conf, ahi voy a poner que siempre que arranque el sistema cargue OpenVPN:</div>
<div style="text-align: justify;">
<br /></div>
<br />
<b>openvpn_enable="YES"</b><br />
<b>openvpn_if="tap"</b><br />
<br />
<br />
Ya con esto listo, arrancamos ese punto:<br />
<br />
/usr/local/etc/rc.d/openvpn start<br />
<br />
Observemos las rutas que aparecen:<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-y8q4KbeU2Uc/UBvlzEQPa5I/AAAAAAAAAlg/_Yym81XprPc/s1600/img1.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="197" src="http://4.bp.blogspot.com/-y8q4KbeU2Uc/UBvlzEQPa5I/AAAAAAAAAlg/_Yym81XprPc/s320/img1.JPG" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figura 1: Ruta hacie el otro punto.</td></tr>
</tbody></table>
<div style="text-align: justify;">
Como podran observar en la figura 1, aparece la ruta que dice que toda comunicacion hacia la red</div>
<div style="text-align: justify;">
192.168.50./24 se va ir por el gw 10.8.0.2 que es la conexion virtual que se crea con el otro punto una vez entablada la comunicacion.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Ahora vamos del lado de Pfsense, haya es atraves del GUI mas sencillo aun, y tenemos esta configuracion:</div>
<div style="text-align: justify;">
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://1.bp.blogspot.com/-h7FFe2y2Gxg/UBvpCyIlrKI/AAAAAAAAAl4/GuPoZfYQFfM/s1600/img2.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="http://1.bp.blogspot.com/-h7FFe2y2Gxg/UBvpCyIlrKI/AAAAAAAAAl4/GuPoZfYQFfM/s320/img2.JPG" width="176" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figura 2: Configuracion de Pfsense Shared-Key.</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-tPxe3K2Y2Ig/UBvpM8334XI/AAAAAAAAAmA/Iq9mQborB8g/s1600/ing3.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="78" src="http://2.bp.blogspot.com/-tPxe3K2Y2Ig/UBvpM8334XI/AAAAAAAAAmA/Iq9mQborB8g/s320/ing3.JPG" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figura 3: Configuracion terminada.</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-xtdfhz8pyiE/UBvplSvB3VI/AAAAAAAAAmI/erZo8I5sEVU/s1600/img4.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="220" src="http://2.bp.blogspot.com/-xtdfhz8pyiE/UBvplSvB3VI/AAAAAAAAAmI/erZo8I5sEVU/s320/img4.JPG" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figura 4: Nuestro dashboard con la conexion establecida.</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-n1UXdITrwvc/UBvqM_D7AiI/AAAAAAAAAmQ/hLTqdW9qmmY/s1600/img5.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="125" src="http://3.bp.blogspot.com/-n1UXdITrwvc/UBvqM_D7AiI/AAAAAAAAAmQ/hLTqdW9qmmY/s320/img5.JPG" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Figura 5: Ruta creada para el otro punto.</td></tr>
</tbody></table>
Reglas del Firewall.<br />
<br />
<div style="text-align: justify;">
Ya solo es cuestion de abrir sus reglas si es que son paranoicos y solo estan dejando salir/entrar lo que necesitan, entonces en su LAN deben crear lo necesario, alias de los servidores remotos, servicios, yo creo alias a los servidores/servicios remotos y solo dejo pasar lo que necesito no mas.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Del otro lado tambien, por ejemplo en FreeBSD solo tengo 2 reglas que voy a permitir:</div>
<div style="text-align: justify;">
<br /></div>
<br />
<div style="text-align: justify;">
pass in quick on $ovpn_if proto tcp from $SiteA to $web port http label "VPN Web Server Access"</div>
<div style="text-align: justify;">
pass in quick on $ovpn_if proto tcp from $SiteA to $spam port 3306 label "VPN MySQL Server Access"</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
$SiteA = Red remota que tiene Pfsense detras.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Es todo lo que voy a permitir, entonces esas mismas reglas debe haber algo que permita llegar a estos equipos y servicios y viceversa.</div>
<div style="text-align: justify;">
<br />
Como ultimo comentario, si tenemos un puño de servidores remotos a los cuales nos vamos a conectar atraves de Pfsense solo recordar que por cada uno debemos llevar a cabo la configuracion, entonces si tenemos 5 remotos, vamos a tener que crear 5 configuraciones, no necesitamos tener una NIC por cada tunel requerido, recordar que lo que manda es el par: IP-remoto:puerto, entoces nuestro pfsense va a tener 5 conexiones en el puerto 1194 por asi decirlo pero a distinto IP.<br />
<br /></div>
<div style="text-align: justify;">
Bien es todo por hoy, espero les sirva este pequeño doc sobre pfsense y OpenVPN.</div>Unknownnoreply@blogger.com2