This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
I found the following question and the response from a mock exam. I am not too sure on how a port number could be the answer as anyway that has been the port number to which one would have connected even from office? Any explanations..pls.?
167 You are at home trying to work on an application you're developing for your company. You want to log on to your machine at work and develop code for your application however you are having some trouble connecting directly to the application (running on port 1099). What is the most likely reason that you can't connect?
A A typing error in the connection details.
B Your company is filtering traffic based upon IP address
C Traffic is being filtered based upon the port number requested.
D You need to update the security manager that is being used with the application to allow external connections.
E There is a bug in your program stopping anyone from connecting whether internal or external.
Choice C is correct.
As you are able to connect to your desktop PC you know that your company doesn't filter traffic based upon IP address. Therefore the most likely reason you can't connect is because you are requesting a different port and the firewall is filtering that traffic.Although it's possible that a typing error in the connection details may be stopping you connecting it isn't the most likely reason. So choice A is incorrect. You wouldn't be able to connect to your desktop PC if your company was filtering traffic based upon IP address. So choice B is incorrect. When you connect to your application from within the office you are still connecting via a socket. So you would not be able to connect at work either if there was a problem with the security manager. Hence choice D is incorrect. Although choice E is possible it is not the most likely reason.
I understand that there is some ambiguity, but we can definetely defend the answers given as regards port filtering. Let me start this way: Port filtering is the task that most people seem to think of when they think of firewalls.There are 65,535 separate TCP and another 65,535 UDP ports that can be used for communications.
A common hacking technique is to do a port scan against an IP address. A port scan is a technique that provides the hacker with a list of the ports that are open. Once the hacker has such a list, they will sometimes try to use protocols (such as Telnet) over ports that are normally used for other purposes as a way of gaining entry into the system.
This is where port filtering comes into play. Port filtering ensures that nothing can pass through an open port except for the protocol that the Administrator has chosen to allow. For example, if port filtering were applied to TCP port 21, then FTP communications would be allowed, but no other types of communications would be allowed over that port.
Port filtering can also deny access to a packet originating from an IP address that the administrator has chosen to block. Port filtering works by examining the packet�s header and looking at things such as the source address, destination address, port number, etc.
After this inital idea of port filtering, we can safely assume, that there is no guarantee even if you have an access to a given port you will be able to run your app in that port since the company firewall might be allowing only some specific kind of packet header on that port.
However you might argue with me, what if you want to do tunneling ???..at this I give up.The company firewall will not be able to prevent that, in that case we have to depend on A.