Mostrando postagens com marcador proxy. Mostrar todas as postagens
Mostrando postagens com marcador proxy. Mostrar todas as postagens

quarta-feira, 18 de janeiro de 2012

Como Fazer para Bloquear o UltraSurf, Solução Definitiva (iptables + fail2ban)

Por Rodrigo Luis Silva em 16 de janeiro de 2012

Fazendo a revisão do firewall de um cliente eu consegui bloquear o acesso as redes BitTorrent e ao terrível UltraSurf.
Vou descrever como fiz para bloquear o UltraSurf.

Em um primeiro momento eu acreditei que seria fácil bloquear o UltraSurf, porém o uso de proxy transparente obriga que a porta 443 (HTTPS) fique liberada. Já o BitTorrent foi bloqueado sem dificuldades.

Com o uso do tcpdump eu identifiquei que todo o acesso do UltraSurf sai pela porta 443, logo a solução mais óbvia seria bloqueá-la, porém não é possível. Bloquear o IP ou range de IP do servidor de destino seria outra opção.

Quando fiz o bloqueio pelo range de IP, descobri que o UltraSurf tenta uma centena de IPs diferentes até conseguir o acesso que ele precisa, e certamente devem existir novos IPs a cada nova versão.

Pesquisei pelo Google e não encontrei nenhuma forma eficiente de bloquear o UltraSurf, foi então que tive pensei em criar uma regra no iptables e fazer log dos acesso ao IP do UltraSurf para depois criar um daemon para ler esse log e fazer um bloqueio em tempo real.

Íntegra em Dicas-L
Leia Mais ►

segunda-feira, 7 de novembro de 2011

Fazendo hierarquia proxy/Squid

Hierarquia é um recurso muito interessante, principalmente para redes grandes, onde o tráfego de informação é muito intenso e apenas um proxy poderia ser muito pouco, então com este recurso você acaba por desatolar o servidor proxy/Squid de ter que fazer todo o trabalho, passando a tarefa para mais de um e tendo assim o melhor desempenho do proxy/Squid.

O proxy/Squid por si já é um servidor muito poderoso, não é à toa que é o mais usado, ele consegue desempenhar sozinho tarefas que seriam muito pesadas para outros servidores e até mesmo funções de outros programas, como a resolução de nomes (que é função do DNS fazer), isso é só para se ter uma idéia do poder do proxy/Squid, então se for escolher um proxy, tem que ser o Squid.

Opções para fazer "hierarquia proxy"

Primeiro habilite a porta ICP em ambos os servidores (o padrão é 3130):

icp_port [número da porta icp]

Agora coloque a opção que colocará nossa hierarquia de pé:

cache_peer

Especifica outros caches na hierarquia. A opção cache_peer é dividida em 5 campos, e sua saída é a seguinte.

cache_peer x.x.x.x parent 3128 3130 no-digest no-netbd-exchange

Onde:
  • x.x.x.x - o IP ou nome da máquina que será pesquisada.
  • parent - o relacionamento com o outro servidor (veja bibliografia).
  • 3128 - a porta HTTP.
  • 3130 - a porta ICP (que é quem faz as requisições).
  • o restante são as opções (que podem conter zero ou uma palavra chave). (veja bibliografia).

Há também uma opção chamada hierarchy_stoplist, comente ela. Se esta opção estiver ativada, o proxy/Squid não conseguirá fazer a hierarquia de cache.

Uma lista de palavras que, encontradas na URL, farão com que o objeto seja manipulado automaticamente por esse cache:

hierarchy_stoplist cgi-bin ?

A ACL aqui é só para colocarmos junto com a opção "no_cache". Depois faça o seguinte, por padrão o Squid cria uma ACL chamada "all". Esta ACL engloba toda sua rede, se ela não existir crie uma:

acl all(pode ser outro nome) src 0.0.0.0/0.0.0.0

