Sessões baseadas em fluxo
O Junos OS armazena em cache as informações da sessão que são acionadas pelo primeiro pacote do fluxo. A sessão armazenada em cache é usada por pacotes subsequentes desse mesmo fluxo e o fluxo reverso dessa sessão usando o módulo de fluxo, que é integrado ao caminho de encaminhamento.
Entender as características de sessão para firewalls da Série SRX
As sessões são criadas, com base no roteamento e em outras informações de classificação, para armazenar informações e alocar recursos para um fluxo. As sessões têm características, algumas das quais podem ser alteradas, como quando são encerradas. Por exemplo, talvez você queira garantir que uma tabela de sessão nunca esteja totalmente cheia para proteger contra a tentativa de um invasor de inundar a tabela e, assim, impedir que usuários legítimos iniciem sessões.
Dependendo do protocolo e do serviço, uma sessão é programada com um valor de tempo limite. Por exemplo, o tempo limite padrão para TCP é de 1800 segundos. O tempo limite padrão para UDP é de 60 segundos.
Se nenhum tráfego usar a sessão antes do tempo limite do serviço, a sessão será envelhecida e liberada para um pool de recursos comum para reutilização. Você pode afetar a vida útil de uma sessão das seguintes maneiras:
Você pode especificar circunstâncias para encerrar sessões usando qualquer um dos seguintes métodos:
Expire as sessões com base na capacidade da tabela de sessão
Definir um tempo limite explícito para sessões TCP antigas
Configurar uma sessão TCP para ser invalidada quando receber uma mensagem TCP RST (reset)
Configure a
fin-invalidate-sessioninstrução para encerrar sessões quando um dos endpoints da sessão enviar uma mensagem FIN(ish) ao peer.Quando o endpoint peer recebe o pacote com o sinalizador FIN definido, ele envia uma mensagem ACK(nowlege). Normalmente, a destruição de uma sessão usando esse método envolve a transmissão de um par de mensagens FIN-ACK de cada sessão.
Você pode configurar sessões para acomodar outros sistemas da seguinte maneira:
Desativar verificações de segurança de pacotes TCP
Alterar o tamanho máximo do segmento
Entendendo o envelhecimento agressivo da sessão
A tabela de sessão é um recurso limitado para firewalls da Série SRX. Se a tabela de sessão estiver cheia, todas as novas sessões serão rejeitadas pelo dispositivo.
O mecanismo agressivo de envelhecimento da sessão acelera o processo de tempo limite da sessão quando o número de sessões na tabela de sessão excede o limite de marca d'água alta especificado. Esse mecanismo minimiza a probabilidade de que os firewalls da Série SRX rejeitem novas sessões quando a tabela de sessão ficar cheia.
Configure os seguintes parâmetros para executar a duração agressiva da sessão:
high-watermark–O dispositivo executa o envelhecimento agressivo da sessão quando o número de sessões na tabela de sessão excede o high-watermark limite.
low-watermark–O dispositivo sai do envelhecimento agressivo da sessão e retorna ao normal quando o número de sessões na tabela de sessão cair abaixo do low-watermark limite.
early-ageout –Durante o envelhecimento agressivo da sessão, as sessões com um tempo de esgotamento inferior ao early-ageout limite são marcadas como inválidas.
Exemplo: controle do encerramento de sessão para firewalls da Série SRX
Este exemplo mostra como encerrar sessões para firewalls da Série SRX com base no envelhecimento após um determinado período de tempo ou quando o número de sessões na tabela de sessão está cheio ou atinge uma porcentagem especificada. Você especifica um valor de tempo limite ou o número de sessões na tabela de sessão.
Requerimentos
Antes de começar, entenda as circunstâncias para encerrar as sessões.
Visão geral
Você pode controlar o encerramento da sessão em determinadas situações — por exemplo, após receber um TCP FIN Close ou receber uma mensagem RST, ao encontrar erros de ICMP para UDP e quando nenhum tráfego correspondente é recebido antes do tempo limite do serviço. Quando as sessões são encerradas, seus recursos são liberados para uso por outras sessões.
Neste exemplo, você configura as seguintes circunstâncias para encerrar a sessão:
Um valor de tempo limite de 20 segundos.
Observação:O valor mínimo que você pode configurar para inicialização de sessão TCP é de 4 segundos. O valor padrão é 20 segundos; se necessário, você pode definir o valor de inicialização da sessão TCP para menos de 20 segundos.
Um valor de tempo limite explícito de 280 segundos, que altera o tempo limite da sessão TCP durante o handshake de três vias.
O comando define o tempo limite da sessão TCP inicial como 280 na tabela de sessão durante o handshake de três vias TCP. O temporizador é iniciado quando o primeiro pacote SYN é recebido e redefinido com cada pacote durante o handshake de três vias. Depois que o handshake de três vias é concluído, o tempo limite da sessão é redefinido para o tempo limite definido pelo aplicativo específico. Se o cronômetro expirar antes que o handshake de três vias seja concluído, a sessão será removida da tabela de sessão.
Qualquer sessão que receba uma mensagem TCP RST (reset) é invalidada.
Configuração
Tramitação processual
Procedimento passo a passo
Para controlar o encerramento de sessão para firewalls da Série SRX:
O exemplo a seguir requer que você navegue por vários níveis na hierarquia de configuração. Para obter instruções sobre como fazer isso, consulte Uso do Editor de CLI no Modo de Configuração noGuia do Usuário da CLI.
Para controlar o encerramento de sessão para firewalls da Série SRX:
Especifique um valor de idade limite para a sessão.
[edit security flow] user@host# set aging early-ageout 20
Configure um valor de classificação por vencimento.
[edit security flow] user@host# set tcp-session tcp-initial-timeoout 280
Invalidar qualquer sessão que receba uma mensagem TCP RST.
[edit security flow] user@host# set tcp-session rst-invalidate-session
Se você terminar de configurar o dispositivo, confirme a configuração.
[edit ] user@host# commit
Verificação
Para verificar se a configuração está funcionando corretamente, insira o show security flow comando.
Sessões de compensação para gateways de serviços da Série SRX
Você pode usar o clear comando para encerrar sessões. Você pode limpar todas as sessões, incluindo sessões de um determinado tipo de aplicativo, sessões que usam uma porta de destino específica, sessões que usam uma interface ou porta específica, sessões que usam um determinado protocolo IP, sessões que correspondem a um prefixo de origem e sessões do gerenciador de recursos.
- Encerramento de sessões para gateways de serviços da Série SRX
- Encerramento de uma sessão específica para gateways de serviços da Série SRX
- Uso de filtros para especificar as sessões a serem encerradas para gateways de serviços da Série SRX
Encerramento de sessões para gateways de serviços da Série SRX
Você pode usar o comando a seguir para encerrar todas as sessões, exceto sessões de túnel e gerenciador de recursos. A saída do comando mostra o número de sessões limpas. Lembre-se de que esse comando encerra a sessão de gerenciamento por meio da qual o comando clear é emitido.
user@host> clear security flow session all
Encerramento de uma sessão específica para gateways de serviços da Série SRX
Você pode usar o comando a seguir para encerrar a sessão cujo ID de sessão você especificou.
user@host> clear security flow session session-identifier 40000381
Uso de filtros para especificar as sessões a serem encerradas para gateways de serviços da Série SRX
Você pode encerrar uma ou mais sessões com base no parâmetro de filtro especificado para o clear comando. O exemplo a seguir usa o protocolo como um filtro.
user@host> clear security flow session protocol 89
Configuração do valor de tempo limite para sessões de fluxo multicast
Você pode configurar o valor de tempo limite para sessões de fluxo multicast configurando um aplicativo personalizado e associando o aplicativo a uma política.
As sessões de fluxo multicast têm uma sessão de modelo e uma ou mais sessões leaf. Como essas sessões estão vinculadas, elas podem ter apenas um valor de tempo limite. O valor de tempo limite para sessões de fluxo multicast é determinado considerando os valores de tempo limite configurados nas políticas de sessão leaf e os valores de tempo limite do protocolo IP. O mais alto desses valores de tempo limite é selecionado como o tempo limite da sessão de fluxo de multicast.
Se nenhum valor de tempo limite da sessão leaf estiver configurado, o valor de tempo limite do protocolo IP será usado automaticamente como o valor de tempo limite para a sessão de fluxo mulicast. O tempo limite do protocolo IP é o padrão e não é configurável.
A configuração de tempos limite de sessão leaf pode ser especialmente útil para fluxos multicast que têm um intervalo de pacotes mais longo do que o tempo limite do protocolo IP padrão. Por exemplo, fluxos multicast com um intervalo de pacote de mais de 60 segundos experimentariam envelhecimento prematuro de sessões de fluxo e quedas de pacotes com o valor de tempo limite UDP, que é sempre 60 segundos. Para esses fluxos, você pode configurar um valor de tempo limite de sessão leaf mais alto e evitar a queda de pacotes.
Para definir o valor de tempo limite da sessão leaf, configure um aplicativo personalizado e associe o aplicativo a uma política: