I’m putting this up mostly so it gets archived and I can find it later, but since I’ve done the work, it may prove useful to other people.
Situation: Skype doesn’t work on Squidette’s machines, but it does on Squid’s machines.
Mission: Get Skype working everywhere in Squidnet.
Execution: A detailed and lengthy examination of the configurations of Squidette machines and Squid machines revealed a single substantial difference: Squid is on Windows 8.1, Squidette is on Windows 7 with all the service packs. This means that Squid and Squidette are both using the latest versions of Skype, but they are DIFFERENT. Squidette’s machines connect via WiFi, but firewall rules are evenly applied across the networks.
Skype configs on both machines are as similar as they can be, with the Advanced Skype settings limiting the ports to 80/443.
An examination of network traffic, however, was revealing. While Windows 8.1 Skype behaves nicely and actually works, Windows 7 Skype still tries to blast traffic on TCP and UDP on random high ports, all over Hell’s half-acre. Needless to say, my Fortiwifi puts its foot down with a resounding “DENY”.
The obvious solution, of course, would be for Skype to be written in all versions to behave politely, limiting its use of ports and protocols to a minimal, documented set. But since it’s a Windows program, there’s little chance of good, security-minded programming happening, so another approach was needed.
Research into which IP addresses serve as Skype endpoints revealed a short list. These were configured as exceptions in the Fortiwifi. The result was sporadic Skype connectivity on the Squidette machines.
A detailed review of network traffic revealed that the researched list was nowhere near complete. I had to go in and add a total of 40 networks as Skype endpoints. This list is not exhaustive either, but seems to be sufficient to give reasonably reliable Skype connectivity through a Fortigate/Fortiwifi firewall. There is no guarantee this list doesn’t change on a regular basis, but lets hope not:
Skype services also requires unfettered access on TCP ports 80, 443, and 1025-65535. It prefers to have Universal Plug and Pray in place (uPNP) to open return ports through the firewall automatically. In any network that is even slightly secure, that’s probably not allowed, so you must remember to set Skype to tunnel through 80/443 in its settings.
Service and Support: Squidette provided testing services. Skype help files and available web information were largely useless in this research. It seems clear that the makers of Skype have no intention of it being used in anything but a completely insecure network. This may have been acceptable in 1985, but in 2015 it is wholly unacceptable in a commercial product. It’s also unnecessary… there’s just no good reason to have coded it the way it is.
Aftermath: it seems interesting to me that given the way Skype works, there exist at least dozens, if not hundreds of Skype servers sitting in data centres that have to be open to inbound connections on arbitrary ports from anywhere in the internet. There is no possible way to secure them with a firewall with that restriction, so the entire security of the server rests on system administration skills and good luck. This strikes me as a terribly risky situation. I would not recommend that anyone send any data through Skype that is even slightly sensitive.
I could put up a proxy server, of course, and force all connections through that, thus allowing the firewall rule to open all those ports to a single address in my network. However, it should not be incumbent upon me to spend hundreds of dollars to accommodate Skype. As a product manufacturer, the Skype people (i.e. Microsoft) have a duty to their clients to make a safe product that is appropriately secure in the networking environment that exists in the 21st century. It is highly likely that Skype will be dropped here in Squidland at some point, in favour of some other tool that behaves more like a modern program.
Squidette, of course, could upgrade to Windows 8.1 and this problem would also seem to go away. This is a possibility, but probably not any time soon.
I hope that someone else finds this information useful when dealing with their own Skype issues.