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.
DHCP → Atribui IPs para os computadores clientes da rede local,
Squid → Responsável por bloquear e liberar palavras e sites,
IPtables → É o firewall do GNU/Linux, vamos configurar algumas regras básicas.
Obs.: Vou usar meu editor preferido, o Vim, quando eu pedir para editar um arquivo, usem o editor de arquivo de sua escolha.
Começando com as atualizações dos pacotes e também, atualizar o sistema com os seguintes comandos:
# apt-get update
# apt-get upgrade
Vamos começar configurando nossas interfaces de rede.
Nosso servidor precisa de duas placas de rede, uma para Internet e outra para rede local. Supondo que temos estas duas placas de rede, vamos determinar que:
eth0 → Placa conectada com a Internet.
eth1 → Placa com endereço fixo compatível com a rede local.
Vamos editar o arquivo responsável pelas placas de rede:
# vim /etc/network/interfaces
O arquivo "interfaces" deverá ficar assim:
The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug eth0
#NetworkManager
#iface eth0 inet dhcp #a placa eth0 tem que ta conectada com a internet
#Lan eth1
allow-hotplug eth1 #quando subi o sistema ele já carrega com essas configurações como padrão
iface eth1 inet static #setando IP na mão
address 192.168.100.1 #IP da placa de rede
netmask 255.255.255.0 #mascara da sub rede
network 192.168.100.0 #endereço da rede
broadcast 192.168.100.255 #broadcast da rede
Agora vamos reiniciar o serviço das placas de rede:
# /etc/init.d/networking restart
Verificar se as placas de rede estão com os IPs corretos, com o comando:
# ifconfig
Na placa eth0 → Tem que estar o IP do seu modem ou roteador.
Na placa eth1 → Tem que estar o IP que atribuímos no arquivo interfaces, o IP da nossa rede local.
Agora vamos instalar o serviço DHCP com o comando:
# apt-get install dhcp3-server
Acessar o diretório:
# cd /etc/dhcp/
Mover o arquivo para que possamos criar um próprio nosso:
# mv dhcpd.conf dhcpd.conf.bkp
Agora vamos criar um arquivo novo:
# vim dhcpd.conf
No arquivo novo, vamos adicionar estas configurações:
ddns-update-style none;
default-lease-time 86400; #com esses valores, os IPs ficaram emprestados durante 8 horas e após 8 horas vai ter uma nova
requisição de IP
max-lease-time 604800;
authoritative; #nosso servidor vai ser o principal na rede, ele vai atender todas requisições de IPs
subnet 192.168.100.0 netmask 255.255.255.0 { #aqui vamos colocar o IP da nossa rede local, e a mascara de sub
rede
range 192.168.100.5 192.168.100.10; #aqui vamos colocar o range de IPs do nosso servidor, vamos entregar 5 IPs para
testes
option domain-name-servers 8.8.4.4, 8.8.8.8; #aqui vamos colocar o nosso servidor DNS, tem que ser o mesmo que esta
configurado em nosso modem ou roteador, ou pode ser o do Google mesmo
option domain-name "dominio.local"; #aqui vamos colocar um domínio de DNS, se você tiver um AD ou servidor BIND 9
rorando na empresa, podemos usar o dominio local da empresa
option routers 192.168.100.1; #esse IP é o que vai fazer o roteamento dos pacotes, é o IP do nosso servidor DHCP
option broadcast-address 192.168.100.255; #broadcast da rede
}
#nessa parte podemos configurar o servidor para entrega o mesmo IP para um determinado cliente da rede local:
#host TESTE { #nome do host
#hardware ethernet 1c:4b:d6:f9:09:42; #adiciona o MAC do computador da rede
#fixed-address 192.168.100.2; #escolha um IP valido para o host
#}
Editar o arquivo:
# vim /etc/default/dhcp3-server
Vamos adicionar nossa placa de rede local:
INTERFACES="eth1"
Feito estas configurações, podemos salvar o arquivo e reiniciar o serviço:
# /etc/init.d/isc-dhcp-server restart
Se tudo tiver correto, o serviço vai subir. Se apresentar alguma falha, temos que ver os arquivos de configuração novamente para procurar o problema.
[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?