Projeto: Internet serve pra quê?
Este é um projeto contemplado no EDITAL 04/2011/PRPPGI.
A Proposta
Entender como funciona o cabeamento do Laboratório dos Alunos para "afunilar" o tráfego por um roteador+proxy, a ser configurado no computador do monitor. A ideia é chegar a esse cenário:
graph Rede { Internet [shape=plaintext] Monitor [shape=Mrecord,label="Roteador + Proxy"] Switch [shape=circle] C1 [shape=plaintext] C2 [shape=plaintext] C3 [shape=plaintext] C4 [shape=plaintext] C5 [shape=plaintext] C6 [shape=plaintext] C7 [shape=plaintext] C8 [shape=plaintext] C9 [shape=plaintext]
Internet -- Monitor Monitor -- Switch Switch -- C1 Switch -- C2 Switch -- C3 Switch -- C4 Switch -- C5 Switch -- C6 Switch -- C7 Switch -- C8 Switch -- C9 }
</graphviz>A Implementação
Roteador
Ativar roteador, tirando o # do arquivo /etc/sysctl.conf. De:
#net.ipv4.ip-forward=1
para
net.ipv4.ip-forward=1
Interfaces de Rede
Configurar placas de rede editando o arquivo /etc/network/interfaces, colocando eth0 (rede externa) eth3 (rede interna).
auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 172.18.21.244 netmask 255.255.0.0 gateway 172.18.0.254 auto eth3 iface eth3 inet static address 192.168.20.3 netmask 255.255.255.0
NAT
Configurar NAT, para que todos os IPs dos computadores fiquem "mascarados" a rede externa, quando obtiverem acesso a internet.
Editar o arquivo /etc/rc.local e acrescentar: iptables -t nat -F iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Obs: antes da linha:
exit 0
DHCP
Instalar DHCP:
sudo install dhcp
E depois configurar:
vi /etc/dhcp3/dhcpd.conf
com o conteúdo[1]:
ddns-update-style none; authoritative; default-lease-time 3600; max-lease-time 14400; subnet 192.168.20.0 netmask 255.255.255.0 { range 192.168.20.4 192.168.20.30; option subnet-mask 255.255.255.0; option broadcast-address 192.168.20.255; option routers 192.168.20.3; option domain-name-servers 200.135.37.65, 200.135.37.72; }
SSH
Instalar ssh. Você pode se conectar a um outro computador (com ssh instalado) em qualquer lugar. Resumindo, SSH é uma ferramenta que cumpre seu papel em facilitar a vida de administradores Linux que necessitam realizar uma administração de forma remota. :)
aptitude install ssh
Proxy HTTP
Servidor
Proxy squid3 - É chamado de proxy, pois é um procurador, ou seja, sistema que faz solicitações em nome dos outros. O Squid é um servidor proxy utilizado para gerenciar o acesso a internet (rede externa), pois ele implementa um controle sobre o conteúdo que deve ou não ser acessado pelas máquinas clientes gerenciadas por este servidor[2]. O Squid trabalha com ACLs (Listas de Controle de Acesso) e através dessas listas de controle ele se torna uma poderosa ferramenta na administração de tráfego de conteúdo entre a rede interna e a externa.[3]
aptitude install squid3
Adicionar em /etc/rc.local (antes da linha exit 0):
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
onde 3128 é a porta da qual o Squid está sendo executado. Feito isso, vamos aos detalhes finais no Squid. Abra o arquivo /etc/squid3/squid.conf e descomente as seguintes linhas:
httpd_accel_port 80 transparent httpd_accel_host virtual ... httpd_accel_with_proxy on ... httpd_accel_uses_host_header on
Na primeira linha, é preciso adicionar a palavra transparent. Feito isso, vamos aplicar a configuração com o comando:
squid3 -k reconfigure
Gerador de relatórios do Proxy
aptitude install sarg
Editar o arquivo sarg.conf de acordo com suas preferências.
language Portuguese; ... title "Relatório do laboratório"; ... output_dir /var/www/squid-reports
Próximo passo: proxy com geração de relatório por usuário[4]
Clientes
Nos clientes, é preciso configurar os navegadores para a autoconfiguração (em rede). No Firefox, deve-se alterar o parâmetro network.proxy.type, adicionando a seguinte linha no final do arquivo /etc/firefox/profile/prefs.js:
user_pref("network.proxy.type", 4);
Outro arquivo a ser modificado é o /etc/rc.local. Nele você vai permitir que o computador resgate a configuração para o usuário aluno; ou seja, a configuração automatizada de proxy. Adicione no final do arquivo (antes da linha exit 0):
cd /home rm -rf aluno mkdir aluno chown aluno:aluno aluno
Manutenção
Sem acesso a Internet
Como ver se o ldap cai: digitar o comando
ldapsearch -x -b dc=cefetsc,dc=edu,dc=br -h 200.135.37.78 uid
no terminal, se houver "respostas" ele está funcionando... Se não houver, siga os passos abaixo:
- Virar root com o comando;
sudo su
- Mudar o diretório:
cd /etc/squid3
- Editar o arquivo squid.conf com o comando:
nano squid.conf
e tirar # das seguintes linhas:
http_access allow internet
e colocar a expressão transparent na seguinte linha:
http_port 3128 transparent
- Reconfigurar o squid com o seguinte comando:
squid3 -k reconfigure