Material do 2º NPC

O material básico é a cartilha do Cert.br (fascículos separados ou em arquivo único).

Usaremos 3 máquinas virtuais em laboratório:

  • Metasploitable, um Linux intencionalmente vulnerável, com software desatualizado e configurações erradas, criado para ser atacado;
  • Kali Linux, um Linux montado para testes de segurança, com muitas ferramentas de ataque;
  • Windows, para demonstrar vírus e vermes.

Sugiro que pesquisem sobre os dois primeiros.

Peço que revisem a disciplina de Redes, especialmente as camadas de transporte e aplicação do TCP/IP, pois vamos usar esses conceitos.

Outros links:

Prática de criptografia assimétrica

Requisito: Kleopatra instalado (parte do pacote Gpg4win) com pelo menos um servidor de chaves configurado (menu “Settings -> Configure Kleopatra -> Directory Services”, se a lista estiver vazia, clique em “New”, será cadastrado o servidor keys.gnupg.org).

  1. Criar o par de chaves assimétricas:
    • Abra o Kleopatra;
    • Clique em “File -> New certificate”;
    • Clique na opção “Create a personal OpenPGP key pair”;
    • Preencha os campos “Name” e “Email”. Clique em “Advanced settings”;
    • Marque as opções “Authentication” e “Valid until”. Neste último, coloque a data do dia seguinte (o padrão é validade de 2 anos). Clique em “OK”;
    • De volta à tela anterior, clique em “Next”;
    • Clique em “Create key”;
    • Será solicitada uma senha para utilizar a chave privada;
    • Clique em “Upload certificate to directory service” para enviar a chave pública para um servidor de chaves;
    • Clique em “Finish” para terminar o processo. Seu novo certificado aparecerá em negrito na lista.
  2. Importar chave(s) pública(s) de terceiro(s):
    • Abra o Kleopatra;
    • Clique em “File -> Lookup certificates on server”;
    • Coloque o nome desejado no campo “Find” e clique em “Search”;
    • Na lista que aparece, selecione a chave desejada e clique em “Import”. A chave aparecerá na aba “Imported certificates”.
  3. Encriptar com chave pública de outra pessoa:
    • Abra o Windows Explorer e navegue até a pasta contendo o arquivo que se deseja encriptar;
    • Clique com o botão direito sobre o arquivo desejado e selecione a opção “Mais opções do gpgEX -> Encriptar”;
    • Na tela que se abre, confirme que a opção “Encrypt” está marcada. Opcionalmente, marque a opção “Remove unencrypted …” para deletar o arquivo original. Clique em “Next”;
    • Selecione a chave desejada na parte de cima e clique em “Add” para transportar para a parte de baixo. Clique em “Encrypt”;
    • Procure a mensagem “Encryption succeded”. Clique em Finish;
    • Envie o arquivo encriptado para o dono da chave pública usada, que será o único capaz de desencriptar o arquivo com a chave privada correspondente.
  4. Encriptar com a sua chave privada (qualquer pessoa poderá desencriptar com a sua chave pública, garantindo a autenticidade do emissor):
    • Abra o Windows Explorer e navegue até a pasta contendo o arquivo que se deseja encriptar;
    • Clique com o botão direito sobre o arquivo desejado e selecione a opção “Mais opções do gpgEX -> Assinar e Encriptar”;
    • Na tela que se abre, confirme que a opção “Sign and Encrypt” está marcada. Opcionalmente, marque a opção “Remove unencrypted …” para deletar o arquivo original. Clique em “Next”;
    • Selecione a chave privada desejada na parte de cima e clique em “Add” para transportar para a parte de baixo. Clique em Next”;
    • Na tela seguinte, confirme a chave usada e clique em “Sign & Encrypt”. Será solicitada a senha da sua chave privada;
    • Procure a mensagem “Encryption succeded”. Clique em Finish;
    • Envie o arquivo encriptado para qualquer pessoa, que poderá ser desencriptar o arquivo usando a sua chave pública.
  5. Desencriptar (Windows Explorer):
    • Abra o Windows Explorer e navegue até a pasta contendo o arquivo que se deseja desencriptar;
    • Clique com o botão direito sobre o arquivo desejado e selecione a opção “Mais opções do gpgEX -> Desencriptar”;
    • Na tela que se abre, clique em “Decrypt/Verify”;
    • Selecione a chave desejada na parte de cima e clique em “Add” para transportar para a parte de baixo. Clique em “Decrypt”.

Configurar domínio virtuais no Windows Server 2012 R2

1) Servidor HTTP (IIS):

1.1) No “Gerenciador do servidor”, clique em “Ferramentas” (menu na parte superior direita), depois “Gerenciador do Serviços de Informações da Internet (IIS)”;

1.2) Na tela que se abre, na parte esquerda, clique sobre o nome do servidor e abra os itens até aparecer o item “Sites”;

1.3) Clique com o botão direito sobre o item “Sites” e escolha a opção “Adicionar site”;

1.4) Na tela que se abre, preencha os campos “Nome do site” (à escolha), “Caminho físico” (uma pasta nova, criada especialmente para este site) e “Nome do host” (geralmente “www.” seguido do domínio, que já deve estar cadastrado no DNS). Clique em OK para finalizar o cadastro e voltar à tela principal;

1.5) Desabilite o site “Default”: clique sobre o item “Default web site” na parte esquerda da tela principal e clique sobre o botão “Parar” na parte direita desta tela;

1.6) Coloque algum conteúdo na pasta do novo site virtual.


2) Servidor SMTP/POP/IMAP (hMailServer):

2.1) Abra o “hMailServer administrator”;

2.2) Na tela “Connect”, clique em “Connect”. Será solicitada a senha do administrador do hMailServer;

2.3) Na tela principal do “hMailServer administrator”, clique com o botão direito sobre o item “Domains” na parte esquerda e escolha o item “Add”;

2.4) Na parte direita da tela, preencha o campo “Domain” com o domínio desejado, que já deve estar cadastrado no DNS, e clique em “Save”;

2.5) Na parte esquerda da tela, clique com o o botão direito sobre o item “Accounts” dentro do domínio desejado e selecione a opção “Add” (cuidado para não escolher a opção “Add AD account”);

2.6) Na parte direita da tela, preencha os campos “Address” (usuário) e “Password” (senha) e clique em “Save”.

Configurar domínios virtuais no RHEL 6

Observações iniciais:
  • Vamos configurar 3 domínios fictícios: exemplo.com, exemplo.org e exemplo.net (adapte ao seu caso);
  • O IP do servidor é 172.16.0.2 (adapte ao seu caso);
  • O procedimento descrito a seguir é “feio”, mas é simples e funciona bem com poucos domínios. Se você precisar administrar vários domínios, aconselho uma solução mais robusta, baseada em LDAP;
  • É necessário instalar os pacotes: bind (servidor DNS), apache (servidor HTTP), postfix (servidor SMTP) e dovecot (servidor POP/IMAP);
  • Garanta que os seguintes serviço estão habilitados e ativados (menu Sistema-Administração-Serviços): httpd, postfix, named e dovecot;
  • Quando o procedimento citar “edite o arquivo” ou “crie o arquivo”, use o comando “gedit” seguido do nome do arquivo;
  • Quando o procedimento citar “modifique o parâmetro”, significa que o parâmetro já existe no arquivo, mas está com um valor padrão, que deve ser modificado;
  • Quando o procedimento citar “adicione”, adicione ao final do arquivo;
  • O procedimento foi testado no Red Hat Enterprise Linux 6.5. Em outras distribuições ou versões, podem haver pequenas diferenças em nomes de pacotes ou arquivos.

1) Acesse a linha de comando:

1.1) Abra o Terminal (menu Aplicativos-Sistema-Terminal);

1.2) Transforme-se no super-usuário, executando o comando abaixo:

su –

1.3) Digite a senha do usuário root e pressione Enter (não serão exibidos os asteriscos, isso é normal). Após isso, o final do prompt muda de “$” para “#”.


2) Configurar o servidor DNS:

2.1) Edite o arquivo /etc/named.conf:

2.1.1) Modifique os seguintes parâmetros (devem ficar como abaixo):

listen-on port 53 { any; };

allow-query { any; };

2.1.2) Adicione os três blocos a seguir, um para cada domínio que queremos configurar:

zone “exemplo.com” {

type master;

file “/var/named/zona-exemplo.com”;

};

zone “exemplo.org” {

type master;

file “/var/named/zona-exemplo.org”;

};

zone “exemplo.net” {

type master;

file “/var/named/zona-exemplo.net”;

};

2.2) Crie um arquivo para cada zona:

2.2.1) Crie o arquivo /var/named/zona-exemplo.com com o seguinte conteúdo:

@ SOA @ dns-admin.exemplo.com. (2014110501 1D 1H 1W 3H)

@ NS ns01

@ MX 10 mx01

ns01 A 172.16.0.2

mx01 A 172.16.0.2

www  A 172.16.0.2

2.2.2) Crie o arquivo /var/named/zona-exemplo.org com o seguinte conteúdo:

@ SOA @ dns-admin.exemplo.org. (2014110501 1D 1H 1W 3H)

@ NS ns01

@ MX 10 mx01

ns01 A 172.16.0.2

mx01 A 172.16.0.2

www  A 172.16.0.2

2.2.3) Crie o arquivo /var/named/zona-exemplo.net com o seguinte conteúdo:

@ SOA @ dns-admin.exemplo.net. (2014110501 1D 1H 1W 3H)

@ NS ns01

@ MX 10 mx01

ns01 A 172.16.0.2

mx01 A 172.16.0.2

www  A 172.16.0.2

2.3) Reinicie o serviço “named” como comando abaixo:

service named restart

2.4) Configure o cliente DNS local. Modifique o arquivo /etc/resolv.conf para que tenha o seguinte conteúdo:

domain fabel.local

nameserver 172.16.0.2


3) Crie os usuários que receberão e-mails. Após criar cada usuário, será definida a senha do mesmo. Novamente, não serão exibidos os asteriscos durante a digitação. Essa senha será utilizada depois para receber os e-mails:

useradd -m admin

passwd admin

useradd -m erros

passwd erros

useradd -m teste-exemplo.com

passwd teste-exemplo.com

useradd -m teste-exemplo.org

passwd teste-exemplo.org

useradd -m teste-exemplo.net

passwd teste-exemplo.net


4) Configure o servidor SMTP:

4.1) Edite o arquivo /etc/postfix/main.cf:

4.1.1) Modifique as seguintes linhas (devem ficar como abaixo):

inet_interfaces = all

home_mailbox = Correio/

4.1.2) Adicione as seguintes linhas:

virtual_alias_domains = exemplo.com exemplo.org exemplo.net

virtual_alias_maps = hash:/etc/postfix/virtual

4.2) Reinicie o serviço postfix com o comando abaixo:

service postfix restart

4.3) Crie o mapeamento entre contas de e-mail e usuários locais:

4.3.1) Edite o arquivo /etc/postfix/virtual e adicione as linhas abaixo:

teste@exemplo.com teste-exemplo.com

teste@exemplo.org teste-exemplo.org

teste@exemplo.net teste-exemplo.net

admin@exemplo.com admin

admin@exemplo.org admin

admin@exemplo.net admin

@exemplo.com erros

@exemplo.org erros

@exemplo.net erros

4.3.2) Recompile o arquivo de mapeamentos com o comando abaixo:

postmap /etc/postfix/virtual


5) Configurar o servidor POP/IMAP:

5.1) Edite o arquivo /etc/dovecot/conf.d/10-mail.conf e modifique a linha abaixo (deve ficar como abaixo):

mail_location = maildir:~/Correio/

5.2) Edite o arquivo /etc/dovecot/conf.d/10-auth.conf e modifique a linha abaixo (deve ficar como abaixo):

auth_username_translation = “@-“

5.3) Reinicie o serviço dovecot com o comando abaixo:

service dovecot restart


6) Configurar o servidor HTTP:

6.1) Crie a estrutura de diretórios, uma para cada site virtual, com os comandos abaixo:

mkdir /var/www/default

mkdir /var/www/www.exemplo.com

mkdir /var/www/www.exemplo.org

mkdir /var/www/www.exemplo.net

6.2) Crie páginas iniciais de teste, uma para cada site virtual, com os comandos abaixo:

echo “<h1>default</h1>” > /var/www/default/index.html

echo “<h1>exemplo.com</h1>” > /var/www/www.exemplo.com/index.html

echo “<h1>exemplo.org</h1>” > /var/www/www.exemplo.org/index.html

echo “<h1>exemplo.net</h1>” > /var/www/www.exemplo.net/index.html

6.3) Edite o arquivo /etc/httpd/conf/httpd.conf:

6.3.1) Modifique a linha abaixo (deve ficar como abaixo):

NameVirtualHost *:80

6.3.2) Adicione as seguintes linhas ao final do arquivo:

<VirtualHost *:80>

ServerName vm00.fabel.local

DocumentRoot /var/www/default

</VirtualHost>

<VirtualHost *:80>

ServerName http://www.exemplo.com

DocumentRoot /var/www/www.exemplo.com

</VirtualHost>

<VirtualHost *:80>

ServerName http://www.exemplo.org

DocumentRoot /var/www/www.exemplo.org

</VirtualHost>

<VirtualHost *:80>

ServerName http://www.exemplo.net

DocumentRoot /var/www/www.exemplo.net

</VirtualHost>

6.4) Reinicie o serviço httpd com o comando abaixo:

service httpd restart

Material de estudo de DNS

Dicas para escolher um servidor

Algumas dicas importantes na hora de escolher um servidor para sua empresa:

  • Servidor não é um desktop turbinado! Além de ter mais processador, memória e disco, um servidor tem uma série de outras características que o diferenciam de um desktop como: arquitetura de E/S otimizada, redundância de componentes, possibilidade de troca à quente de componentes (com a máquina ligada), entre outros. Não confie em quem diz que é possível “ir na loja montar um servidor”;
  • O servidor de ter garantia on-site (na empresa) para peças e serviços por 3 anos ou mais. Verifique se há assistência técnica na sua cidade;
  • O tempo máximo para troca de um componente defeituoso (de 4 em diante) influencia no preço da garantia. Faça as contas para decidir que garantia comprar;
  • Verifique a data de lançamento do modelo a ser adquirido. Modelos recentes podem ser mais caros, mas terão peças disponíveis por mais tempo;
  • Servidores têm vida útil em torno de 5 anos. Após esse prazo, a garantia começa a ser quase o valor de um servidor novo. Programe-se para trocar de máquina já no quarto ano;
  • A memória deve ser di tipo ECC (com correção de erros);
  • Verifique a redundância dos componentes físicos. Um servidor deve ter, pelo menos:
    • Duas interfaces de rede configuradas com agregação de link (também conhecido como teaming ou bonding). De preferência, cada interface deve estar conectada a um switch diferente;
    • Duas fontes de alimentação, cada uma ligada a um no-break diferente. De preferência, cada no-break deve estar ligado a um circuito diferente;
    • Dois discos rígidos configurados em RAID-1, preferencialmente via hardware;
  • Se possível, invista em componentes hot-swap (podem ser trocados com a máquina ligada). Discos e fontes hot-swap têm um bom custo/benefício, mas é possível encontrar até processador hot-swap!
  • Verifique a capacidade de expansão do servidor, ou seja, até quanto de processador, memória e disco é possível adicionar. Tenha em mente que, quanto maior a capacidade de expansão, maior será o preço inicial. Em compensação, se a demanda aumentar, não será preciso trocar de máquina, apenas comprar e adicionar componentes;
  • Seu servidor deve ficar em um ambiente com acesso controlado, climatizado por mais de um split, com piso estável e livre de poeira e umidade. De preferência, os no-breaks devem ficar em uma sala separada. Em alguns casos, essas são exigência mínimas do fabricante para manter a garantia;
  • Durante a garantia, apenas o fabricante por montar e desmontar os equipamentos (com exceção dos hot-swap, que podem ser trocados pelo próprio cliente).