Question

Reverse RDP

Asked by: RichardBateman

Hi,

I'm attempting to accomplish a reverse RDP session.  I've seen reports on the web that this can be done, but that it is harder when using XP SP2 or later as the thing you'd like to connect to.  The set up I have so far is this...

PC 1 - WinXP SP2 machine behind a firewall
PC 2 - Internet facing Linux box with SSH
PC 3 - Windows Vista machine that I'm connecting from

So on PC 2 I've got option 'GatewayPorts' set to 'yes' in /etc/ssh/sshd_config and restarted the openssh daemon.  Without it would just give PC 2 the ability to talk to PC 1 on 3389 over the tunnel, with this option turned on it gives PC 2 the ability to accept connections to it on 3389 externally and send them over the tunnel to PC 1.

On PC 1 I have grabbed the PuTTY Link program from... http://the.earth.li/~sgtatham/putty/latest/x86/plink.exe
And using a command like this...

plink -N -R 3389:localhost:3389 user@linuxbox.com

That basically says (in order) run plink, without any shell, forwarded a remote port locally, PC 2 should listen on 3389, and direct it's traffic to that hostname/IP (PC 1), and that port 3389 (on PC 1), and connect over SSH using that user, at that server address.

Now that works... to some extent.  If you use the "Remote Desktop Connection" program on PC 3 to connect to PC 2 you will get the log in prompt for PC 1.  Only problem is, when you've logged in with the right username/password (it knows if you haven't) then it pauses until it eventually times out.

Now I've heard this is perhaps a restriction added so that the terminal service running on PC 1 won't accept any connection that looks like it's coming from itself.  I've tried the following versions...

plink -N -R 3389:localhost:3389 user@linuxbox.com
plink -N -R 3389:127.0.0.1:3389 user@linuxbox.com
plink -N -R 3389:127.0.0.2:3389 user@linuxbox.com
^^ I'm told that used to work before SP2
plink -N -R 3389:192.168.1.2:3389 user@linuxbox.com
^^ Internal IP of PC 1
plink -N -R 3389:pc1:3389 user@linuxbox.com
^^ PC 1's hostname

And they all did the same...

Now I'd have thought if I did forward port 3389 though the firewall PC 1 is behind (this is a test, obviously if I could do this in the environment I mean to use this idea - it would be useless) and use the external IP that PC 1 is using for it's internet access that it would work!  But it doesn't...  So maybe it'll never work, or maybe PC 1 is clever enough to know it's external IP and that it's the same as localhost.

Does anyone have any other ideas on what I can do to get any form of a reverse RDP connection working?

Thanks

Steven

This Question has been solved and asker verified All Experts Exchange premium technology solutions are available to subscription members.

Subscribe now for full access to Experts Exchange and get

Instant Access to this Solution

  • Plus...
  • 30 Day FREE access, no risk, no obligation
  • Collaborate with the world's top tech experts
  • Unlimited access to our exclusive solution database
  • Never be left without tech help again

Subscribe Now

Trusted by hundreds of thousands everyday for fast, accurate and reliable tech support.

  • "The time we save is the biggest benefit of Experts Exchange to Warner Bros. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange." Mike Kapnisakis, Warner Bros.
  • "Our team likes having a resource that is more secure than just using Google and most experts using this service really know their stuff. It's nice to look here first versus using Google." Dayna Sellner, Lockheed Martin
  • "Anytime that I've been stumped with a problem, 9 out of 10 times Experts Exchange has either the accepted solution or an open discussion of the potential solution to the problem." Kenny Red, eBay Inc.

See what Experts Exchange can do for you.

Got a question?

We've got the answer.

Experts Exchange has been collecting answers to technology questions since 1996…3 million and counting! If you have a question, chances are we already have your answer.

Screenshot of Experts Exchange Knowledgebase

Need individual assistance?

Our experts are ready to help.

If you can't find the exact answer you're looking for, ask our exclusive community of 50,000 experts. You’ll get a personalized answer from a trusted professional.

Screenshot of Experts Exchange Knowledgebase

Want to learn from the best?

Read articles from industry experts.

Thousands of free tech tips, tricks, how-to’s and tutorials are available in our peer reviewed articles section. See for yourself how smart our experts are, no login required.

Screenshot of an Article

Working on a long term project?

Store your work and research.

Save solutions to your questions, answers you’ve discovered through searching plus helpful articles in your personal knowledgebase for easy future access.

Screenshot of Experts Exchange Knowledgebase

Access the answers to your technology questions today.

Subscribe Now

30-day free trial. Register in 60 seconds.

What Makes Experts Exchange Unique?

Members of the expert community talk about why the experience at Experts Exchange is different than what you will find anywhere else.

Trusted by the world's most respected brands.

image of each brand's logo

Faithfully serving IT professionals since 1996.

Experts Exchange Logo

Try it out and discover for yourself.

Subscribe Now

30-day free trial. Register in 60 seconds.

Related Solutions

  1. RDP over SSH?
    I currently have RDP set up at home, on its default 3389 on a Windows XP machine, and im forwarding 23 external to 3389 internal (where I work blocks many ports outgoing). I want to put the session in a secure tunnel so it cant be monitored. I think that I need to implement ...
  2. SSH <-Tunnel-> RDP / Using WRT54g DD-WRT v2…
    Couple of questions: 1. What are the advantages of using SSH to connect to a remote desktop over the net using XP's RDP (Remote Desktop) via a SSH tunnel? vs. Connecting directly to the remote PC via RDP (Remote Desktop) ONLY ??? --- 2. I understand RDP has encryption, so why...
  3. RDP through VPN tunnel
    I have a server at a remote site of which we have a Ipsec tunnel set up with them. I can RDP into any server there except for this new one we set up.. This is a server i set up a NAT statement to allow a remote vendor rdp directly to that box..i also added my house to the l...
  4. Vista RDP
    I am having problems with a new Laptop. Its is running Vista Business. - I canoot get it to RDP into another Vista Business Machine. - It CAN RDP into XP or Server 2003 - Other Vista machines can RDP into Vista machines. I have tried uninstalling SP1. Any help would be ap...
  5. RDP VPN ASA5505
    I have 2 ASA5505's connected via VPN, VPN is up and running I can ping from both ends. I'm trying to RDP back and forth for testing, what commands do I need to enter on both ASA's to accomplish this? Here's my config: ** I have configured this on ASA-2 and I'm trying to con...

Free Tech Articles

  1. WARNING: 5 Reasons why you should NEVER fix a computer for free.
    It is in our nature to love the puzzle. We are obsessed. The lot of us. We love puzzles. We love the challenge. We thrive on finding the answer. We hate disarray. It bothers us deep in our soul. W...
  2. SCCM OSD Basic troubleshooting
    SCCM 2007 OSD is a fantastic way to deploy operating systems, however, like most things SCCM issues can sometimes be difficult to resolve due to the sheer volume of logs to sift through and the dispe...
  3. Migrate Small Business Server 2003 to Exchange 2010 and Windows 2008 R2
    This guide is intended to provide step by step instructions on how to migrate from Small Business Server 2003 to Windows 2008 R2 with Exchange 2010. For this migration to work you will need the fo...
  4. Create a Win7 Gadget
    This article shows you how to create a simple "Gadget" -- a sort of mini-application supported by Windows 7 and Vista. Gadgets can be dropped anywhere on the desktop to provide instant information, ...
  5. Outlook continually prompting for username and password
    There have been a lot of questions recently regarding Outlook prompting for a username and password whilst using Exchange 2007. There are a few reasons why this would happen and I will try to cover t...
  6. Backup Exchange 2010 Information Store using Windows Backup
    There seems to be quite a lot of confusion around the ability to backup Exchange 2010 using the built in Windows Backup feature. This stems from the omission of this feature prior to Exchange 2007 s...

Cloud Class Webinars

  1. Avoiding Bugs in Microsoft Access
    Alison Balter takes and in-depth look at avoiding bugs in Access. In this webinar you will learn about using the immediate window to debug your applications, invoking the debugger, using breakpoints to troubleshoot, stepping through code, setting the next statement to execute, ...
  2. Top 10 Best New Features in Visio 2010
    Scott Helmers gives live demonstrations of the top 10 new features in Visio 2010. This webinar will teach you how to create compelling diagrams by adding shapes to the page with a single click, linking the shapes in a diagram to data in Excel (or SQL Server, or SharePoint), ...
  3. IT Consultant Business Secrets Revealed
    Michael Munger, Experts Exchange tech pro and IT consultant, pulls back the curtain on his very successful businesses and answers question on every IT consultant and business owner should know about. He shares secrets on what he did to solve the 5 most common problems in IT, ...
  4. Disaster Recovery and Business Continuity
    Quest CTO, Mike Billon, gives an overview of the steps involved in building a dunamic disaster recovery plan. Through case studies and an examination of software/hardware tooles for monitoring and testing, you'll gain a better understandin of where you are, where you want ...
  5. Organize Your Visio Diagrams with Containers and Lists
    Scott Helmers uses cross functional flowcharts, wireframe diagrams, data graphic legends and seating charts to teach you: how to ustilize all three new structured diagram components in Visio 2010, the best practices for organizeing shapes in previous version of Visio, how to organize ...
  6. How to Us Objects, Properties, Events and Methods in Microsoft Access
    Alison Dalter gives an in-depbth look at objects, properties, events and methods in Microsoft Access. In this webinar you will learn about using the object browser, referring to objects, working with properties and methods, working with object variables, understanding the ...

Join the Community

Give a Little. Get a Lot.

Join the community of experts here and help other tech pros by answering question in your area of expertise. You can earn FREE access to all Experts Exchange's premium features and resources.

Join the Community

Answers

 

by: netcmhPosted on 2009-08-20 at 07:50:30ID: 25143239

May I ask why you're going about this in this manner? What are you trying to accomplish, that isn't possible with the plethora of apps out there?

 

by: RichardBatemanPosted on 2009-08-20 at 15:18:51ID: 25147665

RDP is the quickest form of graphical remote access for windows, not to mention native.  And the situation is that no ports can be forwarded to PC 1.  Thus I am attempting a reverse RDP session.  Please accept that this is my goal as I have already weighed other options.  

 

by: RobWillPosted on 2009-08-23 at 15:45:27ID: 25164591

Why not create a VPN using Hamachi (free) which requires no port forwarding and then RDP in either direction through the VPN tunnel?
https://secure.logmein.com/products/hamachi/vpn.asp?lang=en

 

by: netcmhPosted on 2009-08-24 at 05:26:45ID: 25167580

Have you considered that you might be over working the situation?

You can install the Gbridge software on all your computers to remotely access your desktop and files as well as to sync or backup folders. All this travels through your virtual encrypted network, so everything is totally secure.

Access files shared by Gbridge on your or your friends' computers, from within a Web browser.
Access the regular Windows shared folders/drives between your computers.
Use remote desktop over an encrypted connection to your or your friends' computers.
Use AutoSync to synchronize folders between your computers and/or friends.
Use EasyBackup to automatically have a directory(s) backed up to another computer.

 

by: RichardBatemanPosted on 2009-08-24 at 07:52:42ID: 25168904

Hi,

Sorry but I can not have software installed on PC 1 beyond that which is already installed... something like plink is OK because it's just one file that doesn't require installation or administrative rights.

My solution is 50% working (since you do get a remote desktop connection backwards through a firewall... it's just that authentication isn't working)... so if anyone has any further tips on how to finish this solution I'd be greatly appreciative.

 

by: RobWillPosted on 2009-08-24 at 08:00:13ID: 25168981

This is starting to sound like a protected corporate network. Are you sure you have rights to do this? Experts-Exchange has very strict rules about us assisting people to violate company policies.
--Rob

 

by: RichardBatemanPosted on 2009-08-24 at 08:07:47ID: 25169080

Hi,

The condition that new software should not be installed is something I should have put in the original question.  It is a restriction that must be kept I'm afraid, this is not a corporate network - it isn't even a real scenario, it is just something I have seen done and would like to perfect.

 

by: RobWillPosted on 2009-08-24 at 08:17:49ID: 25169197

I guess my point would be normally there is no need as you would have rights to install the appropriate software or redirect ports in a situation where you manage a network.

 

by: RichardBatemanPosted on 2009-08-24 at 08:49:32ID: 25169531

Hi,

I've asked the question, the question is the question, and I still mean it the way it was written... I'm sorry but thats just the way it is.

 

by: lanboyoPosted on 2009-09-10 at 04:51:01ID: 25299240

What I have witten, I have written.

I would try the plink command I suggest second here before the MTU thing, cause it is easier.

So that screen blank thing is what I would get when I had a pmtu issue with vpn tunnels, or other network issues. I don't think that this is your problem, but if you don't have anything else in the fire...just for the sake of fun, perhaps set the mtu on pc 3 to 1200.

I used to have to do the 127.0.0.2 thing on a -L ssh tunnel because the client pc didn't want to allow RDC to its own loopback.  If you are getting a good password prompt and not a message about local connections then 127.0.0.1 seems to be working.

Perhaps there is still a localhost issue.

plink -N -R 3389:192.168.1.2:3389 user@linuxbox.com is telling the ssh to tunnel connections to port 3389 that get to the host box to 192.168.1.2 port 3389 on client 1s side.  It should probably be

plink -N -R 3389:PC1_IP_ADDRESS:3389 user@linuxbox.com


Where PC1_IP_ADDRESS is the interface ip address of the machine running plink, you can obtain it with the ipconfig command.

So... If that works, great. I assume that the -N option permits external hosts to connect to the linux box, default is to only allow connections from localhost... This will allow any device that can get to the linux box on port 3389 to rdp to pc1, if you get this working : - )




right after you run plink , run the command

netstat -tupan | grep 3389
 on pc 2

See if ssh is creating a listening port on 0.0.0.0 or on the local ip interface. If you see

tcp 127.0.0.1:3389  0.0.0.0:0  LISTENING

Also, try to connect to rdp on localhost or whatever IP you are listening from on the above from the linux box, if you have a gui, using the desktop connect command.

then the linux box is listening on localhost. Which means you wouldn't get a login prompt, which you have so whatever, and good luck.

 

by: RichardBatemanPosted on 2009-09-22 at 08:28:57ID: 25393936

Hi lanboyo,

Sorry it's taken a while to get back to you...
I think we are thinking the same and have said the same ultimately...

You've said to run...
plink -N -R 3389:PC1_IP_ADDRESS:3389 user@linuxbox.com
instead of...
plink -N -R 3389:192.168.1.2:3389 user@linuxbox.com

When they are the same thing, the 192.168.1.2 is the internal address for PC1 as shown on ipconfig.

The -N argument is just in there so a shell doesn't start (as it's not needed)...

Netstat does show it's working (I know it's working however as I get the login box remember so traffic is going via pc2 just fine) with this output...

tcp6       0      0 :::3389                 :::*                    LISTEN     26451/sshd: root
tcp6       0      0 ::ffff:212.50.210.:3389 ::ffff:210.20.220:51894 ESTABLISHED26451/sshd: root

If I try to connect to PC1 from PC2 using rdesktop (mstsc for linux) then I get the same problem.

Any other ideas?

 

by: RichardBatemanPosted on 2009-09-24 at 02:44:31ID: 25411423

OK Get this!

This set up works...

PC 1 - PC that I want to connect to behind firewall on 192.168.1.2
PC 2 - Internet facing server with hostname linuxbox.com
PC 3 - PC that I want to connect from
PC 4 - PC that will relay also behind firewall on 192.168.1.3

So...
PC 4 runs...
plink -N -R 3389:192.168.1.2:3389 user@linuxbox.com

And PC 3 can access PC 1 by connecting to PC 2 (PC 4 relays between PC 2 and PC 1)

So I think this proves that the terminal service running on Windows doesn't like connections coming in from localhost (be it the IP of the box, the hostname, 127.0.0.1, 127.0.0.2, or localhost).  And ultimately I've read that the Remote Desktop Client also doesn't like connecting to localhost.

Evil M$ limitations basically.

So to get this down to just two PC's...

PC 1 - PC that I want to connect to behind firewall on 192.168.1.2
PC 2 - PC that I want to connect from with port 22 opened externally on IP 123.123.123.123

If PC 2 is a Linux box then it would just allow GatewayPorts in the SSHd config and allow PC 1 to connect to it, and the linux rdesktop command allows connections to localhost anyway.

If PC 2 is a Windows box then it would have to run a windows SSH daemon with the GatewayPorts configuration and probably have to have some kind of IP loopback installed so you can use the Remote Desktop Client to connect to the loopback so it doesn't look like it's connecting to localhost.

And on PC 1 where you're running plink, you'd also have to have some kind of loopback installed so that the terminal service doesn't think the connection is incoming from localhost.

Does anyone know a simple loop back like system similar to what I'm describing.  I've did try making a new entry in the hosts file but that's not enough.

 

by: RichardBatemanPosted on 2009-09-27 at 10:39:32ID: 25434700

OK...

Since I now understand the limitations involved in getting this to work (and it has now become a question more about loopback devices) I will close this question.

I'm awarding point to lanboyo for at least understanding my question and responding to it... rather than trying convince me to do something else which would defeat the objective.

 

by: RichardBatemanPosted on 2009-09-27 at 10:41:20ID: 31634149

Not a fix... later learned that neither the RDP client or the RDP server will make or receive connections from or to localhost... thus either 4 machines are required, or 2 machines both with loopbacks.

 

by: lanboyoPosted on 2009-09-27 at 21:11:17ID: 25436683

I am sure this is possible using Plink.  I Just connected to an XP Pro Service Pack 3 box...


[PC1 ip 2.2.2.2]----- {corporate firewall}--------{my firewall}------[linux box ip 1.1.1.1]-----[pc2 ip 1.1.1.2]



pc1 - plink  -L 4000:1.1.1.2:3389 user@linuxbox.com
pc1 rdp to 127.0.0.2:4000, would work.

 127.0.0.1 or localhost would not work, but 127.0.0.2 would. I get different errors from trying to rdp to myself on 127.0.0.1 and 127.0.0.2. Make sure there are no firewall rules that would block connections ORIGINATING on 127.0.0.1 (which is the only real localhost) .





This also works ffor me, two XP Pro, Service pack 3 boxes.

pc1: plink -R 4000:2.2.2.2:3389 user@linuxbox.com
pc3: plink -L 4000:127.0.0.1:4000 user@linuxbox.com

And then put in 127.0.0.2:4000 in the RDP window on pc3

linux box pc2 is listening on 127.0.0.1:4000, and forwards this along to pc1 thru the initial ssh.

On my linux box, there is no external port opened for the plink command. If pc3 didn't do it's ssh, the linux box wouldn't allow the connection to 1.1.1.1 be forwarded to pc1...

The command netstat -tan | grep LISTENING

Has this line only. (as concerns the discussion :-) )

tcp        0      0 127.0.0.1:4000          0.0.0.0:*               LISTEN

Since this is within the linux box and not externally available, it can not be connected to by pc 1. There is a command option (-g) in openssh that will malke a local connection listen on 0.0.0.0, but I don't see this in plink.


Well anyway, thanks for the points and good luck.




 

by: RichardBatemanPosted on 2009-10-02 at 08:19:51ID: 25478757

Hey lanboyo,

For your first bit, I understand what your saying (took me a while lol)... but the Linux server isn't on the same network as the target PC... it's in a data centre and the target PC is a desktop... so it can't route it like that so simply... but at least I understand -L a bit better now.

For the second bit (after you said... "This also works ffor me, two XP Pro, Service pack 3 boxes.") could you clarify which machines are pc1,2,3 etc in a nice diagram?  I think your on to something with using plink at both ends but I'm still not quite understanding it completely.

 

by: lanboyoPosted on 2009-10-03 at 15:18:37ID: 25487366

I was using your box numbers. Essentially the box you want to run the remote desktop TO runs

pc1: plink -R 4000:2.2.2.2:3389 user@linuxbox.com

Where 2.2.2.2 is the external ethernet interface IP address of the box. 127.0.0.2 may or may not work as well.

The PC that you want to run the remote desktom FROM runs

plink -L 4000:127.0.0.1:4000 user@linuxbox.com


And then the you try to connect to remote desktop on 127.0.0.2:4000

This should forward the connection to the linux box ( -L 4000:127.0.0.1:4000 ) where it should then go into the other ssh connection ( -R 4000:2.2.2.2:3389 ) and end up on the remote pc as a connection to the ethernet interface on port 3389.

 

by: RichardBatemanPosted on 2009-10-04 at 14:58:52ID: 25491233

Can you clarify "the external ethernet interface IP address of the box"... if by this you mean the internet facing IP with the traffic forwarded through the NAT... then doesn't this just defeat the entire point?

However if you mean the IP assigned to the IP then it doesn't work, nor does 127.0.0.2.

Can you tell me if your idea is just that, an idea... or have you practically put it to use and tested it?

 

by: RichardBatemanPosted on 2009-10-05 at 01:21:08ID: 25493265

Right OK going over it again... I think I get it, it's just another wording of the original idea.

The desktop their connecting TO isn't on the same network as the linux box, so I don't think this can be done.
Because your telling the linux box to target the IP of the desktop you want to connect TO and since there is a firewall between them... your back with the original problem.

 

by: lanboyoPosted on 2009-10-05 at 05:32:25ID: 25494549

The -R direcive tells the remote box (the linux box) to listen on a tcp port and to tunnel connections to the ssh source thru the ssh session, making them connect.from the ssh source to the ip or host and port specified withe rest of the command. The linux box does not need to know where the destination of the tunneled connections. Is, the ssh source has to handle that part. The -L directive is the opposite, it makes the remote box handle connecting to the specified host:port .

My example works no matter where the linux box is, either network or a third network altogether, as long as both plink connections can reach the same linux box.  

 

by: RichardBatemanPosted on 2009-10-05 at 23:47:25ID: 25502320

Your example as I understand it is this...

         2.2.2.2                                 123.123.123.123                                 1.1.1.1
TSS --> PC1 --> Firewall <-- Internet <-- PC2 --> Internet --> Firewall --> PC3 --> TSC
      3389  4000                                  4000  4000                                  4000  4000

TSS listens on PC1 for connections on port 3389
PC1 tunnels anything incoming to PC2 on 4000 to its own IP on port 3389
via... plink -R 4000:2.2.2.2:3389 user@pc2
PC2 accepts anything incoming on port 4000 to be connected to on port 4000
via... sshd_config have this "GatewayPorts yes" line in
PC3 takes anything incoming on 4000 on PC2 and sends it to 127.0.0.1 on port 4000
via... plink -L 4000:127.0.0.1:4000 user@pc2
TSC makes a connection on PC3 to 127.0.0.2 on port 4000

Previously you have renumbered PC3 to PC2, and also previously you've put PC2 and PC3 on the same subnet, thus I was thinking that you had PC1 and PC2 confused and thus my confusion!!!

So anyway PC3 runs mstsc.exe and connects to 127.0.0.2:4000 and you get... absolutely nothing... can't make a connection.
But connect to 127.0.0.1:4000 and you get the login prompt but logging in freezes it (which is as far as I had already got before posting this question -- only I didn't need 2 plink commands).

I still believe TSS refuses to accept connections appearing to come FROM localhost, just as TSC hates to (but at least can be twisted to) make connections TO localhost.

Have you tested your solution all the way?  i.e. has it successfully logged in?

 

by: lanboyoPosted on 2009-10-07 at 05:57:53ID: 25514814

I am oddly obsessed with this issue. I think that you would prefer not to have the gateway ports enabled, this makes pc2 listen on 0.0.0.0:4000, this enables anyone in the world to connect to pc1 by going to 123.123.123.123:4000 . The two plinks make it so the connection is made on 127.0.0.1:4000 of pc2.

However I think the fact that you initially see the the login means that the port forwarding is working....

maybe try a smaller screen resolution with

MSTSC /v:127.0.0.1:4000  /w:800 /h:600

 

by: lanboyoPosted on 2009-10-07 at 05:59:04ID: 25514825

Yes, I can log in on my machines with the commands I used.

20120131-EE-VQP-002

3 Ways to Join

30-Day Free Trial

The Experts

98% positive feedback on 31,087 answers since March 2000. angeliii is a Microsoft Most Valuable Professional for his work with MS SQL Server & Develoment.

He has also proven his knowledge of Visual Basic Programming, PHP Scripting and Oracle Databases.

The Experts

97% positive feedback on 10,752 answers since July 2000. lrmoore has more than 18 years experience in the networking industry.

The six-time Mircosoft MVPs specialties include firewalls, virtual private networking, and network management.

Testimonials

"...and excellent source for support... Kind of like having your very own IT dept." Electriciansnet

Testimonials

"I was apprehensive at signing up at first. However... it has already made my life as an IT administrator much easier." JaCrews

Testimonials

"WOW! You guys have great, active, and knowledgeable people on here." moore50

Business Clients

Business Clients

In the Press

"If you’ve got a question... Experts Exchange can supply an answer.”

In the Press

"...an invaluable aid for both IT professionals and those who require tech support."

In the Press

"where IT professionals provide quick answers on just about any topic"

Business Account Plans

Loading Advertisement...