PROJETO INTEGRADOR SISTEMAS OPERACIONAIS

Propaganda
PROJETO INTEGRADOR
SISTEMAS OPERACIONAIS
No mundo computacional um dos softwares mais importantes é o Sistema Operacional, sendo
o responsável pela integração das aplicações e o hardware. Existem inúmeras aplicações desde
softwares básicos como uma calculadora ou mais complexo como jogos. O sistema operacional
é a base onde são implementados os serviços IP tais como DNS, DHCP, PROXY entre outros.
A segurança da informação inicia na parte física onde devemos limitar o acesso físico não
autorizado dos equipamentos e se estende até os mínimos detalhes dos softwares. O sistema
operacional não diferente de qualquer outro software no quesito segurança é preciso ser
escolhido e implementadas algumas técnicas para o aumento da segurança, tarefa conhecida
como hardening.
Para implementar os serviços IP desse projeto escolhemos o sistema operacional Linux devido
alguns fatores tais como:
- Fácil customização
- Código aberto
- Software gratuito
- Mantido por uma comunidade internacional
- Pelo fato do código ser aberto as atualizações de segurança não dependem de uma empresa
- Estabilidade do sistema
- Baixo consumo de recursos se devidamente configurado
- Compatibilidade com os Hardwares modernos e antigos
- Possibilidade de upgrades e atualizações sem necessidade de desembolsar dinheiro
- Diversidade de distribuições, onde torna mais fácil achar alguma que melhor atende para o
trabalho desejado
Como foi dito anteriormente necessitamos escolher uma distribuição específica para o melhor
desempenho dos serviços, neste projeto utilizamos o Centos 6, uma distribuição com base na
distribuição RED HAT recompilada sem softwares proprietários e sem logos e afins da RED
HAT, essa distribuição utiliza o Kernel 2.6. O Kernel é a base do sistema operacional, no mundo
Linux existem inúmeras distribuições que trabalham com o mesmo kernel, mas cada uma
possui uma particularidade em específico.
O sistema de escalonamento de processos e gerenciamento de memória também foi levado
em consideração para a escolha do sistema. O Kernel a cada nova versão altera alguns
parâmetros e alguns modos de gerencia, veja abaixo algumas das particularidades do Kernel
2.6 com alguns comparativos com o seu principal concorrente pago Windows.














Cada processo possui uma prioridade, que é recalculada dinamicamente.
O escalonador entrega a CPU para o processo que possui a maior prioridade.
O escalonador é preemptivo.
O Linux considera dois tipos de processos:
o Processos interativos (time-sharing
o -Processos tempo real
Para processos interativos (dentro da mesma prioridade) o algoritmo é Round Robin.
Para processos de tempo real (dentro da mesma prioridade) o algoritmo pode ser:
o FCFS (o processo executa até terminar ou se bloquear)
o Round Robin
Processos de tempo real possuem prioridade sobre os demais processos.
O escalonador possui 140 níveis de prioridade (quanto menor o número, maior é a
prioridade). Prioridades de 1 a 100 são para processos de tempo real; de 101 a 140
para os demais processos de usuário (interativos ou não interativos). Nos níveis de
prioridade 101 a 140, os processos recebem fatias de tempo de 20 ms.
Os processos de tempo real podem ser FIFO ou Round Robin, e possuem uma
prioridade estática.
o - Processos FIFO executam até voluntariamente liberarem a CPU (o nível de
prioridade é mantido e não são preemptados).
o - Processos Round Robin recebem fatias de tempo. Quando todos terminam
suas fatias, é dada outra fatia e eles continuam rodando no mesmo nível de
prioridade.
A prioridade dos processos de usuário é a soma de sua prioridade básica (valor de seu
nice) e seu bonus dinâmico, que varia de +5 a –5.
O escalonador classifica os processos em interativos e não interativos, pela observação
de seu comportamento.
o Interativos são aqueles que ficam bloqueados por longos períodos, esperando
por I/O, executam rapidamente e ficam novamente esperando por I/O. O
escalonador calcula a “média de tempo bloqueado” de um processo e a utiliza
para calcular o bônus do processo. A idéia é aumentar a prioridade de
processos interativos (I/O bound) e diminuir a prioridade de processos não
interativos (CPU bound). No Linux, as operações READ são síncronas e
bloqueantes (pois existe a suposição de que o processo que executou a
operação necessita dos dados para continuar), enquanto as operações WRITE
são assíncronas e não bloqueantes. Por este motivo, as operações de leitura
possuem prioridade em relação às operações de escrita.
As requisições de E/S são ordenadas, de acordo com o cilindro a ser acessado, de
forma a minimizar o deslocamento do braço do disco.
Para evitar postergação indefinida, para cada requisição é atribuído um deadline de
atendimento.
O escalonador 2.6 implementa duas políticas: política de deadlines e política
antecipatória.
Agora que já foi demonstrado algumas das características do nosso sistema
operacional optamos por aplicar o Hardening para mantê-lo mais seguro, algumas das
tarefas e serviços que foram configurados foram:














Retirada do acesso root direto pelo SSH
Alteração da porta padrão do SSH
Habilitado tempo máximo de inatividade no SSH
Removida as permissões não necessárias a executáveis
Instalação somente dos serviços a serem utilizados
Utilização de senhas com no mínimo 8 caracteres composta por pelo menos 3
tipos de caracteres entre maiúsculas, minúsculas, especiais e números.
Não utilização de palavras ou seqüências nas senhas
Desativado usuários que não sejam necessários estar ativos
Restringido acesso do servidor para IPs específicos e somente alguns usuários com
acesso a gerência remota
Colocada senha no GRUB
Habilitado o iptables como firewall onde só foram liberadas as portas específicas
dos serviços em execução
Atualização de todos pacotes de segurança tanto do Sistema operacional quanto
dos aplicativos e serviços utilizados.
Ajustadas as permissões dos arquivos
Configurado o Selinux
Após o hardening do sistema operacional é necessário realizar as devidas
configurações de cada serviço de acordo com as necessidades sendo interessante sempre
utilizar as opções de segurança disponíveis como por exemplo ao montar um proxy utilizar
criptografia nas senhas.
O sistema operacional mesmo estando seguro as aplicações podem conter brexas, ou
seja, antes de colocar qualquer serviço ou servidor em produção é interessante realizar um
pentest para verificar se ainda existem vulnerabilidades.
REFERÊNCIAS BIBLIOGRÁFICAS

DE OLIVEIRA, Rômulo; ALEXANDRE, Carissimi; TOSCANI, Simão. Sistemas
Operacionais. Editora: BOOKMAN COMPANHIA EDITORA LTDA

ROGÉRIO MACHADO RAMOS, Antônio. Escalonador Linux Windows.. Disponível em:
http://www.inf.pucrs.br/~ramos/sop_escalonadorlinuxwindows.pdf Acesso em: 15
out. 2015
Download