mirror of
https://github.com/ail-project/ail-framework.git
synced 2024-11-27 00:07:16 +00:00
53 lines
1.3 KiB
Python
53 lines
1.3 KiB
Python
|
#!/usr/bin/env python3
|
||
|
# -*-coding:UTF-8 -*
|
||
|
|
||
|
"""
|
||
|
The D4_Client Module
|
||
|
============================
|
||
|
|
||
|
The D4_Client modules send all DNS records to a D4 Server.
|
||
|
Data produced by D4 sensors are ingested into
|
||
|
a Passive DNS server which can be queried later to search for the Passive DNS records.
|
||
|
"""
|
||
|
|
||
|
import os
|
||
|
import sys
|
||
|
import time
|
||
|
from pubsublogger import publisher
|
||
|
sys.path.append(os.environ['AIL_BIN'])
|
||
|
from Helper import Process
|
||
|
|
||
|
sys.path.append(os.path.join(os.environ['AIL_BIN'], 'lib'))
|
||
|
import ConfigLoader
|
||
|
import d4
|
||
|
|
||
|
# # TODO: lauch me in core screen
|
||
|
# # TODO: check if already launched in core screen
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
publisher.port = 6380
|
||
|
publisher.channel = "Script"
|
||
|
|
||
|
config_section = 'D4_client'
|
||
|
p = Process(config_section)
|
||
|
publisher.info("""D4_client is Running""")
|
||
|
|
||
|
last_refresh = time.time()
|
||
|
d4_client = d4.create_d4_client()
|
||
|
|
||
|
while True:
|
||
|
if last_refresh < d4.get_config_last_update_time():
|
||
|
d4_client = d4.create_d4_client()
|
||
|
last_refresh = time.time()
|
||
|
print('D4 Client: config updated')
|
||
|
|
||
|
dns_record = p.get_from_set()
|
||
|
if dns_record is None:
|
||
|
publisher.debug("Script D4_client is idling 1s")
|
||
|
time.sleep(1)
|
||
|
continue
|
||
|
|
||
|
if d4_client:
|
||
|
# Send DNS Record to D4Server
|
||
|
d4_client.send_manual_data(dns_record)
|