Firewall con politicas Drop

Imagen de zo0m

Forums: 

Hola.
Tengo un pequeño scrip firewall el cual funciona sin problemas hasta ahora que deseo aplicar las politicas Drop. Anteriormente el firewall estaba de la siguiente manera.


#interfaz eth0 lan
#interfaz eth1 wan

iptables -F
iptables -X
iptables -Z
iptables -t nat -F

#- aceptamos el trafico para LOCALHOST

iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

#Enmascaramos las peticiones de la red lan
iptables -t nat -A POSTROUTING -s 192.168.1.1/24 -o eth1 -j MASQUERADE

#Permitimos a otras maquinas salir a través del firewall
echo 1 > /proc/sys/net/ipv4/ip_forward

#Redireccionamos las peticiones web puerto 80 al 8080 dansguardian
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

#----Abrir puertos para el envio y recepcion de correos externos
iptables -A FORWARD -s 192.168.1.1/24 -i eth1 -p tcp --dport 25 -j ACCEPT
iptables -A FORWARD -s 192.168.1.1/24 -i eth1 -p tcp --dport 110 -j ACCEPT

#----Abrimos puertos para el ftp
iptables -A FORWARD -s 192.168.1.1/24 -i eth1 -p tcp --dport 21:20 -j ACCEPT

#----Abrimos puerto para el SSH
iptables -A FORWARD -s 192.168.1.1/24 -i eth1 -p tcp --dport 22 -j ACCEPT

echo "Reglas aplicadas

Y no se que pasó, pero no resulto, no quede con internet en los equipos de la lan ni el mismo server. ¿Que sera que hice mal?

Aún no puedo verificar si tengo bien las reglas en donde abro los puertos (22,25,110,20,21). Si encuentran que tengo algo mal, se los agredesco desde ya.

Saludos y gracias.

umm aca tenes un muy buen

Imagen de falcom

umm aca tenes un muy buen firewall y hasta comentado creado por el profe EPE (espero no se moleste x postearlo) pero igual lo encontre x aca, espero te sirva
[quote]
#!/bin/sh
# iptables, by Technion
# $Id: iptables,v 1.44 2008/09/23 23:22:16 eperez Exp $
# chkconfig: 2345 12 80
# description: Script for setting IPTABLES rules
# processname: iptables

# Traduccion al espanol:
# Ing. Ernesto Perez Estevez
# http://www.ernestoperez.com/

# Si se ejecuta en Redhat, poner en YES, sino, en NO
REDHAT="YES"

# Informacion de Red, necesita ser ajustada por usted.
INTERNALIF="eth1"
INTERNALNET="192.168.1.0/24"
INTERNALBCAST="192.168.1.255"

EXTERNALIF="eth0"

# Caminos - No tocar si no se conoce.
DMESG="/bin/dmesg"
IPTABLES="`which iptables`"
MODPROBE="/sbin/modprobe"

# Esta parte permite al usuario de redhat llamar al script con

# los parametros: start/stop/restart
if [ X"$REDHAT" = X"YES" ]; then
. /etc/rc.d/init.d/functions
case "$1" in
stop)
action "Shutting down firewall:" echo

$IPTABLES -F
$IPTABLES -P FORWARD DROP
exit 0
;;
status)
echo "The status command is not supported for iptables"
exit 0
;;
restart|reload)
$0 stop
exec $0 start

;;
start)
action "Starting Firewall:" echo
;;
*)
echo "Usage: firewall (start|stop|restart)"
exit 1

esac
fi

################################################################
#Insertando los modulos. Debe hacerse automaticamente si se requiere
dmesg -n 1 #No saca la bandera de copyright
/sbin/modprobe ip_tables

/sbin/modprobe iptable_filter
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
$MODPROBE ip_queue

#
## Vaciar las reglas que puedan existir
#
# Paquetes provenientes del exterior
$IPTABLES -F INPUT

# Paquetes de la red interna hacia el exterior
$IPTABLES -F OUTPUT
# Forwarding/enmascaramiento
$IPTABLES -F FORWARD
#Tabla de NAT
$IPTABLES -t nat -F

