SupyBot: Como crear un BOT para IRC

Posted by Epsilon On junio - 16 - 2010

Hace pocos dias me puse a la tarea de registrar el canal IRC de la comunidad DragonJAR en freenode, ya que anteriormente  se encontraba en otro el cual solia tener algunos inconvenientes de conectividad. Aprovecho la ocasion para invitarlos a  que ingresen al canal IRC de DragonJAR, para conversar un rato, los datos son los siguientes:

canal: #DragonJAR.org
servidor: irc.freenode.net

Ahore continuemos  con el tema central de esta entrada, al registrar el canal me dio curiosidad y quise hacer algo que desde hace mucho tiempo habia querido hacer y probar: Crear un bot IRC, antes que nada definamos que es un bot irc:

Un bot (abrevitatura de robot) es un informático que realiza funciones muy diversas, imitando el comportamiento de un humano. En sitios wiki, como Wikipedia, un bot puede realizar funciones rutinarias de edición. En otros sitios, como Encarta, el bot puede responder a cuestiones sobre el propio contenido del sitio (tcc bots conversacionales).En sitios de chat en línea (IRC o MSN), algunos bots fueron utilizados para simular una persona, intentando hacer creer al “ciberinterlocutor” que chateaban con una persona real.

Me puse a la tarea de buscar(aunque uno mismo puede crear su bot personalizado) un bot, adecuado, sencillo y potente,  y me encontre con supybot,  un bot desarrollado en Python el cual tiene muchas funcionalidades y herramientas, a continuacion voy a dar los pasos que se deben realizar para dicho bot:

  1. Descargamos el bot desde este enlace. y lo descomprimimos
  2. Lo instalamos de la misma forma que instalamos cualquier modulo en python
  3. python setup.py install

  4. Ahora  nos vamos a la carpeta scripts y ejecutamos  un asistente el cual nos guiara creando el archivo de configuracion.
  5. cd  scripts
    python supybot-wizard

  6. Este asistente nos empezara a pregutnar algunas cosas necesarias para configurar nuestro BOT, debemos responder cada una de ellas segun nuestras necesidades. Estas preguntas son:
    1. quieres ver las preguntas en negrita?  -> Responder Y
    2. eres usuario avanzado? -> Por defecto responder N (aunque si quieres puedes ensayar)
    3. donde se encuentra los archivos del bot? -> responder por default .
    4. cual es la red de IRC? -> la red de IRC en mi caso freenode
    5. servidor?  -> la direccion del servidor: irc.freenode.net
    6. requiere de otro puerto no standar? -> Si lo ves necesario
    7. nick del bot? -> Cual sera el nombre del bot
    8. password del nick?  si el nick esta registrado necesita password
    9. canales a conectar?  respondemos Y y en mi caso seria #DragonJAR.org
    10. cargar los idividualmente?  -> NO
    11. owner? Este es el nick quien controlara al bot
    12. caracteres que usara para las ordenes del bot? Y Puede ser @ o | o ! como guste
  7. Lanzamos el bot con el archivo de configuracion que se creo en el paso anterior, generalmente el archivo de configuracion tiene el nombre del archivo con extension .conf:
  8. supybot nombre.conf

  9. Si todo ha salido bien, ya tendremos nuestro bot en el canal de IRC, ahora es necesario entablar una conexion con el bot e identificarnos para poder lanzarle comandos:
  10. /query nombre
    identify nick-quien-controlara-elbot password

  11. Listo ya podremos mandarle muchos comandos a nuestro bot, si quieren ensayar pueden mandarle un ping, y el respondera un pong, este bot tiene muchas funcionalidades, como diccionario, rss,  traductor, mensajes personalizados, y muchos mas… para eso es bueno que lean el manual de cada script y vean como funciona cada uno.
Etiquetas: , , , , , , , , , , , , , , , , , , , , ,

Revisando y organizando mi disco duro, me encontré con este pequeño ebook, escrito por Bert Hubert, el cual nos habla de los conceptos de enrutamiento con iproute2, entre otras cosas. Aunque el libro es algo viejo, todavía sirver para entender los conceptos, sin importar cual sea la .

Espero que  les agrade. el libro lo pueden descargar en el siguiente enlace: Enrutamiento avanzado y control de tráfico en GNU/Linux

Etiquetas: , , , , , , , , , , , , ,

Como implementar un Firewall en GNU/Linux con Shorewall

Posted by fortress On marzo - 15 - 2010

En esta oportunidad hablaremos del de Linux más conocido como IPTABLES. Primero daremos algunas definiciones para poner en contexto y por ultimo mostraremos como configurar un utilizando shorewall, teniendo en cuenta que la configuración aquí realizada es pensada para un equipo personal y no para uno que cuidará toda una red.

El firewall es un sistema de control sobre los puertos de nuestro sistema, de tal modo que podemos establecer cuales puertos pueden ser accedidos desde fuera y cuáles no.
El firewall de GNU/Linux es Netfilter, que trabaja en espacio de kernel, no es un servicio en espacio de usuario y se configura por medio de IPTABLES.

IPTABLES según la wikipedia es: iptables es el nombre de la herramienta de espacio de usuario mediante la cual un administrador puede definir políticas de filtrado del tráfico que circula por la red

La herramienta utilizada para configurar estas políticas de seguridad será en este caso Shorewall que en su sitio oficial es definido como: “Una herramienta de alto nivel para la configuración de Netfilter

Bueno y ahora más teoría. No hablaremos con todos lo tecnicismos que algunos les gusta, porque la idea es que todos puedan entender, o por lo menos que sirva de forma de introducción al tema.

Digamos que el kernel le encarga a Netfilter la tarea de recibir y transmitir paquetes y los revisa antes de transmitirlos.

Para revisarlos Netfilter se vale de una serie de “condiciones” que cada paquete debe cumplir. De tal modo que todo paquete que no cumpla con las “condiciones” se tira a la basura.

Estas famosas “condiciones” son las que permiten a Netfilter clasificar cada paquete y hacer con cada uno lo que sea establecido por estas condiciones.

Netfilter necesita que estas “condiciones” sean coherentes, que no sean contradictorias. No podemos decirle “descarta este paquete” y luego decirle “ah, no, mejor transmite este paquete”. Por eso, como no le gusta que le compliquen el trabajo, además de la coherencia, atenderá a cada “condición” en el orden en que fueron declaradas.

¿Y cómo declaramos las “condiciones”?

Nuestro sistema funciona por medio de “servicios” que “escuchan” en un “puerto” del sistema, esperando a que un “cliente” realice una “petición” al “servicio”. Cada “Petición” es “atendida” por el “servicio” que pidió el “cliente”.

Esto es lo que se conoce como un “sistema cliente/” y GNU/Linux respeta este modelo, entonces podríamos decir que Netfilter trabaja capturando las “peticiones” de todos los “puertos” antes de que sean “atendidas” por los “servicios”.

Netfilter maneja esta tarea a través de iptables. Como cada “petición” es esencialmente un “paquete” de datos, diremos que iptables controla paquetes de la siguiente manera:

  1. Iptables maneja tablas, haciendo que los paquetes atraviesen una tabla. (table)
  2. Cada tabla posee cadenas. (chains)
  3. En cada cadena se establece una política general. (policies)
  4. Luego se establecen reglas que saltan (jump) la condición de la política.

Entonces, la tabla actuará como filtro de los paquetes. (Filter)

Sucede que los paquetes pretenden realizar una de tres acciones:

1) Un paquete que quiere salir del sistema. Por ejemplo, solicitar una dirección web en el navegador. Esta petición bajara por las capas OSI, pretenderá salir por un puerto y será “atendida” por Netfilter; si cumple las reglas sale el paquete del sistema.

2) Un paquete que quiere entrar al sistema. Por ejemplo, el resultado de la solicitud anterior. Llega el paquete que quiere entrar por el puerto 80 y será “atendida” por Netfilter; si cumple las reglas entra el paquete y sube por las capas OSI para presentar la página en el navegador.

3) Un paquete que quiere pasar por el sistema. Por ejemplo, si nuestra máquina actúa como proxy. Recibirá paquetes de la LAN queriendo ir a la WAN pasando obligadamente por Netfilter para lograrlo.

En esta tabla de filtro, tendremos una cadena para cada acción:

  1. Un paquete que quiere salir (OUTPUT) de nuestro sistema.
  2. Un paquete que quiere entrar (INPUT) a nuestro sistema.
  3. Un paquete que quiere pasar (FORWARD) por nuestro sistema.

A nivel de política, tendremos dos opciones:

  1. Rechazar todos los paquetes y empezar a construir excepciones a esta política.
  2. Aceptar todos los paquetes y empezar a construir excepciones a esta política.

Una vez que definimos la “política” que aplicará iptables, deberemos empezar con las reglas.

Continuando con un poquito de teoría miremos como es que se establecen las con un pequeño ejemplo.

Cuando una máquina A quiere acceder a otra máquina B lo hace desde un puerto de A hacia un puerto de B, mandando un saludo.

Entonces B recibe un saludo de A, marcando en su puerto una conexión nueva (NEW) y respondiendo el saludo de A.

Luego A recibe la respuesta de B, marca la conexión del puerto como establecida (ESTABLISHED) y se prepara para comunicarse con B.

Luego B recibe la respuesta de A, marca la conexión del puerto como establecida (ESTABLISHED) y se prepara a recibir datos de A.

Los datos transmitidos por A hacia B y por B hacia A son relacionados (RELATED) a la conexión.

El kernel mantiene un control del estado de éstas conexiones y pueden ser usadas para filtrar paquetes por iptables.

Antes de continuar con la configuración de nuestro firewall demos respuesta a esto: qué es mejor: ¿bloquear un puerto abierto o hacer creer que el puerto está cerrado?

Si el puerto es bloqueado se sabe que está abierto y es néctar tcp para las abejas cracker’s que quieren hacerse un picnic con nuestra maquina, en cambio si un puerto está cerrado no existe fundamento para un . Si “disfrazamos” los puertos abiertos como cerrados no tendremos abejas zumbándonos.

Ahora con esto ya claro pasemos a configurar nuestro firewall personal con shorewall. Esta instalación es pensada para maquinas que tengan como sistema operativo Debian/Squeeze, Cabe aclarar que esta aplicación también está disponible para otros sabores de Linux.

Bueno ya a esta altura se estarán preguntando ¿Por qué shorewall y no directamente con IPTABLES? Básicamente porque es más fácil trabajar con un front-end que directamente con los comandos, y porque así podremos concentrarnos mucho más en las reglas. Shorewall se encargará automáticamente de convertir todo al formato de Iptables. Mucho más práctico ¿no?

Bueno manos a la obra

Para empezar lo primero que hacemos es actualizar nuestra lista de paquetes.

#apt-get update

Despues de que termine de actualizar la lista pasamos a instalar los paquetes necesarios para poder tener shorewall en nuestro sistema.

#apt-get install shorewall shorewall-perl

Cuando termine la instalacion pasamos a realizar configuraciones necesarias. Shorewall trae unos ejemplos para 1, 2 y para hasta 3 interfaces de configuración en /usr/share/doc/shorewall/examples/ que debemos copiar a la carpeta /etc/shorewall para esto ejecutamos los siguientes comandos (en este tutorial solo copiaremos los de una sola interfaz):

#cd /usr/share/doc/shorewall/examples/one-interface/

#cp -p interfaces rules zones policy /etc/shorewall/

