Mudanças entre as edições de "Projeto Integrador - 2009.2 - Dicas de GER"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 5: Linha 5:
 
{
 
{
 
splines = true
 
splines = true
 
subgraph clusterEnlace
 
{
 
label = "Enlace"
 
RADIUS
 
}
 
  
 
subgraph clusterRede
 
subgraph clusterRede
Linha 28: Linha 22:
 
}
 
}
  
RADIUS -> DHCP -> DNS -> HTTP
+
DHCP -> DNS -> HTTP
 
MySQL -> HTTP -> MySQL
 
MySQL -> HTTP -> MySQL
 
DNS -> SMTP -> HTTP
 
DNS -> SMTP -> HTTP
Linha 36: Linha 30:
  
 
==Integração entre Aplicações==
 
==Integração entre Aplicações==
* Integrem as aplicações Web com programas ligados ao S.O. Por exemplo, uma página em PHP pode ser agendada para realizar operações de manipulação de arquivos. Exemplo: arquivo <tt>/etc/crontab</tt>:
+
À espera da necessidade dos alunos :-)
...
 
00  */12  *  *  *  root  php -q /var/www/hotel/manipula_arquivo_de_usuarios.php
 
* Sugestão de integração:
 
** A aplicação Web controla todas as operações sobre os outros serviços em rede. No banco de dados, ficam armazenadas informações estáticas (nome, endereço) e dinâmicas (entradas, saídas). Já na aplicação do RADIUS, ficam replicados estes usuários, a fim desta aplicação poder autenticá-los conforme o padrão IEEE 802.1x. A integração pode ser feita de forma automatizada, agendando as manipulações de usuários em horários predeterminados. A título de exemplo: todas as entradas e saídas de hospedagem ocorrem às 12h; portanto, é nesse horário específico que usuários ficam (des|h)abilitados a usar a rede com e sem fio.
 
** A aplicação RADIUS pode utilizar bases remotas de usuários, como por exemplo LDAP ou bancos de dados (MySQL, por exemplo). Entretanto, pela dificuldade de implementação a curto prazo, é aconselhável o uso de arquivos em formato texto próprios do RADIUS ([http://wiki.freeradius.org/EAP/MD5_HOWTO#User_configuration_.28users.29 clientes] e [http://wiki.freeradius.org/Clients.conf usuários]).
 
<graphviz>
 
digraph Integração
 
{
 
HTTP -> Cron [label="Agendamento"]
 
Cron -> RADIUS [label="Manipulação de usuários"]
 
HTTP -> MySQL [label="Cadastro de Usuários"]
 
MySQL -> HTTP
 
HTTP -> RADIUS
 
}
 
</graphviz>
 
  
 
= Segurança via Filtro de Pacotes =
 
= Segurança via Filtro de Pacotes =
Linha 83: Linha 62:
 
  # DHCP
 
  # DHCP
 
  iptables -A INPUT -p udp --dport 67 -j ACCEPT
 
  iptables -A INPUT -p udp --dport 67 -j ACCEPT
  #
+
   
# Autenticação RADIUS (via proxy proxy.sj.ifsc.edu.br)
 
iptables -A INPUT -s proxy.sj.ifsc.edu.br -p udp --dport 1812 -j ACCEPT
 
 
 
  
<center><small>[[Projeto Integrador - 2009.2#Gerência de Rede|Página principal do Projeto]]</small></center>
+
<center><small>[[Projeto Integrador - 2009.2#Gerência de Redes|Página principal do Projeto]]</small></center>

Edição das 20h23min de 17 de novembro de 2009

Organização

<graphviz> digraph Serviços { splines = true

subgraph clusterRede { label = "Rede" DHCP }

subgraph clusterAplicacao { label = "Aplicação" DNS HTTP MySQL SMTP IMAP }

DHCP -> DNS -> HTTP MySQL -> HTTP -> MySQL DNS -> SMTP -> HTTP DNS -> IMAP -> HTTP } </graphviz>

Integração entre Aplicações

À espera da necessidade dos alunos :-)

Segurança via Filtro de Pacotes

O reforço da segurança via filtro de pacotes é relativamente fácil e rápido de se implementar. Por isso, e pelo resultado aceitável em servidores expostos na rede, é recomendado o seu uso. Entretanto, nunca deve ser considerado como elemento único ou final da proteção. Combinações com IDS e outras aplicações proativas são quase uma obrigatoriedade hoje em dia :-)

Para o projeto, a configuração abaixo pode ser útil:

#!/bin/bash

# Caso geral
#
# Bloqueia tudo
iptables -P INPUT DROP
#
# Apaga as linhas antigas
iptables -F
#
# Libera o mínimo: interface local (loopback) e conexões já estabelecidas
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

# Libera aplicações TCP
#
# SSH
iptables -A INPUT -p tcp --dport 22 --syn -j ACCEPT
#
# HTTP
iptables -A INPUT -p tcp --dport 80 --syn -j ACCEPT

# Libera aplicações UDP
#
# DHCP
iptables -A INPUT -p udp --dport 67 -j ACCEPT

Página principal do Projeto