A prototype of a web proxy implementing many features like:
- Caching (LRU/LFU)
- HTTP Compression (Gzip)
- Firewall (Blocked IP lists)
- Adblocking (Uses Easylist)
- Content filtering (Naive bayes classifier to filter adult content)
- Support for HTTP GET/POST and HTTPS via tunnelling
- Prioritization of requests (+ prevents DDoS attack)
- User Authentication (Using HTTP 407)
- Logging
- Pratyaksh Sharma (120050019)
- Shyam JVS (120050051)
- Paramdeep Singh (120050085)
- Royal Jain (120050014)
- Install apache2 web server, using
sudo apt-get install apache2
. - Install MySQL,
sudo apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql
. - Run
sudo mysql_install_db
;sudo /usr/bin/mysql_secure_installation
and set up root password. - Our system assumes a database named
'proxy'
, containing a table'login'
, with varchar columns'id'
and'password'
. - Change the password in ProxyServer.java to the one set in step 3.
- Move the
www
folder to/var/www
. - Find your machine's ip, using
ifconfig
. - Install the
adblockparser
python module usingsudo pip install adblockparser
. - Navigate to
CS-378-Networks-Project
and runjava -cp mysql-connector-java-5.0.8-bin.jar:jsoup-1.8.1.jar:. proxy.ProxyServer
. - On the client, configure the proxy to the ip found in step 7, and set the port to 12000.
- You can configure the proxy by navigating to
127.0.1.1/configure.php
on the proxy machine. Similarly, you can use127.0.1.1/adduser.php
and127.0.1.1/blocklist.php
and127.0.1.1/priority.php
. These pages can also be accessed from the client machine by changing127.0.1.1
to the IP address of the proxy server. - The proxy is ready to use.