2008-12-30

Instalar OpenVPN en Ubuntu

Qué es una VPN

Una red privada virtual (virtual private network) es una red de comunicaciones canalizada a través de otra red y dedicada a un uso específico. Para nuestro caso esa otra red es Internet. Establecer una VPN que use una red pública como Internet permite eliminar los costos de contratar un enlace dedicado.

Pero Internet no es una red segura así que una VPN debe utilizar autenticación y encriptar el contenido que viaja a través de ella para evitar el uso de packet sniffers (software o hardware que puede interceptar el tráfico en una red insegura).

Utilizar una VPS puede sonar muy esotérico para muchos pero con el incremento de conexiones WiFi y hotspots inseguros en todo el mundo pronto será una necesidad para todos los que no quieren que su información viaje desnuda por la Red.

En el siguiente artículo veremos cómo instalar OpenVPN, una aplicación de código abierto para VPN, en Ubuntu 7.10. Son los pasos que seguí para conectar mis computadoras en Lima con uno de mis servidores en Nueva York y navegar la Red usando su IP. Ahora todos los sitios web y servicios que visito usando OpenVPN detectan mi conexión como si fuera hecha desde los Estados Unidos y todos mis datos viajan seguros.

Y aún con más de una decada trabajando con muchos tipos de redes no pretendo ser un experto en TCP/IP y seguridad o que este sea un tratado sobre el tema así que no puedo ofrecer asistencia técnica sobre el tema pero estoy que tendremos a varios especialistas que podrán aportar en los comentarios.

Instalar OpenVPN en Ubuntu paso a paso

Vale, aquí los pasos que seguí para instalar OpenVPN en un cliente y un servidor, ambos corriendo con Ubuntu 7.10 aunque el procedimiento debe ser muy parecido en otras distribuciones. Gracias a Javier Albarracín, Bruno Kamiche y César Villegas por los tips.

Primero definamos algunos puntos:

  • Servidor: es el equipo que aceptará las conexiones de los clientes a través de la VPN. En mi ejemplo usará el IP x.y.z.w (reemplaza por el IP público de tu servidor) y tiene como nombre servo.
  • Cliente: el equipo que se conectará al servidor a través de la VPN. Lo llamaremos cliento.
  • Red privada: la red que definiremos en nuestra VPN, usaremos 10.8.0.0 por lo que tendremos IP's como 10.8.0.1, 10.8.0.2, etc.
  • Todos los comandos deben ser ejecutados por root o través de sudo.
  • Los comandos que debes escribir están en negrita.
  • Para comentar una línea en openvpn.conf usa # al inicio de la línea.

Lo primero es instalar OpenVPN:

sudo apt-get install openvpn

OpenVPN se instala tanto en el cliente como en el servidor, el archivo de configuración que usaremos al iniciar OpenVPN más adelante definirá el rol de cada equipo.

Ahora comenta todas las líneas en /etc/default/openvpn y añade:

AUTOSTART="openvpn"

Esto le dice a OpenVPN cuál archivo de configuración predeterminado utilizará al iniciar el servicio. Los archivos de configuración se guardan en /etc/openvpn y usan la extensión .conf por lo que la instrucción de arriba le dice a OpenVPN que use /etc/openvpn/openvpn.conf, es un archivo que aún no existe y que crearemos en un momento.

Ahora el servicio OpenVPN puede ser iniciado, detenido o reiniciado en la forma usual, veamos:

Iniciar OpenVPN:

/etc/init.d/openvpn start

Detener OpenVPN:
/etc/init.d/openvpn stop

Reiniciar OpenVPN:
/etc/init.d/openvpn restart

Cada vez que se cambian parámetros en /etc/openvpn/openvpn.conf se debe reiniciar OpenVPN.

Crear claves y certificados

Pero antes de continuar crearemos los certificados y claves de seguridad. Todo esto se hace en el servidor como root. Ejecuta:

cd /etc/openvpn/

Y ahora copia el directorio easy-rsa a /etc/openvpn:

cp -r /usr/share/doc/openvpn/examples/easy-rsa/ .

Recuerda que seguimos en el directorio /etc/openvpn. Ahora editaré el archivo vars con nuestro editor favorito (reemplaza vi con el que tú prefieras):

