Harweb relies on having an Agent installed on the machine you wish to check-out to. The Harweb server needs to open a connection to this server on whatever port number you have configured it to run on. This is likely to be rejected by a firewall somewhere.
What do you want to do here? Do you want to allow the user to check-out code to their machine so that they can work on it remotely, or do you want to allow users to check-out code onto a server within the office?
If it is the former, then you are probably better to use Workbench and setup an SSH server which can then be used to tunnel connections. This is a technique we use regularly and works well. You need to forward quite a number of ports (namely 5101 and the entire range that you have defined for direct connections). With decent authentication on the SSH server, this is reasonably secure.
If you want to do the latter, then you might consider using the Remote Transport Option. This allows you to check-out/in over standard internet protocols (FTP, FTPS and SSH/SFTP). It also has the benefit that all connections come from the CASCM server and not from the client. This is much easier to handle in terms of firewalls. There is no integration with Harweb as it is driven from Workbench, but you can get rid of the Agents.
Cheers R.