
O iptables pode eliminar automaticamente uma sessão de saída estabelecida após determinados segundos, por exemplo, 30 segundos. desde o seu lançamento? Mas quero restringi-lo apenas para as portas de destino 80 e 443. O objetivo é descartar conexões TCP estabelecidas não utilizadas pertencentes a alguns aplicativos de trabalho, por exemplo, Chrome, Teamviewer. Tentei com módulos recentes e limitados, mas sem sucesso. Pode ser que o IPTables não tenha a função de restringir a conexão pela duração ou não sei de uma coisa?
Já li alguns tópicos relacionados: https://stackoverflow.com/questions/20327518/need-to-drop-established-connections-with-iptables
iptables - descartando conexões estabelecidas específicas após X horas
E assim por diante.
Você poderia me ajudar com algum script ou aplicativo, por favor? Será que não há como fazer isso com o IPT?
Minha tabela inicial:
O iptables pode eliminar automaticamente uma sessão de saída estabelecida após determinados segundos, por exemplo, 30 segundos. desde o seu lançamento? Mas quero restringi-lo apenas para as portas de destino 80 e 443. O objetivo é descartar conexões TCP estabelecidas não utilizadas pertencentes a alguns aplicativos de trabalho, por exemplo, Chrome, Teamviewer. Tentei com módulos recentes e limitados, mas sem sucesso. Pode ser que o IPTables não tenha a função de restringir a conexão pela duração ou não sei de uma coisa?
Já li alguns tópicos relacionados: https://stackoverflow.com/questions/20327518/need-to-drop-established-connections-with-iptables
iptables - descartando conexões estabelecidas específicas após X horas
E assim por diante.
Você poderia me ajudar com algum script ou aplicativo, por favor? Será que não há como fazer isso com o IPT?
Minha 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
Responder1
Não, veja:http://linux.die.net/man/8/iptables. Existe apenas isso (não o que você pediu):
... tempo
Isso corresponde se a hora/data de chegada do pacote estiver dentro de um determinado intervalo. Todas as opções são facultativas.
--timestart value Corresponde apenas se estiver depois de 'value' (inclusive, formato: HH:MM; padrão 00:00).
--timestop value Corresponde apenas se estiver antes de 'value' (Inclusive, formato: HH:MM; padrão 23:59).
--days listofdays Corresponde apenas se hoje for um dos dias indicados. (formato: Seg, Ter, Quarta, Qui, Sexta, Sábado, Dom; padrão todos os dias)
--datestart date Corresponde apenas se for depois de 'data' (inclusive, formato: AAAA[:MM[:DD[:hh[:mm[:ss]]]]] ; h,m,s start from 0 ; padrão até 1970)
--datestop data Corresponde apenas se for anterior a 'data' (inclusive, formato: AAAA[:MM[:DD[:hh[:mm[:ss]]]]] ; h,m,s inicia em 0 ; padrão até 2037)
...
Você pediu “duração” e não “tempo”. Você poderia hackear algo, mas uma correção na Fonte é mais rápida e poderosa.
Você pode corrigir o kernel e recompilá-lo.
Verhttp://www.netfilter.org/documentation/HOWTO/netfilter-extensions-HOWTO-3.htmlna seção "conntrack patch", o comando "ctexpire". Se você se sentir confortável escrevendo um pouco de código e corrigindo seu kernel com um filtro personalizado, então podemos ajudar (caso contrário, a resposta é "não, você não pode fazer isso, não existe tal comando de filtro").