Uncategorized

HOW TO : Troubleshoot Zscaler client

I recently encountered some connectivity issues while working from home and trying to access some corporate resources. Notes for myself on some tips our infosec team shared to troubleshoot the Zscaler client since all the traffic to the interweb gets routed through it.

  • http://speedtest.zscaler.com/perf
    • Gives you an overview of which Zscaler pop you are connecting to and access speed to the Internet via that pop.
  • http://127.0.0.1:9000/?ztest?q=@YOUR-CORPORATE-DOMAIN (ex: google.com)
    • This provides a detailed report, including:
      • DNS Reachability Test: Confirms if DNS is resolving correctly.
      • UDP Connectivity Test: Checks if UDP packets can pass through.
      • TraceRoute to Zscaler: Shows the path your data takes to reach Zscaler.
      • Throttling Test: Identifies any speed drops.
      • Download/Upload Bandwidth: Measures the speed at which data transfers.
  • https://ip.zscaler.com
    • A quick utility to check where and how your traffic is routed through the Zscaler network. Very similar to the perf test data, but doesn’t let you run a performance test.

HOW TO : Search which package contains a filename

If you are using a Linux system that uses yum for package management (like Fedora, Centos, RHEL), you can use the following command to find out which package contains a file. This is useful when you want to figure out which package to install. For example, dig (DNS utility) doesn’t come pre-installed on the system. And running “sudo yum install dig” doesn’t do anything.

sudo yum whatprovides '*/dig'

This returns

Loaded plugins: fastestmirror
 Loading mirror speeds from cached hostfile
 32:bind-utils-9.8.2-0.47.rc1.el6.x86_64 : Utilities for querying DNS name servers
 Repo : base
 Matched from:
 Filename : /usr/bin/dig

breaking down the command options

whatprovides : Is used to find out which package provides some feature or file. Just use a specific name or a file-glob-syntax wildcards to list the packages available or installed that provide that feature or file.

HOW TO : count lines in windows command line

Say you are using netstat to checl all established network connections on a windows machine (confirmed to work on windows 7+ and windows server 2008+) and want to find out how many connections you have, you can use

netstat -an | find "ESTABLISHED" | find /v /c ""

breaking down the command string

netstat -an : Uses netstat command to display all connections and listening ports (-a) and displays them in numerical form instead of resolving DNS or using common names (-n)

| : piping (passing) output of one command to the next one

find “ESTABLISHED” : Uses find command to filter out to just lines that contain the string “ESTABLISHED”‘

find /c /v “” : exclude blank lines (/v “”) and count the number of remaining lines (/c)

If you wanted to something similar in linux, you can use

netstat -an | grep "ESTABLISHED" | wc -l

HOW TO : Use grep to search for content at end of line

If you want to search for a pattern at the end of a line, you can use

tail -f logfile | grep -v "0$"

breaking down the commands

tail -f : standard tail command. Continuous output to console as the file grows (or until it ends)

grep -v : -v command forces grep to show content that doesn’t match pattern

0$ : This regex is specifically looking for a 0 at the end of the line, which is denoted by $.