{"id":21534440,"url":"https://github.com/equk/spf_list","last_synced_at":"2025-03-17T20:14:40.358Z","repository":{"id":149680527,"uuid":"241655253","full_name":"equk/spf_list","owner":"equk","description":":mailbox_closed: list mailservers from spf entries","archived":false,"fork":false,"pushed_at":"2020-02-19T16:51:16.000Z","size":6,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-24T07:11:26.251Z","etag":null,"topics":["cidr","email","postfix","postscreen","spf"],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/equk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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-02-19T15:49:52.000Z","updated_at":"2023-10-31T15:44:18.000Z","dependencies_parsed_at":"2023-04-10T04:50:52.765Z","dependency_job_id":null,"html_url":"https://github.com/equk/spf_list","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/equk%2Fspf_list","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/equk%2Fspf_list/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/equk%2Fspf_list/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/equk%2Fspf_list/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/equk","download_url":"https://codeload.github.com/equk/spf_list/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244102855,"owners_count":20398386,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["cidr","email","postfix","postscreen","spf"],"created_at":"2024-11-24T03:10:47.055Z","updated_at":"2025-03-17T20:14:40.329Z","avatar_url":"https://github.com/equk.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# :mailbox_closed: spf_list\n\nList mailservers from spf by iterating over spf entries \u0026 includes.\n\nExtended to allow for whitelisting and blacklisting of mailservers in postfix to speed up `postscreen` greylisting.\n\n## Features\n\n- [x] list mailservers from spf records\n- [x] output blacklist entries for servers\n- [x] output whitelist entries for servers\n\n## Usage Example\n\nAdd domain to whitelist\n\n    ./spf_permit.sh google.com \u003e\u003e /etc/postfix/postscreen_access.cidr\n\n## Related Blog Posts\n\n- [Extracting Mailserver List From SPF](https://equk.co.uk/2020/02/19/extracting-mailserver-list-from-spf)\n- [Whitelisting Mailservers From SPF](https://equk.co.uk/2020/02/19/whitelisting-mailservers-from-spf)\n\n## Postscreen\n\n    The Postfix postscreen daemon provides additional protection against mail server overload.\n    One postscreen process handles multiple inbound SMTP connections,\n    and decides which clients may talk to a Postfix SMTP server process.\n    By keeping spambots away, postscreen leaves more SMTP server processes available for legitimate clients,\n    and delays the onset of server overload conditions.\n\n\n### Whitelisting / Blacklisting domains based on SPF\n\nusing the default config\n\n`/etc/postfix/main.cf`\n\n        postscreen_access_list = permit_mynetworks,\n            cidr:/etc/postfix/postscreen_access.cidr\n\nadd entries to `/etc/postfix/postscreen_access.cidr`\n\n    # postscreen access list\n    # A simple combined white/blacklist\n    # Only \"permit\" and \"reject\" work on the RHS\n    # This is a CIDR table, so see cidr_table(5) for LHS syntax\n\n### Seperate Whitelist / Blacklist\n\nyou can create seperate files for blacklist / whitelist if desired eg:\n\n`/etc/postfix/main.cf`\n\n        postscreen_access_list = permit_mynetworks,\n            cidr:/etc/postfix/postscreen_access.cidr,\n            cidr:/etc/postfix/postscreen_reject.cidr,\n            cidr:/etc/postfix/postscreen_permit.cidr\n\n## Notes\n\n    Classless Inter-Domain Routing (CIDR) is an expansion of the IP addressing system\n    that allows for a more efficient and appropriate allocation of addresses.\n\n# Contact\n\nWebsite: https://equk.co.uk\n\nTwitter: [@equilibriumuk](https://twitter.com/equilibriumuk)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fequk%2Fspf_list","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fequk%2Fspf_list","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fequk%2Fspf_list/lists"}