Hola César,
El problema está en la cadena FACEBOOK1 y FACEBOOK. La última linea de ambas es un DROP a todo. Las cadenas FACEBOOK1 y FACEBOOK están antes que nada en FORWARD. De esta manera, la regla que permitiría la comunicación con el terminal server nunca es alcanzada ya que los paquetes topan antes con el DROP a todo de FACEBOOK1 y FACEBOOK.
Además siento decirte que tu firewall es literalmente un coladero. Tienes que pensar que cuando un paquete llega al firewall sigue un orden estricto. Cuando este coincide con los criterios que marca una regla el paquete realiza la acción que marca la regla y no continua hacia abajo. De esta manera si pones una regla tan general como "acepta todos los protocolos de cualquier IP en direccion a cualquier IP" (este es el caso de la segunda regla en INPUT) todas las demás no sirven ya para nada ya que el paquete es aceptado.
Para que te queden claros los conceptos básicos de iptables (y/o otros firewall que funcionan igual) te recomiendo este howto muy práctico y con ejemplos bastante frecuentes. A partir de ahi hay cientos de howtos en internet:
www.pello.info/filez/firewall/iptables.html
Voy haciendote comentarios entre lineas. Hay muchas reglas que abren todo a todo el mundo y por tanto, además de redundantes, inseguras.
El 27/10/14 a las 22:48, César Martinez escribió:
Gracias Francesc si el firewall esta solo en la oficina A, como comente bajo mi firewall y al conexión se efectua te paso al salida del comando iptables -nL
Chain INPUT (policy ACCEPT) target prot opt source destination DROP all -- 0.0.0.0/0 0.0.0.0/0 state INVALID ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
Esto permite que entre todo a cualquier lado. Altamente desaconsejable
REJECT all -- 0.0.0.0/0 127.0.0.0/8 reject-with icmp-port-unreachable
No hace nada ya que la segunda regla permite todo
ACCEPT all -- 192.168.0.0/24 0.0.0.0/0 ACCEPT 41 -- 0.0.0.0/0 0.0.0.0/0
Esto permite todo a cualquier lado en tunel IPv6. Altamente desaconsejable.
REJECT all -- 192.168.0.0/24 0.0.0.0/0 reject-with icmp-port-unreachable
Esta es contradictoria con la que hay dos más arriba, aunque realmente no hace nada ya que la segunda regla permite todo.
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 8 limit: avg 1/sec burst 5 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
Permites todo el tráfico ICMP. ¿Para qué entonces la regla anterior?
REJECT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:137 reject-with icmp-port-unreachable
No hace nada ya que la segunda regla permite todo.
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
Esta debería ser la segunda regla pero siendo más restrictivo por source y destination
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:20 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:21 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:1976 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:25 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:587
Todas estas no sirven para nada ya que la segunda regla permite todo.
DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:53 DROP udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:53
Esas dos tampoco sirven para nada ya que la segunda permite todo.
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:110 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:143 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:11200 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:3389
Todas estas no hacen nada ya que la segunda regla permite todo.
LOG tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:1433 limit: avg 3/hour burst 5 LOG flags 0 level 4 prefix `Firewalled packet: MSSQL ' DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:1433
No hace nada ya que la segunda regla permite todo.
LOG tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:6670 limit: avg 3/hour burst 5 LOG flags 0 level 4 prefix `Firewalled packet: Deepthrt ' DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:6670
No hace nada ya que la segunda regla permite todo.
LOG tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:6711 limit: avg 3/hour burst 5 LOG flags 0 level 4 prefix `Firewalled packet: Sub7 ' DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:6711
No hace nada ya que la segunda regla permite todo.
LOG tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:6712 limit: avg 3/hour burst 5 LOG flags 0 level 4 prefix `Firewalled packet: Sub7 ' DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:6712
No hace nada ya que la segunda regla permite todo.
LOG tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:6713 limit: avg 3/hour burst 5 LOG flags 0 level 4 prefix `Firewalled packet: Sub7 ' DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:6713
No hace nada ya que la segunda regla permite todo.
LOG tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:12345 limit: avg 3/hour burst 5 LOG flags 0 level 4 prefix `Firewalled packet: Netbus ' DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:12345
No hace nada ya que la segunda regla permite todo.
LOG tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:12346 limit: avg 3/hour burst 5 LOG flags 0 level 4 prefix `Firewalled packet: Netbus ' DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:12346
No hace nada ya que la segunda regla permite todo.
LOG tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:20034 limit: avg 3/hour burst 5 LOG flags 0 level 4 prefix `Firewalled packet: Netbus ' DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:20034
No hace nada ya que la segunda regla permite todo.
LOG tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:31337 limit: avg 3/hour burst 5 LOG flags 0 level 4 prefix `Firewalled packet: BO ' DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:31337
No hace nada ya que la segunda regla permite todo.
LOG tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:6000 limit: avg 3/hour burst 5 LOG flags 0 level 4 prefix `Firewalled packet: XWin ' DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:6000 DROP udp -- 0.0.0.0/0 0.0.0.0/0 udp dpts:33434:33523
No hacen nada ya que la segunda regla permite todo.
REJECT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:113 reject-with icmp-port-unreachable REJECT 2 -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable REJECT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 reject-with icmp-port-unreachable REJECT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 reject-with icmp-port-unreachable
No hace nada ya que la segunda regla permite todo.
LOG tcp -- 0.0.0.0/0 0.0.0.0/0 tcp flags:0x17/0x02 limit: avg 5/min burst 5 LOG flags 0 level 4 prefix `Firewalled packet:' REJECT tcp -- 0.0.0.0/0 0.0.0.0/0 reject-with tcp-reset DROP all -- 0.0.0.0/0 0.0.0.0/0
No hace nada ya que la segunda regla permite todo.
Chain FORWARD (policy ACCEPT)
Pon aquí la regla que permite la comunicación entre las dos redes por el puerto Terminal Server. Algo así como
iptables -I FORWARD -s 192.168.1.0/24 -d 192.168.0.0/24 -dport 3389
Atención a la diferencia entre iptables -A e iptables -I. -A añade al final de la cadena y -I al principio (si no especificas un numero de regla). En mi opinión este es el principal problema con este firewall. Se han añadido un montón de reglas solo con el -I y todas las reglas que realmente filtran han quedado relegadas a las última posiciones siendo inutiles a causa de la existencia de reglas demasiado generales que permiten la entrada/salida/reenvío de la mayoría de los paquetes.
target prot opt source destination FACEBOOK1 tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 STRING match "accounts.google.com" ALGO name bm TO 65535 FACEBOOK1 tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 STRING match "gmail.com" ALGO name bm TO 65535 FACEBOOK1 tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 STRING match "hi5.com" ALGO name bm TO 65535 FACEBOOK1 tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 STRING match "yahoo.com" ALGO name bm TO 65535 FACEBOOK1 tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 STRING match "gmail.com" ALGO name bm TO 65535 FACEBOOK1 tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 STRING match "spotify.com" ALGO name bm TO 65535 FACEBOOK1 tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 STRING match "imo.im" ALGO name bm TO 65535 FACEBOOK1 tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 STRING match "twitter.com" ALGO name bm TO 65535 FACEBOOK1 tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 STRING match "youtube" ALGO name bm TO 65535 FACEBOOK1 tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 STRING match "youtube" ALGO name bm TO 65535 FACEBOOK1 tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 STRING match "youtube.com" ALGO name bm TO 65535 FACEBOOK1 tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 STRING match "youtube" ALGO name bm TO 65535 FACEBOOK1 tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 STRING match "facebook" ALGO name bm TO 65535 FACEBOOK1 tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 STRING match "facebook.com" ALGO name bm TO 65535 FACEBOOK1 tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 STRING match "login.live.com" ALGO name bm TO 65535 FACEBOOK1 tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 STRING match "outlook" ALGO name bm TO 65535 FACEBOOK1 tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 STRING match "outlook.com" ALGO name bm TO 65535 FACEBOOK1 tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 STRING match "outlook.com" ALGO name bm TO 65535 FACEBOOK1 tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 STRING match "live.com" ALGO name bm TO 65535 FACEBOOK1 tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 STRING match "hotmail.com" ALGO name bm TO 65535 FACEBOOK tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 STRING match "accounts.google.com" ALGO name bm TO 65535 FACEBOOK tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 STRING match "gmail.com" ALGO name bm TO 65535 FACEBOOK tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 STRING match "hi5.com" ALGO name bm TO 65535 FACEBOOK tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 STRING match "yahoo.com" ALGO name bm TO 65535 FACEBOOK tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 STRING match "gmail.com" ALGO name bm TO 65535 FACEBOOK tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 STRING match "spotify.com" ALGO name bm TO 65535 FACEBOOK tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 STRING match "imo.im" ALGO name bm TO 65535 FACEBOOK tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 STRING match "twitter.com" ALGO name bm TO 65535 FACEBOOK tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 STRING match "youtube" ALGO name bm TO 65535 FACEBOOK tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 STRING match "youtube" ALGO name bm TO 65535 FACEBOOK tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 STRING match "youtube.com" ALGO name bm TO 65535 FACEBOOK tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 STRING match "youtube" ALGO name bm TO 65535 FACEBOOK tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 STRING match "facebook" ALGO name bm TO 65535 FACEBOOK tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 STRING match "facebook.com" ALGO name bm TO 65535 FACEBOOK tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 STRING match "login.live.com" ALGO name bm TO 65535 FACEBOOK tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 STRING match "outlook" ALGO name bm TO 65535 FACEBOOK tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 STRING match "outlook.com" ALGO name bm TO 65535 FACEBOOK tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 STRING match "live.com" ALGO name bm TO 65535 FACEBOOK tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 STRING match "hotmail.com" ALGO name bm TO 65535 FACEBOOK tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 destination IP range 0.0.0.0-0.0.0.0 FACEBOOK tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 destination IP range 0.0.0.0-0.0.0.0 FACEBOOK tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 destination IP range 0.0.0.0-0.0.0.0 FACEBOOK tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 destination IP range 0.0.0.0-0.0.0.0 FACEBOOK tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 destination IP range 0.0.0.0-0.0.0.0 FACEBOOK tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 destination IP range 0.0.0.0-0.0.0.0 FACEBOOK tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 destination IP range 0.0.0.0-0.0.0.0 FACEBOOK tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 destination IP range 0.0.0.0-0.0.0.0 FACEBOOK tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 destination IP range 0.0.0.0-0.0.0.0 FACEBOOK tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 destination IP range 0.0.0.0-0.0.0.0 FACEBOOK tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 destination IP range 0.0.0.0-0.0.0.0 FACEBOOK tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 destination IP range 0.0.0.0-0.0.0.0 REJECT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:55347 reject-with icmp-port-unreachable ACCEPT tcp -- 0.0.0.0/0 192.168.1.0/24 tcp dpt:3389
Esta regla sería válida si en la red 192.168.1.0 hubiera un servidor de Terminal Server. Fíjate que el puerto destino es 3389 para la red 192.168.1.0.
ACCEPT all -- 0.0.0.0/0 192.168.1.0/24 DROP all -- 0.0.0.0/0 0.0.0.0/0 state INVALID
Esta debería ser la primera regla de la cadena
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
Esta regla permite todos los protocoles desde cualquier origen a cualquier destino pero no es efectiva por que las cadenas FACEBOOK y FACEBOOK1 están antes que ella.
REJECT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:137 reject-with icmp-port-unreachable
No hace nada ya que la relga anterior permite todo.
REJECT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:138 reject-with icmp-port-unreachable
No hace nada ya que otra regla anterior ya lo permite todo.
REJECT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:139 reject-with icmp-port-unreachable REJECT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:137 reject-with icmp-port-unreachable REJECT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:138 reject-with icmp-port-unreachable REJECT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:139 reject-with icmp-port-unreachable
Estas reglas no tienen efecto ya que otra regla anterior ya lo permite todo.
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
Repetida
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state NEW ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
Esta regla debería ser la segunda de la cadena FORWARD
ACCEPT tcp -- 0.0.0.0/0 192.168.0.3 tcp dpt:3389 LOG tcp -- 0.0.0.0/0 0.0.0.0/0 tcp flags:0x17/0x02 limit: avg 5/min burst 5 LOG flags 0 level 4 prefix `Firewalled packet:' REJECT tcp -- 0.0.0.0/0 0.0.0.0/0 reject-with tcp-reset DROP all -- 0.0.0.0/0 0.0.0.0/0
Chain OUTPUT (policy ACCEPT) target prot opt source destination ACCEPT all -- 0.0.0.0/0 192.168.1.0/24
Esta regla permite cualquier protocolo desde cualquier IP con destino 192.168.1.0
ACCEPT tcp -- 0.0.0.0/0 192.168.1.0/24
Esta no hace nada ya que la anterior la incluye
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state NEW
Se aceptan todos los procotolos con cualquier origen, hacia cualquier destino con conexiones que originen una primera conexión
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
Se aceptan todos los protocolos con cualquier origen, hacia cualquier destino para conexiones nuevas, ya establicidas o relacionadas con otras
Chain FACEBOOK (31 references) target prot opt source destination ACCEPT all -- 192.168.0.10 0.0.0.0/0 ACCEPT all -- 192.168.0.103 0.0.0.0/0 ACCEPT all -- 192.168.0.122 0.0.0.0/0 ACCEPT all -- 192.168.0.140 0.0.0.0/0 ACCEPT all -- 192.168.0.142 0.0.0.0/0 ACCEPT all -- 192.168.0.154 0.0.0.0/0 ACCEPT all -- 192.168.0.170 0.0.0.0/0 ACCEPT all -- 192.168.0.28 0.0.0.0/0 ACCEPT all -- 192.168.0.3 0.0.0.0/0 ACCEPT all -- 192.168.0.30 0.0.0.0/0 ACCEPT all -- 192.168.0.52 0.0.0.0/0 ACCEPT all -- 192.168.0.61 0.0.0.0/0 ACCEPT all -- 192.168.0.63 0.0.0.0/0 ACCEPT all -- 192.168.0.64 0.0.0.0/0 ACCEPT all -- 192.168.0.67 0.0.0.0/0 ACCEPT all -- 192.168.0.69 0.0.0.0/0 ACCEPT all -- 192.168.0.7 0.0.0.0/0 ACCEPT all -- 192.168.0.8 0.0.0.0/0 ACCEPT all -- 192.168.0.83 0.0.0.0/0 ACCEPT all -- 192.168.1.0 0.0.0.0/0 ACCEPT all -- 192.168.1.150 0.0.0.0/0 ACCEPT all -- 192.168.1.7 0.0.0.0/0 DROP all -- 0.0.0.0/0 0.0.0.0/0
Chain FACEBOOK1 (20 references) target prot opt source destination ACCEPT all -- 192.168.0.10 0.0.0.0/0 ACCEPT all -- 192.168.0.103 0.0.0.0/0 ACCEPT all -- 192.168.0.122 0.0.0.0/0 ACCEPT all -- 192.168.0.140 0.0.0.0/0 ACCEPT all -- 192.168.0.142 0.0.0.0/0 ACCEPT all -- 192.168.0.154 0.0.0.0/0 ACCEPT all -- 192.168.0.170 0.0.0.0/0 ACCEPT all -- 192.168.0.28 0.0.0.0/0 ACCEPT all -- 192.168.0.3 0.0.0.0/0 ACCEPT all -- 192.168.0.30 0.0.0.0/0 ACCEPT all -- 192.168.0.52 0.0.0.0/0 ACCEPT all -- 192.168.0.61 0.0.0.0/0 ACCEPT all -- 192.168.0.63 0.0.0.0/0 ACCEPT all -- 192.168.0.64 0.0.0.0/0 ACCEPT all -- 192.168.0.67 0.0.0.0/0 ACCEPT all -- 192.168.0.69 0.0.0.0/0 ACCEPT all -- 192.168.0.7 0.0.0.0/0 ACCEPT all -- 192.168.0.8 0.0.0.0/0 ACCEPT all -- 192.168.0.83 0.0.0.0/0 ACCEPT all -- 192.168.1.0 0.0.0.0/0 ACCEPT all -- 192.168.1.150 0.0.0.0/0 ACCEPT all -- 192.168.1.7 0.0.0.0/0 DROP all -- 0.0.0.0/0 0.0.0.0/0