[PYTHON] Try the Taxii server (1. Server settings)

Trigger

See touching libtaxii (http://qiita.com/KoriCori/items/03baefe7ece59050da75).

This time, we will build a taxii server and prepare the Client / Server environment.

environment

# cat /etc/redhat-release 
CentOS Linux release 7.3.1611 (Core)
# uname -a
Linux localhost.localdomain 3.10.0-327.13.1.el7.x86_64 #1 SMP Thu Mar 31 16:04:38 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
# python -V
Python 2.7.5
# pip -V
pip 9.0.1 from /usr/lib/python2.7/site-packages (python 2.7)

setup

--Opentaxii installation

Get the sample configuration file from the Eclectic IQ repository on Github and configure it.

# cd /home
# git clone https://github.com/EclecticIQ/OpenTAXII.git
# cd OpenTAXII
# pip install -r requirements.txt
# python setup.py install

--Opentaxii server settings

The server configuration file is located in ʻopentaxii / defaults.yml`.

---

domain: "localhost:9000"
support_basic_auth: yes
save_raw_inbox_messages: yes

persistence_api:
  class: opentaxii.persistence.sqldb.SQLDatabaseAPI
  parameters:
    db_connection: sqlite:////tmp/data.db
    create_tables: yes

auth_api:
  class: opentaxii.auth.sqldb.SQLDatabaseAPI
  parameters:
    db_connection: sqlite:////tmp/auth.db
    create_tables: yes
    secret: SECRET-STRING-NEEDS-TO-BE-CHANGED

logging:
  opentaxii: info
  root: info

xml_parser_supports_huge_tree: yes

hooks:

For testing this time, check the DB with sqlite. In addition, it is compatible with PostgreSQL / MySQL.

--Test if the Opentaxii server is running

ʻOpentaxii-run-dev` allows you to test with the default server settings.

# discovery_client --url http://127.0.0.1:9000/services/discovery-a
Request:

Message Type: Discovery_Request
Message ID: 8106670413668492641

Response:

Message Type: Discovery_Response
Message ID: 9138330222858032445; In Response To: 8106670413668492641
  === Service Instance ===
    Service Type: INBOX
    Service Version: urn:taxii.mitre.org:services:1.1
    Protocol Binding: urn:taxii.mitre.org:protocol:http:1.0
    Service Address: http://localhost/services/inbox-a
    Message Binding: urn:taxii.mitre.org:message:xml:1.0
    Message Binding: urn:taxii.mitre.org:message:xml:1.1
    Inbox Service AC: []
    Available: True
    Message: Custom Inbox Service Description A
  === Service Instance ===
    Service Type: INBOX
    Service Version: urn:taxii.mitre.org:services:1.1
    Protocol Binding: urn:taxii.mitre.org:protocol:http:1.0
    Service Address: http://localhost/services/inbox-b
    Message Binding: urn:taxii.mitre.org:message:xml:1.0
    Message Binding: urn:taxii.mitre.org:message:xml:1.1
    Inbox Service AC: ['urn:stix.mitre.org:xml:1.1.1', 'urn:custom.example.com:json:0.0.1']
    Available: True
    Message: Custom Inbox Service Description B
  === Service Instance ===
    Service Type: DISCOVERY
    Service Version: urn:taxii.mitre.org:services:1.1
    Protocol Binding: urn:taxii.mitre.org:protocol:http:1.0
    Service Address: http://localhost/services/discovery-a
    Message Binding: urn:taxii.mitre.org:message:xml:1.0
    Message Binding: urn:taxii.mitre.org:message:xml:1.1
    Available: True
    Message: Custom Discovery Service description
  === Service Instance ===
    Service Type: DISCOVERY
    Service Version: urn:taxii.mitre.org:services:1.1
    Protocol Binding: urn:taxii.mitre.org:protocol:https:1.0
    Service Address: https://localhost/services/discovery-a
    Message Binding: urn:taxii.mitre.org:message:xml:1.0
    Message Binding: urn:taxii.mitre.org:message:xml:1.1
    Available: True
    Message: Custom Discovery Service description
  === Service Instance ===
    Service Type: COLLECTION_MANAGEMENT
    Service Version: urn:taxii.mitre.org:services:1.1
    Protocol Binding: urn:taxii.mitre.org:protocol:http:1.0
    Service Address: http://localhost/services/collection-management-a
    Message Binding: urn:taxii.mitre.org:message:xml:1.0
    Message Binding: urn:taxii.mitre.org:message:xml:1.1
    Available: True
    Message: Custom Collection Management Service description
  === Service Instance ===
    Service Type: COLLECTION_MANAGEMENT
    Service Version: urn:taxii.mitre.org:services:1.1
    Protocol Binding: urn:taxii.mitre.org:protocol:https:1.0
    Service Address: https://localhost/services/collection-management-a
    Message Binding: urn:taxii.mitre.org:message:xml:1.0
    Message Binding: urn:taxii.mitre.org:message:xml:1.1
    Available: True
    Message: Custom Collection Management Service description
  === Service Instance ===
    Service Type: POLL
    Service Version: urn:taxii.mitre.org:services:1.1
    Protocol Binding: urn:taxii.mitre.org:protocol:http:1.0
    Service Address: http://localhost/services/poll-a
    Message Binding: urn:taxii.mitre.org:message:xml:1.0
    Message Binding: urn:taxii.mitre.org:message:xml:1.1
    Available: True
    Message: Custom Poll Service description

I was able to confirm it properly. Next time, I would like to set up service / collection firmly.

Reference site

Recommended Posts

Try the Taxii server (1. Server settings)
Try the Taxii server (3.gunicorn settings)
Try using the Twitter API
Try using the PeeringDB 2.0 API
Launch the IPython notebook server
Try doubling the PyODE slider
Python server settings (nginx + Gunicorn)
Settings to be made when starting up the linux server centos7
Settings until the Dango project is started on the server with Pycharm
Try the Linux kernel lockdown mechanism
Try to introduce the theme to Pelican
Try Ajax on the Django page
[Sakura rental server] Try using flask.
Try using the Python Cmd module
Cython to try in the shortest
Try blurring the image with opencv2
The fastest way to try EfficientNet
The story of remounting the application server
Notes on using matplotlib on the server
Restart the server during Fabric processing
The easiest way to try PyQtGraph
Try using the Python web framework Django (1)-From installation to server startup