Script iptables Centos 7 - Mayo 2017

#!/bin/bash

modprobe ip_conntrack modprobe ip_conntrack_ftp modprobe ip_nat_ftp

#Habilitamos siempre el forwarding echo 1 > /proc/sys/net/ipv4/ip_forward

DMZIFACE=“em1” LOCALIFACE=“em3” INETIFACE=“em2” VPNIFACE=“tapm” VPNALLIFACE=“tap+”

DMZNET=“10.12.13.0/24” LOCALNET=“10.12.12.0/24”

echo "FIREWALL 2.0, bloqueos a la carta."
      echo "Iniciando ........ "
      #Ponemos todo a cero
      iptables -F
      iptables -X
      iptables -Z
      #Politicas por defecto
      iptables -P INPUT DROP
      iptables -P FORWARD ACCEPT
      iptables -P OUTPUT ACCEPT
      iptables -t nat -F
      iptables -t nat -P PREROUTING ACCEPT
      iptables -t nat -P POSTROUTING ACCEPT
      iptables -t nat -P OUTPUT ACCEPT
      iptables -t nat -A POSTROUTING -s $LOCALNET -o $INETIFACE -j MASQUERADE
      iptables -t nat -A POSTROUTING -s $DMZNET -o $INETIFACE -j MASQUERADE
      #Aceptamos las conexiones ya establecidas
      iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
      iptables -A INPUT -i lo -m state --state NEW -j ACCEPT
      iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
      ############################################
      ##  REGLAS PARA EL INPUT                  ##
      ############################################
      #Cerramos a atacantes
iptables -A INPUT -s 185.87.121.5 -j DROP
# Permitimos los pings
      iptables -A INPUT -p icmp -m state --state NEW -j ACCEPT
#Abrimos puertos apache para acceso desde el exterior
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
iptables -A INPUT -p tcp --dport 8888 -j ACCEPT # zabbix desde fuera
      #Abrimos en el INPUT el ssh desde cualquier interfaz
      iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 2222 -j ACCEPT
      #Abrimos en el INPUT el openvpn desde cualquier interfaz
      iptables -A INPUT -p udp --dport 1194 -j ACCEPT
#Abrimos en el INPUT el agente de Zabbix para cualquier interfaz
iptables -A INPUT -p tcp --dport 10050 -j ACCEPT
iptables -A INPUT -p tcp --dport 10051 -j ACCEPT
iptables -A INPUT -p udp --dport 10050 -j ACCEPT
iptables -A INPUT -p udp --dport 10051 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 10050 -j ACCEPT
      iptables -A OUTPUT -p tcp --dport 10051 -j ACCEPT
      iptables -A OUTPUT -p udp --dport 10050 -j ACCEPT
      iptables -A OUTPUT -p udp --dport 10051 -j ACCEPT
      #Abrimos en el INPUT dns para las vpn, la dmz y localnet
      iptables -A INPUT -i $DMZIFACE  -p udp --dport 53 -j ACCEPT
      iptables -A INPUT -i $VPNALLIFACE  -p udp --dport 53 -j ACCEPT
      iptables -A INPUT -i $LOCALIFACE  -p udp --dport 53 -j ACCEPT
      #Abrimos en el INPUT dhcp para las dmz, localnet y VNP
      iptables -A INPUT -i $DMZIFACE  -p udp --dport 67 -j ACCEPT
      iptables -A INPUT -i $LOCALIFACE  -p udp --dport 67 -j ACCEPT
      iptables -A INPUT -i $VPNALLIFACE  -p udp --dport 67 -j ACCEPT
      #Abrimos en el INPUT snmp para las dmz
      iptables -A INPUT -i $DMZIFACE  -p udp --dport 161 -j ACCEPT
      iptables -A INPUT -i $DMZIFACE  -p tcp --dport 161 -j ACCEPT
iptables -A INPUT -i $DMZIFACE  -p udp --dport 162 -j ACCEPT
      iptables -A INPUT -i $DMZIFACE  -p tcp --dport 162 -j ACCEPT
      #######################################################
      ##  Puertos y forward para el SVN y BBDD de Gureak   ##
      #######################################################
## 212.81.199.242 
iptables -I OUTPUT -o $INETIFACE -d 0.0.0.0/0 -j ACCEPT
iptables -I INPUT -i $INETIFACE -m state --state ESTABLISHED,RELATED -j ACCEPT
# MySQL
#iptables -A INPUT -s $OTXARKOAGA -i eth0 -p tcp --dport 3306 -j ACCEPT
      iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
iptables -A PREROUTING -t nat -i $INETIFACE -p tcp --dport 3306 -j DNAT --to 10.12.13.11:3306
iptables -A FORWARD -p tcp -d 10.12.13.11 --dport 3306 -j ACCEPT
      # MySQL TIENDADONDE
#iptables -A INPUT -p tcp --dport 3307 -j ACCEPT
#iptables -A PREROUTING -t nat -i $INETIFACE -p tcp --dport 3307 -j DNAT --to 10.12.13.20:3307
#iptables -A FORWARD -p tcp -d 10.12.13.20 --dport 3307 -j ACCEPT
# SVN
      iptables -A INPUT -p tcp --dport 8081 -j ACCEPT
iptables -A PREROUTING -t nat -i $INETIFACE -p tcp --dport 8081 -j DNAT --to 10.12.13.10:80
iptables -A FORWARD -p tcp -d 10.12.13.11 --dport 80 -j ACCEPT
# SVN (prueba Igor)
      iptables -A INPUT -s 0.0.0.0 -i $INETIFACE -p tcp --dport 8090 -j ACCEPT
      iptables -A PREROUTING -t nat -i $INETIFACE -p tcp --dport 8090 -j DNAT --to 10.12.13.18:8090
      iptables -A FORWARD -p tcp -d 10.12.13.18 --dport 8090 -j ACCEPT

# SSH

iptables -A INPUT -s 0.0.0.0 -i $INETIFACE -p tcp --dport 22 -j ACCEPT
      iptables -A PREROUTING -t nat -i $INETIFACE -p tcp --dport 22 -j DNAT --to 10.12.13.9:22
      iptables -A FORWARD -p tcp -d 10.12.13.9 --dport 22 -j ACCEPT
      # Apache y plesk en kokodrilo
      iptables -A INPUT -s 10.12.13.9 -i $INETIFACE -p tcp --dport 80 -j ACCEPT
      iptables -A PREROUTING -t nat -i $INETIFACE -p tcp --dport 80 -j DNAT --to 10.12.13.9:80
      iptables -A FORWARD -p tcp -d 10.12.13.9 --dport 80 -j ACCEPT
      iptables -A INPUT -s 10.12.13.9 -i $INETIFACE -p tcp --dport 443 -j ACCEPT
      iptables -A PREROUTING -t nat -i $INETIFACE -p tcp --dport 443 -j DNAT --to 10.12.13.9:443
      iptables -A FORWARD -p tcp -d 10.12.13.9 --dport 443 -j ACCEPT
      iptables -A INPUT -s 10.12.13.9 -i $INETIFACE -p tcp --dport 8443 -j ACCEPT
      iptables -A PREROUTING -t nat -i $INETIFACE -p tcp --dport 8443 -j DNAT --to 10.12.13.9:8443
      iptables -A FORWARD -p tcp -d 10.12.13.9 --dport 8443 -j ACCEPT
      iptables -A PREROUTING -t nat -i $INETIFACE -p tcp --dport 8447 -j DNAT --to 10.12.13.9:8447
      iptables -A FORWARD -p tcp -d 10.12.13.9 --dport 8447 -j ACCEPT
      # Apache en ZABBIX
      iptables -A INPUT -s 0.0.0.0 -i $INETIFACE -p tcp --dport 8888 -j ACCEPT
      iptables -A PREROUTING -t nat -i $INETIFACE -p tcp --dport 8888 -j DNAT --to 10.12.13.16:80
iptables -A FORWARD -p tcp -d 10.12.13.16 --dport 80 -j ACCEPT
      iptables -A INPUT -s 10.12.13.16 -i $INETIFACE -p tcp --dport 443 -j ACCEPT
      iptables -A PREROUTING -t nat -i $INETIFACE -p tcp --dport 443 -j DNAT --to 10.12.13.16:443
      iptables -A FORWARD -p tcp -d 10.12.13.16 --dport 443 -j ACCEPT
# Acceso FTP
iptables -A INPUT -s 10.12.13.9 -i $INETIFACE -p tcp --dport 21 -j ACCEPT
iptables -A PREROUTING -t nat -i $INETIFACE -p tcp --dport 21 -j DNAT --to 10.12.13.9:21
iptables -A FORWARD -p tcp -d 10.12.13.9 --dport 21 -j ACCEPT
      # Acceso SSH FIELME VIEJO
      iptables -A INPUT -s 0.0.0.0 -i $INETIFACE -p tcp --dport 2222 -j ACCEPT
      iptables -A PREROUTING -t nat -i $INETIFACE -p tcp --dport 2222 -j DNAT --to 10.12.13.20:22
      iptables -A FORWARD -p tcp -d 10.12.13.20 --dport 22 -j ACCEPT

exit 0