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