Procurar
Últimos assuntos
Quem está conectado?
Há 1 usuário online :: 0 registrados, 0 invisíveis e 1 visitante Nenhum
[ Ver toda a lista ]
O recorde de usuários online foi de 192 em Ter Out 26, 2021 6:07 am
Servidor Debian 6 DHCP + Squid + IPtables
TADS IFGoiano-Urutaí :: OS :: Linux
Página 1 de 1
Servidor Debian 6 DHCP + Squid + IPtables
- Código:
Instalando o serviço DHCP
Bom, neste artigo vamos configurar três serviços:
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.
Vamos para o Squid.
Instalando o serviço Squid
Agora vamos configurar o Squid.
Vamos baixar o pacote do mesmo:
# apt-get install squid3
Vamos para o diretório:
# cd /etc/squid3
Mover o arquivo original para que possamos criar um próprio:
# mv squid.conf squid.conf.bkp
Criar nosso arquivo:
# vim squid.conf
Vamos adicionar as seguintes configurações:
http_port 3128 transparent #proxy transparente é super interessante e viável para uma grande ou pequena rede local
cache_dir ufs /var/spool/squid3 100 16 256 #o primeiro numero o "100" é o tamanho do arquivo em KB, aqui podemos escolher quando KB nosso arquivo vai ter
cache_mem 50 MB #nessa parte vamos disponibilizar 50MB de memoria RAM para o Squid, podem mudar conforme a necessidade disponibilidade de cada um
visible_hostname NOME #aqui vai o nome do nosso servidor no rodapé da pagina
#regras;
acl REDE01 src 192.168.100.0/24 #regra para rede local
acl LIBERAR url_regex "/etc/squid3/LIBERAR.txt" #regra para o arquivos de sites e palavras liberados
acl NEGAR url_regex "/etc/squid3/NEGAR.txt" #regra para o arquivo de sites e palavras proibidas
#acl diretor src 192.168.100.7 #essa regra é para liberar um determinado IP para navegação sem restrições
#http_access allow all diretor
http_access allow all REDE01 LIBERAR #vamos liberar o acesso aos sites e palavras que estão no arquivo LIBERAR.txt
http_access deny all REDE01 NEGAR #vamos negar o acesso para rede local dos sites e palavras que estão dentro do arquivo NEGAR.txt
acl REDELOCAL src 192.168.100.0/24
http_access allow REDELOCAL #vamos liberar o restante da navegação
Criado o arquivo do Squid, agora vamos criar o arquivo:
# vim NEGAR.txt
Dentro desse arquivo, vamos colocar os sites e palavras que vamos proibir o acesso.
Depois, vamos criar o arquivo: LIBERAR.txt
# vim LIBERAR.txt
Dentro deste arquivo, vamos colocar os sites e palavras permitidos em nossa rede local.
Em seguida, vamos reiniciar o serviço do Squid:
# /etc/init.d/squid3 restart
Se tudo tiver OK, o Squid vai subir sem problemas. Caso o serviço não suba, temos que verificar os arquivos e procurar o possível erro.
Vamos para o IPtables.
Instalando o serviço IPtables
Bom, vamos configurar o firewall e compartilhamento de Internet do nosso servidor.
Agora vamos no diretório:
# cd /home
Vamos criar o arquivo:
# vim firewall.sh
Dentro do arquivo, vamos colocar as seguintes configurações:
#! /bin/bash
#rezando as regras;
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
iptables -t nat -F
iptables -t mangle -F
#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
iptables -t nat -A PREROUTING -s 192.168.100.0/24 -p udp --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -s 192.168.100.0/24 -p tcp --dport 443 -j REDIRECT --to-port 3128
iptables -t nat -A PREROUTING -s 192.168.100.0/24 -p udp --dport 443 -j REDIRECT --to-port 3128
Vamos dar permissão de execução para o arquivo:
# chmod +x firewall.sh
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.
ifdown eth0
ifdown eth1
ifup eth0
ifup eth1
./home/firewall.sh
exit 0
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.
Bônus: Monitorando determinado IP de determinado usuário
Bem amigos, quem chegou até aqui, é porque conseguiu fazer o nosso servidor DHCP + Squid + IPtables funcionar.
Vou mostrar que é possível gerar um simples relatório do arquivo "access.log" do Squid.
Vamos ao diretório:
# cd /home
Criar o seguinte arquivo:
# vim monitoramento.sh
Dentro do arquivo, vamos adicionar os seguintes comandos:
#!/bin/bash
echo "Digite o nome do usuário que deseja ser monitorado..."
read usuario
sleep 02
echo "Digite o IP do usuário..."
read ip
sleep 02
echo "Criando o arquivo do monitoramento..."
touch /home/$usuario.log
sleep 02
echo "Colocando a data de hoje no documento..."
date >> /home/$usuario.log
sleep 02
echo "Monitorando a navegação..."
sleep 02
cat /var/log/squid3/access.log | awk '{print$3 " " $8 " " $7}' | grep $ip >> /home/$usuario.log
sleep 02
echo "Usuário monitorado!... Tudo OK..."
sleep 02
Agora vamos dar permissão de execução ao arquivo que criamos:
# chmod +x monitoramento.sh
Feito isso, é só rodar o script:
# ./monitoramento
Responder às perguntas e pronto! Vai gerar um relatório da navegação do usuário no diretório /home com a data, nome do usuário e até mesmo o que ele acessou!
É simples, porém ajuda muito.
Enfim, é isso aí pessoal. Espero que gostem do meu artigo, é o primeiro. ^^
Qualquer dúvida, estou à disposição.
Comentem o que acharam, por favor, pois críticas construtivas são sempre bem-vindas!
Até a próxima.
juk- Mensagens : 262
Data de inscrição : 02/04/2012
Tópicos semelhantes
» squid 3 transparent
» instalando squid + dan guardian + Proxy Transparente
» Instalar OpenSSH no Debian Squeeze
» Source List Debian wheezy
» Desativando a Interface Gráfica – Debian Squeeze
» instalando squid + dan guardian + Proxy Transparente
» Instalar OpenSSH no Debian Squeeze
» Source List Debian wheezy
» Desativando a Interface Gráfica – Debian Squeeze
TADS IFGoiano-Urutaí :: OS :: Linux
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
Seg Jan 02, 2023 2:13 pm por juk
» Cypecad 2019
Seg Jan 02, 2023 1:41 pm por juk
» Atualizando é instalando o IExplorer 11 no windows 7
Ter Ago 30, 2022 10:54 pm por juk
» COMO HABILITAR INTERNET EXPLORER NO WINDOWS 10
Sex Abr 29, 2022 6:43 pm por juk
» Usando o Monitor de Recursos do sistema para identificar processos Associados.
Qua Abr 06, 2022 10:19 am por juk
» Fazendo backup do anydesk
Ter Abr 05, 2022 7:30 pm por juk
» Recuperando Favoritos, senhas apos formatar o navegador (Mozilla Firefox ou Chrome)
Ter Abr 05, 2022 7:28 pm por juk
» Comando para tentar recuperar o windows
Qua Out 27, 2021 5:52 pm por juk
» NGROK para divulgação de site remoto
Ter Set 29, 2020 9:40 am por juk