Dne 16.10.2014 v 17:59 Martin Basti napsal(a):
On 10/10/14 09:17, Martin Kosek wrote:
On 10/09/2014 03:57 PM, Petr Spacek wrote:
it would be great if people could look at current state of DNSSEC
It consist of several relatively independent parts:
- python-pkcs#11 interface written by Martin Basti:
- DNSSEC daemons written by me:
- FreeIPA integration written by Martin Basti:
Here is updated repo with installers, please review:
TODO: integrate ipadnssecd daemons and pkcs11 helper, when finished
Commit "DNSSEC: schema":
ipaSecretKeyRef is missing X-ORIGIN.
Nitpick: rename 60ipapkcs11.ldif to 60ipapk11.ldif.
Commit "DNSSEC: DNS key synchronization daemon":
Maybe we should rename uuid-ipauniqueid.ldif to uuid.ldif, now that it
contains more than just ipauniqueid.
ipaConfigString values use camel case, so I would prefer "dnssecVersion"
instead of "dnssec-version".
Use ipapython.ipautil.ipa_generate_password() to generate the PIN in
You probably should put a constant with a path to softhsm2-util to
ipaplatform.paths and use that in ipautil.run().
There are some PEP8 errors in ipaserver/install/dnskeysyncinstance.py.
Commit "DNSSEC: opendnssec services":
There are some PEP8 errors in ipaserver/install/odsexporterinstance.py
Nitpick: rename OdsExporterInstance to ODSExporterInstance
Not something you can fix in this commit, but shouldn't ipa-ods-exporter
be named ipa-odsexportd, so that the naming is consistent with the rest
of our daemons?
dns_exporter_principal is a bit misleading name for a variable that
holds a DN in OdsExporterInstance.__setup_principal().
To follow up on the disable/mask issue: IMO you should create a special
service class for ods-signerd in ipaplatform which calls "systemctl
mask" when disabled, instead of adding a mask method.
IMO the KEYMASTER constant should be u'dnssecKeyMaster', again to make
it consistent with other ipaConfigString values.
Commit "DNSSEC: platform and service variables":
IMO some of the path constants should be renamed for consistency:
NAMED = "/usr/sbin/named"
NAMED_PKCS11 = "/usr/sbin/named-pkcs11"
SOFTHSM_CONF = "/etc/softhsm2.conf"
DNSSEC_TOKENS_DIR = "/var/lib/ipa/dnssec/tokens"
DNSSEC_SOFTHSM_PIN_SO = "/etc/ipa/softhsm_pin_so"
DNSSEC_SOFTHSM_PIN = "/var/lib/ipa/dnssec/softhsm_pin"
VAR_OPENDNSSEC_DIR = "/var/opendnssec"
ETC_OPENDNSSEC_DIR = "/etc/opendnssec"
ODS_KSMUTIL = "/usr/bin/ods-ksmutil"
Why do you use the default /etc/softhsm2.conf file, instead of using
e.g. /etc/ipa/dnssec/softhsm2.conf and passing it to SoftHSM in the
SOFTHSM2_CONF environment variable?
You should provide /usr/lib/ equivalent for:
SOFTHSM_LIB = "/usr/lib64/pkcs11/libsofthsm2.so"
and use it when necessary.
I think /etc/ipa/softhsm_pin_so should be moved to
Nitpick: unnecessary whitespace change in ipaplatform/redhat/services.py
Instead of making changes to the redhat platform module and reverting
them in the rhel platform module, you should do them in the fedora
platform module only.
IMO it would be better to move the new RedHatTaskNamespace methods to
service-specific classes (create them if necessary).
Commit "DNSSEC: validate forwarders":
I'm not sure if failing on DNSSEC-disabled forwarders by default is a
good idea. Perhaps there could be some auto-detection code? Something
along the lines of:
if not options.no_dnssec_validation:
print "WARNING: DNSSEC will not be enabled"
Please don't use ValidationError in check_forwarders(), use ValueError
instead and re-raise it as ValidationError only where necessary.
Commit "DNSSEC: modify named service to support dnssec":
Rather than checking if paths.DNSSEC_KEYFROMLABEL is None, add a method
with the check to named-specific service class in ipaplatform.
Commit "DNSSEC: installation":
This should be handled in OpenDNSSECInstance.get_masters() itself:
+ ods.ldap_connect() # we need connection before getting masters
Freeipa-devel mailing list