Fortigate: session-ttl

Neste post vou demonstrar como customizar o valor de session timeout do firewall Fortigate.

Assim como os outros firewalls de mercado stateful, o firewall Fortigate mantém o controle de conexões TCP estabelecidas, sendo que para cada sessão estabelecida é atribuído um temporizador. Uma vez esse timer expirado, devido à inatividade da sessão, é removido da tabela do firewall, onde será necessário restabelecer novamente a conexão.  Algumas aplicações acabam sendo mais “sensíveis”, como as de banco de dados, e requerem um valor de sessão customizada.

Iremos explorar as três formas de realizar esta alteração.

A primeira consiste em alterar o valor default do firewall, onde todas as conexões serão modificadas.

Consultando o valor default do Firewall

get system session-ttl

fortigate_session-ttl

O valor de 3600 segundos (60 minutos) é a configuração padrão para todas as conexões.

Para realizar a alteração para 86400 segundos (24 horas) iremos setar o comando abaixo

config system session-ttl
set default 86400
end

get system session-ttl

fortigate_session-ttl01

Agora todas as conexões possuem o timer de 24 horas.

Porém isso pode degradar o firewall, uma vez que 24 horas é um tempo muito alto para manter todas as conexões, podendo até mesmo estourar o limite de conexões suportadas pela caixa.

A segundo forma de realizar está alteração, consiste em criar serviços customizados com o valor session-ttl desejado, desta forma apenas as regras que forem utilizados estes serviços terão um timer diferenciado.

Para demonstrar este exemplo irei fazer uso do objeto TCP_MYSQL, onde o valor de session-ttl será de 21600 segundos (6 horas).

fortigate_session-ttl02

config firewall service custom
edit TCP_MYSQL
set session-ttl 21600
next
end

show firewall service custom TCP_MYSQL

fortigate_session-ttl03

Agora basta referencia este objeto na regra onde seja realizar a comunicação.

A terceira e ultima forma consiste em alterar o timer default para uma porta especifica, fazendo com que por exemplo a porta 1433 para toda a caixa possua 21600 segundos (6horas).

config system session-ttl
config port
edit 1
set protocol 6
set start-port 1433
set end-port 1433
set timeout 21600
next
end
end

show system session-ttl

fortigate_session-ttl04

O procotol 6 referencia o TCP, enquanto o protocol 17 o UDP.

E assim finalizamos mais um post.

Tags: