It is possible to divide the Tectia Server configuration into several files. You can define external XML files containing sub-configurations for example with department-specific or user-group-specific settings. This can make the configuration easier to manage as it is in smaller parts, and the sub-configuration files can be used repeatedly in several places.
Note | |
---|---|
Configuration files consisting of several XML-files must be maintained manually, because split configuration files cannot be edited with the Tectia Server Configuration GUI. |
The sub-configuration files must be declared as external SYSTEM entities within the
DOCTYPE element of the ssh-server-config.xml
file. For example the
entity-name
below:
<!DOCTYPE secsh-server SYSTEM "/opt/tectia/share/auxdata/ssh-server-ng/ssh-server-ng-config-1.dtd" [ <!ENTITY entity-name SYSTEM "sub-config-file.xml">
The defined entity can then be used in the main configuration file instead of defining
all the settings there. The server configuration will read the contents of the
sub-configuration file in the place of the entity. So the sub-configuration file contents
must be designed so that they produce a valid XML structure in the
ssh-server-config.xml
file.
In this example we have a sub-configuration file named
group-example-rules.xml
, located in sub-directory
subconfigs/
, and with the following contents:
<terminal action="deny" /> <subsystem type="sftp" application="sft-server-g3" chroot="%homedir%" /> <tunnel-agent action="deny" /> <tunnel-x11 action="deny" /> <tunnel-local action="deny" /> <tunnel-remote action="deny" />
In the example below, we first declare the sub-configuration file (and its location) as
an external entity in the beginning of the ssh-server-config.xml
file,
and then use the group-A-rules
entity in the actual configuration as
follows:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE secsh-server SYSTEM "/opt/tectia/share/auxdata/ssh-server-ng/ssh-server-ng-config-1.dtd" [ <!ENTITY group-A-rules SYSTEM "subconfigs/group-example-rules.xml"> ]> <secsh-server> ... <services> <group name="example"> <selector> <user-group name="example"/> </selector> </group> ... <rule group="example"> &group-A-rules; </rule> ... </services> </secsh-server>