Problemas com Firewall e squid

Iniciado por Lucas Peregrino, 06 de Julho de 2012, 11:04

tópico anterior - próximo tópico

Lucas Peregrino

Boa noite gente to tentado arumar um esquema aqui que para funcionar o squid e meu firewall junto contudo vo precisa de ajuda. Achei esse script no vivao para bloquear o face e realmente bloqueo a porta 443 e nao deixo passa mesmo sendo proxy transparente contudo na empresa tenho os usuarios fusao que sabe mexer e descobriram q seu eu marcava o squid por ip e eles mudasem o ip da maquina para o ip premiado a net ficava liberado com isso fui forçado a coloca a procura por arp consulta o mac da placa. Queria saber se tem como de alguma forma fazer esse script funcionar so que ele visualizando os mac que sao liberado como essa lista q esta apontado sao dos mac liberado no squid queria ver se comsigo aproveitar ela se alguem tiver alguma ajuda fico muito grato obrigado.


FACEBOOK_ALLOW= arp -i /etc/squid3/lists/ip | egrep -v "^[#;]";

iptables -N FACEBOOK
iptables -I FORWARD -p tcp -m iprange --dst-range 66.220.144.0-66.220.159.255 --dport 443 -j DROP
iptables -I FORWARD -p tcp -m iprange --dst-range 69.63.176.0-69.63.191.255 --dport 443 -j DROP
iptables -I FORWARD -p tcp -m iprange --dst-range 204.15.20.0-204.15.23.255 --dport 443 -j DROP
iptables -I FORWARD -p tcp -m iprange --dst-range 204.74.64.0-204.74.127.255 --dport 443 -j DROP
iptables -I FORWARD -p tcp -m iprange --dst-range 69.171.224.0-69.171.255.255 --dport 443 -j DROP


## FACEBOOK ALLOW
for face in $FACEBOOK_ALLOW; do
iptables -I FACEBOOK -m mac --mac-source $face -j ACCEPT
done
iptables -A FACEBOOK -j REJECT

zekkerj

Tire a permissão de administrador dos usuários que eles não poderão mudar o IP da máquina.
Nem instalar furadores de bloqueio tipo ultrasurf.
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

Lucas Peregrino

n posso pois o programa da empresa so roda como usuario administrador

zekkerj

Típico... a empresa aceita gastar dinheiro com um programa meia boca que só funciona se a estação windows ficar escancarada pra um usuário administrador, mas não aceita gastar dinheiro numa solução profissional de webfilter, pra impedir que os usuários fiquem vagabundeando em hora de serviç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

zekkerj

CitarFACEBOOK_ALLOW= arp -i /etc/squid3/lists/ip | egrep -v "^[#;]";
Essa linha não faz o que você quer. O comando "arp" espera um nome de interface depois do "-i", não uma lista de IPs.

acho que o ideal seria você montar o arquivo "/etc/squid3/lists/ip" com o ip e o mac address das máquinas autorizadas a acessar o facebook, nesse formato:

192.168.1.10 00:01:02:03:04:05
192.168.1.11 00:01:02:03:04:06
...

Você o leria assim:

LISTA_IPS=`cat /etc/squid3/lists/ip | egrep -v "^[#;]"`
iptables -N FACEBOOK
iptables -F FACEBOOK
for linha in $LISTA_IPS
do
    ip=${linha/ */}
    mac=${linha/* /}
    iptables -A FACEBOOK -s $ip --mac $mac -j ACCEPT
done
iptables -A FACEBOOK -j REJECT

iptables -A FORWARD -p tcp -m multiport --dport 80,443 -d www.facebook.com -j FACEBOOK
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

irtigor

Irrelevante pro iptables, mas seria melhor


lista="/etc/squid3/lists/ip"

iptables -N FACEBOOK
iptables -F FACEBOOK

while read -r ip mac; do
  [[ $ip = \#* ]] && continue
  iptables -A FACEBOOK -s $ip --mac $mac -j ACCEPT
done < "$lista"

iptables -A FACEBOOK -j REJECT
iptables -A FORWARD -p tcp -m multiport --dport 80,443 -d www.facebook.com -j FACEBOOK


http://mywiki.wooledge.org/BashFAQ/001

zekkerj

Citarwhile read -r ip mac; do
  [[ $ip = \#* ]] && continue
  iptables -A FACEBOOK -s $ip --mac $mac -j ACCEPT
done < "$lista"
Sabia que tinha um jeito melhor de fazer isso... o problema é lembrar, na hora que precisa.
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

Lucas Peregrino

bem gente fiz o teste nesse script e não funciono

/etc/init.d/mountntfs.sh: 446: [[: not found
iptables v1.4.8: unknown option `--mac'
Try `iptables -h' or 'iptables --help' for more information.
/etc/init.d/mountntfs.sh: 446: [[: not found
iptables v1.4.8: unknown option `--mac'
Try `iptables -h' or 'iptables --help' for more information.
/etc/init.d/mountntfs.sh: 446: [[: not found
iptables v1.4.8: unknown option `--mac'
Try `iptables -h' or 'iptables --help' for more information.
/etc/init.d/mountntfs.sh: 446: [[: not found
iptables v1.4.8: unknown option `--mac'
Try `iptables -h' or 'iptables --help' for more information.
/etc/init.d/mountntfs.sh: 446: [[: not found
iptables v1.4.8: host/network `--mac' not found
Try `iptables -h' or 'iptables --help' for more information.
/etc/init.d/mountntfs.sh: 446: [[: not found
iptables v1.4.8: unknown option `--mac'
Try `iptables -h' or 'iptables --help' for more information.
/etc/init.d/mountntfs.sh: 446: [[: not found
iptables v1.4.8: unknown option `--mac'
Try `iptables -h' or 'iptables --help' for more information.

irtigor

Qual é o shebang? #!/bin/sh? A sintaxe que passei é válida pro bash.
Sobre o segundo erro, eu não tenho certeza, mas vi esse formato -m mac --mac-source $mac.

Lucas Peregrino

tentei rodar novamente e deu erro pode fazer o teste ai para vc ver coloque um caminho qualquer e um mac dentro do arquivo e vera q ele dara erro.

zekkerj

Ele pegou o trecho que vc escreveu e jogou num arquivo, irtigor. Nem criou shebang, nem nada.

Lucas, vc tem que entender que esse código que a gente passou não é um script completo ou pronto, isso é um trecho que deve ser inserido num script completo de firewall.
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

Lucas Peregrino

#11
exato mais no meu firewall ele nao ta funcionado por isso to pedindo ajuda . Meu firewall comeca com #!/bin/sh


irtigor

Use o bash, remova a linha do teste (sem ela, linhas começadas com cerquilha não vão ser ignoradas) ou adapte.

Lucas Peregrino

#13
Coloquei do jeito q me pediu com bash mas deu esse erro

se eu deixa com -s  e esse erro

iptables v1.4.8: host/network `--mac' not found
Try `iptables -h' or 'iptables --help' for more information.
iptables v1.4.8: unknown option `--mac'
Try `iptables -h' or 'iptables --help' for more information.
iptables v1.4.8: host/network `--mac' not found
Try `iptables -h' or 'iptables --help' for more information.
iptables v1.4.8: unknown option `--mac'
Try `iptables -h' or 'iptables --help' for more information.
Stop Firewall:
iptables v1.4.8: host/network `--mac' not found
Try `iptables -h' or 'iptables --help' for more information.
iptables v1.4.8: unknown option `--mac'
Try `iptables -h' or 'iptables --help' for more information.

se eu coloca -m

iptables v1.4.8: Couldn't load match `--mac-source':/lib/xtables/libipt_--mac-source.so: cannot open shared object file: No such file or directory

Try `iptables -h' or 'iptables --help' for more information.
iptables v1.4.8: Couldn't load match `08:00:27:05:2a:95':/lib/xtables/libipt_08:00:27:05:2a:95.so: cannot open shared object file: No such file or directory

Try `iptables -h' or 'iptables --help' for more information.
iptables v1.4.8: Couldn't load match `--mac-source':/lib/xtables/libipt_--mac-source.so: cannot open shared object file: No such file or directory

Try `iptables -h' or 'iptables --help' for more information.
iptables v1.4.8: Couldn't load match `08:00:27:05:2a:95':/lib/xtables/libipt_08:00:27:05:2a:95.so: cannot open shared object file: No such file or directory

Try `iptables -h' or 'iptables --help' for more information.
Stop Firewall:
iptables v1.4.8: Couldn't load match `--mac-source':/lib/xtables/libipt_--mac-source.so: cannot open shared object file: No such file or directory

Try `iptables -h' or 'iptables --help' for more information.
iptables v1.4.8: Couldn't load match `08:00:27:05:2a:95':/lib/xtables/libipt_08:00:27:05:2a:95.so: cannot open shared object file: No such file or directory

Try `iptables -h' or 'iptables --help' for more information.



Lucas Peregrino

#14
bem fazendo uns teste kamikaze aqui coloquei a regra assim

 lista="/etc/squid3/lists/ip"

    iptables -N FACEBOOK
    iptables -F FACEBOOK

    while read -r ip; do
    [[ $ip = \#* ]] && continue
    echo "$ip"
    iptables -A FACEBOOK -m mac --mac-source $lista -j ACCEPT
    done < "$lista"

    iptables -A FACEBOOK -j REJECT
    iptables -A FORWARD -p tcp -m multiport --dport 80,443 -d www.facebook.com -j FACEBOOK


e o erro que deu foi esse

iptables v1.4.8: Bad mac address "-j"
Try `iptables -h' or 'iptables --help' for more information.
08:00:27:05:2a:95