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
Metadata
Release files for ipsecparse 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| ipsecparse-0.3.0.tar.gz | 4.6 kB | Without provenance | Details |
Release files / ipsecparse-0.3.0.tar.gz
| Download URL | ipsecparse-0.3.0.tar.gz |
|---|---|
| Size | 4.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d1d0daa2cda7c311d03817da8472b0ca5dddb26f52dfbba33bb6f9f676562433
|
|
BLAKE2b-256 checksum How to use checksums |
057d24709be12867e3d202f82927db9879ebe4a9a20ef1b1c940bf95615ee1cf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
Python-urllib/3.7
|
Security for ipsecparse 0.3.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.