This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Facetime with UTM 9.3

Hi

Another post from me I'm afraid, as I'm still finding my way around UTM.

I have a UTM deployment for home, and I'm trying to get facetime working for my Apple devices. When I make a facetime call, I get absolutely nothing back apart from a failure, eventually. Here's what I've done/tried so far:



When I look at the web protection list, I don't see any traffic when I try to make a facetime call. I've also checked the Network Protection log in Logging and Reporting, and I see attempts to connect to services using ports that have been defined in the Facetime service group that's used in the firewall rule. If I switch my apple device to another network and check the log from there (all be it a basic log on a home router) it says that its connecting to static.ess.apple.com on port 80. Even though I've already added apple.com as an allowed site in the internet filter, I added this second address, but it still doesn't work. 

'm possibly just missing something silly, but I really can't spot what it is at the moment. Is there some kind of additional config necessary for facetime?

Thanks for your help.


This thread was automatically locked due to age.
  • I have this same issue too that I need to start looking for answers on. If anyone has already been down this road, it would be appreciated.
  • I don't create any special bypass rules in the proxy for facetime. All you need is the following:
    1. Create Service definitions under Definitions & Users -->Service Definitions
       
        a. Facetime1 Source 1024:65535 Destination UDP 16384:16387
        b. Facetime2 Source 1024:65535 Destination UDP 16393:16403 (I know it says 16402 in apple's article but uses 16403 also atleast with ios8)
        c. Facetime3 Source 1024:65535 Destination UDP 3478:3497
        d. Facetime4 Source 1024:65535 Destination TCP 5223
        e. OPTIONAL Create a group Facetime and add all the definitions created above to that group.


    2. Create Firewall rules under Network Protection --> Firewall
    Source: Iphone IP  
    Service: Facetime or Facetime1 Facetime2 Facetime3 Facetime4 if you didn't create the optional group. 
    Service : HTTP
    Service : HTTPS
    Service : NTP
    Destination : Internet IPv4 or ANY

    NTP is not needed for facetime but I let iphone get the time from apple servers while behind the firewall. Also, I like using 1024:65535 as source ports for service definitions. You can use 1:65535 if you like.

    This should enable facetime.
    P.S Couple of screenshots attached for reference, but they are not as described above since I use groups for source and destination.
  • Hi

    Thanks for coming back to me on this. I tried this, but it still hasn't worked for me, so I've took some screenshots and uploaded. I'll also explain what I've done with regards to the way the apple and android device access the network.  

    I've posted issues about device access a little while back (here: https://community.sophos.com/products/unified-threat-management/astaroorg/f/55/t/46681) and that's resulted in me just letting them pass over to the default policy without authentication, and modifying the filter applied to that. Just adding this in case it's that setup that is playing a part in blocking traffic now.

    Pictures I've uploaded are:

    FT1 - List of all firewall rules
    FT2 - Service definitions used in the rules
    FT3 - List of filters
    FT4 - Default policy(that the Apple device is using)
    FT5 - Filters in the default policy

    Thanks again for all the help so far.
  • Rule 2 is not needed. Rule 3 and Rule 7 seem redundant since rule 3 covers most of rule 7.

     I use transparent web proxy for everything, so our setup is fairly similar.

    You don't have proxy server defined on your apple devices do you? 

    Turn off web proxy temporarily. Go to network protection -->firewall and open live log and try connecting to facetime. Does it work? Do you seen any blocks (red entries)?
  • Hi Billybob

    Cleared out the unnecessary rule, but when I tested with the web filter off I didn't see anything in the firewall log from my iPod's IP address. I turned web filtering back on and saw this in the web filter log:

    2015:02:07-14:32:38 192 httpproxy[5432]: id="0002" severity="info" sys="SecureWeb" sub="http" name="web request blocked" action="block" method="CONNECT" srcip="192.168.1.126" dstip="" user="" ad_domain="" statuscode="502" cached="0" profile="REF_DefaultHTTPProfile (Default Web Filter Profile)" filteraction="REF_HttCffAllow (Adults Internet Filter)" size="0" request="0xda14e800" url="courier.push.apple.com/" referer="" error="Host not found" authtime="0" dnstime="2" cattime="118" avscantime="0" fullreqtime="366706" device="0" auth="0" ua="" exceptions="av,fileextension" 

    2015:02:07-14:32:51 192 httpproxy[5432]: id="0002" severity="info" sys="SecureWeb" sub="http" name="web request blocked" action="block" method="CONNECT" srcip="192.168.1.238" dstip="" user="" ad_domain="" statuscode="502" cached="0" profile="REF_DefaultHTTPProfile (Default Web Filter Profile)" filteraction="REF_HttCffAllow (Adults Internet Filter)" size="0" request="0xda160000" url="courier.push.apple.com/" referer="" error="Host not found" authtime="0" dnstime="124" cattime="123" avscantime="0" fullreqtime="256924" device="0" auth="0" ua="" exceptions="av,fileextension" 

    2015:02:07-14:33:09 192 httpproxy[5432]: id="0002" severity="info" sys="SecureWeb" sub="http" name="web request blocked" action="block" method="CONNECT" srcip="192.168.1.126" dstip="" user="" ad_domain="" statuscode="502" cached="0" profile="REF_DefaultHTTPProfile (Default Web Filter Profile)" filteraction="REF_HttCffAllow (Adults Internet Filter)" size="0" request="0xa165000" url="courier.push.apple.com/" referer="" error="Host not found" authtime="0" dnstime="2" cattime="119" avscantime="0" fullreqtime="261477" device="0" auth="0" ua="" exceptions="av,fileextension" 

    Seems that the target host can't be contacted, but I'm not sure why, because the device gets out to the rest of the web just fine. Does this log give anything away that I'm not spotting?

    Thanks for your help.
  • Oh by the way, I changed the filter it's using to the Adult's filter (where everything is allowed, just to test), which is why that's the filter showing in the log.
  • Ok, got a little bit further with this. Firstly I spotted I didn't have DNS forwarders set up (I thought that I'd set the external to pick up a DHCP address and with that the forwarders supplied from the router issuing the address), but I hadn't spotted that I'd left a static address in place with no DNS forwarders defined. Schoolboy error! Anyway, that's resolved now and the log looks healthier (see below) but I'm still getting a 'host not found' error for 'courier.push.apple.com', and I'm at a bit of a loss on that one. I've done a DNS lookup and that seems to be a CNAME for courier-push-apple.com.akadns.net for which no DNS A record appears to exist. Anyone an ideas? 

    Here's an extract of the log now:

    2015:02:07-14:42:33 192 httpproxy[5432]: id="0001" severity="info" sys="SecureWeb" sub="http" name="http access" action="pass" method="CONNECT" srcip="192.168.1.238" dstip="17.154.239.34" user="" ad_domain="" statuscode="200" cached="0" profile="REF_DefaultHTTPProfile (Default Web Filter Profile)" filteraction="REF_HttCffAllow (Adults Internet Filter)" size="58" request="0xda1be000" url="17.154.239.34/" referer="" error="" authtime="0" dnstime="1" cattime="125" avscantime="0" fullreqtime="337901" device="0" auth="0" ua="" exceptions="" category="105" reputation="trusted" categoryname="Business" 

    2015:02:07-14:42:33 192 httpproxy[5432]: id="0001" severity="info" sys="SecureWeb" sub="http" name="http access" action="pass" method="GET" srcip="192.168.1.238" dstip="172.228.122.146" user="" ad_domain="" statuscode="200" cached="4" profile="REF_DefaultHTTPProfile (Default Web Filter Profile)" filteraction="REF_HttCffAllow (Adults Internet Filter)" size="13" request="0xda3d5000" url="static.ess.apple.com/.../plain" 

    2015:02:07-14:42:33 192 httpproxy[5432]: id="0001" severity="info" sys="SecureWeb" sub="http" name="http access" action="pass" method="GET" srcip="192.168.1.238" dstip="172.228.122.146" user="" ad_domain="" statuscode="200" cached="4" profile="REF_DefaultHTTPProfile (Default Web Filter Profile)" filteraction="REF_HttCffAllow (Adults Internet Filter)" size="13" request="0xda283800" url="static.ess.apple.com/.../plain" 

    2015:02:07-14:42:33 192 httpproxy[5432]: id="0001" severity="info" sys="SecureWeb" sub="http" name="http access" action="pass" method="GET" srcip="192.168.1.238" dstip="172.228.122.146" user="" ad_domain="" statuscode="200" cached="4" profile="REF_DefaultHTTPProfile (Default Web Filter Profile)" filteraction="REF_HttCffAllow (Adults Internet Filter)" size="13" request="0x9cc9000" url="static.ess.apple.com/.../plain" 

    2015:02:07-14:42:33 192 httpproxy[5432]: id="0001" severity="info" sys="SecureWeb" sub="http" name="http access" action="pass" method="GET" srcip="192.168.1.238" dstip="172.228.122.146" user="" ad_domain="" statuscode="200" cached="4" profile="REF_DefaultHTTPProfile (Default Web Filter Profile)" filteraction="REF_HttCffAllow (Adults Internet Filter)" size="13" request="0xda001800" url="static.ess.apple.com/.../plain" 

    2015:02:07-14:42:34 192 httpproxy[5432]: id="0001" severity="info" sys="SecureWeb" sub="http" name="http access" action="pass" method="CONNECT" srcip="192.168.1.238" dstip="17.154.239.34" user="" ad_domain="" statuscode="200" cached="0" profile="REF_DefaultHTTPProfile (Default Web Filter Profile)" filteraction="REF_HttCffAllow (Adults Internet Filter)" size="58" request="0xda1c1800" url="17.154.239.34/" referer="" error="" authtime="0" dnstime="1" cattime="112" avscantime="0" fullreqtime="337164" device="0" auth="0" ua="" exceptions="" category="105" reputation="trusted" categoryname="Business" 

    2015:02:07-14:42:34 192 httpproxy[5432]: id="0001" severity="info" sys="SecureWeb" sub="http" name="http access" action="pass" method="CONNECT" srcip="192.168.1.238" dstip="17.154.239.34" user="" ad_domain="" statuscode="200" cached="0" profile="REF_DefaultHTTPProfile (Default Web Filter Profile)" filteraction="REF_HttCffAllow (Adults Internet Filter)" size="58" request="0xda1ea000" url="17.154.239.34/" referer="" error="" authtime="0" dnstime="1" cattime="73" avscantime="0" fullreqtime="337717" device="0" auth="0" ua="" exceptions="" category="105" reputation="trusted" categoryname="Business" 

    2015:02:07-14:42:34 192 httpproxy[5432]: id="0001" severity="info" sys="SecureWeb" sub="http" name="http access" action="pass" method="CONNECT" srcip="192.168.1.238" dstip="17.154.239.34" user="" ad_domain="" statuscode="200" cached="0" profile="REF_DefaultHTTPProfile (Default Web Filter Profile)" filteraction="REF_HttCffAllow (Adults Internet Filter)" size="58" request="0xfb92800" url="17.154.239.34/" referer="" error="" authtime="0" dnstime="1" cattime="77" avscantime="0" fullreqtime="337588" device="0" auth="0" ua="" exceptions="" category="105" reputation="trusted" categoryname="Business" 

    2015:02:07-14:42:34 192 httpproxy[5432]: id="0001" severity="info" sys="SecureWeb" sub="http" name="http access" action="pass" method="CONNECT" srcip="192.168.1.238" dstip="17.154.239.34" user="" ad_domain="" statuscode="200" cached="0" profile="REF_DefaultHTTPProfile (Default Web Filter Profile)" filteraction="REF_HttCffAllow (Adults Internet Filter)" size="58" request="0xd9fe5000" url="17.154.239.34/" referer="" error="" authtime="0" dnstime="1" cattime="73" avscantime="0" fullreqtime="337492" device="0" auth="0" ua="" exceptions="" category="105" reputation="trusted" categoryname="Business" 

    2015:02:07-14:42:34 192 httpproxy[5432]: id="0001" severity="info" sys="SecureWeb" sub="http" name="http access" action="pass" method="CONNECT" srcip="192.168.1.238" dstip="17.154.239.34" user="" ad_domain="" statuscode="200" cached="0" profile="REF_DefaultHTTPProfile (Default Web Filter Profile)" filteraction="REF_HttCffAllow (Adults Internet Filter)" size="58" request="0xfbf0800" url="17.154.239.34/" referer="" error="" authtime="0" dnstime="1" cattime="72" avscantime="0" fullreqtime="343302" device="0" auth="0" ua="" exceptions="" category="105" reputation="trusted" categoryname="Business" 

    2015:02:07-14:42:34 192 httpproxy[5432]: id="0001" severity="info" sys="SecureWeb" sub="http" name="http access" action="pass" method="CONNECT" srcip="192.168.1.238" dstip="17.154.239.34" user="" ad_domain="" statuscode="200" cached="0" profile="REF_DefaultHTTPProfile (Default Web Filter Profile)" filteraction="REF_HttCffAllow (Adults Internet Filter)" size="58" request="0xd9ffe000" url="17.154.239.34/" referer="" error="" authtime="0" dnstime="1" cattime="83" avscantime="0" fullreqtime="347994" device="0" auth="0" ua="" exceptions="" category="105" reputation="trusted" categoryname="Business" 

    2015:02:07-14:42:57 192 httpproxy[5432]: id="0002" severity="info" sys="SecureWeb" sub="http" name="web request blocked" action="block" method="CONNECT" srcip="192.168.1.238" dstip="" user="" ad_domain="" statuscode="502" cached="0" profile="REF_DefaultHTTPProfile (Default Web Filter Profile)" filteraction="REF_HttCffAllow (Adults Internet Filter)" size="0" request="0xda062800" url="courier.push.apple.com/" referer="" error="Host not found" authtime="0" dnstime="3" cattime="127" avscantime="0" fullreqtime="240647" device="0" auth="0" ua="" exceptions="av,fileextension" 

    2015:02:07-14:43:57 192 httpproxy[5432]: id="0002" severity="info" sys="SecureWeb" sub="http" name="web request blocked" action="block" method="CONNECT" srcip="192.168.1.238" dstip="" user="" ad_domain="" statuscode="502" cached="0" profile="REF_DefaultHTTPProfile (Default Web Filter Profile)" filteraction="REF_HttCffAllow (Adults Internet Filter)" size="0" request="0xda064000" url="courier.push.apple.com/" referer="" error="Host not found" authtime="0" dnstime="127527" cattime="129" avscantime="0" fullreqtime="415639" device="0" auth="0" ua="" exceptions="av,fileextension"

    The log above refers to an iPod Touch trying to use facetime with an IP of 192.168.1.238. This is the log from the firewall taken when trying to use my iPhone to facetime the iPod

    14:49:38 Default DROP TCP   217.12.15.152 : 443  → 192.168.1.238 : 51886 [RST] len=40 ttl=64 tos=0x00 srcmac=00:21:86:19:fe:66 
     
    14:49:38 Default DROP TCP   217.12.15.152 : 443  → 192.168.1.238 : 51886 [RST] len=40 ttl=64 tos=0x00 srcmac=00:21:86:19:fe:66 
     
    14:49:38 Default DROP TCP   217.12.15.152 : 443  → 192.168.1.238 : 51886 [RST] len=40 ttl=64 tos=0x00 srcmac=00:21:86:19:fe:66 
     
    14:49:38 Default DROP TCP   217.12.15.152 : 443  → 192.168.1.238 : 51886 [RST] len=40 ttl=64 tos=0x00 srcmac=00:21:86:19:fe:66 

    14:49:39 Default DROP TCP   217.12.15.152 : 443  → 192.168.1.238 : 51886 [RST] len=40 ttl=64 tos=0x00 srcmac=00:21:86:19:fe:66 

    14:49:39 Default DROP TCP   217.12.15.152 : 443  → 192.168.1.238 : 51886 [RST] len=40 ttl=64 tos=0x00 srcmac=00:21:86:19:fe:66 
     
    14:49:41 Default DROP TCP   217.12.15.152 : 443  → 192.168.1.238 : 51886 [RST] len=40 ttl=64 tos=0x00 srcmac=00:21:86:19:fe:66 
     
    14:49:43 Default DROP TCP   217.12.15.152 : 443  → 192.168.1.238 : 51886 [RST] len=40 ttl=64 tos=0x00 srcmac=00:21:86:19:fe:66 
     
    14:49:45 Default DROP TCP   217.12.15.152 : 443  → 192.168.1.238 : 51886 [RST] len=40 ttl=64 tos=0x00 srcmac=00:21:86:19:fe:66 
     
    14:49:47 Default DROP TCP   217.12.15.152 : 443 → 192.168.1.238 : 51886 [RST] len=40 ttl=64 tos=0x00 srcmac=00:21:86:19:fe:66 
     
    14:49:50 Default DROP TCP   217.12.15.152 : 443  → 192.168.1.238 : 51886 [RST] len=40 ttl=64 tos=0x00 srcmac=00:21:86:19:fe:66 
     
    14:49:52 Default DROP TCP   217.12.15.152 : 443  → 192.168.1.238 : 51886 [RST] len=40 ttl=64 tos=0x00 srcmac=00:21:86:19:fe:66
  • The RST packets are normal.

    The DNS forwarder usually picks up the forwarders assigned by the ISP and you don't have to add anything manually. Most of us usually do add open dns or google DNS servers. Some people follow https://community.sophos.com/products/unified-threat-management/astaroorg/f/53/t/32566 .

    Just checking out the obvious but you do have a masquerade rule under NAT to masquerade internal network to external right?
  • Hi Billybob,

    No, not using any masquerade rules at all. The setup I have for doing this is that I have two routers on the same subnet (an Asus Dark Knight router and UTM) plugged into my Virgin Media router, so when I want to test I enable DHCP on one and disable it on the other. So while getting DHCP from UTM, and the device being issued with the gateway address of UTM it doesn't work, however just now I turned off DHCP on UTM and re-enabled it on my Asus router, and disconnected/reconnected the apple device, and facetime & messages started working straight away. So it looks like it is something in UTM blocking it, I just have to figure out what.

    By the way, I have set proxy auto configuration in Web Protection > Filtering Options, and here is the config I set:

    //-----------------------------------------------------------------------
     function FindProxyForURL(url, host)
     {
     url=url.toLowerCase();
     host=host.toLowerCase();
     //The following URLs will not be proxied
     if ( isPlainHostName(host)
     || dnsDomainIs(host, "localhost")
     || isInNet(host, "192.168.1.0", "255.255.255.0")
     || isInNet(host, "127.0.0.0", "255.255.255.0")
     )
     return "DIRECT" ;
     else
     return "PROXY 192.168.1.2:8080; DIRECT"; }
     //-----------------------------------------------------------------------


    Is it possible that this is somehow playing a part in the problems? The conten is something I just pulled from the Internet and changed to accommodate my own setup.

    Thanks again
  • Hi Billybob

    I re-read your message about masquerading rules and realised I'd gotten your meaning wrong first time, because the way you said it, it implies that the masquerading rule is necessary? Anyway, here's where my knowledge gets sketchy, so I created a masquerading rule by guesswork, and the config is as per the attached screenshot. So with that rule in place, it works!

    Can I ask whether there are any security implications by having a masquerading rule like this in place?

    Thank you so much for your help!