Mudanças entre as edições de "Projeto Integrador - 2009.1 - Equipe Zeus"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
 
(19 revisões intermediárias por 3 usuários não estão sendo mostradas)
Linha 41: Linha 41:
  
 
==DHCP==
 
==DHCP==
 +
 +
DHCP é a sigla para Dynamic Host Configuration Protocol.
 +
Trata-se de um protocolo utilizado em redes de computadores que permite a estes obterem um endereço IP automaticamente.
 +
 +
 
* '''Configuração do DHCP;'''
 
* '''Configuração do DHCP;'''
 
* <tt>apt-get install dhcp3</tt>
 
* <tt>apt-get install dhcp3</tt>
Linha 71: Linha 76:
  
 
==DNS==
 
==DNS==
 +
 +
DNS é a sigla para Domain Name System (Sistema de Resolução de Nomes). Trata-se de um recurso usado em redes TCP/IP (o protocolo utilizado na internet e na grande maioria das redes) que permite acessar computadores sem que o usuário ou sem que o próprio computador tenha conhecimento de seu endereço IP, ou seja, faz a conversão de nomes em endereços IP's.
 +
 
* Configurado o DNS.
 
* Configurado o DNS.
 
* <tt>apt-get install bind9</tt>
 
* <tt>apt-get install bind9</tt>
Linha 139: Linha 147:
 
  domain zeus.sj.ifsc.edu.br
 
  domain zeus.sj.ifsc.edu.br
 
  nameserver  127.0.0.1
 
  nameserver  127.0.0.1
 +
 +
==Postifix==
 +
 +
O Postfix é um agente de transferência de emails (MTA), um software livre para envio e entrega de emails. Rápido e fácil de administrar, é uma alternativa segura ao Sendmail, muito utilizado em servidores UNIX.
 +
 +
Configuração:
 +
 +
myhostname = mail.zeus.sj.ifsc.edu.br
 +
mydomain = zeus.sj.ifsc.edu.br
 +
alias_maps = hash:/etc/aliases
 +
alias_database = hash:/etc/aliases
 +
myorigin = zeus.sj.ifsc.edu.br
 +
mydestination = zeus.sj.ifsc.edu.br, localhost.zeus.sj.ifsc.edu.br, localhost, mail.zeus.ifsc.edu.br
 +
mynetworks = 127.0.0.1/32
  
 
== SSH ==
 
== SSH ==
 +
 +
O SSH (Secure SHell) é um protocolo que permite a você acessar virtualmente o servidor como se você estivesse em um terminal (no prompt do DOS, por exemplo). Se você preferir, considere como o SSH como um computador controlando outro computador.
  
 
Utilizado para acessar remotamente o servidor.
 
Utilizado para acessar remotamente o servidor.
Linha 153: Linha 177:
  
 
==SMTP/IMAP - Servidor de e-mail==
 
==SMTP/IMAP - Servidor de e-mail==
 +
 +
SMTP - padrão internacional utilizado para transfência de correspondências eletrônicas (email) entre computadores.
 +
 +
IMAP - protocolo padrão utilizado por leitores de email para ter acesso às mensagens que chegam ao servidor de email.
  
 
* <tt>apt-get install -uw imapd</tt>
 
* <tt>apt-get install -uw imapd</tt>
Linha 230: Linha 258:
 
* '''Configurado arquivo clients.conf''';
 
* '''Configurado arquivo clients.conf''';
  
  client zeus {
+
  client proxy{
  nastype = other
+
        ipaddr = 200.135.37.115
  client = 192.168.1.230
+
        secret = proxy
  secret = senha
+
        nastype = other
  shortname = usuario
+
}
}
+
 
 
client zeus {
 
  nastype = other
 
  cliente = 192.162.1.209
 
  secret = senha
 
  shortname = usuario
 
}
 
  
  
Linha 262: Linha 283:
 
         Tunnel-Medium-Type = "IEEE-802",
 
         Tunnel-Medium-Type = "IEEE-802",
 
         Tunnel-Private-Group-ID = "X"
 
         Tunnel-Private-Group-ID = "X"
 +
 +
zeus@zeus.sj.ifsc.edu.br        Cleartext-Password :="123"
 +
        Tunnel-Type = "VLAN",
 +
        Tunnel-Medium-Type = "IEEE-802",
 +
        Tunnel-Private-Group-ID = "20"
  
 
==Crontab==
 
==Crontab==
Linha 284: Linha 310:
  
  
#!/bin/bash
 
  
 +
Do [http://www.vivaolinux.com.br/artigo/Seguranca-com-Iptables Viva o Linux]:
  
#bloqueia tudo
+
''Firewall''
 +
 
 +
''O que é iptables/firewall''
 +
 
 +
''O Firewall é um programa que tem como objetivo proteger a máquina contra acessos indesejados, tráfego indesejado, proteger serviços que estejam rodando na máquina e bloquear a passagem de coisas que você não deseja receber (como conexões vindas da Internet para sua segura rede local, evitando acesso aos dados corporativos de uma empresa ou a seus dados pessoais).''
 +
 
 +
''Iptables''
 +
 
 +
''O iptables é um firewall em nível de pacotes e funciona baseado no endereço/porta de origem/destino do pacote, prioridade, etc. Ele funciona através da comparação de regras para saber se um pacote tem ou não permissão para passar. ''
 +
 
 +
 
 +
                bloqueia tudo
 
iptables -P INPUT DROP
 
iptables -P INPUT DROP
#libera o minimo
+
                libera o minimo
 
iptables -A INPUT -i lo -j ACCEPT
 
iptables -A INPUT -i lo -j ACCEPT
 
iptables -A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT
 
iptables -A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT
  
#libera aplicativo TCP
+
              libera aplicativo TCP
 
iptables -A INPUT -p tcp –dport 22 –syn -j ACCEPT
 
iptables -A INPUT -p tcp –dport 22 –syn -j ACCEPT
  
#http
+
                      http
 
iptables -A INPUT -p tcp --dport 80 --syn -j ACCEPT
 
iptables -A INPUT -p tcp --dport 80 --syn -j ACCEPT
  
#Liberar aplicativo UDP
+
              Liberar aplicativo UDP
  
#DHCP
+
      DHCP
 
iptables -A INPUT -p udp --dport 67 -j ACCEPT
 
iptables -A INPUT -p udp --dport 67 -j ACCEPT
  
#radius (autenticacao via proxy = 200.135.37.115)
+
radius (autenticacao via proxy = 200.135.37.115)
 
iptables -A INPUT -p udp –dport 1812 -j ACCEPT
 
iptables -A INPUT -p udp –dport 1812 -j ACCEPT
  
#NAT
+
      NAT
  
 
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
 
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Linha 313: Linha 350:
 
=Programação para Redes de Computadores=
 
=Programação para Redes de Computadores=
 
==PHP==
 
==PHP==
 +
 +
Uma linguagem do lado do servidor é aquela que se executa no servidor web, justo antes da página ser enviada através da Internet ao cliente. As páginas que se executam no servidor podem realizar acessos a bases de dados, conexões em rede, e outras tarefas para criar a página final que será vista pelo cliente. O cliente somente recebe uma página com o código HTML resultante da execução da PHP. Como a página resultante contém unicamente código HTML, é compatível com todos os navegadores.
 +
 +
Segue abaixo o comando para instalar o PHP.
 +
 
* <tt>apt-get install php5</tt>
 
* <tt>apt-get install php5</tt>
 +
 
A página foi criada em HTML e [http://php.net PHP].
 
A página foi criada em HTML e [http://php.net PHP].
  
 
== Banco de dados ==
 
== Banco de dados ==
 +
 +
Bancos de dados (ou bases de dados), são conjuntos de registros dispostos em estrutura regular que possibilita a reorganização dos mesmos e produção de informação. Um banco de dados normalmente agrupa registros utilizáveis para um mesmo fim.
 +
 +
Segue abaixo o comando para a instalação do banco de dados MySQL.
 +
 
* <tt>apt-get install mysql-server</tt>
 
* <tt>apt-get install mysql-server</tt>
 +
 +
Utilizamos o MySQL-Query-Browser
 +
 +
 +
Segue abaixo o comando para a instalação do banco de dados MySQL-Query-Browser.
 +
 +
* <tt>apt-get install mysql-query-server</tt>
 +
 
O nosso banco de dados utiliza MySQL como linguagem.
 
O nosso banco de dados utiliza MySQL como linguagem.
  

Edição atual tal como às 14h49min de 10 de julho de 2009

Cabeamento Estruturado

  • Pontos na sala de meios de transmissão (CAB);
  • Dois Patch Panel no Rack na sala de transmissão;
  • 1 Patch Cord;
  • Teste de continuidade realizada no patch cord OK;
  • Passagem do cabo UTP que interliga a sala de redes1 com meios de transmissão em conjunto com os outros grupos;

Instalação de Equipamentos de Rede

  • Configurado switch 192.168.1.230;
  • Configurado as portas 7-11;
  • Criado as VLANs para hóspedes (20), usuários (25) e visitantes (100);


  • VLAN 20: IP - 10.2.1.1;
          Broadcast - 10.2.1.255;
          Mascara - 255.255.255.0;
  • VLAN 25: IP - 10.2.2.1;
          Broadcast - 10.2.2.255;
          Mascara - 255.255.255.0;
  • VLAN 100: IP - 10.2.10.1;
           Broadcast - 10.2.10.255;
           Mascara - 255.255.255.0;

Gerência de Rede

Sistema Operacional

  • Configurando o Servidor (GER);
  • Instalado o sistema operacional UBUNTU versão 8.10.
  • Configuração da eth0.
  • IP do servidor: 200.135.37.111;
  • Broadcast - 200.135.37.127;
  • Mascara - 255.255.255.192;

DHCP

DHCP é a sigla para Dynamic Host Configuration Protocol. Trata-se de um protocolo utilizado em redes de computadores que permite a estes obterem um endereço IP automaticamente.


  • Configuração do DHCP;
  • apt-get install dhcp3
       subnet 10.2.1.0 netmask 255.255.255.0 {
       range 10.2.1.50 10.2.1.60;
       option subnet-mask 255.255.255.0;
       option broadcast-address 10.2.1.255;
       option routers 10.2.1.1;
       option domain-name-servers 200.135.37.111
}

       subnet 10.2.2.0 netmask 255.255.255.0 {
       range 10.2.2.50 10.2.2.60;
       option subnet-mask 255.255.255.0;
       option broadcast-address 10.2.2.255;
       option routers 10.2.2.1;
       option domain-name-servers 200.135.37.111;

}

       subnet 10.2.10.0 netmask 255.255.255.0 {
       range 10.2.10.50 10.2.10.60;
       option subnet-mask 255.255.255.0;
       option broadcast-address 10.2.10.255;
       option routers 10.2.10.1;
       option domain-name-servers 200.135.37.111;

}

DNS

DNS é a sigla para Domain Name System (Sistema de Resolução de Nomes). Trata-se de um recurso usado em redes TCP/IP (o protocolo utilizado na internet e na grande maioria das redes) que permite acessar computadores sem que o usuário ou sem que o próprio computador tenha conhecimento de seu endereço IP, ou seja, faz a conversão de nomes em endereços IP's.

  • Configurado o DNS.
  • apt-get install bind9
  • Abrir o aquivo named.conf.local:

Seguem abaixo as configurações necessárias que devem ser configuradas dentro do mesmo.

named.conf.local

zone "zeus.sj.ifsc.edu.br" {
   type master;
   file "/etc/bind/zeus";
 };
zone "37.135.200.in-addr.arpa" {
type master;
file "/etc/bind/37.135.200.in-addr.arpa";
};
  • Criamos um arquivo com o nome de zeus, seguem abaixo as configurações que devem conter no arquivo.

zeus

$TTL    86400
; Start of Authority: início de autoridade @ IN SOA dns1.zeus.sj.ifsc.edu.br. admin.zeus.sj.ifsc.edu.br. ( 2009040100 ; Serial 1d ; Refresh 4h ; Retry 1w ; Expire 1d ) ; Negative Cache TTL ; ; Name Server: servidores DNS @ IN NS dns1 @ IN MX 0 mail ; ; Address: endereço dns1 IN A 200.135.37.111 mail IN A 200.135.37.111 www IN A 200.135.37.111 ; ; Canonical Name: "apelido" web IN CNAME www
  • É necessário criar o DNS reverso onde o nome é composto pelos 3 primeiros octetos de forma reversa e mais .in-addr.arpa seguem abaixo as configurações necessárias.

Ressalto que somente o servidor precisará configurar o DNS reverso.

37.135.200.in-addr.arpa

$TTL    86400
; Start of Authority: início de autoridade
@ IN SOA dns1.zeus.sj.ifsc.edu.br. admin.zeus.sj.ifsc.edu.br. (
2009062201 ; Serial
1d ; Refresh
4h ; Retry
1w ; Expire
1d ) ; Negative Cache TTL
;
; Name Server: servidores DNS
@ IN NS dns1.zeus.
;
; Address: endereço
111 IN PTR dns1.zeus.sj.ifsc.edu.br.
111 IN PTR mail.zeus.sj.ifsc.edu.br.
111 IN PTR www.zeus.sj.ifsc.edu.br

resolv.conf

  • Colocar o domínio utilizado.
domain zeus.sj.ifsc.edu.br
nameserver  127.0.0.1

Postifix

O Postfix é um agente de transferência de emails (MTA), um software livre para envio e entrega de emails. Rápido e fácil de administrar, é uma alternativa segura ao Sendmail, muito utilizado em servidores UNIX.

Configuração:

myhostname = mail.zeus.sj.ifsc.edu.br
mydomain = zeus.sj.ifsc.edu.br
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = zeus.sj.ifsc.edu.br
mydestination = zeus.sj.ifsc.edu.br, localhost.zeus.sj.ifsc.edu.br, localhost, mail.zeus.ifsc.edu.br
mynetworks = 127.0.0.1/32

SSH

O SSH (Secure SHell) é um protocolo que permite a você acessar virtualmente o servidor como se você estivesse em um terminal (no prompt do DOS, por exemplo). Se você preferir, considere como o SSH como um computador controlando outro computador.

Utilizado para acessar remotamente o servidor.

apt-get install sshd

Apache - Servidor Web

apt-get install apache2

Não é necessário configurar, somente incuir o site (páginas e imagens)no /var/www. Ressalto que o site precisa excluir o arquivo index.html que estará dentro do /var/www e renomear o site inicial para index, senão o por default aparecerá uma página em branco.

SMTP/IMAP - Servidor de e-mail

SMTP - padrão internacional utilizado para transfência de correspondências eletrônicas (email) entre computadores.

IMAP - protocolo padrão utilizado por leitores de email para ter acesso às mensagens que chegam ao servidor de email.

  • apt-get install -uw imapd
  • apt-get install postifix
  • apt-get install mailx


  • Configurado arquivo main.cf;
     myhostname = mail.zeus.sj.ifsc.edu.br
     mydomain = zeus.sj.ifsc.edu.br
     alias_maps = hash:/etc/aliases
     alias_database = hash:/etc/aliases
     myorigin = zeus.sj.ifsc.edu.br
     mydestination = zeus.sj.ifsc.edu.br, localhost.zeus.sj.ifsc.edu.br, localhost, mail.zeus.ifsc.edu.br
     relayhost =
     mynetworks = 127.0.0.1/32

SNMP

Utilizado para monitoração da rede a ferramenta Cacti. O Cacti recolhe dados referente a rede e mostra gráfico onde podemos observar a quantidade de memória utilizada, a utilização de partições, tráfego das interfaces, quantidade de processos que estão rodando entre outros. Para instalar o Cacti e o utilizamos os comandos abaixo.

  • apt-get install snmpd
  • apt-get install cacti


  • Configurado arquivo /etc/snmp/snmpd.conf;
      rocommunity zeus
      syslocation Laboratório de redes 1
      syscontact zeus@zeus.sj.ifsc.edu.br
      sysservices 72

Ressalto que não podemos esquecer de escolher uma comunidade e decreve-lá no campo "rocommunity", pois no Cacti será solicitado a comunidade que deve ser utilizada.

Acesso ao nosso Cacti http://www.zeus.sj.ifsc.edu.br/cacti

Radius

O radius é uma ferramenta utilizada para a autenticação de usuários seja na rede cabeada ou na rede sem fio. Pode ser utilizado com um banco de dados MySQL, para que o mesmo busque usuário e senha ou pode-se usar o arquivo de texto users da mesma forma determinando usuário e senha. Utilizaremos o arquivo de texto users devido a facilidade de implementar.

  • Baixando o pacote
wget ftp://ftp.freeradius.org/pub/freeradius/freeradius-server-2.1.6.tar.gz
  • Compilador e biblioteca
make
gcc 
g++
libssl-dev
  • Preparando a compilação
./configure --prefix=/usr/local freeradius-server2.1.6 --exe-prefix=/usr/local freeradius-server2.1.6 
  • Compilando
make
make install

Após isso é necessário a configuração de dois arquivos o clients.conf e o users

  • Clients.conf

Arquivo onde é cadastrado os equipamentos que irão se conectar a rede.

  • Users

Arquivo onde é cadastrado os usuários que podem se conectar a rede, é necessário determinar dentro do users o login e senha que será utilizado por cada usuário.

Segue abaixo a configuração de cada um desses arquivos.


  • Configurado arquivo clients.conf;
client proxy{
       ipaddr = 200.135.37.115
       secret = proxy
       nastype = other

}


  • Configurado arquivo users;
  • Formato utilizado para que possamos identificar e excluir os arquivos foi o seguinte.
  • O login e senha que estão abaixo serão os respectivos login e senha do usuário para que o mesmo possa se autenticar na rede cabeada ou sem fio.
  • O "X" é onde você deve identificar em qual VLAN cairá o usuário após a autenticação.
  • #2009-07-30 é a data de saída do hóspede
  • 22222222222 é a senha que deverá ser utilizada pelo usuário para a autenticação.
#2009-07-30 22222222222
login@zeus.sj.ifsc.edu.br Cleartext-Password :="senha"
       Tunnel-Type = "VLAN",
       Tunnel-Medium-Type = "IEEE-802",
       Tunnel-Private-Group-ID = "X"

zeus@zeus.sj.ifsc.edu.br        Cleartext-Password :="123"
        Tunnel-Type = "VLAN",
        Tunnel-Medium-Type = "IEEE-802",
        Tunnel-Private-Group-ID = "20"

Crontab

  • Utilizamos o crontab para agendarmos uma tarefa para realizar o checkout, todos os dias ao meio dia é executado um scrit onde é procurado todos os usuários onde a data de saída é igual a data de hoje, esses usuários são excluídos do users e do relatório de ocupação.

Utilizamos o comando sed –i, onde o mesmo localiza e exclui um determinado número de linhas a partir do parâmetro citado para a busca

Tafera Agendada

Utilizamos o seguinte parâmetro para agendar a tarefa para todos os dias as 12h o usuário root executar a tarefa. Os parâmetros são determinados dentro do arquivo crontab em /etc.

00 12   * * *   root    /etc/freeradius/cron

Script (Crontab)

Criamos um script para incluirmos no cron onde o mesmo irá verificar se a data do users (data de saída do hóspede) é igual a data de hoje, se for igual o comando sed -i irá excluir as 5 linhas do users e assim bloqueando o acesso daquele usuário, pois sem o cadastro no users não tem como o usuário autenticar. Segue abaixo o script.

#!/bin/bash
data=`date +%F`
sed -i /\#$data/,+5d /etc/freeradius/users

Iptables

Do Viva o Linux:

Firewall

O que é iptables/firewall

O Firewall é um programa que tem como objetivo proteger a máquina contra acessos indesejados, tráfego indesejado, proteger serviços que estejam rodando na máquina e bloquear a passagem de coisas que você não deseja receber (como conexões vindas da Internet para sua segura rede local, evitando acesso aos dados corporativos de uma empresa ou a seus dados pessoais).

Iptables

O iptables é um firewall em nível de pacotes e funciona baseado no endereço/porta de origem/destino do pacote, prioridade, etc. Ele funciona através da comparação de regras para saber se um pacote tem ou não permissão para passar.


                bloqueia tudo

iptables -P INPUT DROP

               libera o minimo

iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT

              libera aplicativo TCP

iptables -A INPUT -p tcp –dport 22 –syn -j ACCEPT

                     http

iptables -A INPUT -p tcp --dport 80 --syn -j ACCEPT

             Liberar aplicativo UDP
      DHCP

iptables -A INPUT -p udp --dport 67 -j ACCEPT

radius (autenticacao via proxy = 200.135.37.115) iptables -A INPUT -p udp –dport 1812 -j ACCEPT

      NAT

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Programação para Redes de Computadores

PHP

Uma linguagem do lado do servidor é aquela que se executa no servidor web, justo antes da página ser enviada através da Internet ao cliente. As páginas que se executam no servidor podem realizar acessos a bases de dados, conexões em rede, e outras tarefas para criar a página final que será vista pelo cliente. O cliente somente recebe uma página com o código HTML resultante da execução da PHP. Como a página resultante contém unicamente código HTML, é compatível com todos os navegadores.

Segue abaixo o comando para instalar o PHP.

  • apt-get install php5

A página foi criada em HTML e PHP.

Banco de dados

Bancos de dados (ou bases de dados), são conjuntos de registros dispostos em estrutura regular que possibilita a reorganização dos mesmos e produção de informação. Um banco de dados normalmente agrupa registros utilizáveis para um mesmo fim.

Segue abaixo o comando para a instalação do banco de dados MySQL.

  • apt-get install mysql-server

Utilizamos o MySQL-Query-Browser


Segue abaixo o comando para a instalação do banco de dados MySQL-Query-Browser.

  • apt-get install mysql-query-server

O nosso banco de dados utiliza MySQL como linguagem.

Referências Bibliográficas

Apostilas

  • Linux Básico, Gerência, Segurança e Monitoramento de Redes - Odilson Tadeu Valle



Projeto Integrador - 2009.1