Introduction
A proxy server is a server (a computer system or an application program) that acts as an intermediary for requests from clients seeking resources from other servers. A client connects to the proxy server, requesting some service, such as a file, connection, web page, or other resource, available from a different server. The proxy server evaluates the request according to its filtering rules. A proxy is a web page that provides Internet users with the ability to browse web sites that may be blocked by a content filter, such as WebSense or SmartFilter. By making use of the proxy as the portal to the blocked site, it is possible to circumvent the work of whatever content filter is in place. At the same time, the proxy site also helps to mask the visit to the site, so that there is less evidence that the content filter was not successful in preventing the visit.
How does a proxy server work?
A proxy server shares one internet connection with all the computers on your local network or it is a computer that offers a computer network service to allow clients to make indirect network connections to other network services. So basically a proxy (proxy server) is a server that acts as mediator between the client (the computer of a user) and server (the computer on the other ends of network connection on which the information requested by the user appears for example web server site.) When clients request data from an Internet resource, traffic goes from your web browser/application first through the proxy before it reaches the requested sources and back through the proxy then the proxy will transmit the data to you.
A proxy server sits between a client application, such as a Web browser, and a real server. It intercepts all requests to the real server to see if it can fulfill the requests itself. If not, it forwards the request to the real server.
Literature survey
The different types of Proxy Servers
There are many different types of Proxy Servers out there. Depending on the purpose you can get Proxy Servers to route any of these common protocols, and many more:
1) FTP Proxy Server:
Relays and caches FTP Traffic.
2) HTTP Proxy Server:
A one way request to retrieve Web Pages.
3) Socks Proxy Server:
A newer protocol to allow relaying of far more different types of data, whether TCP or UDP.
4) NAT Proxy Server:
This one works a little different; it allows the redirection of all packets without a Program having to support a Proxy Server.
5) SSL Proxy Server:
An extension was created to the HTTP Proxy Server which allows relaying of TCP data similar to a Socks Proxy Server. This one done mainly to allow encryption of Web Page requests.
Here we consider only the first two proxy servers – HTTP proxy server and FTP proxy server.
HTTP Proxy Server:
Hypertext is words/ phrases/ images which upon a click or stroke from the keyboard redirects to the related page. Thus hypertext (hyperlinks) forms a sort of network of related data.
An HTTP proxy server is a server that handles HTTP requests from clients. If the clients are of a common organization or domain, or exhibit a similarity in browsing behavior, the proxy can effectively cache requested documents. Caching, which migrates documents across the network closer to the users, reduces network traffic, reduces the load on popular Web servers and reduces the time that end users wait for documents to load.
A proxy server accepts requests from clients. When possible and desired, it generates replies based upon documents stored in its local cache; otherwise, it forewords the requests, transfers the replies to the clients and caches them when possible.
The proxy thus acts both as a server and as a client. It is a server when accepting HTTP requests from its clients, but a client to the remote servers it connects to when it is unable to fulfill requests by the means of its local cache.
FTP proxy server
FTP proxy is an application level gateway for FTP. It sits between a client and a server forwarding command and data streams supporting a subset of the file transfer protocol.
File Transfer Protocol.
FTP stands for the File transfer protocol and is used to transfer files between an FTP server and another computer. In the past, FTP was much more common than it is today and was the dominant file transfer mechanism on the Internet. If you needed to transfer files between two computers, you would use FTP to do so. FTP is still very popular today when a service requires that a lot of files be hosted for other to people to download. FTP also tends to be faster than other contemporary methods of transferring files because it was designed to do so.
Even more important, FTP support Automatic Resume. This means that if you are downloading the latest new game demo that is over 600 mega, and for some reason the download stops in the middle of the transfer, the ftp client will attempt to on the next download of the same file, to continue from where you left off. This feature can save you a huge amount of time but is generally only found in specialized FTP client software and not in your browser software.
Available applications for both HTTP and FTP Proxy servers
• Web browsers
• Proxy Chains
• Download managers
• Operating system (with lots of configuration)
Functions of proxy servers
Proxy servers implement one or more of the following functions:
• Caching proxy server
• Web proxy
• Content-filtering web proxy
• Anonymizing proxy server
• Hostile proxy
• Intercepting proxy server
• Transparent and non-transparent proxy server
• Forced proxy
• Suffix proxy
• Open proxy server
• Reverse proxy server
• Tunneling proxy server
Anonymizing proxy server
Anonymous browsing is simply browsing the World Wide Web with most of your identity hidden. This is primarily done through what is known as an anonymous browser based proxy. These are the websites that you can use to input the address of the web page that you wish to visit, and the service will take you to that website with information such as the location of your computer and the IP address hidden from the web page. For example, when the user tries to access something on a certain part of the web, the proxy will talk to that file as an ambassador of the user, maintaining the privacy of the user. The practice of anonymous browsing can also maintain the privacy of the user from potential loggers spying on the user’s connection.
Risks with Anonymous Browsing
Although anonymous browsing seems to be the solution to complete anonymity, it can potentially be harmful. This is because by the user anonymously browsing, they are using an anonymous proxy, which does not encrypt data when it is sent to the proxy server. Thus, important information such as logins, passwords, and credit card numbers could potentially be recorded and leaked by a proxy server administrator who has malicious plans. Users that are constantly looking to anonymously browse could also fall into Internet traps where web pages display a wrong security measure, which the user might believe and give out too much information. This could lead to an even greater disaster than non-anonymous browsing, as the proxy server itself and any proxy chains attached to that proxy server can see all of that user’s information.
Anonymous web proxy services tend to be somewhat unstable, the list of current anonymous web proxy services changes constantly. In addition, some anonymous web proxy services are free services and others are not. Most of the current proxy services offer some version of limited free service, and then try to up sell you to a monthly subscription.
Anonymous browsing is a very easy way to browse without needing to worry too much about information such as the IP address being released publicly. Nonetheless, it is critical to double check whether a certain anonymous browsing service is honorable or not to prevent any, potentially even worse, disasters from occurring.
Anonymous proxy
An anonymous proxy is a piece of software designed to protect the privacy and anonymity of web browsers from web site operators, Internet snoops, and even unfriendly governments. The anonymous proxy software resides on a proxy server. The web browser connects to the proxy server and the proxy server connects to the web server. The web server does not know who you are, it only knows who the proxy server is. The proxy server does know who you are — so you had better choose a proxy server that you trust.
In addition to hiding your IP address, an anonymous proxy server will typically remove traffic such as:
• Cookies
• Pop-ups
• Banners
• Scripts
• Referrer information
These options should be configurable by the end-user to enable to proxy server to work with web sites which require cookies or pop-ups.
Anonymous surfing proxy sites will allow to
• They allow you to enter the address (URL) of the site you wish to go to at the anonymous surfing proxy site.
• The site will retrieve the page for you and present it to you.
• The site you visit will not receive any particulars about your system.
Caching proxy server
Caching Overview
Increasing demand for information on the Internet causes congestion and long delays in retrieving information. Because much of the same information is retrieved over and over again, saving and storing this information can satisfy subsequent requests with more efficiency and less bandwidth.
Saving and storing information locally is known as caching. With Web caching, copies of recently requested content are stored temporarily on a cache server in locations that are topologically closer to the client. The content is then readily available to be reused for subsequent client requests for the same content.
By storing content locally, we:
• Optimize network resources
• Conserve network bandwidth
• Reduce Internet congestion
• Improve network response time and overall service quality
Using Proxy Caching
With proxy caching, each client is configured with the IP address of the proxy cache to which clients send content requests. You may also configure an URL for browsers to identify the location of the proxy configuration file for automatic proxy configuration. Each client’s content request is sent directly to the proxy cache IP address. The cache either returns the requested content if it has a local copy or sends a new request to the origin server for the information.
If all cache servers are unavailable in a proxy cache configuration, the client request does not pass to the origin server because clients are configured with the proxy cache VIP.
This server accelerates service requests by retrieving content saved from a previous request made by the same client or even other clients. Caching proxies keep local copies of frequently requested resources, allowing large organizations to significantly reduce their upstream bandwidth usage and cost, while significantly increasing performance. Most ISPs and large businesses have a caching proxy. These machines are built to deliver superb file system performance (often with RAID and journaling) and also contain hot-rodded versions of TCP. Caching proxies were the first kind of proxy server.
Taking Squid as an example, we explain the page-fetch algorithm in the proxy server.
• Check cache for existing copy of object
• If it exists in cache
-Check object’s expire time; if expired, fall back to origin server
-Check object’s refresh rule; if expired, perform an If-Modified-Since against origin server
-If object still considered fresh, return cached object to requester
• If object is not in cache, expired, or otherwise invalidated
- Fetch object from origin server
- If 500 error from origin server, and expired object available, returns expired object
- Test object for cacheability; if cacheable, store local copy
Cacheable objects
• HTTP
– Must have a Last-Modified: tag
– If origin server required HTTP authentication for request, must have Cache-Control: public tag
– Ideally also has an Expires or Cache-Control: max-age tag
– Content provider decides what header tags to include
• Web servers can auto-generate some tags, such as Last-Modified and Content-Length, under certain conditions
• FTP
– Squid sets Expires time to fetch timestamp + 2 days
Non-cacheable objects
• WAIS
• HTTPS
– No Last-Modified: tag
– Authenticated objects
– Cache-Control: private, no-cache, and no-store tags
– URLs with cgi-bin or ? in them
– POST method (form submission)
Content filtering Proxy server
A content-filtering web proxy server provides administrative control over the content that may be relayed through the proxy. It is commonly used in both commercial and non-commercial organizations (especially schools) to ensure that Internet usage conforms to acceptable use policy. In some cases users can circumvent the proxy, since there are services designed to proxy information from a filtered website through a non filtered site to allow it through the users proxy.
Some common methods used for content filtering include: URL or DNS blacklists, URL regex filtering, MIME filtering, or content keyword filtering. Some products have been known to employ content analysis techniques to look for traits commonly used by certain types of content providers.
A content filtering proxy will often support user authentication, to control web access. It also usually produces logs, either to give detailed information about the URLs accessed by specific users, or to monitor bandwidth usage statistics. It may also communicate to daemon-based and/or ICAP-based antivirus software to provide security against virus and other malware by scanning incoming content in real time before it enters the network.
This proxy server works based on ICAP
The Internet Content Adaptation Protocol (ICAP) is a lightweight HTTP based protocol specified in RFC 3507 designed to off-load specific content to dedicated servers, thereby freeing up resources and standardizing the way in which features are implemented. ICAP is generally used in proxy servers to integrate with third party products like antivirus software, malicious content scanners and URL filters.
ICAP in its most basic form is a “lightweight” HTTP based remote procedure call protocol. In other words, ICAP allows its clients to pass HTTP based (HTML) messages (Content) to ICAP servers for adaptation. Adaptation refers to performing the particular value added service (content manipulation) for the associated client request/response.
Reverse proxy server
A reverse proxy is a proxy server that is installed in the neighborhood of one or more web servers. All traffic coming from the Internet and with a destination of one of the web servers goes through the proxy server. There are several reasons for installing reverse proxy servers:
• Encryption / SSL acceleration: when secure web sites are created, the SSL encryption is often not done by the web server itself, but by a reverse proxy that is equipped with SSL acceleration hardware. See Secure Sockets Layer. Furthermore, a host can provide a single “SSL proxy” to provide SSL encryption for an arbitrary number of hosts; removing the need for a separate SSL Server Certificate for each host, with the downside that all hosts behind the SSL proxy have to share a common DNS name or IP address for SSL connections.
• Load balancing: the reverse proxy can distribute the load to several web servers, each web server serving its own application area. In such a case, the reverse proxy may need to rewrite the URLs in each web page (translation from externally known URLs to the internal locations).
• Serve/cache static content: A reverse proxy can offload the web servers by caching static content like pictures and other static graphical content.
• Compression: the proxy server can optimize and compress the content to speed up the load time.
• Spoon feeding: reduces resource usage caused by slow clients on the web servers by caching the content the web server sent and slowly “spoon feeding” it to the client. This especially benefits dynamically generated pages.
• Security: the proxy server is an additional layer of defense and can protect against some OS and WebServer specific attacks. However, it does not provide any protection to attacks against the web application or service itself, which is generally considered the larger threat.
• Extranet Publishing: a reverse proxy server facing the Internet can be used to communicate to a firewalled server internal to an organization, providing extranet access to some functions while keeping the servers behind the firewalls. If used in this way, security measures should be considered to protect the rest of your infrastructure in case this server is compromised, as its web application is exposed to attack from the Internet.
Tunneling proxy server
A tunneling proxy server is a method of defeating blocking policies implemented using proxy servers. Most tunneling proxy servers are also proxy servers, of varying degrees of sophistication, which effectively implement “bypass policies”.
A tunneling proxy server is a web-based page that takes a site that is blocked and “tunnels” it, allowing the user to view blocked pages. A famous example is elgooG, which allowed users in China to use Google after it had been blocked there. elgooG differs from most tunneling proxy servers in that it circumvents only one block.
Students are able to access blocked sites (games, chatrooms, messenger, offensive material, internet pornography, social networking, etc.) through a tunneling proxy server. As fast as the filtering software blocks tunneling proxy servers, others spring up. However, in some cases the filter may still intercept traffic to the tunneling proxy server, thus the person who manages the filter can still see the sites that are being visited.
Tunneling proxy servers are also used by people who have been blocked from a web site.
Another use of a tunneling proxy server is to allow access to country-specific services, so that Internet users from other countries may also make use of them. An example is country-restricted reproduction of media and webcasting.
The use of tunneling proxy servers is usually safe with the exception that tunneling proxy server sites run by an untrusted third party can be run with hidden intentions, such as collecting personal information, and as a result users are typically advised against running personal data such as credit card numbers or passwords through a tunneling proxy server.
In some network configurations, clients attempting to access the proxy server are given different levels of access privilege on the grounds of their computer location or even the MAC address of the network card. However, if one has access to a system with higher access rights, one could use that system as a proxy server for which the other clients use to access the original proxy server, consequently altering their access privileges.
Tools used and Description
Tool used: CC proxy
Description: Proxy Server CCProxy is easy-to-use and powerful Internet connection sharing software. CCProxy can support broadband, DSL, dial-up, optical fiber, satellite, ISDN and DDN connections, it helps build your own proxy server and share Internet access within the LAN efficiently and easily. CC Proxy Server can act as an HTTP, mail, FTP, SOCKS, news and telnet proxy server. It features powerful account management functions, including Internet access control, bandwidth control, Internet web filtering, content filtering and time control. It also provides web caching, online access monitoring, access logging and bandwidth usage statistics functions. CC Proxy is compatible with Win98, WinME, WinNT, Win2000, WinXP, Win2003 and Vista.
The first version of Proxy Server CCProxy was developed in June 2000. It was initially designed to modem sharing within a LAN. Proxy Server CCProxy has now been expanded to support Internet connections of many other types, such as DSL sharing, cable modem sharing, wireless sharing, satellite sharing, parent proxy server connection sharing, and more. If there is a computer within a LAN that can access the Internet, all the other computers within the LAN can access the Internet via this proxy server software. This could make great savings for your business in terms of hardware and Internet connection fees.
CCProxy can act as web proxy software, which enables you to browse web pages, download files and send and receive e-mails via web browsers such as IE, Firefox, Netscape and etc. The web caching function can increase the Internet surfing speed.
CCProxy provides powerful management functions including several ways to control the Internet access on the LAN. They are IP address, IP range, MAC address, User Name/Password and group. It can also merge with Active Directory.
The web filtering and content filtering function can restrict clients’ access to particular sites. It will help you to ensure that employees concentrate on their work or that children are unable to visit unsuitable sites. The time schedule function is used to control the users’ online time.
Different proxy services can be allocated to different users. For example, some of them could be restricted to browsing web pages and others to sending and receiving e-mails.
CCProxy can allocate proxy client bandwidth as appropriate. That is to say, it can be used to control the users’ Internet surfing speed and balance the bandwidth to avoid the network traffic jams that can be caused by users who download big files or watch online media.
Access logging and online access monitoring will help you record the clients’ Internet access activities.
Steps to configure
1. Setting the IP address of server and client
a. Server: Connect the server system to the Internet.
Control Panel-> Network Settings-> IPv4-> Properties->
- Set the IP to the allowed IP by the network.
- Subnet Mask is obtained automatically.
- Leave the Preferred Gateway settings empty.
- Leave the Preferred and Alternate DNS settings empty.
b. Client: Connect the client to the server via wired LAN (or wireless LAN).
- Set the IP address to another IP which is allowed by the network.
- Subnet Mask is obtained automatically.
- Preferred Gateway should be set to the Server IP address settings.
- Preferred DNS settings can be left empty or set to Server system’s IP address.
2. Change Browser settings of the client
Once the IP configuration is done, the browser settings of the client are to be changed to access the Internet via the proxy server.
- Tools -> Options -> Advanced-> Network-> (LAN) Settings-> Proxy Settings
- Change the corresponding Proxy setting to the Server system’s IP address.
- Set the Port to the defined port (Eg: HTTP – 8080).
3. Now run the CC Proxy software.
4. For every session of usage of CC Proxy software, registration is required.
- Select Register
- Copy the Machine Id
- Paste it into the Key Maker
- Copy and paste the serial number and Register Code from the Key Maker to the Registration tab
- Register the session.
5. To create users.
- Select Account
- New
- Fill the form as required. It can be chosen to be password protected or not.
- Select the required Web Filter.
6. Setting the Web Filter.
- Select Web Filter option
- Type in the entire URL to be blocked (or unblocked).
- Select the type of content to be blocked.
- Save the settings and select Ok.
7. Once all these settings are done for all the users which are connected to the Server via the proxy Server settings, the users can be allowed to access the required sites (or not access the required sites).
8. Monitor option will provide the Recent Logs from the clients. Also the Account details and the IP address details.
Results
The CC Proxy Server setup on a local system serves exactly like a Proxy server according to our requirements. It is easy to setup and configure. The client (user) settings can be done according the server’s discretion. The corresponding websites or content are blocked to the respective users. The stimulation of a Proxy Server is done using the tool CC Proxy.
Recent Comments