>_Ajustes iniciais para um servidor

Objetivo

  • Configurar a rede
  • Configurar ” resolução de nomes” e “hostname” da servidor
  • Configurar repositório de rede
  • Desativar serviços desnecessário
  • Entendimento sobre “Hardening”

Configurando a rede

Para começar a configurar o servidor é preciso certificar que o arquivo /etc/network/interface no caso .deb ou vim /etc/sysconfig/network-scripts/ifcfg-eth* no caso do .rpm(CentOS), esteja correttamente configurado. Estes arquivos é muito importante para o funcionamento do servidor, neste arquivo posso configurar as opções e endereços IPs que poderei utilizar no servidor.

1 – Configurando a interface de rede

.deb
vim /etc/network/interfaces

.rpm
vim /etc/sysconfig/network-scripts/ifcfg-eth0

2 – Configurando a resolução de nomes

.deb ou .rpm

vim /etc/resolv.conf

No meu caso  nameserver 192.168.0.2 está sendo o meu servidor DNS

3 – Configurando o hostname

Em um servidor, a configuração correta do “hostname” e do arquivo “hosts” é essencial para eliminar problemas em serviços de rede. Mas antes irei fazer um breve comentário sobre FQDN.
Fully qualified domain name
ou FQDN é o nome de domínio que especifica a posição do nó na hierarquia do Domain Name System (DNS). Um FQDN é estruturado da seguinte forma: “host.3rd-level-domain.2nd-level-domain.top-level-domain

O número de níveis em um FQDN não é fixo. Caso nenhum domínio seja definido, o domínio default localdomain será usado.

Exemplos

  • Nome do Computador: “foo”
  • Nome do domínio: “bar.com”

O FQDN será: “foo.bar.com”

.deb
vim /etc/hostname

.rpm
vim /etc/sysconfig/network

.deb
vim /etc/hosts

.rpm
vim /etc/hosts

Com este procedimento concluído o servidor já está com a rede configurada.

4 – Agora, irei partir para os repositórios, para isso recomendo que leia os post de repositório do Debian e CentOS. Segue os links abaixo:

DEBIAN
http://gnulinuxbr.wordpress.com/category/comandos-intermediarios/source-list/

CentOS
http://gnulinuxbr.wordpress.com/category/adicionando-repositorio-no-centos/

Com os repositórios configurados e atualizados o servidor já está pronto para baixar novos pacotes.
Agora ire partir para o processo de HARDENING, uma técnica de prevenção e ameaças a ataques no servidor.

O que é HARDENING

“Hardening é um processo de mapeamento das ameaças, mitigação dos riscos e execução das atividades corretivas – com foco na infra-estrutura e objetivo principal de torná-la preparada para enfrentar tentativas de ataque.”
Normalmente, o processo básico inclui remover ou desabilitar nomes ou logins de usuários que não estejam mais em uso, além de serviços desnecessários.

O que podemos fazer para melhorar a segurança?

* exec, noexec – Permite ou não a execução de binários no sistema de arquivos.

* rw – Montar o sistema de arquivos com a opção Read-Write, ou seja, leitura e escrita

* ro – Montar o sistema de arquivos com a opção Read-Only, ou seja, somente leitura

* suid, nosuid – Habilitar/desabilitar o bit de set-user-identifier ou set-group-identifier

* dev, nodev – Server para desabilitar a interpretação de dispositivos de blocos especiais em um sistema de arquivos

Permissões especiais

É muito importante retirar as permissões especiais da partição /home e  /tmp, pois através dessas partições é possível atacar ou penetra no sistema operacional,  podendo  se tornar um usuário root.

# mount -o remount,rw,nosuid /home

# mount -o remount,rw,nosuid /tmp

Outro fator muito importante é habilitar os logs do su.

# vim /etc/login.defs

deabilite a linha sulog_file

.rpm (CentOS) é preciso criar a linha

Também é possível bloquear os terminais, através do arquivo /etc/secutiry

.deb ou .rpm

Exemplo:

/dev/sda5 /home ext3 defaults,noexec,nodev 0 0

/dev/sda6 /tmp ext3 defaults,noexec,nodev 0 0

Importante saber:

Muitos rootkits procuram este tipo de acesso atráves do /tmp, por isso é recomendado se ter o /tmp em partições diferentes, já que ele é de gravação universal. Montando o /tmp com noexec você impede que um HACKER jogue programas dentro do /tmp e execute. Isso ajuda a evitar ataques de escalação de pivilégios.

Um outra dica é usar o comando pwgen para gerar senhas seguras. Exemplo:

# aptitude install pwgen

pwgen -y.

Outro fator muito importante, é desativar alguns serviços que não sejam estrtitamente necessários  em um servidor.

Também é preciso manter o servidor sermpre atualizado, pois todos os softwares tem “bugs” de segurança, por isso é fundamental manter o servidor sempre atualizado.

Remover serviços desnecessários

