Script en Debian
4:24 | Author: Bluder Garcia


¿Que es un Script?

En informática, un script es un guión o conjunto de instrucciones. Permiten la automatización de tareas creando pequeñas utilidades. Es muy utilizado para la administración de Sistemas Linux. Son ejecutados por un intérprete de línea de órdenes y usualmente son archivos de texto.


¿Por qué un Script?

En prácticas de mi clase, tuve la necesidad de crear un Script para que en el inicio o el arranque de mi Equipo (Debían Lenny) se ejecutaran los comandos necesarios para que aplique la configuración necesaria para que me funcione una Maquina Virtual en mi equipo, estoy trabajando con Virtual Box y necesito crear una Interface Virtual y asignarle un puente con mi Tarjeta Real, esto porque al Reiniciar el Equipo o al Apagarlo toda la configuración de las NIC se borran y me tocaría de nuevo agregarlas manualmente, para ello decidí crear el siguiente Script (Archivo) el cual lo podemos ejecutar manual o lo podemos colocar al arranque del Equipo.


¿Como lo debemos de hacer?

Lo primero es crear un archivo el cual contendrá las órdenes o los comandos que necesitemos ejecutar para la función determinada, en este caso lo que queremos es crear una configuración adecuada para trabajar con mi Maquina Virtual, crearemos el archivo con el siguiente comando:


# nano /home/smith/script_VBox

Después dentro del Archivo copiaremos los siguientes comandos (En mi caso):

VBoxTunctl -u smith

brctl addbr br0


brctl addif br0 eth0


brctl addif br0 tap0

ip ad flush dev eth0

ifconfig tap0 up


ifconfig br0 up

dhclient br0

En el cual le estamos diciendo que nos cree al Interfaz y la Asocie al puente para poder navegar desde la Maquina Virtual. Después de esto le debemos de darle permisos de ejecución a nuestro Archivo (Script) porque de lo contrario no lo podremos Ejecutar, para ello ejecutaremos el siguiente comando:


# chmod 744 /home/smith/script_VBox

En este comando le estamos dando permisos de Ejecución solo al Usuario Propietario del Script. Después de darle el permiso debemos de Ejecutar el Script (Esta es la forma Manual), con alguno (Cualquiera) de los siguientes comandos (Debemos de estar parados en la ruta del Script, en este caso /home/smith/):


# ./script_VBox

ó

# sh script_VBox

Después de Ejecutar el Script, nos debe de aparecer así (En mi caso):


Otro ejemplo de este Script en otra practica de mi clase, es crear las Interfaces necesarias para trabajar con un Firewall el cual será el que me dé la salida a Internet (El Firewall es la Maquina Virtual), el Script quedaría de la siguiente forma (Donde la IP por la que saldré a Internet es una Clase B), recordemos los permisos y como se debe de ejecutar el comando, así:



VBoxTunctl -u smith

VBoxTunctl -u smith


brctl addbr br0

brctl addif br0 eth0


brctl addif br0 tap0

ip ad flush dev eth0

ifconfig tap0 up


ifconfig tap1 up

ifconfig br0 up

ifconfig tap1 172.16.0.2 netmask 255.255.0.0 up

route add default gw 172.16.0.1


Después de Ejecutar el Script, nos debe de aparecer así (En mi caso):



Y listo eso es todo, esto lo podemos aplicar a lo que queramos hacer, otro ejemplo, este Script lo cree para las Reglas en una Práctica de un Firewall, el Archivo contiene las siguientes líneas:


##### Configuración del Firewall #####

##### Limpiar Tablas FILTER y NAT

iptables -t filter -F

iptables -t filter -X

iptables -t filter -Z

iptables -t nat -F

iptables -t nat -X

iptables -t nat -Z

##### Configuración del Enrutamiento

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

##### Configuración de las Interfaces

ifconfig eth0 up

dhclient eth0

##### Interfaz de la LAN

ifconfig eth1 172.16.0.1 netmask 255.255.0.0 up

##### Configuración de Firewall de Red

iptables -t nat -A POSTROUTING -s 172.16.0.0/16 -o eth0 -j MASQUERADE

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 172.16.0.2:80

##### Configuración de las Políticas del Firewall

iptables -t filter -P INPUT DROP

iptables -t filter -A INPUT -s 172.16.0.0/16 -i eth1 -d 172.16.0.1/16 -p icmp -j ACCEPT

iptables -t filter -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

##### Configuracion de las Politicas de Red 172.16.0.0

iptables -t filter -P FORWARD DROP

iptables -t filter -A FORWARD -d 172.16.0.2/16 -i eth0 -p tcp --dport 80 -j ACCEPT

iptables -t filter -A FORWARD -s 172.16.0.0/16 -i eth1 -p tcp --dport 80 -j ACCEPT

iptables -t filter -A FORWARD -s 172.16.0.0/16 -i eth1 -p udp --dport 53 -j ACCEPT

iptables -t filter -A FORWARD -s 172.16.0.0/16 -i eth1 -p tcp --dport 443 -j ACCEPT

iptables -t filter -A FORWARD -s 172.16.0.0/16 -i eth1 -p tcp --dport 20 -j ACCEPT

iptables -t filter -A FORWARD -s 172.16.0.0/16 -i eth1 -p tcp --dport 21 -j ACCEPT

iptables -t filter -A FORWARD -s 172.16.0.0/16 -i eth1 -p icmp -j ACCEPT

iptables -t filter -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT


Para colocar el Script al Arranque del equipo para que se Apliquen los cambios necesarios, debemos de ejecutar el siguiente comando, el cual agregara el Script al Inicio con los valores por defecto necesarios para el funcionamiento del Script, primero debemos de tener el Script en el Directorio /etc/init.d/, después de tenerlo allí, ejecutaremos el siguiente comando (Debemos de estar parados en /etc/init.d/), así:

# update-rc.d NombredelScript defaults

En nuestro caso el Script se llama script_nat, el cual nos debe de arrojar lo siguiente:

Adding system startup for /etc/init.d/script_nat ...
/etc/rc0.d/K20script_nat -> ../init.d/script_nat
/etc/rc1.d/K20script_nat -> ../init.d/script_nat
/etc/rc6.d/K20script_nat -> ../init.d/script_nat
/etc/rc2.d/S20script_nat -> ../init.d/script_nat
/etc/rc3.d/S20script_nat -> ../init.d/script_nat
/etc/rc4.d/S20script_nat -> ../init.d/script_nat
/etc/rc5.d/S20script_nat -> ../init.d/script_nat


Y listo reiniciamos nuestro equipo y nos debe de funcionar, si después queremos eliminar el Script, por si era solo una práctica como en nuestro caso, debemos de ejecutar el siguiente comando (Parados en /etc/init.d/), así:

# update-rc.d -f script_nat remove

Nos debe de salir así:

Removing any system startup links for /etc/init.d/script_nat ...
/etc/rc0.d/K20script_nat
/etc/rc1.d/K20script_nat
/etc/rc2.d/S20script_nat
/etc/rc3.d/S20script_nat
/etc/rc4.d/S20script_nat
/etc/rc5.d/S20script_nat
/etc/rc6.d/K20script_nat

Hay otra forma de agregar el Script al inicio de la maquina, lo podemos mirar desde AQUI, para más información acerca del comando:


# man update-rc.d

|
This entry was posted on 4:24 and is filed under . You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

3 comentarios:

On 7 de abril de 2009, 6:35 , Andres dijo...

Oe el comando brctl no exsite despues de que instale perfectamente VirtauBox

 
On 15 de mayo de 2009, 7:50 , Jeyson Henao dijo...

Que buena explicacion man.... gracias y lo otro para andre es que ese comando nunca lo vas a encontrar si no instalas el pauete para crear puentes en linux apt-get install bridge-utils

Saludos...

 
On 27 de abril de 2017, 8:37 , Andrés dijo...

Mi Dios te pague.

Siempre me sacas de dudas puntuales tu Blog. Don Bluder.