
¿Puede iptables eliminar automáticamente una sesión de salida establecida después de ciertos segundos, por ejemplo, 30 segundos? desde su lanzamiento? Pero quiero restringirlo solo para los puertos de destino 80 y 443. El propósito es eliminar las conexiones TCP establecidas no utilizadas que pertenecen a algunas aplicaciones en funcionamiento, por ejemplo, Chrome, Teamviewer. Lo intenté con módulos recientes y limitados pero sin éxito. ¿Puede ser que IPTables no tenga función para restringir la conexión según su duración o no sé algo?
Ya leí algunos temas relacionados: https://stackoverflow.com/questions/20327518/need-to-drop-establecido-conexiones-con-iptables
iptables: descartar conexiones establecidas específicas después de X horas
Etcétera.
¿Podrías ayudarme con algún script o aplicación, por favor? ¿Puede ser que no haya forma de hacerlo con IPT?
Mi tabla de inicio:
¿Puede iptables eliminar automáticamente una sesión de salida establecida después de ciertos segundos, por ejemplo, 30 segundos? desde su lanzamiento? Pero quiero restringirlo solo para los puertos de destino 80 y 443. El propósito es eliminar las conexiones TCP establecidas no utilizadas que pertenecen a algunas aplicaciones en funcionamiento, por ejemplo, Chrome, Teamviewer. Lo intenté con módulos recientes y limitados pero sin éxito. ¿Puede ser que IPTables no tenga función para restringir la conexión según su duración o no sé algo?
Ya leí algunos temas relacionados: https://stackoverflow.com/questions/20327518/need-to-drop-establecido-conexiones-con-iptables
iptables: descartar conexiones establecidas específicas después de X horas
Etcétera.
¿Podrías ayudarme con algún script o aplicación, por favor? ¿Puede ser que no haya forma de hacerlo con IPT?
Mi mesa de casa:
echo Kernel modules
#
modprobe ip_conntrack
modprobe ip_conntrack_ftp
################################################################################
echo Reset iptables
#
iptables -F
iptables -F -t nat
iptables -F -t raw
iptables -F -t mangle
iptables -X
iptables -X -t nat
iptables -X -t raw
iptables -X -t mangle
iptables -Z
iptables -Z -t nat
iptables -Z -t raw
iptables -Z -t mangle
################################################################################
echo Default policy
#
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
################################################################################
echo Logging INPUT,OUTPUT
#
iptables -A INPUT -j LOG --log-prefix="INPUT chain"
iptables -A OUTPUT -j LOG --log-prefix="OUTPUT chain"
################################################################################
echo Allow local
#
iptables -A INPUT -i lo -s 127.0.0.0/8 -j ACCEPT
iptables -A OUTPUT -o lo -d 127.0.0.0/8 -j ACCEPT
################################################################################
echo Allow icmp out
#
iptables -A OUTPUT -p icmp -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p icmp -m state --state ESTABLISHED -j ACCEPT
################################################################################
echo Allow port 53 out
#
iptables -A OUTPUT -p udp --sport 1024:65535 --dport 53 \
-m state --state NEW -j ACCEPT
iptables -A INPUT -p udp --sport 53 --dport 1024:65535 \
-m state --state ESTABLISHED -j ACCEPT
################################################################################
echo Allow ports 20,21 out
#
iptables -A OUTPUT -p tcp -m tcp --sport 1024:65535 \
--dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --sport 1024:65535 \
-m multiport --dports 20,1024:65535 \
-m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -m tcp -m multiport --sports 20,21,1024:65535 \
--dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
################################################################################
echo Allow ports 80,443 out
#
iptables -A OUTPUT -p tcp --sport 1024:65535 -m multiport --dports 80,443 \
-m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -m tcp -m multiport --sports 80,443 \
--dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
################################################################################
echo Allow port 123 out
#
iptables -A OUTPUT -p udp -m udp --sport 123 \
--dport 123 -m state --state NEW -j ACCEPT
iptables -A INPUT -p udp -m udp --sport 123 \
--dport 123 -m state --state ESTABLISHED -j ACCEPT
################################################################################
#
##iptables -A INPUT -j REJECT
##iptables -A FORWARD -j REJECT
##iptables -A OUTPUT -j REJECT
Respuesta1
Sin ver:http://linux.die.net/man/8/iptables. Sólo existe esto (no lo que pediste):
... tiempo
Esto coincide si la hora/fecha de llegada del paquete está dentro de un rango determinado. Todas las opciones son facultativas.
--timestart value Coincide solo si está después de 'valor' (incluido, formato: HH:MM; predeterminado 00:00).
--timestop value Coincide sólo si está antes de 'valor' (incluido, formato: HH:MM; predeterminado 23:59).
--days listafdays Coincide sólo si hoy es uno de los días indicados. (formato: lunes, martes, miércoles, jueves, viernes, sábado, domingo; predeterminado todos los días)
--datestart fecha Coincide sólo si es posterior a 'fecha' (Inclusivo, formato: AAAA[:MM[:DD[:hh[:mm[:ss]]]]] ; h,m,s comienzan desde 0 ; predeterminado a 1970)
--datestop fecha Coincide solo si es anterior a 'fecha' (Inclusivo, formato: AAAA[:MM[:DD[:hh[:mm[:ss]]]]] ; h,m,s comienzan desde 0 ; predeterminado hasta 2037)
...
Usted pidió "duración" y no "tiempo". Podrías hackear algo, pero una solución en Source es la más rápida y poderosa.
Puede parchear el kernel y recompilarlo.
Verhttp://www.netfilter.org/documentation/HOWTO/netfilter-extensions-HOWTO-3.htmlen la Sección "conntrack patch", el Comando "ctexpire". Si se siente cómodo escribiendo un poco de código y parcheando su kernel con un filtro personalizado, podemos ayudarlo (de lo contrario, la respuesta es "no, no puede hacer eso, no existe tal comando de filtro").