¿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
3 comentarios:
Oe el comando brctl no exsite despues de que instale perfectamente VirtauBox
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...
Mi Dios te pague.
Siempre me sacas de dudas puntuales tu Blog. Don Bluder.