Skip to content
README.rst 2.07 KiB
Newer Older
bgp-spamd
#########
nimrod's avatar
nimrod committed

.. image:: https://travis-ci.org/adarnimrod/bgp-spamd.svg?branch=master
    :target: https://travis-ci.org/adarnimrod/bgp-spamd
Provision spamd with spam list distributed via BGP using OpenBGPD on OpenBSD.
For more information visit `bgp-spamd.net <http://bgp-spamd.net/>`_.
Configuration of PF is more custom and out of scope for this role, however one
can include the configuration snippet created by this role by adding the
following to your :code:`pf.conf`.
nimrod's avatar
nimrod committed

.. code::

nimrod's avatar
nimrod committed
    include "/etc/pf.conf.bgp-spamd"
nimrod's avatar
nimrod committed

This will add 2 PF tables, :code:`spamd-white` and :code:`bgp-spamd-bypass`,
both contain whitelisted IP addresses of mail senders. You can allow them
nimrod's avatar
nimrod committed
through and send the rest to the spam trap by adding the following line to
your :code:`pf.conf`.
nimrod's avatar
nimrod committed

.. code::

    pass in quick proto tcp from { <bgp-spamd-bypass>, <spamd-white> } to port smtp
nimrod's avatar
nimrod committed
    pass in quick proto tcp to (egress:0) port smtp rdr-to 127.0.0.1 port spamd
nimrod's avatar
nimrod committed

Requirements
------------

See :code:`meta/main.yml` and assertions at the top of :code:`tasks/main.yml`.
nimrod's avatar
nimrod committed

Role Variables
--------------

See :code:`defaults/main.yml`.
nimrod's avatar
nimrod committed

Dependencies
------------

See :code:`meta/main.yml`.

Example Playbook
----------------

See :code:`tests/playbook.yml`.

Testing
-------

Testing requires Python 2.7 and either Docker or Vagrant and Virtualbox.
Install the Python dependencies, dependent roles and roles required for
testing:
nimrod's avatar
nimrod committed

.. code:: shell

    pip install -r tests/requirements.txt
    ansible-galaxy install git+file://$(pwd),$(git rev-parse --abbrev-ref HEAD) -p .molecule/roles
    molecule dependency
nimrod's avatar
nimrod committed

To run the full test suite:

.. code:: shell

    pre-commit run --all-files
    molecule test --platform all
nimrod's avatar
nimrod committed

License
-------

This software is licensed under the MIT license (see the :code:`LICENSE.txt`
file).

Author Information
------------------

Nimrod Adar, `contact me <nimrod@shore.co.il>`_ or visit my `website
<https://www.shore.co.il/>`_. Patches are welcome via `git send-email
<http://git-scm.com/book/en/v2/Git-Commands-Email>`_. The repository is located
nimrod's avatar
nimrod committed
at: https://git.shore.co.il/explore/.