Publicado

GNU/Linux si deseamos montar un disco usb en el inicio o arranque del sistema. Vamos a ver como hacer que cualquier partición, ya sea de Linux (ext4) o de Win2 (NTFS o FAT) se nos monte al arrancar, para así no estar montando y desmontando dichas particiones:

Conocer el punto de montaje y tipo de la unidad que vamos a montar, ahora tenemos que averiguar el punto de montaje de nuestra unidad. Para ello en la terminal tecleamos:

  1. fdisk -l

Nomenclatura de las particiones según el tipo de disco duro:
/dev/sdaX

Conocer UUID escribimos el siguiente comando en la terminal:

  1. blkid /dev/sdaX
  2. /dev/sdaX: UUID=“0c4a3000-09f1-454c-bc6c-e008c42e36d3” TYPE=“ext4” PARTUUID=“092e9811-01”

Es la unidad que deseamos montar sdaX

Vemos lo siguiente:
El punto de montaje es 0c4a3000-09f1-454c-bc6c-e008c42e36d3
El tipo de unidad que queremos montar es ext4

Nota: Otra forma alternativa de encontrar el punto de montaje es mediante el comando:

  1. ls -l /dev/disk/by-uuid
    lrwxrwxrwx 1 root root 10 ene 18 18:48 0c4a3000-09f1-454c-bc6c-e008c42e36d3 -> ../../sdaX1
    lrwxrwxrwx 1 root root 10 ene 18 17:10 6f888537-9c48-4c6c-9ee2-64c64c725a42 -> ../../sdaX2
    lrwxrwxrwx 1 root root 10 ene 18 17:10 dc0b2c68-c6ce-470b-9170-62ae149b417f -> ../../sdbX3

Crear la carpeta donde se montará nuestra partición dentro de la ubicación que necesitamos, en mi caso quiero que se denomine datos y estara en la ruta /home/usuario/, por lo tanto ejecutamo el siguiente comando:

  1. mkdir /home/usuario/datos

Configurar el arranque en el sistema el montaje de la unidad, para decirle a nuestro sistema esto debemos configurar el archivo /etc/fstab por lo tanto ejecutamos los siguientes comandos:

  1. vi /etc/fstab

Montar unidad NTFS

Una vez abierto el archivo si queremos montar nuestra unidad del tipo NTFS debemos añadir la siguiente linea:

UUID=0c4a3000-09f1-454c-bc6c-e008c42e36d3 /home/usuario/datos ntfs-3g default_permissions,uid=1000 0 0

Montar unidad FAT

Para montar una unidad FAT debemos añadir la siguiente linea:

UUID=0c4a3000-09f1-454c-bc6c-e008c42e36d3 /home/usuario/datos vfat rw,uid=1000,gid=1000 0 0

Montar unidad ext4 debemos añadir la siguiente linea

UUID=0c4a3000-09f1-454c-bc6c-e008c42e36d3 /home/usuario/datos ext4 errors=remount-ro 0 1

Autor

Publicado

GNU/LInux Rkhunter es una aplicación para línea de comandos que se encarga automáticamente de analizar nuestro sistema en busca de rootkits, malware, scripts maliciosos, backdoors y otro tipo de software potencialmente peligroso en nuestro sistema Linux fácilmente para saber en todo momento si nuestro sistema se encuentra realmente seguro o de lo contrario estamos siendo víctimas de piratas informáticos. Esta herramienta viene en los paquetes de Debian, para descargarla y ejecutarla debemos seguir los siguientes pasos:

  1. apt-get install rkhunter

Rkhunter no se ejecuta automáticamente en segundo plano sino que es tarea de los usuarios ejecutarlo a demanda según cuando queramos analizar nuestro sistema, si deseamos tenerla activa debemos hacer un script para ello y y ejecutarlo en un cron. Lo primero que haremos será tomar una muestra del estado actual de nuestro sistema operativo para compararlo las próximas veces que ejecutemos el programa con ella. Por tanto es necesario hacer los comandos por terminal así:

  1. rkhunter – -propupd

Con esto creamos una base de datos para nuestro sistema.

  1. rkhunter -c – -enable all

Al finalizar tendremos un análisis de nuestro sistema y nos indica si nuestro sistema esta infectado o limpio.

  1. rkhunter —update

Podemos ejecutar este comando para actualizar las bases de datos de virus y malware.

Cuando hacemos actualizaciones o instalaciones de nuestro sistema es normal que rkhunter muestre alertas en los archivos y carpetas por los cambios de dichas actualizaciones, para poner al día rkhunter ejecutamos los siguientes comandos en la terminal:

  1. rkhunter —propupd
  2. rkhunter —update
  3. rkhunter -c -sk

Sucede que rkhunter compara la “BASE” de linux en su estado ORIGINAL pero lo que sucede es que ya hemos instalado o actualizado varias aplicaciones desde que hicimos la instalación de GNU/Linux.

Autor

Publicado

GNU/Linux adminer https://www.adminer.org/

Paquete repositorio para Debian https://packages.debian.org/stretch/adminer

  1. apt-cache search adminer
    adminer – Web-based database administration tool
  1. apt-get install adminer

Como usuario root ejecutamos los siguientes comandos:

  1. ln -s /usr/share/adminer/adminer /usr/share/adminer/adminer.php
  2. echo “Alias /adminer.php /usr/share/adminer/adminer.php” | tee /etc/apache2/conf-available/adminer.conf

Nos vamos al directorio /etc/apache2/conf-available/ lugar donde quedo el asociado el enlace simbólico con Apache2 y ejecutamos:

  1. a2enconf adminer.conf

Reiniciamos el servicio apache2:

  1. /etc/init.d/apache2 restart

Luego vamos a su servicio web en un navegador y lo vemos funcionado, en este caso en el servicio local:

http://localhost/adminer.php

Autor

Publicado

GNU/Linux Si queremos ver específicamente el peso de un archivo o carpeta de la forma más fácil, ejecutamos el comando du:
Tamaño de la carpeta o el archivo

  1. du -bsh
    Tamaño ordenado de mayor a menor
  2. du -sm *
    Los cinco de mayor tamaño en un directorio o carpeta
  3. du -sm * | sort -nr | head -5
    Los 10 archivos más grandes de un directorio determinado
    du -ac —time /usr | sort -nr | head -n 10

NOMBRE
du – estima el uso de espacio de ficheros

SINOPSIS
du [opciones] [fichero…]

Opciones de POSIX: [-askx]

Opciones de GNU options (forma más corta): [-abcDhHklLmsSxX] [—block-size=tamaño] [—exclude=patrón] [—max-depth=n] [—help] [—version] [—]

DESCRIPCIÓN
du informa de la cantidad de espacio de disco usada por los ficheros especificados, y por cada directorio en las jerarquías cuyas raíces estén en los
ficheros especificados. Aquí, `espacio de disco usado’ significa espacio usado por la jerarquía de ficheros por debajo del fichero especificado.

Sin argumentos, du informa del espacio de disco para el directorio en curso.

DETALLES DE POSIX
La salida es en unidades de 512 bytes, a menos que se dé la opción -k, en cuyo caso es en unidades de 1024 bytes.

DETALLES DE GNU
La salida es en unidades de 1024 bytes (cuando no se especifican unidades en las opciones), a menos que la variable de entorno POSIXLY_CORRECT esté
definida, en cuyo caso se sigue a POSIX.

OPCIONES DE POSIX
-a Muestra los números para todos los ficheros encontrados, no solo para los directorios.

-k Emplea unidades de 1024 bytes en vez de las predeterminadas de 512 B.

-s Solamente imprime en la salida el uso de espacio para los argumentos realmente dados, no para sus subdirectorios.

-x Solamente cuenta el espacio en el mismo dispositivo donde esté el argumento dado.

OPCIONES DE GNU
-a, —all
Muestra los números para todos los ficheros, no sólo para los directorios.

-b, —bytes
Muestra los tamaños en bytes, en vez de en kilobytes.

—block-size=tamaño
Muestra los tamaños en bloques de tamaño bytes. (Nueva en fileutils-4.0.)

-c, —total
Muestra un total para todos los argumentos después de que éstos se hayan procesado. Esto puede emplearse para encontrar el uso de disco total de un
conjunto dado de ficheros o directorios.

-D, —dereference-args
Desreferencia enlaces simbólicos que sean argumentos de la línea de órdenes. No afecta a otros enlaces simbólicos. Esto es de ayuda para encontrar el
uso de disco de directorios, como /usr/tmp, que son a menudo enlaces simbólicos.

—exclude=patrón
En caso recursivo, saltar los subdirectorios o ficheros que coincidan con patrón. El patrón puede ser cualquier patrón global estándar de ficheros
del shell Bourne. (Nueva en fileutils-4.0.)

-h, —human-readable
Añade una letra indicativa del tamaño, como M para megabytes binarios (`mebibytes’), a cada tamaño.

-H, —si
Hace lo mismo que -h pero usa las unidades del SI oficiales (con potencias de 1000 en vez de 1024, por lo que M representa 1000000 en lugar de
1048576). (Nueva en fileutils-4.0.)

-k, —kilobytes
Muestra los tamaños en kilobytes.

-l, —count-links
Cuenta el tamaño de todos los ficheros, incluso si ya han aparecido antes (como sucede con un enlace duro).

-L, —dereference
Desreferencia enlaces simbólicos (muestra el espacio de disco usado por el fichero o directorio al cual apunte el enlace en vez del espacio usado por
el enlace mismo).

-m, —megabytes
Muestra los tamaños en bloques de megabytes (esto es, 1,048.576 bytes).

—max-depth=n
Muestra el total para un directorio (o fichero, con la opción -a) sólo si está a n o menos niveles por debajo del argumento de la línea de órdenes.
—max-depth=0 es lo mismo que la opción -s. (Nueva en fileutils-4.0.)

-s, —summarize
Muestra solamente un total para cada argumento.

-S, —separate-dirs
Informa del tamaño de cada directorio separadamente, sin incluir los tamaños de los subdirectorios.

-x, —one-file-system
Se salta los directorios que estén en sistemas de ficheros diferentes de aquél donde esté el argumento que se esté procesando.
-X fichero, —exclude-from=fichero
Igual que —exclude salvo que toma los patrones a excluir del fichero indicado. Los patrones se listan uno por línea. Si se da `-’ como fichero, los
patrones se leen de la entrada estándar. (Nueva en fileutils-4.0.)

OPCIONES ESTÁNDARES DE GNU
—help Muestra un mensaje en la salida estándar sobre el modo de empleo y acaba con código de éxito.

—version
Muestra en la salida estándar información sobre la versión y luego acaba con código de éxito.

— Termina la lista de opciones.

FALLOS
En sistemas BSD, du da tamaños que son la mitad de los valores correctos para ficheros que están montados desde sistemas HP-UX. En sistemas HP-UX, da
tamaños que son el doble de los valores correctos para ficheros montados en sistemas BSD. Esto es debido a un defecto en HP-UX; también afecta al programa
du de HP-UX.

ENTORNO
La variable POSIXLY_CORRECT determina la elección de la unidad. Si no está definida, y la variable BLOCKSIZE tiene un valor que empiece por `HUMAN’,
entonces el comportamiento es como el de si se hubiera dado la opción -h, a menos que se sustituya por las opciones -k o -m. Las variables LANG, LC_ALL,
LC_CTYPE y LC_MESSAGES tienen los significados usuales.

Autor

Publicado

GNU/Linux En este tutorial vamos a explicar cómo proceder para escribir un demonio bajo GNU/Linux. Lo primero es definir que se entiende por un demonio, y citamos a wikipedia https://es.wikipedia.org/wiki/Demonio_%28inform%C3%A1tica%29 Un demonio, daemon o dæmon (de sus siglas en inglés Disk And Execution MONitor), es un tipo especial de proceso informático no interactivo, es decir, que se ejecuta en segundo plano en vez de ser controlado directamente por el usuario. Este tipo de programas se ejecutan de forma continua (infinita), vale decir, que aunque se intente cerrar o matar el proceso, este continuará en ejecución o se reiniciará automáticamente. Todo esto sin intervención de terceros y sin dependencia de consola alguna. Cron que es un demonio temporal, es decir, realiza acciones basadas en el tiempo. Iniciando y parando los demonios o daemons Los demonios pueden estar ubicados en cualquier parte del disco, pero tienen un punto en común: todos utilizan un script para ser iniciados/parados, y estos scripts se encuentran en el directorio:

  1. /etc/init.d/

Crearemos un script para un servidor que se ejecuta al arrancar nuestro sistema GNU/Linux, el script consiste en (aunque podemos hacer scripts que hagan otras cosas) reglas de iptables de un cortafuegos básico para un servidor de enrutamiento, si queremos cargar reglas para nuestro cortafuegos (iptables). Cada “runlevel” describe un estado de la máquina, por decir 0 es para halt (cuando se detiene), 1 es para single-user, de 2 a 5 es el multiusuario y 6 es cuando se reinicia. Los scripts que se ejecutan por cada runlevel se encuentran ubicados en rutas específicas, por ejemplo para el runlevel 0, en /etc/rc0.d … de manera genérica sería número del runlevel (0 a 6)… si queremos conocer nuestro runlevel podemos ejecutar en la terminal:

  1. runlevel

Ahora bien, los demonios (daemons) que se ejecutan al inicio se encuentran ubicados en /etc/init.d, si queremos crear un script propio que se ejecute al arranque deberemos crearlo en esa ruta. Ahora bien, los demonios (daemons) que se ejecutan al inicio se encuentran ubicados en /etc/init.d, si queremos crear un script propio que se ejecute al arranque deberemos crearlo en esa ruta, por decir:

  1. cd /etc/init.d
  2. touch scf
  3. chmod +x scf

Editamos scf:

  1. vi scf

El script propiamente podría ejecutar cualquier instrucción, por ejemplo:

#! /bin/bash
echo “Script al inicio del arranque del sistema…”

Para habilitar daemons (con configuración default) usaremos el comando “insserv”, ejecutaríamos con el siguiente comando:

  1. insserv scf

Nos retorna el siguiente mensaje:

insserv: warning: script ‘fw’ missing LSB tags and overrides

Esto como resultado de que nuestro script debe tener ciertos encabezados “LSB” ver https://wiki.debian.org/LSBInitScripts para que el sistema lo reconozca y sepa que hacer con él. Nuestro script corregido con encabezados quedaría algo como lo siguiente:

#! /bin/bash

  1. BEGIN INIT INFO

  1. Provides: scf
  2. Required-Start: $all
  3. Required-Stop: $all
  4. Default-Start: 2 3 4 5
  5. Default-Stop: 0 1 6
  6. Short-Description: Daemon que carga reglas de scf
  7. Description: Daemon que carga nuestras reglas de iptables.
    1. END INIT INFO
      echo “Script que se ejecuta al arranque…”

Ahora si lo volvemos a cargar con insserv:

  1. insserv scf

Tenemos que si nuestros encabezados están bien ya no marcará error, y la próxima vez que reiniciemos se empezará a ejecutar nuestro demonio (considerando los encabezados LSB).

Para remover un daemon de la ejecución al inicio ejecutamos insserv con -r y el nombre del demonio:

  1. insserv -r scf

Buscaremos programar nuestro script para que acepte cierto control, por decir, algunos daemons aceptan parámetros, del tipo start|stop|restart. Nuestro script, si lo dejáramos como está se ejecutaría lo mismo independientemente de si se apaga o se inicia el servidor lo que buscaríamos sería que al iniciar el servidor se cargan las reglas del cortafuegos y al apagar se borraran las reglas.

Para hacerlo mas general, los pasos anteriores nos servirán para que se ejecute cualquier script que programemos en el runlevel deseado ahora ponemos el código de como quedaría el cortafuegos gestionando los status de “start, stop y restart”. ahora con éste código nos sirva de ejemplo para el concepto de como correr daemons al arranque del sistema:

Script de cortafuegos para enrutamiento para red Lan y DMZ, con cinco Ips y cuatro tarjetas virtualizadas:

#! /bin/bash

  1. BEGIN INIT INFO

  1. Provides: scf
  2. Required-Start: $all
  3. Required-Stop: $all
  4. Default-Start: 2 3 4 5
  5. Default-Stop: 0 1 6
  6. Short-Description: Carga Reglas de IPTABLES
  7. Description: Carga reglas de scf
    1. END INIT INFO

start() {
echo “Configurando Cortafuegos”

echo “[+] Montando tarjetas virtuales”

  1. montar tarjetas virtuales
    ifup ens3:0
    ifup ens3:1
    ifup ens3:2
    ifup ens3:3

echo “[+] Asginando IPs fijas”
IPFIJA1=“ippublica1”
IPFIJA1_IFACE=“ens3”
IPFIJA2=“ippublica2”
IPFIJA2_IFACE=“ens3:0”
IPFIJA3=“ippublica3”
IPFIJA3_IFACE=“ens3:1”
IPFIJA4=“ippublica4”
IPFIJA4_IFACE=“ens3:2”
IPFIJA5=“ippublica5”
IPFIJA5_IFACE=“ens3:3”

echo “[+] Define Red Lan”
LAN_IP=“ipredlan”
LAN_IFACE=“ens4”

echo “[+] Define DMZ
DMZ=“ipdmz”
WEB_IP1=“ipdmzippublica1”
WEB_IP2=“ipdmzippublica2”
WEB_IP3=“ipdmzippublica3”
WEB_IP4=“ipdmzippublica4”
WEB_IP5=“ipdmzippublica5”
WEB_IP8=“ipdmzipftp”
DMZ_IFACE=“ens5”

echo “[+] Define red local”
LO_IFACE=“lo”
LO_IP=“127.0.0.1”

echo “[+] Ruta de Iptables”
IPTABLES=”/usr/sbin/iptables”

/sbin/depmod -a

echo -n “Montando Modulos: “
/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_mangle
/sbin/modprobe iptable_nat
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_limit
/sbin/modprobe ipt_state
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_nat_sip
/sbin/modprobe ip_conntrack_sip
/sbin/modprobe tun
echo “hecho.”

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

echo “[+] Limpiando reglas”
echo -n “Limpiando reglas “
#############insertado
iptables -F
iptables -X
iptables -t nat -F
echo “hecho.”

  1. Creando nuevas cadenas
  2. salida a /dev/null in caso en caso de que existan de otra previa llamada
    echo -n “Creando cadenas: “
    for chain in ${FILTER_CHAINS} ; do
    ${IPTABLES} -t filter -F ${chain} > /dev/null 2>&1
    ${IPTABLES} -t filter -X ${chain} > /dev/null 2>&1
    ${IPTABLES} -t filter -N ${chain}
    echo -n “${chain} “
    done
    echo “hecho.”

echo “[+] Politica Dura”
echo -n “Por defecto DROP
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
echo “hecho.”

echo -n “Paquetes Malos “
iptables -N bad_tcp_packets
iptables -N allowed
iptables -N icmp_packets
iptables -A bad_tcp_packets -p tcp —tcp-flags SYN,ACK SYN,ACK -m state —state NEW -j REJECT —reject-with tcp-reset
iptables -A bad_tcp_packets -p tcp ! —syn -m state —state NEW -j LOG —log-prefix “New not syn:”
iptables -A bad_tcp_packets -p tcp ! —syn -m state —state NEW -j DROP
iptables -A allowed -p TCP —syn -j ACCEPT
iptables -A allowed -p TCP -m state —state ESTABLISHED,RELATED -j ACCEPT
iptables -A allowed -p TCP -j DROP
iptables -A icmp_packets -p ICMP -s 0/0 —icmp-type 8 -j ACCEPT
iptables -A icmp_packets -p ICMP -s 0/0 —icmp-type 11 -j ACCEPT
echo “hecho.”

#################Reglas.
echo -n “Nuevas reglas: “
iptables -N ext-lan
iptables -N ext-firewall
iptables -N lan-ext
iptables -N lan-firewall
iptables -N firewall-lan
iptables -N firewall-ext
iptables -N server-web
iptables -N server-mail
iptables -N server-ssh
iptables -N server-freenx
iptables -N server-ssl
iptables -N bloq-scan
iptables -N flags-tcp
iptables -N openvpn
echo “hecho.”

###############################################################################
###############################################################################

  1. RECENT BAN
    echo “ – BAN – “
    echo “ – BAN ALL – “
    iptables N BAN_ALL
    iptables -F BAN_ALL
    iptables -A BAN_ALL -m recent —set —name BAN_ALL -j LOG —log-prefix “SET -FULL BAN
    MULTI :”
    iptables -t mangle -A PREROUTING -m recent —update —name BAN_ALL —seconds 86400 -j DROP
    iptables -t mangle -A INPUT -m recent —update —name BAN_ALL —seconds 86400 -j DROP
    iptables -A BAN_ALL -j REJECT —reject-with icmp-host-unreachable

  1. RECENT SCAN
    echo “ – SCAN – “
    echo “ – SCAN ALL
    iptables -N SCAN_ALL
    iptables -F SCAN_ALL
    iptables -A SCAN_ALL -p TCP -m recent —set —name SCAN_ALL -m limit —limit 5/minute -j LOG —log-prefix “SET -SCAN ALL
    TCP :”
    iptables A SCAN_ALL -p UDP -m recent —set —name SCAN_ALL -m limit —limit 5/minute -j LOG —log-prefix “SET -SCAN ALL UDP :”
    iptables A SCAN_ALL -p ICMP -m recent —set —name SCAN_ALL -m limit —limit 5/minute -j LOG —log-prefix “SET -SCAN ALL ICMP :”
    iptables A SCAN_ALL -p TCP -m recent —update —name SCAN_ALL —hitcount 5 -m limit —limit 1/minute -j LOG —log-prefix “SET —BAN ALL TCP :”
    iptables A SCAN_ALL -p UDP -m recent —update —name SCAN_ALL —hitcount 5 -m limit —limit 1/minute -j LOG —log-prefix “SET —BAN ALL UDP :”
    iptables A SCAN_ALL -p ICMP -m recent —update —name SCAN_ALL —hitcount 5 -m limit —limit 1/minute -j LOG —log-prefix “SET —BAN ALL ICMP :”

iptables -A SCAN_ALL -m recent —update —hitcount 5 —name SCAN_ALL -m limit —limit 1/minute -j BAN_ALL
iptables -A SCAN_ALL -j REJECT —reject-with icmp-host-unreachable

  1. Variable para Log de los REJECT
    echo “ – LOG’S – “
    iptables -N DROP_IN_LOG
    iptables -F DROP_IN_LOG
    iptables -A DROP_IN_LOG -p ICMP # -m limit —limit 10/minute -j LOG —log-prefix “FIREWALL_INPUT_ICMP_DROP “
    iptables -A DROP_IN_LOG -p TCP -m limit —limit 10/minute -j LOG —log-prefix “FIREWALL_INPUT_TCP_DROP “
    iptables -A DROP_IN_LOG -p UDP -m limit —limit 10/minute -j LOG —log-prefix “FIREWALL_INPUT_UDP_DROP “
    iptables -A DROP_IN_LOG -j SCAN_ALL

#######################################################################################################
#######################################################################################################

####################
echo “Reglas Scan Syn: “

echo -n “—Definiendo regla blog-scan: “
iptables -A bloq-scan -j DROP
echo “hecho.”

echo -n “—Bloqueando y logeando escaneos NMAP-XMAS: “
iptables -A flags-tcp -p tcp —tcp-flags ALL FIN,URG,PSH -j DROP
echo “hecho.”

echo -n “—Bloqueando y logeando escaneos SYN/RST: “
iptables -A flags-tcp -p tcp —tcp-flags SYN,RST SYN,RST -j DROP
echo “hecho.”

echo -n “—Bloqueando y logeando escaneos SYN/FIN: “
iptables -A flags-tcp -p tcp —tcp-flags SYN,FIN SYN,FIN -j DROP
echo “hecho.”

echo -n “—Bloqueando y logeando escaneos PSH/FIN: “
iptables -A flags-tcp -p tcp —tcp-flags PSH,FIN PSH,FIN -j DROP
echo “hecho.”

echo -n “—Bloqueando y logeando el NULL SCAN: “
iptables -A flags-tcp -p tcp —tcp-flags ALL NONE -j DROP
echo “hecho.”

echo -n “—Activando protección anti smurf: “
echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo “hecho.”

echo -n “—Activando protección contra source route spoofing: “
echo 0 >/proc/sys/net/ipv4/conf/all/accept_source_route
echo “hecho.”

echo -n “—Registrando direcciones marcianas: “
echo 1 >/proc/sys/net/ipv4/conf/all/log_martians
echo “hecho.”

  1. permitir ping red lan wan

#SERVER_IP=”$LAN_IP”
#iptables -A INPUT -p icmp —icmp-type 8 -s 0/0 -d $SERVER_IP -m state —state NEW,ESTABLISHED,RELATED -j ACCEPT
#iptables -A OUTPUT -p icmp —icmp-type 0 -s $SERVER_IP -d 0/0 -m state —state ESTABLISHED,RELATED -j ACCEPT
#SERVER_IP=”$LAN_IP”
#iptables -A OUTPUT -p icmp —icmp-type 8 -s $SERVER_IP -d 0/0 -m state —state NEW,ESTABLISHED,RELATED -j ACCEPT
#iptables -A INPUT -p icmp —icmp-type 0 -s 0/0 -d $SERVER_IP -m state —state ESTABLISHED,RELATED -j ACCEPT
  1. permitir ping red wan se colocan todas las ips publicas
  2. ip principal

#SERVER_IP=”$IPFIJA1”
#iptables -A INPUT -p icmp —icmp-type 8 -s 0/0 -d $SERVER_IP -m state —state NEW,ESTABLISHED,RELATED -j ACCEPT
#iptables -A OUTPUT -p icmp —icmp-type 0 -s $SERVER_IP -d 0/0 -m state —state ESTABLISHED,RELATED -j ACCEPT
#SERVER_IP=”$IPFIJA1”
#iptables -A OUTPUT -p icmp —icmp-type 8 -s $SERVER_IP -d 0/0 -m state —state NEW,ESTABLISHED,RELATED -j ACCEPT
#iptables -A INPUT -p icmp —icmp-type 0 -s 0/0 -d $SERVER_IP -m state —state ESTABLISHED,RELATED -j ACCEPT
  1. ip adicional

#SERVER_IP=”$IPFIJA2”
#iptables -A INPUT -p icmp —icmp-type 8 -s 0/0 -d $SERVER_IP -m state —state NEW,ESTABLISHED,RELATED -j ACCEPT
#iptables -A OUTPUT -p icmp —icmp-type 0 -s $SERVER_IP -d 0/0 -m state —state ESTABLISHED,RELATED -j ACCEPT
#SERVER_IP=”$IPFIJA2”
#iptables -A OUTPUT -p icmp —icmp-type 8 -s $SERVER_IP -d 0/0 -m state —state NEW,ESTABLISHED,RELATED -j ACCEPT
#iptables -A INPUT -p icmp —icmp-type 0 -s 0/0 -d $SERVER_IP -m state —state ESTABLISHED,RELATED -j ACCEPT
  1. ip adicional

#SERVER_IP=”$IPFIJA3”
#iptables -A INPUT -p icmp —icmp-type 8 -s 0/0 -d $SERVER_IP -m state —state NEW,ESTABLISHED,RELATED -j ACCEPT
#iptables -A OUTPUT -p icmp —icmp-type 0 -s $SERVER_IP -d 0/0 -m state —state ESTABLISHED,RELATED -j ACCEPT
#SERVER_IP=”$IPFIJA3”
#iptables -A OUTPUT -p icmp —icmp-type 8 -s $SERVER_IP -d 0/0 -m state —state NEW,ESTABLISHED,RELATED -j ACCEPT
#iptables -A INPUT -p icmp —icmp-type 0 -s 0/0 -d $SERVER_IP -m state —state ESTABLISHED,RELATED -j ACCEPT
  1. ip adicional

#SERVER_IP=”$IPFIJA4”
#iptables -A INPUT -p icmp —icmp-type 8 -s 0/0 -d $SERVER_IP -m state —state NEW,ESTABLISHED,RELATED -j ACCEPT
#iptables -A OUTPUT -p icmp —icmp-type 0 -s $SERVER_IP -d 0/0 -m state —state ESTABLISHED,RELATED -j ACCEPT
#SERVER_IP=”$IPFIJA4”
#iptables -A OUTPUT -p icmp —icmp-type 8 -s $SERVER_IP -d 0/0 -m state —state NEW,ESTABLISHED,RELATED -j ACCEPT
#iptables -A INPUT -p icmp —icmp-type 0 -s 0/0 -d $SERVER_IP -m state —state ESTABLISHED,RELATED -j ACCEPT
  1. ip adicional

#SERVER_IP=”$IPFIJA5”
#iptables -A INPUT -p icmp —icmp-type 8 -s 0/0 -d $SERVER_IP -m state —state NEW,ESTABLISHED,RELATED -j ACCEPT
#iptables -A OUTPUT -p icmp —icmp-type 0 -s $SERVER_IP -d 0/0 -m state —state ESTABLISHED,RELATED -j ACCEPT
#SERVER_IP=”$IPFIJA5”
#iptables -A OUTPUT -p icmp —icmp-type 8 -s $SERVER_IP -d 0/0 -m state —state NEW,ESTABLISHED,RELATED -j ACCEPT
#iptables -A INPUT -p icmp —icmp-type 0 -s 0/0 -d $SERVER_IP -m state —state ESTABLISHED,RELATED -j ACCEPT

  1. bloquear ping red lan wan

#SERVER_IP=”$LAN_IP”
#iptables -A INPUT -p icmp —icmp-type 8 -s 0/0 -d $SERVER_IP -m state —state NEW,ESTABLISHED,RELATED -j DROP
#iptables -A OUTPUT -p icmp —icmp-type 0 -s $SERVER_IP -d 0/0 -m state —state ESTABLISHED,RELATED -j DROP
#SERVER_IP=”$LAN_IP”
#iptables -A OUTPUT -p icmp —icmp-type 8 -s $SERVER_IP -d 0/0 -m state —state NEW,ESTABLISHED,RELATED -j DROP
#iptables -A INPUT -p icmp —icmp-type 0 -s 0/0 -d $SERVER_IP -m state —state ESTABLISHED,RELATED -j DROP
  1. bloquear ping red wan se deben colocar todas las ips publicas
    1. ip principal

#SERVER_IP=”$IPFIJA1”
#iptables -A INPUT -p icmp —icmp-type 8 -s 0/0 -d $SERVER_IP -m state —state NEW,ESTABLISHED,RELATED -j DROP
#iptables -A OUTPUT -p icmp —icmp-type 0 -s $SERVER_IP -d 0/0 -m state —state ESTABLISHED,RELATED -j DROP
#SERVER_IP=”$IPFIJA1”
#iptables -A OUTPUT -p icmp —icmp-type 8 -s $SERVER_IP -d 0/0 -m state —state NEW,ESTABLISHED,RELATED -j DROP
#iptables -A INPUT -p icmp —icmp-type 0 -s 0/0 -d $SERVER_IP -m state —state ESTABLISHED,RELATED -j DROP
  1. ip adicional

#SERVER_IP=”$IPFIJA2”
#iptables -A INPUT -p icmp —icmp-type 8 -s 0/0 -d $SERVER_IP -m state —state NEW,ESTABLISHED,RELATED -j DROP
#iptables -A OUTPUT -p icmp —icmp-type 0 -s $SERVER_IP -d 0/0 -m state —state ESTABLISHED,RELATED -j DROP
#SERVER_IP=”$IPFIJA2”
#iptables -A OUTPUT -p icmp —icmp-type 8 -s $SERVER_IP -d 0/0 -m state —state NEW,ESTABLISHED,RELATED -j DROP
#iptables -A INPUT -p icmp —icmp-type 0 -s 0/0 -d $SERVER_IP -m state —state ESTABLISHED,RELATED -j DROP
  1. ip adicional

#SERVER_IP=”$IPFIJA3”
#iptables -A INPUT -p icmp —icmp-type 8 -s 0/0 -d $SERVER_IP -m state —state NEW,ESTABLISHED,RELATED -j DROP
#iptables -A OUTPUT -p icmp —icmp-type 0 -s $SERVER_IP -d 0/0 -m state —state ESTABLISHED,RELATED -j DROP
#SERVER_IP=”$IPFIJA3”
#iptables -A OUTPUT -p icmp —icmp-type 8 -s $SERVER_IP -d 0/0 -m state —state NEW,ESTABLISHED,RELATED -j DROP
#iptables -A INPUT -p icmp —icmp-type 0 -s 0/0 -d $SERVER_IP -m state —state ESTABLISHED,RELATED -j DROP
  1. ip adicional

#SERVER_IP=”$IPFIJA4”
#iptables -A INPUT -p icmp —icmp-type 8 -s 0/0 -d $SERVER_IP -m state —state NEW,ESTABLISHED,RELATED -j DROP
#iptables -A OUTPUT -p icmp —icmp-type 0 -s $SERVER_IP -d 0/0 -m state —state ESTABLISHED,RELATED -j DROP
#SERVER_IP=”$IPFIJA4”
#iptables -A OUTPUT -p icmp —icmp-type 8 -s $SERVER_IP -d 0/0 -m state —state NEW,ESTABLISHED,RELATED -j DROP
#iptables -A INPUT -p icmp —icmp-type 0 -s 0/0 -d $SERVER_IP -m state —state ESTABLISHED,RELATED -j DROP
  1. ip adicional

#SERVER_IP=”$IPFIJA5”
#iptables -A INPUT -p icmp —icmp-type 8 -s 0/0 -d $SERVER_IP -m state —state NEW,ESTABLISHED,RELATED -j DROP
#iptables -A OUTPUT -p icmp —icmp-type 0 -s $SERVER_IP -d 0/0 -m state —state ESTABLISHED,RELATED -j DROP
#SERVER_IP=”$IPFIJA5”
#iptables -A OUTPUT -p icmp —icmp-type 8 -s $SERVER_IP -d 0/0 -m state —state NEW,ESTABLISHED,RELATED -j DROP
#iptables -A INPUT -p icmp —icmp-type 0 -s 0/0 -d $SERVER_IP -m state —state ESTABLISHED,RELATED -j DROP

echo -n “—Reglas input : “
iptables -A INPUT -p tcp -j bad_tcp_packets
iptables -A INPUT -p ICMP -i $IPFIJA1_IFACE -j icmp_packets
iptables -A INPUT -p ALL -i $DMZ_IFACE -d $DMZ -j ACCEPT
iptables -A INPUT -p ALL -i $LAN_IFACE -d $LAN_IP -j ACCEPT

iptables -A INPUT -p ALL -i lo -s $LO_IP -j ACCEPT
iptables -A INPUT -p ALL -i lo -s $LAN_IP -j ACCEPT
iptables -A INPUT -p ALL -i lo -s $DMZ -j ACCEPT
iptables -A INPUT -p ALL -i lo -s $WEB_IP1 -j ACCEPT
iptables -A INPUT -p ALL -i lo -s $WEB_IP2 -j ACCEPT
iptables -A INPUT -p ALL -i lo -s $WEB_IP3 -j ACCEPT
iptables -A INPUT -p ALL -i lo -s $WEB_IP4 -j ACCEPT
iptables -A INPUT -p ALL -i lo -s $WEB_IP5 -j ACCEPT
iptables -A INPUT -p ALL -i lo -s $WEB_IP8 -j ACCEPT
iptables -A INPUT -p ALL -i lo -s $IPFIJA1 -j ACCEPT
iptables -A INPUT -p ALL -i lo -s $IPFIJA2 -j ACCEPT
iptables -A INPUT -p ALL -i lo -s $IPFIJA3 -j ACCEPT
iptables -A INPUT -p ALL -i lo -s $IPFIJA4 -j ACCEPT
iptables -A INPUT -p ALL -i lo -s $IPFIJA5 -j ACCEPT

iptables -A INPUT -p UDP -i $LAN_IFACE —dport 67 —sport 68 -j ACCEPT
iptables -A INPUT -p ALL -d $IPFIJA1 -m state —state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p ALL -d $IPFIJA2 -m state —state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p ALL -d $IPFIJA3 -m state —state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p ALL -d $IPFIJA4 -m state —state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p ALL -d $IPFIJA5 -m state —state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p UDP -i $IPFIJA1_IFACE -d 255.255.255.255 —destination-port 67:68 -j DROP
iptables -A INPUT -i $IPFIJA1_IFACE -d 224.0.0.0/8 -j DROP
iptables -A INPUT -m limit —limit 3/minute —limit-burst 3 -j LOG —log-prefix “IPT INPUT packet died: “
echo “hecho.”

echo -n “—Reglas SCANNER p2p : “

  1. Protecion contra port scanners p2p
    iptables -N SCANNER
    iptables -A SCANNER -m limit —limit 15/m -j LOG —log-level 6 —log-prefix “FIREWALL: port scanner: “
    iptables -A SCANNER -j DROP
    iptables -A INPUT -p tcp —tcp-flags ALL FIN,URG,PSH -i $LAN_IFACE -j SCANNER
    iptables -A INPUT -p tcp —tcp-flags ALL NONE -i $LAN_IFACE -j SCANNER
    iptables -A INPUT -p tcp —tcp-flags ALL ALL -i $LAN_IFACE -j SCANNER
    iptables -A INPUT -p tcp —tcp-flags ALL FIN,SYN -i $LAN_IFACE -j SCANNER
    iptables -A INPUT -p tcp —tcp-flags ALL SYN,RST,ACK,FIN,URG -i $LAN_IFACE -j SCANNER
    iptables -A INPUT -p tcp —tcp-flags SYN,RST SYN,RST -i $LAN_IFACE -j SCANNER
    iptables -A INPUT -p tcp —tcp-flags SYN,FIN SYN,FIN -i $LAN_IFACE -j SCANNER
    echo “hecho.”

echo -n “—Reglas FORWARD : “
iptables -A FORWARD -p tcp -j bad_tcp_packets

  1. habilitar las redes wan y lan
    1. red wan
      iptables -A FORWARD -i $DMZ_IFACE -o $IPFIJA1_IFACE -j ACCEPT
      iptables -A FORWARD -i $IPFIJA1_IFACE -o $DMZ_IFACE -m state —state ESTABLISHED,RELATED -j ACCEPT
  1. red lan
    iptables -A FORWARD -i $LAN_IFACE -o $DMZ_IFACE -j ACCEPT
    iptables -A FORWARD -i $DMZ_IFACE -o $LAN_IFACE -m state —state ESTABLISHED,RELATED -j ACCEPT

  1. habilitar ips forward
  2. ip web 162
    iptables -A FORWARD -p TCP -i $IPFIJA1_IFACE -o $DMZ_IFACE -d $WEB_IP1 —dport 80 -j allowed
    iptables -A FORWARD -p ICMP -i $IPFIJA1_IFACE -o $DMZ_IFACE -d $WEB_IP1 -j icmp_packets

  1. ip 163
    iptables -A FORWARD -p TCP -i $IPFIJA1_IFACE -o $DMZ_IFACE -d $WEB_IP2 —dport 22 -j allowed
    iptables -A FORWARD -p TCP -i $IPFIJA1_IFACE -o $DMZ_IFACE -d $WEB_IP2 —dport 80 -j allowed
    iptables -A FORWARD -p ICMP -i $IPFIJA1_IFACE -o $DMZ_IFACE -d $WEB_IP2 -j icmp_packets

  1. ip correo 164
    iptables -A FORWARD -p TCP -i $IPFIJA1_IFACE -o $DMZ_IFACE -d $WEB_IP3 —dport 22 -j allowed
    iptables -A FORWARD -p TCP -i $IPFIJA1_IFACE -o $DMZ_IFACE -d $WEB_IP3 —dport 25 -j allowed
    iptables -A FORWARD -p TCP -i $IPFIJA1_IFACE -o $DMZ_IFACE -d $WEB_IP3 —dport 80 -j allowed
    iptables -A FORWARD -p TCP -i $IPFIJA1_IFACE -o $DMZ_IFACE -d $WEB_IP3 —dport 110 -j allowed
    iptables -A FORWARD -p TCP -i $IPFIJA1_IFACE -o $DMZ_IFACE -d $WEB_IP3 —dport 143 -j allowed
    iptables -A FORWARD -p TCP -i $IPFIJA1_IFACE -o $DMZ_IFACE -d $WEB_IP3 —dport 443 -j allowed
    iptables -A FORWARD -p TCP -i $IPFIJA1_IFACE -o $DMZ_IFACE -d $WEB_IP3 —dport 465 -j allowed
    iptables -A FORWARD -p TCP -i $IPFIJA1_IFACE -o $DMZ_IFACE -d $WEB_IP3 —dport 993 -j allowed
    iptables -A FORWARD -p TCP -i $IPFIJA1_IFACE -o $DMZ_IFACE -d $WEB_IP3 —dport 996 -j allowed
    iptables -A FORWARD -p TCP -i $IPFIJA1_IFACE -o $DMZ_IFACE -d $WEB_IP3 —dport 7071 -j allowed
    iptables -A FORWARD -p ICMP -i $IPFIJA1_IFACE -o $DMZ_IFACE -d $WEB_IP3 -j icmp_packets

  1. ip nube 165
    iptables -A FORWARD -p TCP -i $IPFIJA1_IFACE -o $DMZ_IFACE -d $WEB_IP4 —dport 22 -j allowed
    iptables -A FORWARD -p TCP -i $IPFIJA1_IFACE -o $DMZ_IFACE -d $WEB_IP4 —dport 80 -j allowed
    iptables -A FORWARD -p ICMP -i $IPFIJA1_IFACE -o $DMZ_IFACE -d $WEB_IP4 -j icmp_packets

  1. ip nube 166
    iptables -A FORWARD -p TCP -i $IPFIJA1_IFACE -o $DMZ_IFACE -d $WEB_IP5 —dport 22 -j allowed
    iptables -A FORWARD -p TCP -i $IPFIJA1_IFACE -o $DMZ_IFACE -d $WEB_IP5 —dport 80 -j allowed
    iptables -A FORWARD -p ICMP -i $IPFIJA1_IFACE -o $DMZ_IFACE -d $WEB_IP5 -j icmp_packets

  1. ftp
    iptables -A FORWARD -p TCP -i $IPFIJA1_IFACE -o $DMZ_IFACE -d $WEB_IP8 —dport 21 -j allowed
    iptables -A FORWARD -p ICMP -i $IPFIJA1_IFACE -o $DMZ_IFACE -d $WEB_IP8 -j icmp_packets

iptables -A FORWARD -i $LAN_IFACE -j ACCEPT
iptables -A FORWARD -m state —state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m limit —limit 3/minute —limit-burst 3 -j LOG —log-prefix “IPT FORWARD packet died: “
echo “hecho.”

echo -n “—Reglas OUTPUT : “
iptables -A OUTPUT -p tcp -j bad_tcp_packets

iptables -A OUTPUT -p ALL -s $LO_IP -j ACCEPT
iptables -A OUTPUT -p ALL -s $LAN_IP -j ACCEPT
iptables -A OUTPUT -p ALL -s $DMZ -j ACCEPT
iptables -A OUTPUT -p ALL -s $WEB_IP1 -j ACCEPT
iptables -A OUTPUT -p ALL -s $WEB_IP2 -j ACCEPT
iptables -A OUTPUT -p ALL -s $WEB_IP3 -j ACCEPT
iptables -A OUTPUT -p ALL -s $WEB_IP4 -j ACCEPT
iptables -A OUTPUT -p ALL -s $WEB_IP5 -j ACCEPT
iptables -A OUTPUT -p ALL -s $WEB_IP8 -j ACCEPT
iptables -A OUTPUT -p ALL -s $IPFIJA1 -j ACCEPT
iptables -A OUTPUT -p ALL -s $IPFIJA2 -j ACCEPT
iptables -A OUTPUT -p ALL -s $IPFIJA3 -j ACCEPT
iptables -A OUTPUT -p ALL -s $IPFIJA4 -j ACCEPT
iptables -A OUTPUT -p ALL -s $IPFIJA5 -j ACCEPT
iptables -A OUTPUT -m limit —limit 3/minute —limit-burst 3 -j LOG —log-prefix “IPT OUTPUT packet died: “
echo “hecho.”

###############

  1. prerouting wan
    echo -n “—Reglas prerouting : “
    1. ip web 162
      iptables -t nat -A PREROUTING -p TCP -i $IPFIJA1_IFACE -d $IPFIJA1 —dport 80 -j DNAT —to-destination $WEB_IP1

  1. ip nube 163
    iptables -t nat -A PREROUTING -p TCP -i $IPFIJA1_IFACE -d $IPFIJA2 —dport 22 -j DNAT —to-destination $WEB_IP2
    iptables -t nat -A PREROUTING -p TCP -i $IPFIJA1_IFACE -d $IPFIJA2 —dport 80 -j DNAT —to-destination $WEB_IP2

  1. ip correo 164
    iptables -t nat -A PREROUTING -p TCP -i $IPFIJA1_IFACE -d $IPFIJA3 —dport 22 -j DNAT —to-destination $WEB_IP3
    iptables -t nat -A PREROUTING -p TCP -i $IPFIJA1_IFACE -d $IPFIJA3 —dport 25 -j DNAT —to-destination $WEB_IP3
    iptables -t nat -A PREROUTING -p TCP -i $IPFIJA1_IFACE -d $IPFIJA3 —dport 80 -j DNAT —to-destination $WEB_IP3
    iptables -t nat -A PREROUTING -p TCP -i $IPFIJA1_IFACE -d $IPFIJA3 —dport 110 -j DNAT —to-destination $WEB_IP3
    iptables -t nat -A PREROUTING -p TCP -i $IPFIJA1_IFACE -d $IPFIJA3 —dport 143 -j DNAT —to-destination $WEB_IP3
    iptables -t nat -A PREROUTING -p TCP -i $IPFIJA1_IFACE -d $IPFIJA3 —dport 443 -j DNAT —to-destination $WEB_IP3
    iptables -t nat -A PREROUTING -p TCP -i $IPFIJA1_IFACE -d $IPFIJA3 —dport 465 -j DNAT —to-destination $WEB_IP3
    iptables -t nat -A PREROUTING -p TCP -i $IPFIJA1_IFACE -d $IPFIJA3 —dport 993 -j DNAT —to-destination $WEB_IP3
    iptables -t nat -A PREROUTING -p TCP -i $IPFIJA1_IFACE -d $IPFIJA3 —dport 996 -j DNAT —to-destination $WEB_IP3
    iptables -t nat -A PREROUTING -p TCP -i $IPFIJA1_IFACE -d $IPFIJA3 —dport 7071 -j DNAT —to-destination $WEB_IP3

  1. ip web 165
    iptables -t nat -A PREROUTING -p TCP -i $IPFIJA1_IFACE -d $IPFIJA4 —dport 22 -j DNAT —to-destination $WEB_IP4
    iptables -t nat -A PREROUTING -p TCP -i $IPFIJA1_IFACE -d $IPFIJA4 —dport 80 -j DNAT —to-destination $WEB_IP4

  1. ip web 166
    iptables -t nat -A PREROUTING -p TCP -i $IPFIJA1_IFACE -d $IPFIJA5 —dport 22 -j DNAT —to-destination $WEB_IP5
    iptables -t nat -A PREROUTING -p TCP -i $IPFIJA1_IFACE -d $IPFIJA5 —dport 80 -j DNAT —to-destination $WEB_IP5

  1. ip ftp
    iptables -t nat -A PREROUTING -p TCP -i $IPFIJA1_IFACE -d $IPFIJA2 —dport 21 -j DNAT —to-destination $WEB_IP8

########################

  1. prerouting LAN
  1. ip web 162
    iptables -t nat -A PREROUTING -i $LAN_IFACE -p tcp -d $IPFIJA1 —dport 80 -j DNAT —to-destination $WEB_IP1

  1. ip nube 163
    iptables -t nat -A PREROUTING -i $LAN_IFACE -p tcp -d $IPFIJA2 —dport 22 -j DNAT —to-destination $WEB_IP2
    iptables -t nat -A PREROUTING -i $LAN_IFACE -p tcp -d $IPFIJA2 —dport 80 -j DNAT —to-destination $WEB_IP2

  1. ip correo 164
    iptables -t nat -A PREROUTING -i $LAN_IFACE -p tcp -d $IPFIJA3 —dport 22 -j DNAT —to-destination $WEB_IP3
    iptables -t nat -A PREROUTING -i $LAN_IFACE -p tcp -d $IPFIJA3 —dport 25 -j DNAT —to-destination $WEB_IP3
    iptables -t nat -A PREROUTING -i $LAN_IFACE -p tcp -d $IPFIJA3 —dport 80 -j DNAT —to-destination $WEB_IP3
    iptables -t nat -A PREROUTING -i $LAN_IFACE -p tcp -d $IPFIJA3 —dport 110 -j DNAT —to-destination $WEB_IP3
    iptables -t nat -A PREROUTING -i $LAN_IFACE -p tcp -d $IPFIJA3 —dport 143 -j DNAT —to-destination $WEB_IP3
    iptables -t nat -A PREROUTING -i $LAN_IFACE -p tcp -d $IPFIJA3 —dport 443 -j DNAT —to-destination $WEB_IP3
    iptables -t nat -A PREROUTING -i $LAN_IFACE -p tcp -d $IPFIJA3 —dport 993 -j DNAT —to-destination $WEB_IP3
    iptables -t nat -A PREROUTING -i $LAN_IFACE -p tcp -d $IPFIJA3 —dport 996 -j DNAT —to-destination $WEB_IP3
    iptables -t nat -A PREROUTING -i $LAN_IFACE -p tcp -d $IPFIJA3 —dport 7071 -j DNAT —to-destination $WEB_IP3

  1. ip 165
    iptables -t nat -A PREROUTING -i $LAN_IFACE -p tcp -d $IPFIJA4 —dport 22 -j DNAT —to-destination $WEB_IP4
    iptables -t nat -A PREROUTING -i $LAN_IFACE -p tcp -d $IPFIJA4 —dport 80 -j DNAT —to-destination $WEB_IP4

  1. ip 166
    iptables -t nat -A PREROUTING -i $LAN_IFACE -p tcp -d $IPFIJA5 —dport 22 -j DNAT —to-destination $WEB_IP5
    iptables -t nat -A PREROUTING -i $LAN_IFACE -p tcp -d $IPFIJA5 —dport 80 -j DNAT —to-destination $WEB_IP5

  1. ip ftp
    iptables -t nat -A PREROUTING -i $LAN_IFACE -p tcp -d $IPFIJA2 —dport 21 -j DNAT —to-destination $WEB_IP8
    echo “hecho.”

echo -n “—Reglas postrouting : “
iptables -t nat -A POSTROUTING -o $IPFIJA1_IFACE -j SNAT —to-source $IPFIJA1
iptables -t nat -A POSTROUTING -o $IPFIJA1_IFACE -j SNAT —to-source $IPFIJA2
iptables -t nat -A POSTROUTING -o $IPFIJA1_IFACE -j SNAT —to-source $IPFIJA3
iptables -t nat -A POSTROUTING -o $IPFIJA1_IFACE -j SNAT —to-source $IPFIJA4
iptables -t nat -A POSTROUTING -o $IPFIJA1_IFACE -j SNAT —to-source $IPFIJA5
echo “hecho.”

}

stop() {

echo “[+] Borrando reglas de iptables”

  1. flush – Reinicia iptables a sus valores por defecto.


#
#
  1. Configuraciones.


#
IPTABLES=”/usr/sbin/iptables”

#

  1. Reinicia las políticas por defecto en la tabla Filter.


#
echo “[+] Quitando politica dura”
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

#

  1. Reinicia las políticas por defecto en la tabla Nat.


#
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT

#

  1. Reinicia las políticas por defecto en la tabla Mangle.


#
iptables -t mangle -P PREROUTING ACCEPT
iptables -t mangle -P OUTPUT ACCEPT

#

  1. Elimina todas las reglas de las tablas Filter y Nat.


#
iptables -F
iptables -t nat -F
iptables -t mangle -F
#
  1. Borra todas las cadenas que no vienen por defecto con las
  2. tablas Filter y Nat.


#
iptables -X
iptables -t nat -X
iptables -t mangle -X
}

#Revisamos permisos de root
if [ “$(id -u)” != “0” ]; then
echo “Necesarios permisos de root…” 1>&2
exit 1
fi

  1. En un case gestionamos start|stop|restart
    case “$1” in
    start)
    start
    exit 0


;;
stop)
stop
exit 0
;;
restart)
stop
start
exit 0
;;
**)
echo “Uso: $0 {start|stop|restart}” 1>&2
exit 1
;;
esac

Enlace demonios segun wiki GNU/Linux Debian https://wiki.debian.org/Daemon
Enlace para sysvinit https://www.debian.org/doc/debian-policy/ch-opersys.html#s-sysvinit
Enlace LBS https://wiki.debian.org/LSBInitScripts/DependencyBasedBoot?highlight=%28\bCategoryBootProcess\b%29
Enlace LSBInitScripts https://wiki.debian.org/LSBInitScripts

Autor