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: