Administração e configuração de servidores Linux

Segue neste post um relatório de uma disciplina de Administração e Segurança de Redes que cursei na faculdade de Ciência de Computação. Esse relatório contém os passos para montar diversos tipos de servidores usando linux. Esses passos, na maior parte das vezes, é bastante direcionada para distribuições debian-like, mas podem ser adaptados para outras distribuições.

08/05/06

Foram divididas as máquinas entre as equipes e especificados os endereços IP’s de todas as máquinas.

No início, utilizamos  o comando ifconfig para determinar os endereços, mas a distribuição, após reiniciada, pegava o IP via dhcp.

O comando foi o seguinte:

ifconfig eth0 192.168.73.66 netmask 255.255.255.0

132615(192.168.73.65 para  a outra)

Portanto, nas duas que serão utilizadas pelo grupo, foram dados os IP’s 192.168.73.65/24 e 192.168.73.66/24. Para configurar a interface de rede das duas máquinas, foi editado o arquivo /etc/network/interfaces, que ficou com essa configuração:

auto eth0

iface eth0 inet static

address 192.168.73.66                      (192.168.73.65 para a outra)

netmask 255.255.255.0

network 192.168.73.0

gateway 192.168.73.254

dns-nameservers 192.168.73.1

Foram criados também os usuários. Antes de serem criados, foi necessário desmontar o diretório /home que estava sendo montada via nfs e parar o serviço nis que estava ativado. Para que a home não fosse mais montada via nfs, foi comentada a última linha do arquivos /etc/fstab e para que o nis não fosse mais habilitado durante a inicialização, foi removido o link para o script de inicializão do nis (/etc/rc2.d/S19nis).

10/05/06

Instalamos o SNMP (apt-get install snmpd), o MIB Browse (apt-get install mbrowse) e o snmp (apt-get install snmp).

Configuramos o snmp, acrescentado no arquivo snmpd.conf as linhas abaixo:

rocommunity grupo4ro

rwcommunity grupo4rw

que indicam as communities de leitura e escrita, utilizadas no aplicativo MIB Browse (aberto digitando mbrowse no terminal).

Com o aplicativo mbrowse, navegamos pelas opções do SNMP, que nos forneceu dados sobre a maquina, permitindo alterar alguns dados, como o nome da maquina, por exemplo.

Utilizamos também o snmpwalk na linha de comando para navegar pela MIB, através do comando:

snmpwalk -c grupo4ro -v 1 localhost system

15/05/06

Instalamos  o tcpdump e o ethereal, e utilizamos este ultimo aplicativo para capturar pacotes SNMP de leitura e escrita na MIB.

Com base nestas capturas, pudemos verificar o comportamento dos pacotes GET, GET-NEXT e RESPONSE do protocolo SNMP.

Inicialmente, tivemos algumas dificuldades de capturar os pacotes SNMP, já que o ethereal estava configurado para capturar pacotes do endereço 192.168.73.65, mas os pacotes eram disparados pela e para a interface de loopback, não sendo encaminhadas pela rede.

17/05/2006

Foi feita a instalação do servidor de DNS. Para isso, foi instalado o pacote bind pelo apt-get.

Após instalado o bind, foi adicionado ao arquivo /etc/bind/named.conf uma nova zona, que é a zona grupo4.edu.br, sendo criado um novo arquivo para essa zona, que foi o arquivo /etc/bind/grupo4.

Zona criada no arquivo named.conf:

zone “grupo4.edu.br” {

type master;

file “/etc/bind/grupo4”;

};

Arquivo grupo4:

;

; BIND reverse data file for local loopback interface

;

$TTL            604800

@        IN            SOA            grupo4.edu.br. root.grupo4.edu.br. (

1                ; Serial

604800                      ; Refresh

86400             ; Retry

2419200                   ; Expire

604800 )            ; Negative Cache TTL

;

@        IN            NS            grupo4.edu.br.

@        IN            A            192.168.73.65

3118-16            IN            CNAME            grupo4.edu.br.

@        IN            MX            10            3118-16.grupo4.edu.br.

Após reinicializar o serviço de nomes (/etc/init.d/bind restart), foi modificado o arquivo /etc/resolv.conf, para adicionar o nosso servidor de nomes, então, o teste foi feito através de um ping.

Arquivo resolv.conf:

#search computacao.uesc.br

nameserver 192.168.73.65

#nameserver 192.168.73.1

#nameserver 172.16.0.51

#nameserver 172.16.0.43

22/05/2006

Configuramos o DNS reverso na maquina 192.168.73.65, através da inclusão das linhas abaixo no arquivo named.conf:

Criamos também o arquivo grupo4-rev com o conteúdo abaixo:

$TTL    604800

@       IN      SOA     grupo4.edu.br. root.grupo4.edu.br. (

1         ; Serial

604800         ; Refresh

86400         ; Retry

2419200         ; Expire

604800 )       ; Negative Cache TTL

;

NS grupo4.edu.br.

65 PTR grupo4.edu.br.

29/05/06

A primeira coisa que foi feita foi a instalação do apache e testada a zona criada na aula anterior.

O apache foi instalado pelo comando apt-get install apache.

Para ser testada a zona antes criada, precisou ser editado o arquivo /etc/bind/grupo4 (o arquivo da zona) e adicionada uma nova linha ao final:

www     IN      CNAME   grupo4.edu.br.

Foi então, criada uma nova zona: a grupo4.com.br e também criado o arquivo para a zona /etc/bind/grupo4_2:

;

; BIND reverse data file for local loopback interface

;

$TTL    604800

@       IN      SOA     grupo4.com.br.   root.grupo4.com.br. (

1         ; Serial

604800         ; Refresh

86400         ; Retry

2419200         ; Expire

604800 )       ; Negative Cache TTL

;

@       IN      NS      grupo4.com.br.

@       IN      A       192.168.73.65

3118-16 IN      CNAME   grupo4.com.br.

@       IN      MX      10      3118-16.grupo4.com.br.

www     IN      CNAME   grupo4.com.br.

Ao arquivo /etc/apache/httpd.conf, foi adicionada as linhas no final:

NameVirtualHost *

<VirtualHost *>

ServerAdmin master@grupo4.edu.br

DocumentRoot /usr/share/site1

ServerName www.grupo4.edu.br

</VirtualHost>

<Directory “/usr/share/site1”>

Options +Indexes

</Directory>

<VirtualHost *>

ServerAdmin master@grupo4.com.br

DocumentRoot /usr/share/site2

ServerName www.grupo4.com.br

</VirtualHost>

<Directory “/usr/share/site2”>

Options +Indexes

</Directory>

Para o host virtual, foram criadas as pastas /usr/share/site1 e /usr/share/site2.

Então, foram reinicializados os serviços de dns e apache e testados através do browser.

05/06/06

Instalamos o servidor de ftp (apt-get install proftpd) e o servidor de tftp (apt-get install tftpd).

Editamos o arquivo /etc/proftpd.conf para acrescentar a linha “DefaultRoot ~”, que limita os usuarios a suas pastas home, impedindo que eles naveguem por pastas um nivel acima.

Modificamos tambem o arquivo /etc/bind/grupo4, para acrescentar a linha “ftp IN CNAME grupo.edu.br.”.

Quanto ao tftp, não foi preciso modificar nenhum arquivo, apenas instalar o tftpd e o tftp (apt-get install tftp).

07/06/06

Instalamos o servidor de banco de dados mysql e o phpmyadmin. Para isso, utilizamos o comando apt-get install phpmyadmin, que instalou o phpmyadmin, o mysql-common e o php4.

Após isso, disparamos o comando apt-get install mysql-server para instalar o servidor mysql.

Como o servidor apache está configurado, na zona grupo4.edu.br, a acessar a pasta /usr/share/site1, criamos um link dentro desta pasta para a pasta do phpmyadmin (/var/www/phpmyadmin).

Logo, dentro do navegador, quando digitado o endereço na barra de endereços localhost/phpmyadmin/ (ou www.grupo4.edu.br/phpmyadmin) pôde se comprovar que o phpmyadmin estava funcionando.

12/06/06

Instalamos o webmin (apt-get install webmin), e acessamos a interface web deste atraves da url https://3118-16:10000 (o 3118-16 é um nome solicitado durante a instalação pelo apt-get).

Após isso, instalamos o squid e o modulo webmin-squid (apt-get install webmin-squid instala todos os pacotes). Com isso, o modulo squid aparece na interface do webmin na aba Servers.

Instalamos tambem os seguintes modulos para o webmin: webalizer (apt-get install webmin-webalizer), sarg (apt-get install webmin-sarg) e ftp (apt-get install webmin-proftpd).

19/06/06

Através do Webmin, configuramos o squid para bloquear endereços web determinados. Para isso, criamos uma ACL do tipo “Expressão na URL”, informando o endereço que queríamos bloquear. Depois, adicionamos esta ACL na lista de Restrições, e colocamos ela acima da restrição que permitia acesso de tudo a todos.

Para isso, seguimos os seguintes passos no webmin: servidor squid -> controle de acesso -> criar nova e acl (preenchemos os dados pedidos e clicamos salvar) e depois “adicionar restrição de proxy”.

Configuramos o sarg para gerar dois relatorios por dia que informariam os sites acessados e bloqueados por cada usuario.

Para isso, seguimos os seguintes passos no webmin: Squid Analysis Report Generator -> Scheduled Report Generation -> e selecionamos os horários que serão gerados os relatórios.

03/07/06

Nesta aula, instalamos os aplicativos solid-pop3d (para o serviço pop3) e o sendmail (para o smtp).

Para o pop3, foi suficiente executar o comando apt-get install solid-pop3, e escolher se queriamos rodar o serviço pelo inetd ou como daemon (escolhemos inetd). testamos com o comando “telnet 192.168.73.65 110” e “nmap -sTU localhost”.

Para o sendmail, executamos o comando sendmailconfig, que fez algumas perguntas auto-explicativas e configurou o sendmail. Porém, ao testar com os comandos “telnet 192.168.73.65 25” e “nmap -sTU localhost”, o serviço smtp não estava ativo.

10/07/06

Nesta aula, re-executamos o comando “sendmailconfig” e intalamos o ilohamail, um servidor de webmail compativel com POP/SMTP. com ele, enviamos um e-mail para nos mesmos e para um endereço externo, podendo assim testar o funcionameto de nosso servidor de e-mail.

12/07/06

Nesta aula, criamos um arquivo ~/.spamassassin/user_prefs definindo regras para o recebimento das mensagens, classificando estas como spam ou não. Falta definir quais alterações são necessárias no arquivo /etc/spop3d.conf para que as regras sejam aplicadas.