Arquitetura
Modelos de arquitetura do CtrlStation
Arquitetura SaaS - Cloud
CtrlStation - Ambiente SaaS
No modelo SaaS o CtrlStation é executado dentro do ambiente cloud da LAB3, utilizando o provedor de infraestrutura Azure. Cada cliente tem um ambiente dedicado à sua aplicação, com isolamento de dados e aplicação.
Arquitetura de Rede
A aplicação tem uma arquitetura simples, sendo composta por um servidor de aplicação e uma base de dados SQL, todos gerenciados pela LAB3 em ambiente isolado. Toda comunicação com a aplicação é feita somente via HTTPS na porta 443. Não há nenhuma outra entrada de comunicação por outras portas.
Se houver integrações com outros sistemas (folha/ponto/RH) ou com o Azure, a comunicação é feita à partir do servidor de aplicação utiliza as portas especificadas na integração.
Um diagrama simplificado de rede pode ser visualizado abaixo.
Integrações e VPN
Caso haja necessidade de integração com sistema que seja interno ao cliente, é possível estabelecer uma VPN ponto-a-ponto para efetuar o acesso. A VPN é estabelecida diretamente à partir do servidor de aplicação com o cliente.
Redundância e Disponibilidade
O ambiente trabalha em modo ativo-ativo, com servidores de aplicação em dois sites distintos e o serviço de banco de dados gerenciado com replicação ativo-passivo, com fallback automático.
Segurança de Dados
Todos os dados são criptografados em repouso. Arquivos de backup são criptografados com chaves gerenciadas pela LAB3, podendo também ser oferecido ao cliente a opção de gestão da chave de backup. Os backups são feitos diariamente.
Controle de Acesso
Todo o acesso à aplicação está sujeito ao controle de acesso e política de segurança da LAB3. O acesso por funcionários da LAB3 é restrito após a entrada em produção.
Arquitetura On-Premises
Ambiente On-Premises
Arquitetura
A arquitetura do CtrlStation é simples e envolve apenas o servidor de aplicação e banco de dados. Se houver integração com Azure ou outros sistemas, é necessário analisar para cada um o funcionamento. A estrutura simplificada de rede pode ser visualizada abaixo:
A porta 443 do CtrlStation precisa ser acessível pelas máquinas que serão controladas, então é necessário que o cliente efetue a configuração de um domínio DNS e configure um NAT ou balanceador de carga para a conectividade.
Pré-Requisitos
Para execução on-premises do CtrlStation é necessário um servidor Windows e uma base de dados SQL Server, seguindo os requisitos a seguir.
Servidor
● Processador 2Ghz 4 core
● Memória 4 GB RAM
● Espaço em Disco Livre: 20Gb
Sistema Operacional
● Windows Server 2016
● Windows Server 2019
● Windows Server 2022
Software
Os seguintes pacotes devem estar instalados:
● .NET Extensibility 4.6.2 ou superior
● ASP .NET 4.6.2 ou superior
● ISAPI Extensions
● ISAPI Filters
● .NET Framework 4.6.2 ou superior
● IIS 6.0 ou superior
Banco de Dados
O Banco de Dados pode ser instalado no mesmo servidor da aplicação, ou utilizado um externo. O sistema de banco de dados deve ser:
- SQL Server 2016 ou superior
A modalidade Express do SQL Server pode ser utilizada para clientes com poucas licenças, dado o limite de armazenamento imposto por esta versão.
Alta Disponibilidade
Caso deseje alta disponibilidade, podeser duplicado o servidor de aplicação e o banco de dados precisa ser configurado com replicação. Estas configurações devem ser feitas pelo cliente. Também é necessário alterar a arquitetura de rede para incluir um balanceador de carga.
Backup
No modelo on-premises os backups são de responsabilidade do cliente, devendo ser feito o backup da base de dados e também do diretório:
- C:\inetpub\wwwroot\ctrl-station
É recomendado o backup diário.
Instalação OnPremises - Checklist Hardening
Hardening Servidor On-Premises
Para instalações on-premises, recomendamos o hardening dos servidores Windows de acordo com as melhores práticas. O checklist sugerido está a seguir:
Com certeza! Aqui está o checklist de endurecimento (hardening) do IIS e Windows Server traduzido e adaptado para o português técnico utilizado no Brasil.
1. Sistema Operacional e Servidor
-
[ ] Instalar Apenas o Mínimo Necessário: Certifique-se de que apenas a função "Web Server (IIS)" e os módulos necessários do ASP.NET estejam instalados. Remova todas as funções não relacionadas
-
[ ] Desativar Protocolos Desnecessários: Desative protocolos antigos e vulneráveis, como o SMBv1, para evitar ataques de movimentação lateral na rede.
-
[ ] Manter o Sistema Atualizado: Imponha a aplicação automática de patches de segurança para o Windows OS e o .NET Framework utilizando o WSUS ou o Windows Update.
2. Segurança de Rede e Criptografia do IIS (Camada de Transporte)
-
[ ] Desativar TLS/SSL Legados: Desative o SSL 2.0, SSL 3.0, TLS 1.0 e TLS 1.1 através do Registro do Windows (Registry). Force o uso exclusivo de TLS 1.2 e TLS 1.3.
-
[ ] Restringir Ciphers (Algoritmos de Criptografia): Desative ciphers fracos (como RC4, Triple DES/3DES) e algoritmos de hash antigos (MD5, SHA-1). Priorize ciphers com Perfect Forward Secrecy (PFS).
-
[ ] Forçar HTTPS: Configure o binding do site para a porta 443 com um certificado TLS válido e confiável. Configure um redirecionamento automático de HTTP (porta 80) para HTTPS (porta 443).
3. Isolamento do Application Pool (Pool de Aplicativos) do IIS
-
[ ] Identidades Únicas para o AppPool: Nunca execute os Pools de Aplicativos sob contas de altos privilégios como
LocalSystem,AdministratorouNetworkService. Crie uma identidade dedicada do tipo ApplicationPoolIdentity ou uma Conta de Serviço Gerenciada (MSA) para a sua aplicação ASP.NET. -
[ ] Habilitar Restrições do Modelo de Processo: Certifique-se de que as propriedades
Idle Time-out(Tempo de Limite de Inatividade) eRegular Time Interval(Reciclagem Regular) estejam configuradas para evitar vazamentos de memória ou exposição prolongada caso um processo seja comprometido. -
[ ] Carregar Perfil do Usuário: Defina
Load User Profile = Truenas configurações do AppPool para que as chaves criptográficas e arquivos temporários fiquem isolados no espaço de usuário daquela identidade específica.
4. Permissões de Sistema de Arquivos e Pastas
-
[ ] Controle de Acesso à Raiz da Web: Restrinja as permissões no diretório físico do site (geralmente
C:\inetpub\wwwroot\ctrl-station).-
Administrators / SYSTEM: Controle Total (Full Control).
-
Identidade do App Pool (
IIS_IUSRS): Ler & Executar, Listar Conteúdo da Pasta e Leitura. Não conceda permissão de Gravação (Write), a menos que seja estritamente necessário para uma pasta de uploads específica.
-
-
[ ] Proteger o
web.config: Garanta que o arquivoweb.confignão possa ser lido por usuários anônimos da web. Ele deve ter suas seções criptografadas caso contenha strings de conexão com o banco de dados ou credenciais sensíveis.
5. Redução da Superfície de Ataque e Cabeçalhos HTTP (Headers)
6. Logs e Auditoria
-
[ ] Habilitar Log Avançado no IIS: Configure o log do IIS para capturar campos cruciais de auditoria, incluindo: IP do Cliente, User Agent, URI Stem (página acessada), Status HTTP e Bytes Enviados/Recebidos.
-
[ ] Centralização de Logs: Certifique-se de que os logs do IIS e os Logs de Eventos de Segurança do Windows (Event Viewer) sejam enviados para um armazenamento centralizado do tipo write-once (apenas escrita) ou para um sistema SIEM (Gerenciamento de Eventos e Informações de Segurança), impedindo que um invasor apague os rastros.