Live Chat Software by Kayako
Knowledgebase
Configurar FreeBSD
Posted by Rafael Vital on 01/Nov 16:42

Configurar FreeBSD

Classificação: CLASSIFICADO / PÚBLICO
Proprietário: Rafael Vital
Usuários: Público em geral
Versão: 0.3 (Criada em 07/04/2017)
Alterado último por: Rafael Vital

1 - Sumário

A aba Sistema apresenta submenus que auxiliam o usuário a definir o funcionamento da aplicação e, quando necessário, alterar as configurações que forem necessárias. Dentre as opções os usuários têm a possibilidade de reiniciar a aplicação, criar um snapshot da máquina, dentre outras configurações que serão descritas a seguir.

Para facilitar o entendimento do documento segue uma imagem do menu conforme apresentado na aplicação.

2 - Configurar FreeBSD

Este submenu de Sistema contém dois submenus que são: “Configuração Básica” e “Configuração Avançada”. Cada um destes submenus contém especificidades que serão descritos abaixo.

2.1 - Configuração Básica

Na página “Configuração Básica” os usuários podem configurar informações como: hostname, definir horário na aplicação por meio do NTP client, dentre outros. Na imagem abaixo é possível visualizar toda a página com os respectivos campos e logo após há uma descrição de cada campo.

Hostname: Neste campo é definido o nome do servidor.

Domínio: Após definir o nome do servidor, no campo “Domínio” é definido um domínio para a máquina. Este domínio será combinado com o hostname, definido no campo anterior, para originar o FQDN. Domínio Completamente Expressado é o nome dado a computadores e domínios de redes em redes de computadores.    

Habilitar IPv6: Neste campo é possível habilitar O ProAPps para que ele possa receber IPs do tipo IPv6. Ao mudar a opção para “Sim” e salvar o usuário habilita este suporte. É importante destacar que esta alteração tem conexão direta com o submenu “Redes” pois, ao habilitar o IPv6, o usuário poderá utilizar CARP com IPs do tipo IPv6, dentre outras funções relacionadas ao IPv6.

Rota Padrão IPv4: Este campo define qual será a rota padrão de saída do servidor para o restante da rede/mundo.

Resolução DNS: A resolução DNS (Domain Name Server) é um protocolo pelo qual domínios são mapeados para endereços de IP e vice-versa. Aqui é onde será configurado o servidor para resolução de nomes. No primeiro campo “Pesquisar” é possível incluir um IP para que a aplicação busque a URL correspondente. Já no segundo campo, “Domínio”, o usuário passa um domínio para que o sistema retorne o IP correspondente. Logo abaixo de “Domínio” há três campos campos de “Nameserver”. Aqui é onde deverão ser adicionados os endereços IPs do servidores para resolução de nomes, primário, secundário e terciário. Caso falhe o primeiro servidor a consulta é feita no segundo e assim por diante.

Taxa de repetição do teclado: Neste campo é definido a velocidade com que um caractere se repete quando o usuário pressiona uma tecla.

Fsck: O fsck é um verificador de integridade do sistema de arquivos UFS. Caso exista alguma sistema de arquivos em UFS e por algum motivo o sistema crashar, ou reiniciar o fsck será passado no mesmo para garantir a integridade do FS. Neste campo é possível visualizar três configurações: “Corrigir Automaticamente”, “fsck em segundo plano” - verifica o sistema de arquivos após o boot da máquina - e “tempo de início do fsck em segundo plano” - neste campo é definido quantos segundos, após o início da aplicação, o sistema começará a fazer background fsck. 

Atualizar MOTD: O MOTD ou, Message of the day, permite que o usuário padronize sua experiência com o sistema operacional FreeBSD. Ao clicar em “Sim” o usuário poderá acessar a linha de comando como root e digitar: # rm /etc/motd, para remover a mensagem atual. Após a remoção da mensagem anterior o usuário pode criar uma nova mensagem e na linha de comando digitar: # ee /etc/motd. Assim é possível editar o arquivo.

Syslog: Esta flag, ao ser habilitada, inicia o serviço de logs do sistema no FreeBSD. Neste campo há ainda a possibilidade de passar novos parâmetros em “Flags p/ Syslog”.

NTP Client: Este campo é responsável pela sincronização de horário da máquina, que é realizado a partir de um servidor NTP. Caso o campo esteja habilitado é possível visualizar uma tabela com “Servidores Disponíveis” NTPs mundiais padrões. Se o cliente optar poderá utilizar um servidor customizado, neste caso será necessário colocar um IP de um servidor NTP válido e clicar no botão com um símbolo “+” logo ao lado. Na parte inferior deste campo há duas funções que podem ser habilitadas: “Logar no Syslog” - caso essa opção esteja ativa serão enviados logs para o syslog em cada evento de sincronia de horário - e “Habilitar no cron” - adiciona a sincronia NTP à tabela de agendamento do sistema, sincronizando a cada 3 horas ao invés de apenas na inicialização do sistema.      

Atuar como gateway: Quando este campo estiver habilitado, o servidor FreeBSD atua como roteador (gateway), repassando pacotes entre quaisquer interfaces de redes locais.

Última atualização: Neste campo contém a data e o horário da última atualização do módulo.

2.2 - Configuração Avançada

Na página de “Configuração Avançada” o usuário poderá configurar a parte de segurança do hardware, protocolos de rede, dentre outros. Na imagem abaixo é possível visualizar todos os campos e logo após há uma explicação de cada um deles:

Kernel Securelevel: Este campo define se o mecanismo de segurança do kernel está habilitado ou não. Caso a resposta seja positiva, vale ressaltar que, mesmo o usuário “root”, ou super usuário, terá certas funções restritas como, por exemplo: carregar módulos do kernel, alterar regras de firewall, dentre outros.

Securelevel: Este campo está relacionado ao campo anterior e nele o usuário pode escolher entre os números “-1, 0, 1, 2, 3”. O objetivo desta escolha é definir qual é o nível de segurança da máquina e, a medida que o número aumenta, passando para 1, 2 e 3, maior é o nível de segurança do sistema. Na situação inversa, caso o usuário mantenha os números 0 e -1, menor será o nível de segurança do sistema. Segue abaixo explicação de cada um dos níveis de segurança e qual é a diferença na aplicação:     

Nível -1: Modo permanentemente inseguro. É o padrão, sinônimo de Kernel Securelevel desligado. Esse modo de segurança coloca o FreeBSD sob equivalência de segurança de sistemas Unix convencionais, obedecendo o padrão IEEE POSIX.1, draft <=17.

Nível 0: Modo inseguro. Dentre todos os dispositivos nativos de permissões e dos dispositivos de segurança específicos do FreeBSD, é o nível de segurança que sujeita o sistema às permissões dos arquivos definidas por quem tem autoridade sobre os mesmos. Todos os dispositivos de entrada/saída e de controle do sistema podem ser escritos ou lidos, de acordo com as suas permissões. Processos e usuários privilegiados apesar de terem autoridade para modificar as permissões não sobrepõe seus modos sem antes modificá-los (onipotência do usuário “root”). As “flags” especiais de arquivos, definidas via chflags (8), inclusive as de imutabilidade e de apenas-concatenação podem ser retiradas.  

Nível 1: Modo seguro. A partir deste nível de segurança, as opções chflags (8) de nível de sistema (isso inclui a opção de imutabilidade em nível de sistema - schg; apenas concatenação em nível de sistema - sappnd; e de arquivos que não podem ser apagados, de nível de sistema - sunlnk) não podem ser retiradas, nem mesmo pelo super-usuário ou por processos privilegiados.

As “flags” continuam podendo ser adicionadas normalmente.

Nenhum dispositivo de armazenamento, de nenhum tipo, pode ser aberto para escrita direta e não ser por processos do próprio sistema. O mesmo se aplica aos dispositivos de acesso à memória, tanto em nível do usuário, o /dev/mem, quanto em nível do kernel, o /dev/kmem; note que uma das mudanças mais notáveis para que usa o FreeBSD como Desktop, é que a partir do nível de segurança 1 o servidor gráfico X não funcionará mais, pois os processos do X fazem acesso direto à memória, situação que não é permitida. Alguns bancos-de-dados cuja implementação é no mínimo “diferente”, para não dizer problemática, implementam acesso à memória com bibliotecas e chamadas de sistemas não nativas. Nesses casos o banco também não funcionará corretamente. Dois exemplos desses bancos são o brasileiro Caché e um não muito conhecido, chamado PervasiveSQL (comercial). Felizmente os SGBDs mais utilizados não sofrem deste problema.

Ainda no nível de segurança 1 (modo seguro) módulos de kernel não podem ser carregados. Isso evita que módulos nocivos sejam carregados quando um sistema já estiver em produção; nem processos, usuários privilegiados, ou mesmo outras rotinas internas no kernel podem fazer uso da chamada kld (4) na interface de comunicação com o kernel - tipicamente utilizada pelo kldload (8) / kldunload (8) / kldstat (8).   

Nível 2: Modo altamente seguro. Nenhum dispositivo de armazenamento, seja de que tipo for, pode ser aberto para acesso direto de nenhum tipo, nem leitura nem escrita, a não ser pela chamada de sistema mount (2). A partir do momento que a chamada de sistema mount (2) for usada, os dados tornam-se acessíveis exclusivamente no ponto-de-montagem de destino. O acesso direto ao dispositivo não é permitido, independente deste estar ou não montado.

Esse nível impossibilita alterar os sistemas de arquivos mesmo estando desmontados. Operações usualmente controladas via tunefs (8) como SoftUpdates, ACLs administrativas, MACs, tuning do sistema de arquivos e otimização por modo de operação, não podem ser modificadas. Da mesma forma, newfs (8) não pode ser usado para formatar ou recriar sistemas de arquivos; outras aplicações que realizam operações de leitura/escrita crua de dados, como o dd (1) também não poderão ser usados.

Além disso, o horário/data do relógio do sistema só pode ser modificado por intervalos menores ou igual a 1 segundo. A tentativa de ajustar data/hora por intervalos superiores a 1 segundo logará a seguinte mensagem no sistema: “Time adjustment clamped to +1 second”. Isso porque 1 segundo é o atraso máximo aceitável em um sistema de produção durante 365 dias, atraso que se deve ao clock do processador e tick-rate da CPU; varia poucos milissegundos.           

Nível 3: Nível Seguro de Rede. Qualquer regra de firewall por filtragem de pacotes, fazendo uso de qualquer API de filtragem nativa do FreeBSD, como  IPFIREWALL (3) - ipfw (8), IPFILTER (4) - ipf (8), PACKETFILTER (4) - pf (8) não poderá ser modificada, e as configurações dos recursos de controle e simulação de banda e link empregados pelo DUMMYNET (4) também não poderão ser reconfigurados. Apenas configurações a novos “pipes” poderão ser feitas.

Preempção Carp: O CARP permite múltiplos hospedeiros na mesma rede para compartilhar IPs com o objetivo de garantir que a rede esteja sempre disponível. A Preempção CARP parte deste mesmo princípio pois é uma redundância entre duas máquinas: “Master” (Principal) e “Slave” (Secundária). Caso o usuário habilite esta função a ideia é: se a máquina “Master” tiver qualquer problema de conectividade, em seu lugar, assume a máquina “Slave”. E quando a máquina master voltar a slave detecta essa mudança e entregas funções a maquina Master.

Fast IP Forwarding: Quando habilitado redireciona os pacotes IP diretamente para a interface de rede de destino, sem abertura de cabeçalho, melhorando então a latência e desempenho em geral. (Essa opção não deve ser utilizada com VPN do tipo IPsec pois, ao utilizar este protocolo, é necessário autenticar e criptografar cada pacote IP. Esta implementação contradiz o conceito do Fast IP Forwarding).

BPF zero-copy: Este campo determina se os pacotes, que estão saindo e entrando na máquina, serão copiados e enviados para o kernel da máquina. Este tipo de serviço se estiver habilitado (sem realizar cópia dos pacotes) traz benefícios para o desempenho da máquina, deixando o processamento mais rápido pois evita interrupções na transferência de pacotes. Por outro lado, o Kernel não faz mais inspeções nos pacotes, ou seja, uma camada de segurança a menos.

Limit of ICMP responses: Determina o limite de respostas a pacotes ICMP enviados em massa. Diminuir o limite é muito útil para evitar ataques do tipo DoS (Ataque de negação de serviço), porém pode ser necessário aumentar o limite em alguns cenários como por exemplo, descoberta de rede.

Ignore ICMP redirects: Desabilita o redirecionamento de pacotes ICMP, muito útil como técnica de mitigação de ataques do tipo DoS.

Drop TCP with SYN+FIN: Este campo tem por objetivo eliminar as chamadas de conexão que sejam de caráter SYN+FIN. SYN é um protocolo em que um computador envia para outro computador uma requisição para abrir um canal de comunicação, já o protocolo FIN fecha a requisição de comunicação entre os computadores. É importante compreender que quando um computador envia um protocolo SYN para outro computador é preciso esperar um tempo de resposta até que o computador que recebeu responda que o canal de comunicação está aberto. Ou seja, não é processo que acontece de maneira instantânea e automática. Portanto os protocolos SYN+FIN não podem ser enviados juntos pois não há como pedir para abrir um canal de comunicação ao mesmo tempo em que envia um pedido para fechar o canal de comunicação.     

FIN_WAIT2 timeout: Neste campo é definido o tempo que o sistema tem para eliminar a conexão.  

Recycle closed FIN_WAIT2 connections faster: Quando habilitado, o sistema restringe o tempo de espera para confirmação de finalização de uma sessão para até 3 segundos. Se desligado, o sistema aguardará o timeout convencional de qualquer pacote parte de uma sessão estabelecida.  Como na especificação do TCP/IP a finalização de sessão é uma decisão unilateral, habilitar esta opção não deve causar nenhum impacto previsível.

Max number of dyn. rules for ACKs: Trata-se do número máximo de estados (states) que o firewall vai inspecionar simultaneamente. Tome muito cuidado, cada state custa em média 4 KBytes de memória para sessões TCP, UDP e SCTP, e em média 2 KBytes para sessões ICMP. Portanto, o valor padrão que é 4096 states, pode potencialmente custar até 16MB de memória RAM, o que não é muito, mas também não é um custo insignificante. Um sistema com regras de firewall stateful, atuando como gateway ou firewall de Tier-1, Tier-2 ou mais profundo, tende a precisar de um número maior de states e consequentemente mais memória. Para servidores de pequeno a médio porte o valor padrão tende a ser suficiente. Tenha em mente todo o tempo, que o sistema não permitirá a criação de mais nenhum estado em regras stateful, ou seja, se o valor definido for baixo demais ou insuficiente, novas sessões não iniciarão, causando potencial negação de serviço. Se o valor configurado for “0”, indica que não há limites no número de sessões, e o sistema calculará o valor adequado dependendo da quantidade de memória disponível. 

Layer 2 filter with IPWF: Neste campo o firewall filtra os pacotes da camada 2. Estes pacotes podem ser enviados via switch, mac address e são filtrados caso o firewall detecte algo suspeito. Em casos mais extremos os pacotes podem ser bloqueados, se necessário. 

Filter ARP packets through IPFW layer 2: Ao habilitar este campo a aplicação irá filtrar pacotes do tipo ARP através do firewall de camada 2.

(0 vote(s))
Helpful
Not helpful

Comments (0)
Post a new comment
 
 
Full Name:
Email:
Comments:
Help Desk Software by Kayako