BLOQUEAR TUDO NA INTERNET E LIBERAR APENAS SITES ESPECÍFICOS [RESOLVIDO]

1. BLOQUEAR TUDO NA INTERNET E LIBERAR APENAS SITES ESPECÍFICOS [RESOLVIDO]

Marcio Luciano
marcioluciano

(usa CentOS)

Enviado em 28/11/2016 - 11:11h

Olá!

Sou novo e com pouca experiência com o Linux, mas precisei fazer um serviço para empresa que trabalho para que a internet fosse bloqueada e liberado apenas sites específicos. Configurei um servidor CentOS e instalei e configurei o Squid para o bloqueio através de Proxy. Até então tudo funcionando normalmente.
A questão é que quando eu uso regras de bloqueio de determinadas páginas no squid, dá certo, porém quando eu tento fazer o contrário, como explicado acima, não bloqueia nada, nenhum site, não é me retornado nenhuma mensagem de erro, apenas não bloqueia nada.

Pode ser que estou errando no meu squid.conf, então vou postar aqui para verem se tem algum erro meu:

________________________________________________________________________________

cache_effective_user squid # Usuário que vai rodar o processo do Squid
error_directory /usr/share/errors/pt-br/ #Direcionando as páginas para o idioma Português
acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl localnet src fc00::/7 # RFC 4193 local private network range
acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
http_access allow localnet
http_access allow localhost
http_access deny all
http_port 3128
coredump_dir /usr/var/cache/squid

# visible_hostname servidor_linux
visible_hostname srvlinux.local

# http_access allow localnet
####Somente sites permitidos##################################
acl permitido url_regex "/usr/etc/permitidos"
http_access allow permitido
##############################################################



refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320


Desde já, agradeço


  


2. MELHOR RESPOSTA

Renato Comes
rcomes

(usa Red Hat)

Enviado em 28/11/2016 - 14:11h

marcioluciano escreveu:

Olá!

Sou novo e com pouca experiência com o Linux, mas precisei fazer um serviço para empresa que trabalho para que a internet fosse bloqueada e liberado apenas sites específicos. Configurei um servidor CentOS e instalei e configurei o Squid para o bloqueio através de Proxy. Até então tudo funcionando normalmente.
A questão é que quando eu uso regras de bloqueio de determinadas páginas no squid, dá certo, porém quando eu tento fazer o contrário, como explicado acima, não bloqueia nada, nenhum site, não é me retornado nenhuma mensagem de erro, apenas não bloqueia nada.

Pode ser que estou errando no meu squid.conf, então vou postar aqui para verem se tem algum erro meu:

________________________________________________________________________________

cache_effective_user squid # Usuário que vai rodar o processo do Squid
error_directory /usr/share/errors/pt-br/ #Direcionando as páginas para o idioma Português
acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl localnet src fc00::/7 # RFC 4193 local private network range
acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
http_access allow localnet
http_access allow localhost
http_access deny all
http_port 3128
coredump_dir /usr/var/cache/squid

# visible_hostname servidor_linux
visible_hostname srvlinux.local

# http_access allow localnet
####Somente sites permitidos##################################
acl permitido url_regex "/usr/etc/permitidos"
http_access allow permitido
##############################################################



refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320


Desde já, agradeço


Bom vamos lá!
Para esse tipo de configuração funcionar, você terá que especificar algumas coisas de forma correta.

"acl localnet src 10.0.0.0/8 # RFC1918 possible internal network"

Apague todas as entradas referentes a ips de rede interna e coloque apenas a rede que será utilizada pelo Squid.

O squid funciona de forma sequencial, então para que você possa dar permissões de acesso apenas aos seus sites desejados sua configuração deveria ser assim:


# visible_hostname servidor_linux
visible_hostname srvlinux.local

http_port 3128

cache_effective_user squid # Usuário que vai rodar o processo do Squid
coredump_dir /usr/var/cache/squid

error_directory /usr/share/errors/pt-br/ #Direcionando as páginas para o idioma Português

acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl localnet src fc00::/7 # RFC 4193 local private network range
acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines


acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT

####Coloque suas regras a partir daqui##########################
####Somente sites permitidos##################################
acl permitido url_regex "/usr/etc/permitidos"
http_access allow permitido
##############################################################
####Fim das regras##############################################


http_access deny CONNECT !SSL_ports
http_access deny !Safe_ports
http_access deny all


Ajustei a sua sequencia de configuração. Como você irá liberar apenas alguns sites, se faz necessário libera-los primeiro e depois fazer o bloqueio de todo restante

Espero ter ajudado.



3. RE: BLOQUEAR TUDO NA INTERNET E LIBERAR APENAS SITES ESPECÍFICOS

Rennan de Sá Lopes
rennanlopes

(usa Fedora)

Enviado em 28/11/2016 - 14:07h

Olá,

Amigo este arquivo precisa seguir uma ordem e lógica pra que funcione do jeito que você quer.
Dê um lida nesse Guia, e caso continue com dúvidas poste aqui novamente:

http://www.hardware.com.br/livros/servidores-linux/criando-uma-configuracao-basica.html


4. Re: BLOQUEAR TUDO NA INTERNET E LIBERAR APENAS SITES ESPECÍFICOS

Marcio Luciano
marcioluciano

(usa CentOS)

Enviado em 29/11/2016 - 11:37h

Bom vamos lá!
Para esse tipo de configuração funcionar, você terá que especificar algumas coisas de forma correta.

"acl localnet src 10.0.0.0/8 # RFC1918 possible internal network"

Apague todas as entradas referentes a ips de rede interna e coloque apenas a rede que será utilizada pelo Squid.

O squid funciona de forma sequencial, então para que você possa dar permissões de acesso apenas aos seus sites desejados sua configuração deveria ser assim:


# visible_hostname servidor_linux
visible_hostname srvlinux.local

http_port 3128

cache_effective_user squid # Usuário que vai rodar o processo do Squid
coredump_dir /usr/var/cache/squid

error_directory /usr/share/errors/pt-br/ #Direcionando as páginas para o idioma Português

acl localnet src 10.0.0.0/8 # RFC1918 possible internal network
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl localnet src fc00::/7 # RFC 4193 local private network range
acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines


acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT

####Coloque suas regras a partir daqui##########################
####Somente sites permitidos##################################
acl permitido url_regex "/usr/etc/permitidos"
http_access allow permitido
##############################################################
####Fim das regras##############################################


http_access deny CONNECT !SSL_ports
http_access deny !Safe_ports
http_access deny all


Ajustei a sua sequencia de configuração. Como você irá liberar apenas alguns sites, se faz necessário libera-los primeiro e depois fazer o bloqueio de todo restante

Espero ter ajudado.



Bom Dia!

Amigo, deu tudo certo com os comandos na sequência que você me passou, ficou perfeito, já agradeço demais pela ajuda!
Porém estou com uma dúvida aqui fora do assunto. Quando eu bloquear toda a minha internet e liberar apenas alguns sites, sabendo que os mesmos podem conter arquivos linkados à outros domínios na internet, como fotos, redirecionamentos para alguma aba, etc, o bloqueio irá impedir a exibição dos mesmos, não é? A pergunta é meio boba, mas é que vou testar o serviço com calma só no fim da semana, e caso isso se concretize terei que ir pensando em outro meio.
Mas enfim, obrigado mesmo, de coração! Abraços


5. Re: BLOQUEAR TUDO NA INTERNET E LIBERAR APENAS SITES ESPECÍFICOS [RESOLVIDO]

Marcio Luciano
marcioluciano

(usa CentOS)

Enviado em 29/11/2016 - 11:41h

rennanlopes escreveu:

Olá,

Amigo este arquivo precisa seguir uma ordem e lógica pra que funcione do jeito que você quer.
Dê um lida nesse Guia, e caso continue com dúvidas poste aqui novamente:

http://www.hardware.com.br/livros/servidores-linux/criando-uma-configuracao-basica.html


Bom dia amigo!

O colega abaixo já resolveu o problema, mas foi ótimo ver esse tópico pois me ajudará em posteriores configurações que vou precisar. Agradeço de coração! Abraços




6. Re: BLOQUEAR TUDO NA INTERNET E LIBERAR APENAS SITES ESPECÍFICOS [RESOLVIDO]

Renato Comes
rcomes

(usa Red Hat)

Enviado em 30/11/2016 - 19:46h


Bom Dia!

Amigo, deu tudo certo com os comandos na sequência que você me passou, ficou perfeito, já agradeço demais pela ajuda!
Porém estou com uma dúvida aqui fora do assunto. Quando eu bloquear toda a minha internet e liberar apenas alguns sites, sabendo que os mesmos podem conter arquivos linkados à outros domínios na internet, como fotos, redirecionamentos para alguma aba, etc, o bloqueio irá impedir a exibição dos mesmos, não é? A pergunta é meio boba, mas é que vou testar o serviço com calma só no fim da semana, e caso isso se concretize terei que ir pensando em outro meio.
Mas enfim, obrigado mesmo, de coração! Abraços


Boa tarde.
Referente aos links, sim eles deverão ser bloqueados.
Exite outras formas de liberar site por palavras ou domínios, a forma que você especificou é apenas por urls.
Para saber mais detalhes seria muito bom você dar uma lida com calma na documentação do squid.

Esse link que estou passando contem uma documentação em português bem fácil de entender sobre como configurar o squid.
https://dl.dropboxusercontent.com/u/7067916/squidnomicon.pdf

Se precisar de algo é só chamar.


7. Re: BLOQUEAR TUDO NA INTERNET E LIBERAR APENAS SITES ESPECÍFICOS [RESOLVIDO]

Marcio Luciano
marcioluciano

(usa CentOS)

Enviado em 30/11/2016 - 20:03h

rcomes escreveu:

Boa tarde.
Referente aos links, sim eles deverão ser bloqueados.
Exite outras formas de liberar site por palavras ou domínios, a forma que você especificou é apenas por urls.
Para saber mais detalhes seria muito bom você dar uma lida com calma na documentação do squid.

Esse link que estou passando contem uma documentação em português bem fácil de entender sobre como configurar o squid.
https://dl.dropboxusercontent.com/u/7067916/squidnomicon.pdf

Se precisar de algo é só chamar.


Com certeza irei estudar a documentação, e muito obrigado mais uma vez!







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts