Ayuda con la configuracion de my firewall en ubuntu con iptables

Imagen de tonyxjen
0 puntos

Hola a Todos, desde hace años vengo usando el ubuntu desde su version 6.04, y bueno ahora tengo
un problema que es que en una emppreza en la que laboro, se requiere tener acceso a unas camaras
desde fuerda de la empresa, tenemos una ip fija, pero el anterior a mi, configuró el firewall de ubuntu con iptables de manera que bloqueaba todos los puertos de acceso es por eso que ahora
no se puede ver estas camaras desde fuera recientemente instaladas, y ademas de ello algunas
paginas web nos se pueden vizualizar, aca les dejo la configuracion del archivo, espero me
ayuden, gracias.

#!/bin/sh 
#
#  This is automatically generated file. DO NOT MODIFY !
#
#  Firewall Builder  fwb_ipt v2.1.14-1 
#
#  Generated Tue May  5 00:59:08 2009 PET by adminserver
#
# files: * ECBR.fw
#
#
#  
#
#
#


PATH="/sbin:/usr/sbin:/bin:/usr/bin:${PATH}"
export PATH

LSMOD="/sbin/lsmod"
MODPROBE="/sbin/modprobe"
IPTABLES="/sbin/iptables"
IPTABLES_RESTORE="/sbin/iptables-restore"
IP="/sbin/ip"
LOGGER="/usr/bin/logger"


#
# Prolog script
#

#
# End of prolog script
#

log() {
  echo "$1"
  test -x "$LOGGER" && $LOGGER -p info "$1"
}

check_file() {
  test -r "$2" || {
    echo "Can not find file $2 referenced by AddressTable object $1"
    exit 1
  }
}

va_num=1
add_addr() {
  addr=$1
  nm=$2
  dev=$3

  type=""
  aadd=""

  L=`$IP -4 link ls $dev | head -n1`
  if test -n "$L"; then
    OIFS=$IFS
    IFS=" /:,<"
    set $L
    type=$4
    IFS=$OIFS
    if test "$type" = "NO-CARRIER"; then
      type=$5
    fi

    L=`$IP -4 addr ls $dev to $addr | grep inet | grep -v :`
    if test -n "$L"; then
      OIFS=$IFS
      IFS=" /"
      set $L
      aadd=$2
      IFS=$OIFS
    fi
  fi
  if test -z "$aadd"; then
    if test "$type" = "POINTOPOINT"; then
      $IP -4 addr add $addr dev $dev scope global label $dev:FWB${va_num}
      va_num=`expr $va_num + 1`
    fi
    if test "$type" = "BROADCAST"; then
      $IP -4 addr add $addr/$nm dev $dev brd + scope global label $dev:FWB${va_num}
      va_num=`expr $va_num + 1`
    fi
  fi
}

getInterfaceVarName() {
  echo $1 | sed 's/\./_/'
}

getaddr() {
  dev=$1
  name=$2
  L=`$IP -4 addr show dev $dev | grep inet | grep -v :`
  test -z "$L" &OIFS=$IFS
  IFS=" /"
  set $L
  eval "$name=$2"
  IFS=$OIFS
}


getinterfaces() {
  NAME=$1
  $IP link show | grep ": $NAME" | while read L; do
    OIFS=$IFS
    IFS=" :"
    set $L
    IFS=$OIFS
    echo $2
  done
}


# increment ip address
incaddr()
{
  n1=$4
  n2=$3
  n3=$2
  n4=$1

  vn1=`eval  "echo \\$$n1"`

  R=`expr $vn1 \< 255`
  if test $R = "1"; then
    eval "$n1=`expr $vn1 + 1`"
  else
    eval "$n1=0"
    incaddr XX $n4 $n3 $n2
  fi
}

if $IP link ls >/dev/null 2>&1; then
  echo;
else
  echo "iproute not found"
  exit 1
fi



MODULES_DIR="/lib/modules/`uname -r`/kernel/net/"
MODULES=`find $MODULES_DIR -name '*conntrack*'|sed  -e 's/^.*\///' -e 's/\([^\.]\)\..*/\1/'`
MODULES="$MODULES `find $MODULES_DIR -name '*nat*'|sed  -e 's/^.*\///' -e 's/\([^\.]\)\..*/\1/'`"
for module in $MODULES; do 
  if $LSMOD | grep ${module} >/dev/null; then continue; fi
  $MODPROBE ${module} ||  exit 1 
done


# Using 0 address table files


INTERFACES="eth0 eth1 lo "
for i in $INTERFACES ; do
  $IP link show "$i" > /dev/null 2>&1 || {
    log "Interface $i does not exist"
    exit 1
  }
done


# Configure interfaces
$IP -4 neigh flush dev eth0 >/dev/null 2>&1
$IP -4 addr flush dev eth0 secondary label "eth0:FWB*" >/dev/null 2>&1
$IP -4 neigh flush dev eth1 >/dev/null 2>&1
$IP -4 addr flush dev eth1 secondary label "eth1:FWB*" >/dev/null 2>&1


add_addr 192.168.1.1 24 eth0
$IP link set eth0 up
add_addr 192.168.5.2 24 eth1
$IP link set eth1 up
add_addr 127.0.0.1 8 lo
$IP link set lo up


# Add virtual addresses for NAT rules


log 'Activating firewall script generated Tue May  5 00:59:08 2009  by adminserver'

$IPTABLES -P OUTPUT  DROP
$IPTABLES -P INPUT   DROP
$IPTABLES -P FORWARD DROP
ip6tables -L -n > /dev/null 2>&1 &cat /proc/net/ip_tables_names | while read table; do
  $IPTABLES -t $table -L -n | while read c chain rest; do
      if test "X$c" = "XChain" ; then
        $IPTABLES -t $table -F $chain
      fi
  done
  $IPTABLES -t $table -X
done


$IPTABLES -A INPUT   -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A OUTPUT  -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

# 
# Rule 1 (NAT)
# 
echo "Rule 1 (NAT)"
# 
# 
$IPTABLES -t nat -A PREROUTING  -p tcp -m tcp   -d 192.168.5.2 --dport 80 -j DNAT --to-destination 192.168.1.10 
# 
# Rule 2 (NAT)
# 
echo "Rule 2 (NAT)"
# 
# 
$IPTABLES -t nat -A PREROUTING  -p tcp -m tcp   -d 192.168.5.2 --dport 110 -j DNAT --to-destination 192.168.1.10 
# 
# Rule 3 (NAT)
# 
echo "Rule 3 (NAT)"
# 
# 
$IPTABLES -t nat -A PREROUTING  -p tcp -m tcp   -d 192.168.5.2 --dport 25 -j DNAT --to-destination 192.168.1.10 
# 
# Rule 4 (NAT)
# 
echo "Rule 4 (NAT)"
# 
# 
$IPTABLES -t nat -A PREROUTING  -p tcp -m tcp   -d 192.168.5.2 --dport 21 -j DNAT --to-destination 192.168.1.10 
# 
# Rule 5 (NAT)
# 
echo "Rule 5 (NAT)"
# 
# 
$IPTABLES -t nat -A PREROUTING  -p tcp -m tcp   -d 192.168.5.2 --dport 3389 -j DNAT --to-destination 192.168.1.10 
# 
# Rule 6 (NAT)
# 
echo "Rule 6 (NAT)"
# 
# 
$IPTABLES -t nat -A POSTROUTING -o eth1  -s 192.168.1.10 -j SNAT --to-source 192.168.5.2 
$IPTABLES -t nat -A POSTROUTING -o eth1  -s 192.168.1.108 -j SNAT --to-source 192.168.5.2 
# 
# Rule 7 (NAT)
# 
echo "Rule 7 (NAT)"
# 
# 
$IPTABLES -t nat -A PREROUTING  -p tcp -m tcp  -s 192.168.1.0/24  --dport 80 -j DNAT --to-destination 192.168.1.1:3128 
# 
# Rule 0 (global)
# 
echo "Rule 0 (global)"
# 
# 
# 
$IPTABLES -A INPUT  -s 192.168.1.1  -m state --state NEW  -j ACCEPT 
$IPTABLES -A INPUT  -s 192.168.5.2  -m state --state NEW  -j ACCEPT 
$IPTABLES -A OUTPUT  -m state --state NEW  -j ACCEPT 
# 
# Rule 1 (lo)
# 
echo "Rule 1 (lo)"
# 
# 
# 
$IPTABLES -A INPUT  -i lo  -m state --state NEW  -j ACCEPT 
$IPTABLES -A OUTPUT  -o lo  -m state --state NEW  -j ACCEPT 
# 
# Rule 2 (global)
# 
echo "Rule 2 (global)"
# 
# 
# 
$IPTABLES -A OUTPUT -p tcp -m tcp  -d 192.168.5.2  --dport 22  -m state --state NEW  -j ACCEPT 
$IPTABLES -A INPUT -p tcp -m tcp  -d 192.168.5.2  --dport 22  -m state --state NEW  -j ACCEPT 
# 
# Rule 3 (global)
# 
echo "Rule 3 (global)"
# 
# 
# 
$IPTABLES -N Cid49FFB36316510.0
$IPTABLES -A INPUT  -s 192.168.1.0/24  -d 192.168.1.1  -m state --state NEW  -j Cid49FFB36316510.0 
$IPTABLES -A Cid49FFB36316510.0 -p icmp  -m icmp  --icmp-type any  -j ACCEPT 
$IPTABLES -A Cid49FFB36316510.0 -p tcp -m tcp  --dport 3128  -j ACCEPT 
# 
# Rule 4 (global)
# 
echo "Rule 4 (global)"
# 
# 
# 
$IPTABLES -A OUTPUT -p tcp -m tcp  -m multiport  -s 192.168.1.0/24  -d 192.168.1.10  --dports 143,110,25,139,53  -m state --state NEW  -j ACCEPT 
$IPTABLES -A OUTPUT -p udp -m udp  -m multiport  -s 192.168.1.0/24  -d 192.168.1.10  --dports 138,137,53  -m state --state NEW  -j ACCEPT 
$IPTABLES -A FORWARD -p tcp -m tcp  -m multiport  -s 192.168.1.0/24  -d 192.168.1.10  --dports 143,110,25,139,53  -m state --state NEW  -j ACCEPT 
$IPTABLES -A FORWARD -p udp -m udp  -m multiport  -s 192.168.1.0/24  -d 192.168.1.10  --dports 138,137,53  -m state --state NEW  -j ACCEPT 
# 
# Rule 5 (global)
# 
echo "Rule 5 (global)"
# 
# 
# 
$IPTABLES -A OUTPUT -p tcp -m tcp  -m multiport  -d 192.168.1.10  --dports 25,80,3389,110,21  -m state --state NEW  -j ACCEPT 
$IPTABLES -A FORWARD -p tcp -m tcp  -m multiport  -d 192.168.1.10  --dports 25,80,3389,110,21  -m state --state NEW  -j ACCEPT 
# 
# Rule 6 (global)
# 
echo "Rule 6 (global)"
# 
# 
# 
$IPTABLES -A INPUT -p tcp -m tcp  -s 192.168.1.0/24  --dport 53  -m state --state NEW  -j ACCEPT 
$IPTABLES -A INPUT -p udp -m udp  -s 192.168.1.0/24  --dport 53  -m state --state NEW  -j ACCEPT 
$IPTABLES -A OUTPUT -p tcp -m tcp  -s 192.168.1.0/24  --dport 53  -m state --state NEW  -j ACCEPT 
$IPTABLES -A OUTPUT -p udp -m udp  -s 192.168.1.0/24  --dport 53  -m state --state NEW  -j ACCEPT 
$IPTABLES -A FORWARD -p tcp -m tcp  -s 192.168.1.0/24  --dport 53  -m state --state NEW  -j ACCEPT 
$IPTABLES -A FORWARD -p udp -m udp  -s 192.168.1.0/24  --dport 53  -m state --state NEW  -j ACCEPT 
# 
# Rule 7 (global)
# 
echo "Rule 7 (global)"
# 
# 
# 
$IPTABLES -A INPUT  -s 192.168.1.10  -m state --state NEW  -j ACCEPT 
$IPTABLES -A INPUT  -s 192.168.1.108  -m state --state NEW  -j ACCEPT 
$IPTABLES -A FORWARD  -s 192.168.1.10  -m state --state NEW  -j ACCEPT 
$IPTABLES -A FORWARD  -s 192.168.1.108  -m state --state NEW  -j ACCEPT 
# 
# Rule 8 (global)
# 
echo "Rule 8 (global)"
# 
# 
# 
$IPTABLES -N RULE_8
$IPTABLES -A OUTPUT  -j RULE_8 
$IPTABLES -A INPUT  -j RULE_8 
$IPTABLES -A FORWARD  -j RULE_8 
$IPTABLES -A RULE_8  -j LOG  --log-level info --log-prefix "RULE 8 -- DENY "
$IPTABLES -A RULE_8  -j DROP 
#
#
echo 1 > /proc/sys/net/ipv4/ip_forward


#
# Epilog script
#


# End of epilog script
#

Ademas de ello se tiene como un script en el cual hay otras reglas, bueno la verdad no se donde
ingresar una nueva regla para poder habilitar el acceso a este puerto, en el router ya lo abri
pero en las iptables no, el puerto es el 1999.

Bueno y les cuento un poco de como es la arquitetura de la red, el servidor ubuntu con firewall
y squid, y un servidor de correos exchange, el servidor ubuntu tiene dos tarjetas interna
192.168.5.2, externa 192.168.1.1; el servidor de correos la ip 192.168.1.10
Gracias por delantado.
Jorge Antonio Chavez Miranda
sistemas arroba cbrabogados dot com dot pe