[CentOS-es] script reglas iptables - proxy transparente - drop default y negacion p2p

paulcriollo en gmail.com paulcriollo en gmail.com
Mie Abr 18 16:25:34 UTC 2007


Saludos...
Amigos tengo un enlace  ADSL 1200/256kps, en un router xyzel que tiene dhcp
con mis pcs clientes osea una red 192.168.1.0/24, pero por problemas de
saturación y el odiado ares, mi ancho de banda anda de malas muy bajo...
entonces instale el centos 4.4 en un equipo, dos tarjetas de red eth0
192.168.1.101 conectada al router que te saca a internet y la eth1
192.168.10.1 directa a mi switch de mi lan, configure el squid y trabaja ok,
como proxy normal, pero no solo quiero eso.
La idea es tener un proxy transparente y tener la politica drop por defecto,
para asi optimizar mi banda y bloquear las redes p2p, busca y busca en
internet de aporte en aporte, pude tener este script, ya corre bien el
script en el centos, pero las pcs no acceden a internet se muestra este
error:

ERROR The requested URL could not be retrieved
------------------------------

While trying to retrieve the URL: / <http://www.google.com.pe/>

The following error was encountered:

   - * Invalid URL *

 Some aspect of the requested URL is incorrect. Possible problems:

   - Missing or incorrect access protocol (should be `http://'' or
   similar)
   - Missing hostname
   - Illegal double-escape in the URL-Path
   - Illegal character in hostname; underscores are not allowed

Your cache administrator is root.
------------------------------
 Generated Wed, 18 Apr 2007 04:31:31 GMT by
server.infonet.polcrito(squid/2.5.STABLE6)

########################################
############# SCRIPT DE REGLAS

echo "DETENEMOS EL SERVICIO DE FIREWALL ..."
/sbin/service iptables stop

echo "DECLARAMOS LA VARIABLES INICIAL DEL ENTORNO ..."
iptables="/sbin/iptables"

echo "COMENZAMOS BORRANDO TODAS LAS REGLAS ACTUALES ..."
$iptables -F
$iptables -t nat -F
##$iptables -X
##$iptables -Z

echo "CARGAMOS LOS MODULOS PRINCIPALES DEL KERNEL ..."
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_tables
/sbin/modprobe iptable_filter
/sbin/modprobe ip_nat_irc
/sbin/modprobe ip_conntrack_irc
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp
/sbin/modprobe iptable_nat

echo " APLICANDO REGLAS DE SEGURIDAD ELEMENTALES ..."
# Quitamos los pings.
/bin/echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
# No respondemos a los broadcast.
/bin/echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
# Otros
/bin/echo 1 > /proc/sys/net/ipv4/tcp_syncookies
/bin/echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
# El Ip Forwarding
/bin/echo 1 > /proc/sys/net/ipv4/ip_forward
# Para usuarios con IP dinamica
/bin/echo 1 > /proc/sys/net/ipv4/ip_dynaddr

echo "Estableciendo Politica por Defecto (DENEGAR)..."
$iptables -P INPUT DROP
$iptables -P OUTPUT DROP
$iptables -P FORWARD DROP

echo " COMENZAMOS CON LAS REGLAS ... "
# Permitimos la comunicación con el servidores dns
$iptables -A INPUT -p UDP --dport 53 -j ACCEPT
$iptables -A INPUT -p TCP --dport 53 -j ACCEPT

# Permitimos todo el trafico de la LAN
$iptables -A INPUT -s 192.168.10.0/24 -j ACCEPT

# Habilito el NAT
$iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -d 0.0.0.0/0 -j
MASQUERADE

# Dejo pasar los paquetes ICMP
$iptables -A INPUT -i eth0 -p ICMP -j ACCEPT

# Acepto paquetes de conexiones ya establecidas
$iptables -A INPUT -p TCP -m state --state RELATED -j ACCEPT

# Rechazamos paquetes de conexiones nuevas
$iptables -A INPUT -i eth0 -m state --state NEW,INVALID -j DROP

# Rechazamos paquetes de forwarding de conexiones no establecidas
$iptables -A FORWARD -i eth0 -m state --state NEW,INVALID -j DROP

echo "Tener abierto el localhost sin limitaciones..."
$iptables -A INPUT -i lo -j ACCEPT
$iptables -A OUTPUT -o lo -j ACCEPT

echo "A la PC de Polcrito le dejamos todo...."
$iptables -A INPUT -s 192.168.1.7 -j ACCEPT
$iptables -A OUTPUT -d 192.168.1.7 -j ACCEPT

# Permitimos la consulta a un primer DNS
$iptables -A INPUT -s 200.48.225.130 -p udp -m udp --sport 53 -j ACCEPT
$iptables -A OUTPUT -d 200.48.225.130 -p udp -m udp --dport 53 -j ACCEPT
# Permitimos la consulta a un segundo DNS
$iptables -A INPUT -s 200.48.225.146 -p udp -m udp --sport 53 -j ACCEPT
$iptables -A OUTPUT -d 200.48.225.146 -p udp -m udp --dport 53 -j ACCEPT

echo " Habilitamos el trafico sobre la interface eth1(LAN Interna)"
$iptables -A FORWARD -i eth1 -j ACCEPT
$iptables -A FORWARD -s 192.168.10.0/24 -p tcp --dport 80 -j ACCEPT
$iptables -A INPUT -i eth1 -j ACCEPT
$iptables -A OUTPUT -o eth1 -j ACCEPT
$iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

echo " Redireccionamos las peticiones de www hacia Squid Proxy"
$iptables -t nat -A PREROUTING -i eth1 -s 192.168.10.0/24 -p tcp --dport 80
-j REDIRECT --to-port 3128

echo " Lo que salga al Exterior lo hara a traves de la IP 192.168.1.101"
$iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth0 -j SNAT
--to-source 192.168.1.101

echo " Bloqueando conexiones hacia ICMP no validas"
echo ""
$iptables -I INPUT -p icmp --icmp-type redirect -j DROP
$iptables -I INPUT -p icmp --icmp-type router-advertisement -j DROP
$iptables -I INPUT -p icmp --icmp-type router-solicitation -j DROP
$iptables -I INPUT -p icmp --icmp-type address-mask-request -j DROP
$iptables -I INPUT -p icmp --icmp-type address-mask-reply -j DROP

echo " Cerrando los Puertos restantes del Firewall."
$iptables -A INPUT -i eth0 -p tcp --dport 0:65535 -j DROP
$iptables -A INPUT -i eth0 -p udp --dport 0:65535 -j DROP

echo " Terminando la Configuracion del Firewall."

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

si fueran tan amable de aclararme algunas dudas, que le falta a mi script,
que esta de mas, si el orden esta inadecuado, y si con esto ya no entraran
las redes p2p, porque hace mucho tiempo en otra red probe el layer7
compilando el kernelo, pero este se bajaba la memoria de la pc y me colocaba
lento el acceso, por eso ya no lo quiero usar, ademas si con la solucion de
este script voy a poder enviar y recibir archivos yt conexion de audio y
camara web en el messenger...

espero me ayuden..


##################
####  Paúl Criollo Ortíz
### Móvil: 073-9612277
###################
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://lists.centos.org/pipermail/centos-es/attachments/20070418/be0a07fd/attachment.htm


Más información sobre la lista de distribución CentOS-es