Nesse artigo vamos configurar um servidor com os seguintes serviços: DHCP - atribuição de IP para os hosts da rede local. Squid - liberações e restrições de sites e palavras. IPtables - firewall do GNU/Linux, vamos criar algumas regras básicas e necessárias para o nosso servidor navegar na Internet e trabalhar junto ao Squid.
#adicionando modulos no kernel;
modprobe ip_tables
modprobe iptable_nat
#liberando encaminhamento de pacotes;
echo "1" > /proc/sys/net/ipv4/ip_forward
#compartilhando a internet;
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
#Proxy transparente, tratando dos protocolos UDP e TCP, e movendo o trafego das portas 80,443 para porta 3128;
iptables -t nat -A PREROUTING -s 192.168.100.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128
Toda as vezes que precisarmos compartilhar a Internet com os computadores da rede local e ativar o Squid Transparente, vamos ter que executar o script:
# ./firewall.sh
- Não seria interessante colocar o script de firewall para ativar o script de forma automática, e na inicialização do sistema?
É vantajoso, pois se o nosso servidor desligar, quando subir, não vai precisar dar start no script de firewall.
Vamos às seguintes configurações, edite o arquivo:
# vim /etc/rc.local
Ele deve ficar assim:
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
Adicionamos em nosso script, o comando ifdown e ifup para subir nossas interfaces de rede, só para garantir. E também, colocamos para subir o nosso script de firewall.
Agora vamos ao bônus. ^^
Vou ensinar a monitorar um determinado IP de um determinado usuário sem precisar instalar e configurar o famoso SARG.
[2] Comentário enviado por guilhermeTI em 12/11/2012 - 14:36h
Salve!
Amigo, essas configurações são para o Debian, mais claro que podes usar os scripts no Centos ^^
Só que vai mudar algumas coisas;
em primeiro lugar tens que instalar o serviço: yum install dhcp
o diretório e arquivos da configuração das placas de rede: /etc/sysconfig/network-scripts/ifcfg-eth"X"
o diretório e arquivos da configuração do DHCP: /etc/dhcpd.conf
o diretório e arquivo responsável pelo roteamento a placa de rede "LOCAL": /etc/sysctl.conf
o restante pode usar as mesas configurações do Debian, acredito que funcione ^^
[3] Comentário enviado por mateusfreak em 12/11/2012 - 15:26h
[2] Comentário enviado por guilhermeTI em 12/11/2012 - 14:36h:
Salve!
Amigo, essas configurações são para o Debian, mais claro que podes usar os scripts no Centos ^^
Só que vai mudar algumas coisas;
em primeiro lugar tens que instalar o serviço: yum install dhcp
o diretório e arquivos da configuração das placas de rede: /etc/sysconfig/network-scripts/ifcfg-eth"X"
o diretório e arquivos da configuração do DHCP: /etc/dhcpd.conf
o diretório e arquivo responsável pelo roteamento a placa de rede "LOCAL": /etc/sysctl.conf
o restante pode usar as mesas configurações do Debian, acredito que funcione ^^
Att,
Obrigado Guilherme, estarei utilizando suas instruções.
Parabéns pelo artigo, poste mais assim que puderes :D
[6] Comentário enviado por dalveson em 12/11/2012 - 18:05h
muito legal o artigo, principalmente o bonus achei muito interessante.
ps:
uma dica, na minha opniao quando voce cria um arquivo NEGAR.txt e dentro desse arquivo, vamos colocar os sites e palavras que vamos proibir o acesso, e depois, cria o arquivo LIBERAR.txt e dentro deste arquivo, vamos colocar os sites e palavras permitidos em nossa rede local.
Na minha opnião seria mais logico vc criar uma regra bloqueando tudo e liberando so o que ta em LIBERAR.txt sem a regra de NEGAR.txt
http_access deny all REDE01 !LIBERAR #vamos negar tudo exceto o que esta dentro da acl liberar
ou entrao fazer o inverso, liberando tudo e bloqueando so o NEGAR.txt sem a regra de LIBERAR.txt
http_access allow all REDE01 !NEGAR #vamos liberar tudo exceto o que esta dentro da acl negar
assim vc suprimi uma regra a menos no seu squid e consequentemente ele ira consumir menos recurso da maquina e ira ler o arquivo de configuração mais rapido.
abraços
[7] Comentário enviado por guilhermeTI em 12/11/2012 - 19:13h
Salve!
danniel-lara, obrigado pelo comentario!
dalveson, fique a vontade para editar os arquivos ^^
eu entendi a sua logica, sim da para apenas DROP tudo, e usar apenas um arquivo uma ACL para acessar os sites liberados...
obrigado pela sua opnião!
[10] Comentário enviado por jsdan em 13/11/2012 - 17:06h
Boa tarde! amigo
No comentário MAC computadores da rede eu teria que colocar os três.
O Servidor um desktop e um notebook.
Só que minha rede está com fio e é residencial.
Estou usando o Server Ubuntu 12.04 Lts paradaise.
E o nome só estou com o nome do computador.
[12] Comentário enviado por mateusfreak em 13/11/2012 - 22:30h
[2] Comentário enviado por guilhermeTI em 12/11/2012 - 14:36h:
Salve!
Amigo, essas configurações são para o Debian, mais claro que podes usar os scripts no Centos ^^
Só que vai mudar algumas coisas;
em primeiro lugar tens que instalar o serviço: yum install dhcp
o diretório e arquivos da configuração das placas de rede: /etc/sysconfig/network-scripts/ifcfg-eth"X"
o diretório e arquivos da configuração do DHCP: /etc/dhcpd.conf
o diretório e arquivo responsável pelo roteamento a placa de rede "LOCAL": /etc/sysctl.conf
o restante pode usar as mesas configurações do Debian, acredito que funcione ^^
Att,
placas de rede: ifcfg-eth* nao existe, somente ifcfg-lo
pasta do DHCP é /etc/dhcp/dhcpd.conf :D
como configuro as eth´s? dando ifconfig no bash tenho eth0, eth1 e lo
[13] Comentário enviado por guilhermeTI em 14/11/2012 - 16:08h
mateusfreak,
Tais usando qual sistema de virtualização? vmware, virtualbox, phpvirtualbox, xen server...
ifcfg-lo, é seu endereço de loopback 127.0.0.1
tens que verificar se tens duas placas de rede em seu servidor, e se elas estão ligadas.
faça o comando:
ifconfig
se fizer esse comando e só aparecer o endereço 127.0.0.1, faça esse comando:
/etc/init.d/networking restart
ifconfig
se mesmo assim não aparece nenhum endereço de rede, tens que verificar as placas de rede do seu servidor.
[14] Comentário enviado por mateusfreak em 14/11/2012 - 17:30h
[13] Comentário enviado por guilhermeTI em 14/11/2012 - 16:08h:
mateusfreak,
Tais usando qual sistema de virtualização? vmware, virtualbox, phpvirtualbox, xen server...
ifcfg-lo, é seu endereço de loopback 127.0.0.1
tens que verificar se tens duas placas de rede em seu servidor, e se elas estão ligadas.
faça o comando:
ifconfig
se fizer esse comando e só aparecer o endereço 127.0.0.1, faça esse comando:
/etc/init.d/networking restart
ifconfig
se mesmo assim não aparece nenhum endereço de rede, tens que verificar as placas de rede do seu servidor.
att,
Conforme eu disse, dei ifconfig e aparece eth0, eth1 e lo no terminal.
Uso o VBox 4.2 no Ubuntu, 2 placas em NAT no CentOS 6.
Dei um stop, start e tambem restart e o arquivo ifcfg-eth* nao aparece na pasta etc/sysconfig/network-script, somente ifcfg-lo.
[15] Comentário enviado por jsdan em 15/11/2012 - 10:52h
Bom dia! Guilherme, eu tenho três computadores: 1 com servidor Ubuntu 12.04 LTS
1 Desktop com windows 7 cliente
1 notebook com windows 7 cliente
roteador configurado nat 192.168.1.1, switch 5 portas rede com fio, 2 placas de rede.
No #vim dhcpd.conf
Não tenho um dominio deixo em branco, esta configuração
# host teste{# nome do host
#hardware ethernet adicionar o MAC do servidor ou clientes
#fixed-address 192.168.100.2 escolher IP valido para o host
Nos computadores clientes preciso fazer configuração do windows 7 Regedit para ser reconhecido.
preciso fazer configuração propriedades computadores rede local dominio ou workgroup
Vou configurar o samba
[16] Comentário enviado por flavac em 15/11/2012 - 13:05h
Boa tarde
Ótimo artigo, simples, direto e muito útil para quem está começando no linux, agora uma pergunta, serviria somente para o debian puro? pois eu tenho a versão mint maya 13 e fiz conforme explicado e não foi, no momento de carregamento do linux já aparece uma msg de erro grifada em vermelho, eu editei o arquivo interfaces dentro de network e isto que estou no primeiro passo , configurando somente o compartilhamento da internet.
[17] Comentário enviado por jsdan em 15/11/2012 - 16:26h
Boa tarde! como gerar nome de usuario e ip, e se tiver vários usuarios.
É preciso fazer a configuração do squid
no # vim /etc/squid.conf e cadastrar e os autenticar os usuarios
#Autenticaçao
auth_param basic realm Servidor_Proxy ( Digite Usuario|Senha )
auth_param basic program /usr/lib/squid3
/ncsa_auth /etc/squid3/squid_passwd
acl autenticados proxy_auth REQUIRED
http_acess allow autenticados
[19] Comentário enviado por guilhermeTI em 16/11/2012 - 10:31h
[15] Comentário enviado por corinthiano em 15/11/2012 - 10:52h:
Bom dia! Guilherme, eu tenho três computadores: 1 com servidor Ubuntu 12.04 LTS
1 Desktop com windows 7 cliente
1 notebook com windows 7 cliente
roteador configurado nat 192.168.1.1, switch 5 portas rede com fio, 2 placas de rede.
No #vim dhcpd.conf
Não tenho um dominio deixo em branco, esta configuração
# host teste{# nome do host
#hardware ethernet adicionar o MAC do servidor ou clientes
#fixed-address 192.168.100.2 escolher IP valido para o host
Nos computadores clientes preciso fazer configuração do windows 7 Regedit para ser reconhecido.
preciso fazer configuração propriedades computadores rede local dominio ou workgroup
Vou configurar o samba
opa,
queres fazer um servidor com firewall dhcp, squid, e samba PDC? é isso?
[20] Comentário enviado por jsdan em 16/11/2012 - 15:52h
sim, mas não tenho um dominio.
Você viu o cometário do dia 15/11/12
às 10:52 hs.
Dê uma olhada.
Onde e como vou criar estes usuarios para ser monitorado.
[21] Comentário enviado por guilhermeTI em 16/11/2012 - 16:49h
[20] Comentário enviado por corinthiano em 16/11/2012 - 15:52h:
sim, mas não tenho um dominio.
Você viu o cometário do dia 15/11/12
às 10:52 hs.
Dê uma olhada.
Onde e como vou criar estes usuarios para ser monitorado.
Fico no aguardo
Deus abençõe
Opa,
manda um email com todas suas duvidas para:
guilherme_auras@hotmail.com
[22] Comentário enviado por emersonking em 19/11/2012 - 23:54h
Olá, estou tendo problema para poder reiniciar as interfaces quando dou restart na interface apresenta a seguinte mensagem:
Running /etc/init.d/networking restart is deprecated because it may not enable again some interfaces ... (warning).
Reconfiguring network interfaces.../etc/network/interfaces:17: too many parameters for iface line
ifdown: couldn't read interfaces file "/etc/network/interfaces"
/etc/network/interfaces:17: too many parameters for iface line
ifup: couldn't read interfaces file "/etc/network/interfaces"
failed.
o meu arquivo interfaces é o Crtl+c Crtl+v do seu.
[24] Comentário enviado por emersonking em 20/11/2012 - 12:21h
GuilhermeTI, primeiramente parabéns pelo artigo, então estou com uma maquina física mesmo não é virtualização tenho duas placas de rede instaladas a eth0 é a onboard que esta com internet e a eth1 é a outra pela qual quero q saia o servidor.
[25] Comentário enviado por guilhermeTI em 21/11/2012 - 15:49h
emersonking,
pelo que eu entendi:
suas placas de redes, eth0 e eth1
eth0 = ligada na internet
eth1 = ligada no switch
verifique suas placas de rede se as mesmas pegaram ip, faça o comando:
ifconfig
se não apareceu nada, tente volta ao arquivo original o arquivo interfaces, e tente mudar aos poucos e não use CTRL+C + CTRL+V, tente muda aos poucos e vá testando.
outro caso para verificar os drivers do seu servidor:
lspci
e verifique se os drivers estão instalados, os drivers da suas placas de rede.
#adicionando modulos no kernel;
modprobe ip_tables
modprobe iptable_nat
#liberando encaminhamento de pacotes;
echo "1" > /proc/sys/net/ipv4/ip_forward
#compartilhando a internet;
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
nos computadores clientes da rede tens que entrar nos navegadores dos mesmos e adicionar nas configurações a porta do seu proxy 3128
dai toda navegação vai passa por essa porta, mais acho mais viável e seguro colocar em modo transparent, pois assim nao precisa adicionar todas maquinas da rede no seu proxy nao precisa fazer isso na mao.
se quiseres add um ip para navegaçao completa sem restrições é facil, so criar uma acl para liberar toda navegaçao daquele determinado IP.
[31] Comentário enviado por turboforce em 26/11/2012 - 12:40h
Prezado Guilherme.
Entendi perfeitamente e já efetuei as alterações no arquivo squid.conf e no firewall.sh.
Os computadores navegam na internet com o proxy ativado sem problemas.
O que está acontecendo é que maquinas sem as configurações de proxy também navegam.
E por navegarem sem passar pelo proxy, não são bloqueadas pelas regras criadas no squid.
Quero permitir apenas navegação via proxy.
Posso bloquear a porta 80 para forçar a navegação via proxy?
iptables -A FORWARD -p tcp --dport 80 -j REJECT
[34] Comentário enviado por carlosmusic2006 em 17/08/2013 - 01:21h
Boa noite galera, td bem?
Estou tendo um problema aqui.
Eu fiz toda a instalação, DHCP e FIREWALL direto na maquina, porem nao achei interessante fazer a SQUID agora, quero testar o firewall pra depois testar o SQUID e ver a diferença dos 2. Configurei tudo certinho como consta no site, reiniciei a maquina e ela ativou tudo sem erros. Peguei o cabo da eth1 e coloquei diretamente no notebook win7, desabilitei o Wireless do note e logo em seguida apareceu como conectado a internet (vindo da eth1). Porem quando entro no site para fazer o teste do firewall no site:https://www.grc.com/intro.htm para saber se o mesmo esta configurado certinho, simplesmente NÃO entra, dá erro, tipo nao entra nada porem a informação de conectado a internet aparece normal.
Me ajudem por favor! O que voces acham que pode ser? Eu gostaria de arrumar tudo antes de colocar no Switch e compartilhar outras maquinas, lembrando que sou iniciante porem tenho estudado bastante tudo do site VOL.
[35] Comentário enviado por delphy em 26/08/2013 - 16:08h
ola boa tarde
gostaria de uma dica
presiso montar um servidor para uma sala de informatica para fazer dhcp e fireway da rede, na sala tem aproximadamente 15 computadores to pensando em montar com o debian e usar essas configuraçoes deste arquivo, estaria dentro do necessario ou presisaria de mais alguma configuraçao e a maquina pro servidor quais configuraçoes minimas?
fico no aguardo obrigado desde ja
muito bom artigo
[36] Comentário enviado por biascherer em 23/11/2013 - 20:03h
Olá Guilherme,
O artigo que vc postou ficou muito bom e me ajudou muito! mas fiquei só com uma dúvida..
Eu não estou conseguindo fazer bloqueio do facebook por HTTPS.
será que vc poderia me ajudar a criar um comando? nem que seja bloqueio por IP, já me ajudaria bastante.
[37] Comentário enviado por italobelao em 27/02/2014 - 17:32h
Adorei o artigo, me ajudou muito, só estou com um problema no restart do
dhcp
aparece essa msg:
root@servalp:~# /etc/init.d/isc-dhcp-server restart
dhcpd self-test failed. Please fix /etc/dhcp/dhcpd.conf.
The error was:
Internet Systems Consortium DHCP Server 4.2.2
Copyright 2004-2011 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
/etc/dhcp/dhcpd.conf line 7: expecting left brace.
range
^
Configuration file errors encountered -- exiting
não consigo encontrar o problema, esta do jeito que você colocou no artigo
[38] Comentário enviado por thezzari em 03/06/2014 - 22:36h
Fiz tudo certinho não apresentou nenhum erro mas no terminal não funcionou não acesso nada nem os sites que eu coloquei no LIBERAR.txt "No terminal deixei 192.168.100.7 - 255.255.255.0 - 192.168.100.1" sera que o problema é a versão 7.5 em vez da 6.0 ?
[39] Comentário enviado por Yakuake em 17/07/2014 - 17:11h
Uma duvida que preciso resolver, nesse script, como faz para liberar potas especificas para um IP, pois estou precisando liberar 6 portas para 2 IP, sendo que são 3 portas para cada IP...alguma dica e como fazer?