Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Configuracion Firewall - Ejercicios Adicionales
Configuracion Firewall - Ejercicios Adicionales
© RA-MA www.adminso.es
1. Desarrolle un script que genere el fichero /etc/network/interfaces, para lo cual debe solicitar
toda la información a través de la consola.
#!/bin/bash
# crearInterfaces.sh
# Creación del fichero /etc/network/interfaces con datos
# obtenidos desde la consola
#Fichero de interfaces
ficheroInterfaces=/etc/network/interfaces
#Asignación de valores
firstIp=`echo "${ipstart%.*}"`
lastIpStart=`echo "${ipstart##*.}"`
lastIpEnd=`echo "${ipend##*.}"`
dif=`echo $(($lastIpEnd-$lastIpStart))`
ip=$lastIpStart
for ((i=$ali;i<=$ali+$dif;i++))
{
echo "auto eth0:$i" >>$ficheroInterfaces
echo "iface eth0:$i inet static" >>$ficheroInterfaces
echo "address $firstIp.$ip" >>$ficheroInterfaces
echo "network $subnet" >>$ficheroInterfaces
echo "netmask $net" >>$ficheroInterfaces
echo "gateway $gw" >> $ficheroInterfaces
echo " " >> $ficheroInterfaces
let ip++
}
Desarrolle un script para configurar el firewall del servidor para que realice las siguientes
tareas:
Permita todos los accesos al servidor Linux desde la red interna.
Desde internet permitir sólo las conexiones a los servicios HTTP, HTTPS Y SMTP.
#!/bin/bash
# firewall1.sh
# Reglas de firewall con el siguiente cometido:
# - Permitir todos los accesos al servidor Linux desde la red interna
# - Desde Internet permitir sólo conexiones a los servicios http, https, y SMTP
# Se empieza a filtrar
echo " -> Configurando red interna..."
#Se permite el tráfico en localhost
/sbin/iptables -A INPUT -i lo -j ACCEPT
# Al firewall se tiene acceso desde la red local
iptables -A INPUT -s 192.168.0.0/24 -i ${LAN} -j ACCEPT
# Y se deniega el resto.
iptables -A FORWARD -s 192.168.0.0/24 -i ${LAN} -j DROP
3. Suponga que dispone de dos redes locales con varios equipos y un servidor Linux haciendo
funciones de routing entre ambas redes, tal y como muestra el siguiente esquema:
Desarrolle un script para configurar el firewall del servidor Linux teniendo en cuenta que
debe realizar las siguientes tareas:
Realizar un registro (Log) de intentos de acceso desde la red externa al firewall y a los equipos
internos.
Programación Shell
© RA-MA www.adminso.es
Limitar el tráfico de control ICMP para evitar ataques DoS (hasta un máximo de cinco peticiones
por segundo).
#!/bin/bash
# firewall2.sh
4. Suponga que dispone de una red local con varios equipos y un servidor Linux haciendo las
funciones de routing de dicha red local e Internet, tal y como muestra el siguiente esquema:
Proporcione acceso a Internet a los equipos internos a través de SNAT con la dirección del
servidor Linux.
o Recibir ninguna petición a los puertos privilegiados (1-1024) desde la red local.
#!/bin/bash
#firewall3.sh
# Comienza el filtrado
echo " -> Configurando red interna..."
#permitimos el tráfico en localhost
/sbin/iptables -A INPUT -i lo -j ACCEPT
# Se acepta el resto.
iptables -A FORWARD -s 192.168.0.0/24 -i ${LAN} -j ACCEPT
El proceso de desactivación consiste únicamente en borrar todas las tablas y establecer las
reglas por defecto:
#!/bin/bash
# desactivarFirewall.sh
6. Desarrolle un script que cree copias de seguridad todas las bases de datos MySQL
completas, salvo aquellas que se indiquen para su exclusión de la copia. El fichero
resultante sólo podrá ser accedido por el root.
#!/bin/bash
# backupExclusiones.sh
#
# Realiza una copia de seguridad de todas las bases de datos MySQL salvo las
# incluidas en un listado de exclusiones.
# El fichero resultante sólo podrá ser accedido por el root.
# Datos de conexión
USUARIO="usuario"
PASS="password"
SERVER="localhost"
Programación Shell
© RA-MA www.adminso.es
7. Cree un script que permita añadir bases de datos, usuarios y contraseñas a un servidor
MySQL, y que admita además acceso el mismo de modo inmediato mediante la asignación
de los permisos pertinentes.
#!/bin/bash
# addBD.sh
Programación Shell
© RA-MA www.adminso.es
#
# Script que permite añadir bases de datos, usuarios y password a una base de
# datos MySQL.
# Permite acceso "al vuelo" a la vez que se crea la base de datos.
## Datos de conexión ##
ADMINUSER='root'
ADMINPASS='MySQL-PassWord'
SERVER='localhost'
Se creará la base de datos personas, a la cual se añade el usuario gonzalo con password puga.
Dichas direcciones serán autorizadas para acceder al servidor de base de datos con el usuario
gonzalo.
Para finalizar, se pueden indicar los permisos que dicho usuario tendrá sobre la base de datos
mediante:
Programación Shell
© RA-MA www.adminso.es
8. Implemente un script que realice una copia de una base de datos MySQL y la envíe a otro
servidor haciendo uso de SSH. Las condiciones que debe cumplir el script son las
siguientes:
Exportar la estructura y los datos de la base de datos en un archivo SQL con MySqlDump.
#!/bin/bash
# mysqlBackupSSH.sh
# Configuración de comandos
MySqlDump_cmd=/usr/bin/mysqldump
Tar_cmd=/bin/tar
LOCAL_SCP_CMD=/usr/bin/scp
LOCAL_SSH_CMD=/usr/bin/ssh
# Configuración de directorios
DirTmp=/tmp
DirBackup=/backups
if [ ! -d "$DirBackup" ]; then
echo "Error, el directorio para las copias '$DirBackup' no existe."
exit
fi
i=1
i=`expr $i + 1`
done < $BackupsFilePath
rm $BackupsFilePath
$LOCAL_SCP_CMD -P $PORT_REMOTE_SSH \
-i $CLAVE_SSH $LOCAL_FILE_SSH \
$USER_SSH@$IP_REMOTE_SSH:$REMOTE_FILE_SSH
fi