[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Pensaba que ya tenía dominado IPTABLES.



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hola a todos.

Perdonar que os de la lata pero es que he modificado mi script de
iptables para redirigir un servicio a una máquina de la LAN y no consigo
que funcione.

No entiendo el porque, pues lo he tenido funcionando y ahora no consigo
dar con la regla adecuada.

Lo que pretendo es redirigir un puerto en el firewall para ssh (distinto
al 22) y que lo mande a una máquina de la lan al puerto 22, para que
este atienda la petición ssh.

El servidor ssh de la lan, funciona perfectamente. Lo he probado desde
dentro de la lan. Pero si intento acceder desde fuera no lo consigo.

Veréis en el script que la regla que maneja ese servicio se llama
"server-freenx". Realmente lo que quiero es poder acceder desde fuera
con un servicio de freenx, pero como este usa ssh para la conexión, pues
por eso abro ssh.

Os pego el script.

Perdon por lo largo que es.
- -------------------------------

#!/bin/bash

I_EXT=eth0
I_LAN=eth1
I_DMZ=eth2
I_VPN=tun0

LAN=192.168.1.0/24
FIREWALL=192.168.1.X
PABLOPORTATIL=192.168.1.X
BRULI=192.168.1.X

case "$1" in
	start)
			
		#Limpieza de reglas.
		echo -n "Limpiando reglas iptables: "
		iptables -F
		iptables -X
		iptables -Z
		iptables -t nat -F
		echo "hecho."
		
		#Cargando modulos.
		echo -n "Cargando modulos: "
		/sbin/depmod -a
		modprobe ip_tables
		modprobe ip_conntrack
		modprobe iptable_filter
		modprobe iptable_nat
		modprobe ipt_state
		modprobe ipt_MASQUERADE
		modprobe ipt_REDIRECT
		modprobe ipt_ULOG
		modprobe tun
		echo "hecho."		


		#Forwarding.
		echo -n "Activando forwarding: "
		echo "1"> /proc/sys/net/ipv4/ip_forward
		echo "hecho."
		
		#Política por defecto.
		echo -n "Aplicando política: "
		iptables -P INPUT DROP
		iptables -P OUTPUT DROP
		iptables -P FORWARD ACCEPT
		#iptables -t nat -P PREROUTING DROP
		#iptables -t nat -P POSTROUTING DROP
		echo "hecho."
		
		#NAT

		echo -n "Enmascarando la LAN y redirección proxy: "
		iptables -t nat -A PREROUTING -i $I_LAN -p tcp -s $LAN --dport 80 -j
REDIRECT --to-port 3128
		iptables -t nat -A POSTROUTING -s $LAN -o $I_EXT -j MASQUERADE
		echo "hecho."
		
		#Interfaz lo.
		echo -n "Activando interfaz lo: "
		iptables -A INPUT -i lo -j ACCEPT
		iptables -A OUTPUT -o lo -j ACCEPT
		echo "hecho."
		
		#Reglas.
		echo -n "Creando nuevas reglas: "
		iptables -N ext-lan
		iptables -N ext-firewall	
		iptables -N lan-ext
		iptables -N lan-firewall
		iptables -N firewall-lan
		iptables -N firewall-ext
		iptables -N server-web
		iptables -N server-mail
		iptables -N server-ssh
		iptables -N server-freenx
		iptables -N server-ssl
		iptables -N bloq-scan
		iptables -N flags-tcp
		iptables -N openvpn
		echo "hecho."	
# ----------------------------------		
		echo "Aplicando reglas de seguridad: "

		echo -n "--Definiendo regla blog-scan: "
		iptables -A bloq-scan -j DROP
		echo "hecho."

		echo -n "--Bloqueando y logeando escaneos NMAP-XMAS: "
		iptables -A flags-tcp -p tcp --tcp-flags ALL FIN,URG,PSH -m limit
- --limit 5/minute -j ULOG --ulog-nlgroup 1 --ulog-prefix "NMAP_XMAS_SCAN: "
		iptables -A flags-tcp -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP
		echo "hecho."

		echo -n "--Bloqueando y logeando escaneos SYN/RST: "
		iptables -A flags-tcp -p tcp --tcp-flags SYN,RST SYN,RST -m limit
- --limit 5/minute -j ULOG --ulog-nlgroup 1 --ulog-prefix "SYN/RST_SCAN:"
		iptables -A flags-tcp -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
		echo "hecho."

		echo -n "--Bloqueando y logeando escaneos SYN/FIN: "
		iptables -A flags-tcp -p tcp --tcp-flags SYN,FIN SYN,FIN -m limit
- --limit 5/minute -j ULOG --ulog-nlgroup 1 --ulog-prefix "SYN/FIN_SCAN:"
		iptables -A flags-tcp -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
		echo "hecho."

		echo -n "--Bloqueando y logeando escaneos PSH/FIN: "
		iptables -A flags-tcp -p tcp --tcp-flags PSH,FIN PSH,FIN -m limit
- --limit 5/minute -j ULOG --ulog-nlgroup 1 --ulog-prefix "PSH/FIN_SCAN:"
		iptables -A flags-tcp -p tcp --tcp-flags PSH,FIN PSH,FIN -j DROP
		echo "hecho."

		echo -n "--Bloqueando y logeando el NULL SCAN: "
		iptables -A flags-tcp -p tcp --tcp-flags ALL NONE -m limit --limit
5/minute -j ULOG --ulog-nlgroup 1 --ulog-prefix "NULL_SCAN:"
		iptables -A flags-tcp -p tcp --tcp-flags ALL NONE -j DROP
		echo "hecho."

		echo -n "--Activando protección anti smurf: "
		echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
		echo "hecho."

		echo -n "--Activando protección contra source route spoofing: "
		echo 0 >/proc/sys/net/ipv4/conf/all/accept_source_route
		echo "hecho."

		echo -n "--Registrando direcciones marcianas: "
		echo 1 >/proc/sys/net/ipv4/conf/all/log_martians
		echo "hecho."
#-------------------------------------
		echo "Iniciando reglas de redirecciones:"		

		echo -n "--Puerto openvpn: "
		iptables -A INPUT -i $I_EXT -p udp --dport 1194 -j openvpn
		iptables -A OUTPUT -o $I_EXT -p udp --sport 1194 -j openvpn
		iptables -A INPUT -i $I_VPN -j openvpn
		iptables -A OUTPUT -o $I_VPN -j openvpn
		iptables -A FORWARD -i $I_VPN -j openvpn
		iptables -A openvpn -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
		iptables -A openvpn -j ULOG --ulog-nlgroup 1 --ulog-prefix "OPENVPN:"
		iptables -A openvpn -j DROP
		echo "hecho."
		
		echo -n "--Redirección freenx: "
		iptables -t nat -A PREROUTING -i $I_EXT -p tcp --dport 1200 -m state
- --state NEW,ESTABLISHED,RELATED -j DNAT --to $BRULI:22
		iptables -A FORWARD -i $I_EXT -p tcp -d $BRULI --dport 22 -j server-freenx
		iptables -A FORWARD -o $I_EXT -p tcp -s $BRULI --sport 22 -j server-freenx
		iptables -A server-freenx -m state --state NEW,ESTABLISHED,RELATED -j
ACCEPT
		iptables -A server-freenx -j ULOG --ulog-nlgroup 1 --ulog-prefix
"SERVER-FREENX:"
		iptables -A server-freenx -j DROP
		echo "hecho."
		

		echo -n "--Redirección ssh: "
		iptables -A INPUT -i $I_EXT -p tcp --dport 1060 -j server-ssh
		iptables -A OUTPUT -o $I_EXT -p tcp --sport 1060 -j server-ssh
		iptables -A server-ssh -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT	
		iptables -A server-ssh -j ULOG --ulog-nlgroup 1 --ulog-prefix
"SERVER-SSH:"
		iptables -A server-ssh -j DROP
		echo "hecho."


# -------------------------------------	
		echo "Introduciendo valores y políticas a las reglas: "

		echo -n "--Regla ext-lan: "
		iptables -A FORWARD -i $I_EXT -o $I_LAN	 -j ext-lan
		iptables -A ext-lan -m state --state ESTABLISHED,RELATED -j ACCEPT
		iptables -A ext-lan -j ULOG --ulog-nlgroup 1 --ulog-prefix "EXT->LAN:"
		iptables -A ext-lan -j DROP
		echo "hecho."

		echo -n "--Regla ext-firewall: "
		iptables -A INPUT -i $I_EXT -j ext-firewall
		iptables -A ext-firewall -m state --state ESTABLISHED,RELATED -j ACCEPT
		iptables -A ext-firewall -j ULOG  --ulog-nlgroup 1 --ulog-prefix
"EXT->FIREWALL:"
		iptables -A ext-firewall -j DROP
		echo "hecho."

		echo -n "--Regla lan-ext: "
		iptables -A FORWARD -i $I_LAN -o $I_EXT -j lan-ext
		iptables -A lan-ext -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
		iptables -A lan-ext -j ULOG --ulog-nlgroup 1 --ulog-prefix "LAN->EXT:"
		iptables -A lan-ext -j DROP
		echo "hecho."

		echo -n "--Regla lan-firewall: "
		iptables -A INPUT -i $I_LAN -j lan-firewall
		iptables -A lan-firewall -s $LAN -d $FIREWALL -m state --state
NEW,ESTABLISHED,RELATED -j ACCEPT
		iptables -A lan-firewall -j ULOG --ulog-nlgroup 1 --ulog-prefix
"LAN->FIREWALL:"
		iptables -A lan-firewall -j DROP
		echo "hecho."

		echo -n "--Regla firewall-lan: "
		iptables -A OUTPUT -o $I_LAN -j firewall-lan
		iptables -A firewall-lan -s $FIREWALL -d $LAN -m state --state
NEW,ESTABLISHED,RELATED -j ACCEPT
		iptables -A firewall-lan -j ULOG --ulog-nlgroup 1 --ulog-prefix
"FIREWALL->LAN:"
		iptables -A firewall-lan -j DROP
		echo "hecho."

		echo -n "--Regla firewall-ext: "
		iptables -A OUTPUT -o $I_EXT -j firewall-ext
		iptables -A firewall-ext -m state --state NEW,ESTABLISHED,RELATED -j
ACCEPT
		iptables -A firewall-ext -j ULOG  --ulog-nlgroup 1 --ulog-prefix
"FIREWALL->EXT:"
		iptables -A firewall-ext -j DROP
		echo "hecho."

# --------------------------------------
		##Cerrar
		#Conexiones no necesarias.
		echo -n "Cerrando conexiones no necesarias: "
		iptables -A INPUT -i $I_EXT -m state --state NEW,INVALID -j DROP
				
		iptables -A OUTPUT -o $I_EXT -m state --state NEW,INVALID -j DROP
				
		iptables -A FORWARD -i $I_EXT -m state --state NEW,INVALID -j DROP
		echo "hecho."
		;;
		
	stop)
		echo -n "Parando el firewall: "
		iptables -F INPUT
		iptables -F OUTPUT
		iptables -F FORWARD
		iptables -F
		iptables -t nat -F
		iptables -P INPUT ACCEPT
		iptables -P OUTPUT ACCEPT
		iptables -P FORWARD ACCEPT
		echo "hecho."
		;;
		
	restart)
		$0 stop
		echo -n "Reiniciando el firewall: "
		sleep 2
		$0 start
		echo "hecho."
		;;
		
	status)
		iptables -L -n
		;;
	*)
		echo "usar: $0 {start|stop|restart|status}"
		exit 1
esac
exit 0
- ----------------


Espero que me podáis ayudar.

- --


< ¡¡Nos vemos!!  >
 ----------------------------
    \
     \
                                   .::!!!!!!!:.
  .!!!!!:.                        .:!!!!!!!!!!!!
  ~~~~!!!!!!.                 .:!!!!!!!!!UWWW$$$
      :$$NWX!!:           .:!!!!!!XUWW$$$$$$$$$P
      $$$$$##WX!:      .<!!!!UW$$$$"  $$$$$$$$#
      $$$$$  $$$UX   :!!UW$$$$$$$$$   4$$$$$*
      ^$$$B  $$$$\     $$$$$$$$$$$$   d$$R"
        "*$bd$$$$      '*$$$$$$$$$$$o+#"
             """"          """""""
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFGufU5K7lGsMchFswRAj/LAJ9T2pkwJIaLgjOcpYcIwfiwTacauACgtQfM
w/SxrAIZKXKA4QpxjLnMOH0=
=1G3T
-----END PGP SIGNATURE-----



Reply to: