# [net] Filtrado de contenido (abierto)

## JotaCE

Estimados colegas gentoonianos.

Acabo de recibir una solicitud para configurar una peuqeña red de computadores de uso público, la idea es hacerlo con Gentoo.

Solo tengo dos dudas.

La primerta es pedirkes a los administradores de red que hay algunos por aqui que me acesoren a como filtrar el contenido de internet para que los usuarios no puedan accesar a paginas de dudosa procedencia.

y

La segunda es como una maquina "adminstradora" puede bloquear las demas maquinas cuando se vea que un usuario esta mal usando los recursos?

Cualquier aporte se agradece

----------

## i92guboj

Nunca me ha dado por hacer algo así, pero en principio, con un proxy (squid o similar) y quizás iptables, deberías poder configurar algo de forma bastante decente. Un uso típico de todo esto es la censura infantil, así que buscando por "parental control web pages linux" o similar en Google, seguramente encuentres montones de artículos útiles sobre el tema.

Sobre lo segundo, depende. Si quieres algo automatizado, lo más sencillo es que estudies un poco "ulimit". Eso te permitirá limitar los recursos que un usuario puede usar. Si necesitas control manual, lo más sencillo es configurar ssh para acceder como root a las máquinas de usuario, y a partir de ahí puedes cerrar los shells o procesos que estén dando problemas. Si algún usuario se porta mal, basta con bloquear su cuenta. Una forma fácil es editar /etc/passwd y cambiar su shell por algo que imprima un mensaje y bloquee la cuenta. "tail" es ideal. Por ejemplo, para bloquear mi usuario cambiaría esta línea en /etc/passwd

```

i92guboj:x:1000:1000::/home/i92guboj:/bin/bash

```

Por esta otra:

```

i92guboj:x:1000:1000::/home/i92guboj:/bin/lock_login

```

Por supuesto, tenemos que crear el script lock_login y darle los permisos 755. El contenido del script sería algo como:

```

#!/usr/bin/tail -n2

Esta cuenta ha sido bloqueada para que deje de hacer el burro.

Por favor, llame al 666-123456 y espere sentado.

```

Espero que algo de esto te sirva para tu propósito  :Smile: 

----------

## Inodoro_Pereyra

Agregando mi granito de arena: Tal como dice i92, un proxy transparente y una lista de sitios bloqueados por ser de contenido adulto o conocidos por hacer SPAM como esta lista por ejemplo agregada a dicho proxy para que los bloquee, o simplemente agregando esa lista al archivo /etc/hosts de la pc que hace las veces de router, debería bastar.

Respecto a la segunda pregunta, en el caso que te refieras a demasiado P2P cuando decís "mal usando los recursos" podés darle una miradita a l7filter para iptables, que tiene la capacidad de filtrar o marcar paquetes al vuelo en función del protocolo que se usa haciendo stateful packet inspection.

Esto permite por ejemplo establecer prioridades en el tráfico: P2P va al ultimo (ver QoS, por Quality of Service), o filtrar directamente un protocolo determinado:

```
iptables -t mangle -A POSTROUTING -m layer7 --l7proto ares -j DROP
```

Y tratá de conectar ares después de eso a ver si podés   :Very Happy: 

Sirve para gnutella, edonkey, msn messenger, fasttrack, etc, etc.

Si desde la pc "servidor" querés cortarle la conexión a internet a una pc X que tiene como numero de IP 192.168.5.5:

```
iptables -t mangle -A POSTROUTING -s 192.168.5.5 -j DROP
```

Esa es una de las mil formas de hacerlo.

Salud! Espero que te sirva.

----------

## JotaCE

 *Inodoro_Pereyra wrote:*   

> Agregando mi granito de arena: Tal como dice i92, un proxy transparente y una lista de sitios bloqueados por ser de contenido adulto o conocidos por hacer SPAM como esta lista por ejemplo agregada a dicho proxy para que los bloquee, o simplemente agregando esa lista al archivo /etc/hosts de la pc que hace las veces de router, debería bastar.
> 
> Respecto a la segunda pregunta, en el caso que te refieras a demasiado P2P cuando decís "mal usando los recursos" podés darle una miradita a l7filter para iptables, que tiene la capacidad de filtrar o marcar paquetes al vuelo en función del protocolo que se usa haciendo stateful packet inspection.
> 
> Esto permite por ejemplo establecer prioridades en el tráfico: P2P va al ultimo (ver QoS, por Quality of Service), o filtrar directamente un protocolo determinado:
> ...

 

wow diria mi perro! que si me sirve.... por supuesto que si me sirve!!!!  :Very Happy:  thanx

si hay mas ideas no dejen de postear!!  :Very Happy: 

----------

## kropotkin

 *Inodoro_Pereyra wrote:*   

> 
> 
> ```
> iptables -t mangle -A POSTROUTING -s 192.168.5.5 -j DROP
> ```
> ...

 

Pero -t mangle no es para la modificación de paquetes?

para quitarle internet a una maquina yo lo hago con:

```
iptables -t nat -A FORWARD -s maquina -j DROP
```

el mangle según tengo entendido y de la forma que yo lo uso es para marcar paquetes, por ejemplo

```
iptables -t mangle -A POSTROUTING -p icmp -j MARK --set-mark 1
```

para luego con tc asignarle por ejemplo a los paquetes marcados como 1 tengan una prioridad mayor que por ejemplo los marcados como 2.

Saludos!.

----------

## Inodoro_Pereyra

Si señor, tal cual... Se puede hacer sobre cualquier tabla sobre la que se sepa que el paquete será evaluado, el resultado es el mismo, por convención mangle para modificar paquetes, tal cual.

Lo mismo pasa con las cadenas.

Salud!

----------

## Patatasfritas

yo uso una distro basada en debian llamada clackconnect.

Lo tengo puesto en un colegio en un ordenador muy pequeño.

Lo mas importante esque se maneja casi todo desde el navegador lleva filtro configurable antiporno o lo que quieras y mil herramientas mas

Tambien a destacar que se instala en 30 minutos. y lleva todo tipo de soft

----------

## Inodoro_Pereyra

Que tan "pequeño" es el ordenador? Estaba mirando los requerimientos y me parece que necesita mucho hardware para lo que hace:

http://www.clarkconnect.com/info/requirements.php

Usas la versión freeware?

Salud!

----------

## JotaCE

la Universidad de la Frontera, lidera lo que conocemos como red enlaces, ella misma preparo un proyecto de software libre llamado edulinux http://www.edulinux.cl/ basado efinalmente en Fedore 4, la cual fue preparada para ordenadores muy pequeños y que arranca por red (no no tengo idea como se hace) pero todos los recuersos los toma de un servidor que es una maquina mas potentente (cliente/servidor).

mas alla de todas las maravillas que pueda hacer edulinux, edubuntu, debian o clackconnect (agradeciendo la informacion a Patatasfritas) creo que todo lo que cualquier distro haga, gentoo tambien lo puede hacer.

----------

## ZaPa

Hola JotaCE.

Veamos, sobre el tema del QoS para cada pc, yo te recomiendo brazilfirewall (antes era coyotefirewall).

BrazilFirewall, esta muy bien para estos casos, ya que puedes instalarle addons adicionales, y el squid (para filtrado de contenidos y demás), puedes instalarselo como addon.

Yo lo tengo de firewall en una red brazilfirewall y me va estupendamente, además, utilizo el addon ArgentoQoS, el cual, además de limitar la conexión de toda mi red, también limita las conexiones por segundo abiertas por los programas p2p (Maldito Ares....) .

El paquete l7 como te han comentado arriba, según mis pruebas solo bloquea Ares a nivel de búsqueda, sigue conectando y sigue descargando como pedro por su casa.

He probado muchisimas cosas para intentar limitar los p2p y todos me han dado problemas, menos el brazilfw con argento qos instalado, ¿porque? te preguntaras, pues te explico. Aunque tu le des 512kbit/s de conexión a una máquina, si el dueño de esa máquina inicia el Ares, Ares va a empezar a abrir conexiones como loco por segundo, osea, que si a esto le sumas, 7 o 8 pc's más, con el Ares ahi puesto, finalmente el  modem de tu adsl se va a bloquear de tantas conexiones por segundo que recibe.

Entonces, yo te recomiendo que te bajes la distro BrazilFW, e instales el addon de squid para filtrar contenidos, y ArgentoQoS para limitar las conexiones que abren los p2p. Yo estoy funcionando con esto y sin ningún problema.

Además, brazilfirewall tiene un buen foro, en el que toda la comunidad te va a ayudar si tienes cualquier duda o problema.

Cualquier duda/pregunta, posteala te ayudaremos!.

Saludos y suerte  :Smile: 

PD: Otra preguntita hago a la gente del foro, me gustaria aprender iptables, algún manual o libro que ustedes me recomienden en el cual pueda extender mis conocimientos acerca de iptables?

----------

## gringo

sinceramente creo que os estáis liando, desde la máquina que haga las funciones de pasarela (o con router de la red vamos) , simplemente le dices al cortafuegos a que servicios se puede conectar la red en cuestión ( http, https, ftp, etc). Todo lo demás no se permite y arreando.

Si luego además tienes que filtrar contenido, algún proxy específico como privoxy ( por poner un ejemplo) debería servirte.

saluetes

----------

## ZaPa

Hola gringo.

Claro, yo he publicado mi respuesta, partiendo de que, brazilfirewall seria el router de toda la red.

Ya que,brazil firewall es un router/firewall y además con la posibilidad de instalar addons, como squid y hacerlo funcionar como proxy transparente (todo en una misma máquina).

Saludos.

----------

## gringo

a lo que yo iba es que supongo que lo intenta hacer con gentoo, asi que iptables y un proxy para filtrar ( lo que comenta i92guboj vamos).

Si el problema es configurar iptables o qos, no tienes porque hacerlo a pelo tampoco, hay un huevo de scripts y frontends desos por ahi que lo hacen casi todo por ti. 

saluetes

----------

## JotaCE

 *gringo wrote:*   

> a lo que yo iba es que supongo que lo intenta hacer con gentoo, asi que iptables y un proxy para filtrar ( lo que comenta i92guboj vamos).
> 
> Si el problema es configurar iptables o qos, no tienes porque hacerlo a pelo tampoco, hay un huevo de scripts y frontends desos por ahi que lo hacen casi todo por ti. 
> 
> saluetes

 

Frontend? como cuales?  :Very Happy: 

----------

## gringo

yo empezaría por shorewall p.ej., dicen que es de los mejores que hay por ahi.

Si buscas algo "gráfico" el knetfilter o el fwbuilder tienen buena pinta pero nunca los he usado tampoco.

saluetes

----------

## JotaCE

Una pregunta tonta:

Cualquier maquina de la red se puede configurar como proxy ?. el internet debe pasar por esa maquina antes de pasar por las otras? entonces esa maquina debe tener dos dispositivos de red? ahhhh estoy muy confundido!

Cualquier aporte se agradece

----------

## ZaPa

Hola JotaCE.

Veamos,cualquier máquina con cualquier distribución linux se puede utilizar como router, para eso necesitas 2 tarjetas de red, y claro, con gentoo se puede hacer, es más, en el handbook esta disponible toda la documentación para hacerlo con gentoo, pero la verdad es que yo he optado como te he dicho anteriormente por utilizar brazilfirewall, que se puede administrar por web si lo deseas.

Necesitarias 2 tarjetas de red.

1  Seria la interfaz WAN (Internet)

2  Seria la interfaz LAN (Red local)

De verdad te vuelvo a repetir y aconsejar, prueba brazilfirewall, no es dificil su instalación y es muy buena distro para estos casos, ya que es especializada en esto.

Ahi gente en el foro que ha dicho que prefiere hacerlo con gentoo, pero bueno, también se puede hacer, pero claro tardarias más ya que tendrias que hacerlo tu todo (mejor porque sabes donde vas), pero si vas escaso de tiempo y necesitas hacer este montaje urgente, mejor opta por brazilfw y despues con tiempo haz las pruebas con gentoo, hasta finalmente alcanzar el objetivo también con gentoo y sustituir gentoo por brazilfw.

Saludos.

Espero que te sirva de ayuda.

----------

## i92guboj

 *JotaCE wrote:*   

> Una pregunta tonta:
> 
> Cualquier maquina de la red se puede configurar como proxy ?. el internet debe pasar por esa maquina antes de pasar por las otras? entonces esa maquina debe tener dos dispositivos de red? ahhhh estoy muy confundido!
> 
> Cualquier aporte se agradece

 

La máquina que haga de proxy debe colocarse de forma que todo el tráfico desde o hacia internet pase por dicha máquina. La topología sería la siguiente: tu red local, compuesta por X máquinas, se formaría conectándolas todas a un switch o similar. Una de tus máquinas tendrá dos tarjetas de red. Una de dichas tarjetas conectada al switch, como todos los demás ordenadores. La otra tarjeta, conectada a tu modem, router o lo que quiera que uses para acceder a internet. En principio, solo dicha máquina tiene conexión a internet. Tendrás que configurar dicha máquina para usar NAT (con iptables), de forma que las demás máquina puedan acceder a internet a través de esta.

Además, puede que te interese instalar dnsmasq o algún otro daemon que permitar atender peticiones dhcp. De este modo, los demás ordenadores de la red se pueden configurar usando lo siguiente en /etc/conf.d/net

:

```

config_eth0=( "dhcp" )

```

Y deberían tomar su ip via dhcp del servidor.

Configurando iptables en dicha máquina tenemos el acceso controlado para todas las demás, ya que todo el tráfico pasa por aquí. Eso para comenzar.

----------

## JotaCE

 *i92guboj wrote:*   

>  *JotaCE wrote:*   Una pregunta tonta:
> 
> Cualquier maquina de la red se puede configurar como proxy ?. el internet debe pasar por esa maquina antes de pasar por las otras? entonces esa maquina debe tener dos dispositivos de red? ahhhh estoy muy confundido!
> 
> Cualquier aporte se agradece 
> ...

 

entiendo perfectamente como debe funcionar aun que ya se me ocurrieron algunas situaciones que se me podrian presentar, pero al momento que se presente volveré a pedir ayuda!.

Muchas gracias a todos!

----------