Todo administrador de sistema tem, ou deveria ter ciência de que um servidor deve executar somente os softwares necessários, eliminando assim riscos de segurança e ajudando a melhorar o desempenho. Para que isso seja feito, é preciso antes verificar quais serviços de rede estão habilitados e aceitando conexões.

Desabilite os usuário de sistemas

# vim /etc/passwd

e execute no modo comando o seguinte comando:

:%s//bin/sh//bin/false/g

Dicas

Para cadastra usuários com políticas de senhas seguras use o comando abaixo:

# chage -M 30 -W 5 -I 2 “usuário”

M -> Máximo de dias
W -> Dias excedentes
I -> Bônus após o vencimento

Desabilite o Ctrl+Alt+Del dentro do arquivo /etc/inittab

# vim /etc/inittab

Verificando serviços de rede com netstat

# netstat -nltup

Explicando um pouco sobre alguns serviços

Exim

Exim é um agente de transferência de e-mail (um programa para o roteamento e a entrega de correio eletrônico) desenvolvido na Universidade de Cambridge para ser usado nos sistemas UNIX conectados a Internet.Está disponível livremente sob os termos da Licença Pública Geral (GNU GPL).
É similar ao Smail 3, embora possua mais funcionalidades. Há uma flexibilidade enorme na maneira que o correio pode ser distribuído, e há umas facilidade extensivas para verificar o correio recebido.
O exim pode ser instalado no lugar do sendmail, embora sua configuração seja completamente diferente àquela conhecida no sendmail. Distribuições como o Debian GNU/Linux trazem o exim como servidor SMTP por padrão.

NFS

NFS (acrônimo para Network File System) é um sistema de arquivos distribuídos desenvolvido inicialmente pela Sun Microsystems, Inc., a fim de compartilhar arquivos e diretórios entre computadores conectados em rede, formando assim um diretório virtual. O protocolo Network File System é especificado nas seguintes RFCs: RFC 1094, RFC 1813 e RFC 3530 (que tornou obsoleta a RFC 3010).
O cliente NFS tem por finalidade tornar o acesso remoto transparente para o usuário do computador, e esta interface cliente e servidor, executada pelo NFS através dos protocolos Cliente-Servidor, fica bem definida quando o usuário ao chamar um arquivo/diretório no servidor, lhe parece estar acessando localmente, sendo que está trabalhando com arquivos remotos.

Portmap

O portmap RPC  é um servidor que converte números de processos RPC em números no protocolo TCP/IP (ou UDP/IP). Ele deve estar executando para que seja possível realizar chamadas RPC (que é exatamente o que o cliente NIS/NIS+ faz) para servidores RPC (como, por exemplo, um servidor NIS ou NIS+) em determinada máquina. Quando um servidor RPC é iniciado, ele irá dizer ao portmap qual número de porta ele está ouvindo, e quais programas RPC ele está preparado para atender. Quando um cliente deseja realizar uma chamada RPC para um determinado número de processo, ele deve primeiro contatar o portmap no servidor, para determinar o número da porta a qual os pacotes RPC devem ser enviados.

OpenBSD

O servidor inetd é um programa daemon de rede especializado em gerenciar conexões de rede entrantes. Seu arquivo de configuração diz qual programa precisa ser executado quando uma conexão entrante é recebida. Qualquer porta de serviço pode ser configurada para qualquer um dos protocolos tcp ou udp.

Estes foram alguns dos serviços que geralmente vem junto com a instalação de um sistema, por isso é importante saber quais os serviços serão necessários manter no servidor, antes de remove-los.

Encerrando os serviços da inicialização

.deb

# invoke-rc.d cups
# invoke-rc.d exim4
# invoke-rc.d portmap

.rpm

# chkconfig –list
# chkconfig –level (uid do processo) (srviço) off

Removendo serviços da inicialização

# update-rc.d -f exim4 remove
# update-rc.d -f nfs-common remove
# update-rc.d -f portmap remove

O comando “runlevel“, mostra qual é o nível de inicialização do servidor após sua inicialização. O seu arquivo é /etc/inittab. A linha que define o “runlevel”: id:2:initdefault.

Definindo variáveis e alias de sistemas

# vim /etc/profile

e insira no fina do arquivos os seguintes comandos abaixo:

alias ls=’ls  –color’
alias lsl=’ls -l
TMOUT=1200
HISTSIZE=1000

para habilitar as mudanças realizada no arquivo /etc/profile

source /etc/profile

O comando source apenas executa o conteúdo do aqruivo, neste caso, para atualizar os alias e variáveis.

Alguns comandos interessantes para visualizar as partições que estão montadas.

Os dispositivos ficam em /dev, e seus sistema de arquivos é o udev

Os módulos carregados no sistema

# lsmod
# modprobe -l
# ls -l /lib/modules
# cat /proc/modules

Para exibir todas as bibliotecas do sistema

# ldconfig -p
# ls /lib
# cat /etc/ld.so.cache

>_Ajustes iniciais para um servidor
Tagged on:

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

%d blogueiros gostam disto: