Bienvenido(a) a Alcance Libre 05/09/2025, 22:10
|
![]() |
Índice del foro > Todo acerca de Linux > Seguridad |
![]() ![]() |
![]() |
tuxmax |
|
|||||||
![]() ![]() ![]() ![]() ![]() Nuevo Estado: desconectado ![]() Identificado: 27/07/12 Mensajes: 2 |
Estimados:
Estoy configurando un servidor con squid + iptables en modo transparente (por lo que he leído esto se usa para no pasar los parámetros del proxy en cada Pc cliente). pero el problema que tengo es que mis clientes no navegan por internet y debo configurar el proxy en cada pc para que estos puedan navegar por internet, aplique las reglas en iptables para redireccionar pero no a funcionado, es por eso que solicito de su ayuda para areglar este problema, estas son mis configuraciones de iptables y squid 3.1.10 Nota: las reglas de iptables son las que he recopilado de varias paginas con información de iptables la configuración de red de mis clientes es: IP: 192.168.1.x netmask: 255.255.255.0 Puerta de enlace: 192.168.1.1 DNSPrimario: 192.168.1.1 ========================================= eth0 = internet ==> 200.27.4.7 eth1 = Lan ==> 192.168.1.1 =================== PHP Formatted Code ## FLUSH de reglasiptables -F iptables -X iptables -Z iptables -t nat -F ## Establecemos politica por defecto: DROP iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP #### Reglas para encontrar puertos dinamicos de escucha FTP #### modprobe ip_conntrack modprobe ip_conntrack_ftp modprobe ip_nat_ftp # Ese peazo de bit que hay que habilitar #echo 1 > /proc/sys/net/ipv4/ip_forward # Que me haga log de todo el forward /sbin/iptables -A FORWARD -j LOG #/sbin/iptables -A INPUT -j LOG #/sbin/iptables -A OUTPUT -j LOG # Reenvío de paquetes desde una interfaz de red local (eth1) hacia una interfaz de red pública (eth0): #/sbin/iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT ## He aqui el forward para la LAN, una regla mágica /sbin/iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to 192.168.1.1 # Proxy Transparent: peticiones al puerto 80 redirigir al SQUID(3128) /sbin/iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT --to 192.168.1.1:3128 /sbin/iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128 ## Empezamos a filtrar? no! empezamos a abrir! porque ahora esta TODO denegado. ## Debemos decir de manera explicita qué es lo que queremos abrir # Operar en localhost sin limitaciones /sbin/iptables -A INPUT -i lo -j ACCEPT /sbin/iptables -A OUTPUT -o lo -j ACCEPT /sbin/iptables -A INPUT -i eth1 -j ACCEPT /sbin/iptables -A OUTPUT -o eth1 -j ACCEPT # Permitir ping hacia fuera, desde la propia maquina /sbin/iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT && echo "Aceptamos ICMP request hacia fuera" /sbin/iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT && echo "Aceptamos ICMP reply hacia dentro" # Permitir ping hacia fuera, desde la red interna /sbin/iptables -A FORWARD -i eth1 -p icmp --icmp-type echo-request -j ACCEPT && echo "Aceptamos ICMP request a todos" /sbin/iptables -A FORWARD -i eth0 -p icmp --icmp-type echo-reply -j ACCEPT && echo "Aceptamos ICMP reply a todos" # Aceptar reenviar los paquetes que son parte de conexiones existentes (ESTABLISHED) o relacionadas de tráfico entrante desde la interfaz eth1 para tráfico saliente por la interfaz eth0: /sbin/iptables -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT # Permitir paquetes en el propio muro cortafuegos para tráfico saliente a través de la interfaz eth0 que son parte de conexiones existentes o relacionadas: /sbin/iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT # Permitimos que la maquina pueda salir a la web /sbin/iptables -A INPUT -p tcp -m tcp --sport 80 -m state --state RELATED,ESTABLISHED -j ACCEPT /sbin/iptables -A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT # Si se desea permitir conexiones desde clientes Open SSH remotos /sbin/iptables -A INPUT -p tcp -m tcp --sport 22 -j ACCEPT /sbin/iptables -A OUTPUT -p tcp -m tcp --dport 22 -j ACCEPT /sbin/iptables -A INPUT -p tcp --dport 22 --tcp-flags ALL SYN -j LOG # Ya tambien a webs seguras /sbin/iptables -A INPUT -p tcp -m tcp --sport 443 -m state --state RELATED,ESTABLISHED -j ACCEPT /sbin/iptables -A OUTPUT -p tcp -m tcp --dport 443 -j ACCEPT # Aceptar (ACCEPT) todos los paquetes SYN (--syn) del protocolo TCP (-p tcp) para los puertos (--destination-port) de los protocolos SMTP (25), HTTP(80), HTTPS (443) y SSH (22): /sbin/iptables -A INPUT -p tcp -s 0/0 -d 0/0 --destination-port 25 --syn -j ACCEPT /sbin/iptables -A INPUT -p tcp -s 0/0 -d 0/0 --destination-port 80 --syn -j ACCEPT /sbin/iptables -A INPUT -p tcp -s 0/0 -d 0/0 --destination-port 443 --syn -j ACCEPT /sbin/iptables -A INPUT -p tcp -s 0/0 -d 0/0 --destination-port 22 --syn -j ACCEPT ## SALIDA FTP - Para que el servidor se pueda conectar a FTPs /sbin/iptables -A INPUT -i eth0 -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT /sbin/iptables -A OUTPUT -o eth0 -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT # ftp activo /sbin/iptables -A INPUT -i eth0 -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT /sbin/iptables -A OUTPUT -o eth0 -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT # ftp pasivo /sbin/iptables -A INPUT -i eth0 -p tcp --sport 1024:65535 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT /sbin/iptables -A OUTPUT -o eth0 -p tcp --sport 1024:65535 --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT # Permitimos la consulta a un primer DNS /sbin/iptables -A INPUT -s 200.29.4.65 -p udp -m udp --sport 53 -j ACCEPT /sbin/iptables -A OUTPUT -d 200.29.4.65 -p udp -m udp --dport 53 -j ACCEPT # Permitimos la consulta a un segundo DNS /sbin/iptables -A INPUT -s 200.29.4.66 -p udp -m udp --sport 53 -j ACCEPT /sbin/iptables -A OUTPUT -d 200.29.4.66 -p udp -m udp --dport 53 -j ACCEPT # A su vez no se desea que el servidor sea victima de ataques de fuerza bruta, se ingresa la siguiente sintaxis, De esta manera se rechazan las conexiones en la tarjeta publica del servidor (eth0) para el servicio SSH después de 2 intentos de conexión en un intervalo de 40 segundos. iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --set iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --update --seconds 40 --hitcount 2 -j DROP ## Telnet solo Dejar salir hacia fuera, desde red interna y la propia maquina /sbin/iptables -A FORWARD -i eth1 -p tcp --dport 23 -s 192.168.1.0/24 -j ACCEPT && echo "Aceptamos telnet a traves" /sbin/iptables -A OUTPUT -p tcp --dport 23 -j ACCEPT && echo "Aceptamos Telnet hacia fuera" # Dejar entrar paquetes de las conexiones establecidas, hacia la red interna y la propia maquina /sbin/iptables -A FORWARD -i eth0 -p tcp -m tcp --sport 23 -m state --state 'RELATED' --state 'ESTABLISHED' -j ACCEPT /sbin/iptables -A INPUT -p tcp -m tcp --sport 23 -m state --state 'RELATED' --state 'ESTABLISHED' -j ACCEPT # También se pueden denegar algunos puertos élites de crackers por medio de la siguiente sintaxis; /sbin/iptables -A OUTPUT -o eth1 -p tcp --dport 31337 --sport 31337 -j DROP /sbin/iptables -A FORWARD -o eth1 -p tcp --dport 31337 --sport 31337 -j DROP /sbin/iptables -A OUTPUT -o eth1 -p tcp --dport 7100 --sport 31337 -j DROP /sbin/iptables -A FORWARD -o eth1 -p tcp --dport 7100 --sport 31337 -j DROP =========================================================================== SQUID PHP Formatted Code ## Recommended minimum configuration: # visible_hostname proxy acl manager proto cache_object acl localhost src 127.0.0.1/32 ::1 acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1 acl permitidos src "/etc/squid/listas/permitidos" acl limitados src "/etc/squid/listas/limitados" acl porno url_regex "/etc/squid/listas/porno" acl dominios-denegados dstdomain "/etc/squid/listas/dominios" acl extensiones urlpath_regex "/etc/squid/listas/extensiones" # 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 acl FTP proto FTP always_direct allow FTP # 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 # # 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 http_access allow permitidos http_access allow limitados !porno !dominios-denegados !extensiones # And finally deny all other access to this proxy http_access deny all # Squid normally listens to port 3128 http_port 192.168.1.1:3128 intercept # 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 5120 16 256 # Leave coredumps in the first cache dir coredump_dir /var/spool/squid ftp_passive on ftp_sanitycheck on # 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 |
|||||||
|
||||||||
Joel Barrios Dueñas |
|
|||||||
![]() ![]() ![]() ![]() ![]() Admin ![]() Estado: desconectado ![]() Identificado: 17/02/07 Mensajes: 1761 Localización:Mexico |
Gracias a las redes sociales y otros servicios que trabajan por HTTPS, hoy en día resulta poco práctico configurar proxies en modo transparente precisamente porque HTTPS no puede ser puesto en modo transparente a través de Squid.
Para automatizar la configuración de clientes, dale una leída al siguiente manual: http://www.alcancelibre.org/staticpages/index.php/como-wpad |
|||||||
|
||||||||
tuxmax |
|
|||||||
![]() ![]() ![]() ![]() ![]() Nuevo Estado: desconectado ![]() Identificado: 27/07/12 Mensajes: 2 |
Muchas gracias,
Por aclarar mi duda leyendo el link me quedo mas claro el tema del proxy transparente. y para evitar la fatiga de la configuracion de los clientes aproveche el controlador de dominio de la empresa para pasarles la configuracion del proxy a los clientes por medio de una politica de dominio, asi cuando los usuarios inician sus sesiones el DC les da la configuracion del proxy. por si les interesa esto lo pueden logran en: -- menu start ==> Programs ==> administrative tools ==> Group policy Management -- buscar domain policy -- habilitar user configuration, selecionar Windows Setting, luego internet explorer maintenance, conection/proxy setting o también Menu Inicio == ejecutar gpedit.msc y seguie la misma ruta anterior. espero a alguien mas le pueda servir esto. Saludos, y muchas gracias |
|||||||
|
||||||||
Contenido generado en: 0.17 segundos |
![]() ![]() |
Todas las horas son CST. Hora actual 10:10 . |
|
|