ayuda cerrar puertos y denegar direccion ip con iptables en este script

Imagen de davichito666
0 puntos

hola muchas gracias por la ayuda les comento que logre armar la red servidor de internet con ubuntu 8.10 dos tarjetas de red una recibe la conexion de internet en dhcp y la otra con ip estatica 192.168.1.1, el cliente windows vista con ip estatica 192.168.1.2 conectadas en red con un switch, hasta ahi la maquina windows podia ver las carpetas compartidas en ubuntu y en ubuntu aparecia el equipo windows pero no mostraba ninguna carpeta compartida, decidi pasar directamente a la parte de iptables con el siguiente script:

#### SCRIPT DE CONFIGURACION DE IPTABLES ####
#!/bin/bash

# Dispositivo de red de internet
EXIF="eth1"
# Dispositivo de red local
INIF="eth0"

# Puertos tcp que se desean redirigir (separados por espacios)
puertosTCP="7778"
# Puertos udp que se desean redirigir (separados por espacios)
puertosUDP="7779"
# ip a la que se le redirigen los puertos
pc2="192.168.0.2"

fail=0

[ -f /etc/default/rcS ] && . /etc/default/rcS
. /lib/lsb/init-functions

log_begin_msg "Aplicando Reglas de Firewall..."

## Borrado de reglas anteriores
iptables -F || fail=1
iptables -X || fail=1
iptables -Z || fail=1
iptables -t nat -F || fail=1

## Establecemos politica por defecto
iptables -P INPUT ACCEPT || fail=1
iptables -P OUTPUT ACCEPT || fail=1
iptables -P FORWARD DROP || fail=1
iptables -t nat -P PREROUTING ACCEPT || fail=1
iptables -t nat -P POSTROUTING ACCEPT || fail=1

# Marcar paquetes salientes con su ip de origen
iptables -t nat -A POSTROUTING -o $EXIF -j MASQUERADE || fail=1
# Reenvio de IP
echo 1 > /proc/sys/net/ipv4/ip_forward || fail=1

# Aceptar paquetes para reenviar procedentes de la red local
iptables -A FORWARD -i $INIF -o $EXIF -j ACCEPT || fail=1
# Aceptar paquetes para reenviar procedentes de internet de conexiones ya establecidas
iptables -A FORWARD -i $EXIF -o $INIF -m state --state RELATED,ESTABLISHED -j ACCEPT || fail=1

##Se redirigen los puertos configurados arriba

for puerto in $puertosTCP
do
iptables -A FORWARD -i $EXIF -o $INIF -p tcp --dport $puerto -j ACCEPT || fail=1
iptables -t nat -A PREROUTING -i $EXIF -p tcp --dport $puerto -j DNAT --to $pc2:$puerto || fail=1
done

for puerto in $puertosUDP
do
iptables -A FORWARD -i $EXIF -o $INIF -p udp --dport $puerto -j ACCEPT || fail=1
iptables -t nat -A PREROUTING -i $EXIF -p udp --dport $puerto -j DNAT --to $pc2:$puerto || fail=1
done

# Se muestran los resultados
log_end_msg $fail

if [ $fail -eq 0 ]
then
log_success_msg "Verifique que lo que se aplica con: iptables -L -n."
else
log_warning_msg "Se ha producido un error al aplicar alguna de las reglas"
fi

#### FIN SCRIPT DE CONFIGURACION DE IPTABLES ####

comente las lineas de redirigir los puertos, al aplicarlo funciona bien en la maquina windows hay internet pero sucede algo curioso despues de unos cuantos minutos la conexion de internet se pierde, checo en la maquina ubuntu y tampoco me abre ninguna pagina de internet,lo que hago es quitar el cable que da acceso a internet de la maquina ubuntu y volver a conectarlo reinicio las conexiones de red y regresa, ¿que crees que suceda?.

en ninguna de las dos maquinas puedo ver las carpetas compartidas ni tampoco se ven los equipos andando iptables, investigando creo que hay que agregar una linea al iptables para permitir el acceso al puerto que usa samba, me podrias decir si es cierto y cual es la linea y en que parte la agrego al script?

¿como podria modificar este script para agregarle las lineas necesarias para cerrar puertos y quitar internet a una maquina de la red especificando su ip o a toda la red?

la verdad que este script esta algo diferente y me confunde por que por aqui vi otros pero llevan rangos de direcciones ip y a este no le veo por ninguna parte esos rangos pero si me funciona y es lo que me confunde para entender su funcionamiento.

les agradecere su ayuda por que este es mi primera experiencia con linux y ubuntu y de 0 pos ya no estoy tan mal gracias a ustedes y al foro he aprendido mucho y espero que me sigan ayudando que creo que ya casi esta listo este proyecto que me he propuesto terminar.

muchas gracias

Imagen de mama21mama
+1
0
-1

Hola probaste hacer todo ese embrollo con una gui?... Aqui esta algo muy facil Gufw.

iptables es por si misma una utilidad muy potente, pero su sintaxis puede volverse complicada y difícil de entender por estas razones los desarrolladores de Ubuntu decidieron crear ufw ("La razón por la que ufw fue programado es que queríamos crear un cortafuegos a nivel servidor que fuera un poco más para "seres humanos"), que sería más simple. Ahora, en cuanto al lado gráfico de las cosas, Firestarter ya existía, pero ¿Por qué no hacer una Interfaz aún más sencilla de usar, para escritorios de "seres humanos", que funcione con ufw? Aquí es donde Gufw aparece.

Saludos


mi morochia
Ubuntu Usuario # 25132
+1
0
-1

mi blog
mama libre