Monitoring Tor resource usage

A while back I wrote about how I setup a small yet effective Tor network proxy server titled “My Quick Tor Socks / Web Proxy“.

After running this for sometime now I wanted to get some real time status, but more than that I wanted it to look cool. And this brings me to what I recently found.

And that my friends is Arm:

The anonymizing relay monitor (arm) is a CLI status monitor for Tor. This functions much like top does for system usage, providing real time statistics for:

  • resource usage (bandwidth, cpu, and memory usage)
  • general relaying information (nickname, fingerprint, flags, or/dir/controlports)
  • event log with optional regex filtering and deduplication
  • connections correlated against tor’s consensus data (ip, connection types, relay details, etc)
  • torrc configuration file with syntax highlighting and validation

This is what I was looking for 100%, and even better most of the attributes of arm can be adjusted via a configuration file. For additional information check out the project page here:

Wow “jermal’ that’s cool, how do I set this up.

It’s very simple just follow the steps below:

  • SSH in or go to your Console
  • Once logged in do an apt-get update
  • Then apt-get install tor-arm -y
  • That’s it, once installed your ready

To run arm all you need to do is type: arm

happy monitoring folks.
*you can even press ‘n’ for a new Tor identity at anytime*

My Quick TOR Socks / Web Proxy

I originally preformed similar steps to setup a raspberry pi for this reason, later using a very tiny Ubuntu server install.

  1. Using a clean Ubuntu / or / Debian installation (recommended, not necessary) add the following repositories to /etc/apt/sources.list: deb <DISTRIBUTION> main
  2. to figure out the name of your distribution. A quick command to run is lsb_release –c (Ubuntu) or cat /etc/debian_version (Debian)
  3. Next add the gpg key that was used to sign the TOR packages: gpg –keyserver –recv 886DDD89
  4. Then, type sudo apt-get install
  5. Next type sudo apt-get update
  6. Next type apt-get install tor
  7. Once completed TOR will be installed and listening on port 9050 on of the host. You will need to modify the following file /etc/tor/torrc and add your servers address and SOCKS Port to listen on.
  8. Once completed you can restart the tor service and test remotely with a machine on your network; assign a web browser the SOCKS proxy info for your server and test with: if all working you will be notified that you are on the TOR network.

But what if you don’t want to use SOCKS or an application / device doesn’t have a configuration for SOCKS proxy?  Well I encounter this same thing and there is a fix for that.

Using privoxy you can proxy your data via the computers current network, a VPN tunnel and in our case a SOCKS proxy.

  1. Back onyour server type  sudo apt-get update , then sudo apt-get install privoxy
  2. Once installed you will need to edit the following file: /etc/privoxy/config
  3. You need to:
  4. add a listen address and port for your client machines to use.
  5. you need to setup a forward-socks5 connection, something like: forward-socks5  /
  6. Restart the privoxy server and your good to test. As we did above, setup your web browser with the proxy settings and check the following address all should be working and you have an always on TOR Network proxy.

For more info on TOR:


How to Root Galaxy S4!

This is a video by our buddy Zedomax on rooting the Galaxy S4. This method is only for root access, its not a video on installing custom recovery, so please enjoy and remember to subscribe to his YouTube Channel.


This method works on all Qualcomm Galaxy S4 running Android 4.2.2 including:
AT&T SGH-i337, T-Mobile SGH-M919, Sprint SPH-L720, Verizon, US Cellular, Telus, .
Rogers, etc…

For GT-i9500 octa-core S4, see other root method here:…

Download and Step-by-Step tutorial here:…

For rooting Galaxy S4 on Linux/Ubuntu, please see this video instead:…
For rooting Galaxy S4 on Mac OSX, please see this video instead:…

For more awesome info on rooting the Galaxy S4 stop over at

Using netcat to print header info from web browsers

You can identify what information is sent from the browser to the remote web server using a Linux tool called netcat (nc). Netcat is often referred to as a “Swiss-army knife for TCP/IP”. Its list of features includes port scanning, transferring files, and port listening, and it can be used as a backdoor.

Simply run netcat in listing mode on your desired port. Example: nc -l 8080. You can then point to address of this system http://ip_address:port and netcat will display the values received.

The following are some example of the output:

Google Chrome – Version 27.0.1453.116m:

GET / HTTP/1.1
Connection: keep-alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8


Internet Explorer 10 – Version 10.0.9200.16599

GET / HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Accept-Language: en-US
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)
Accept-Encoding: gzip, deflate
DNT: 1
Connection: keep-alive


Firefox – Version 21.0

GET / HTTP/1.1
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive


Google Chrome (Android) – Version 27.0.1453.90

GET / HTTP/1.1
Connection: keep-alive
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
User-Agent: Mozilla/5.0 (Linux; Android 4.2.2; SAMSUNG-SGH-I337 Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.90 Mobile Safari/537.36
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8


Using SSH as VPN Solution in Linux

Looking for a quick simple way to have VPN access to your network or simply to secure your connection when you are on a remote network you don’t complete truest such as a public hot-spot.

And while there are many solutions I have one which is simple to use.

It’s called ‘sshuttle’ and all you need a remote server that you have remote SSH access to and a bit of software on your Linux computer.

To install ‘sshuttle’ on Debian releases you simple apt-get install sshuttle

To use sshuttle you just use the following command:

sshuttle -r user@remote_host –dns

This will initiate a SSH VPN connection and send all your traffic security from the network your on out of the remote network your trust.

Simple and easy to setup and use.


Note: You do require to have access to a remote SSH server. Setting up an openSSH server is simple to do in Linux and even on a Windows host. — Search Google, you’ll find plenty of info, and perhaps it may even take you back to here if I get around to writing up something.  Best of luck to ya.

sudo and “unable to resolve host hostname” error message

Working on a clean install of Ubuntu Desktop 13.04. I changed the hostname of the system /etc/hostname and later noticed I got the following error message “unable to resolve host hostname” when ever I did an sudo command (example: sudo -i).

To resolved this I changed the following:

I used nano to edit /etc/hosts and changed host entry to to my new host name. Closed the file and no more error message.


Using DD for disk cloning

Using one of the built in commands in Linux I decided to clone a drive. Unlike in Windows this does not require the use or purchase of a tool or software.

The command dd is used to make a block-level copy of the hard drive. The command can be used to clone one drive to another or to make a full disk image of a drive for later use. Using the following command: ‘dd if=/dev/sdf of=/tmp/disk.img’

This will clone the disk sdf to a disk image file named disk.img
You can also use the following: ‘dd if=/dev/sdf of=/tmp/disk.img bs=16384 conv=notrunc,noerror’

Syntax Reference:

if= the Input file, read the source drive
of= the output file or file to write to
bs= blocksize to set. In the above I set this to 16384 because the larger blocksize transfer faster than the default
conv= conversion converts the file according to the arguments applied, where notrunc means do not truncate the file, and noerror means do not stop on any read errors

I hope this simple breakdown helps you.


like us on facebook –

Finding the Failed Hard Drive – Linux Software RAID

After discovering my software raid system had suffered from a failed disk drive it was time to locate it and replace. But the question was “Which physical disk drive failed”. I don’t have a fancy blinking light or one that changes to amber or red when something is wrong.

So to locate the drive I need to gather information such as the serial number of the drive itself so that I can match it up with the physical disk. I was able to do this using the ‘lshw’ command:

Running the command # lshw -class disk gave me the following for example:

description: ATA Disk
product: WDC WD10EVDS-63U
vendor: Western Digital
physical id: 0
bus info: scsi@2:0.0.0
logical name: /dev/sdb
version: 01.0
serial: WD-WCAV58689449
size: 931GiB (1TB)
capabilities: partitioned partitioned:dos
configuration: ansiversion=5 signature=1eb72643

From these results I gather the information I am looking for: logical name, serial number, and vendor (if you have different vendor type disks in your software raid) I matched the logical name with that of the failed device.


Tip: Linux maps its hard drives using UDEV, and doesn’t guarantee a drive that is mounted at sdb today, will be mounted as sdb tomorrow. So be aware of this before pulling drives.

How to Find Hardware Devices in Linux with lshw

I needed to know the exact serial number of a failed disk drive in a software RAID set. I used the lshw tool to list out the drives on my system so that I could identify the disk that had failed.

This tool will list the the hardware you are running and a good way to inventory what’s under the hood without opening the box.

lshw is available on most package management systems.

If you use APT (Debian-based Linux: Ubuntu for example), run the following command in terminal: sudo apt-get install lshw

If you use Yum (Red Hat, Fedora, CentOS, Yellow Dog Linux, etc), run the following command in terminal: sudo yum install lshw


Some Basic Use of Nmap

Nmap (“Network Mapper”) is a free and open source utility for network discovery and security auditing. I along with many other systems and network administrators also find it to be a useful tool for the right job. Nmap can be installed and used in Windows, and mostly common in Linux distributions such as Debian and the well known Ubuntu.

You can get the Windows install form along with the Linux versions.  In Linux (Debian) I simple sudo apt-get install nmap -y and the rest is done in a few seconds.

Now that you have Nmap, what can you do? Here are some examples I use every so often:

~# nmap – gives me info about (Hostname resolves to 11 IPs..)

~# nmap – scans my network and return info on machines and service ports listening

~# nmap -sP – attempts to detect if a host is up or down

~# nmap -PN – attempts to detect if a host is up or down (no pings sent)

~# nmap -sT – port scan using TCP

~# nmap -sU – port scan using UDP

~# nmap -O – attempts to identify the remote OS, returns TCP/IP fingerprint

And I could go on, but lets just end these example here and I’m sure you’ll find others.

Run … run, you clever boy … and remember. – Clara Oswald