vi easy-rsa/vars

Comenta esta línea:

#export D=`pwd`

Añade esta:
export D=/etc/openvpn/easy-rsa

Y modifica los siguientes parámetros:

export KEY_COUNTRY=PE
export KEY_PROVINCE=LI
export KEY_CITY=Lima
export KEY_ORG="Nombre-OpenVPN"
export KEY_EMAIL="tu-nombre@example.com"

Graba y cierra el archivo.

Ahora ejecuta:

. ./vars

Importante, eso es un punto, un espacio y luego otro punto y seguido por /vars. Muchos lo olvidan.

A continuación:
./clean-all

El siguiente comando crea la autoridad de certificados (CA) usando los parámetros arriba definidos, solo deberás añadir Common Name, yo usé OpenVPN-CA. Este paso usa OpenSSL y si no lo tenías en tu servidor deberás instalarlo primero con:

sudo apt-get install openssl

Ahora sí:

./build-ca

Ahora creamos las claves, primero para el servidor:

./build-key-server server

Esta parte es muy importante. Cuando build-key-server te solicite Common Name escribe server, el mismo parámetro que le diste al comando.

Hay dos preguntas más: Sign the certificate? [y/n] y 1 out of 1 certificate requests certified, commit? [y/n], responde afirmativamente en ambos casos.

Y ahora la clave para el cliente:

./build-key client1

Recuerda usar client1 como Common Name, al igual que el parámetro que usaste para build-key.

Si vas a tener más clientes puedes repetir este último paso para client2, client3, etc.

Ahora genera parámetros Diffie Hellman:

./build-dh

Ahora debes tener un nuevo directorio con claves y certificados en tu servidor: /etc/openvpn/easy-rsa/keys. Para configurar tu primer cliente copia los siguientes archivos de servo a cliento:

ca.crt
client1.crt
client1.key

Lo ideal es usar un canal seguro, yo prefiero scp con autenticación RSA (tema para otro artículo), ejecutando algo como esto en el cliente:

scp alexis@servo:ca.crt .
scp alexis@servo:client1.crt .
scp alexis@servo:client1.key .

Estos comandos asumen que copiaste los archivos al directorio personal del usuario alexis en el servidor y les asignaste permisos de lectura. Luego debes moverlos a /etc/openvpn en el cliente.

Los archivos de configuración: openvpn.conf

Aún en el cliente crea un archivo llamado openvpn.conf en /etc/openvpn y escribe lo siguiente en él:

dev tun
client
proto tcp
remote x.y.z.w 1194
resolv-retry infinite
nobind
user nobody
group nogroup

# Try to preserve some state across restarts.
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
comp-lzo

# Set log file verbosity.
verb 3

No olvides reemplazar x.y.z.w por el IP público de tu servidor.

Ahora en el servidor crea un archivo openvpn.conf en /etc/openvpn y escribe lo siguiente en él:

dev tun
proto tcp
port 1194

ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/server.crt
key /etc/openvpn/easy-rsa/keys/server.key
dh /etc/openvpn/easy-rsa/keys/dh1024.pem

user nobody
group nogroup
server 10.8.0.0 255.255.255.0

persist-key
persist-tun

#status openvpn-status.log
#verb 3
client-to-client

push "redirect-gateway def1"

#log-append /var/log/openvpn
comp-lzo

En mi primeras pruebas tuve conexiones muy lentas y me ayudó desactivar la compresión en cliente y servidor comentando esta línea:

#comp-lzo

Y finalmente configura IP forwarding e iptables para NAT en el servidor:

echo 1 > /proc/sys/net/ipv4/ip_forward

sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

Puedes verificar que la regla fue escrita correctamente con un listado:
sudo iptables -L -t nat

Si tienes un Firewall deberás desactivarlo para probar y luego crear reglas que permitan que el tráfico de tu VPN pase.

Si quieres remover todas las reglas si cometiste un error con:
sudo iptables -F -t nat

Reiniciar OpenVPN en ambos equipos, cliente y servidor, y deberías estar listo.

Si ahora ejecutas ifconfig y route -n deberías ver una nueva interfaz, tun0, en cliente y servidor.

Puedes confirmar que hay conexíon haciendo ping entre ambos usando los IP de las interfaces tun0, por ejemplo:

ping 10.8.0.1

Ahora tu cliente está conectado al servidor a través de OpenVPN y puedes navegar en forma segura a través del IP del servidor (y usar Hulu y Pandora).

Suerte.

Recursos adicionales

Instalar y Configurar Cliente VPN en Ubuntu

Cómo instalar y configurar el acceso VPN por PPTP en Ubuntu 7.10

La instalación y configuración del acceso VPN (Red Privada Virtual) por PPTP, no es complicada en Ubuntu, como siempre. Hay dos métodos, uno a través del interfaz gráfico y otro a través de la consola, utilizando comandos. Voy a describir el que utiliza el interfaz gráfico, para aquellos que cominezan en debian y están más familiarizados con los GUI (Graphic User Interface):

Instalación a través del interfaz gráfico

En la barra de tareas, pulsamos sobre Aplicaciones -> Añadir y Quitar…

Una vez en el cuadro de diálogo correspondiente, en el campo “Buscar” escribiremos pptp y en el campo “Mostrar” seleccionaremos “Todas las aplicaciones disponibles”. Rápidamente nos aparecerá el Gestor de conexiones VPN (PPP Genérico) que selecionaremos marcando la casilla que lo identifica. Pulsamos en “Aplicar cambios” una vez finalizada la instalación, deberemos reiniciar el sistema.

Configuración del acceso VPN PPTP

Debemos pulsar con el botón derecho sobre el icono que identifica al Network Manager en la barra de tareas. Si no hemos variado la posición de la barra desde la instalación inicial de Ubuntu, el icono aparecerá típicamente en la parte superior derecha de la pantalla, y mostrará información acerca de nuestra conexión de red.

Al pulsar sobre este icono, se desplegará un menú que nos dejará seleccionar la opción Conexiones VPN -> Configurar VPN. En el cuadro de diálogo que nos acaba de aparecer, pulsamos el botón “Añadir” y se iniciará un asistente que nos guiará durante el proceso. En el primer paso seleccionamos “PPTP Tunel”. En el segundo paso, hay varias solapas. En la primera ponemos el nombre al nuestra conexión, el que queramos. Debajo, indicamos que es tipo Windows VPN (PPP) y ponemos la pasarela que será la IP del servidor VPN.

En la pestaña Autenticación deberemos marcar “rechazar EAP” y “rechazar CHAP”. En la pestaña “Compresión y Encriptación” no tocaremos nada. En la pestaña “Opciones PPP” tampoco tocaremos nada en principio. En la última, “Enrutado”, podemos deshabilitar “DNS del compañero a través del tunel” y marcar la opción “Sólamente utilizar VPN para estas conexiones:” Aquí tendremos que especificar la subred a la que queremos acceder por VPN. Esto se podría dejar sin marcar, sin embargo de esta manera, sólo encaminaremos el tráfico que vaya a la red a la que accedemos remotamente por la conexión VPN. El resto del tráfico seguirá por nuestra conexión a internet o LAN habitual, y mejoraremos el rendimiento. En el campo donde se especifican las direcciones a la que accederemos por la VPN, pondremos la dirección IP de la red y su máscara, por ejemplo, 172.26.0.0/16 según esta notación si las direcciones ip son del tipo 172.26.0.1 con máscara 255.255.0.0

Una vez guardada la configuración al pulsar otra vez sobre el icono de la barra de tareas de Network Manager, y seleccionar Conexiones VPN, aparecerá la conexión que acabamos de crear y bastará con pulsar en ella para que nos pida usuario y contraseña. Si la conexión no aparece, pero ya la hemos configurado, (la vemos en la lista del cuadro de dialogo “Configurar VPN”), reinicia el sistema y aparecerá.

Activar y Crear conexiónes VPN desde Ubuntu 8.10 por medio del escritorio

Desde el Network Manager Applet de la nueva versión de Ubuntu Intrepid Ibex 8.10 ahora es muy sencillo manejar nuestras conexiones de red, tanto que con unos cuantos clicks podemos crear interfaces de red virtuales, conexiones moviles 3G, conexiones VPN… etc.

Pero ¡cual es nuestra sorpresa cuando al querer crear una conexión VPN no nos da la opción de Añadir! La solución es bastante sencilla, sólo hay que instalar unos cuantos paquetes y ¡todo listo!

Vamos a una consola y tecleamos:

sudo apt-get install network-manager-openvpn network-manager-vpnc network-manager-pptp

Una vez hecho ésto ya podemos crer nuestra red VPN fácilmente.

Menu Acordeón Horizontal y Vertical y mas con JQuery

Menu Acordeón Horizontal y Vertical
http://stickmanlabs.com/accordion/

Menu animados
http://nettuts.s3.amazonaws.com/009_jQueryMenu/sm/result/index.html

2008-12-29

Los selectores propios de JQuery. Seleccionando un conjunto de elementos del DOM: El uso del alias $ cuando trabajamos con JQuery

Para finalizar la línea de post que habla de la (gran) potencia de selección de la que goza JQuery, solo nos queda ver, los selectores propios de JQuery. Como ya hemos visto en anteriores post, una de las principales características de JQuery es que podemos seleccionar un conjunto de elementos de una forma muy simple, potente y elegante. Esta funcionalidad nos la proporciona la función $ (alias de objeto JQuery), pero no solo puede hacer esto, sino que también nos permite:

  • Estable el ciclo de vida del código.
  • Seleccionar un conjunto de elementos del DOM.
    • Selección básica con selectores CSS.
    • Selecciones por medio de atributos, hijos y contenedores.
    • Selecciones por medio de la posición.
    • Selecciones gracias a los selectores que nos proporciona JQuery.
  • Sirve como namespace para usar funciones globales.
  • Crea elementos del DOM en base a código HTML.

Los selectores propios de JQuery.

JQuery, para completar la capacidad de selección de la que goza nos proporciona una serie de selectores propios. Estos selectores nos van a permitir realizar acciones que por su naturaleza o finalidad no las podemos realizar con selectores CSS. Supón que quieres seleccionar todos los checkboxes chequeados. Este tipo de acciones son las que nos permiten realizar los selectores propios de JQuery. Veamos cuales son:

  • :animated: Selecciona los elementos que se encuentran ejecutando una secuencia de animación.
  • :button: Selecciona cualquier objeto input del tipo botón (input[type=button], input[type=submit], input[type=reset]).
  • :checkbox: Selecciona los objetos input del tipo checkbox (input[type=checkbox]).
  • :checked: Selecciona todos los objetos checkbox o radio button chequeados.
  • :contains(text): Selecciona los objetos que contienen el texto text.
  • :disabled: Selecciona todos los objetos deshabilitados.
  • :enabled: Selecciona todos los objetos que están habilitados.
  • :file: Selecciona los objetos input del tipo file (input[type=file]).
  • :header: Selecciona todos los elementos del tipo header (h1, h2, h3, h4, h5, h6).
  • :hidden: Selecciona los objetos que están ocultos.
  • :image: Selecciona todos los objetos input del tipo image (input[type=image]).
  • :input: Selecciona los objetos del formulario (input, select, textarea, button).
  • :parent: Selecciona objetos que tienen hijos (el texto se entiendo como un hijo).
  • :password: Selecciona todos los objetos input del tipo password (input[type=password]).
  • :radio: Selecciona todos los objetos del tipo radio (input[type=radio]).
  • :reset: Selecciona todos los objetos input del tipo reset (input[type=reset]).
  • :selected: Selecciona los objetos del tipo option que están seleccionados.
  • :submit: Selecciona todos los objetos del tipo submit (input[type=submit] o button[type=submit]).
  • :text: Selecciona solo elementos input del tipo texto (input[type=text]).
  • :visible: Selecciona todos los elementos que están visibles.

Como veis, los selectores que proporciona JQuery son bastantes y además muy interesantes. Estos selectores, los podemos ir combinando, y podemos por ejemplo realizar selecciones como la siguiente:

:checkbox:checked:enabled

Que nos devolverá todos los checkbox que están habilitados y chequeados.

Posts relacionados:

Descargas – Downloads

2008-12-27

Otros plugin para jQuery

jQuery Sliders

1) Slider Gallery- A similar effect used to showcase the products on the Apple web site. This ‘product slider’ is similar to a straight forward gallery, except that there is a slider to navigate the items, i.e. the bit the user controls to view the items. Simple stuff.


2) Accessible slider- Illustrations and code samples showing how to make a slider UI control accessible to those who aren’t running JavaScript or CSS.


jQuery Manipulating Images

3) crop, labelOver and pluck-Crop-Gives your visitors the power to crop any image on the fly using JavaScript only. Also there are 2 other plugins: LabelOver and Pluck.

  • Live Demo Of Crop: Here
  • Live Demo of LabelOver: Here

4) Semitransparent rollovers -A simple method for enabling semi-transparent rollovers which actually work on IE 6.

  • Live Demo Of Crop: Here

5) Creating A Sliding Image Puzzle Plug-In- Creates sliding-image puzzles based on containers that have images. Running the demo page we get this output in the image below:


jQuery Navigation Menus

6) Digg Header- This is a replica of the Digg header. Fluid width (but only to a point!), drop down menus, attractive search, easy to change colors… There is a lot of smarts in a small place in this example!


7) IconDock- a jQuery JavaScript library plugin that allows you to create a menu on your web like the Mac OS X operating system dock effect one.


jQuery Accordions

8 ) Horizontal Accordion- This plugin provides some simple options to alter the accordion look and behavior.


9) HoverAccordion- A jQuery Plugin for no-click two-level menus.


jQuery Image Viewer

10) Step Carousel Viewer- Displays images or even rich HTML by side scrolling them left or right. Users can step to any specific content on demand.


11) Featured Content Glider- You can showcase new or featured contents on your page, by turning ordinary pieces of HTML content into an interactive, “glide in” slideshow. Supports two different display modes- “manual” and “slideshow.”


jQuery Charts

12) jQuery + jFlot - Plots, Canvas and Charts.


13) Accessible charts using canvas and jQuery – A proof of concept for visualizing HTML table data with the canvas element by using jQuery to provides several types of editable graphs, such as Pie, Line, Area, and Bar.


jQuery Editors

14) Small Rich Text Editor - Small footprint, Cross-browser, Ajax Image upload, HTML Cleanup with PHP back-end rich text editor with all basic Rich Text functionality included.


15)markItUp! Universal markup editor- This plugin allows you to turn any textarea into a markup editor. Html, Textile, Wiki Syntax, Markdown, BBcode or even your own Markup system can be easily implemented. Worth Checking!


jQuery Flash Plugins

16) jQuery Flash Plugin- A jQuery plugin for embedding Flash movies.


17) jMP3- jMP3 is an easy way make any MP3 playable directly on most any web site (to those using Flash & JS),
using the sleek Flash Single MP3 Player & jQuery.


18) jQuery Media Plugin- It can be used to embed virtually any media type, including Flash, Quicktime, Windows Media Player, Real Player, MP3, Silverlight, PDF and more, into a web page.


jQuery Tabs

You can use the a href=”http://docs.jquery.com/UI/Tabs”>jUI/Tabsto create more dynamic tab functionality.

19) jQuery Tabs- Typical tabbing structure which degrade nicely without JavaScript enabled.


jQuery LightBox

20) Fancy Box- Kinda different image zooming script for those who want something fresh. Features: Automatically scales large images to fit in window, adds a nice drop shadow under the full-size image, image sets to group related images and navigate through them


21) Thickbox Plus- Click an Image to view a ThickBox image that is resized when your window is resized to fit the window.


jQuery Datagrid plugins

22) Flexi Grid- Lightweight but rich data grid with resizable columns and a scrolling data to match the headers, plus an ability to connect to an xml based data source using Ajax to load the content. Similar in concept with the Ext Grid only its pure jQuery love, which makes it light weight and follows the jQuery mantra of running with the least amount of configuration.


23) Query Grid 3.1- Datagird plugin for jQuery, where the user can manipulate the number of requested pages with adding, updating, deleting row data.


jQuery Field Manipulation

24) FaceBook Like – jQuery and autosuggest Search Engine- This autosuggest search engine is inspired from facebook for design,
use jQuery as ajax framework and BSN Autosuggest libs.


25) Masked Input Plugin- It allows a user to more easily enter fixed width input where you would like them to enter the data in a certain format (dates,phone numbers, etc).


jQuery with cool animation Effects

26) jQuery Enchant- Devoted to rich effects. It already features all effects you know from scriptaculous/interface, as well as many more great additions: color animations, class animations and highly configurable effects.


27) EasyDrag jQuery Plugin- Add the ability to drag and drop almost any DOM element without much effort. So it’s simple to use and you can also attach handlers both to the drag and to the drop events.


28) Simple Effects Plugins- Nice animation effects that can easily toggle, hide, show, fade, slide elements.


29) Slide out and drawer effect- A demonstration of accordion effect in action, where the mouse settles on the title of the ’section’ and the associated links are exposed. What makes this effect particularly cool, is that the drawers maintain a fixed height and slide between restricted area.


jQuery Worth Checking Plugins

30) crop, labelOver and pluck- How to create a drop cap and apply it to every paragraph in a DIV.


31) Style Author Comments Differently with jQuery- Nice custom styling applied to comments left by the author.


32) Creating a fading header- A simple example using jQuery and CSS that shows you how to create the fading header technique.


33) Coda Bubble- A demonstration of the ‘puff’ popup bubble effect as seen over the download link on the Coda web site


34) Another In-Place Editor- This is a script that turns any element, or an array of elements into an AJAX in place editor using one line of code.


35) jQuery Taconite- The jQuery Taconite Plugin allows you to easily make multiple DOM updates using the results of a single AJAX call. It processes an XML command document that contain instructions for updating the DOM.


jQuery Web Applications

36) GenFavicon- A cool online generator that creats little favicons used throughout the web. You have the option of either specifying a URL for the image you’d like to convert or uploading it to the site for processing.


37) WriteMaps- WriteMaps provides an easy-to-use interface for creating, editing, and sharing your sitemaps.


Great Resources for jQuery Inspiration and How to’s

jQuery Google Group

Learning jQuery

jQuery Tutorials for Designers



Redondiar esquinas con jQuery

Link jQuery Corner Demo (OLD)

jQuery plugin: Validar formularios
Link jQuery plugin: Validation

IDES WEB
http://ui.jquery.com/demos


Plugins Oficiales de JQuery
http://plugins.jquery.com/

Plugins para darle estilo a los InputFile
http://www.appelsiini.net/projects/filestyle

Mover una pagina a un posicion x por medio de JQuery
http://demos.flesler.com/jquery/scrollTo/

Plugins que le da un estilo mas lindo a los formularios RECOMENDABLE
http://hazelryan.co.uk/free_scripts/jforms

Tutoriales en castellano de como trabajar con jQuery
Otros mas

Otro 50 mas..

Sliding Panels

1) Sliding Panels For jQuery - Element can start open or closed and will be toggled from their own original position.


2) jQuery Collapse -A plugin for jQuery to collapse content of div container.


Menu

3) LavaLamp

menu


4) A Navigation Menu- Unordered List with anchors and nested lists, also demonstrates how to add a second level list.

menu


5) SuckerFish Style

menu


Tabs

6) jQuery UI Tabs / Tabs 3 - Simple jQuery based tab-navigation


7) TabContainer Theme - JQuery style fade animation that runs as the user navigates between selected tabs.


Accordion

8 ) jQuery Accordion

Demo
accordion


9) Simple JQuery Accordion menu

accordion


SlideShows

10) jQZoom- allows you to realize a small magnifier window close to the image or images on your web page easily.

rating


11) Image/Photo Gallery Viewer- allows you to take a grouping of images and turn it into an flash-like image/photo gallery. It allows you to style it how ever you want and add as many images at you want.

rating


Transition Effects

12) InnerFade - It’s designed to fade you any element inside a container in and out.


13) Easing Plugin- A jQuery plugin from GSGD to give advanced easing options. Uses Robert Penners easing equations for the transitions


14) Highlight Fade


15) jQuery Cycle Plugin- have very intersting transition effects like image cross-fading and cycling.

accordion


jQuery Carousel

16) Riding carousels with jQuery - is a jQuery plugin for controlling a list of items in horizontal or vertical order.

Demo :


Color Picker

17) Farbtastic - is a jQuery plug-in that can add one or more color picker widgets into a page through JavaScript.

Demo :


18) jQuery Color Picker


LightBox

19) jQuery ThickBox - is a webpage user interface dialog widget written in JavaScript.

Demo :


20) SimpleModal Demos - its goal is providing developers with a cross-browser overlay and container that will be populated with content provided to SimpleModal.

Demo :


21) jQuery lightBox Plugin - simple, elegant, unobtrusive, no need extra markup and is used to overlay images on the current page through the power and flexibility of jQuery´s selector.

Demo :


iframe

22) JQuery iFrame Plugin - If javascript is turned off, it will just show a link to the content. Here is the code in action…


Form Validation

23) Validation - A fairly comprehensive set of form validation rules. The plugin also dynamically creates IDs and ties them to labels when they are missing.

Demo :


24) Ajax Form Validation - Client side validation in a form using jQuery. The username will check with the server whether the chosen name is a) valid and b) available.

Demo :


25) jQuery AlphaNumeric - Allows you to prevent your users from entering certain characters inside the form fields.


Form Elements


26) jquery.Combobox - is an unobtrusive way of creating a HTML type combobox from a existing HTML Select element(s), a Demo is here.


27) jQuery Checkbox - Provides for the styling of checkboxes that degrades nicely when javascript is dsiabled.


28) File Style Plugin for jQuery -File Style plugin enables you to use image as browse button. You can also style filename field as normal textfield using css.


Star Rating

rating


29) Simple Star Rating System

30)Half-Star Rating Plugin


ToolTips

31) Tooltip Plugin Examples - A fancy tooltip with some custom positioning, a tooltip with an extra class for nice shadows, and some extra content. You can find a demo here.


32) The jQuery Tooltip

tool tip

Tables Plugins

33) Zebra Tables Demo -using jQuery to do zebra striping and row hovering, very NICE!!

Demo :
zebra tables


34) Table Sorter Plugin - for turning a standard HTML table with THEAD and TBODY tags into a sortable table without page refreshes. It can successfully parse and sort many types of data including linked data in a cell.

table sorter


35) AutoScroll for jQuery -allows for hotspot scrolling of web pages

auto scroll


36) Scrollable HTML table plugin- used to convert tables in ordinary HTML into scrollable ones. No additional coding is necessary.

Demo :
Scrollable table

Draggable Droppables And Selectables

37) Sortables - You won’t believe how easy this code to make it easy to sort several lists, mix and match the lists, and send the information to a database.

sort


38) Draggables and droppables- A good example of using jQuery plugin iDrop to drag and drop tree view nodes.

drag drop


Style Switcher

39) Switch stylesheets with jQuery- allows your visitors to choose which stylesheet they would like to view your site with. It uses cookies so that when they return to the site or visit a different page they still get their chosen stylesheet. A Demo is here.


Rounded Corners

40) jQuery Corner Demo

rounded corners


41) JQuery Curvy Corners- A plugin for rounded corners with smooth, anti-aliased corners.

rounded corners


Must See jQuery Examples

42) jQuery Air - A passenger management interface for charter flights. A great Tutorial that you will enjoy.

Demo :


43) HeatColor -allows you to assign colors to elements, based on a value derived from that element. The derived value is compared to a range of values, it can find the min and max values of the desired elements, or you can pass them in manually.

Demo :


44) Simple jQuery Examples -This page contains a growing set of Query powered script examples in "pagemod" format. The code that is displayed when clicking "Source" is exactly the same Javascript code that powers each example. Feel free to save a copy of this page and use the example.


45) Date Picker -A flexible unobtrusive calendar component for jQuery.

Demo :


46) ScrollTo -A plugin for jQuery to scroll to a certain object in the page


47) 3-Column Splitter Layout -this is a 3-column layout using nested splitters. The left and right columns are a semi-fixed width; the center column grows or shrinks. Page scroll bars have been removed since all the content is inside the splitter, and the splitter is anchored to the bottom of the window using an onresize event handler.


48) Pager jQuery -Neat little jQuery plugin for a a paginated effect.


49) Select box manipulation


50) Cookie Plugin for jQuery

51) JQuery BlockUI Plugin -lets you simulate synchronous behavior when using AJAX, without locking the browser. When activated, it will prevent user activity with the page (or part of the page) until it is deactivated. BlockUI adds elements to the DOM to give it both the appearance and behavior of blocking user interaction.