Como Habilitar ARP ACL no squid 2.6 CentOS 5

Boa Noite pessoal,

Surgiu uma necessidade na minha empresa, devido a restrição de acesso ao site youtube na rede sem fio, 20 dispositivos mobile precisavam de acesso ao youtube. Para resolver o problema, poderia fixar o IP de cada dispositivo no DHCP e depois criar uma regra no squid. Tarefa árdua hehehe. Para resolver este problema de forma muito mais fácil, habilitei o ARP ACL no squid 2.6 rodando em CentOS 5.2. O ARP ACL possibilita  realizar controle de permissões da rede no squid através de endereços MAC ADDRESS.

Para começar, precisaremos recompilar o squid, habilitando o ARP ACL. Faça backup do seu squid ou crie um snapshot do sistema caso esteja rodando em máquina virtual.

1 - Instalando dependências:

#yum install rpm-build gcc linuxdoc-tools openldap-devel pam-devel openjade openssl-devel perl-URI

2 - Baixar o código do squid  (Neste caso estou usando a versão 2.6)

#cd /usr/src

#wget ftp://mirror.switch.ch/pool/2/mirror/redhat/linux/enterprise/5Server/en/os/SRPMS/squid-2.6.STABLE6-5.el5_1.3.src.rpm

Após baixado o pacote, dê um #ls -l , veja o nome do arquivo e o instale, como na imagem a seguir.



#rpm -ivh squid-2.6.STABLE6-5.el5_1.3.src.rpm

3 - Habilite o ARP ACL, editando o arquivo  /usr/src/redhat/SPECS/squid.spec.

#vim /usr/src/redhat/SPECS/squid.spec

Neste arquivo, vá até a linha 114 e adicione a linha para habilitar o ARP ACL, conforme a imagem abaixo.

--enable-arp-acl \



Salve e saia do arquivo.

4 - Gere o novo pacote

#rpmbuild -bb /usr/src/redhat/SPECS/squid.spec

5 - Instale ou atualize o pacote

#rpm -Uvh /usr/src/redhat/RPMS/i386/squid-2.6.STABLE6-5.3.i386.rpm

6 - Verificar se tudo ocorreu bem (notem o destaque em vermelho, --enable-arp-acl deve aparecer neste lista)

#squid -v | grep arp
configure options: '--host=i686-redhat-linux-gnu' '--build=i686-redhat-linux-
gnu' '--target=i386-redhat-linux' '--program-prefix=' '--prefix=/usr' '--exec-prefix=/usr' '--bindir=/usr/bin' '--sbindir=/usr/sbin' '--sysconfdir=/etc' '--includedir=/usr/include' '--libdir=/usr/lib' '--libexecdir=/usr/libexec' '--sharedstatedir=/usr/com' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--exec_prefix=/usr' '--bindir=/usr/sbin' '--libexecdir=/usr/lib/squid' '--localstatedir=/var' '--datadir=/usr/share' '--sysconfdir=/etc/squid' '--enable-epoll' '--enable-snmp' '--enable-arp-acl' '--enable-removal-policies=heap,lru' '--enable-storeio=aufs,coss,diskd,null,ufs' '--enable-ssl' '--with-openssl=/usr/kerberos' '--enable-delay-pools' '--enable-linux-netfilter' '--with-pthreads' '--enable-ntlm-auth-helpers=SMB,fakeauth' '--enable-external-acl-helpers=ip_user,ldap_group,unix_group,wbinfo_group' '--enable-auth=basic,digest,ntlm' '--enable-digest-auth-helpers=password' '--with-winbind-auth-challenge' '--enable-useragent-log' '--enable-referer-log' '--disable-dependency-tracking' '--enable-cachemgr-hostname=localhost' '--enable-underscores' '--enable-basic-auth-helpers=LDAP,MSNT,NCSA,PAM,SMB,YP,getpwnam,multi-domain-NTLM,SASL' '--enable-cache-digests' '--enable-ident-lookups' '--with-large-files' '--enable-follow-x-forwarded-for' '--enable-wccpv2' '--enable-fd-config' '--with-maxfd=16384' 'CFLAGS=-fPIE -Os -g -pipe -fsigned-char' 'LDFLAGS=-pie' 'build_alias=i686-redhat-linux-gnu' 'host_alias=i686-redhat-linux-gnu' 'target_alias=i386-redhat-linux'

Tudo pronto, agora vamos criar uma regra de teste.

7 - Criando regra de teste no squid.conf

acl mac arp 00:0C:29:84:32:A9
http_access deny mac
Share on Google Plus

About Carlos Castro

This is a short description in the author block about the author. You edit it by entering text in the "Biographical Info" field in the user admin panel.
    Blogger Comment
    Facebook Comment

0 comentários:

Postar um comentário