Ahora seguimos a configurar estos archivos. Y para eso nos vamos al directorio /etc/shorewall/ donde copiamos todos los archivos de configuracion basica.

Shorewall Zones

El primer archivo de configuración que vamos a modificar es el de “zones”.

Shorewall ve la red donde se encuentra como un conjunto de zonas, para el caso de una sola interfaz de red que estamos haciendo solo vamos a tener dos zonas. Primero ejecutamos el siguiente comando:

#vim zones

Se verificara que el archivo tiene la linea de net ipv4, justo despues de fw firewall debe verse como la anterior, ya los ejemplos lo traen por eso solo se va a verificar.

La zona fw firewall siempre debe existir ya que es la zona que reconoce Shorewall como suya, además será definida como una variable $FW en el shell una vez que ejecutemos el Shorewall y será referida durante toda la configuración.

Para más información de las zonas puedes ejecutar man shorewall-zones

Shorewall interfaces

Ahora debemos de obtener el nombre de la interfaz externa como se muestra en la siguiente imagen.

Por supuesto que la dirección IP de tu computadora puede ser distinta al igual que el nombre de la interfaz en este caso eth1. Fijense que la interfaz externa viene dado por la línea default via 192.168.0.1 dev eth1. Esto es importante si se tiene más de una interfaz de red.

Con esta información procederemos a modificar el archivo “interfaces”, ejecutamos el siguiente comando:

#vim interfaces

Y lo modificamos para que el archivo quede algo parecido a esto:

Breve explicacion de lo anterior

ZONE: Aquí definimos la zona a la cual va a pertenecer la interfaz que vamos a definir, en este caso la zona es net que ya definimos anteriormente

INTERFACE: El nombre de la interfaz

BROADCAST: Es opcional. Aquí definimos que queremos que haga el Shorewall con los paquetes de Broadcast en este caso con la opción detect le decimos que detecte las direcciones de broadcast por nosotros. Tambien podríamos colocar aquí la dirección IP de broadcast de nuestra red.

OPTIONS: Esta es la parte más extensa, así se explicara las opciones utilizadas aquí.

dhcp: Esta opción se debe colocar si tu computadora obtiene su dirección IP vía DHCP, o si tu firewall está instalado en un servidor DHCP.

tcpflags: Esta opción hace que Shorewall revise los paquetes por combinaciones ilegales de FLAGS (o banderas) TCP. Nunca está de más tenerlo.

logmartians: Esta opción hace que Shorewall registre paquetes con direcciones de origen imposibles, para esto tenemos que tener habilitado el routefilter en la interfaz lo cual veremos más adelante como hacerlo.

nosmurfs: Filtra paquetes smurfs (paquetes que tienen como dirección de origen una dirección de broadcast)

blacklist: Analiza los paquetes contra la lista negra que definiremos más adelante en el archivo blacklist del shorewall

routeback:Permite que Shorewall filtre paquetes que se devuelven a esta misma interfaz

Con esto el archivo de interfaces esta listo, lo guardamos y seguimos con la configuración.

Nota: Para más información del archivo de interfaces y sus opciones pueden ejecutar man shorewall-interfaces.

Shorewall Policy

Aqui vamos a definir una política que determina como Shorewall maneja la conexión entre las distintas zonas. Es de destacar que las instrucciones se ejecutan de arriba a abajo por lo que es importante mantener el orden para que se ejecuten adecuadamente.

#vim policy

Y modificamos el archivo para que quede así:

Lo que estamos diciendo aquí es que todo lo que venga de $FW que lo definimos anteriormente es la zona de Firewall de Shorewall sea aceptado y que todo lo demás sea rechazado para que pase por las reglas que crearemos a continuación.

Para más información pueden buscar las páginas de manual ejecutando man shorewall-policy.

Shorewall rules

Las reglas sirven para agregar excepciones a las politicas que declaramos anteriormente, si dejamos las politicas como están sin agregar ninguna regla pues no podremos ni siquiera navegar asi que vamos a modificar el archivo de rules ejecutando para que nos quede de la siguiente manera:

#vim rules

Nombre como Ping, SSH, etc nos describe el protocolo sobre el que vamos a efectuar la acción que puede ser ACCEPT. REJECT, DROP entre otras. Shorewall cuenta con varios MACROS, los MACROS no son más que reglas prehechas que estamos utilizando aquí como Ping, SSH, DNS, etc. Para ver una lista completa de los macros puedes ejecutar shorewall show macros.

Luego de colocar el macro y la Acción pasamos a colocar el destino que en este caso es la zona red que declaramos al principio y luego colocamos el destino que es la zona Firewall en el caso de las conexiones entrantes (net—>firewall) e invertido para las conexiones salientes (firewall–>net).

Si quisieramos aplicar una regla sobre un puerto y protocolo específico la declaramos de la siguiente forma:

ACCEPT          $FW     net             tcp     873

REJECT          $FW     net             udp     443

Ahora los útlimos retoques, vamos a modificar el archivo de configuración de Shorewall:

vim /etc/shorewall/shorewall.conf

Asegurense que los siguientes valores están correctos:

STARTUP_ENABLED=Yes

ROUTE_FILTER=Yes

Con STARTUP_ENABLED le decimos al Shorewall que inicie con el sistema, y con ROUTE_FILTER del cual hablamos ya arriba en la parte de Interfaces

Por ultimo, cambiar la linea startup=0 por startup=1 del archivo /etc/default/shorewall

Para iniciar manualmente a Shorewall y probar nuestra configuración ejecutamos:

shorewall start

Con esto nos dará algo parecido a esto:

Con esto ya tendremos un firewall personal totalmente funcional, asi que ya pueden poner a prueba sus configuraciones.

Shorewall registra todo a través del log del sistema para ver los logs podemos ejecutar los siguientes comandos:

  1. shorewall show log (Muestra los últimos 20 mensajes de netfilter)
  2. shorewall logwatch (Verifica los logs a un tiempo determinado)
  3. shorewall dump (Nos da un amplio reporte de los problemas encontrados por Shorewall)

Bueno esto es todo por el momento, espero y les sea de utilidad, que la fuerza este con ustedes y hasta la proxima.

Fuente 1

Fuente 2

Fuente 3

Etiquetas: , , , , , , , , , , , , , , , , , , , , , ,

Optimizar el arranque en Debian/Squeeze

Posted by fortress On marzo - 9 - 2010

Cuando instalamos por primera vez en un computador portátil o en cualquier otro tipo de computador nuestro /Squeeze se hace casi que necesario empezar a personalizarlo y eso incluye que nuestro computador arranque de una manera más eficiente y más rápida, para esto. Navegando por la web de esdebian.org me he encontrado con este tutorial que nos dice lo que debemos hacer para lograr este cometido, quise compartirlo con ustedes,  el tutorial es muy sencillo, aunque en la pagina hablan de que es para /lenny yo lo he probado en /Squeeze y funciona muy bien logró arrancar mi sistema en 23 segundos ya ustedes tomarán la decisión de seguir el tutorial o no. Así que no más carreta y manos a la obra.

Paralelismo en los scripts de init.d

Nota: Esta opción sólo proporciona una mejora notable en procesadores de más de un núcleo

Cuando arrancas algún sistema Debian este busca en /etc/init.d/rc para ejecutar los servicios que hayas configurado.

El problema es que no es muy efectivo que se ejecuten uno por uno. Por ejemplo, si tienes un servicio dhcp que tiene que esperar a que se te asigne una IP, retrasaría todo el proceso.

Pero hay que tener cuidado ya que muchos servicios dependen de otros para arrancar, entonces necesitamos un script que organice el arranque para que se puedan iniciar procesos en paralelo. Dicho script se consigue instalando el paquete insserv:

Atención: Este script modifica automáticamente el sistema de arranque de Debian, úsalo bajo tu propia responsabilidad.
# install insserv
#dpkg-reconfigure insserv

Por último queda decirle al script rcS que utilice esta opción:
CONCURRENCY=startpar >> /etc/default/rcS

Quitar servicios innecesarios

Suena lógico que, si no usas compartición de archivos, o que si tu máquina no tiene bluetooth, quites esos servicios. ¿Pero cómo hacerlo? En Debian hay maneras uno ir a /etc/init.d/ y quitas los permisos de ejecución a los scripts de servicios que consideres innecesarios:

#chmod -X nombre-del-servicio

Obviamente debes estar trabajando en el mismo directorio donde esta el servicio.
Ahora la otra manera es con la herramienta Smart Boot Manager, se instala
#apt-get install bum

La ejecutas y tendrás una GUI muy linda para configurar los servicios de arranque incluso, en la mayoría de los casos, te explica para qué sirve cada servicio.

Readahead

Usar Readahead es un herramienta que guarda un registro de ciertos archivos del proceso de arranque de forma que cuando se inicie Debian, el sistema leerá sólo el registro y no buscará los archivos, obteniendo una ligera reducción del tiempo de carga.
#apt-get install readahead
#touch /etc/readahead/profile-once

Con ello instalas readahead, lo segundo es para crear un perfil (profile) optimizado del proceso de arranque de nuestra máquina y servicios

Después de todo este relajo reinicias y no te asustes la primera vez que reinicies durará más de lo normal porque readahead está creando el perfil (profile). Luego de esto vuelve a una vez más y verás cómo el proceso de arranque se reduce.

Bueno eso es lo que quería compartir con ustedes espero y les sea de utilidad, hasta la próxima.

Fuente

Etiquetas: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

Guia de Lockpicking

Posted by Epsilon On enero - 22 - 2010

Anteriormente  en RinconInformatico.NET hemos hablado del lockpicking,  una técnica muy interesante que no muchas personas conoce,  pero quizás muchos de nosotros  quisieramos aprender o por lo menos saber como es posible “” los diferentes tipos de cerraduras.

lockpicking tutorial guia

En esta ocasión quería compartir una guia desarrollada por el MIT (no confirmado) donde nos explican los conceptos básicos, la fundamentacion teórica,  y algunos modelos de cerradura, esta guia mezcladas con algunos vídeos demostrativos, nos dejaran con lo necesario para empezar a practicar nosotros mismos, recuerden que lockpicking es una  técnica que requiere de mucha paciencia y practica.

Enlace de descarga

Etiquetas: , , , , , , , , , ,

Descarga Libros desde www.51cnnet.net

Posted by jhonber On septiembre - 15 - 2009

En la red podemos encontrar infinidad de manuales, tutoriales, howtos, etc. Pero a veces es necesario algo mucho más completo algo como un libro. Y ese es el objetivo de esta entrada; recuerdo que hace ya un tiempo me encontré con esta pagina www.51cnnet.net y la verdad me pareció excelente. Desde esta página podrás descargar muchísimos libros de forma gratuita y rápida, claro esta que todos los temas de dichos libros están relacionados con la informática.

Descripción: (Los libros están en inglés)

Algunos de los temas que puedes encontrar son:

-Programación en C.

-Programación de PHP.

-Programación de Linux.

-Seguridad de la computadora y de la red, cortafuegos.

-Diseño de base de datos.

-Explotación minera de los datos.

-Criptografía.

- Etc.

Recuerda que estos son tan solo algunos de los temas que puedes encontrar. Actualmente estoy leyendo “Facebook API Developers Guide” (Por si a alguien le interesa) enseñan como programar aplicaciones para facebook.


Para descargar:

Vas a la pagina www.51cnnet.net buscas el libro y para descargar solo colocas un código de números que aparece en una imagen.

Hay bastantes libros y muy buenos, hasta la próxima.

