Archive for August, 2011
Librería LCD para PIC 16F876A en el PORTB. PICC
by Lordblacksuca on Aug.30, 2011, under General, Programación
Ésta es una librería modificada para que el LCD funcione completamente en el PORTB. La mayoría de las librerías que andan dando vueltas necesitan conectar unos pines del LCD en el PORTA y otros en el PORTB, lo cual, es poco practico a la hora de hacer una placa.
Esta hecha para el compilador PICC, el LCD usado en el codigo de ejemplo es de 16×2.
Estas son las funciones que tiene:
* Libreria para controlar un LCD con el PIC16F876A PORTB
*/
/* Escribe un byte en el LCD en modo de 4bits */
extern void lcd_write(unsigned char);
/* Limpia la pantalla y vuelve al inicio el cursor */
extern void lcd_clear(void);
/* Escribe un string de caracteres */
extern void lcd_puts(const char * s);
/* Mueve el cursor a la ubicacion especifica */
extern void lcd_goto(unsigned char pos);
/* Inicializa el LCD - (Llamar al principio) */
extern void lcd_init(void);
/* Escribe un caracter */
extern void lcd_putch(char);
Para descargar la librería completa click aquí.
Modo de uso:
En el main.c, deberias tener algo asi:
#include "pic.h"
#include "stdio.h"
//definicion del cristal
#ifndef _XTAL_FREQ
#define _XTAL_FREQ 20e6
#endif
//definiciones del PORT B para el LCD
#define LCD_RS RB4
#define LCD_RW RB6
#define LCD_EN RB5
#define LCD_DATA PORTB
//incluyo la librería del LCD
#include "lcd.h"
void main (void){
TRISB=0B00000000;
lcd_init();
lcd_goto(0x00);
lcd_puts("Inicializando...");
lcd_goto(0x40); //segunda linea
__delay_ms(1300);
lcd_puts("HOLA MUNDO!!!");
}
Tambien puedes usar el LCD con el printf, pero no es muy recomendable, porque desperdicias mucho espacio.
Ej: printf(“Temp=%2.1fºC”,TEMPERATURA);
Conexiones:
Si te sirvió, comenta.
Saludos!
Vulnerabilidad en WordPress Superpuperdomain2.com
by Lordblacksuca on Aug.18, 2011, under General, Linux
Vulnerabilidad en timthumb.php
Sintomas
Lo más probable es que cuando quieras entrar al sitio, tu antivirus, o tu navegador te avisen de que tu sitio esta cargando contenido de superpuperdomain2.com y éste es un sitio maligno. Sino, fijate el codigo fuente de tu web, y al final debes tener algo asi:
<script language=”javascript” SRC=”http://superpuperdomain2.com/count.php?ref=”>
¿Cómo solucionarlo?
Primero, el codigo malicioso, fue insertado en el index.php de tu blog. Lo debes borrar de ahi.
En segundo lugar, corrige el problema para que no vuelva a suceder… descarga la ultima version de timthum.php antes de reemplazarlo por el existente en tu theme, hazle los siguientes cambios:
Cambia define( ‘ALLOW_EXTERNAL’, TRUE); por define( ‘ALLOW_EXTERNAL’, false);
Y tambien cambia ésto:
$allowedSites = array ( ‘flickr.com’,
‘picasa.com’,
‘img.youtube.com’,
‘upload.wikimedia.org’,
);
Por ésto:
$allowedSites = array();
Para encontrar todos los timthumb.php que puedes tener, (uno por theme, aunque no todos lo usan) pudes hacer desde la consola:
find . | grep timthumb.php
Como montar un Servidor Ubuntu Server COMPLETO, con ISPConfig 3 Parte 1
by Lordblacksuca on Aug.15, 2011, under General, Linux, Tutoriales
Este post está dedicado a instalar un servidor para hosting multi-cuentas, en una VPS, por ello, no explicare temas relacionados al hardware ni a la instalación del sistema operativo.
Si quieres saber mas sobre las VPS, y cómo elegir una VPS, mira este link.
Este post, está basado en las guías Perfect Server de HowToForge, pero con algunas mejoras.
Ubuntu Server
Para mi, Ubuntu Server, es uno de las mejores distros para iniciarse en el tema de servidores linux, debido a la gran cantidad de información y tutoriales que hay sobre el en la red.
Bueno, en este tutorial usaremos lo siguiente:
- Ubuntu Server 11.04 como sistema operativo.
- ISPConfig 3 como panel de administración para cuentas de Hosting.
- Apache, PHP, MySQL
- SquirreMail, PostFix
- PureFTP
- BIND 9
Comencemos…
Antes que nada, para este tutorial, usaremos server1.example.com como hostname, y supondremos que yas estamos logueados como root. (sino, anteponer sudo a cada comando)
Yo uso nano para editar los archivos, pero pueden usar vi, o cualquier otro.
Para instalar nano, hacemos:
apt-get install nano
Para utilizar nano, se abren los archivos con nano archivo luego, para guardar, se presiona F2, luego decimos que si, (Y) y luego aceptamos con ENTER.
Ahora, cambiamos el hostname:
echo server1.example.com > /etc/hostname
hostname server1.example.com
/etc/init.d/hostname restart
Click Aqui para ver la Parte 2 | Click Aqui para ver la Parte 3
Como montar un Servidor Ubuntu Server COMPLETO, con ISPConfig 3 Parte 2
by Lordblacksuca on Aug.15, 2011, under General, Linux, Tutoriales
Parte 2
Procederemos a editar la lista de repositorios, para poder tener los paquetes mas actualizados…
nano /etc/apt/sources.list
Borramos todo el contenido, y copiamos allí el contenido de este archivo.
Ahora, para actualizar nuestra BD de paquetes, y de paso, actualizar algunas versiones de los mismos, hacemos:
apt-get update
apt-get upgrade
Responder que si (Y) a cualquier pregunta.
Configuramos la hora del sistema:
dpkg-reconfigure tzdata
Seguir las instrucciones en pantalla.
Ahora, empezamos a instalar algunos paquetes:
apt-get install postfix postfix-mysql postfix-doc mysql-client mysql-server courier-authdaemon courier-authlib-mysql courier-pop courier-pop-ssl courier-imap courier-imap-ssl libsasl2-2 libsasl2-modules libsasl2-modules-sql sasl2-bin libpam-mysql openssl getmail4 rkhunter binutils maildrop
El sistema nos va a hacer las siguientes preguntas:
New password for the MySQL “root” user: <– tucontraseñasql
Repeat password for the MySQL “root” user: <– tucontraseñasql
General type of mail configuration: <– Internet Site
System mail name: <– server1.example.com
Create directories for web-based administration? <– No
SSL certificate required <– Ok
Preparamos y optimizamos MySQL para una VPS con pocos recursos de RAM:
nano /etc/mysql/my.cnf
Comentar la linea bind-address=127.0.0.1, tiene que quedar asi: #bind-address = 127.0.0.1 (esto es para poder acceder al servidor MySQL desde otros servers/hosts.)
y cambiar los valores de algunas de las variables, por los de aqui abajo:
[mysqld]
key_buffer = 16K
max_allowed_packet = 1M
table_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 64K
También, si no vamos a usar innodb ni Berkeley DB, o ni sabes lo que es eso, agrega estas dos lineas al final del my.conf:
skip-bdb
skip-innodb
Y ahora, reiniciamos el servicio MySQL:
/etc/init.d/mysql restart
Ahora, prepararemos las claves SSL para el servicio de Mail.
cd /etc/courier
rm -f /etc/courier/imapd.pem
rm -f /etc/courier/pop3d.pem
nano /etc/courier/imapd.cnf
Cambiar CN=server1.example.com por tu hostname real
nano /etc/courier/pop3d.cnf
Cambiar CN=server1.example.com por tu hostname real
Ahora, generamos los certificados
mkimapdcert
mkpop3dcert
Y luego reiniciamos los servicios:
/etc/init.d/courier-imap-ssl restart
/etc/init.d/courier-pop-ssl restart
Ahora, instalamos apache, php y algunos modulos y paquetes extras que neesitaremos como phpMyAdmin, suExec, Pear y mcrypt:
apt-get install apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-gd php5-mysql php5-imap phpmyadmin php5-cli php5-cgi libapache2-mod-fcgid apache2-suexec php-pear php-auth php5-mcrypt mcrypt php5-imagick imagemagick libapache2-mod-suphp libruby libapache2-mod-ruby
El sistema nos va a hacer las siguientes preguntas:
Web server to reconfigure automatically: <– apache2
Configure database for phpmyadmin with dbconfig-common? <– No
Ahora, ejecutamos los siguientes comandos para habilitar los modulos de apache:
a2enmod suexec rewrite ssl actions include
a2enmod dav_fs dav auth_digest
/etc/init.d/apache2 restart
Click Aqui para ver la Parte 1 | Click Aqui para ver la Parte 3
Como montar un Servidor Ubuntu Server COMPLETO, con ISPConfig 3 Parte 3
by Lordblacksuca on Aug.15, 2011, under General, Linux, Tutoriales
Parte 3
Continuando con la parte 3 de este tutorial, Instalamos el FTP
apt-get install pure-ftpd-common pure-ftpd-mysql quota quotatool
nano /etc/default/pure-ftpd-common
Cambiar a STANDALONE_OR_INETD=standalone
Cambiar a VIRTUALCHROOT=true
Ahora, habilitamos TLS, y generamos su certificado SSL:
echo 1 > /etc/pure-ftpd/conf/TLS
mkdir -p /etc/ssl/private/
openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
chmod 600 /etc/ssl/private/pure-ftpd.pem
/etc/init.d/pure-ftpd-mysql restart
Continuamos instalando BIND, y las web stats:
apt-get install bind9 dnsutils
apt-get install vlogger webalizer awstats
Editamos el archivo cron.d, y eliminamos awstats, ya que luego, ISPConfig 3, insertará sus propias lineas en el cron.d
nano /etc/cron.d/awstats
(hay que comentar las unicas 2 lineas del archivo, y tiene que quedar asi:)
#*/10 * * * * www-data [ -x /usr/share/awstats/tools/update.sh ] && /usr/share/awstats/tools/update.sh # Generate static reports: #10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] && /usr/share/awstats/tools/buildstatic.sh
Ahora, instalamos Jailkit, que sirve para que cada usuario SSH, no se pueda salir de su directorio /home propio.
apt-get install build-essential autoconf automake1.9 libtool flex bison debhelper
cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.14.tar.gz
tar xvfz jailkit-2.14.tar.gz
cd jailkit-2.14
./debian/rules binary
cd ..
dpkg -i jailkit_2.14-1_*.deb
rm -rf jailkit-2.14*
Instalamos y configuramos SquirreMail, para poder acceder a nuestros webmails:
apt-get install squirrelmail
ln -s /usr/share/squirrelmail/ /var/www/webmail
squirrelmail-configure
Aqui, sigue las instrucciones de este archivo, para contestar las preguntas del sistema y configurar el squirreMail.
Una vez configurado el cliente para el webmail, antes de probarlo, configuraremos un par de cosas para hacer que el email funcione sin amavis y clamd, que son sumamente pesados para VPS con bajos recursos.
nano /etc/postfix/main.cf
Comentamos las siguientes lineas:
content_filter = amavis:[127.0.0.1]:10024
receive_override_options = no_address_mappings
Tienen que quedar asi:
#content_filter = amavis:[127.0.0.1]:10024
#receive_override_options = no_address_mappings
nano /etc/postfix/master.cf
Comentamos todas las lineas debajo de amavis unix – – – – 2 smtp
Tiene que quedar asi:
#amavis unix – – – – 2 smtp
# -o smtp_data_done_timeout=1200
# -o smtp_send_xforward_command=yes
#127.0.0.1:10025 inet n – – – – smtpd
# -o content_filter=
# -o local_recipient_maps=
# -o relay_recipient_maps=
# -o smtpd_restriction_classes=
# -o smtpd_client_restrictions=
# -o smtpd_helo_restrictions=
# -o smtpd_sender_restrictions=
# -o smtpd_recipient_restrictions=permit_mynetworks,rej ect
# -o mynetworks=127.0.0.0/8
# -o strict_rfc821_envelopes=yes
# -o receive_override_options=no_unknown_recipient_chec ks,no_header_body_checks
# -o smtpd_bind_address=127.0.0.1
Y por ultimo reiniciamos postfix:
/etc/init.d/postfix restart
Bueno, hemos llegado al ultimo paso, instalar ISPConfig 3. Si todo ha salido bien, con ejecutar estas ultimas 5 lineas, nuestro servidor estará perfectamente configurado, y listo para alojar paginas web!
cd /tmp
wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar xfz ISPConfig-3-stable.tar.gz
cd ispconfig3_install/install/
php -q install.php
Ahora, se ejecutara el instalador de ISPConfig3, hay que presionar enter para dejar los valores por defecto, menos cuando nos pida la clave para MySQL, ahi hay que escribirla, y luego presionar enter…
Y eso es todo!
Ya podemos acceder a nuestro hosting desde el navegador, mediante la IP de nuestro server, y al puerto 8080, http://xxx.xxx.xxx.xxx:8080 ahi, hay que loguearse con admin:admin
Bueno gente, espero que les haya servido este tutorial…
Acepto comentarios y criticas!
Saludos
Click Aqui para ver la Parte 1 | Click Aqui para ver la Parte 2
¿Qué es una VPS?
by Lordblacksuca on Aug.14, 2011, under General, Linux, Tutoriales
VPS, o Virtual Private Server, en español significa, Servidor Privado Virtual.
¿Qué es una VPS?
Una VPS, es un servidor virtual, que corre en un servidor físico que a su vez también alberga otras VPS. Cada VPS esta completamente aislada de las demás, tanto como de espacio en disco, como en uso del CPU. El manejo de la RAM en una VPS puede ser un poco mas complejo… lo explico mas adelante en este post.
Una VPS es un paso intermedio, entre un hosting comun, y un servidor dedicado, hay mucha variedad de VPS, la mayor ventaja es que son completamente upgradeables es decir, que en la medida que el servidor fisico lo soporte, podemos aumentar la RAM, la velocidad del CPU, o la velocidad del puerto ethernet, con un par de clicks, instantaneamente.
Otra ventaja con respecto a un hosting compartido comun, es que en el 99% de los casos, NO dependemos de otros usuarios y somos completamente responsables de el uptime del server, ya que si una VPS está usando el CPU al 100%, ésto no afecta a las otras VPS.
Otra ventaja, es la cantidad de sistemas operativos que hay para elegir, también, con solo dos clicks, podemos elegir que distro de linux usaremos, e inclusive versiones de windows server.
¿Cómo elegir una VPS?
Hay dos tipos de VPS, Managed, y Unmanaged, cada una tiene sus ventajas, que explicare ahora, pero un gran porcentaje de la desicion se basa en el conocimiento de linux (o windows server) que tengamos.
Ventajas de una VPS “Managed“:
- No necesitas tener conocimientos de servidores.
- Puedes tener tu hosting online en pocos minutos.
- Por lo general, el soporte tecnico es mejor que en las Unmanaged.
- No tienes acceso al 100% de tu VPS.
- Dependes del software que te instalen.
- El precio.
- Acceso al 100% a la VPS.
- Podemos elegir que programas instalar, y cuales no.
- El precio.
- Necesitas tener conocimientos de Linux o Windows Server.
- Poco soporte técnico.
RAM
- RAM Dedicada
- Burstable RAM
Instalar paquetes en versiones viejas de Ubuntu
by Lordblacksuca on Aug.13, 2011, under General, Linux, Tutoriales
A veces nos encontramos con el caso de querer instalar algunas aplicaciones en versiones de ubuntu cuya vida llego a su fin.
En mi caso necesitaba instalar openssh-server en un ubuntu Gutsy.
El problema, es que al hacer apt-get update salen errores diciendo que las URL no existen. (404)
La solución es modificar el sources.list para poder descargar la lista de paquetes desde el servidor “old-releases” de ubuntu.
Paso a Paso:
sudo nano /etc/apt/sources.list
Alli, reemplaza todos los
- us.archive.ubuntu.com –> esto puede ser us o ar es depende el pais.
- security.ubuntu.com
con
Graba el archivo con F2
sudo apt-get update
y listo!!!
sudo apt-get install openssh-server
Blog Actualizado!
by Lordblacksuca on Aug.12, 2011, under General
Despues de un buen tiempo… si, varios meses, vuelvo a escribir.
Breve resumen de lo ocurrido:
Mi antigua empresa de hosting: HostRentable, me suspendía la cuenta por “Abuso del CPU”. Esto ocurrió muchas veces, hasta que me canse, y decidí moverme a una VPS para que nadie me molestara.
Así fue como encontré W2Servers. Una empresa relativamente nueva, barata, muy barata, y que los primeros meses funcionó de 10… hasta que… un día de Mayo una de mis VPS se fue offline totalmente, y el ya extremadamente lento soporte técnico me dijo que eran problemas de disco rígido, y que los datos se habían perdido… al poco tiempo, se cayo otra de mis VPS y luego la otra… en resumen, en un mes esta empresa desapareció.
Perdi dinero y sobre todo, TIEMPO con esta empresa…
Por ello, ahora estoy con una nueva VPS en buyvm.net, que de momento, está marchando bien.
Espero que esto siga asi, y pueda publicar el contenido que tengo guardado desde hace ya mas de 6 meses…
Saludos!





