diff options
author | Rob Austein <sra@hactrn.net> | 2010-10-07 00:12:50 +0000 |
---|---|---|
committer | Rob Austein <sra@hactrn.net> | 2010-10-07 00:12:50 +0000 |
commit | 8ada594d05c4e79fc2e3a13b50489bb75bd90cae (patch) | |
tree | 96b1f0a63a0f75cfa49078f1768d13c772c5636a /rpkid.with_tls/examples | |
parent | fe3d8174f81370ca80d1d47158959ec3eb9d4eee (diff) |
Stash a copy of pre-conversion (with TLS) tree temporarily, in case of
problems during switchover. Will clean this up after testbed is back
up without TLS.
svn path=/rpkid.with_tls; revision=3464
Diffstat (limited to 'rpkid.with_tls/examples')
-rw-r--r-- | rpkid.with_tls/examples/asns.csv | 5 | ||||
-rw-r--r-- | rpkid.with_tls/examples/myrpki.conf | 458 | ||||
-rw-r--r-- | rpkid.with_tls/examples/prefixes.csv | 8 | ||||
-rw-r--r-- | rpkid.with_tls/examples/roas.csv | 5 | ||||
-rw-r--r-- | rpkid.with_tls/examples/rsyncd.conf | 45 |
5 files changed, 521 insertions, 0 deletions
diff --git a/rpkid.with_tls/examples/asns.csv b/rpkid.with_tls/examples/asns.csv new file mode 100644 index 00000000..9d742740 --- /dev/null +++ b/rpkid.with_tls/examples/asns.csv @@ -0,0 +1,5 @@ +# $Id$ +# +# Syntax: <child_handle> <asn> +# +Alice 64533 diff --git a/rpkid.with_tls/examples/myrpki.conf b/rpkid.with_tls/examples/myrpki.conf new file mode 100644 index 00000000..f9331b10 --- /dev/null +++ b/rpkid.with_tls/examples/myrpki.conf @@ -0,0 +1,458 @@ +################################################################ +# +# $Id: myrpki.conf 2722 2009-08-31 22:24:48Z sra $ +# +# Config file for myrpki.py and RPKI daemons. +# +# NB: This config file is read both by Python code and also by the +# OpenSSL command line tool (running under mypki), so syntax must +# remain compatable with both parsers, and there's a big chunk of +# OpenSSL voodoo towards the end of this file. +# +################################################################ + +[myrpki] + +# Handle naming hosted resource-holding entity (<self/>) represented +# by this myrpki instance. Syntax is an identifier (ASCII letters, +# digits, hyphen, underscore -- no whitespace, non-ASCII characters, +# or other punctuation). You need to set this. + +handle = Me + +# Names of various files and directories. Don't change these without +# a good reason. + +roa_csv = roas.csv +prefix_csv = prefixes.csv +asn_csv = asns.csv +xml_filename = myrpki.xml +bpki_resources_directory = bpki/resources +bpki_servers_directory = bpki/servers + +# Whether you want to run your own copy of rpkid (and irdbd). You +# want this on unless somebody else is hosting rpkid service for you. + +run_rpkid = true + +# DNS hostname and server port numbers for rpkid and irdbd, if you're +# running them. rpkid's server host has to be a publicly reachable +# name to be useful; irdbd's server host should always be localhost +# unless you really know what you are doing. Port numbers can be any +# legal TCP port number that you're not using for something else. + +rpkid_server_host = rpkid.example.org +rpkid_server_port = 4404 +irdbd_server_host = localhost +irdbd_server_port = 4403 + +# Whether you want to run your own copy of pubd. In general, it's +# best to use your parent's pubd if you can, to reduce the overall +# number of publication sites that relying parties need to check, so +# don't enable this unless you have a good reason. + +run_pubd = false + +# DNS hostname and server port number for pubd, if you're running it. +# Hostname has to be a publicly reachable name to be useful, port can +# be any legal TCP port number that you're not using for something +# else. + +pubd_server_host = pubd.example.org +pubd_server_port = 4402 + +# Contact information to include in offers of repository service. +# This only matters when we're running pubd. This should be a human +# readable string, perhaps containing an email address or URL. + +pubd_contact_info = repo-man@rpki.example.org + +# Whether you want to run your very own copy of rootd. Don't enable +# this unless you really know what you're doing. + +run_rootd = false + +# Server port number for rootd, if you're running it. This can be any +# legal TCP port number that you're not using for something else. + +rootd_server_port = 4401 + +# Root of local directory tree where pubd (and rootd, sigh) should +# write out published data. You need to configure this, and the +# configuration should match up with the directory where you point +# rsyncd. Neither pubd nor rsyncd much cares -where- you tell them to +# put this stuff, the important thing is that the rsync:// URIs in +# generated certificates match up with the published objects so that +# relying parties can find and verify rpkid's published outputs. + +publication_base_directory = publication/ + +# rsyncd module name corresponding to publication_base_directory. +# This has to match the module you configured into rsyncd.conf. +# Leave this alone unless you have some need to change it. + +publication_rsync_module = rpki + +# Hostname and optional port number for rsync:// URIs. In most cases +# this should just be the same value as pubd_server_host. + +publication_rsync_server = ${myrpki::pubd_server_host} + +# SQL configuration. You can ignore this if you're not running any of +# the daemons yourself. + +# If you're comfortable with having all of the databases use the same +# MySQL username and password, set those values here. It's ok to +# leave the default username alone, but you should use a locally +# generated password either here or in the individual settings below. + +shared_sql_username = rpki +shared_sql_password = fnord + +# If you want different usernames and passwords for the separate SQL +# databases, enter those settings here; the shared_sql_* settings are +# only referenced here, so you can remove them entirely if you're +# setting everything in this block. + +rpkid_sql_database = rpkid +rpkid_sql_username = ${myrpki::shared_sql_username} +rpkid_sql_password = ${myrpki::shared_sql_password} + +irdbd_sql_database = irdbd +irdbd_sql_username = ${myrpki::shared_sql_username} +irdbd_sql_password = ${myrpki::shared_sql_password} + +pubd_sql_database = pubd +pubd_sql_username = ${myrpki::shared_sql_username} +pubd_sql_password = ${myrpki::shared_sql_password} + +# Name of OpenSSL binary. You might need to change this if you have +# no system copy installed, or if the system copy doesn't support CMS. +# The copy of openssl built by this package should suffice. + +openssl = openssl + +# End of [myrpki] section + +################################################################# +# +# In theory it should not be necessary to modify anything below this +# point, at least not if you're within the boundaries of the +# simplified configuration that the myrpki tool is intended to +# support. If you do have to modify anything below this point, please +# report it. +# +################################################################# + +[rpkid] + +# MySQL database name, user name, and password for rpkid to use to +# store its data. + +sql-database = ${myrpki::rpkid_sql_database} +sql-username = ${myrpki::rpkid_sql_username} +sql-password = ${myrpki::rpkid_sql_password} + +# Host and port on which rpkid should listen for HTTPS service +# requests. + +server-host = ${myrpki::rpkid_server_host} +server-port = ${myrpki::rpkid_server_port} + +# HTTPS service URL rpkid should use to contact irdbd. If irdbd is +# running on the same machine as rpkid, this can and probably should +# be a loopback URL, since nobody but rpkid needs to talk to irdbd. + +irdb-url = https://${myrpki::irdbd_server_host}:${myrpki::irdbd_server_port}/ + +# Where rpkid should look for BPKI certs and keys used in the +# left-right protocol. The following values match where myirbe.py +# will have placed things. Don't change these without a reason. + +bpki-ta = ${myrpki::bpki_servers_directory}/ca.cer +rpkid-key = ${myrpki::bpki_servers_directory}/rpkid.key +rpkid-cert = ${myrpki::bpki_servers_directory}/rpkid.cer +irdb-cert = ${myrpki::bpki_servers_directory}/irdbd.cer +irbe-cert = ${myrpki::bpki_servers_directory}/irbe.cer + +################################################################# + +[irdbd] + +# MySQL database name, user name, and password for irdbd to use to +# store its data. + +sql-database = ${myrpki::irdbd_sql_database} +sql-username = ${myrpki::irdbd_sql_username} +sql-password = ${myrpki::irdbd_sql_password} + +# HTTP service URL irdbd should listen on. This should match the +# irdb-url parameter in the [rpkid] section; see comments there. + +https-url = https://${myrpki::irdbd_server_host}:${myrpki::irdbd_server_port}/ + +# Where irdbd should look for BPKI certs and keys used in the +# left-right protocol. The following values match where myirbe.py +# will have placed things. Don't change these without a reason. + +bpki-ta = ${myrpki::bpki_servers_directory}/ca.cer +rpkid-cert = ${myrpki::bpki_servers_directory}/rpkid.cer +irdbd-cert = ${myrpki::bpki_servers_directory}/irdbd.cer +irdbd-key = ${myrpki::bpki_servers_directory}/irdbd.key + +################################################################# + +[pubd] + +# MySQL database name, user name, and password for pubd to use to +# store (some of) its data. + +sql-database = ${myrpki::pubd_sql_database} +sql-username = ${myrpki::pubd_sql_username} +sql-password = ${myrpki::pubd_sql_password} + +# Root of directory tree where pubd should write out published data. +# You need to configure this, and the configuration should match up +# with the directory where you point rsyncd. Neither pubd nor rsyncd +# much cares -where- you tell them to put this stuff, the important +# thing is that the rsync:// URIs in generated certificates match up +# with the published objects so that relying parties can find and +# verify rpkid's published outputs. + +publication-base = ${myrpki::publication_base_directory} + +# Host and port on which pubd should listen for HTTPS service +# requests. + +server-host = ${myrpki::pubd_server_host} +server-port = ${myrpki::pubd_server_port} + +# Where pubd should look for BPKI certs and keys used in the +# left-right protocol. The following values match where myirbe.py +# will have placed things. Don't change these without a reason. + +bpki-ta = ${myrpki::bpki_servers_directory}/ca.cer +pubd-cert = ${myrpki::bpki_servers_directory}/pubd.cer +pubd-key = ${myrpki::bpki_servers_directory}/pubd.key +irbe-cert = ${myrpki::bpki_servers_directory}/irbe.cer + +################################################################# + +[irbe_cli] + +# HTTPS service URL for rpkid + +rpkid-url = https://${myrpki::rpkid_server_host}:${myrpki::rpkid_server_port}/left-right/ + +# BPKI certificates and keys for talking to rpkid + +rpkid-bpki-ta = ${myrpki::bpki_servers_directory}/ca.cer +rpkid-irbe-key = ${myrpki::bpki_servers_directory}/irbe.key +rpkid-irbe-cert = ${myrpki::bpki_servers_directory}/irbe.cer +rpkid-cert = ${myrpki::bpki_servers_directory}/rpkid.cer + +# HTTPS service URL for pubd + +pubd-url = https://${myrpki::pubd_server_host}:${myrpki::pubd_server_port}/control/ + +# BPKI certificates and keys for talking to pubd + +pubd-bpki-ta = ${myrpki::bpki_servers_directory}/ca.cer +pubd-irbe-key = ${myrpki::bpki_servers_directory}/irbe.key +pubd-irbe-cert = ${myrpki::bpki_servers_directory}/irbe.cer +pubd-cert = ${myrpki::bpki_servers_directory}/pubd.cer + +################################################################# + +[rootd] + +# You don't need to run rootd unless you're IANA, are certifying +# private address space, or are an RIR which refuses to accept IANA as +# the root of the public address hierarchy. +# +# Ok, if that wasn't enough to scare you off: rootd is a kludge, and +# needs to be rewritten, or, better, merged into rpkid. It does a +# number of things wrong, and requires far too many configuration +# parameters. You have been warned.... + +# BPKI certificates and keys for rootd + +bpki-ta = ${myrpki::bpki_servers_directory}/ca.cer +rootd-bpki-crl = ${myrpki::bpki_servers_directory}/ca.crl +rootd-bpki-cert = ${myrpki::bpki_servers_directory}/rootd.cer +rootd-bpki-key = ${myrpki::bpki_servers_directory}/rootd.key +child-bpki-cert = ${myrpki::bpki_servers_directory}/child.cer + +# Server port on which rootd should listen. + +server-port = ${myrpki::rootd_server_port} + +# Where rootd should write its output. Yes, rootd should be using +# pubd instead of publishing directly, but it doesn't. + +rpki-root-dir = ${myrpki::publication_base_directory} + +# rsync URI for directory containing rootd's outputs + +rpki-base-uri = rsync://${myrpki::publication_rsync_server}/${myrpki::publication_rsync_module}/ + +# rsync URI for rootd's root (self-signed) RPKI certificate + +rpki-root-cert-uri = rsync://${myrpki::publication_rsync_server}/${myrpki::publication_rsync_module}/root.cer + +# Private key corresponding to rootd's root RPKI certificate + +rpki-root-key = ${myrpki::bpki_servers_directory}/ca.key + +# Filename (as opposed to rsync URI) of rootd's root RPKI certificate + +rpki-root-cert = ${myrpki::publication_base_directory}/root.cer + +# Where rootd should stash a copy of the PKCS #10 request it gets from +# its one (and only) child + +rpki-subject-pkcs10 = rootd.subject.pkcs10 + +# Lifetime of the one and only certificate rootd issues + +rpki-subject-lifetime = 30d + +# Filename (relative to rootd-base-uri and rpki-root-dir) of the CRL +# for rootd's root RPKI certificate + +rpki-root-crl = root.crl + +# Filename (relative to rootd-base-uri and rpki-root-dir) of the +# manifest for rootd's root RPKI certificate + +rpki-root-manifest = root.mnf + +# Up-down protocol class name for RPKI certificate rootd issues to its +# one (and only) child + +rpki-class-name = ${myrpki::handle} + +# Filename (relative to rootd-base-uri and rpki-root-dir) of the one +# (and only) RPKI certificate rootd issues + +rpki-subject-cert = ${myrpki::handle}.cer + +# The last four paramters in this section are really parameters for +# myirbe.py to use when constructing rootd's root RPKI certificate, +# via an indirection hack in the OpenSSL voodoo portion of this file. +# Don't ask why some of these are duplicated from other paramters in +# this section, you don't want to know (really, you don't). + +# ASNs to include in rootd's root RPKI certificate, in openssl.conf format + +root_cert_asns = AS:0-4294967295 + +# IP addresses to include in rootd's root RPKI certificate, in +# openssl.conf format + +root_cert_addrs = IPv4:0.0.0.0/0,IPv6:0::/0 + +# Whatever you put in rpki-base-uri, earlier in this section + +root_cert_sia = rsync://${myrpki::publication_rsync_server}/${myrpki::publication_rsync_module}/ + +# root_cert_sia + rpki-root-manifest + +root_cert_manifest = rsync://${myrpki::publication_rsync_server}/${myrpki::publication_rsync_module}/root.mnf + +################################################################# + +# Constants for OpenSSL voodoo portion of this file, to make them +# easier to find. + +[constants] + +# Digest algorithm. Don't change this. + +digest = sha256 + +# RSA key length. Don't change this. + +key_length = 2048 + +# Lifetime of BPKI certificates (and rootd RPKI root certificate). +# Don't change this unless you know what you're doing. + +cert_days = 365 + +# Lifetime of BPKI CRLs. Don't change this unless you know what +# you're doing. + +crl_days = 365 + +################################################################# + +# The rest of this file is OpenSSL configuration voodoo. Don't touch +# anything below here even if you -do- know what you're doing. Even +# by OpenSSL standards, some of this is weird, and interacts in +# non-obvious ways with code in myrpki.py and myirbe.py. If you touch +# this stuff and something breaks, don't say you weren't warned. + +[req] +default_bits = ${constants::key_length} +default_md = ${constants::digest} +distinguished_name = req_dn +prompt = no +encrypt_key = no + +[req_dn] +CN = Dummy name for certificate request + +[ca_x509_ext_ee] +subjectKeyIdentifier = hash +authorityKeyIdentifier = keyid:always + +[ca_x509_ext_xcert0] +basicConstraints = critical,CA:true,pathlen:0 +subjectKeyIdentifier = hash +authorityKeyIdentifier = keyid:always + +[ca_x509_ext_xcert1] +basicConstraints = critical,CA:true,pathlen:1 +subjectKeyIdentifier = hash +authorityKeyIdentifier = keyid:always + +[ca_x509_ext_ca] +basicConstraints = critical,CA:true +subjectKeyIdentifier = hash +authorityKeyIdentifier = keyid:always + +[ca] +default_ca = ca +dir = ${ENV::BPKI_DIRECTORY} +new_certs_dir = $dir +database = $dir/index +certificate = $dir/ca.cer +private_key = $dir/ca.key +default_days = ${constants::cert_days} +default_crl_days = ${constants::crl_days} +default_md = ${constants::digest} +policy = ca_dn_policy +unique_subject = no +serial = $dir/serial +crlnumber = $dir/crl_number + +[ca_dn_policy] +countryName = optional +stateOrProvinceName = optional +localityName = optional +organizationName = optional +organizationalUnitName = optional +commonName = supplied +emailAddress = optional +givenName = optional +surname = optional + +[rootd_x509_extensions] +basicConstraints = critical,CA:true +subjectKeyIdentifier = hash +keyUsage = critical,keyCertSign,cRLSign +subjectInfoAccess = 1.3.6.1.5.5.7.48.5;URI:${rootd::root_cert_sia},1.3.6.1.5.5.7.48.10;URI:${rootd::root_cert_manifest} +sbgp-autonomousSysNum = critical,${rootd::root_cert_asns} +sbgp-ipAddrBlock = critical,${rootd::root_cert_addrs} +certificatePolicies = critical,1.3.6.1.5.5.7.14.2 diff --git a/rpkid.with_tls/examples/prefixes.csv b/rpkid.with_tls/examples/prefixes.csv new file mode 100644 index 00000000..ece18d32 --- /dev/null +++ b/rpkid.with_tls/examples/prefixes.csv @@ -0,0 +1,8 @@ +# $Id$ +# +# Syntax: <child_handle> <prefix>/<length> +# or: <child_handle> <min>-<max> +# +Alice 192.0.2.0/27 +Bob 192.0.2.44-192.0.2.100 +Bob 10.0.0.0/8 diff --git a/rpkid.with_tls/examples/roas.csv b/rpkid.with_tls/examples/roas.csv new file mode 100644 index 00000000..e4ec3074 --- /dev/null +++ b/rpkid.with_tls/examples/roas.csv @@ -0,0 +1,5 @@ +# $Id$ +# +# Syntax: <prefix>/<length>-<maxlength> <asn> <group> +# +10.3.0.44/32 666 Mom diff --git a/rpkid.with_tls/examples/rsyncd.conf b/rpkid.with_tls/examples/rsyncd.conf new file mode 100644 index 00000000..fabb5aa2 --- /dev/null +++ b/rpkid.with_tls/examples/rsyncd.conf @@ -0,0 +1,45 @@ +# $Id$ +# +# Sample rsyncd.conf file for use with pubd. You may need to +# customize this for the conventions on your system. See the rsync +# and rsyncd.conf manual pages for a complete explanation of how to +# configure rsyncd, this is just a simple configuration to get you +# started. +# +# There are two parameters in the following which you should set to +# appropriate values for your system: +# +# "myname" is the rsync module name to configure, as in +# "rsync://rpki.example.org/rpki/"; see the publication_rsync_module +# parameter in myrpki.conf +# +# "/some/where/publication" is the absolute pathname of the directory +# where you told pubd to place its outputs; see the +# publication_base_directory parameter in myrpki.conf. +# +# You may need to adjust other parameters for your system environment. +# +# Copyright (C) 2009-2010 Internet Systems Consortium ("ISC") +# +# Permission to use, copy, modify, and distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH +# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +# AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, +# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +# PERFORMANCE OF THIS SOFTWARE. + +pid file = /var/run/rsyncd.pid +uid = nobody +gid = nobody + +[rpki] + use chroot = no + read only = yes + transfer logging = yes + path = /some/where/publication + comment = RPKI Testbed |