Etiquetas: , , , , , , , , , , , , , , , , , , , , , , ,

Mi primer programa de shell

Posted by Axia On septiembre - 6 - 2009

como todos sabemos una shell es una linea de comandos o mas bien dicho un interprete de comandos que usamos a diario para hacer todo tipo de tareas administrativas, obviamente bajo sistemas UNIX (basados en Unix), algunas tareas sencillas como montar una unidad, configurar una interfaz ( interface ) de , hacer cosas mas avanzadas como port scanning etc, son tareas que podemos hacer por medio de nuestra ya mencionada shell; algunas de estas tareas podrían ocurrir al iniciar el sistema pero no siempre es la mejor opcion o la que nosotros deseamos, para quienes vivimos este caso en el que al iniciar nuestro S.O. Comenzamos a usar una larga lista de comandos como montar la unidad de datos o en otras ocasiones la unidad de proyectos o cosas así por el estilo, esto a veces se puede volver tedioso y quitarnos un poco de tiempo mientras lanzamos los comandos , pero que mejor que lanzar un solo comando y hacer todo el proceso de manera mas amigable, pues bien esa opción también nos la da nuestra querida shell ya que esta a su vez también funciona como un completo lenguaje de programación. ¿Pero como funciona este lenguaje? Si nos vamos a una terminal y digitamos date nos daria un resultado como:

/home/$ date
mié sep 2 22:48:38 COT 2009

Bien ahora escribamos el mismo comando en un archivo de texto, para ello hacemos lo siguiente:

$ miarchivo

presionamos a para comenzar a escribir en el editor de texo

escribimos date

presionamos esc para volver a modo comando en el vi

presionamos ZZ para salir del vi y guardar los cambios.

(el archivo lo podemos crear con cualquier editor de texto como el gedit, kate etc)

para comprobar que si quedo bien el archivo ejecultamos el comando

$cat miarchivo

nos debera devolver un resultado como:

/home/usuario$ cat ejemplo

date

Ahora vamos a darle permisos de ejecucion a nuestro script, para ello ejecutamos el comando :

/home/usuario$chmod +x miarchivo

Ahora vamos a ejecutar el archivo llamandolo por su nombre y anteponiendo “./” de la siguiente manera:

/home/usuario$./miarchivo

y veremos como nos da el resultado:

/home/usuario$./miarchivo

mié sep 2 22:57:33 COT 2009

Hemos visto como podemos llamar un comando desde un script en un archivo de texto plano, solo con escribir el comando en el archivo. Las posibilidades son enormes y podemos hacer una secuncia de archivos completa, escribir resultados en una caja de texto, la sitanxis es muy similar a cualquier lenguaje, podemos usar condiciones if, ciclos como while, y un sin fin de opciones, algun ejemplo de sintaxis para una condicion:

if condicion; then

comandos;

[elif otra_condicion; then

comandos;]

[else comandos(en caso contrario);]

fi

Para conocer mas a fondo la sintaxis y las posibilidades que tenemos podemos consultar la guia oficial haciendo click aqui.

Para terminar quiero  dejarles un ejemplo de un script que nos permite configurar una interface de red, el router y el DNS. de esta forma pueden abrir sus mentes y darse cuenta que con esto podemos hacer un sin numero de cosas.

echo “iniciando la configuracion de la red”;
echo “Ingresa la direccion IP que asignaras a la interface”;
read ip;
echo “Ingresa la direccion de mascara para la interface de red”;
read mask;
echo “Ingresa la IP del router” ;
read gw;
echo “Ingresa el direccion del DNS”;
read dns;
echo “haz ingresado la direccion IP $ip , la mascara $mask el DNS $dns y el router $gw, Presiona enter para terminar.” ;
read cont;
ifconfig eth0 $ip
ifconfig eth0 netmask $mask
route default gw $gw eth0
cd /etc/ echo “nameserver $dns” >> resolv.conf

Etiquetas: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,