Julián Esteban Perconti escribió:
Hola listeros, recurro a ustedes por el suiguiente motivo:
tengo una maquina debian como router, con el siguiente script..
#!/bin/bash
#/usr/local/sbin/setiptables.bash
iptables -F
iptables -X
iptables -Z
iptables -t nat -F
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD *DROP*
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 2 > /proc/sys/net/ipv4/conf/all/rp_filter
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
echo 0 > /proc/sys/net/ipv4/tcp_timestamps
echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
echo 2400 > /proc/sys/net/ipv4/tcp_keepalive_time
echo 0 > /proc/sys/net/ipv4/tcp_window_scaling
echo 0 > /proc/sys/net/ipv4/tcp_sack
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
iptables -A FORWARD -p tcp --tcp-flags ALL NONE -j DROP
iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
iptables -A FORWARD -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
iptables -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j DROP
iptables -A FORWARD -p tcp --tcp-flags FIN,RST FIN,RST -j DROP
iptables -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j DROP
iptables -A FORWARD -p tcp --tcp-flags ACK,FIN FIN -j DROP
iptables -A INPUT -p tcp --tcp-flags ACK,PSH PSH -j DROP
iptables -A FORWARD -p tcp --tcp-flags ACK,PSH PSH -j DROP
iptables -A INPUT -p tcp --tcp-flags ACK,URG URG -j DROP
iptables -A FORWARD -p tcp --tcp-flags ACK,URG URG -j DROP
# INPUT HP #
iptables -t filter -A INPUT -i eth1 -p tcp --dport 53 -j ACCEPT #DNS
iptables -t filter -A INPUT -i eth1 -p udp --dport 53 -j ACCEPT #DNS
iptables -t filter -A INPUT -i eth1 -p udp --dport 67 -j ACCEPT #DHCP
iptables -t filter -A INPUT -i eth1 -p tcp --dport 3128 -j ACCEPT #SQUID
iptables -t filter -A INPUT -i eth1 -p udp --dport 445 -j ACCEPT
#Microsoft-DS SMB file sharing
iptables -t filter -A INPUT -i eth1 -p tcp --dport 137:139 -j ACCEPT
#NetBios
iptables -t filter -A INPUT -i eth1 -p udp --dport 137:139 -j ACCEPT
#NetBios
iptables -t filter -A INPUT -i eth1 -p tcp --dport 22 -j ACCEPT -s
192.168.0.2 #SSH
# OUTPUT HP #
iptables -t filter -A OUTPUT -p tcp --sport 53 -j ACCEPT #DNS
iptables -t filter -A OUTPUT -p udp --sport 53 -j ACCEPT #DNS
iptables -t filter -A OUTPUT -p tcp --sport 3128 -j ACCEPT #SQUID
iptables -t filter -A OUTPUT -p tcp --dport 80 -j ACCEPT #WWW
iptables -t filter -A OUTPUT -p udp --sport 67 -j ACCEPT #DHCP
iptables -t filter -A OUTPUT -p udp --dport 445 -j ACCEPT #Microsoft-DS
SMB file sharing
iptables -t filter -A OUTPUT -p tcp --dport 137:139 -j ACCEPT #NetBios
iptables -t filter -A OUTPUT -p udp --dport 137:139 -j ACCEPT #NetBios
# FORWARD LAN #
*iptables -t filter -A FORWARD -j ACCEPT*
iptables -t filter -A FORWARD -i eth1 -p tcp --dport 20:21 -j ACCEPT #FTP
iptables -t filter -A FORWARD -i eth1 -p tcp --dport 25 -j ACCEPT #SMTP
iptables -t filter -A FORWARD -i eth1 -p tcp --dport 110 -j ACCEPT #POP3
iptables -t filter -A FORWARD -i eth1 -p tcp --dport 143 -j ACCEPT #IMAP4
iptables -t filter -A FORWARD -i eth1 -p tcp --dport 989:990 -j ACCEPT
#FTPS
iptables -t filter -A FORWARD -i eth1 -p tcp --dport 993 -j ACCEPT #IMAP4S
iptables -t filter -A FORWARD -i eth1 -p tcp --dport 995 -j ACCEPT #POP3S
iptables -t filter -A FORWARD -i eth1 -p tcp --dport 465 -j ACCEPT #SMTPS
# NAT #
# TEGNet
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 5479 -j DNAT --to
192.168.0.2:5479
# BitTorrent
#iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport ? -j DNAT --to
192.168.0.2:?
# eMule's
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 2000 -j DNAT --to
192.168.0.2:2000
iptables -t nat -A PREROUTING -i ppp0 -p udp --dport 2010 -j DNAT --to
192.168.0.2:2010
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 3000 -j DNAT --to
192.168.0.3:3000
iptables -t nat -A PREROUTING -i ppp0 -p udp --dport 3010 -j DNAT --to
192.168.0.3:3010
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 4000 -j DNAT --to
192.168.0.4:4000
iptables -t nat -A PREROUTING -i ppp0 -p udp --dport 4010 -j DNAT --to
192.168.0.4:4010
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 5000 -j DNAT --to
192.168.0.5:5000
iptables -t nat -A PREROUTING -i ppp0 -p udp --dport 5010 -j DNAT --to
192.168.0.5:5010
# SQUID
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT
--to-port 3128
iptables -t nat -A PREROUTING -i eth1 -p tcp --sport 80 -j REDIRECT
--to-port 3128
*iptables -t filter -A FORWARD -j DROP*
Les llamará la atención seguramente los astericos, estos NO estan en el
script original, pero el problema que estoy teniendo es que, si la
politica por defecto de la cadena FORWARD la pongo en DROP (como esta) y
saco esta linea *iptables -t filter -A FORWARD -j ACCEPT* (que creo que
es lo mismo a que la policy este en accept..) No me me funciona NAT (es
decir el emule me da ID baja por ejemplo), ni tampoco me fuciona el
FTP.. y sin embargo estan en la cadena forward. pero no hay caso.
¿que estoy haciendo mal?
por este motivo, estoy dejando que pase casi todo a la LAN. con la linea
*...*.
Alguien sabe a que se debe esto?
Muchas gracias.
Hay un problemita de conceptos en tu idea de PREROUTING y FORWARD.
Resulta que tus reglas permiten la redirección de ciertas conexiones
entrantes a determinadas PC's de tu red. Esto está todo bien, pero lo
que pasa es que una vez que los datagramas sufren el cambio de
dirección/puerto de destino, iptables tiene que hacer la "routing
decision" para ver donde es que tiene que ir a parar estos datagramas.
Entonces, además de hacer el cambio de destinatario, hay que agregar las
reglas correspondientes para que se pueda hacer la redirección de estos
paquetes.
Una prueba de que estos datagramas pasan por la tabla FORWARD es que, si
permitís que sea hecho la redirección indiscriminada, tu conexión
"funciona" como esperado.
Saludos.
--
Miguel Da Silva
Administrador de Red
Centro de Matemática - http://www.cmat.edu.uy
Facultad de Ciencias - http://www.fcien.edu.uy
Universidad de la República - http://www.rau.edu.uy
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]