Servidor de Internet, Firewall, Logs – Ubuntu 10.04.3 LTS Lucid Lynx


 

Autor: welton cordeiro machado <ti at graodourado.com.br>

Configurando as interfaces de rede e Configurando Squid

No artigo eu uso editor de textos mc caso tenha preferência em usar outro, substitua mcedit pelo editor de sua preferência.
Obs.: Vamos considerar que eth1 é a interface para a internet e eth0 a interface para a rede local.
Instalando editor de textos mc:
# apt-get install mc
Editando as Interfaces:
# mcedit /etc/network/interfaces
Obs.: Eu coloquei as interfaces manuais, sendo que a eth0 é minha rede local, e eth1 é minha internet, configure os ips conforme necessário na sua rede.
Caso seja necessário editar as dns da eth1 internet:
# mcedit /etc/resolv.conf

auto lo eth0 eth1
iface lo inet loopback
iface eth0 inet static
address 10.1.1.1
netmask 255.0.0.0
network 10.0.0.0
broadcast 10.255.255.255
#iface eth1 inet dhcp
iface eth1 inet static
address 192.168.1.2
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1

Instalando e configurando Squid

Instalando squid:
# apt-get install squid
Guardando o squid original pra mais tarde caso precise:
# cd /etc/squid
# mv squid.conf squid.conf.original
Criando Regras de squid:
# mcedit squid.conf

http_port 3128 transparent
visible_hostname debian
error_directory /usr/share/squid/errors/Portuguese
cache_mem 256 MB
maximum_object_size_in_memory 64 KB
maximum_object_size 512 MB
minimum_object_size 3 KB
cache_swap_low 90
cache_swap_high 95
cache_dir ufs /var/spool/squid 1024 16 50
cache_access_log /var/log/squid/access.log
refresh_pattern ^ftp: 15 20% 2280
refresh_pattern ^gopher: 15 0% 2280
refresh_pattern . 15 20% 2280
#O cache pode ser configurado para continuar downloads de requisicoes abortadas
quick_abort_min -1 KB
quick_abort_max 0 KB
quick_abort_pct 100%
#fecha a conexao quando o a leitura do socket retornar sem mais dados para leitura
half_closed_clients off
read_timeout 60 seconds
pconn_timeout 120 seconds
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 SSL_ports port 443 563
acl Safe_ports port 21 80 443 563 70 210 280 488 59 777 901 1025-65535
acl purge method PURGE
acl CONNECT method CONNECT
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
# Macs computadores de quem e Totalmente Liberado
acl macsliberados arp “/etc/squid/macsliberados”
http_access allow macsliberados
# Macs computadores de quem e bloqueado
acl macsbloqueados arp “/etc/squid/macsbloqueados”
http_access deny macsbloqueados
#Lista de Sites Bloqueados
acl bloqueados url_regex -i “/etc/squid/bloqueados”
http_access deny bloqueados
#Lista de Macs de Pessoas Autorizadas e Fazer Downloads
acl downloadsallow arp “/etc/squid/downloads.allow”
http_access allow downloadsallow
#Lista de Extensoes ex. ..exe . Bloqueadas
acl downloadsdeny url_regex -i “/etc/squid/downloads.deny”
http_access deny downloadsdeny
acl LoginMSN dst loginnet.passport.com
acl GatewayMSN url_regex gateway.dll
http_access allow CONNECT LoginMSN
http_access deny GatewayMSN
#Aqui você vai colocar a faixa de ip da sua rede local ex: 192.168.1.0/24 ou conforme abaixo:
acl redelocal src 10.0.0.0/8
http_access allow localhost
http_access allow redelocal
http_access deny all
forwarded_for off
memory_pools off
detect_broken_pconn on

Continuação – Configurando Squid

Criando lista de MAC’s Liberados:
Aqui você vai colocar os MAC’s liberados na rede.
# mcedit macsliberados

00:00:00:00:00:00

Criando lista de MAC’s Bloqueados:
Aqui você vai colocar os MAC’s sem acesso a internet.
# mcedit macsbloqueados

00:00:00:00:00:00

Criando lista de Sites Bloqueados:
Aqui você vai colocar os sites bloqueados, fiz uma pequena lista dos que uso onde trabalho, caso necessite coloque ou retire algum da lista.
# mcedit bloqueados

http://www.orkut.com.br
orkut.com.br
http://www.orkut.com
orkut.com
http://www.youtube.com.br
http://www.youtube.com
youtube.com
youtube.com.br
http://www.ebuddy.com
http://www.iloveim.com
http://www.meebo.com
http://www.homiez.cn
http://www.facebook.com/
facebook.com/
http://www.facebook.com.br
facebook.com.br
#########################Lista de sites Msn
http://www.mijnmessenger.nl/
http://www.iloveim.com/
msn.audiowatcher.com/
http://www.mangeloo.com
http://www.imaginarlo.com/
piglet-im.com/
x6.iloveim.com
x3.iloveim.com
http://www.wbmsn.net/default.aspx
http://www.msn2go.com
http://www.e-messenget.net
ibypass.com
http://www.e-messenger.net
x8.iloveim.com
85.184.4.4/
http://www.onlinemessenger.nl/
http://www.freepgs.com/defilter/
capetown.e-messenger.net
http://www.phonefox.com
http://www.mastaline.com
http://www.piglet-im.com
http://www.piglet.0900provider.nl
boston.e-messenger.net
vicotria.e-messenger.net
atlanta.e-messenger.net
mob.e-messenger.net
arkansa.e-messenger.net
pretoria.e-messenger.net
chicago.e-messenger.net
thevirtualbrowser.com/
http:/phonefox.com
balancer.iloveim.com/servlets/login
jabber.meta.net.nz/webmsg/register.php
http://www.racewarkingdoms.com
http://www.chrishemple.co.uk/proxy/
http://www.wbmsn.net/
http://www.piglet-im.com
http://www.kolikoli.tk
http://www.blockedsuks.co.nr
http://www.researchhaven.com/Chat.htm
http://www.webtal.com.br/imagens/msn.html.
bombay.e-messenger.net/
capetown.e-messenger.net
houston.e-messenger.net/servlet/login
http://www.douradina.pr.gov.br/jacare/
http://www.messenger-online.com/emessenger.php

Criando lista pessoas autorizadas a fazer downloads:
Aqui você vai colocar os MAC’s que são autorizados a fazerem downloads na rede.
# mcedit downloads.allow

00:00:00:00:00:00

Criando lista de extensões bloqueadas:
Aqui você vai colocar as extensões bloqueadas para downloads e visualização na rede, as que estão listadas abaixo são as que eu uso fique a vontade para editalas
# mcedit downloads.deny

\.exe$
\.com$
\.zip$
\.rar$
\.iso$
\.mp3$
\.wmv$
\.bat$
\.avi$
\.mpe$
\.mpg$
\.mpeg$
\.wav$
\.wma$
\.rmvb$

Criando script de Firewall

Instalando rcconf para que possamos configurar serviço e inicialização:
# apt-get install rcconf
Criando Script:
# touch /etc/init.d/firewall
Editando script:
# mcedit /etc/init.d/firewall

echo Limpando as tabelas e Chains
iptables -F
iptables -F -t nat
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -t mangle -F
iptables -t nat -F
iptables -X
echo Limpeza das Tabelas ….. [ok]
### Habilitando os módulos
modprobe iptable_nat
modprobe ip_nat_ftp
echo Modulos Carregados ….. [ok]
### Compartilhamento da Internet
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
echo Internet Compartilhada ….. [ok]
#Segurança
#Não responde a pings
iptables -A INPUT -p icmp –icmp-type echo-request -j DROP
#Proteção contra Ip Spoofing
echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter
iptables -A INPUT -m state –state INVALID -j DROP
#Autoriza pacotes provenientes da interface de loopback lo
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i eth0 -j ACCEPT
#Impedindo ataque Ping of Death na rede
iptables -A FORWARD -p icmp –icmp-type echo-request -m limit –limit 1/s -j ACCEPT
#Impedindo ataque de Denial Of Service Dos na rede e servidor
iptables -I FORWARD -p tcp -m limit –limit 1/s -j ACCEPT
iptables -A INPUT -p tcp -m limit –limit 1/s -j ACCEPT
#Protecao contra synflood
echo “1” > /proc/sys/net/ipv4/tcp_syncookies
#Protecao contra worms
iptables -I FORWARD -p tcp –dport 135 -j LOG –log-level info –log-prefix ‘WORMS REDE>’
iptables -A FORWARD -p tcp –dport 135 -j DROP
iptables -I INPUT -p tcp –dport 135 -j LOG –log-level info –log-prefix ‘WORMS >’
iptables -A INPUT -p tcp –dport 135 -j DROP
#bloqueador de tentativas de conexão da internet
iptables -A INPUT -p tcp –syn -j DROP
echo Seguranca Carregada ….. [ok]
#CONECTIVIDADE SOCIAL
iptables -t nat -A PREROUTING -p tcp -d 200.201.0.0/16 -j ACCEPT
iptables -A FORWARD -p tcp -d 200.201.0.0/16 -j ACCEPT
echo Conectividade Social Carregada ….. [ok]
#PROXY TRANSPARENTE
iptables -t nat -A PREROUTING -i eth0 -p tcp –dport 80 -j REDIRECT –to-port 3128
echo Proxy Transparente Carregado ….. [ok]
#BLOQUEAR MSN
iptables -I FORWARD -p tcp -s 10.0.0.0/8 –dport 1863 -j DROP
echo Bloqueio de Msn Carregado ….. [ok]
#Redirecionamentos
#EXEMPLO DE REDIRECIONAMENTO
iptables -t nat -A PREROUTING -p tcp -s 0/0 –dport 3389 -i eth1 -j DNAT –to 10.1.1.10
iptables -t nat -A PREROUTING -p udp -s 0/0 –dport 3389 -i eth1 -j DNAT –to 10.1.1.10

