Skip to main content
https://travis-ci.org/leforestier/ipsecparse.svg

Parse and edit your ipsec configuration files (ipsec.conf)

Installation

To install ipsecparse, simply:

pip install ipsecparse

Examples

# Load the configuration from a string.

from ipsecparse import loads

conf = loads(open('/etc/ipsec.conf').read())

# The configuration is represented as a dictionnary
# (actually a subclass of OrderedDict)

# Each section of the configuration is an OrderedDict.

# Let's modify some settings:

conf['config', 'setup']['nat_traversal'] = 'yes'

conf['conn', 'myconn']['left'] = '192.168.0.10'

# Create a connection:

conf['conn', 'mynewconn'] = {
    'leftsubnet': '10.0.0.0/16',
    'right': '192.168.0.1'
}

# You can also use an OrderedDict if order matters to you:

from collections import OrderedDict

conf['conn', 'mynewconn'] = OrderedDict(
    lefsubnet = '10.0.0.0/16',
    right = '192.168.0.1'
)

# Delete a connection:

del conf['conn', 'mynewconn']

# Same thing with certification authorities. Create a CA:

conf['ca', 'myca'] = {
    'cacert': 'MyCert.pem',
    'crluri': 'http://crl.example.com/mycrl.crl',
    'auto': 'add'
}

# Delete it:

del conf['ca', 'myca']

# Add an include:

conf['include', '/etc/ipsec.d/ipsec.include'] = True

# Delete it:

del conf['include', '/etc/ipsec.d/ipsec.include']

# Display the new configuration as a string:

print(conf.dumps())

# with four spaces indents instead of the default tabulations:

print(conf.dumps(indent = '    '))

# Replace the old configuration file:

with open('/etc/ipsec.conf', 'w') as fd:
    fd.write(conf.dumps())

# Search for connections inside the configuration.
# Pass a callable to the `conn_filter` method.

for name, section in conf.conn_filter(
    lambda conn: conn.get('leftsubnet') == '10.0.0.0/16'
):
    section['auto'] = 'start'

# Or use the Key and Keys class
# (just to make queries a bit shorter)

from ipsecparse import Key, Keys

for name, section in conf.conn_filter(
    Key('leftsubnet') == '10.0.0.0/16'
):
    section['auto'] = 'start'

for name, section in conf.conn_filter(
    Keys('left', 'right').contains('192.168.0.1')
):
    del conf['conn', name]

GitHub repo: https://github.com/leforestier/ipsecparse

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ipsecparse-0.3.0.tar.gz (4.6 kB view details)

Uploaded Source

File details

Details for the file ipsecparse-0.3.0.tar.gz.

File metadata

  • Download URL: ipsecparse-0.3.0.tar.gz
  • Upload date:
  • Size: 4.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Python-urllib/3.7

File hashes

Hashes for ipsecparse-0.3.0.tar.gz
Algorithm Hash digest
SHA256 d1d0daa2cda7c311d03817da8472b0ca5dddb26f52dfbba33bb6f9f676562433
MD5 b7ca8ce1748877812f7c0f9e2338d6a1
BLAKE2b-256 057d24709be12867e3d202f82927db9879ebe4a9a20ef1b1c940bf95615ee1cf

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.3.0 This release

1 file

0.2.0

1 file

0.1.0

2 files

0.0.1

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page