Usando ACL podras definir permisos especificos a cada uruario, grupo y tambien crear máscaras por defecto man setfacl man getfacl
con setfacl defines permisos, con getfacl lees los permisos definidos, el man está bien claro con ejemplos prácticos. setfacl -R -m u:user_especifico:r-x nombre_carpeta_publicada
aqui definiste permisos de lectura al user_especifico en la carpeta _publicada.
Asuntos del día:
1. Re: iptables + squid proxy transparente (César CRUZ ARRUNATEGUI) 2. Re: iptables + squid proxy transparente (Maximo Monsalvo) 3. Re: iptables + squid proxy transparente (Ramón Macías Zamora) 4. Servidor FTP para usuarios registrados y anonimos (Fidel Dominguez-Valero)
----------------------------------------------------------------------
Message: 1 Date: Tue, 5 Apr 2011 16:23:15 -0500 (PET) From: César CRUZ ARRUNATEGUI ccruz@mail.ipd.gob.pe Subject: Re: [CentOS-es] iptables + squid proxy transparente To: centos-es@centos.org Message-ID: 9561281.20091302038595501.JavaMail.root@mail.ipd.gob.pe Content-Type: text/plain; charset=utf-8
de ser eso, el problema esta a la hora de definir tu red, debe ser 10.0.0.0/24 y no como lo estas haciendo.
César D. Cruz Arrunátegui
----- Mensaje original ----- De: "Mario Villela Larraza" mario.villelalarraza@gmail.com Para: centos-es@centos.org Enviados: Lunes, 4 de Abril 2011 21:44:41 GMT -05:00 Colombia Asunto: Re: [CentOS-es] iptables + squid proxy transparente
al intentar reinisiar mi servicio squid ejeccuta este error pero la verdad no se que sea
2011/04/04 21:38:45| squid.conf line 757: http_access rules 2011/04/04 21:38:45| aclParseAccessLine: expecting 'allow' or 'deny', got 'rules'. 2011/04/04 21:38:45| aclParseIpData: WARNING: Netmask masks away part of the specified IP in '10.0.0.10-10.0.0.100/255.255.255.0'
------------------------------
El 4 de abril de 2011 21:10, Mario Villela Larraza < mario.villelalarraza@gmail.com> escribió:
si así esta aun así no hace el redireccionamiento entre eth1 y eth2 y la maquina cliente que tengo no obtiene navegación a internet ago ping a las dos tarjetas desde mi maquina cliente y responden las dos interfaces el servidor si tiene navegación sin problemas, la verdad ya no se ni por donde atacar a este servidor.
"# Squid normally listens to port 3128 http_port 3128 transparent"
El 4 de abril de 2011 20:59, Ramón Macías Zamora < ramon.macias@raykasolutions.com> escribió:
No veo nada raro,
en /etc/squid/squid.conf debe estar puesto:
http_port 3128 transparent
la palabra *transparent* es imprescindible
Ramón Macías Zamora Tecnología, Investigación y Desarrollo Guayaquil - Ecuador msn: ramon_macias@hotmail.com skype: ramon_macias UserLinux# 180926 (http://counter.li.org) Cel: 593-8-0192238 Tel: 593 4 6044566
http://www.raykasolutions.com/
WEB SITES, HOSTINGS, DOMINIOS, MANTENIMIENTO DE EQUIPOS, REDES, SERVIDORES LINUX, SOPORTE.
El 4 de abril de 2011 20:06, Mario Villela Larraza < mario.villelalarraza@gmail.com> escribió:
mmmm supongo que si ha de ser una restricción, pero bueno lo pego aquí para mas rápido jejeje
#!/bin/bash # # # Para guardar las reglas #+ iptables-save > reglas #+ iptables-restore < reglas #
# Miramos si tenemos un parametro en linea de comando if [ -n "$1" ] && [ "$1" = "q" ] then QUIET="1" else QUIET="0" fi
# Registramos el inicio del firewall #FECHA=$(date +"%C%y-%m-%d %H:%M") #echo $FECHA #/usr/bin/logger -p kern.notice -t NETFILTER \ # "====== Iniciado Cortafuegos: $FECHA ========="
# PARAMETRIZACION DEL SCRIPT ########################################## ### Definimos constantes para usar en el ###+ script if [ $QUIET = "0" ]; then echo " Cargando parametros..." fi
# Binario de iptables IPTABLES=/sbin/iptables
# INTERFACES # eth1 - conectado a internet con IP FIJA EXT_IF=eth1 EXT_IP=192.168.2.10 # eth2 - conectado a LAN LAN_IF=eth2 LAN_IP=10.0.0.1 LAN_RED=10.0.0.0/24 # lo - interfaz de loopback LOO_RED=127.0.0.0/8 # cualquier red ANY_RED=0.0.0.0/0
# MAQUINAS INTERNAS IP_SERVIDOR_FTP=10.0.0.12 IP_SERVIDOR_WEB=10.0.0.13
if [ $QUIET = "0" ]; then echo " Cargando modulos..." fi ########################################## ### Nos aseguramos que tenemos cargados ###+ los modulos necesarios modprobe ip_conntrack_irc modprobe ip_conntrack_ftp modprobe ip_nat_irc modprobe ip_nat_ftp
if [ $QUIET = "0" ]; then echo " Limpiando FW..." fi ########################################## ### Limpiamos la configuracion existente
# Limpiamos (flush) las reglas $IPTABLES -F # Borramos 'cadenas' de usuario $IPTABLES -X # Ponemos a cero paquetes y contadores $IPTABLES -Z # Limpiamos las reglas de NAT $IPTABLES -t nat -F # Borramos 'cadenas' de usuario de NAT $IPTABLES -t nat -X
if [ $QUIET = "0" ]; then echo " Estableciendo politicas..." fi ########################################## ### Establecemos las politicas por omision ###+ de las 'cadenas'
# Por omision descartamos los paquetes $IPTABLES -P INPUT ACCEPT $IPTABLES -P OUTPUT ACCEPT $IPTABLES -P FORWARD ACCEPT # PREROUTING - NAT sobre la IP destino: normalmente desde inet hacia LAN # POSTROUTING - NAT sobre la IP origen: normalmente desde LAN hacia inet $IPTABLES -t nat -P PREROUTING ACCEPT $IPTABLES -t nat -P POSTROUTING ACCEPT
# Relajamos la politica de salida #+ Dejamos salir paquetes de LAN_IP por LAN_IF $IPTABLES -A OUTPUT -o $LAN_IF -s $LAN_IP -j ACCEPT #+ Dejamos salir paquetes de EXT_IP por EXT_IF $IPTABLES -A OUTPUT -o $EXT_IF -s $EXT_IP -j ACCEPT
if [ $QUIET = "0" ]; then echo " -> Denegacion de redes invalidas..." fi ########################################## # No admitimos desde el exterior redes locales (RFC 1918) #$IPTABLES -t nat -A PREROUTING -i $EXT_IF -s 192.168.0.0/16 -j DROP #$IPTABLES -t nat -A PREROUTING -i $EXT_IF -s 10.0.0.0/8 -j DROP #$IPTABLES -t nat -A PREROUTING -i $EXT_IF -s 172.16.0.0/12 -j DROP #$IPTABLES -t nat -A PREROUTING -i $EXT_IF -s 224.0.0.0/4 -j DROP #$IPTABLES -t nat -A PREROUTING -i $EXT_IF -s 240.0.0.0/5 -j DROP #$IPTABLES -t nat -A PREROUTING -i $EXT_IF -s $LOO_RED -j DROP #$IPTABLES -t nat -A PREROUTING -i $EXT_IF -s 0.0.0.0/8 -j DROP #$IPTABLES -t nat -A PREROUTING -i $EXT_IF -s 169.254.0.0/16 -j DROP #$IPTABLES -t nat -A PREROUTING -i $EXT_IF -s 255.255.255.255 -j DROP #$IPTABLES -t nat -A PREROUTING -i $EXT_IF -s $EXT_IP -j DROP # Desde el interior solo admitimos nuestra red LAN $IPTABLES -t nat -A PREROUTING -i $LAN_IF -s ! $LAN_RED -j ACCEPT
if [ $QUIET = "0" ]; then echo " -> Denegacion de broadcast de NetBIOS..." fi ########################################## # Bloquear paquetes broadcast de NetBios salientes iptables -A FORWARD -p tcp --sport 137:139 -o $EXT_IF -j DROP iptables -A FORWARD -p udp --sport 137:139 -o $EXT_IF -j DROP iptables -A OUTPUT -p tcp --sport 137:139 -o $EXT_IF -j DROP iptables -A OUTPUT -p udp --sport 137:139 -o $EXT_IF -j DROP
if [ $QUIET = "0" ]; then echo " Activando NAT..." fi ########################################## # Activamos el bit de forward echo 1 > /proc/sys/net/ipv4/ip_forward # Enmascaramos la salida de la LAN $IPTABLES -t nat -A POSTROUTING -s $LAN_RED -o $EXT_IF -j MASQUERADE
if [ $QUIET = "0" ]; then echo " Accesos a la maquina local permitidos..." fi ########################################## ### Permitimos ciertos accesos a la maquina
if [ $QUIET = "0" ]; then echo " -> loopback..." fi # Permitimos todas las conexiones del interfaz loopback $IPTABLES -A INPUT -i lo -j ACCEPT $IPTABLES -A OUTPUT -o lo -j ACCEPT $IPTABLES -A INPUT -i lo -s $LOO_RED -d $LOO_RED -j ACCEPT $IPTABLES -A OUTPUT -o lo -s $LOO_RED -d $LOO_RED -j ACCEPT # Permitimos el PostEnrutado de paquetes enviados localmente $IPTABLES -t nat -A POSTROUTING -o lo -s $LOO_RED -j ACCEPT
if [ $QUIET = "0" ]; then echo " -> LAN..." fi # Damos acceso desde la red local $IPTABLES -A INPUT -s $LAN_RED -i $LAN_IF -j ACCEPT $IPTABLES -A OUTPUT -d $LAN_RED -o $LAN_IF -j ACCEPT
if [ $QUIET = "0" ]; then echo " -> DNS..." fi # Aceptamos conexiones DNS $IPTABLES -A INPUT -s $ANY_RED -i $EXT_IF -p udp -m udp --sport 53 --dport 1024:65535 -j ACCEPT $IPTABLES -A OUTPUT -d $ANY_RED -o $EXT_IF -p udp -m udp --dport 53 --sport 1024:65535 -j ACCEPT
if [ $QUIET = "0" ]; then echo " -> ntpd..." fi # Aceptamos conexiones ntpd $IPTABLES -A INPUT -p udp -m udp --dport 123 -i $EXT_IF -s $ANY_RED -j ACCEPT $IPTABLES -A OUTPUT -p udp -m udp --sport 123 -j ACCEPT
if [ $QUIET = "0" ]; then echo " -> icmp..." fi # Permitimos paquetes ICMP (ping, traceroute...) #+ con limites para evitar ataques de DoS # Aceptamos ping y pong $IPTABLES -A INPUT -p icmp --icmp-type echo-request -m limit --limit 2/s -j ACCEPT $IPTABLES -A OUTPUT -p icmp --icmp-type echo-request -m limit --limit 2/s -j ACCEPT $IPTABLES -A INPUT -p icmp --icmp-type echo-reply -m limit --limit 2/s -j ACCEPT $IPTABLES -A OUTPUT -p icmp --icmp-type echo-reply -m limit --limit 2/s -j ACCEPT # Aceptamos redirecciones $IPTABLES -A INPUT -p icmp --icmp-type redirect -m limit --limit 2/s -j ACCEPT $IPTABLES -A OUTPUT -p icmp --icmp-type redirect -m limit --limit 2/s -j ACCEPT # Aceptamos tiempo excedido $IPTABLES -A INPUT -p icmp --icmp-type time-exceeded -m limit --limit 2/s -j ACCEPT $IPTABLES -A OUTPUT -p icmp --icmp-type time-exceeded -m limit --limit 2/s -j ACCEPT # Aceptamos destino inalcanzable $IPTABLES -A INPUT -p icmp --icmp-type destination-unreachable -m limit --limit 2/s -j ACCEPT $IPTABLES -A OUTPUT -p icmp --icmp-type destination-unreachable -m limit --limit 2/s -j ACCEPT
if [ $QUIET = "0" ]; then echo " -> ssh..." fi
# Abrimos el puerto xxxx para ssh #$IPTABLES -A INPUT -p tcp -i $EXT_IF -s $ANY_RED -m tcp --dport 22 --sport 1024:65535 -j ACCEPT $IPTABLES -A INPUT -p tcp -s $ANY_RED -m tcp --dport 22 --sport 1024:65535 -m state --state NEW -j LOG --log-prefix "[FW -SSH] " $IPTABLES -A INPUT -p tcp -s $ANY_RED -m tcp --dport 22 --sport 1024:65535 -j ACCEPT # ...y conexiones salientes relacionadas $IPTABLES -A OUTPUT -p tcp -m tcp --sport 22 -m state --state RELATED,ESTABLISHED -j ACCEPT
if [ $QUIET = "0" ]; then echo " Redirecciones..." fi
########################################## ### Generamos redireccionamientos ###+ transparentes para el resto de maquinas
if [ $QUIET = "0" ]; then echo " -> Proxy web transparente (Squid)..." fi
#+ Con la redireccion activa (primera linea) #+ no se llega a la segunda linea #+ Para bloquear todo acceso a la web comentar #+ solo la primera linea #+ Para anular el proxy comentar las dos reglas $IPTABLES -t nat -A PREROUTING -i $LAN_IF -s $LAN_RED -p tcp --dport 80 -j REDIRECT --to-port 3128 $IPTABLES -A FORWARD -i $LAN_IF -p tcp --dport 80 -j DROP
#if [ $QUIET = "0" ]; then # echo " -> Filtro de correo (P3Scan)..." #fi #+ Con la redireccion activa (primera linea) #+ no se llega a la segunda linea #+ Para bloquear todo acceso a POP comentar #+ solo la primera linea #+ Para anular el filtrado comentar las dos reglas #$IPTABLES -t nat -A PREROUTING -i $LAN_IF -s $LAN_RED -p tcp --dport 110 -j REDIRECT --to-port 8110 #$IPTABLES -A FORWARD -i $LAN_IF -p tcp --dport 110 -j DROP ###$IPTABLES -t nat -A OUTPUT -p tcp --dport 110 -m owner --owner-id p3scan -j ACCEPT ###$IPTABLES -t nat -A OUTPUT -p tcp --dport 110 -j REDIRECT --to-port 8110
if [ $QUIET = "0" ]; then echo " -> DNAT (21 y 20)..." fi # Redirigimos "$EXT_IP":2220-1 a "$IP_SERVIDOR_FTP":20-1 ###$IPTABLES -t nat -A PREROUTING -i $EXT_IF -d $EXT_IP -p tcp --dport 21 -j LOG --log-prefix "[FW - FTP] " $IPTABLES -t nat -A PREROUTING -i $EXT_IF -d $EXT_IP -p tcp --dport 20 -j DNAT --to "$IP_SERVIDOR_FTP":20 $IPTABLES -t nat -A PREROUTING -i $EXT_IF -d $EXT_IP -p tcp --dport 21 -j DNAT --to "$IP_SERVIDOR_FTP":21
# SERVIDOR WEB NACHO $IPTABLES -t nat -A PREROUTING -i $EXT_IF -d $EXT_IP -p tcp --dport 80 -j DNAT --to "$IP_SERVIDOR_WEB":80 #$IPTABLES -t nat -A PREROUTING -i $EXT_IF -d $EXT_IP -p tcp --dport 80 -j DNAT --to "$IP_SERVIDOR_WEB":80
# ...y conexiones salientes relacionadas (ftp pasivo) $IPTABLES -t nat -A PREROUTING -m state --state RELATED,ESTABLISHED -j ACCEPT # Permitimos postruteos a "$IP_SERVIDOR_FTP":20-1 $IPTABLES -t nat -A POSTROUTING -o $LAN_IF -d $IP_SERVIDOR_FTP -p tcp --dport 20 -j ACCEPT $IPTABLES -t nat -A POSTROUTING -o $LAN_IF -d $IP_SERVIDOR_FTP -p tcp --dport 21 -j ACCEPT # Permitimos reenvios desde el exterior a "$IP_SERVIDOR_FTP":20-1 $IPTABLES -A FORWARD -i $EXT_IF -d $IP_SERVIDOR_FTP -p tcp --dport 20 -j ACCEPT $IPTABLES -A FORWARD -i $EXT_IF -d $IP_SERVIDOR_FTP -p tcp --dport 21 -j ACCEPT
if [ $QUIET = "0" ]; then echo " Reenvios..." fi ########################################## ### Aceptamos algunos reenvios
if [ $QUIET = "0" ]; then echo " -> icmp..." fi # Permitimos paquetes ICMP (ping, traceroute...) #+ con limites para evitar ataques de DoS # Aceptamos ping y pong $IPTABLES -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 2/s -j ACCEPT $IPTABLES -A FORWARD -p icmp --icmp-type echo-reply -m limit --limit 2/s -j ACCEPT # Aceptamos redirecciones $IPTABLES -A FORWARD -p icmp --icmp-type redirect -m limit --limit 2/s -j ACCEPT # Aceptamos tiempo excedido $IPTABLES -A FORWARD -p icmp --icmp-type time-exceeded -m limit --limit 2/s -j ACCEPT # Aceptamos destino inalcanzable $IPTABLES -A FORWARD -p icmp --icmp-type destination-unreachable -m limit --limit 2/s -j ACCEPT # Aceptamos todas en LAN_IF $IPTABLES -t nat -A PREROUTING -i $LAN_IF -p icmp --icmp-type any -m limit --limit 2/s -j ACCEPT $IPTABLES -t nat -A POSTROUTING -o $LAN_IF -p icmp --icmp-type any -m limit --limit 2/s -j ACCEPT
if [ $QUIET = "0" ]; then echo " Salida general..." fi ########################################## ### Aceptamos conexiones salientes
# Permitimos cualquier salida tcp desde la propia maquina $IPTABLES -A OUTPUT -o $EXT_IF -p tcp -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT # ...y conexiones entrantes relacionadas $IPTABLES -A INPUT -i $EXT_IF -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
# Permitimos el reenvio de paquetes enviados desde la LAN $IPTABLES -A FORWARD -i $LAN_IF -j ACCEPT # ...y conexiones salientes relacionadas $IPTABLES -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
# Permitimos el NAT de paquetes enviados desde la LAN $IPTABLES -t nat -A PREROUTING -i $LAN_IF -j ACCEPT # ...y conexiones salientes relacionadas $IPTABLES -t nat -A PREROUTING -m state --state RELATED,ESTABLISHED -j ACCEPT
# Permitimos el NAT de paquetes enviados desde inet hacia la IP publica $IPTABLES -t nat -A PREROUTING -i $EXT_IF -d $EXT_IP -j ACCEPT # ...y conexiones salientes relacionadas $IPTABLES -t nat -A PREROUTING -m state --state RELATED,ESTABLISHED -j ACCEPT
# Permitimos el NAT de paquetes enviados desde la IP publica hacia inet $IPTABLES -t nat -A POSTROUTING -o $EXT_IF -s $EXT_IP -j ACCEPT # ...y conexiones salientes relacionadas $IPTABLES -t nat -A POSTROUTING -m state --state RELATED,ESTABLISHED -j ACCEPT
# Permitimos el PostEnrutado de paquetes enviados localmente $IPTABLES -t nat -A POSTROUTING -o $LAN_IF -s $LAN_RED -j ACCEPT
if [ $QUIET = "0" ]; then echo " Cerrando puertos restringidos..." fi ########################################## ### Puertos restringidos (telnet, ftp, imap, pop3, etc.) ###+ Reiterativo: para pruebas $IPTABLES -A INPUT -p tcp --dport 1:1024 -j DROP $IPTABLES -A INPUT -p udp --dport 1:1024 -j DROP
###echo " ACTIVADO DEBUG..." ########################################## ### Reglas utilizadas en debug para detectar #+ paquetes no tratados todavia #+ -j LOG --log-prefix "--PR> " ###$IPTABLES -t nat -A PREROUTING -j LOG --log-prefix "[FW - PR] " ###$IPTABLES -t nat -A POSTROUTING -j LOG --log-prefix "[FW - PO] " ###$IPTABLES -A FORWARD -j LOG --log-prefix "[FW - FW] " ###$IPTABLES -A INPUT -j LOG --log-prefix "[FW - IN] " ###$IPTABLES -A OUTPUT -j LOG --log-prefix "[FW - OU] "
if [ $QUIET = "0" ]; then echo " Configuracion FW terminada." echo "" echo " A continuacion podria desear:" echo " - verificar reglas: iptables -nvL && iptables -nvL -t nat" echo " - guardar reglas: iptables-save > reglas" echo " - restaurar reglas: iptables-restore < reglas" fi ########################################## exit 0
El 4 de abril de 2011 19:58, Ramón Macías Zamora < ramon.macias@raykasolutions.com> escribió:
No llega, supongo que una restricción de la lista.
Podrías pegar el contenido
Ramón Macías Zamora Tecnología, Investigación y Desarrollo Guayaquil - Ecuador msn: ramon_macias@hotmail.com skype: ramon_macias UserLinux# 180926 (http://counter.li.org) Cel: 593-8-0192238 Tel: 593 4 6044566
http://www.raykasolutions.com/
WEB SITES, HOSTINGS, DOMINIOS, MANTENIMIENTO DE EQUIPOS, REDES,
SERVIDORES
LINUX, SOPORTE.
El 4 de abril de 2011 19:55, Mario Villela Larraza < mario.villelalarraza@gmail.com> escribió:
ahora si aquí esta el archivo adjunto perdón :s
El 4 de abril de 2011 19:37, Ramón Macías Zamora < ramon.macias@raykasolutions.com> escribió:
No llegó el adjunto :(
Ramón Macías Zamora Tecnología, Investigación y Desarrollo Guayaquil - Ecuador msn: ramon_macias@hotmail.com skype: ramon_macias UserLinux# 180926 (http://counter.li.org) Cel: 593-8-0192238 Tel: 593 4 6044566
WEB SITES, HOSTINGS, DOMINIOS, MANTENIMIENTO DE EQUIPOS, REDES,
SERVIDORES
LINUX, SOPORTE.
El 4 de abril de 2011 16:35, Mario Villela Larraza < mario.villelalarraza@gmail.com> escribió:
> Hola amigos ya hace un muy buen rato que estoy batallando con un
proxy
que
> quiero levantar pero no encuentro cual es el problema tengo un
servidor
> con > la squid levantado y un script (que anexo en este correo) con un
servidor
> de > DHCP pero no logro que las maquinas dentro de la red que pasarian
por
el
> proxy obtengan señal de internet ya revise y revise la
configuracion de
mi
> squid de echo ahorita no esta restringiendo nada, ya tengo una
lista
ACL
> que apara todas mis direcciones del squid pero aun asi no obtengo > resultados > diferentes. > > Así que acudo a ustedes para que me ayuden con este pequeño
proyecto
que
> traigo en manos esperando que todos estén bien les mando un saludo
y
> agradesimentos de antemano. > > -- > Mario Villela Larraza > mario.villelalarraza@gmail.com > Cel 0445512591926 > > _______________________________________________ > CentOS-es mailing list > CentOS-es@centos.org > http://lists.centos.org/mailman/listinfo/centos-es > >
-- Mario Villela Larraza mario.villelalarraza@gmail.com Cel 0445512591926
CentOS-es mailing list CentOS-es@centos.org http://lists.centos.org/mailman/listinfo/centos-es
-- Mario Villela Larraza mario.villelalarraza@gmail.com Cel 0445512591926 _______________________________________________ CentOS-es mailing list CentOS-es@centos.org http://lists.centos.org/mailman/listinfo/centos-es
-- Mario Villela Larraza mario.villelalarraza@gmail.com Cel 0445512591926