Aqui estão as minhas regras do iptables para permitir que o Squid se conecte a um servidor web:
# Accept internally-requested input
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#http,https traffic only through Squid - nobody user
iptables -A OUTPUT -p tcp -m multiport --dports 80,443 \
-m state -m owner --uid-owner nobody --state NEW,ESTABLISHED -j ACCEPT
O próprio Squid está escutando a porta 3128 no host local. Nas opções do skype eu disse para usar o proxy do squid e usar a porta 58215 para conexões de entrada. Eu adicionei estas linhas para o skype:
#skype incoming connections
iptables -A INPUT -p udp --dport 58215 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --dport 58215 -m state --state NEW,ESTABLISHED -j ACCEPT
Mas não funcionou.
Então desliguei o firewall:
iptables -P OUTPUT ACCEPT
iptables -P INPUT ACCEPT
O Skype começou a funcionar. Então, eu olhei, quais portas ele usa:
# netstat -a -ptcp | grep skype
tcp 0 0 *:58215 *:* LISTEN 2944/skype
tcp 0 0 pc.home.org:56369 157.55.130.140:40031 ESTABLISHED 2944/skype
tcp 0 0 pc.home.org:54316 db3msgr5011307.ga:https ESTABLISHED 2944/skype
tcp 0 0 pc.home.org:34778 193.120.199.14:12350 ESTABLISHED 2944/skype
# netstat -a -pudp | grep skype
udp 0 0 *:58215 *:* 2944/skype
udp 0 0 localhost:42865 *:* 2944/skype
Mas quando defino uma política restritiva:
iptables -P OUTPUT DROP
iptables -P INPUT DROP
O Skype pára de funcionar. O que devo fazer para que funcione?