#
#Deshabilitando ataques spoofing
#Comente esta linea si se usa IPSEC

echo 0 > /proc/sys/net/ipv4/conf/all/rp_filter

#No responder a pings de broadcast
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

#No responder a los pings - Activar si se requiere

#echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all

#Habilitando el forwarding
echo 1 >/proc/sys/net/ipv4/ip_forward

#Normalmente usted no tiene control de la ruta que un paquete sigue.

#IP Source Routing (SRR) es una forma de especificarle a un paquete la ruta
#exacta que un paqeute debe seguir. Habilitarlo es una mala idea, en forma
#general. Se desactiva así:
echo 0 >/proc/sys/net/ipv4/conf/all/accept_source_route

#Anular los TimeStamps. Se puede averiguar el uptime de un sistema
echo 0 > /proc/sys/net/ipv4/tcp_timestamps

#Habilitar SYN Cookies, previene algunos DoS
echo 1 > /proc/sys/net/ipv4/tcp_syncookies

#Dehabilitar redirects. Habilitar si no se actua como router
echo 0 >/proc/sys/net/ipv4/conf/all/accept_redirects

#Habilitar proteccion contra mensaje invalido
#Algunos routers envian mensajes invalidos que son guardados en

#log logs por el kernel. Este punto le indica al kernel no guardar
#estos datos y se protege contra un posible ataque de negacion
#debido a tener el filesystem lleno
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses

#Permitir direcciones dinamicas, Bueno para clientes dialup y xDSL cuyas IPs
#pueden variar. No es necesario para clientes dedicados
#echo "1" > /proc/sys/net/ipv4/ip_dynaddr

#Guardar a los marcianos. Paquetes que llegan en una interfaz no esperada

#Algunas tarjetas de red se niegan a trabajar. Comentar si es el caso
echo 0 >/proc/sys/net/ipv4/conf/all/log_martians

#Definir rango de puertos locales a ser usados por nuestras aplicaciones
echo "32768 61000" >/proc/sys/net/ipv4/ip_local_port_range

#Reducir posibilidad de DoS al reducir los timeouts
#Tiempo en el que linux tratará de finalizar una conexion
echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
#Tiempo para finalizar una conexión no activa
echo 1800 > /proc/sys/net/ipv4/tcp_keepalive_time

echo 1 > /proc/sys/net/ipv4/tcp_window_scaling
echo 0 > /proc/sys/net/ipv4/tcp_sack
#Maximo de conexiones SYN
echo 1280 > /proc/sys/net/ipv4/tcp_max_syn_backlog

##Activando reglas basicas

#Eliminar todo paquete sin sentido, incluye:

#-Paquetes muy pequeños para tener un encabezamiento completo ICMP/UDP/TCP
#- Paquetes TCP y UDP con cero (invalidos) puertos de origen y destino
#-Combinaciones ilegales de banderas TCP
#-Opciones TCP e IP con cero (invalido) o sobredimensionada

# o opciones despues de la opcion END-OF-OPTIONS
#-Fragmentos con longitud ilegal (ej., Ping of Death).
#Tomado de: http://www.linux-mag.com/2000-01/bestdefense_02.html

#Matar paquetes con combinaciones de banderas invalidas
$IPTABLES -A INPUT -m state --state INVALID -j DROP
$IPTABLES -A FORWARD -m state --state INVALID -j DROP

# solo activar si se tiene el paquete de ipp2p (instalar de:

# http://homen.vsb.cz/~hrb33/el4/hrb/stable/i386/RPMS/repodata/
# ipp2p y el kmod* adecuado para el kernel)
#$IPTABLES -A FORWARD -m ipp2p --ipp2p -j DROP

#$IPTABLES -t mangle -A FORWARD -m ipp2p --ipp2p -j DROP
#$IPTABLES -t nat -A PREROUTING -p tcp -i $INTERNALIF -m ipp2p --ipp2p -j DROP
#$IPTABLES -t nat -A POSTROUTING -p tcp -o $EXTERNALIF -m ipp2p --ipp2p -j DROP

# Permitir todas las conexiones en la interfaz local
#
$IPTABLES -A INPUT -i lo -j ACCEPT

#Eliminar conexiones a la interfaz local desde el mundo exterior
$IPTABLES -A INPUT -d 127.0.0.0/8 -j REJECT

#No permitir que maquinas de la red interna se conecten al smtp de otros
#servirores en internet, deshabilitar si ud usa smtp remoto
$IPTABLES -A FORWARD -s $INTERNALNET -p tcp --dport 25 -j DROP

#No permitir que esta MAC pueda navegar

#poner tantas lineas como mac se quieran bloquear
#$IPTABLES -A FORWARD -i $INTERNALIF -m mac --mac-source 00:14:51:27:c5:64 -j DROP

#Permitir trafico ilimitado de la red interna que usan direcciones validas

$IPTABLES -A INPUT -i $INTERNALIF -s $INTERNALNET -j ACCEPT
#
#IPv6 tunneling
#$IPTABLES -A INPUT -p ipv6 -j ACCEPT

#Permitir trafico del dispositivo IPSEC a la red interna
$IPTABLES -A FORWARD -i tun0 -o $INTERNALIF -j ACCEPT

#Permitir negociacion de claves
#$IPTABLES -A INPUT -p udp --dport 500 -j ACCEPT
#$IPTABLES -A INPUT -p udp --dport 4500 -j ACCEPT

#Protocolo 50 y 51, necesario para el correcto trabajo de ipsec
#$IPTABLES -A INPUT -p esp -j ACCEPT

#$IPTABLES -A INPUT -p ah -j ACCEPT

#Kill anything from outside claiming to be from internal network
$IPTABLES -A INPUT -i $EXTERNALIF -s $INTERNALNET -j REJECT

##ICMP
#No enviar pings yendo hacia dentro

#$IPTABLES -A FORWARD -p icmp --icmp-type echo-request -o $INTERNALIF -j REJECT
#Protección contra ping flood
$IPTABLES -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
#$IPTABLES -A INPUT -p icmp --icmp-type echo-request -j DROP

#Denegar icmp a direcciones broadcast
#$IPTABLES -A INPUT -p icmp -d $INTERNALBCAST -j DROP

#Permitir el resto de los ICMP
$IPTABLES -A INPUT -p icmp -j ACCEPT

#No reenviar trafico SMB
$IPTABLES -A FORWARD -o $EXTERNALIF -p tcp --dport 137 -j REJECT

$IPTABLES -A FORWARD -o $EXTERNALIF -p tcp --dport 138 -j REJECT
$IPTABLES -A FORWARD -o $EXTERNALIF -p tcp --dport 139 -j REJECT
$IPTABLES -A FORWARD -o $EXTERNALIF -p udp --dport 137 -j REJECT
$IPTABLES -A FORWARD -o $EXTERNALIF -p udp --dport 138 -j REJECT

$IPTABLES -A FORWARD -o $EXTERNALIF -p udp --dport 139 -j REJECT
$IPTABLES -A INPUT -i $EXTERNALIF -p udp --dport 137 -j REJECT
#
#Permitir el resto del trafico salir
$IPTABLES -A FORWARD -o $EXTERNALIF -i $INTERNALIF -j ACCEPT

#Permitir las respuestas entrar
$IPTABLES -A OUTPUT -m state --state NEW -o $EXTERNALIF -j ACCEPT
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -m state --state NEW -o $EXTERNALIF -j ACCEPT

$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

#Permitir a esta maquina ser un servidor DHCP para su red interna
#$IPTABLES -A INPUT -i $INTERNALIF -p tcp --sport 68 --dport 67 -j ACCEPT

#$IPTABLES -A INPUT -i $INTERNALIF -p udp --sport 68 --dport 67 -j ACCEPT

#Activar en caso de implementar openvpn, interfaces tun/tap
#y puerto 1194 para openvpn
#$IPTABLES -A INPUT -i tun+ -j ACCEPT
#$IPTABLES -A FORWARD -i tun+ -j ACCEPT

#$IPTABLES -A INPUT -i tap+ -j ACCEPT
#$IPTABLES -A FORWARD -i tap+ -j ACCEPT
#$IPTABLES -A INPUT -p udp --dport 1194 -j ACCEPT
#descomentar para usar snort inline, indicar puerto a encolar
#$IPTABLES -I INPUT -p tcp --dport 80 -j QUEUE

#De aqui en adelante, trabajamos con intentos de conexion.
#El -m limit es una protecciones contra DoS
#Primero permitimos una cierta cantidad de conexiones/Segundo
#DROP - Descartamos al resto, de tal forma que no nos neguemos nosotros mismos

#el servicio
##Servicios basicos. Descomentar para permitirlos
#Estos son puertos que estamos abriendo al exterior!!
#Si los vamos a usar en la red interna, no es necesario abrirlos aqui
#Solo para abrirlos a la red externa, a la internet

# ftp-data
#$IPTABLES -A INPUT -p tcp --dport 20 -j ACCEPT
# ftp
#$IPTABLES -A INPUT -p tcp --dport 21 -j ACCEPT
# ssh
$IPTABLES -A INPUT -p tcp --dport 22 -j ACCEPT
#telnet
#$IPTABLES -A INPUT -p tcp --dport 23 -j ACCEPT

# smtp Una conexion por segundo
#$IPTABLES -A INPUT -p tcp --dport 25 --syn -m limit --limit 2/s \
# --limit-burst 10 -j ACCEPT
#$IPTABLES -A INPUT -p tcp --dport 25 --syn -j DROP
#$IPTABLES -A INPUT -p tcp --dport 25 -j ACCEPT

#nessus
#$IPTABLES -A INPUT -p tcp --dport 1241 -j ACCEPT

# DNS
#$IPTABLES -A INPUT -p tcp --dport 53 -j ACCEPT
#$IPTABLES -A INPUT -p udp --dport 53 -j ACCEPT
# http
$IPTABLES -A INPUT -p tcp --dport 80 -j ACCEPT

# POP-3
#$IPTABLES -A INPUT -p tcp --dport 110 -j ACCEPT
#imap
#$IPTABLES -A INPUT -p tcp --dport 143 -j ACCEPT
# identd
#$IPTABLES -A INPUT -p tcp --dport 113 -j ACCEPT
# https
#$IPTABLES -A INPUT -p tcp --dport 443 -j ACCEPT

#VNC Server
#$IPTABLES -A INPUT -p tcp --dport 5801 -j ACCEPT
#$IPTABLES -A INPUT -p tcp --dport 5901 -j ACCEPT
#$IPTABLES -A INPUT -p tcp --dport 6001 -j ACCEPT
#Webmin
#$IPTABLES -A INPUT -p tcp --dport 10000 -j ACCEPT

#
##DNAT
#Modificar las direcciones y descomentar para hacer forwarding (DNAT)
MYADDR="1.2.3.4" # IP Externa

#Enviar peticiones web a una maquina interna (192.168.0.10 ?)

#$IPTABLES -A PREROUTING -t nat -i $EXTERNALIF -p tcp -d $MYADDR --dport 80 \
# -j DNAT --to 192.168.0.10:80
#$IPTABLES -A FORWARD -i $EXTERNALIF -p tcp -d 192.168.0.10 --dport 80 -j ACCEPT

#Smtp a un servidor interno
#$IPTABLES -A PREROUTING -t nat -i $EXTERNALIF -p tcp -d $MYADDR --dport 25 \
# -j DNAT --to 192.168.0.10:25
#$IPTABLES -A FORWARD -i $EXTERNALIF -p tcp -d 192.168.0.10 --dport 25 -j ACCEPT

##Puertos que deben ser denegados y guardados
$IPTABLES -A INPUT -p tcp --dport 1433 -m limit -j LOG \
--log-prefix "Firewalled packet: MSSQL "

$IPTABLES -A INPUT -p tcp --dport 1433 -j DROP

$IPTABLES -A INPUT -p tcp --dport 6670 -m limit -j LOG \
--log-prefix "Firewalled packet: Deepthrt "
$IPTABLES -A INPUT -p tcp --dport 6670 -j DROP
$IPTABLES -A INPUT -p tcp --dport 6711 -m limit -j LOG \

--log-prefix "Firewalled packet: Sub7 "
$IPTABLES -A INPUT -p tcp --dport 6711 -j DROP
$IPTABLES -A INPUT -p tcp --dport 6712 -m limit -j LOG \
--log-prefix "Firewalled packet: Sub7 "

$IPTABLES -A INPUT -p tcp --dport 6712 -j DROP
$IPTABLES -A INPUT -p tcp --dport 6713 -m limit -j LOG \
--log-prefix "Firewalled packet: Sub7 "
$IPTABLES -A INPUT -p tcp --dport 6713 -j DROP

$IPTABLES -A INPUT -p tcp --dport 12345 -m limit -j LOG \
--log-prefix "Firewalled packet: Netbus "
$IPTABLES -A INPUT -p tcp --dport 12345 -j DROP
$IPTABLES -A INPUT -p tcp --dport 12346 -m limit -j LOG \

--log-prefix "Firewalled packet: Netbus "
$IPTABLES -A INPUT -p tcp --dport 12346 -j DROP
$IPTABLES -A INPUT -p tcp --dport 20034 -m limit -j LOG \
--log-prefix "Firewalled packet: Netbus "

$IPTABLES -A INPUT -p tcp --dport 20034 -j DROP
$IPTABLES -A INPUT -p tcp --dport 31337 -m limit -j LOG \
--log-prefix "Firewalled packet: BO "
$IPTABLES -A INPUT -p tcp --dport 31337 -j DROP

$IPTABLES -A INPUT -p tcp --dport 6000 -m limit -j LOG \
--log-prefix "Firewalled packet: XWin "
$IPTABLES -A INPUT -p tcp --dport 6000 -j DROP

$IPTABLES -A INPUT -p udp --dport 33434:33523 -j DROP

#No guardar ident porque es muy usado por servidores irc
$IPTABLES -A INPUT -p tcp --dport 113 -j REJECT

#No guardar IGMP, muchas personas reciben enorme cantidad de este
$IPTABLES -A INPUT -p igmp -j REJECT

#No guardar http ni https pues navegar por largos periodos causan muchas
#conexiones caidas y llenan nuestros logs.
$IPTABLES -A INPUT -p tcp --dport 80 -j REJECT
$IPTABLES -A INPUT -p tcp --dport 443 -j REJECT

##Reglas de captura generales
#iptables viene a estas si no han matcheado en ninguna de las previas
#No tiene sentido guardarlas, no es más que ruido
$IPTABLES -A INPUT -p tcp --syn -m limit --limit 5/minute -j LOG \

--log-prefix "Firewalled packet:"
$IPTABLES -A FORWARD -p tcp --syn -m limit --limit 5/minute -j LOG \
--log-prefix "Firewalled packet:"

#Reject
$IPTABLES -A INPUT -p tcp -j REJECT --reject-with tcp-reset

$IPTABLES -A INPUT -p all -j DROP

$IPTABLES -A FORWARD -p tcp -j REJECT --reject-with tcp-reset
$IPTABLES -A FORWARD -p all -j DROP
#Accept it anyway if it's only output
$IPTABLES -A OUTPUT -j ACCEPT

#redireccionamiento del puerto 80 al 3128
#$IPTABLES -t nat -A PREROUTING -i $INTERNALIF -p tcp --dport 80 -j REDIRECT --to-port 3128

#Logueamos y descartamos paquetes de la red local intentando salir
$IPTABLES -A FORWARD -p tcp --dport 25 -j LOG

$IPTABLES -A FORWARD -p tcp --dport 25 -j DROP
$IPTABLES -A OUTPUT -p tcp --dport 25 -j DROP

#Enmascarar conexiones internar yendo hacia fuera.
#Comentar si no se desea proxy transparente
#Recordar que si se permiten conexiones desde el interior, los clientes

#no usarian el proxy haciendonos perder ancho de banda por no cache
$IPTABLES -A POSTROUTING -t nat -o $EXTERNALIF -j MASQUERADE

exit 0[/quote]
Pero si quieres empezar con politicas drop x default empieza asi:

iptables -F
iptables -X
iptables -Z
iptables -t nat -F

## politica por defecto: DROP
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

Además de lo posteado por

Imagen de damage

Además de lo posteado por los amigos, veo algo errado en es script original posteado, en todos lados tienes esto declarado

192.168.1.1/24

Pero deberia ser:

192.168.1.0/24

Además veo esto que confundes eth1 y eth0 en en enmascaramiento dices que eth1 es la que tiene salida al INET, es eso asi? porque si es asi esto esta incorrecto:

#----Abrir puertos para el envio y recepcion de correos externos
iptables -A FORWARD -s 192.168.1.1/24 -i eth1 -p tcp --dport 25 -j ACCEPT
iptables -A FORWARD -s 192.168.1.1/24 -i eth1 -p tcp --dport 110 -j ACCEPT

#----Abrimos puertos para el ftp
iptables -A FORWARD -s 192.168.1.1/24 -i eth1 -p tcp --dport 21:20 -j ACCEPT

#----Abrimos puerto para el SSH
iptables -A FORWARD -s 192.168.1.1/24 -i eth1 -p tcp --dport 22 -j ACCEPT

En todas estas lineas deberias poner eth0 no eth1 ya que el forward lo debes hacer desde tu lado LAN :?, creo te has confundio, corrige los errores y prueba de a poco.

Nosé encuentro algo extraño,

Imagen de zo0m

Nosé encuentro algo extraño, coloque las políticas scrip en DROP, y en ella no tenia abierto el puerto 22 para conectarme por ssh y dije: "vere si me conecta" y pude conectarme sin problemas desde un equipo al server (estoy en la misma red). Se supone que si las politicas estan en drop, y yo no he abierto algún puerto especifico no debería por que tener trafico por ese puerto. ¿?

Aquí dejo el script.

#interfaz eth0 lan
#interfaz eth1 wan

#FLUSH de reglas
iptables -F
iptables -X
iptables -Z
iptables -t nat -F

#politica por defecto: drop
iptables -p INPUT DROP
iptables -p OUTPUT DROP
iptables -p FORWARD DROP

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j MASQUERADE

#Permitimos a otras maquinas salir a través del firewall
echo 1 > /proc/sys/net/ipv4/ip_forward

#redirecciono el puerto 80 al 8080 dansguardian
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

#Abrir puertos para el envio y recepcion de correos externos
iptables -A FORWARD -s 192.168.0.0/24 -i eth0 -p tcp --dport 25 -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/24 -i eth0 -p tcp --dport 110 -j ACCEPT

#Abrir puerto de FTP
iptables -A FORWARD -s 192.168.1.0/24 -i eth0 -p tcp --dport 20:21 -j ACCEPT

echo "Reglas aplicadas"

Por cierto gracias @damage, por el alcance que me has echo, había modificado tanto el script y como estoy recién en esto,no me percate de eso de las interfaces. Gracias!!

____________________________________
Me gusta aprender, me gusta Linux !!

He tratado de darle vueltas

Imagen de zo0m

He tratado de darle vueltas al script, pero aún así no funciona al 100%, lo que pasa es que tengo internet (puedo abrir el msn, skype) pero no puedo ver ninguna pagina web, aparte que con las politicas en drop luego que reinicio el equipo, se demora muchisimo en levantar gnome (tengo interfaz grafica para efectos de poder trabajar mejor).


#FLUSH de reglas
iptables -F
iptables -X
iptables -Z
iptables -t nat -F

#encabezado en drop
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

#Activacion del NAT y reenvio de paquetes
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j MASQUERADE

#Permitimos a otras maquinas salir a través del firewall
echo 1 > /proc/sys/net/ipv4/ip_forward

#Acceso localhost a servicios
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -i lo -j ACCEPT

#### Empezamos con las reglas ####

#las peticiones de destino el 3128 (SQUID) sean redirigidas al puerto 8080
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

#Abrir puertos para el envio y recepcion de correos externos
iptables -A FORWARD -s 192.168.0.0/24 -i eth0 -p tcp --dport 25 -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/24 -i eth0 -p tcp --dport 110 -j ACCEPT

#Acceso FTP
iptables -A FORWARD -s 192.168.1.0/24 -i eth0 -p tcp --dport 20:21 -j ACCEPT

# Acceso SSH
iptables -A INPUT -s 0.0.0.0 -p tcp --sport 22 -j ACCEPT
iptables -A OUTPUT -s 0.0.0.0 -p tcp --dport 22 -j ACCEPT

# Acceso a paginas https
iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 443 -j ACCEPT

#Acceso por webmin puerto 10000
iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 10000 -j ACCEPT

Cualquier sugerencia sera muy bien aceptada.

Desde ya muchisimas gracias.

Saludos

____________________________________
Me gusta aprender, me gusta Linux !!

Esto está mal. Nunca un

Imagen de acl

Esto está mal. Nunca un paquete que está por salir, va a entrar. Cambia -i por -o


iptables -A OUTPUT -i lo -j ACCEPT

Y veo que también te falta la regla de OUTPUT que acepta paquetes hacia el puerto 80 para el squid.


iptables -A OUTPUT -o eth1 --dport 80 -j ACCEPT

Asumiendo que la interfaz que va al internet es eth1

Ok, ya corregi lo que me

Imagen de zo0m

Ok, ya corregi lo que me resaltas. Pero una duda, se supone que el firewall esta por defecto en drop, osea los puertos cerrados. Y yo en la medida que necesite habilitar alguno lo hago. En este caso tengo abierto el puerto 25 y 110 con las siguientes reglas:


#Abrir Puertos Correos22 y 110
-A FORWARD -s 192.168.1.0/24 -i eth0 -p tcp --dport 25 -j ACCEPT
iptables -A FORWARD -s 192.168.1.0/24 -i eth0 -p tdp --dport 110 -j ACCEPT

cuando yo hago un nmap -v localhost solo muestra abierto los puertos:


iptables Scanning localhost (127.0.0.1) [1714 ports]
Discovered open port 22/tcp on 127.0.0.1
Discovered open port 8080/tcp on 127.0.0.1
Discovered open port 631/tcp on 127.0.0.1
Discovered open port 3128/tcp on 127.0.0.1
Discovered open port 10000/tcp on 127.0.0.1
Completed SYN Stealth Scan at 13:18, 0.13s elapsed (1714 total ports)
Host localhost (127.0.0.1) appears to be up ... good.
Interesting ports on localhost (127.0.0.1):
Not shown: 1709 closed ports
PORT STATE SERVICE
22/tcp open ssh
631/tcp open ipp
3128/tcp open squid-http
8080/tcp open http-proxy
10000/tcp open snet-sensor-mgmt

Tengo la duda en eso, si acaso estoy abriendo bien los puertos o no, por que no figura ni el 25, 110 y 80.

Desde ya, Muchas gracias.

Saludos.!

____________________________________
Me gusta aprender, me gusta Linux !!

Si no me equivoco, el

Imagen de deathUser

Si no me equivoco, el comando:
nmap -v localhost

Te va a mostrar los puertos que están escuchando en localhost, nada que ver con las reglas de forwarding de tu firewall.

bye
;:)

Osea, para ver si acaso las

Imagen de zo0m

Osea, para ver si acaso las políticas estan funcionando, basta con el funcionamiento del comando: iptables -nvL y que los servicios asociado al puerto funcionen de forma optima?

Gracias por la aclaración.

____________________________________
Me gusta aprender, me gusta Linux !!

Las reglas de iptables se

Imagen de deathUser

Las reglas de iptables se aplicane en un orden, así que deberías ver si el orden es el correcto (el que necesitas) y pues si los servicios funcionan de la manera que necesitas, pues está bien ...

bye
;)

Páginas