Forums:
Saludos soy nuevo en el mundo de Linux e configurado un servidor proxy con dos tarjetas de red en Centos 5 y SQUID 2.6.STABLE21 el cual navega bien sin problemas pero tengo pequeños problemas que no he podido solucionar espero que me puedan ayudar.
Bueno configure el proxy como transparente navega bien pero no me bloquea ninguna página pero si me permite visitar ftp, https ósea no tengo ningún problema en lo que es navegación, le coloco proxy al explorador y hay si me bloquea las paginas pero no me permite navegación ftp ni descarga ftp.
A continuación coloco mi squid y mi firewall
#WELCOME TO SQUID 2.6.STABLE21
#Recommended minimum configuration:
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
#reglas locales
acl redlocal src "/etc/.scripts/permitidos"
acl bloqueadas url_regex "/etc/squid/bloqueadas"
acl SSL_ports port 443 563
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
#http_access allow manager administrador
http_access allow manager localhost
http_access allow localhost
http_access allow redlocal !bloqueadas
http_access deny all
http_access deny manager
# Deny requests to unknown ports
http_access deny !Safe_ports
# Deny CONNECT to other than SSL ports
http_access deny CONNECT !SSL_ports
#Allow ICP queries from everyone
icp_access allow all
# Squid normally listens to port 3128
http_port 3128 transparent
visible_hostname server
#Default:
cache_mem 16 MB
#Default:
cache_dir ufs /var/spool/squid 2000 16 256
#Default:
ftp_passive on
#Suggested default:
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320
scrpt firewall
#!/bin/bash
OK="\033[1;0m [ \033[00;32mOK \033[1;0m]\033[0m"
ROUTE=/sbin/route
IPTABLES=/sbin/iptables
PERMITIDOS=/etc/.scripts/permitidos
# PARAMETROS RED EXTERNA
OUTERIF=eth0
OUTERIP=10.26.26.13/32
OUTERNET=10.26.26.0/24
# IP ETH0
IP_WAN=x.x.x.x/32
# RANGO DE IP PRIVADO
LAN_IP_RANGE=192.168.0.0/24
LAN_IP=192.168.0.1
LAN_BCAST_ADRESS=192.168.0.255
# IP PRIVADA ETH1
STATIC_IP1=x.x.x.x/32
PUBLIC_IP_RANGE=200.xx.xxx.xxx/30
PUBLIC_IP=200.xx.xxx.xxx
PUBLIC_BCAST_ADRESS=200.xx.xxx.xxx
LOCALHOST_IP=127.0.0.1/32
REMOTENET=0/0
PRIVPORTS="0:1023"
UNPRIVPORTS="1024:65535"
INET_IFACE=eth0
LAN_IFACE=eth1
# Eliminado Ruta por default
if netstat -nr 2>/dev/null |grep -q 169.254.0.0; then
$ROUTE delete -net 169.254.0.0/16 gw 0.0.0.0 dev eth1
echo -e "Descartando Rutas no Necesarias: $OK"
fi
echo -e "FIREWALL: Cargando modulos necesarios: $OK"
modprobe ipt_LOG
modprobe ipt_REJECT
modprobe ipt_MASQUERADE
modprobe ipt_owner
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_conntrack_irc
modprobe ip_nat_ftp
modprobe ip_nat_irc
echo -e "Activando Forwarding: $OK"
echo 1 > /proc/sys/net/ipv4/ip_forward
echo -e "Flushing de Reglas por Default: $OK"
$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -t mangle -F
$IPTABLES -X
$IPTABLES -t nat -X
$IPTABLES -t mangle -X
echo -e "Cargando Reglas Generales Para el FireWall: $OK"
# Politicas ICMP
CONFIG_DIR=/etc/rc.d/security/
# Enmascaramiento
PERMITIR_NAT_IPS=($(cat $PERMITIDOS | awk '{print $1}' | sed '/#/d'))
INDICE=0
NUM_IPS=${#PERMITIR_NAT_IPS[*]}
while [ $INDICE -lt $NUM_IPS ]; do
$IPTABLES -t nat -A POSTROUTING -o eth0 -s ${PERMITIR_NAT_IPS[$INDICE]} -j MASQUERADE
echo ${PERMITIR_NAT_IPS[$INDICE]}
let INDICE++
done
$IPTABLES -t nat -A POSTROUTING -o eth0 -s $IP_WAN -d 0/0 -j MASQUERADE
$IPTABLES -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
#port 80 al 3128
$IPTABLES -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
# ACEPTA CONEXIONES POR LOS PUERTOS FTP
$IPTABLES -A INPUT -i eth1 -p tcp -m tcp --dport 21 -m state --state NEW -j ACCEPT
#vincular ip con mac
ip neig replace 192.168.0.19 lladdr 00:1C:C0:7E:D3:C3 dev eth1 nud perm
# ===>> Fin de las Reglas <<=== #
de antemano les quedo muy agradecidos
hay varias formas de hacer lo
hay varias formas de hacer lo del mac+ip una es esta: con iptables es la mas segura
haber en tu 2da preg prueba colocando esta linea
ip neig replace 192.168.0.19 lladdr 00:1C:C0:7E:D3:C3 dev eth0 nud perm
claro cambias e incrementas las ips mas las macs a libre albedrio (no se si escribe asi pero se me ocurrio) }:)
sobre la 1era preg
[quote]Primer problema
Bueno configure el proxy como transparente navega bien pero no me bloquea ninguna página pero si me permite visitar ftp, https ósea no tengo ningún problema en lo que es navegación, le coloco proxy al explorador y hay si me bloquea las paginas pero no me permite navegación ftp ni descarga ftp.[/quote]
squid es un proxy q soporta trafico http nada q ver o algo de ftp - https
busca las ocpines de acl y denegacion en tu archivo squid.conf y con eso tienes listo todo..
gracias
gracias al colocar la ipneig ya pude solucionar y me ligo la ip con la mac hoy voy hacer mas pruebas pa ver como trabaja
Al parecer no está bien el
Al parecer no está bien el proxy transparente, ya que al configurar a mano en el navegador recién te bloquea, eso quiere decir que la regla iptables que debe redirigir el tráfico http al puerto del squid no está funcionando, y en lugar de ello está enmascarando el puerto 80, por eso no te bloquea.
Por cierto, el proxy transparente sólo sirve para http, el resto de protocolos salen enmascarados, incluso el https. Si lo configuras a mano en el navegador, entonces el tráfico https y ftp pasan por el squid.
Para lo del control ip mac lo haces con el comando ip neig.
Por cierto, está línea me parece que te está sobrando:
http_access allow manager redlocal !bloqueadas
Saludos,
antares
Gracias por lo de la línea
Gracias por lo de la línea demás en el squid se me había pasado por alto estaba probando jeje y te agradecería si me podrías dar una mano ya que la iptable para redireccionar del puerto 80 al 3128 es la que tengo en mi firewall y hasta el momento mi problema es que no bloquea el squid cuando esta transparente si tienes alguna sugerencia te agradecería me la hiciera gracias.
A y en versión SQUID 2.6.STABLE21 solo basta con colocar http_port 3128 transparent y en el firewall redireccionar bueno de antemano le agradezco
es correcto en squid
es correcto en squid unicamente agregas
http_port 3128 transparent
y listo ademas de las siguientes lineas en tu script de firewall
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to dir_ip_de_tu_proxy:3128
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth1 -j MASQUERADE
la 1era linea hace el forward de paquetes
la 2da hace q todo lo que venga x el trafico intern se lo redirecciona para q salgan x el pto q usa squid
la 3ra el enmascaramiento
aca hay otra forma para la 2da linea
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
gracias ya solucione el
gracias ya solucione el problema era la iptable que supuestamente redireccionaba al squid no estaba funcionando ahora si coloque la iptable que me dio y hay si ya me bloquea paginas gracias por todo igual el script del firewall y el squid estan corregidos gracias
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
no problema !
no problema ! }:)
Estimado no puedo q squid me bloquee las paginas
Amigos Ecualug por favor ayudenmen con este incoveniente, he levantado el servicio de squid, y me indica con reload y rstart que el servicio esta activo pero no consigo que bloquee ningun sitio.
Por favor helpme, les detallo el archivo de configuracion...
#
# Recommended minimum configuration:
#
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl localhost src ::1/128
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
acl to_localhost dst ::1/128
# Example rule allowing access from your local networks.
# Adapt to list your (internal) IP networks from where browsing
# should be allowed
acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl localnet src fc00::/7 # RFC 4193 local private network range
acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
#
# Recommended minimum Access Permission configuration:
#
# Only allow cachemgr access from localhost
http_access allow manager localhost
http_access deny manager
# Deny requests to certain unsafe ports
http_access deny !Safe_ports
# Deny CONNECT to other than secure SSL ports
http_access deny CONNECT !SSL_ports
# We strongly recommend the following be uncommented to protect innocent
# web applications running on the proxy server who think the only
# one who can access services on "localhost" is a local user
#http_access deny to_localhost
#
cache_mem 64 MB
visible_hostname mailsrvr
http_port 192.168.8.1:3128 transparent
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
#
# Example rule allowing access from your local networks.
# Adapt localnet in the ACL section to list your (internal) IP networks
# from where browsing should be allowed
http_access allow localnet
http_access allow localhost
acl admin src "/etc/squid/total"
http_access allow admin
acl https port 443
http_access allow https
acl noway url_regex "/etc/squid/prohibido"
http_access deny noway
acl red_lan src "/etc/squid/otros"
http_access allow red_lan
# And finally deny all other access to this proxy
http_access deny all
# Squid normally listens to port 3128
#http_port 192.168.8.1:3128
# We recommend you to use at least the following line.
hierarchy_stoplist cgi-bin ?
# Uncomment and adjust the following to add a disk cache directory.
#cache_dir ufs /var/spool/squid 100 16 256
cache_dir ufs /var/spool/squid 1024 16 256
# Leave coredumps in the first cache dir
coredump_dir /var/spool/squid
# Add any of your own refresh_pattern entries above these.
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320
prueba con: http_access allow
prueba con:
http_access allow red_lan !noway
bye
;)