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