Bloqueo de msn con iptables

Master, según este manual que te detallo a continuación, se bloquea el messenger a toda la red de mi empresa.
http://www.tuxteno.com/contents.php?cid=709
iptables -t mangle -A PREROUTING -p tcp --dport 1863 -s 192.168.0.43 -j DROP
iptables -t mangle -A PREROUTING -d 63.208.13.126 -s 192.168.0.43 -j DROP
iptables -t mangle -A PREROUTING -d 64.4.12.200 -s 192.168.0.43 -j DROP
iptables -t mangle -A PREROUTING -d 64.4.12.201-s 192.168.0.43 -j DROP
iptables -t mangle -A PREROUTING -d 65.54.131.249 -s 192.168.0.43 -j DROP
iptables -t mangle -A PREROUTING -d 65.54.194.118 -s 192.168.0.43 -j DROP
iptables -t mangle -A PREROUTING -d 65.54.211.61 -s 192.168.0.43 -j DROP
iptables -t mangle -A PREROUTING -d 207.46.104.20 -s 192.168.0.43 -j DROP
iptables -t mangle -A PREROUTING -d 207.46.110.2 -s 192.168.0.43 -j DROP
1.- luego guarde el iptables con el comando:
service iptables save
2.- reinicie el squid:
service squid restart
3.- luego reinicie el servicio:
service network restart
4.- paré el firewall:
./firewall stop
5.- y lo volví a subir:
./firewall start
Y me funcionó a la perfección. Pero quise eliminar esos cambios y me fui al directorio etc/sysconfig/ para editar el iptables con el comando:
vi iptables
elimine todas estas lineas que tenían relación con lo que ingrese:
# Generated by iptables-save v1.2.6a on Thu Nov 11 18:35:58 2004
*mangle
:PREROUTING ACCEPT [1063:141728]
:INPUT ACCEPT [729:76085]
:FORWARD ACCEPT [329:65479]
:OUTPUT ACCEPT [897:68256]
:POSTROUTING ACCEPT [1199:130681]
[0:0] -A PREROUTING -p tcp -m tcp --deporte 1863 -j DROP
[0:0] -A PREROUTING -d 63.208.13.126 -j DROP
[0:0] -A PREROUTING -d 64.4.12.200 -j DROP
[0:0] -A PREROUTING -d 64.4.12.201 -j DROP
[0:0] -A PREROUTING -d 65.54.131.249 -j DROP
[0:0] -A PREROUTING -d 65.54.194.118 -j DROP
[0:0] -A PREROUTING -d 65.54.211.61 -j DROP
[0:0] -A PREROUTING -d 207.46.104.20 -j DROP
[0:0] -A PREROUTING -d 207.46.110.2 -j DROP
COMMIT
# Completed on Thu Nov 11 18:35:58 2004
Termine de editar con el botón escape seguido de :wq!
Y lo mismo de arriba, guarde el iptables, reinicie el squid, reinicie el servio, etc...
Con esto seguimos todos usando MSN, pero cuando volví a hacer el procedimiento de bloqueo del Messenger, no me funcionó, los cambios habían quedado en el iptables (esas mismas lineas que borre anteriormente) pero así y todo se podía uno conectar con los servidores MSN.
¿Qué mierda hice o que me falta por hacer que no puedo realizar lo que había hecho anteriormente, que por lo demás me funcionaba a la perfección?
Ayudame por favor.
sl2.
FDC.
stgo-chile

2 respuestas

Respuesta
1
Es exactamente igual.
Una página web es una dirección IP a la que se ataca al puerto 80 (normalmente), por lo tanto con las mismas reglas que estabas definiendo para el MSN puedes aplicarlas utilizando el puerto 80.
Una URL al fin y al cabo va a resolver la dirección a la IP correspondiente y ya está:
http -> puerto 80
https -> puerto 443
De todas maneras este filtrado es a lo bruto, en función de las IP's. Otro sistema más refinado es prohibir el tráfico web de todos las máquinas, y obligarlas a salir a través de un proxy. Desde este proxy web ya puedes restringir, además de por las IP, en función de las URL's a las que vayas a acceder, además de poder realizar caches de páginas visitadas frecuentemente.
Pero la primera opción es igualmente válida y más sencilla.
Me alegro de haber sido de utilidad.
Que quieres que te diga, solo fantástico.
Lo bueno es que me compruebas que tu respuesta era como lo había hecho anteriormente (antes de que me enviaras la respuesta ya había solucionado el tema). Esto demuestra tu buena respuesta y dedicación a mi pregunta.
Bueno master, aparte de ponerte dentro de los expertos favoritos, necesito hacerte otra pregunta.
Así como esto pasos bloquea los servidores del MSN (que son finalmente direcciones IP) y se puede restringir y definir a que PC (IP) se bloquea la conexión, ¿Se pueden, y es conveniente, restringir URL o páginas web a ciertos equipos (IP) de esta misma forma?
¿Si hay otra manera más conveniente de hacerlo, me cuentas, vale?.
Espero haberme explicado bien.
Te agradezco nuevamente tu interés por responder
Hmmm... Es difícil de decir con la información que me has mandado.
Puedo intentar guiarte para que encuentres lo que esta fallando.
Primero mira las tablas que te están funcionando ahora mismo con:
Iptables -t mangle -L
Con esto debería listarte las reglas que están funcionando en este momento.
En vez de modificar el sysconfig directamente sería mejor que guardaras las reglas como hiciste la primera vez con iptables sabe.
Lo último que se me ocurre es que estas utilizando ip's fijas en la definición de las reglas. Por lo que veo, los paquetes solo van a ser afectados por la restricción cuando provengan de la IP 192.168.0.43, si esta IP ha cambiado los paquetes no van a filtrarse.
Puedes comprobar el trafico que le llega a tu máquina con tcpdump, de esta manera puedes comprobar con que IP's atacan a tus máquinas:
Tcpdump -n -i eth0
Con esto suele valer aunque suelta muchísima información.
Por último, y esto es una opción totalmente personal, si lo que buscas es seguridad yo cambiaría la default policy a DROP, es decir, por defecto expulsar los paquetes, y aceptaría sólo aquellos que quisiera aceptar.
En fin, no se si con esto te ayudo mucho, pero con los datos no puedo hacer mucho más. No dudes en enviarme más información si lo necesitas.
Ok, si comprendo.
Mira tengo en el servidor de internet con Squid. Aquí hay hay definidas unas reglas como navegación sin restricción, con restricción (para las bajadas de archivos exe, avi, etc) y otra para negar la navegación por internet.
Lo que no he podido hacer es restringir a una ip especifica, una URL especifica, ejemplo: 200.1.1.23 -> Google.com
Master, tienes una dirección de correo donde te pueda escribir y enviar parte del squid. ¿conf para que me guíes?
Por favor.
Pues seria una cosa así:
acl nogoog dstdomain .google.com
Acl ipmala src 200.1.1.23
http_deny nogoog and ipmala
aqui tienes toda la informacion:
http://squid.visolve.com/squid/squid24s1/access_controls.htm
Si tienes salida a Internet tienes ya una IP pública.
Esta IP la ostenta el dispositivo que provee de la conexión, ya sea un router ADSL o el ordenador que tenga instalado el modem.
El problema que puedas tener es que esta IP sea cambiante. Para obtener una IP fija tienes que contratarla con tu proveedor de Internet.
Vale,
Si tienes un router, lo más normal es que puedas conectarte a él y ver los datos de la conexión, así como la configuración del mismo.
Normalmente para hacer esto tienes que conectar bien con el navegador web o bien con un telnet a la dirección del router. Esta dirección es la dirección del gateway (o pasarela) que tienes en todas las máquinas de tu empresa (192.168.0.1 o 10.0.0.1, seguramente).
Una vez conectado a la dirección interna del router podrás ver los datos de la conexión, entre ellos tendrías que ver la dirección pública (o externa) del router.
Es en esta IP donde podéis ser accedidos desde el exterior.
Para que desde esa IP se pueda entrar a tu máquina es necesario que configures NAT en tu router. Para ello especifica que el puerto 80 lo quieres pasar a la ip de la máquina donde tienes la página web.
Para terminar, para que se pueda acceder a http://intranet-losmosquitos.cl/ necesitas una entrada DNS que apunte ese nombre que dices a tu ip externa.
Esto lo tendrás que contrartar con una empresa de dominios de internet, en este caso los que se encarguen de .cl. Hazte cargo que por ejemplo en España no todo el mundo puede tener un .es. Enterate de como funciona en tu país por que en cada sitio es diferente.
No entiendo muy bien tu pregunta...
Si tienes varios equipos dentro de una red, lo más probable es que estos equipos tengan IP privada, del rango 192.168.x.x o el 10. x.x.x.
Si ademas tienes conexión a Internet (que parece el caso) tienes que disponer ya de una ip pública que estará asignada al dispositivo que te proporciona la salida a Internet. Si lo que quieres es que accediendo a esta IP pública la gente acceda a la IP privada donde tienes la web necesitas configurar el NAT en el dispositivo que te proporciona la conexión a Internet.
Pero de todas maneras no entiendo muy bien tu pregunta, si me puedes dar más detalles...
Repito mis agradecimientos a las soluciones que me has dado.
Hora nos pasamos a otra plataforma, Windows.
Dentro de un servidor montaremos una página web que será nuestra Intranet, y necesitamos acceder desde el exterior (fuera de la empresa) y para poder hacerlo necesitamos una IP pública.
¿Esa dirección publica de donde la obtengo?
Master, ya tengo IP privada o fija, de hecho estoy en una empresa, aquí mantenemos IP's fijas. La cosa es que en un equipo con IP fija pondremos la intranet y necesitamos una ip publica para esto.
¿Quién me da esa IP publica? ¿Es al antojo mio o la tiene que dar alguien (me refiero a alguna empresa que nos da el servicio de INTERNET)?
Ok, nos estamos entendiendo.
Y como averiguo la dirección IP de mi dispositivo (router).
Y el objetivo es que tu indicas.
Ejemplo: (desde afuera escribo en mi navegador web) http://Intranet-losmosquitos.cl
y acceder a la intranet que esta implementado en un equipo dentro de mi empresa.
Es posible que cuando alcance una regla que coincida no siga buscando más. En este caso si dices que la IP listasolo puede estar en las anteriores, estará reduciendo en las anteriores y no llegará a alcanzar la regla restrictiva.
Prueba a cambiar el orden del allow listaconres y allow listasolo.
Ya master, parece que tener una ip dentro de dos reglas no funciona.
Te explico lo que quiero para ver cual serie tu criterio.
Rango de ip 10.0.0.1/10.0.0.254
Necesito definir un grupo de ip que naveguen sin restricciones (por donde sea y bajen lo que sea).
Otro con restricciones de navegación por sitios web y bajadas de archivos.
¿Cómo lo harías ahora para una o varias ip que esta dentro de la regla con restricciones para que solo a ellos les bloquees una URL?
Dentro de la lista de ip con res. Tenemos 10.0.0.3-4-5-6-7 estos tendrán restricion para entrar a google.com terra.com, etc.. y bajar avi, xls, mp3, etc.
Y yo quiero que a la ip 10.0.0.5 y 6 restringirle la url hotmail.com y microsoft.com
Es ahí cuando se me produjeron los problemas.
Te lo dejo a tu criterio.
Lo que te pregunto es: cuando una url tiene varios servidores, por lo tanto varias ip, ¿hay qué definir solo la dirección web o todas las ip de dicha página?
Espero tu respuesta.
Saldos y gracias
Y que puede hacer para lo siguiente:
A una ip que esta dentro de la listaceptados (que navegan sin restricción) o de la listaconres (que son varias IP) le quiero bloquear unas páginas en especifico. ¿Cómo lo puedo hacer?
Lo que me dices es que si encuentra una IP en dos reglas, o sea, ¿si 10.0.0.2 esta en listaconres y también en listasolo no va a cumplir la ultima regla restrictiva?
Esto me pasa a menudo. Se me olvida apretar esc+i para agregar, y apretó por inercia altgr + un numero que no se si es el 1,2 o 3 y me marca con verde todo lo que contenga la linea donde tengo el promp, ¿cómo lo desmarco?
Que quieres que te diga, solo que me has ayudado una enormidad y las respuestas han sido acertadisimas.
Con las restricciones de acl las voy a probar y te cuento, ¿vale?
Saldos.
Pregunta:
Para hacer esto del acl hay que estar como root
[yo@firewall root]#
Y ahí escribir acl... o hay que ir directamente al archivo y editar el squid. ¿conf?
Lo mismo para el http_access allow.
Haber si me puedes ayudar (otra vez!)
acl listaceptados src "/etc/squid/listaceptados"
acl listaconres src "/etc/squid/listaconres"
acl listasolo src "/etc/squid/listasolo"
#acl lan src 89.0.0.0/255.255.255.0
acl sitiosdenegados url_regex "/etc/squid/sitiosdenegados"
acl listasolouno url_regex "/etc/squid/listasolouno"
acl listaextensiones urlpath_regex "/etc/squid/listaextensiones"
http_access allow listaceptados
http_access allow listaconres !sitiosdenegados !listaextensiones
http_access allow listasolo !listasolouno !listaextensiones
http_access deny all
En donde, ejemplo:
listaceptados: 10.0.0.2 navega sin restricción
listaconres: 10.0.0.3-4-5-etc... va de la mano con sitiosdenegados (lista de las páginas web a restringir) y listaextensiones (avi, doc, etc..). Aquí se le restringen páginas y bajadas de archivos.
listasolo: Aquí especifico una IP que puede estar dentro de listaconres o listaceptados, y va de la mano con listasolouno (aquí especifico una página web que restringiré solo para la ip de la lista listasolo) y listaextensiones.
Esta ultima regla no me funciona, ¿por qué? ¿Qué tengo malo?
Ojala me haya explicado bien.
El squid se rige por el orden de las lineas escritas en el acl o del allow, o sea:
acl listaceptados
acl listaconres
http_access allow listaceptados
http_access allow listaconres !sitiosdenegados
¿Toma el orden de ambas o solo del http_access allow?
Si le estas permitiendo el acceso en alguna de las reglas anteriores es posible que pare ahí la ejecución.
Ok
Lo que tienes que hacer en cada caso, según tengas construidas las reglas, es colocar las más restrictivas siempre antes.
En el caso anterior tienes que colocar la regla allow listasolo antes que allow listaconres
(Creo que así funcionará)
Date cuenta que el squid, en caso de que encuentre dos o más reglas que afectan a una misma situación no puede elegir entre ellas, ya que el no sabe lo que pretendes, por lo tanto a la primera regla que case no mirará más. (Todo esto lo he especulado un poco pero creo que es el comportamiento definido del squid)
Tienes que escribirlo dentro del fichero del squid.
De todas formas echa un vistazo a la URL que te pegué entonces que te venían muchas cosas, por si acaso necesitas alguna más.
En primer lugar yo no escribiría:
http_access allow listaconres !sitiosdenegados
sino http_access deny listaconres sitiosdenegados
y cambiar la ultima regla ya que por defecto permites la navegación a:
http_access allow all
Por otro lado en la documentación del squid dicen que funciona perfectamente tener la misma ip en diferentes reglas.
Yo lo pondría:
http_access deny listaconmasres hotmailygoogle
http_access deny listaconres sitiosdenegados
http_access allow all
De esta manera conseguirías lo que quieres.
Y que pasa cuando el sitio web tiene más de una ip.
Porque me resulta para una dirección web que solo tiene una ip como servidor, pera hay dirección web que tiene varias ip. Es aquí el problema. Esta dirección web no se bloquea.
Tienes que usar la directiva dst_domain.
El problema con los sitios web con diferentes IP es que normalmente, los navegadores no tienen por que enviar la dirección del host al que conectan, pueden enviar solo la IP.
Entonces el Squid no tiene manera de saber si la IP que solicita tu cliente corresponde a ese dominio si no tiene el dominio bien configurada la resolución de DNS inversa.
Por tanto, la única solución que veo es que pongas las IP's de los sitios web.
Para esto puedes hacer un programita fácil:
Host www.msn.com |grep -v CNAME |cut -f 3
Esto te lista las ip's que tiene www.msn.com
Si lo redireccionas al fichero concreto lo puedes enchufar directamente al squid:
Host www.msn.com |grep -v CNAME |cut -f 3 > msnips
Saludos, y me alegro de que lo hayas logrado...
Master, me has ayudado bastante este tiempo y no se si te interesa que finalice todas estas preguntas con una evaluación "excelente".
Pero antes de esto te hago otra pregunta.
La otra vez termine de editar el iptables para el bloqueo del msn y me funciona de maravillas. Pero lamentablemente tuvimos que apagar el servidor, y al volver a levantarlo las modificaciones que había hecho ya no estaban en el iptables.
¿Cómo lo hago para que no vuelvan a pasar y se mantengan en cada reinicio o apagado?
OOOOOOOOOOOOOOOOOO te caíste, bueno se puede perdonar.
Info sobre Postfix ¿Qué es Postfix?:
http://postfix.wl0.org/es/
Dependerá de la distribución. Algunas de ellas proveen de mecanismos para guardar los datos mediante:
/etc/init.d/iptables save_active
De todas maneras, ya que estamos aprendiendo, el paquete iptables trae unos ejecutables que te permiten salvar y restaurar estas tablas:
Iptables-save > fichero
Te salva las reglas de la tabla por defecto, para las otras:
Iptables-save -t nat > fichero_nat
Iptables-save -t mangle > fichero_mangle
Para cargar cualquiera de estos ficheros en memoria usa iptables-restore:
Iptables-restore -t nat < fichero_nat
Si no encuentras como lo hace esto tu distro automáticamente siempre puedes incluir las entradas iptables-restore en el script de arranque.
Este también cambia según la distro, pero lo puedes mirar en el fichero /etc/inittab.
Espero haberte ayudado, y me alegro de que hayas conseguido lo que necesitabas.
Gracias por tu respuesta.
¿Te manejas con estos cosas en el Postfix?
Bueno, es un modo de filtrar archivos. El tema pasa porque desde fuera de la empresa funciona super bien, pero desde dentro de la empresa solo funciona en algunos equipos, y es raro porque desde Office XP funciona y desde Office 97 o 2k no funciona, cuando debería ser para todos igual, ¿eso creo?
¿Pero el postfix no es un agente de correo electrónico?
A lo mejor es que no conozco el programa del que hablas...
Hola nuevamente master.
Mira en el servidor de correo esta puesto el amavisd, freshclam y clamd para detección de virus en el correo.
Amavisd enviaba por correo un informe con la cantidad de virus que se detectaron.
Sabes tú donde se configura esto, ¿o si hay algo donde configurar para los reportes del antivirus?
Precisamente, el Postfix es lo que te había dicho: un agente de correo electrónico. Lo que no se es qué tiene que ver el Postfix con el Office. En todo caso entendería que me hablaras de Outlook.
Por otro lado no tengo ni idea de como funciona el amavis, nunca lo he utilizado.
Ya master, ha llegado el fin de las preguntas.
La verdad es que no me queda más que valorarte con la máxima calificación por la dedicación que pusiste en cada pregunta y por sobre todo la paciencia que tuviste.
Te agradezco nuevamente y estarás dentro de los expertos favoritos en mi lista de expertos.
sl2
FDC
Santiago - chile
Respuesta
A ver, cuando metes comandos del tipo:
Iptables -t mangle -A PREROUTING -p tcp --dport 1863 -s 192.168.0.43 -j DROP
iptables -t mangle -A PREROUTING -d 63.208.13.126 -s 192.168.0.43 -j DROP
iptables -t mangle -A PREROUTING -d 64.4.12.200 -s 192.168.0.43 -j DROP
iptables -t mangle -A PREROUTING -d 64.4.12.201-s 192.168.0.43 -j DROP
iptables -t mangle -A PREROUTING -d 65.54.131.249 -s 192.168.0.43 -j DROP
Se los estas dando al firewall volátilmente, es decir, que si después paras y arrancas el firewall esos cambios se pierden. Introduce todo lo que desees que quede guardado en el script de arranque del firewall.
Si después de esto no lo ves claro, pásame la salida de dar un iptables -L para ver actualmente qué estas filtrando.
NOTA: las lineas que te generó en /etc/sysconfig/iptables eran las que empezaban por [0:0], las otras y el COMMIT son parte del script del iptables.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas