bloquear/permitir skype

1. bloquear/permitir skype

Patrick Brandao
patrickbrandao

(usa Slackware)

Enviado em 06/10/2005 - 12:50h

Pessoal, aguem sabe um meio pelo iptables de identificar o skype? Quero criar tabelas, uma com permissão para o skype e outra sem permissão, e liberar pelo ip
1 - diretoria: usa skype, msn, etc..
2 - o resto (a peãozada): http(squid), smtp e pop

Como fazer eu sei, falta só bloquear o skype pra peãozada aqui!


  


2. Re: bloquear/permitir skype

Ivan de oliveira Santos
melphos

(usa Debian)

Enviado em 07/10/2005 - 13:56h

Retirado da lista Ant-hackers:
Skype - Como bloquear

Ola senhores,

Não existe uma forma clara para bloqueio do skype.
Ele tem um algoritmo de funcionamento muito interessante.
Ao contrário de outros programas de mensagens como o ICQ que basta bloquear
as redes da AOL, o msn que basta bloquear a rede da Microsoft, fora a porta
80, o Google talk bloqueando a rede talk.google e assim por diante.

O Skype tem uma lista interna em cada cliente com diversos IPS para serem
conectados que servem como servidor, essa lista é dinâmica e a cada nova
conexão com o skype ela é atualizida. Então não é possível bloquear ele de
uma forma definitiva.

O que sabemos?
As mensagens do Skype são enviadas com o protocolo UDP.
Não tenho como mandar uma receita de bolo com regras de como bloquear o
skype, pois cada rede tem suas particularidades.

Mas a técnica consiste no seguinte:
marcar todos os pacotes UDP originários da rede interna que passam pelo
gateway, esses são de grande possibilidade de ser do skype, e depois de
digamos 3 ou 4 conexões UDP da mesma mq interna, pode bloquear as próximas
conexões dessa mq.

O que pode ser feito com os usuários após bloquear a mq, e redirecionar as
suas conexões web(porta 80 por exemplo) para uma pg que contenha uma
informação que a mq dele está bloqueada pois tentou conectar o skype.

Vou expor mais ou mesmo como deve ser feito com o iptables para usar essa
lógica:

Inicialmente libere as conexões UDP para os servidores internos da tua rede,
para que o firewall não trancar teus servers, você também pode liberar
algumas portas, como DNS e outras que você usa que utilizam do protocolo UDP
para funcionamento.

iptables -A PREROUTING -p udp -s 192.168.1.2 <http://192.168.1.2> -t nat -j
ACCEPT iptables -A PREROUTING -p udp -s 192.168.1.3 <http://192.168.1.3> -t
nat -j ACCEPT

o iptables possui suporte a marcar os pacotes que são do seu interesse,
assim, vamos marcar todos os pacotes UDP na tabela de NAT com alguma string
qualquer

iptables -t nat -A PREROUTING -p udp -j LOG --log-prefix "skype_udp "

Essa opção de LOG vai fazer com que
o iptables jogue para o syslog as conexões marcadas, com IP de origem,
destino e portas.

Bom, agora é necessário você ter um script que leia essas mensagens no
syslog a cada intervalo de tempo.
Um script por exemplo que seja disparado com o crontab e leia o dmesg a cada
intervalo de 5 minutos por exemplo.
Se ouver digamos mais de 3 conexões da mesma mq com pacotes marcados, inclua
o IP dessa máquina em um arquivo texto.
Usarei o /etc/rc.d/ips-bloqueados para exemplificar

Após cada inclusão nesse arquivo será necessário que o script recarregue
tuas regras de firewall, nas quais existirá um regra semelhante a essa:

IPS=$(cat /etc/rc.d/ips-bloqueados | cut -d# -f 1) for u in $IPS do
/usr/sbin/iptables -A PREROUTING -j MARK -t mangle --set-mark 666 -s $u done

Aqui jogo todas as conexões das mqs bloqueadas para a tabela mangle com uma
marca (666).

Agora tenho uma outra regra para bloquear todos os pacotes que tentarem sair
pelo gateway com essa marca.

Para não gerar problemas para o pessoal do suporte, com usuários ligando o
tempo todo sobre a mq não funcionar na internet, redireciono suas conexões
web para uma página web com a informação de que a mq dele foi bloqueada por
estar possivelmente usando o skype.
Vale lembrar que regras de iptables funcionam da seguinte forma: primeiro
libera o que pode e depois tranca

#permite pacotes com marca 666 permite acesso servidor com a pg iptables -A
PREROUTING -t nat -m mark --mark 666 -p tcp --dport 80 -j ACCEPT -d
191.168.1.1 <http://191.168.1.1>

#quando pacote marcado tentar conectar a web, #redireciona a conexão para a
porta 80 da mq local iptables -A PREROUTING -t nat -m mark --mark 666 -p tcp
--dport 80 -j REDIRECT --to-ports 81

#ignora todos os outros
iptables -A PREROUTING -t nat -m mark --mark 666 -j DROP

Vale lembrar também que falsos positivos podem acontecer, mas foi a única
forma que consegui bloquear o skype.

Não to falando sobre uso de proxy ou cliente web para acesso ao skype,
apenas os clientes de skype locais.

Não basta copiar e colar essas regras no teu firewall pois podem causar
problemas, tu tem de entender o funcionamento e adaptar a lógica a tua rede.

Para quem se interessa sobre iptables,
aconselho uma lista
http://br.groups.yahoo.com/group/iptables-br/
é para iniciantes, mas sempre se tira proveito de algo.

Um cordial abraço
Clébio


3. Re: bloquear/permitir skype

Ivan de oliveira Santos
melphos

(usa Debian)

Enviado em 17/10/2005 - 15:14h


Este é mais explicativo
www.triforsec.com.br/index.php?option=com_content&task=view&id=23&Itemid=25


4. que bom saber desta dificuldade !!

juliano bergamaski
julianobe

(usa Ubuntu)

Enviado em 27/12/2007 - 08:39h

eu recebi a missão de bloquear o skype para rede interna apenas !!
as pessoas devem poder conversar com gente de fora !!
mas nao podem conversar com gente da rede local !!
hahahha
to [*****] !!


5. Re: bloquear/permitir skype

Raphael Silva
rapharps

(usa Fedora)

Enviado em 27/12/2007 - 10:44h

Puts cara.. essa missão de bloquear internamente e liberar externamente é meio complicada viu... pode até ser que vc consiga. mas vai bater muito a cabeça antes... tipo.. uma solução para isso que eu logo pensaria seria todos da rede interna excluírem o pessoal da rede interna dos seus contatos..


6. Re: bloquear/permitir skype

Eduardo Renó
Yrrak

(usa Debian)

Enviado em 28/12/2007 - 08:58h

Realmente... Sua missão não vai ser nada fácil, eu também optaria por excluir os contatos internos. E para manter a regra funcionando realizaria auditorias periodicas para verificar se todos estão obedecendo a determinação.


7. layer7

Eduardo Bueno de Oliveira
predator

(usa Debian)

Enviado em 28/12/2007 - 15:58h

Caro patickbrandão

È possivel fazer isso que voce quer utilizando o modulo layer7 do iptables, as regras ficariam assim:

#libera por ip
iptables -A FORWARD -s ip_que_pode_acessar -m layer7 --l7proto skypeout -j ACCEPT
iptables -A FORWARD -d ip_que_pode_acessar -m layer7 --l7proto skypeout -j ACCEPT

iptables -A FORWARD -s ip_que_pode_acessar -m layer7 --l7proto skypetoskype -j ACCEPT
iptables -A FORWARD -d ip_que_pode_acessar -m layer7 --l7proto skypetoskype -j ACCEPT

#Bloqueia para toda a rede
iptables -A FORWARD -m layer7 --l7proto skypeout -j DROP
iptables -A FORWARD -m layer7 --l7proto skypetoskype -j DROP

para isso funcionar voce dever recompilar o seu kernel e iptables...

aqui no VOL voce encontra ótimos artigos sobre como fazer...

abraços


8. Re: bloquear/permitir skype

Felipe Tomaz
felipetomaz

(usa Outra)

Enviado em 29/07/2008 - 02:10h

Olá pessoal, teria como obrigar o skype a utilizar apenas o protocolo TCP? Ou bloquear o UDP deixando que ele ainda possa utilizar somente o TCP? Pergunto isso, pois notei que na minha rede estou tendo um problema muito grande com perca de pacotes olhando as informações avançadas do skype (que você pode ter acesso ativando-as em Ferramentas/Opções/Avançado/Conexão daí ativa-se os dois últimos checkBox), quando se faz uma ligação para alguém, só é preciso deixar o mouse parado um pouco onde fica o video da pessoa ou sobre algum ponto da janela que aparecerá um telinha com informações avançadas sobre a chamada, que incluem perca de pacotes, tipo de conexão (as que notei foram, UDP e Direct_TCP que presumo ser o mesmo que TCP somente). Bem, dependendo da ligação o skype "escolhe" o tipo de protocolo, que pode inclusive ser UDP para saída e Direct_TCP para entrada. Quando isso ocorre, eu ouço perfeitamente (pois estou recebendo segundo TCP), mas a outra pessoa não entende, corta tudo (pois estou enviando segundo UDP). A minha pergunta é se posso obrigar o skype a sempre utilizar TCP para conexões tanto de entrada como de saída, assim poderei falar normalmente. Isso eu já comprovei, pois em alguns momentos de "sorte", ele conecta tanto pra saída como pra entrada em Direct_TCP e a conexão fica perfeita. Obrigado a todos.


9. Re: bloquear/permitir skype

Douglas Prodocimo
super_douglas

(usa Suse)

Enviado em 30/09/2008 - 09:49h

Faz tempinho que não mexono iptables.
Mas se a gente desseumaolhada no conteudo dos pacotes que o skype usa, tavelz tenha um string ou alguma coisa do tipo que permita identificar o pacote.

Uma boa ideia era pegar uma maquina para teste e usar o ethreal para dar uma olhada nos pacotes.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts