1. System Preparation
1.1. Install Debian 7
The first thing that is required is a Debian 7 machine - this can be physical or virtual.
- Install Debian 7 (Wheezy) via usual mechanism (e.g netboot CD, ISO in VMware/VirtualBox or the DVD image.
- Choose the following server install options: "Debian desktop, SSH server, Standard system utilities”.
- Create/choose a secure root password and an initial system user account.
- Once installed, make sure you run an
apt-get upgradeto ensure your system is fully up to date.
We would recommend using LVM when disk partitioning to allow easier partition/disk expansion on a live system.
After install, you will want to secure/lockdown the server as best practice dictates - for both the server and any extra software installed. This is beyond the remit of this guide but there are many guides available, e.g. for securing Debian, and SSH servers.
1.2. Configure Debian 7
Next, there are a few Debian configuration options that need to be set in advance.
1.2.1. Networking configuration
For production deployments, it is recommended that the Trust Router be assigned a static IP address.
For Debian networking information please refer to the Debian documentation: https://wiki.debian.org/NetworkConfiguration
1.2.2. Firewall configuration
The following ports are required to be accessible from the outside world, both in local firewall and in any external firewalls:
- 2083/tcp (for RadSec connections to other Moonshot entities)
- 12309/tcp (for Trust Router client connections - if using the Trust Router to broker trust relationships between entities)
1.3. Add the Required Repositories
Add the Moonshot Debian Wheezy repository to your system. To do this, run the following command (as root, or using sudo):
Install the Moonshot GPG key:
Update the apt cache with the new repository information:
2. Install Trust Router
We’re now ready to install the Trust Router software and its required dependencies. Install the software by running the following command:
3. Configure Trust Router
Next, we need to configure the Trust Router.
3.1.1. APC TLS
First, you will need a copy of a client key and certificate (and appropriate CA) from the APC(s) that your Trust Router serves. Copy them onto the filesystem of your Trust Router.
You can put these files anywhere on the file system, but this guide assumes you put them in /etc/pki/tls. If you place them in a different location you will need to change the locations below as appropriate.
3.1.2. Connection to APC
Next, we need to configure the RadSec configuration for the APC. We do this by creating a file at
/etc/radsec.conf with the following:
3.2. Trust Router
3.2.1. Daemon Configuration
Your Trust Router will need to have a few core configuration items set. To do this:
- Open the
/etc/sysconfig/trust_routerfile for editing. Make sure the configuration items are correct. Items you will most likely have to change are:
TR_DEFAULT_TEST_ACCEPTOR - this will need to be set to the (fully qualified) hostname of your Trust Router.
TR_DEFAULT_TEST_RPREALM - this will need to be set to the (fully qualified) hostname for your APC.
TR_DEFAULT_TEST_COMMUNITY - this will need to be set to the (fully qualified) hostname for your APC.
TR_DEFAULT_TEST_REALM - this will need to be set to the (fully qualified) hostname for your APC.
- Open the default instance's main configuration file at
- Change the hostname to the (fully qualified) hostname of your Trust Router.
- Change the port that it runs on, if necessary.
3.2.2. Moonshot Configuration
Moonshot, you say? Yes, Trust Router uses Moonshot to authenticate and secure all communications between Trust Router clients and servers. So, you will need to configure the trust router user to make use of the Moonshot flatstore (i.e. telling Moonshot that this is a special system account, not a regular user account), and you will need to import a set of credentials for your Trust Router to use.
Enable the trustrouter user to use the Moonshot UI flatstore:
Import it using the moonshot-webp command (as the trustrouter user):
The credentials file will be given to you by the administrator of the APC.
Shibboleth, you say? Yes, Shibboleth is used by the Moonshot components to be able to deal with incoming SAML. However, this feature typically isn't used in Trust Router, but its logging will appear in your Trust Router's log files. So, to simplify your log files, it is recommended that you silence the Shibboleth logging. To do this:
Change WARN to NONE on the first line, i.e.
3.2.4. Default Peer
If your Trust Router is going to run in its own, standalone, trust network, then you can skip this step. If it is going to run in a wider trust network, then you can configure your Trust Router's default peer - i.e. the Trust Router it sends its clients to when they ask it to locate a Moonshot entity that your Trust Router doesn't know about. To do this:
/etc/trust_router/conf.d/default/peering.cfgfor editing. Change the content as follows:
If you were configuring your default Trust Router peer to be Janet's Trust Router at tr1.moonshot.ja.net, its
peering.cfgfile would look like this:
3.2.5. Restart your Trust Router
You are now ready to restart your Trust Router and test it. To do this:
As root, restart the Trust Router daemon:
service trustrouter status. Default should work, tr-test shouldn't.
5. Next Steps
At this point, you now have a Trust Router. Blimey.
/etc/trust_router/trusts.cfg with trust config