Mostrando postagens com marcador Servidores. Mostrar todas as postagens
Mostrando postagens com marcador Servidores. Mostrar todas as postagens

domingo, 8 de julho de 2012

Servidor Wireless


Introdução


Instalando servidor Debian – Memento
Autor: TAYLOR LOPES – taylor – at – pop.com.br
Atualização: 11 Out 2006
Versão: debian-31r2-i386-netinst.iso
AVISO: Isto não é um tutorial, mas roteiro das ações realizadas na instalação de um servidor Debian (neste caso, o Debian netinst).
É como uma “receita de bolo”: saboroso pra uns, solado pra outros…
Índice:
  1. Instalação do Debian;
  2. Atualização do Debian;
  3. Instalação de pacotes adicionais necessários;
  4. Estrutura geral da rede (em questão);
  5. Políticas adotadas;
  6. Configuração da rede do servidor;
  7. Configuração do Bind9 – Servidor de nomes (DNS);
  8. Configuração do DHCP – Servidor de IP (associado ao MAC);
  9. Configuração do Iptables – Firewall;
  10. Configuração do Squid (Proxy) – Controle de Acessos;
  11. NÃO ABORDADO: Configuração do Apache – Servidor Web;
  12. Configuração do Sarg – Gerador de relatórios para o Squid;
  13. NÃO ABORDADO: Configuração do Samba – Compartilhador Linux/Windows.

Instale o Debian no computador que será o servidor


Faça download do Debian netinst em:
OBS: Debian netinst contém apenas a quantidade mínima de software para começar a instalação e obter os outros pacotes através da Internet.
Caso queira, use uma versão mais completa:
Versão oficial mais recente das imagens de CD da distribuição estável: 3.1 rev3. Faça download em:
Durante a instalação, atribua o nome ao servidor. Exemplo: servidor
O superusuário “root” será criado.
Crie também o usuário comum “admin” para uso do sistema sem comprometê-lo.
Ao terminar, logue-se como root para proceder as configurações restantes.
Faça atualização do Debian:
# apt-get update
Instale mais alguns pacotes necessários (caso ainda não tenha):
# apt-get install squid (Proxy – Cache e controle de acesso a internet)
# apt-get install samba (Integra sistema de arquivos Linux x Windows)
# apt-get install bind9 (DNS – Servidor de nomes)
# apt-get install apache (Servidor Web)
# apt-get install php4 (Linguagem de programação para fazer websites)
# apt-get install dhcp3-server (Servidor de IP fixo/dinâmico)
# apt-get install ssh (Acesso remoto)
# apt-get install sarg (Gerador de Relatórios do Squid)
OBS:
1) Caso a versão a versão Debian não venha com interface gráfica, como é o caso do netinst, instale-a:
# apt-get update
# apt-get install x-window-system xserver-xfree86 gnome-core gdm
Caso após a instalação e configuração houver problemas com a interface gráfica, reconfigure-a:
# dpkg-reconfigure xserver-xfree86
2) Caso precise, baixe o mozilla firefox:
# apt-get update
# apt-get install mozilla-firefox-locale-pt-br

Estrutura geral da rede

 +------------------+
  |                  |
  |     Internet     |
  |                  |
  +------------------+
            |
  +---------+--------+  +------------------+  +------------------+
  |     Roteador     |  |       pc-1       |  |       pc-2       |
  |   192.168.0.1    |  |     10.0.0.2     |  |     10.0.0.3     |
  |  (ou outro IP)   |  |                  |  |                  |
  +---------+--------+  +---------+--------+  +------------------+
            |                     |          /
  +---------+--------+  +---------+--------+` +------------------+
  |     Servidor     |  |                  |  |       pc-n       |
  | eth0 192.168.0.2 +--+     Hub/Switch   +--+     10.0.0.n     |
  | eth1 10.0.0.1    |  |                  |  |                  |
  +------------------+  +------------------+  +------------------+

Políticas adotadas

Políticas de Acesso a Internet (AI):
01) Definir AI somente para PCs da rede interna (Intranet)
02) Definir AI para todos PCs, fora do horário de expediente
03) Proibir AI de determinados PCs no horário de expediente
04) Definir lista de PC(s) sem AI (bloqueados) 24h/dia
05) Proibir uso do Internet Explorer (Estimular Firefox)
06) Definir PC(s) com permissão para uso do Internet Explorer
07) Proibir formatos de vídeos, áudio e arquivos de risco
08) Proibir palavras e sites impróprios/imoral
09) Proibir downloads com mais de 5 MB
10) Definir PC(s) (admin) com privilegio total de AI
OBS: O controle dos computadores (PC) será feito pelo seu endereço físico (MAC) e não pelo IP.
Políticas do administrador da rede:
01) Utilizar DHCP para atribuir IP fixo associado ao MAC da placa de rede
02) Fazer o controle de acesso por endereço MAC (placa de rede) e não por IP
03) Definir PCs autorizados ao AI (por endereço MAC)
04) Analisar Log de acesso com SARG
05) Definir proxy transparente no iptables e Squid
06) NÃO IMPLEMENTADO: Implementar servidor Web Apache e disponibilizar web site (intranet)
07) NÃO IMPLEMENTADO: Criar seção de downloads no web site para diminuir o trafego em rede
08) NÃO IMPLEMENTADO: Divulgar políticas de acesso a internet no web site

Configure as placas de redes do servidor (deve haver duas)

Defina um IP fixo e máscara de rede para as duas placas de redes:
Fica convencionado:
  • eth0 (internet) – inet 192.168.0.2 masca 255.255.255.0 (Recebe a Internet)
  • eth1 (intranet) – inet 10.0.0.1 masc 255.0.0.0
Perceba que, pelo exemplo acima, os computadores da rede deverão ter IP fixo 10.0.0.2, 10.0.0.3, 10.0.0.n. No nosso caso em particular, tais IPs fixos serão atribuídos pelo DHCP, sem a necessidade de configuração no cliente.
Abra o arquivo /etc/network/interfaces e atualize para:
# /etc/network/interfaces
#
# Interface de rede local – loopback
#***********************************
auto lo
iface lo inet loopback
#
# Primeira placa de rede – Internet
#**********************************
# auto eth0 
# iface eth0 inet dhcp
auto eth0
iface eth0 inet static
address 192.168.0.2
netmask 255.255.255.0
broadcast 192.168.0.255
network 192.168.0.0
gateway 192.168.0.1 # IP do roteador
#
# Segunda placa de rede – Intranet
#*********************************
auto eth1
iface eth1 inet static
address 10.0.0.1
netmask 255.0.0.0
broadcast 10.255.255.255
network 10.0.0.0
Reinicie a rede:
# /etc/init.d/networking restart

Configure o Bind9 – Servidor de nomes (DNS) e DHCP

Abra o arquivo /etc/resolv.conf e atualize para:
# /etc/resolv.conf
#
search localdomain
nameserver 10.0.0.1
nameserver 192.168.0.1
nameserver 200.195.192.133
Reinicie o serviço:
# /etc/init.d/bind9 restart

Configure o DHCP – Servidor de IP (associado ao MAC)

Para atribuir IP fixo sem configurá-lo no cliente, utilize o DHCP com associação ao endereço MAC da placa de rede.
Abra o arquivo /etc/dhcp3/dhcpd.conf e atualize para:
# /etc/dhcp3/dhcpd.conf 
#
# Configurações gerais 
#*********************
#
INTERFACES=”eth1″;
ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
authoritative;
subnet 10.0.0.0 netmask 255.0.0.0 {
range 10.0.0.5 10.0.0.50;
option routers 10.0.0.1;
option domain-name-servers 200.195.192.133;
option broadcast-address 10.0.0.255;
}
host pc-1 {
hardware ethernet 00:C0:9F:E5:9B:18;
fixed-address 10.0.0.2;
}
host pc-2 {
hardware ethernet 00:00:86:3B:AD:96;
fixed-address 10.0.0.3;
}
Reinicie o serviço:
# /etc/init.d/dhcp3-server restart

Iptables – Firewall


Utilizaremos o iptables para:
1) Proxy Transparente – Redirecionar o fluxo da porta 80 (http) para a porta 3128 (squid);
2) Compartilhar a Internet;
Para isto, crie o arquivo que conterá as regras:
# touch /etc/init.d/iptables.conf
# chmod 755 /etc/init.d/iptables.conf
Abra o arquivo /etc/etc/init.d/iptables.conf e atualize para:
#!/bin/bash
#
# /etc/etc/init.d/iptables.conf 
#
# Limpa e inicializa os modulos
#******************************
#
iptables -F
iptables -t nat -F
iptables -t mangle -F
modprobe iptable_nat
#
# Proxy transparente (Redireciona para o squid) – eth1 -> Placa de rede da intranet
#********************************************************
#
iptables -t nat -A PREROUTING -i eth1 -p tcp –dport 80 -j REDIRECT –to-port 3128
#
# Compartilha Internet – eth0 -> Placa de rede da internet
#********************************************************
#
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
Coloque o iptables.conf para rodar na inicialização:
# cd /etc/rc2.d
# ln -s /etc/init.d/iptables.conf /etc/rc2.d/S99iptables.conf
Inicie o serviço:
# /etc/init.d/iptables.conf

Configure o Squid (Proxy) – Controle de acessos

Abra o arquivo /etc/squid/squid.conf e atualize para:
# Autor: TAYLOR LOPES – taylor@pop.com.br
# Arquivo: /etc/squid/squid.conf
#
# Políticas de Acesso a Internet (AI) adotadas
#*********************************************
#
# 01. Definir AI somente para PCs da rede interna (Intranet)
# 02. Definir AI para todos PCs, fora do horário de expediente
# 03. Proibir AI de determinados PCs no horário de expediente
# 04. Definir lista de PC(s) sem AI (bloqueados) 24h/dia
# 05. Proibir uso do Internet Explorer (Estimular Firefox)
# 06. Definir PC(s) com permissão para uso do Internet Explorer
# 07. Proibir formatos de vídeos, áudio e arquivos de risco
# 08. Proibir palavras e sites impróprios/imoral
# 09. Proibir downloads com mais de 5 MB
# 10. Definir PC(s) (admin) com privilegio total de AI
#
# OBS: O controle dos computadores (PC) é feito pelo seu
# endereço físico (MAC) e não pelo IP.
#
# Configuração Geral
#*******************
#
http_port 3128
cache_mem 32 MB
cache_dir ufs /var/spool/squid 100 16 256
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
pid_filename /var/run/squid.pid
error_directory /usr/share/squid/errors/Portuguese
emulate_httpd_log on
visible_hostname servidor.4pef
cache_mgr taylor@pop.com.br
#
# Proxy Transparente
#*******************
#
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
#
# acl – Recomendadas
#*******************
#
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563 # https, snews
acl SSL_ports port 873 # rsync
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 631 # cups
acl Safe_ports port 873 # rsync
acl Safe_ports port 901 # SWAT
acl purge method PURGE
acl CONNECT method CONNECT
#
# acl – Personalizadas
#*********************
#
# *** Define portas liberadas
acl Safe_ports port 3050 # Interbase/Firebird
acl Safe_ports port 23000 # Serpro
acl Safe_ports port 13352 # SIRF
acl Safe_ports port 500 # FAP Digital
#
# *** Define a rede interna (Intranet)
acl intranet src 10.0.0.0/255.0.0.0
#
# *** Define PC(s) com privilegio total – CUIDADO!
acl admin arp “/etc/squid/list/admin.txt”
#
# *** Define a lista de PC(s) autorizados ao acesso a Internet
acl internet arp “/etc/squid/list/internet.txt”
#
# *** Define a lista de sites impróprios
acl site dstdomain -i “/etc/squid/list/site.txt”
#
# *** Define a lista de palavras impróprias
acl palavra url_regex -i “/etc/squid/list/palavra.txt”
#
# *** Define os formatos de vídeo, áudio e outros de risco
acl video urlpath_regex .wma$ .asf$ .mov$ mpg$ .mpeg$ .avi$
acl audio urlpath_regex .mp3$ .wav$ .mid$
acl risco urlpath_regex .exe$ .pps$ .com$ .bat$ .scr$
#
# *** Define o browser Internet Explorer
acl ie_browser browser ^Mozilla/4.0 .compatible; MSIE
#
# *** Define PC(s) autorizados a usar o Internet Explorer
acl ie_usuario arp “/etc/squid/list/browser.txt”
#
# *** Define PC(s) sem acesso a Internet (bloqueados) 24h/dia
acl bloqueado arp “/etc/squid/list/bloqueado.txt”
#
# *** Define o horário do expediente
acl exp1_seg-qui time MTWH 08:00-12:00
acl exp2_seg-qui time MTWH 13:30-17:00
acl exp1_sex time F 08:00-12:00
#
# http_access – Recomendadas
#***************************
#
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
#
# http_access – Personalizadas
#*****************************
#
# *** Libera dowloads de ate 5 MB
reply_body_max_size 5242880 allow all !admin
#
# *** Nega sites improprios
http_access deny site !admin
#
# *** Nega palavras impróprias
http_access deny palavra !admin
#
# *** Nega os formatos de vídeo, áudio e outros de risco
http_access deny video !admin
http_access deny audio !admin
http_access deny risco !admin
#
# *** Nega o Internet Explorer
http_access deny ie_browser !ie_usuario !admin
#
# *** Nega Internet no expediente para quem não esta na lista
http_access deny !internet !admin exp1_seg-qui
http_access deny !internet !admin exp2_seg-qui
http_access deny !internet !admin exp1_sex
#
# *** Nega PC(s) sem acesso a internet (bloqueados)
http_access deny bloqueado
#
# Permite acesso da rede interna (Intranet)
http_access allow intranet
#
# *** Nega tudo que não foi liberado ou negado
http_access deny all
Crie os diretórios/arquivos de controle:
# mkdir /etc/squid/list
# touch /etc/squid/list/admin.txt
# touch /etc/squid/list/bloqueado.txt
# touch /etc/squid/list/browser.txt
# touch /etc/squid/list/internet.txt
# touch /etc/squid/list/palavra.txt
# touch /etc/squid/list/site.txt
# chmod 755 /etc/etc/squid/list
# chmod 755 /etc/squid/list/admin.txt
# chmod 755 /etc/squid/list/bloqueado.txt
# chmod 755 /etc/squid/list/browser.txt
# chmod 755 /etc/squid/list/internet.txt
# chmod 755 /etc/squid/list/palavra.txt
# chmod 755 /etc/squid/list/site.txt
Exemplo do conteúdo dos arquivos de controle:
# Arquivo /etc/squid/list/admin.txt
# Lista de PCs com MAC de privilegio total
00:00:00:00:00:00 # Default – Não remova!
00:C0:9F:E3:9B:21 # pc-1
# Arquivo /etc/squid/list/bloqueado.txt
# Lista de PCs com MAC bloqueados a Internet 24h/dia
00:00:00:00:00:00 # Default – Não remova!
00:C0:86:B3:AD:88 # pc-4
02:D0:F6:C4:F7:32 # pc-7
00:A0:A1:B3:21:19 # pc-8
# Arquivo /etc/squid/list/browser.txt
# Lista de PCs com MAC autorizados usar Internet Explorer
00:00:00:00:00:00 # Default – Não remova!
00:A0:A1:B3:21:19 # pc-8
# Arquivo /etc/squid/list/internet.txt
# Lista de PCs com MAC liberados a Internet
00:00:00:00:00:00 # Default – Não remova!
00:C0:9F:E3:9B:21 # pc-1
00:DD:31:F2:C1:96 # pc-5
# Arquivo /etc/squid/list/palavra.txt
# Lista de palavra impróprios proibidos
default.default # Default – Não remova!
sexo
sexy
porn
# Arquivo /etc/squid/list/site.txt
# Lista de sites impróprios proibidos
default.default # Default – Nao remova!
playboy.abril.com.br
astalavista.com
Reinicie o squid:
# squid -k reconfigure
(atualiza sem parar o serviço)
Ou:
# /etc/init.d/squid restart

Sarg – Gerador de relatórios para o Squid


NÃO ABORDADO: Configure o Apache – Servidor Web
Basicamente após a instalação, o Apache estará funcionando normalmente. Em breve maiores informações…

Configure o Sarg – Gerador de relatórios para o squid

Abra o arquivo /etc/squid/sarg.conf e atualize para:
# Traducao: TAYLOR LOPES – taylor@pop.com.br
# OBS: Algumas TAGs foram omitidas!
# /etc/squid/sarg.conf
#
# *** Idioma
language Portuguese
#
# *** Arquivo de log a ser lido para gerar relatório
access_log /var/log/squid/access.log
#
#*** Usar Gráfico – yes | no
graphs yes
#
# *** Título da pagina HTML
title “Relatorio de uso da Internet”
#
# *** Fonte da pagina HTML
font_face Tahoma,Verdana,Arial
#
# *** Nome do diretorio temporário dos arquivos em trabalho
# sarg -w dir
temporary_dir /tmp
#
# *** Diretório onde serão salvos os relatórios
# sarg -o dir
output_dir /var/www/squid-reports
#
# *** Converte IP em DNS (nome) – yes | no
# sarg -n
resolve_ip
#
# *** Usa IP ao inves de userid nos relatórios – yes | no
# sarg -p
user_ip no
#
# *** Ordena – normal | reverse
# Campos permitidos: USER | CONNECT | BYTES | TIME
topuser_sort_field BYTES reverse
#
# *** Usuarios contidos no sarg.users São excluídos do relatório
exclude_users /etc/squid/sarg.users
#
# *** Exclui host, domínios ou subredes do relatório
# Ex: 192.168.10.10 – exclui ip apenas
# 192.168.10.0 – exclui toda classe C
# s1.acme.foo – exclui hostname apenas
# acme.foo – exclui tod domínio
exclude_hosts /etc/squid/sarg.hosts
#
# *** Formata a data do relatório
# e (European=dd/mm/yy)
# u (American=mm/dd/yy)
# w (Weekly=yy.ww)
date_format e
#
# *** Remove relatórios antigos automaticamente
# 0 – sem limites.
lastlog 0
#
# *** Remove os arquivos temerários
remove_temp_files yes
#
# *** Gera o index.html – yes | no | only
# only – gera apenas um unico index.html principal
index yes
#
# *** Sobrescrever relatório – yes | no
overwrite_report yes
#
# *** O que fazer com registros sem identificação no access.log
# ignore – Ignora os registros
# ip – Usa o IP
# everybody – Usa o texto “everybody”
records_without_userid ip
#
# *** Usa vírgula ao invés de ponto no | yes
use_comma yes
#
# *** Comando para enviar relatório via SMTP – mail|mailx
mail_utility mailx
#
# *** Quantidade de sites do relatório topsites
topsites_num 100
#
# *** Ordena os topsites – CONNECT|BYTES A|D
# Onde A=Crescente, D=Descendente
topsites_sort_order CONNECT D
#
# *** Ordena o index.html – A | D
# Onde A=Crescente, D=Descendente
index_sort_order D
#
# *** Ignora registros com alguns códigos
# Ex: NONE/400
exclude_codes /etc/squid/sarg.exclude_codes
#
# *** Máximo de tempo decorrido (milliseconds)
# Use 0 para nao checar
max_elapsed 28800000
#
# *** O que os relatorios geram:
# topsites – exibe o site, conexao e bytes
# sites_users – exibe que usuario esteve num site
# users_sites – exite site acessados pelo usuario
# date_time – exibe a quatidade de bytese num dia/h
# denied – exibe todos os sites negados
# auth_failures – exibe as falhas nas autenticacoes
# site_user_time_date – exibe sites, datas, tempo e bytes
# Ex.: report_type topsites denied
#
report_type topsites sites_users users_sites date_time denied auth_failures site_user_time_date
#
# *** Troca o IP ou userid pelo nome do usuario no relatorio
# Ex:
# SirIsaac Isaac Newton
# vinci Leonardo da Vinci
# 192.168.10.1 Karol Wojtyla
# Cada linha precisa terminar com ‘ ‘ (enter)
usertab /etc/squid/sarg.usertab
#
# *** Exibe a URL longa ou so o site – yes | no
long_url no
#
# *** Data/Hora ou Tempo decorrido – bytes | elapsed
date_time_by bytes
#
# *** Padroes de multilinguagem
# Voce pode usar os seguintes caracteres:
# Latin1 – West European
# Latin2 – East European
# Latin3 – South European
# Latin4 – North European
# Cyrillic
# Arabic
# Greek
# Hebrew
# Latin5 – Turkish
# Latin6
# Windows-1251
# Koi8-r
charset Latin1
#
# *** Gera relatorios apenas dos usuarios listados
# Ex: include_users “user1:user2:…:usern”
#include_users none
#
# *** Gera relatorio ignorando uma lista de string
# Ex: exclude_string “string1:string2:…:stringn”
#exclude_string none
#
# *** Exibe mensagem de sussesso do relatorio gerado-yes|no
show_successful_message no
#
# *** Exibe a leitura de algumas estatisticas
show_read_statistics no
#
# *** Quais campos devem ser do relatorio Topuser
topuser_fields NUM DATE_TIME USERID CONNECT BYTES %BYTES IN-CACHE-OUT USED_TIME MILISEC %TIME TOTAL AVERAGE
#
# *** Quais campos devem ser do relatorio User
user_report_fields CONNECT BYTES %BYTES IN-CACHE-OUT USED_TIME MILISEC %TIME TOTAL AVERAGE
#
# *** Quantidade de usuarios do relatorio Topsites
# 0 = sem limites
topuser_num 0
#
# *** Gera relatorio em formato de lista ou tabela-list|table
site_user_time_date_type table
#
# *** Salva o resultado do relatorio em um arquivo
#datafile /tmp/p8
#
# *** Usa um caracter separador dos campos no arquivo
#datafile_delimiter “;”
#
# *** Quais campos de dados devem ter o arquivo
# Ex: datafile_fields all ou user
# Campos permitidos:
# user;date;time;url;connect;bytes;
# in_cache;out_cache;elapsed
#datafile_fields
#user;date;time;url;connect;bytes;in_cache;out_cache;elapsed
#
# *** Dias da semana levados em conta (Domingo->0,Sabado->6)
# Ex: weekdays 1-3,5
#weekdays 0-6
#
# *** Horas levadas conta
# Ex: hours 7-12,14,16,18-20
#hours 0-23
#
# *** Gera um relatorio para o log do SquidGuard
# Ex: squidguard_conf /usr/local/squidGuard/squidGuard.conf
#squidguard_conf none
#
# *** Exibe informacoes do sarg e site no relatorio – yes|no
#show_sarg_info yes
#
# *** Exibe logotipo do sarge – yes|no
show_sarg_logo yes
#
# *** Onde esta seus documentos Web
#www_document_root /var/www
#
# *** Sufixo de arquivos considerados como dowloads no
# relatorio de downloads. Use ‘none’ para desabilitar
download_suffix “zip, arj, bzip, gz, ace, doc, iso, adt, bin, cab, com, dot, drv$, lha, lzh, mdb, mso, ppt, rtf, src, shs, sys, exe, dll, mp3, avi, mpg, mpeg”
Para gerar relatórios, vá ao terminal e digite:
# sarg
OBS: Abra com o browser o arquivo squid-reports gerado em /var/www/ ou abra o browser (firefox) e digite http://localhost/squid-reports.
IMPORTANTE: Seu servidor Apache deve estar funcionado!
NÃO ABORDADO: Configuração do Samba – Compartilhador Linux/Windows