Dando permissão de execução ao arquivo:
# chmod +x /etc/init.d/firewall
Incluindo o Firewall na inicialização, para que o processo fique automático:
# rcconf
Vai abrir uma lista de arquivos que são executados na inicialização do sistema, ache o Firewall e marque-o para que ele seja iniciado durante o processo de inicialização.
Marque-a teclando a barra de espaços e em seguida tecle ENTER para confirmar as alterações.
Agora execute o script:
# /etc/init.d/firewall

Instalando e configurando Sarg

“Gerador de Relatórios da Internet”.
Instalando Sarg:
# apt-get install sarg
Instalando apache2:
# apt-get install apache2
Configuração do SARG no Ubuntu.
Acesse a pasta de configuração do SARG:
# cd /etc/sarg
Abra as configurações do sarg:
# mcedit sarg.conf
Alterar o idioma do SARG, altere a linha:
language English
Para:

language Portuguese

Para que as páginas dos relatórios gerados pelo SARG sejam visualizadas no navegador, é necessário “linkar” a pasta de saída dos relatórios do SARG para a pasta do servidor web.
$ sudo ln -s /var/lib/sarg /var/www/
Retirando mensagem de erro aparece na saída da linha de comando:
SARG: Unknown option site_user_time_date_type table
Comente a seguinte linha do arquivo sarg.conf, editando o arquivo:
# mcedit /etc/sarg/sarg.conf
Para comentar basta você colocar antes da comando um “#” como abaixo:

#site_user_time_date_type table

Para gerar os relatórios do SARG:
# sarg
Para acessar as páginas de relatório geradas pelo SARG acesser:
http:/ip-do-servidor/sarg
Colocando SARG no cron:
Para que o SARG seja executado automaticamente todos os dias, gerando os relatórios de acesso do SQUID automaticamente por dia:
# mcedit /etc/cron.daily/sarg
O script de execução do SARG deve ficar conforme abaixo:

#!/bin/sh
if [ -x /usr/bin/sarg ]; then
/usr/bin/sarg
fi

Para que o SARG execute antes do logrotate do SQUID é necessário alterar o nome do arquivo:
# mv /etc/cron.daily/sarg /etc/cron.daily/ksarg
Assim o script do SARG irá executar logo antes do script do logrotate, gerando os relatórios corretamente.
Remover os scripts de executação semanal e mensal do SARG:
# rm /etc/cron.weekly/sarg
# rm /etc/cron.monthly/sarg
Caso haja necessidade de colocar pra gerar relatórios minutos em minutos basta editar o contrab e acrescentar as seguintes linhas.
Abra o crontab:
# crontab -e
Adicione a Seguinte linha no final:

*/30 * * * * root sh sarg > /dev/null 2>&1

Fim.

Referências

Links dos artigos da qual eu usei de fonte, conhecimento e aperfeiçoamento do tutorial:

Anúncios

Publicado em 5 de setembro de 2011, em Vivaolinux e marcado como . Adicione o link aos favoritos. Deixe um comentário.

Um comentário começa grandes debates!

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: