Amarra MAC X IP

Iniciado por vermei, 08 de Novembro de 2011, 18:16

tópico anterior - próximo tópico

vermei

Tenho uma rede com 60 micros, com uma ajudinha  "google" to usando o squid para fazer chace , gostaria de amarra mac x ip de uma maneira simples e funcional, pois testei algumas configurações no iptables funcionou só q a rede ficou lenta......





Grato !!!!!!

zekkerj

Mostre o que fez, de repente com alguns toques dá pra corrigir a lentidão.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

vermei

Estou testando, essa cofiguração está rodando bem com 4 micros..


Citar#!/bin/bash


#interface internet:
ifinternet="eth0"

# Interface da rede local
iflocal="eth1"

iniciar(){
echo 1 > /proc/sys/net/ipv4/ip_forward
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe iptable_nat
modprobe ip_nat_ftp
modprobe ip_tables
modprobe ipt_MASQUERADE
modprobe ipt_LOG
modprobe ip_nat_snmp_basic
modprobe iptable_filter
iptables -t nat -A POSTROUTING -o $ifinternet -j MASQUERADE
}

# Determina a políca padrãiptables -P INPUT DROP
iptables -P FORWARD DROP

# Aceita os pacotes que realmente devem entrar
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Controle de acesso IP X MAC

# MICRO1
iptables -t filter -A FORWARD -d 0/0 -s 10.1.1.186 -m mac --mac-source 00:02:6F:60:B3:DC -j ACCEPT
iptables -t filter -A FORWARD -d 10.1.1.186 -s 0/0 -j ACCEPT
iptables -t filter -A INPUT -s 10.1.1.186 -d 0/0 -m mac --mac-source 00:02:6F:60:B3:DC -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.1.1.186 -o eth1 -j MASQUERADE


# MICRO2
iptables -t filter -A FORWARD -d 0/0 -s 10.1.1.192 -m mac --mac-source 00:02:6F:6F:F9:36 -j ACCEPT
iptables -t filter -A FORWARD -d 10.1.1.192 -s 0/0 -j ACCEPT
iptables -t filter -A INPUT -s 10.1.1.192 -d 0/0 -m mac --mac-source 00:02:6F:6F:F9:36 -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.1.1.192 -o eth1 -j MASQUERADE

# MICRO3
iptables -t filter -A FORWARD -d 0/0 -s 10.1.1.14 -m mac --mac-source 00:1D:1A:01:E0:1E -j ACCEPT
iptables -t filter -A FORWARD -d 10.1.1.14 -s 0/0 -j ACCEPT
iptables -t filter -A INPUT -s 10.1.1.14 -d 0/0 -m mac --mac-source 00:1D:1A:01:E0:1E -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.1.1.14 -o eth1 -j MASQUERADE

#MICRO4
iptables -t filter -A FORWARD -d 0/0 -s 10.1.1.15 -m mac --mac-source 08:00:27:6E:DE:C1 -j ACCEPT
iptables -t filter -A FORWARD -d 10.1.1.15 -s 0/0 -j ACCEPT
iptables -t filter -A INPUT -s 10.1.1.15 -d 0/0 -m mac --mac-source 08:00:27:6E:DE:C1 -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.1.1.15 -o eth1 -j MASQUERADE


# FORCAR O PROXY
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128

# LIBERANDO PORTAS
iptables -A INPUT -p tcp --destination-port 22 -j ACCEPT
iptables -A INPUT -p tcp --destination-port 80 -j ACCEPT


# FECHA O RESTO
iptables -A INPUT -p tcp --syn -j DROP

# IMPEDIR RESPOSTA DO PING
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all

parar(){
iptables -F
iptables -F -t nat
}

case "$1" in
"start") iniciar ;;
"stop") parar ;;
"restart") parar; iniciar ;;
*) echo "Use os parâtros start ou stop"
esac


Minha duvida é se aumentar a quantidade de  micros vai funcionar legal?


zekkerj

Se aumentar a quantidade de micros será o caos pra você, pois você terá que replicar as regras, anotar cada endereço atribuído, e editar o firewall. Aumentando a quantidade de micros, aumenta a possibilidade de você ter que trocar uma máquina, ou trocar a placa de rede de uma delas, o que significa que você terá que corrigir o script. Há ainda a possibilidade de digitar um endereço IP ou MAC errado, o que vai te exigir depurar tudo... caos.

Enquanto isso, há um erro de procedimento em seu script. Veja que há uma sub-rotina "iniciar", que você usa pra carregar algumas coisas. Todas as suas regras deveriam estar colocadas nesse script; isso garantiria que as regras fossem colocadas na ordem estrita em que foram digitadas, algo essencial pro fluxo de processamento do iptables.

No entanto, você colocou todas as regras de filtragem fora da sub-rotina "iniciar". Com isso, essas regras de filtragem estão sendo executadas antes da "iniciar", fazendo que suas regras fiquem fora de ordem. Isso é ainda pior na hora em que você considera as regras de MASQUERADE, as quais você colocou desnecessariamente uma específica para cada IP/MAC --- bastaria colocar uma regra central (aliás, há uma dentro da rotina "iniciar", e ela seria suficiente), já que qualquer IP/MAC não cadastrado seria bloqueado.

Outro  motivo determinante pra lentidão é que você está usando política DROP pra cadeia INPUT, mas não liberou o tráfego na interface Loopback. Esse tráfego é usado em vários programas, inclusive na autenticação dos usuários do Linux. A menos que você não se importe em ficar horas esperando um prompt de senha, depois de digitar o usuário, a regra abaixo, logo no início do firewall, será sua amiga:

iptables -A INPUT -i lo -j ACCEPT
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

zekkerj

Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

vermei

Amigo, vc terial alguma coisa facil de usa?

Com essas mesmas caracteristicas?

Gratto

zekkerj

O que você chama de "facil de usa"?
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

vermei

Pra mim amarra max x ip e que vai funcionar legal....

Não tem problema se tive que cadastra todos os mac....

zekkerj

Então você prefere ficar editando diretamente no script, mesmo com o risco de dar erro e danar tudo de vez, ao invés de pensar um pouquinho mais e colocar a amarração entre IP e MAC num arquivo separado?
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

vermei

E como seria?

Essa configuração que to usano da pra adicionar um arquivo externo?

Funcionaria legal?


Grato pela atenção

zekkerj

No link que eu te passei explica.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

vermei

Então..... o link q está na pagina ta off !!

cianetmidia

Por que vc não coloca um dhcp e faz a amara no dhcp no squid ou no firewall vc coloca os ips que podem navegar e controle o mac por dhcp fica mais facil no meu ponto de vista, mas cada caso é um caso

vermei

Você poderia ser mais especifico?

vermei

A soluçao foi a seguinte crie um arquivo com o nome "ethers" é o único nome que é aceito pelos comandos "arp" se for digitado o nome para este arquivo como por exemplo eters, ethes, etc não funcionará.
Dentro deste arquivo você irá colocar os ip's da seguinte forma:
ex.: 192.168.0.1 seguido de um espaço 00:00:00:00:00:00 os ip's conforme sua rede é claro.
assim:
192.168.0.1 00:00:00:00:00:00
192.168.0.2 00:00:00:00:00:00
192.168.0.3 00:00:00:00:00:00
192.168.0.4 00:00:00:00:00:00
192.168.0.5 00:00:00:00:00:00
192.168.0.6 00:00:00:00:00:00
até...
192.168.0.254 00:00:00:00:00:00

use zeros no lugar de outro números ou letras hexadecimal pois mesmo que alguém mude o ip para driblar algum controle de banda para navegar com a banda total do link os zeros anulam a navegação, mesmo se ele usar como endereço mac na clonagem este mac 00:00:00:00:00:00 não conseguirá nada pois zero não é aceito como endereço mac.
neste exemplo tem que prestar atenção nos ips do servidor e no de broadcast que não precisa ser citado pois ninguém consegue navegar com ip duplicado na rede e o ip de bradcast nao serve para navegar na internet pois o servidor sempre esta utilizando ele para envio de informações na rede.
salve o arquivo "ethers" e o feche.

e digite o seguinte comando:
arp -f

Basta colocar o comando arp -f na inicialização e pronto !!!!