Gostaria de trancar alguns ip's ao MAC qual regra uso no squid para fazer tal coisa
Versão Imprimível
Gostaria de trancar alguns ip's ao MAC qual regra uso no squid para fazer tal coisa
oq vc quer dizer com trancar? bloquear?
vc quer q um determinado IP seja atribuido o MAC X?
Sim, gostaria que uma maquina só se conectasse com aquele IP.
vc soh consegue atribuir ips as maquinas usando DHCP, a sintaxe pra atribui um ip a um determinado MAC eh
host allex{
hardware ethernet 00:E0:7D:C7:F9:54;
fixed-address 192.168.1.53;
option routers 192.168.1.1;
option domain-name-servers 192.168.1.1;
}
(dentro do seu /etc/dhcpd.conf)
Pelo que eu entendi vc tem um servidor compartilhando a internet com a rede e gostaria de fazer com que determinada máquina só possa acessar estando sempre com o mesmo IP e caso seja mudado perca o acesso a internet mesmo o IP estando disponível na rede. Seria isso que vc quis se referir??Citação:
Postado originalmente por Rmaceira
Esse é o mesmo esquema que provedores de acesso wireless usam em seus firewall além de bloquearem no AP´s. Vc vai precisar usar o iptables pra dizer ao firewall que IP faz par com um determinado MAC, e somente nessa condição libera o acesso.
Leia isto que poderá te ajudar:
http://www.linuxit.com.br/modules.ph...icle&artid=154
Falow...
A dica do ic3_m4n ta correta, aqui eu bloqueio ips por MAC desse mesmo jeito no dhcp.conf e funciona, mas é necessário o servidor dhcp estar ativo.
Só isso basta cara....
não basta não, pode fazer o teste, se vc configurar o dhcpd.conf dessa maneira a única coisa que vai acontecer é que o servidor dhcp sempre vai te dar o mesmo IP, mas se vc configurar a rede manualmente vc vai acessar a net naturalmente. e como vc deu a entender que é justamente isso que vc quer, a solução vai ser o iptables.Citação:
Postado originalmente por Pedro0278
Não me levem a mal, mas pela lógica é bem assim que vai acontecer.
faz de conta q eu num sei oq to falando ta....
se vc quer ATRIBUIR UM IP A UM MAC ADDRESS EH SOMENTE POR DHCP!!!!!!!!!
iptables eh pra regras de firewall...
se vc quer bloquear algum ip vc tem q saber esse ip... ateh tem como usar o iptables pra bloquear diretamente pro MAC mas vc vai ter q recompilar o kernel pq isso num vem ativo...
gustavo leia o 2 e o 3 posts desse topico q vc vai entender o pq do dhcp 8O
kra não vamos descer o nível não, até porque eu não tô falando nada sem ter testado antes. Eu sei que se vc quiser atribuir um IP a um mac é por DHCP, mas o nosso amigo aqui tá pedindo uma maneira de impedir que o cara acesse a internet com um IP que não seja o que tá configurado em conjunto com seu MAC não pra configurar a rede dele... Da próxima vez, antes de sair dando patadas, leia com atenção a pergunta, ok??Citação:
Postado originalmente por 1c3_m4n
Não tem nada de recompilar o kernel não, pois eu já usei, a não ser q vc ainda usa o kernel antigo....
Se vc quiser conferir o que estou falando acesso link que eu passei acima e veja se lá fala alguma coisa de DHCP, quem sabe se vc prestando atenção vai conseguir entender o que aquilo está dizendo.
Eu não quis chegar a este ponto, mas foi vc quem começou!!!
Falow;
Citação:
Postado originalmente por gustavo_marcon
Cara, vc entendeu o que eu quis dizer né??
Não disse q vc tá dando uma sugestão errada, até porque a pergunta não estava muito clara.... E tbm estavamos falando de coisas diferentes. Eu conheço essa técnica de DHCP mas pelo que deu a entender pra mim foi que o cara tava querendo bloquear o acesso e não configurar a rede via DHCP..... Tá ligado. Portanto se vc reparar no post 5 vc verá que eu deu uma sugestão mas antes fiz uma pergunta pro cara pedindo se era realmente aquilo que ele queria, se não era, é só não usar e pronto, acho que vc não precisava sair falando como se fosse o tal.....
Falow.
Agora fez sentido oq vc falou, EU passei batido por esse post, foi por isso q respondi dakele jeito, falha minha :oops: eh o sono...Citação:
Postado originalmente por gustavo_marcon
bom vamos parar a dicussao pra num ficar enxendo o bd com bobagem
Citação:
Postado originalmente por 1c3_m4n
Blz kra, também acho essa discussão uma bobagem, eu só respondi com intuiro de ajudar, assim como vc fez, só acho que poderiamos ter sido mais civilizados...... Afinal fazemos parte da mesma comunidade né cara, é uma briga sem sentido.....
Falow e desculpa por qualquer coisa.
otimo :> "sem brigas meninas" hiihhi ki bom q vcs jah fizeram as pazes :>
eh o esquema ai eh como foi dito, usar o iptables amarrando na regra o ip/mac o acesso no squid (desde que ninguem mais acesse neh? senao fura)
agora ele tem que explicar melhor o problema, pois ele falou muito superficilamente, e isso gerou polemica porque cada um "pensou em um cenario" ai fica dificil de saber mesmo.
peco mais uma vez que quando postarem problemas, deem condicoes para que solucionemos... e nao para que tenhamos que "filosofar" sobre qual solucao voce quer.
Ai evita tambem esse tipo de desintendimento bobo.
Concordo plenamente... O cara tem que por a pergunta completa, afinal o interessado na resposta é ele, nós só estamos aqui pra ajudar.Citação:
Postado originalmente por mistymst
Mas agora a situação já tá resolvida.
Falow
Falha minha,
A pergunta é a seguinte:
Tenho um Provedor de Internet Predial, estou usando IP estático no PC dos assinantes, quando eu atribuir um determinado IP para o usuário, gostaria que ele só use a internet com esse IP, do contrário tenha o acesso negado, qual artifício eu uso para tal coisa?
Obrigado e desculpa pela confusão!!
RedHat 9.0
Não seria mais fácil simplesmente compilar o squid com suporte a tratamento por mac address?
Abraços
no caso de http sim, mas como eh um provedor ele vai precisar controlar trafego de ftp,ssh,mail,etc....
eh o negocio eh usar o dhcp pra fixar os ips, e criar as regras com iptables como foi dito anteriormente do meio das discussoes :oops: hehehe
Então minha sugestão estava certa. Já que vc usa IP estático e quer somente bloquear o acesso dependo do par IP/MAC.Citação:
Postado originalmente por Anonymous
O link é esse: http://www.linuxit.com.br/modules.ph...icle&artid=154
Leia com atenção que ali está a solução pro teu problema.
Pessoal bom dia, estava verificando a lista e encontrei esse artigo aqui que postaram na mensagem anterior:
"http://www.linuxit.com.br/modules.ph...cle&artid=154"
Alguém já usou esse script e deu certo?
Pq o meu ta dando erro e acredito q a configuração esteja correta, veja o erro:
: No such file or directoryet/ipv4/ip_forward
'sbin/firewall: line 15: syntax error near unexpected token `in
'sbin/firewall: line 15: `case $1 in
Grato.
Clístenis
ei amigoCitação:
Postado originalmente por clistenis
a linha do repasse de pacotes nao seria
/proc/sys/net/ipv4/ip_forward ??
olha se na distro q vc usa o arquivo fica nesse diretorio tambem..
verifica se vc nao digitou nada errado ..
eu usei o mesmo script aqui e funciona q é uma blza...
atualmente fiz umas implementações pra fazer uma outra coisas tambem tipo ja gera o dhcpd.conf .. as regras do bandlimit-p2p etc ...
da uma olhadinha direitinho nessa linha q ele fala ai q ta com erro.. provavelmente vc deve te digitado alguma coisa errada
usa o set-x no começo do scrip e no final o set+x pra vc debugar e ver oq ta acontecendo... ai vc acha aonde ta o erro..
acho q é isso...
qualquer coisa posta ae
Infelizmente eu não sei o que está acontecendo meu amigo......
Troquei de posição a linha de repasse de pacotes
echo 1 > /proc/sys/net/ipv4/ip_forward
tudo bem não deu mais o erro nele mais continuou o outro...
'sbin/firewall: line 15: syntax error near unexpected token `in
'sbin/firewall: line 15: `case $1 in
Sinceramente não estou entendendo....
ei brother... como assim trocou de posição ... ???Citação:
Postado originalmente por clistenis
posta ae as modificações q vc fez no script ... porq se vc so copiou do jeito q ta la .. tem q funcionar..
a linha aode vc indica aonde ta programa esta correta???
PROGRAMA=/o-seu-dir-aonde-ta-o-seu-script/
eu apenas alterei a posição da linha de repasse de pacotes para baixo... ele não deu mais o erro dela porem continuou com o erro da linha 15
Será que pode ser em função do meu SO ?
Neste caso, é melhor vc fazer o bloqueio não por IP mas por MAC
Discordo um pouco, de qualquer modo é melhor fazer a troca por par IP/MAC respectivos, pois se o cara fizer mac spoffing ele não consegue acessar se o IP estiver em uso, já se o bloqueio for feito só por MAC fica fácil pro cara entrar na rede.Citação:
Postado originalmente por Anonymous
Caro Colega, você pode amarrar o ip ao mac do cliente usando iptables, basta criar uma lista com as macs e os ips referentes, abaixo vai um script que uso aqui para fazer o esquema.Citação:
Postado originalmente por Anonymous
FIREWALL
-----------------------------------------------------------------------------------
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
#Usuario IP Atorizados a Acessar Internet
## Carregando modulos
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_conntrack_irc
modprobe ip_nat_irc
modprobe ip_tables
modprobe ipt_state
modprobe iptable_nat
modprobe ip_nat_ftp
modprobe ipt_limit
modprobe ipt_LOG
modprobe ipt_REJECT
modprobe ipt_MASQUERADE
modprobe ipt_mac
IPT=iptables
PROGRAMA=/etc/firewall
NET_IFACE=eth0
LAN_IFACE=eth1
MACLIST=/etc/maclist
echo 1 > /proc/sys/net/ipv4/ip_forward
case $1 in
start)
$IPT -X
$IPT -F
$IPT -t nat -F
$IPT -t nat -X
$IPT -t filter -P FORWARD DROP
for i in `cat $MACLIST`; do
STATUS=`echo $i | cut -d ';' -f 1`
IPSOURCE=`echo $i | cut -d ';' -f 3`
MACSOURCE=`echo $i | cut -d ';' -f 2`
#Se status = a então eu libera a conexao
if [ $STATUS = "a" ]; then
$IPT -t filter -A FORWARD -d 0/0 -s $IPSOURCE -m mac --mac-source $MACSOURCE -j ACCEPT
$IPT -t filter -A FORWARD -d $IPSOURCE -s 0/0 -j ACCEPT
#$IPT -t nat -A POSTROUTING -s $IPSOURCE -o $NET_IFACE -j MASQUERADE
$IPT -t filter -A INPUT -s $IPSOURCE -d 0/0 -m mac --mac-source $MACSOURCE -j ACCEPT
$IPT -t filter -A OUTPUT -s $IPSOURCE -d 0/0 -j ACCEPT
$IPT -t nat -A PREROUTING -s $IPSOURCE -m mac --mac-source $MACSOURCE -p tcp --dport 80 -j REDIRECT --to-port 8080
# Se for = b então bloqueia o MAC
else
$IPT -t filter -A FORWARD -m mac --mac-source $MACSOURCE -j DROP
$IPT -t filter -A INPUT -m mac --mac-source $MACSOURCE -j DROP
$IPT -t filter -A OUTPUT -m mac --mac-source $MACSOURCE -j DROP
fi
done
###############
## Proteção ###
###############
#Acabando com sessoes mortas
#$IPT -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG \
#--log-level DEBUG --log-prefix 'IPT INPUT packet died: '
#Evitando syn-floods
#$IPT -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
#Travando pings da morte
#$IPT -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
#Bad TCP packets
#$IPT -N bad_tcp_packets
#$IPT -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j LOG \
#--log-prefix 'New not syn:'
#$IPT -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j DROP
##Vamos evitar scans do tipo "porta destino = porta origem"
#for i in `netstat -na|grep '*'|grep tcp|tr -s " "|cut -d " " -f 4|tr -s ":" " "|
#awk '{print $NF}'|sort|uniq`
#do
# $IPT -A INPUT -p tcp --sport $i --dport $i -j LOG --log-level DEBUG --lo
#g-prefix 'IPT src port eq dst port: '
# $IPT -A INPUT -p tcp --sport $i --dport $i -j DROP
#done
#Bloqueio de spywares
#for SPY in `cat $PROGRAMA/bloqueios/*|grep -v ^#|grep -v ^$|cut -d : -f1`
#do
# $IPT -A INPUT -s $SPY -j DROP >/dev/null 2>/dev/null
#done
#matando P2P come-banda
#iMesh
#$IPT -A FORWARD -d 216.35.208.0/24 -j REJECT
##BearShare
#$IPT -A FORWARD -p TCP --dport 6346 -j REJECT
#ToadNode
#$IPT -A FORWARD -p TCP --dport 6346 -j REJECT
#WinMX
#$IPT -A FORWARD -d 209.61.186.0/24 -j REJECT
#$IPT -A FORWARD -d 64.49.201.0/24 -j REJECT
#Napigator
#$IPT -A FORWARD -d 209.25.178.0/24 -j REJECT
#Morpheus
$IPT -A FORWARD -d 206.142.53.0/24 -j REJECT
$IPT -A FORWARD -p TCP --dport 1214 -j REJECT
#KaZaA
# $IPT -A FORWARD -d 213.248.112.0/24 -j REJECT
# $IPT -A FORWARD -p TCP --dport 1214 -j REJECT
# for IP in `cat /$PROGRAMA/bloqueios/ip-kazaa-10.txt`
# do
# $IPT -A FORWARD -i $NET_IFACE -d $IP -j DROP
# done
#Limewire
$IPT -A FORWARD -p TCP --dport 6346 -j REJECT
#Audiogalaxy
$IPT -A FORWARD -d 64.245.58.0/23 -j REJECT
#GNUTella
$IPT -A FORWARD -p tcp --dport 6346 -j REJECT
#eDonkey
$IPT -A FORWARD -p tcp --dport 4661:4662 -j REJECT
$IPT -A FORWARD -p udp --dport 4665 -j REJECT
## Bloqueio Triono
$IPT -A INPUT -p TCP -s 0/0 --dport 27444 -j DROP
$IPT -A INPUT -p TCP -s 0/0 --dport 31335 -j DROP
## Proteção contra SYN-FLOOD
#$IPT -A FORWARD -p tcp -m limit --limit 1/s -j ACCEPT
#Contra Port scanners avancados (nmap)
#$IPT -A INPUT -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "New not syn:"
#$IPT -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
# Log a portas proibidas e alguns backdoors
#Porta FTP
#$IPT -A INPUT -p tcp --dport 21 -j LOG --log-prefix "Serviço: FTP"
#Porta Wincrash
#$IPT -A INPUT -p tcp --dport 5042 -j LOG --log-prefix "Serviço: Wincrash"
#Portas BackOrifice
#$IPT -A INPUT -p tcp --dport 12345 -j LOG --log-prefix "Serviço: BackOrifice"
## Serviços Diversos
$IPT -A INPUT -p TCP -s 0/0 -d 0/0 --dport 113 -j DROP
$IPT -A INPUT -p UDP -s 0/0 -d 0/0 --dport 113 -j DROP
$IPT -A INPUT -p TCP -s 0/0 -d 0/0 --dport 520 -j DROP
$IPT -A INPUT -p UDP -s 0/0 -d 0/0 --dport 520 -j DROP
$IPT -A INPUT -p TCP -s 0/0 -d 0/0 --dport 500 -j DROP
$IPT -A INPUT -p UDP -s 0/0 -d 0/0 --dport 500 -j DROP
$IPT -A INPUT -p TCP -s 0/0 -d 0/0 --dport 1001 -j DROP
$IPT -A INPUT -p UDP -s 0/0 -d 0/0 --dport 1001 -j DROP
$IPT -A INPUT -p TCP -s 0/0 -d 0/0 --dport 1002 -j DROP
$IPT -A INPUT -p UDP -s 0/0 -d 0/0 --dport 1002 -j DROP
$IPT -A INPUT -p TCP -s 0/0 -d 0/0 --dport 68 -j DROP
$IPT -A INPUT -p UDP -s 0/0 -d 0/0 --dport 68 -j DROP
$IPT -A INPUT -p TCP -s 0/0 -d 0/0 --dport 67 -j DROP
$IPT -A INPUT -p UDP -s 0/0 -d 0/0 --dport 67 -j DROP
$IPT -A INPUT -p TCP -s 0/0 -d 0/0 --dport 161 -j DROP
$IPT -A INPUT -p UDP -s 0/0 -d 0/0 --dport 161 -j DROP
$IPT -A INPUT -p TCP -s 0/0 -d 0/0 --dport 123 -j DROP
$IPT -A INPUT -p UDP -s 0/0 -d 0/0 --dport 123 -j DROP
#$IPT -A INPUT -p TCP -s 0/0 -d 0/0 --dport 20 -j DROP
#$IPT -A INPUT -p UDP -s 0/0 -d 0/0 --dport 20 -j DROP
$IPT -A INPUT -p TCP -s 0/0 -d 0/0 --dport 37 -j DROP
$IPT -A INPUT -p UDP -s 0/0 -d 0/0 --dport 37 -j DROP
$IPT -A INPUT -p TCP -s 0/0 -d 0/0 --dport 775 -j DROP
$IPT -A INPUT -p UDP -s 0/0 -d 0/0 --dport 775 -j DROP
$IPT -A INPUT -p UDP -s 0/0 -d 0/0 --dport 23 -j DROP
$IPT -A OUTPUT -p TCP -s 0/0 -d 0/0 --dport 113 -j DROP
$IPT -A OUTPUT -p UDP -s 0/0 -d 0/0 --dport 113 -j DROP
$IPT -A OUTPUT -p TCP -s 0/0 -d 0/0 --dport 520 -j DROP
$IPT -A OUTPUT -p UDP -s 0/0 -d 0/0 --dport 520 -j DROP
$IPT -A OUTPUT -p TCP -s 0/0 -d 0/0 --dport 500 -j DROP
$IPT -A OUTPUT -p UDP -s 0/0 -d 0/0 --dport 500 -j DROP
$IPT -A OUTPUT -p TCP -s 0/0 -d 0/0 --dport 1001 -j DROP
$IPT -A OUTPUT -p UDP -s 0/0 -d 0/0 --dport 1001 -j DROP
$IPT -A OUTPUT -p TCP -s 0/0 -d 0/0 --dport 1002 -j DROP
$IPT -A OUTPUT -p UDP -s 0/0 -d 0/0 --dport 1002 -j DROP
$IPT -A OUTPUT -p TCP -s 0/0 -d 0/0 --dport 68 -j DROP
$IPT -A OUTPUT -p UDP -s 0/0 -d 0/0 --dport 68 -j DROP
$IPT -A OUTPUT -p TCP -s 0/0 -d 0/0 --dport 67 -j DROP
$IPT -A OUTPUT -p UDP -s 0/0 -d 0/0 --dport 67 -j DROP
$IPT -A OUTPUT -p TCP -s 0/0 -d 0/0 --dport 161 -j DROP
$IPT -A OUTPUT -p UDP -s 0/0 -d 0/0 --dport 161 -j DROP
$IPT -A OUTPUT -p TCP -s 0/0 -d 0/0 --dport 123 -j DROP
$IPT -A OUTPUT -p TCP -s 0/0 -d 0/0 --dport 20 -j DROP
$IPT -A OUTPUT -p UDP -s 0/0 -d 0/0 --dport 20 -j DROP
$IPT -A OUTPUT -p TCP -s 0/0 -d 0/0 --dport 37 -j DROP
$IPT -A OUTPUT -p UDP -s 0/0 -d 0/0 --dport 37 -j DROP
$IPT -A OUTPUT -p TCP -s 0/0 -d 0/0 --dport 775 -j DROP
$IPT -A OUTPUT -p UDP -s 0/0 -d 0/0 --dport 775 -j DROP
$IPT -A OUTPUT -p TCP -s 0/0 -d 0/0 --dport 23 -j DROP
$IPT -A OUTPUT -p UDP -s 0/0 -d 0/0 --dport 23 -j DROP
$IPT -A INPUT -p UDP -s 0/0 -d 0/0 --dport 67 -j DROP
$IPT -A OUTPUT -p UDP -s 0/0 -d 0/0 --dport 67 -j DROP
$IPT -A INPUT -p UDP -s 0/0 -d 0/0 --dport 137 -j DROP
$IPT -A OUTPUT -p UDP -s 0/0 -d 0/0 --dport 137 -j DROP
$IPT -A INPUT -p UDP -s 0/0 -d 0/0 --dport 138 -j DROP
$IPT -A OUTPUT -p UDP -s 0/0 -d 0/0 --dport 138 -j DROP
$IPT -A INPUT -p UDP -s 0/0 -d 0/0 --dport 161 -j DROP
$IPT -A OUTPUT -p UDP -s 0/0 -d 0/0 --dport 161 -j DROP
$IPT -A INPUT -p UDP -s 0/0 -d 0/0 --dport 1025 -j DROP
$IPT -A OUTPUT -p UDP -s 0/0 -d 0/0 --dport 1025 -j DROP
$IPT -A INPUT -p UDP -s 0/0 -d 0/0 --dport 1155 -j DROP
$IPT -A OUTPUT -p UDP -s 0/0 -d 0/0 --dport 1155 -j DROP
$IPT -A INPUT -p UDP -s 0/0 -d 0/0 --dport 3130 -j DROP
$IPT -A OUTPUT -p UDP -s 0/0 -d 0/0 --dport 3130 -j DROP
#
echo "FIREWALL ATIVADO SISTEMA PREPARADO"
;;
stop)
$IPT -X
$IPT -F
$IPT -Z
$IPT -t nat -F
$IPT -t nat -X
#$IPT -t filter -P FORWARD ACCEPT
echo "FIREWALL DESCARREGADO SISTEMA LIBERADO"
;;
restart)
$PROGRAMA stop
$PROGRAMA start
;;
esac
ARQUIVO DAS MACS (maclist)
-------------------------------------------------------------------------------------
a;00:E0:06:09:55:66;10.1.1.2;user1
a;00:80:C8:00:17:70;10.1.1.4;user2
a;00:80:C8:00:17:32;10.1.1.3;user3
obs: SE O CARA MUDAR O IP É PAU NA CERTA, VAI PARAR DE FUNCIONAR.
Olá
Aqui funciona da seguinte forma
Quando o cara trocar o IP, o roteador simplismente não roteia seu pacote.
Faço isso usando o iptables:
# iptables -A FORWARD -s ! 10.10.10.5 -m mac --mac-source 00:C0:DF:EA:22:71 -j DROP
Essa linha faz com que o roteador jogue fora qualquer pacote a se rotear que venha do mac-address 00:C0:DF:EA:22:71 e não seja o IP 10.10.10.5...
ou seja, se o cara mudar o IP dele ele nao navega nem com reza-brava !
Espero ter ajudado...
Citação:
Postado originalmente por 1c3_m4n