├── .gitignore ├── README.md ├── backend ├── Dockerfile ├── app │ ├── __pycache__ │ │ ├── app.cpython-312.pyc │ │ └── test_app.cpython-312.pyc │ ├── app.py │ ├── data │ │ └── secure_proxy.db │ └── tests │ │ └── test_security.py ├── config │ └── custom_squid.conf └── requirements.txt ├── config ├── custom_squid.conf ├── domain_blacklist.txt ├── ip_blacklist.txt ├── ssl_cert.pem └── ssl_key.pem ├── data └── secure_proxy.db ├── docker-compose.yml ├── proxy ├── Dockerfile ├── squid-supervisor.conf ├── squid.conf └── startup.sh ├── screenshot_1.png ├── screenshot_2.png ├── screenshot_3.png ├── scripts └── download_cdn_libs.sh ├── tests └── e2e_test.py └── ui ├── Dockerfile ├── app.py ├── requirements.txt ├── static ├── css │ ├── bootstrap.min.css │ └── fontawesome.min.css ├── favicon.ico ├── fonts │ ├── fontawesome │ │ ├── fa-brands-400.ttf │ │ ├── fa-brands-400.woff2 │ │ ├── fa-regular-400.ttf │ │ ├── fa-regular-400.woff2 │ │ ├── fa-solid-900.ttf │ │ └── fa-solid-900.woff2 │ ├── inter.css │ └── inter │ │ ├── 300.ttf │ │ ├── 400.ttf │ │ ├── 500.ttf │ │ ├── 600.ttf │ │ └── 700.ttf └── js │ ├── bootstrap.bundle.min.js │ ├── cert-handling.js │ ├── chart.min.js │ └── jquery.min.js └── templates ├── base.html ├── blacklists.html ├── index.html ├── logs.html └── settings.html /.gitignore: -------------------------------------------------------------------------------- 1 | *.log 2 | logs/* 3 | secureproxy.db 4 | *.sqlite 5 | __pycache__ 6 | *.pyc 7 | data/secure_proxy.db 8 | secure_proxy.db 9 | data/secure_proxy.db 10 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Secure Proxy Manager 2 | 3 | A containerized secure proxy with advanced filtering capabilities, real-time monitoring, and a modern web UI. 4 | 5 | [](https://opensource.org/licenses/MIT) 6 | [](https://www.docker.com/) 7 | [](https://www.python.org/) 8 | [](https://flask.palletsprojects.com/) 9 | [](https://getbootstrap.com/) 10 | 11 | ## Screenshots 12 | 13 |  14 |  15 |  16 | 17 | ## 🚀 Features 18 | 19 | - **High-Performance Proxy Engine**: Built on Squid with optimized caching capabilities 20 | - **Advanced Filtering**: 21 | - IP Blacklisting with CIDR support 22 | - Domain Blacklisting with wildcard support 23 | - Content Type Filtering 24 | - Direct IP Access Control 25 | - Time-based Access Restrictions 26 | - **Comprehensive Security**: 27 | - HTTPS Filtering with proper certificate management 28 | - Rate Limiting protection against brute force attacks 29 | - Security scoring and recommendations 30 | - Configurable content policies 31 | - **Modern Dashboard**: 32 | - Real-time traffic monitoring 33 | - Resource usage statistics 34 | - Cache performance metrics 35 | - Security status visualization 36 | - **Detailed Analytics**: 37 | - Full request logging and analysis 38 | - Traffic pattern visualization 39 | - Blocked request reporting 40 | - Exportable reports 41 | - **Enterprise Management**: 42 | - Configuration backup and restore 43 | - Role-based access control 44 | - API for automation and integration 45 | - Health monitoring endpoints 46 | 47 | ## 🏗️ Architecture 48 | 49 | The application consists of three main containerized components: 50 | 51 | 1. **Proxy Service**: Squid-based proxy with customized configurations for enhanced security 52 | 2. **Backend API**: RESTful API built with Flask providing management capabilities 53 | 3. **Web UI**: Modern Bootstrap 5 interface for administration and monitoring 54 | 55 |
57 | ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ 58 | │ │ │ │ │ │ 59 | │ Web UI │◄────►│ Backend │◄────►│ Proxy │ 60 | │ (Flask) │ │ API │ │ (Squid) │ 61 | │ │ │ (Flask) │ │ │ 62 | └─────────────┘ └─────────────┘ └─────────────┘ 63 | │ │ │ 64 | │ │ │ 65 | ▼ ▼ ▼ 66 | ┌─────────────────────────────────────────────────────┐ 67 | │ │ 68 | │ Shared Volumes │ 69 | │ (Configuration, Logs, Database, Certificates) │ 70 | │ │ 71 | └─────────────────────────────────────────────────────┘ 72 |73 |
IP Address | 33 |Description | 34 |Added Date | 35 |Actions | 36 |
---|---|---|---|
Loading IP blacklist... | 41 |
Domain | 64 |Description | 65 |Added Date | 66 |Actions | 67 |
---|---|---|---|
Loading domain blacklist... | 72 |
Timestamp | 351 |Source IP | 352 |Destination | 353 |Status | 354 |Bytes | 355 |
---|---|---|---|---|
360 |
361 |
366 |
362 | Loading...
363 |
364 | Loading logs... 365 | |
367 |