captive.whump.shanti-portal/tools/add_client.py

45 lines
902 B
Python
Raw Normal View History

#!/usr/bin/env python
2017-02-22 13:41:58 +00:00
# Python helper tool to add IPtables rule using the iptc library. This must
# of course run as root for iptc to work.
2017-03-03 00:04:12 +00:00
from argparse import ArgumentParser, FileType
from pprint import pprint as pp
2017-03-03 00:04:12 +00:00
from configparser import RawConfigParser
2017-03-03 00:04:12 +00:00
from storage import StorageRedis
from client import Client
parser = ArgumentParser()
2017-03-03 00:04:12 +00:00
parser.add_argument(
'--protocol',
required=True,
choices=['tcp', 'udp'],
help='Protocol for client'
)
parser.add_argument(
'--config',
type=FileType('r'),
required=True,
help='Configuration file'
)
parser.add_argument(
'src_ip',
help='Client source IP to add'
)
args = parser.parse_args()
2017-03-03 00:04:12 +00:00
config = RawConfigParser()
config.readfp(args.config)
sr = StorageRedis(config=config)
client = Client(
storage=sr,
client_id=args.src_ip,
protocol=args.protocol,
chain=config.get('iptables', 'chain')
)