{"id":24761059,"url":"https://github.com/ziozzang/dynamic-firewall","last_synced_at":"2026-04-29T11:05:15.917Z","repository":{"id":68376185,"uuid":"258200783","full_name":"ziozzang/dynamic-firewall","owner":"ziozzang","description":"Dynamic Firewall with whitelist/blacklist based HTTP/HTTPS proxy firewall.","archived":false,"fork":false,"pushed_at":"2020-05-01T03:54:03.000Z","size":46,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-23T12:13:51.689Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ziozzang.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-04-23T12:52:17.000Z","updated_at":"2020-05-01T03:54:05.000Z","dependencies_parsed_at":"2023-05-16T18:45:48.643Z","dependency_job_id":null,"html_url":"https://github.com/ziozzang/dynamic-firewall","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ziozzang/dynamic-firewall","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ziozzang%2Fdynamic-firewall","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ziozzang%2Fdynamic-firewall/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ziozzang%2Fdynamic-firewall/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ziozzang%2Fdynamic-firewall/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ziozzang","download_url":"https://codeload.github.com/ziozzang/dynamic-firewall/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ziozzang%2Fdynamic-firewall/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32422602,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T06:29:02.080Z","status":"ssl_error","status_checked_at":"2026-04-29T06:29:00.631Z","response_time":110,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-01-28T18:20:49.375Z","updated_at":"2026-04-29T11:05:15.903Z","avatar_url":"https://github.com/ziozzang.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# dynamic-firewall\nDynamic Firewall with whitelist/blacklist based HTTP/HTTPS proxy firewall.\nFully supported FQDN firewall http/https also dns.\n\n\n* **working in progress.**\n\n# Author\nJioh L. Jung \u003cziozzang@gmail.com\u003e\n\n\n# What is this?\n* This is Proxy Server with FQDN(Exact matching, Substring matching, wildcard matching...) whitelisting policy.\n* You can use this proxy as dynamic firewalls. and it can proxing\n* no need to setup Root-Certification. it's not required certification. it can only check SNI field on HTTPS/TLS packet and Host Header on HTTP packet.\n* This server also act as DNS Server Proxy. but current support only A record.\n* You can set allow/passing or deny/blocking on real-time with HTTP API.\n\n# How to Use.\n* use docker image.\n\n# SetUp/Configuration\n* All configuration is using env parameters.\n\n# API\n## Security Token\n* if you want to use passphase token, set 'secret' field.\n* warning: only works with PUT, DELETE, POST. not GET.\n\n* Example\n```\n# Using cURL\ncurl -XPUT 0.0.0.0:5555/ipaddr -d 'addr=127.0.0.0/24\u0026secret=ASDF'  -v\n```\n\n## Allow Client IP List\n* This policy has no weight of IP network items.\n\n### Get All List\n* Simple Usage\n\n\n* Example\n```\n# Using cURL\ncurl -XGET 0.0.0.0:5555/ipaddr -v\n```\n\n### Put Allow IP Network\n* warning: IP network format is like '10.2.3.0/24'. it must not have ip address. for example, '10.2.3.1/24' is bad case.\n\n* URL: /ipaddr\n* Params\n** addr: IP Network\n\n* Example\n```\n# Using cURL\ncurl -XPUT 0.0.0.0:5555/ipaddr -d 'addr=127.0.0.0/24'  -v\n```\n\n### Delete Allow IP Network\n\n* URL: /ipaddr\n* Params\n** addr: IP Network\n\n* Example\n```\n# Using cURL\ncurl -XDELETE 0.0.0.0:5555/ipaddr -d 'addr=127.0.0.0/24'  -v\n\n```\n\n### Simple Allow from all.\n\n* Example\n```\n# Using cURL\ncurl -XDELETE 0.0.0.0:5555/ipaddr -d 'addr=0.0.0.0/0'  -v\n```\n\n\n## Allow/Deny Target Hosts\n\n### Get All Allow/Deny List\n\n* Example\n```\n# Using cURL(GET)\ncurl -XGET 0.0.0.0:5555/rules -v\n\n# with cURL (POST)\ncurl -XPOST 0.0.0.0:5555/rules -d 'secret=ASDF'  -v\n```\n### Put Allow/Deny Host\n\n* id: processing sequence: 1-\u003ehigher number..\n* type\n * 0 - allow passthru\n * 1 - deny or drop\n * 2 - deny but upstream\n\n* Example\n```\n# Using cURL\ncurl -XPUT 0.0.0.0:5555/rule -d 'id=1\u0026domain=google.com\u0026type=0\u0026regex=false'  -v\ncurl -XPUT 0.0.0.0:5555/rule -d 'id=2\u0026domain=github.com\u0026type=0\u0026regex=false'  -v\n\n# Allow All host\ncurl -XPUT 0.0.0.0:5555/rule -d 'id=60000\u0026domain=.*\u0026type=0\u0026regex=true'  -v\n```\n\n\n### Delete from allow list\n\n* URL: /rule\n* Params\n** id: id\n\n* Example\n```\n# Using cURL\ncurl -XDELETE 0.0.0.0:5555/rule -D 'id=1'  -v\n```\n\n### Simple Allow from all.\n\n* Example\n```\n# Using cURL\ncurl -XPUT 0.0.0.0:5555/rule -d 'id=60000\u0026domain=.*\u0026type=0\u0026regex=true'  -v\n```\n\n\n# Testing\nTested Python 3.7\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fziozzang%2Fdynamic-firewall","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fziozzang%2Fdynamic-firewall","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fziozzang%2Fdynamic-firewall/lists"}