DHCPD + IPTABLES =gerenciamento de ips, bloqueio por mac addres
Estou montando uma rede domestica mesmo porém pouco robusta, tenho um link de 1mb, um pouco rasuável porém eu divido a internet com 14 pessoas no meu condominio. A minha intenção é Controlar a rede e também restringir o acesso por MAC ADRESS ou seja a máquina de FULANO vai ter ip X que é liberado para o MAC X ou seja o IP X está ligado ao MAC da máquina do fulano então sempre que ele entrar na rede ele vai receber o ip X e caso ele mude então vai fikr sem net pois o iptables vai bloqueiar ao perceber que o ip que ele colocou não está ligado ao mac que está cadastrado.
Pacotes necessários e sua devida função.
DHCPD
para distribuir os ips automáticament, nem vou detalhar creio que quem vai seguir esse tutorial ja deve saber o que é um dhcp.IPTABLES – (Firewall)
para conferir se o ip ta ligado diretamente ao MAC no dhcpd pois se não tiver o firewall não deixa passar.
configuração do dhcpd é siples abaixo segue o meu dhcpd.conf todo comentado
#CONFIGURAÇÕES PADRÃO
ddns-update-style none;
default-lease-time 600;
max-lease-time 7200;
authoritative;
#DEFININDO A CLASSE E MASCARA DA REDE
subnet 192.168.2.0 netmask 255.255.255.0
{
#DEFININDO PARA ROTEAR ENTRE 0.50 A 0.100
range 192.168.2.50 192.168.2.100;
#DEFININDO O GATWAY
option routers 192.168.2.1;
#DEFININDO OS DNS SEPARANDO POR VIRGULA SE HOUVER MAIS
option domain-name-servers 200.149.55.140,200.202.193.171;
#DEFININDO O BROADCAST
option broadcast-address 192.168.2.255;
#DEFININDO O IP CERTO PARA CADA MAC CADASTRADO ABAIXO
host 01
{
hardware ethernet 00:11:11:67:B3:D3;
fixed-address 192.168.2.51;
}
host 02
{
hardware ethernet 00:40:F4:C8:D0:09;
fixed-address 192.168.2.52;
}
host 03
{
hardware ethernet 00:06:25:07:61:39;
fixed-address 192.168.2.53;
}
}
Agora a regra no firewall para liberar a conexão para aquele ip que está amarrado aquele mesmo mac que existe no dhcpd.conf, eu criei um arquivo chamado clientes.txt e em cada linha eu coloquei o seguinte:
-> nome|ip|mac – ex: cliente|192.168.2.10|00:00:00:00:00:00
depois fiz um arquivo em shell script e dentro criei um laço para ler o arquivo clientes.txt e sair dando as regras então sendo assim no meu arquivo shell ficam as linhas do firewall abaixo, sendo que são rodadas de acordo com a quantidade de clientes que tem no clientes.txt
for reg in `cat $CLIENTES` ; do
echo -n "Liberando o cliente "
cliente=`echo $reg | cut -d"|" -f1`
ip=`echo $reg | cut -d"|" -f2`
mac=`echo $reg | cut -d"|" -f3`
iptables -t filter -A FORWARD -d 0/0 -s $ip -m mac --mac-source $mac -j ACCEPT
iptables -t filter -A FORWARD -d $ip -s 0/0 -j ACCEPT
iptables -t filter -A INPUT -s $ip -d 0/0 -m mac --mac-source $mac -j ACCEPT
iptables -t nat -A POSTROUTING -s $ip -o $IF_EXTERNA -j MASQUERADE
echo $cliente
done
Ou seja se alguem ta na rede e não existe no clientes.txt então esse alguem não vai receber ip do dhcpd, mas caso ele seja insistente e coloque um IP fixo então o firewall não vai deixar ele passar.
A mensagem quer dizer que você não tem permissão de escrita sob o arquivo /etc/squid/logs/cache.log
basta que vc crie o arquivo e de permissão
touch /etc/squid/logs/cache.log
chown -fR /etc/squid/logs/cache.log
chmod -fR 777 /etc/squid/logs/cache.log