Com esta opção você cria uma ACL, onde se encontrado não será feito o cache:

no_cache deny all (tem que ser o mesmo nome de nossa acl "all")

Depois dê permissão para ela com a opção http_access. Esta opção permitirá que nossa ACL seja manipulada pelo Squid:

http_access allow all


Como Tudo Ficaria

Você terá dois servidores proxy/Squid, por exemplo, um com o IP 1.1.1.1 e outro com o IP 1.1.1.2. Suponha que o servidor 1 (1.1.1.1) escutará o 2 (1.1.1.2), então a saída no log do servidor 2 (/var/log/squid/access.log) deve ser mais ou menos assim:

"1086316383.840 3 1.1.1.1 TCP_DENIED/403 1417 GET http://www.nome de alguma pag.com.br/checker.php - NONE/- text/html
1086316407.347 0 1.1.1.1 UDP_MISS/000 71 ICP_QUERY http://www.nome de alguma pag.com.br/index.php?task=logout - NONE/- -
1086316407.353 3 1.1.1.1 TCP_DENIED/403 1415 GET http://www.nome de alguma pag.com.br/index.php? - NONE/- text/html
1086316407.358 5 1.1.1.1 TCP_DENIED/403 1415 GET http://www.nome de alguma pag.com.br/index.php? - NONE/- text/html"

Isso quer dizer que o servidor 1 está escutando o servidor 2. Vejam na linha depois do endereço IP a mensagem "ICP_QUERY".

Bem, no arquivo squid.conf, a ordem das configurações sairia mais ou menos assim:

icp_port 3130

#hierarchy_stoplist cgi-bin ? #<-- linha comentada.
cache_peer 1.1.1.2 parent 3128 3130 no-digest no-netdb-exchange
acl all src 0.0.0.0/0.0.0.0
no_cache deny all

http_access allow all

Bibliografia: Linuxman, Under-linux 

Esse conteúdo está disponibilizado sobre a licença de uso - Tiu enhavo estas disponebla sur uza permesilo LiPE
Leia Mais ►

quinta-feira, 20 de outubro de 2011

Criando delay pools (Proxy/Squid)

Neste tutorial você vai aprender a usar as delay polls, que são opções do proxy/Squid para se poder fazer controle de banda. Eu o fiz porque não achava nada realmente interessante em português. Espero que gostem.

Configurando as delay pools

Neste tutorial vamos ver como se usa as delay pools. Delay pools é uma opção usada no Squid para fazer limite de banda. Neste tutorial vamos nos concentrar apenas em delay pools, delay class, delay access e delay parameters.

Este tutorial já leva em conta que você já tenha algum conhecimento em Squid, sendo porém alusivo também a quem está aprendendo a usá-lo.

Neste tutorial vamos apresentar como exemplo duas delay pools, seguindo assim uma linha muita usada com delay pools, vamos neste tutorial, usar as delay pools em nossa rede interna e para internet.

Leve em conta que temos duas acl's criadas com os nomes de extensões e interno. Essas acl's serão usadas em nosso tutorial.

O que significam as opções?

acl extensoes url_regex -i .*

Esta acl que criamos está pegando tudo que é relacionado a ponto, ou seja, inclusive extensões html, jpeg, jpg, gif, php, png, htm, etc, que são usadas em páginas de internet.

Se você quer bloquear tudo menos estas extensões, faça assim:

acl extensoes url_regex -i .* !.html !.htm !.php !.jpeg !.jpg !.png !.gif

Bloqueamos tudo exceto as seguintes extensões. Mas se o seu interesse é bloquear arquivos como mp3, avi, faça o seguinte:

acl extensoes url_regex -i .exe .mp3 .vqf .tar.gz .gz .rpm .zip .rar .avi .mpeg .mpe .mpg .qt .ram .rm .iso .raw .wav .mov

Você também pode criá-las em um arquivo:

acl extensoes url_regex -i "caminho do arquivo"

Coloque as extensões dentro deste arquivo (mas apenas uma extensão por linha).

acl interno url_regex -i 192.168.1.0

delay_pools

Esta opção especifica o número de delay pools que você vai possuir, por exemplo, se você possui 2 delay pools, este número deve ser igual a 2, se você tem 3 delay pools, este número deve ser igual a 3 e assim por diante.

# delay_pools (número de delay pools)

delay_pools 2 #isto significa que nós possuímos 2 delay's pools.

# Como dito acima, o número de delay pools que vamos criar.


#delay_class:

# Define a classe de cada delay pool. Deve haver exatamente uma classe de delay para cada delay pool.

# delay_class (número da delay pool) (número da classe da delay pool)

delay_class 1 2 #isto significa que a delay pool 1 é uma delay class 2

delay_class 2 2 #isto significa que a delay pool 2 é uma delay class 2

# Como visto acima, nós temos duas delay pools e duas delay class,

# e também podemos ver que nossas delay class são todas classe 2.

# Não esqueça, o primeiro número é sua delay pool, e o segundo é a sua delay class.

# delay_access:

# Determina em qual delay pool uma requisição será encaixada. A primeira a combinar será utilizada, por isso verifique com #cuidado suas acls.

# delay_access (número da delay poll) allow|deny nome da acl

delay_access 1 allow palavras #estamos direcionando nossa delay pool 1(que é uma classe 2) para a acl palavras.

delay_access 2 allow interno #fazendo o mesmo que acima, porém para a acl interno(que também é uma classe 2).

# delay_parameters:

# Define os parâmetros para uma delay pool. Cada delay pool tem um número de alocação de tráfego associado.

# delay_parameters (número da delay pool) agregado (delay_class 1)

# delay_parameters (número da delay pool) agregado individual (delay_class 2)

# delay_parameters (número da delay pool) agregado network individual (delay_class 3)

# Aqui vou mostrar apenas a saída da delay class 3 pois está engloba todas a opções.

# delay_parameters 1 -1/-1 24000/24000 1000/1000

# vamos ao significado:

# -1/-1:

# Valor AGREGADO: aqui especificamos quanto toda a banda vai utilizar, no caso -1/-1 significa

# valor ilimitado, por isso, se você quer limitar sua banda nunca coloque -1/-1.

# 24000/24000:

# Valor NETWORK(REDE):aqui especificamos quanto cada uma de nossas redes irá poder utilizar, no caso algo em torno de 23Kb/s.

# 1000/1000:

# Valor INDIVIDUAL:aqui especificamos quanto cada um de nossos usuários poderá utilizar, no caso menos de um 1K/s.

# Cada valor tem duas áreas, uma antes da barra e outra depois. Vamos lá.

# RESTORE:O antes da barra.

# Especifica quantos bits poderá ser trafegado por segundo.

# MAX:E lógico, o depois da barra.

# Especifica quantos bits poderá trafegar no total.

# Delay pools sempre trabalham com bits, não se esqueça.

delay_parameters 1 -1/-1 500/1000 #leia acima para entender.

delay_parameters 2 -1/-1 15000/25000 #leia acima para entender.

O resultado

# TUDO FICARIA ASSIM.

acl extensoes url_regex -i .exe .mp3 .vqf .tar.gz .gz .rpm .zip .rar .avi .mpeg .mpe .mpg .qt .ram .rm .iso .raw .wav .mov
acl interno url_regex -i 192.168.1.0
delay_pools 2
delay_class 1 2
delay_parameters 1 -1/-1 500/1000
delay_access 1 allow palavras
delay_class 2 2
delay_parameters 2 -1/-1 15000/25000
delay_access 2 allow interno

Esse conteúdo está disponibilizado sobre a licença de uso - Tiu enhavo estas disponebla sur uza permesilo LiPE
Leia Mais ►

Postagens populares