miércoles, 24 de diciembre de 2008

Conexion MySQL - Java en Ubuntu

Primero vamos a instalar mysql de la siguiente manera:

$sudo apt-get install mysql-server mysql-client

Descargamos el conector de mysql desde el siguiente link:

http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.7.tar.gz/from/pick?file=Downloads/Connector-J/mysql-connector-java-5.1.7.tar.gz&mirror=pick&file=Downloads/Connector-J/mysql-connector-java-5.1.7.tar.gz&mirror=pick#mirrors

Lo instalamos de la siguiente manera:

$sudo chmod +x mysql-connector-java-5.1.7.tar.gz
$tar -xzvf mysql-connector-java-5.1.7.tar.gz
$cd mysql-connector-java-5.1.7
$sudo cp /home/user/Documents/mysql-connector-java-5.1.7/mysql-connector-java-5.1.7-bin.jar /usr/lib/jvm/jre/lib/

Ahora agregamos el archivo jar a la PATH de la siguiente manera...

#export set CLASSPATH=/path/mysql-connector-java-[ver]-bin.jar:$CLASSPATH

Donde path sera la ruta en la que tenemos el archivo .jar, en este ejemplo /usr/lib/jvm/jre/lib/

Otra forma que para mi caso seria lo mas recomendable es poner el archivo .jar en nuetro proyecto de netbeans... De la siguiente manera:
Damos clic derecho sobre nuestro proyecto y despues en Properties, nos abre una ventana donde damos clic en libraries y despues en add Jar/Folder y buscamos el archivo .jar que contiene el conector que vamos a ocupar...


Ahora vamos a crear la base de datos y la tabla de prueba, con los siguientes comandos:

mysql> create database prueba;
mysql> use prueba;
mysql> create table persona (id smallint auto_increment, nombre varchar(60),nacimiento date, primary key(id));

Insertamos un registro.

mysql > insert into persona (nombre, nacimiento) values ('primitivo', '1985-07-18')

Una vez creada la base de datos vamos a crear el codigo de nuestro archivo java con el siguiente codigo para realizar una consulta a la base de datos:

package prueba;

/**
*
* @author primitivo
*/

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;


public class Main {

/**
* @param args the command line arguments
*/

protected Connection conn = null;
protected Statement stmt = null;

/**

* Conecta con la base de datos 'prueba' del servidor
* MySQL local.

**/

public void conectar() throws Exception {
Class.forName("com.mysql.jdbc.Driver").newInstance();
this.conn = DriverManager.getConnection("jdbc:mysql://localhost/prueba", "root", "tu_passwd");
this.stmt = conn.createStatement();
}

/**

* @throws Exception DOCUMENT ME!

*/

public void desconectar() throws Exception {
if (this.stmt != null) {
try {
this.stmt.close();
} catch (SQLException SQLE) {
SQLE.printStackTrace();
}
}
if (this.conn != null) {
try {
this.conn.close();
} catch (SQLException SQLE) {
SQLE.printStackTrace();
}
}
}
protected void consultarRegistro(Connection conn, String SQLquery) throws SQLException {

ResultSet rs = stmt.executeQuery(SQLquery);
int columns = rs.getMetaData().getColumnCount();
System.out.println("------------------------");
System.out.println();
while (rs.next()) {
for (int i = 1; i <= columns; i++) {
System.out.println(rs.getString(i));
}
System.out.println();
}
rs.close();
stmt.close();
System.out.println("------------------------");
System.out.flush();
}

public static void main(String[] args) throws Exception {
// TODO code application logic here
Main mn = new Main();

try{
mn.conectar();
System.out.println("Conexion Satisfactoria!!!");
mn.consultarRegistro(mn.conn, "SELECT * FROM persona");
System.out.println("La Consulta se realizo exitosamente!!!");
mn.desconectar();

}
catch (Exception e) {
e.printStackTrace();
}
}
}

Y aqui tenemos la imagen de que todo funciona a la perfeccion...



Espero que les haya servido... Para realizar actualizaciones, eliminacion e insercion a la base de datos dejar su comentario para que suba el codigo correspondiente...

sábado, 11 de octubre de 2008

Servidor Web con DynDNS e ip dinamica sobre Ubuntu

Un servidor WEB es el lugar donde se hospeda toda la información que queramos dar a conocer al mundo
por Internet, que es parte de tu pagina personal, un Blog o Bitácora, lo que tu imaginación se te ocurra, por
otro lado es bueno que tenga soporte PHP, MySQL.
Empecemos...
Actualice la base de aptitude (en Ubuntu es aconsejable usar aptitude en lugar de apt porque el primero resuelve mejor las dependencias).

$ sudo aptitude update

Hará un reconocimiento de los repositorios y actualizara la base de paquetes disponibles.
Ahora instalaremos los paquetes necesarios de la siguiente forma:

$ sudo aptitude install apache2 php5 mysql-server ddclient

Confirma con Y donde te pida para la instalación. Si sale alguna pantalla en azul (no es windows eh!) para configurar algún aspecto si es de llenado de datos haz caso omiso y no pongas nada, si es de escoger de un menú selecciona el mas adecuado, pero las pantallas que te pidan escribir no lo hagas solo darle ENTER.
En este momento si no salio ningún error tendrás ya instalado estos paquetes que son los necesarios para tu servidor WEB con soporte php y mysql.

-Creando una cuenta en DynDNS ...
Para crear una cuenta en DYNDNS entramos en nuestro navegador de preferencia (viva FireFox) y nos dirigimos a la siguiente URL http://www.dyndns.com/
Este servicio nos proporciona una dirección de Internet a lo que le llamamos dominios de forma gratuita, como ejemplo http://trixmontero.homelinux.net/ pero te preguntaras ¿esto que tiene de novedoso?
Simplemente que DynDNS hace que tu pc, configurado como webserver se conecte a dicha dirección y tu PC funcione como hosting eso quiere decir que te olvides de publicidad por todos lados, direcciones largas o que tengas que pagar hosting (aunque eso es relativo el costo de la conexión a Internet y la luz cuestan).
Bueno primero definiremos que es una dirección IP dinámica y una estática.
Una dirección IP es la dirección numérica de un ordenador en Internet. Cada dirección IP se asigna a un ordenador conectado a Internet y es única. Consiste en un número de 32 bits que suele representarse como cuatro octetos separados por un punto (150.214.90.66).
Ahora...
Una IP Dinámica es el que cambia cada vez que se conecta a Internet o que el servidor del servicio hace un reset al mismo, es el que mucha gente utiliza al tener una conexión dialup, adsl, etc.
Una IP Estática es lo contrario a la anterior es un numero de IP que siempre sera de su conexión y nunca cambiara por ninguna razón, al tener una IP estática tiene mucha ventaja pues siempre lo podrán identificar, generalmente tener un IP estática es costo extra.
Ahora si a crear la cuenta
Seleccionar la opción Account.
Después creas una nueva cuenta con la opción Create Account.

Y deberás llenar toda la información que te pide desde tu nombre de usuario con el que entraras siempre, tu correo electrónico y tu password (estos datos no los olvides) cuando lo hallas hecho y mientras que el nombre de usuario no lo halla registrado alguien mas, seguiremos al siguiente paso presionando Create Account.

Cuando salga este mensaje donde nos muestra el nombre de usuario y el email es que ya estas registrado pero todavía falta activar la cuenta tenemos que esperar un correo (obviamente el correo que registraste).
En tu correo te dan un link que te servirá para confirmar la activación de la cuenta en DynDNS al hacerlo te saldrá otra pantalla donde menciona que la activación ha sido realizada.
De nuevo nos vamos a la opción Account e ingresamos el USERNAME y PASSWORD de la cuenta que activaste.

Aquí es donde podrás dar de alta un dominio gratuito haciendo click en la opción My Servicies.

Después veras como puedes hacer que cada vez que inicie tu Linux se conecte y actualice tu dirección dinámica en DynDns. Si tu IP es estática no tendrás problema.
El nombre que debes poner Hostname es arbitrario siempre que no halla sido dado de alta por otro usuario.
En este momento felicidades has creado un dominio, si desearas otro dominio pues harías le misma secuencia claro que omitiendo introducir de nuevo tu username y password de tu cuenta solo si te lo pide de nuevo.

Configurando servidor WEB APACHE
Esta versión de apache viene mucho mas fácil y esta dividido para su mejor configuración. No tenemos que mover casi nada, toma atención de lo que debes solo modificar. En tu consola primero identificaremos en donde se encuentra los archivos de configuración de apache de la siguiente forma:

$ cd /etc/apache2

Y encontraremos algo como lo siguiente aunque puede ser similar. Antes que empecemos a configurar haremos un respaldo de los archivos que trabajaremos por posibles equivocaciones que tuviéramos al editar.

$ sudo cp apache2.conf apache2.conf.back
apache2.conf es el esencial en al configuración de apache sin embargo solo le modificaremos una sola opción para que nuestras paginas no tengan problemas con la codificación de caracteres solo hay que descomentar una linea de la siguiente manera:
$ sudo vi apache2.conf

En seguida veras el extenso texto de configuración que explicar cada una de sus partes tardaría mucho tiempo por si quieres saber mas visita http://httpd.apache.org/docs/2.0/es/

Ahora presiona /AddDefaultCharset y después ENTER (se realiza la búsqueda de la opción). Y quita el # del inicio de la linea (recuerda que para editar debes presionar primero la tecla INSERT), quedaría algo así:

AddDefaultCharset ISO-8859-1

Ya modificado presiona la tecla ESC para salir del modo edición y después escribe :w y después ENTER para guardar
los cambios y escribir :q y después ENTER para salir del editor VIM.
Ahora entramos a sites-available de la siguiente forma:

$ cd sites-available

Después editaremos el único archivo que encontramos en ese directorio llamado default

$ sudo vi default

NameVirtualHost *:80

<VirtualHost *:80>
ServerAdmin <b>tuemail@com</b>
DocumentRoot /var/www/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
# This directive allows us to have apache2's default start page
# in /apache2-default/, but still have / go to the right place
# Commented out for Ubuntu
RedirectMatch ^/$ /apache2-default/
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
ServerSignature On
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>

<VirtualHost *:80> # señalamos que hay un espacio para un sitio independiente
ServerName trixmontero.homelinux.net # Nombre del dominio que dimos de alta en la cuenta que se creo en DynDns
DocumentRoot /var/www/MyServer # el lugar donde sera el directorio base de dicho sitio en la PC(esta la pagina)
DirectoryIndex index.php index.html index.htm index.shtml # Archivos que debera buscar para iniciar la pagina principal.
</virtualhost>



En el anterior ejemplo se muestra como agregar el sitio al final, donde se hospedara los archivos pertenecientes a nuestro dominio o pagina WEB si deseamos, dar de alta otra dirección en DynDns y ocupando nuestro server pero con una pagina diferente, esto es posible ya que apache soporta multidominios es decir puedes tener infinidad de dominios o subdominios redireccionados a tu pc siempre y cuando tu PC y conexión soporten.
Solo tendrías que aumentar otro virtualhost y estará listo.

-Cambiando puerto de escucha del APACHE ...
El numero 80 es el puerto por default donde se pone un servidor WEB con apache pero si quieres redireccionarlo, en caso que tu ISP bloquee tu puerto 80 puedes cambiar el numero de puerto a un puerto alto como 8080, 8021 etc verifica cuales son los puertos http://es.wikipedia.org/wiki/Lista_de_n%C3%BAmeros_de_puerto y recomiendo escoger uno
que no veas en la lista, si quieres ver si esta bloqueado tu puerto 80 ve la pagina http://www.upseros.com/portscan.php ahí te dirá que es lo que tienes cerrado en tu conexión.
Si decidiste cambiar el puerto de escucha pues solo cambiarlo del 80 al nuevo puerto y tendrás que modificar en /etc/apache2 el archivo ports.conf

$ sudo vi /etc/apache2/ports.conf

donde en presionamos la tecla INSERT para editar.
Listen 80 # cambiar al puerto que se halla escogido y que este en tu VIRTUALHOST de default
después ESC para salir de edición y :w ENTER y :q ENTER
-Continuando ...
En este momento tendremos instalado y configurado nuestro apache solo nos falta iniciar el servicio.

$ sudo /etc/init.d/apache2 start

y deberá aparecer algo así:

• Forcing reload of web server (Apache2)... [ ok ]

Eso dirá que todo va bien hasta aquí, al menos no tienes problemas de sintaxis. Pero ya estará activo el servidor.
Para verificar que este funcionando tu Server solo entra con tu navegador a http://localhost si cambiaste el puerto de escucha a un puerto alto debes poner http://localhost:puerto
Te mostrara un texto donde dirá que tu Apache esta instalado.
-Configurando ddclient.conf
Ahora configuraremos ddclient que su función es actualizar la IP de nuestra conexión hacia nuestro dominio DynDns es decir si nuestra conexión a Internet tiene una IP Dinámica, no nos preocuparemos en como actualizar la IP en DynDns ya que ddclient se encarga de eso cada vez que reinicie Ubuntu.
Realizaremos la configuracion editando /etc/ddclient.conf
$sudo gedit /etc/ddclient.conf
Y ponemos nuestros datos segun el ejemplo a continuacion.
# Configuration file for ddclient generated by debconf##
/etc/ddclient.confpid=/var/run/ddclient.pid
protocol=dyndns2 # El protocolo
use=web, web=checkip.dyndns.org # Para obtener la IP actual
server=members.dyndns.org # El servidor para identificarse
login=usuario # El nombre de usuario
password=clave # La contraseña
trixmontero.homelinux.net #el dominio creado en dyndns
Configurado el fichero ya tenemos todo listo para funcionar. Sólo nos falta utilizar el ddclient para actualizar nuestra IP cada vez que ésta cambie. Se hace de la siguiente manera:

$ /usr/sbin/ddclient -file /etc/ddclient.conf -cache /home/nombre_usuario/.ddclient.cache
Donde nombre_usuario es el directorio de tu usuario en linux
y nos debería dar una salida de este estilo:

SUCCESS: updating trixmontero.homelinux.net: good: IP address set to 85.84.49.51

Redireccionamos los datos a un fichero .cache para que no mande información a los de dyndns si nuestra IP no ha sufrido cambios o eso he leído (no queremos "colapsar" su servidor y nos arriesgamos a un baneo temporal)
Claro, si tenemos que hacer esto manualmente cada vez que cambie nuestra IP, todo esto viene a ser un coñazo.
Así que editando el crontab (para dar ordenes y que se ejecuten periódicamente) automatizaremos la orden. Editamos el crontab:

$ crontab -e

y escribimos:

15 */2 * * * /usr/sbin/ddclient -file /etc/ddclient.conf -cache /home/nombre_usuario/.ddclient.cache -quiet

Cerramos el editor y la actualización se efectuará cada dos horas (y por lo visto cada vez que reiniciemos la máquina).
Ya tenemos un dominio personalizado y estático con una IP dinámica.
Espero que haya sido de ayuda.
Más info aquí:
http://bulma.net/body.phtml?nIdNoticia=834http://www.superiodico.net/modules/news/article.php?storyid=11 (De aquí he sacado casí toda la información)

viernes, 10 de octubre de 2008

Servidor de Archivos e Impresion Samba con Ubuntu

Samba es una implementación libre del protocolo de archivos compartidos de Microsoft Windows (antiguamente llamado SMB, renombrado recientemente a CIFS) para sistemas de tipo UNIX. De esta forma, es posible que ordenadores con Linux, Mac OS X o Unix en general se vean como servidores o actúen como clientes en redes de Windows. Samba también permite validar usuarios haciendo de Controlador Principal de Dominio (PDC), como miembro de dominio e incluso como un dominio Active Directory para redes basadas en Windows; aparte de ser capaz de servir colas de impresión, directorios compartidos y autenticar con su propio archivo de usuarios.
Entre los sistemas tipo Unix en los que se puede ejecutar Samba, están las distribuciones GNU/Linux, Solaris y las diferentes variantes
BSD entre las que podemos encontrar el Mac OS X Server de Apple.
Instalación:
$sudo aptitude install samba samba-client smbfs smbclient
esto debería instalar también varias otras dependencias.
Luego configuramos el archivo /etc/samba/smb.conf
$sudo gedit /etc/samba/smb.conf
Configurar Grupo de Trabajo:
Buscamos la linea que diga workgroup y establece tu grupo de trabajo.
workgroup = MYWORKGROUP
Para agregar una carpeta
Primero debemos crear una carpeta con permisos (por ejemplo) : $sudo mkdir /home/public
$sudo chmod 755 /home/public
Luego abrimos el archivo /etc/samba/smb.conf para modificarlo : $sudo nano /etc/samba/smb.conf
y le agregamos, al final, algo como esto :
[public]
comment = Carpeta compartida
path = /home/public
public = yes
writable = no
las opciones son auto-sugerentes, por ejemplo "public = yes" es para que se pueda acceder a la carpeta (el permiso x de sistema), y "writable = no" es para que no se pueda escribir (el permiso w de sistema).
Mas sobre los permisos de las carpetas
Generalmente (esto pasa con mi ubuntu 6.10) al usuario externo que tiene acceso al equipo a través de Samba, el sistema le da como nombre de usuario nobody y como nombre de grupo nogroup, es así como podemos cambiar el nombre de usuario y nombre de grupo a nuestras carpetas, con el fin de que el sistema también sepa quien es el propietario de esa carpeta: $sudo chown nobody:nogroup /home/public
$sudo chmod 555 /home/public
y si queremos que también pueda escribir sobre esta carpeta $sudo chmod 755 /home/public
y además debemos decirle a Samba que se lo permita (acuerdate que para que un permiso sea válido, tanto el sistema como Samba deben estar de acuerdo)

Para no usar contraseña
Buscamos (control+w) la línea donde diga algo como : ; security = user
y la reemplazamos por : security = SHARE
Agregando usuario
Suele pasar que cuando entras desde windows a una carpeta compartida en ubuntu, te pide usuario, puede hacer lo siguiente: sudo smbpasswd -a tu_usuario
si deseas le pones contraseña por motivos de seguridad, y si no necesitas la constraseña solo dale enter.

Para reiniciar samba
Luego de efectuar algún cambio en el archivo /etc/samba/smb.conf debemos reiniciar samba, para ello : $sudo /etc/init.d/samba restart
Con todo lo anterior deberíamos ser capaces de entrar desde un equipo con windows o linux a la carpeta /home/public sin necesidad de tener nombre de usuario ni password:
Desde Windows colocamos en la barra de direcciones de alguna ventana:
\\192.168.0.1\public
Desde Linux (que tenga instalado el paquete samba-client) abrimos una carpeta y colocamos en la barra de direcciones: smb://192.168.0.1/public/
donde 192.168.3.1 es "la IP privada" del equipo linux que contiene a la carpeta /home/public

lunes, 6 de octubre de 2008

Dnsmasq, servidor DNS y DHCP

Dnsmasq es un servidor (DNS, DHCP) muy ligero que tiene un efecto colateral; además de funcionar como servidor DNS para tu red local (gracias a que lee el archivo /etc/hosts) y poder resolver los nombres asignados a tus equipos, también hace de servidor DNS caché, es decir almacena las IPs consultadas para no tener que repetir la consulta cuando vuelven a pedirse.
El resultado es que el acceso a las páginas de Internet es más rápido. Como sabemos, antes de visualizar su contenido, debe resolverse el nombre del equipo al que le enviamos la petición a través de una compleja red de servidores, que se inicia en el (o los) que hemos definido en /etc/resolv.conf
Nuestro(s) servidor(es) suelen ser dos IPs de nuestro suministrador de acceso a Internet. Con dnsmasq conseguimos reducir el proceso de consulta.
Puedes confirmar la mejora en la velocidad con que se resuelven los nombres mediante el comando digg. Antes de instalar, configurar y activar dnsmasq ejecuta:

$ dig google.es

y anota el valor que aparece al final de la respuesta al lado de QUERY TIME.
Luego sigue los pasos para instalarlo:
1. Instalar dnsmasq
$ sudo apt-get install dnsmasq

Si la consola te dice que "no se ha podido encontrar el paquete dnsmasq" probablemente se deba a que no has activado el repositorio Universe.
2. Editar
$ sudo gedit /etc/dnsmasq.conf

y descomentar la siguiente línea #listen-address=
luego modificarla para que quede como la siguiente listen-address=127.0.0.1
3. Editar
$ sudo gedit /etc/dhcp3/dhclient.conf

y asegurarse de que el contenido del archivo sea exactamente el siguiente, especialmente en la línea “prepend domain-name-servers 127.0.0.1;” ya que debe de estar descomentada (sin el símbolo # al principio de la frase) #supersede domain-name "fugue.com home.vix.com";
prepend domain-name-servers 127.0.0.1;
request subnet-mask, broadcast-address, time-offset, routers,
domain-name, domain-name-servers, host-name,
netbios-name-servers, netbios-scope;

4. Editar
$ sudo gedit /etc/resolv.conf

y poner como primer servidor el local, de forma que quede más o menos así: search tuisp (mundo-R.com, telefonica, yahoo, etc...) (Esta linea NO la debeis tocar)
nameserver 127.0.0.1
nameserver xxx.xxx.xxx.xxx
nameserver xxx.xxx.xxx.xxx
Los xxx.xxx.xxx.xxx se refieren a unas IPs específicas para cada conexión, pero como no tienes que modificarlas no te preocupes ni las toques, sino tienes estas direcciones, fijate en tu ISP para telmex de mexico utiliza estas:
200.33.146.219
200.33.146.212
5. Arrancar de nuevo el demonio introduciendo la siguiente línea en una terminal:
$ sudo /etc/init.d/dnsmasq restart
Una vez concluida la instalación y configuración puedes continuar con el experimento de comprobar la mejora de velocidad, para ello repite el comando
$ dig google.es
cuando funcione el dnsmasq; el valor numérico de QUERY TIME tendría que ser casi 10 veces menor.

Servidor DHCP
Normalmente el servidor DHCP irá en el firewall, y sólo deberíamos atender las peticiones DHCP desde dentro de la red local.
Editamos
$ sudo gedit /etc/dnsmasq.conf
Si el interfaz de red conectado a la LAN es eth1, deberemos descomentar la línea: #interface=
Y modificarla así: interface=eth1
Ahora activaremos el servidor DHCP integrado descomentando la línea: #dhcp-range=192.168.0.50,192.168.0.150,12h
Y modificándola para adaptarla al rando de IP que queramos servir:
dhcp-range=192.168.0.1,192.168.0.100,12h
Así, las IPs que asignará el servidor irán desde la 192.168.0.1 hasta la 192.168.0.100; estableciendo el tiempo de asignación de la IP a 12 horas, después de las cuales esa IP puede asignarse a otro equipo si no lo reclama antes.
Tambien podemos asignar siempre la misma direccion a una PC, unicamente nesecitamos conocer su direccion mac, para equipos windows usamos el comando ipconfig /all, para linux usamos ifconfig -a. para ver las direcciones mac de nuestros clientes. Ahora editamos dnsmasq.conf y agregamos lo siguiente por ejemplo:
#Laptop de Primitivo
dhcp-host=00:11:09:0D:63:FE,192.168.0.10
donde 00:11:09:0D:63:FE es la mac de nuestra maquina y 192.168.0.10 es la direccion que queremos asignar

Las direcciones IP que va asignando las registra en el fichero /var/lib/misc/dnsmasq.leases.


Este articulo es un copy-paste de guia-ubuntu y con algunas modificaciones que yo realice para que funcionara segun mi configuración.

viernes, 3 de octubre de 2008

Instalando un servidor FTP en Ubuntu

Bueno con este mini how-to les pretendo enseñar como instalar su propio servidor ftp (en este caso el proFTPd).1) Creamos el usuario
Código:
~$ suPonemos la contraseña del root# useradd nombre_de_usuario_que_elijamos# passwd nombre_de_usuario_que_elegimos
2) Creamos el directorio donde pondremos los archivos que luego serán vistos desde el navegador o desde cualquier otro programa
Código:
# mkdir /home/un_directorio
3) Le damos los permisos correspondientes (en este caso de lectura, escritura y ejecucion)
Código:
# chmod 777 /home/un_directorio
4) Instalamos el daemon
Código:
# apt-get install proftpd
En esta parte puede que nos pregunte si queremos configurar nuestro servidor FTP como inetd o como independiente. Si utilizamos inetd el equipo va a iniciar un proceso nuevo por cada pedido de ftp que llegue. Pero si se ejecuta en forma independiente, el proceso ya va a estar inicializado entonces no hay necesidad ejecutar un nuevo programa.Pero nosotros elegimos inetd.5) Configurando proFTPdBueno para esto tenemos que editar el archivo proftpd.conf que se encuentra en el directorio /etc/proftpd.conf.Acá les dejo el link de la página oficial para que puedan ver algunos ejemplos de configuración y elegir el que más les convenga6) Reiniciamos el servicio
Código:
# /etc/init.d/proftpd restart
7) Y por último probamos si funciona, asi que abrimos nuestro navegador y tecleamosftp://usuario_que_creamos:contraseña@direccion_ip:21PD: En caso de tener un router tenemos que abrir los puertos 21 y 22. Y también permitir el acceso en caso de tener algún firewall.Espero que este mini how-to les haya sido de ayuda.Un saludo

jueves, 11 de septiembre de 2008

Como bloquear y desbloquear el registro de windows

Un pequeño consejo para evitar modificaciones en el registro sin autorizacion
Algunas veces puede que sea necesario bloquear el registro de Windows para impedir que otros usuarios accedan a él y puedan modificar configuraciones.
Esta opción es un poco complicada ya que al hacerlo tampoco nos dejará acceder al registro, pero no hay que preocuparse porque primero veremos como hacer para bloquear el registro y luego como haremos para desbloquearlo.
Para deshabilitar el registro de Windows
Hacemos clic en el botón Inicio y luego en Ejecutar, escribimos la palabra Regedit y pulsamos el botón Aceptar,ahora en el registro de Windows buscamos la clave


HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Policies/System.

En la ventana de la derecha creamos un nuevo valor DWORD y le damos el nombre DisableRegistryTools
Hacemos doble clic sobre él y le damos el valor “1” para deshabilitar las funciones de edición del registro.
Una vez realizada esta operación ya nadie podrá acceder al registro de Windows, hasta que no lo volvamos a activar.
Para habilitar el registro de Windows
Abrimos el bloc de notas y escribimos lo siguiente:
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\system] "DisableRegistryTools"=dword:00000000

Ahora guardamos el bloc de Notas con el nombre unlock.reg y a partir de ahora cuando queramos habilitar el registro de Windows, después de haberlo deshabilitado solo tendremos que hacer doble clic sobre el archivo que acabamos de crear unlock.reg.
Así de esta forma mi consejo es que primero crees el archivo unlock.reg y luego deshabilites el registro.



---------------------------
Aclaraciones: Este blog fue solo un copy-paste de otro blog que me encontre en la red por lo que pongo el link del post original.
http://alexsancho.name/archives/2004/10/bloquear-y-desbloquear-el-registro-de-windows/

domingo, 7 de septiembre de 2008

Configurar gateway en linux para compartir internet

Esta vez me vi en la necesidad de configurar mi Ubuntu como gateway, esto para compartir internet con otra laptop de mi casa con el fin de hacer pruebas para configurar un firewall, para bloquear messenger en una red del trabajo. Debes de contar con 2 tarjetas de red en el servidor Linux.

La conexion de red es como lo muestra la siguiente figura.


A continuacion pongo la configuracion de mi modem 2wire y de mis tarjetas de red respectivamente.

MODEM 2WIRE
Private Network
Router Address: 192.168.1.254
Subnet Mask: 255.255.255.0
DHCP Range: 192.168.1.64 - 192.168.1.253

Tajetas de red de ubuntu

Tarjeta eth0 conectada al modem 2Wire (Internet)

auto eth0
iface eth0 inet static
address 192.168.1.1
netmask 255.255.255.0
gateway 192.168.1.254

Tarjeta eth1 conectada a la red privada (Red local)

auto eth1
iface eth1 inet static
address 192.168.0.1
netmask 255.255.255.0

Ahora necesitamos instalar los siguientes paquetes:

$sudo apt-get install iptables

Ahora vamos a crear nuestro script para nuestro firewall.

$sudo gedit /etc/init.d/iptablesconfig

dentro escribimos las siguientes lineas:

#!/bin/sh
echo -n "Iniciando Gateway… "
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE

echo "1" > /proc/sys/net/ipv4/ip_forward
echo "\n...Gateway Iniciado."


Guardamos los cambios y le damos permisos de ejecucion:
$ sudo chmod -v 755 /etc/init.d/iptablesconf

el modo de «iptablesconf» cambia a 0755 (rwxr-xr-x) Lo ejecutamos:
$ sudo /etc/init.d/iptablesconf

si todo ha ido bien veremos este mensaje:
* Iniciando Gateway…
* ...Gateway Iniciado.

Ahora utilizamos el siguiente comando para que script se cargue cada vez que arranque el sistema:

$ sudo update-rc.d iptablesconf start 20 2 .

#### ATENCIÓN AL PUNTO DEL FINAL, HAY QUE PONERLO ####
Adding system startup for /etc/init.d/iptablesconf …
/etc/rc2.d/S20iptablesconf -> ../init.d/iptablesconf

Ahora podemos probar si todo funciona, nos vamos a los otros PCs y configuramos la red con ips estaticas (por ej 192.168.0.2 , 192.168.0.3 , etc..) y su correspondiente mascara de subred (255.255.255.0 para el ejemplo) utilizamos como puerta de enlace el pc que comparte la conexión (192.168.0.1 en el ejemplo) y como servidores dns utilizamos los mismos que tenga configurados el pc que da acceso a internet, que podemos verlos utilizando

$ cat /etc/resolv.conf

Esta configuracion la hice y me funciono al toque, solo tuve que poner los DNS en el segundo pc, porque tenia internet, hacia ping al primer pc, hacia ping a internet, pero no entraba a las paginas por sus nombres, solo por sus IPs.


Para que los clientes queden configurados de manera automatica necesitamos un configurar un servidor DNS y DHCP en nuestro servidor linux... Esto lo pondre en futuras configuraciones...

Chiao!!!

jueves, 28 de agosto de 2008

Instalar Mono .NET en Ubuntu

Esta vez vamos a instalar mono .NET en Ubuntu, para aquellos que programan en C#, realmente es muy sencillo y facil unicamente tenemos que poner lo siguiente en la linea de comandos.


$sudo aptitude update

$sudo aptitude install mono-gmcs mono-utils monodevelop monodoc mono-xsp monodoc-http monodoc-ipod-manual monodoc-njb-manual monodoc-nunit-manual monodoc-gtk2.0-manual monodoc-gecko2.0-manual monodoc-ipod-manual monodoc-njb-manual monodoc-nunit-manual monodoc-gecko2.0-manual mono-xsp2 libnunit-doc monodevelop-nunit monodevelop-versioncontrol monodevelop-query

Bien ahora accedemos al menu Applications->Programming->Mono Develop (Aplicaciones->Programacion->Mono Develop)

Ahora vamos a crear una nueva solucion, una vez que ya tenemos nuestro IDE abierto, nos vamos al menu File->New Solution (Archivo->Nueva Solucion)ahi nos abre un cuadro de dialogo, donde en la parte inferior vamos a escoger C#, en la parte de arriba Console Application (Aplicacion de consola) le ponemos un nombre en este caso sample y escogemos la ruta en la que vamos a guardar nuestra nueva solucion. Ahora damos en Forward(siguiente) y elegimos Gtk#Support y Finish(Terminar).

Ahora el editor nos creara el codigo clasico de Hello World!!!
como a continuacion:

-----------------------------------------------------------
// Main.cs created with MonoDevelop
// User: primitivo at 7:26 PM 8/28/2008
//
// To change standard headers go to Edit->Preferences->Coding->Standard Headers
//
using System;

namespace sample
{
class MainClass
{
public static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}

-----------------------------------------------------------------

Por ultimo vamos a crear la solucion (compilar), para esto nos vamos a Project->Build Solution(Proyecto->Crear Solucion) y por ultimo, corremos nuestra aplicacion de consola Project->Run (Projecto->Correr) o presionamos
F5. Vemos la salida en la parte de abajo Application Output (Salida de la aplicacion)





Y listo. espero que les sirva!!! ;)

viernes, 25 de julio de 2008

Configurando tarjeta de red RTL8169/8110 en Ubuntu-Server 8.04

Por alguna razon que desconozco al momento de instalar Ubuntu-Server me reconoce la tarjeta de red, pero ya despues que reinicio no me aparece, asi que me puse a investigar y creo que la causa es por que no carga el modulo de la interfaz de red al iniciar el sistema. 

Asi que manos a la obra. 

Primero vamos a identificar el modulo de la tarjeta correspondiente.

$sudo su 
#cd /lib/modules/'uname-r'/kernel/drivers/net

#insmod ./r8169.ko

Con esto activamos el modulo de la tarjeta, pero falta hacer la entrada para que vuelva a cargar el modulo automaticamente cada vez que se reinicie linux 

#nano /etc/modules

y agregamos al final

r8162

guardamos y reiniciamos. Si aun asi no les aparece la interfaz al momento de dar el comando ifconfig, lo que yo hice fue agregar una nueva interfaz eth2,al archivo /etc/network/interfaces

#nano /etc/network/interfaces

auto eth2

iface eth2 inet dhcp

Ahora ya podemos configurar nuestra interfaz con los valores que necesitemos

para eso editamos los siguientes archivos:

  • /etc/network/interfaces
  • /etc/resolv.conf

En el primero se configuran las interfaces de red, y el segundo es para resolver nombres por medio de un servicio DNS.

De todos modos pongo los ejemplos de los 2 archivos.

#cat /etc/network/interfaces

iface eth2 inet static
address 192.168.1.100
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.254

#cat /etc/resolv.config

nameserver 192.168.1.254
nameserver 202.54.181.20

Cada vez que modifiquemos estos archivos tendremos que reiniciar los servicios de red con el siguiente comando:

$ sudo /etc/init.d/networking restart

Si queremos hacer los cambios de manera mas rapida y no persistente (una vez que ser reinicie el equipo se perderan los cambios) podemos usar el comando: 

$ sudo ifconfig eth2 192.168.1.50 netmask 255.255.255.0 up

En mi caso utilizo eth2, pero por lo general es eth0, dependiendo de la interfaz que esten configurando.

domingo, 29 de junio de 2008

Configurar cliente DHCP en openBSD

Hay que editar el fichero /etc/hostname.xl0 (suponiendo que la interfaz principal de ethernet sea xl0 ... la interfaz podría ser ep0, fxp0, o cualquier otra) para modificarlo. La única modificación necesaria en este fichero es añadir la palabra clave 'dhcp':

# echo dhcp >/etc/hostname.xl0

Esto hará que OpenBSD inicie el cliente DHCP automáticamente durante el arranque. OpenBSD obtendrá la información sobre nuestra dirección IP, pasarela, y servidores de DNS desde el servidor de DHCP.
Si se desea iniciar un cliente dhcp desde la línea de órdenes, antes hay que asegurarse de que el fichero /etc/dhclient exista y entonces usar la orden:

# dhclient fxp0

en donde fxp0 es la interfaz en la que se desea recibir dhcp.
Sea cual fuere el modo en que se inicie dhclient, se puede editar el fichero /etc/dhclient para evitar que se actualice la DNS de acuerdo con la idea que tenga el servidor de dhcp sobre la DNS, comentando las líneas precedidas por 'request' (son ejemplos de la configuración predefinida, pero es necesario activarlos para anular la configuración predefinida de dhclient):
request subnet-mask, broadcast-address, time-offset, routers,

domain-name, domain-name-servers, host-name, lpr-servers, ntp-servers

y a continuación eliminar domain-name-servers. También, si se desea, es posible anular hostname u otras configuraciones.

lunes, 2 de junio de 2008

Como instalar Smarty en Windows

Antes que nada vamos a ver que es Smarty.

De Wikipedia, la enciclopedia libre.

Smarty es un motor de plantillas para PHP. Smarty separa el código PHP, como lógica de negocios, del código HTML, como lógica de presentación, y genera contenidos web mediante a la colocación de etiquetas Smarty en un documento. Se encuentra bajo la licencia LGPL por lo que puede ser usado libremente.

Es común que en grandes proyectos el rol de diseñador gráfico y el de programador sean cubiertos por personas distintas, sin embargo la programación en PHP tiene la tendencia a combinar estas dos labores en una persona y dentro del mismo código lo que trae consigo grandes dificultades a la hora de cambiar alguna parte del diseño de la página, pues se tiene que escarbar entre los scripts para modificar la presentación del contenido, Smarty tiene como objetivo solucionar este problema.


Esta guia fue tomada de HOWTO Install Smarty in Windows

Si esta mal traducido por favor comentarlo.

Este documento supone que tienes corriendo un servidor web y php5

1.- Descarga Smarty - http://smarty.php.net

2.- Intalacion: Windows, IIS/Apache, PHP5

3.- Descomprime los archivos, renombra Smarty.x.x.x por smarty (se sugiere fuera del directorio www root!)
Ejemplo: d:\smarty

4.- Corre phpinfo.php para encontrar la ruta de nuestro archivo php.ini

5.- Edita el include_path del archivo php.ini y agrega la ruta de la carpeta libs.
ejemplo: include_path = ".;d:\smarty\libs"

6.- Reinicia IIS/Apache

7.- Copia estas dos carpetas dentro de tu directorio de www root:
(wwwroot)/smarty/templates (aqui es donde van a ir tus plantillas)
(wwwroot)/smarty/configs

8.-
copia estas dos carpetas fuera de tu www root:
d:/smarty/templates_c
d:/smarty/cache

9.- Para configurar el sistema de seguridad coloca a estos cuatro carpetas
En (wwwroot) crea index.php y en (wwwroot)/smarty/templates/index.tpl con el codigo corresppondiente:

index.php:
template_dir = 'd:/inetpub/wwwroot/smarty/templates';
$smarty->config_dir = ' d:/inetpub/wwwroot/smarty/config';
$smarty->cache_dir = 'd:/smarty/smarty_cache';
$smarty->compile_dir = 'd:/smarty/smarty_templates_c';

$smarty->assign('name','fish boy!');

$smarty->display('index.tpl');
?>

index.tpl


Hello, {$name}!



Ahora abre index.php en tu servidor web (solicitado desde tu servidr web)

http://webserver/index.php

Puedes reducirlo a un script/clase referida:
smarty_connect.php:
Smarty();

$this->template_dir = ' d:/inetpub/wwwroot/smarty/templates';
$this->config_dir = ' d:/inetpub/wwwroot/smarty/config';
$this->compile_dir = 'd:/smarty/templates_c';
$this->cache_dir = 'd:/smarty/cache';

$this->assign('app_name', 'Intranet');
}
}
?>

index.php:
assign('name','Your Name');

$smarty->display('index.tpl');
?>

index.tpl:


Hello, {$name}!



¡Si usted consigue un error que Smarty.class.php no es encontrado las posibilidades son que su include_path no es correcto o usted no corrigió el que que el webserver usa, comprobar su phpinfo.php!

miércoles, 21 de mayo de 2008

Configuracion de Camaras TRENDnet desde Internet 2Wire

Recientemente acudi a una conferencia de TRENDnet donde hubo exposicion de los productos de esta reconocida empresa, asi como tambien un pequeño taller donde nos mostraron lo facil que es configurar este tipo de dispositivos.





Aqui les dejo un pequeño manual para que configuren sus camaras ip TRENDnet.

En este manual se explicará a detalle como observar las cámaras TRENDnet desde Internet. Primero que nada debemos entrar a la pantalla de configuración de las cámaras, por lo que seguiremos los siguientes pasos:

  1. Inicio->Panel de Control->Conexiones de Red->Conexión de Área Local->Click derecho->Propiedades

  1. Protocolo Internet TCP/IPàPropiedades


  1. Usar la dirección IP: ej. 192.168.0.50->(dependiendo de la cámara-> ver tabla)->Aceptar

Cámara

IP

TV-IP100

192.168.0.20

TV-IP201

192.168.0.30

TV-IP301

192.168.1.30

TV-IP400

192.168.0.20

  1. Ahora procederemos a abrir una página de Internet y vamos a poner la dirección IP de la cámara ej. 192.168.0.20àSystem AdministrationàConfigurationàNetwork.

  1. Vamos a poner una IP dentro del segmento de nuestra red, en este caso sería 192.168.1.20 y en Default Gateway vamos a poner la IP del 2 wire: 192.168.1.254.
  2. Ahora vamos a habilitar el puerto, Second http Port y vamos a guardar los cambios.

Y hecho esto ahora vamos a configurar el 2 wire, para lo que vamos a irnos a Conexiones de RedàConexión de Área LocalàClick derechoàPropiedades Protocolo Internet TCP/IPàPropiedadesàObtener una IP automática.

ü Ahora en una pagina de Internet vamos a poner: 192.168.1.254 y nos mostrará la siguiente pantalla:

ü Ahora nos iremos a cortafuegos y en configuración del cortafuego.

ü Ahora nos vamos a permitir aplicaciones individuales àModificar o eliminar una aplicación definida por el usuario.

ü Le pondremos un nombre a la aplicación, en Puerto De: puerto A: puerto dependiendo el puerto que hallamos puesto en la cámara, en tiempo de espera: 86400 y damos clic en agregar definición. Ya con esto le damos en atrás.

ü Ahora en Seleccionar una computadora buscaremos la cámara y en agregar una aplicación seleccionaremos la aplicación ya hecha y la agregaremos. Ya hecho esto le daremos en salvar.

Ahora ya podremos ingresar a nuestra cámara desde Internet sólo tendremos que checar nuestra IP pública la cual se encuentra en enlace de banda ancha: ej. http://189.234.154.66:81