diff options
-rw-r--r-- | config/jail_template.xml | 36 | ||||
-rw-r--r-- | config/jailctl.xml | 233 |
2 files changed, 269 insertions, 0 deletions
diff --git a/config/jail_template.xml b/config/jail_template.xml new file mode 100644 index 00000000..d183200b --- /dev/null +++ b/config/jail_template.xml @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="utf-8" ?> +<!DOCTYPE packagegui SYSTEM "./schema/packages.dtd"> +<?xml-stylesheet type="text/xsl" href="./xsl/package.xsl"?> +<packagegui> + <description>Basic jail template</description> + <requirements>Disk space...</requirements> + <faq>Currently there are no FAQ items provided.</faq> + <name>jail_template</name> + <version>0.1</version> + <title>Jail template</title> + <!-- configpath gets expanded out automatically and config items will be + stored in that location --> + <configpath>['installedpackages']['$packagename']['config']</configpath> + <additional_files_needed> + <prefix>/usr/local/pkg/</prefix> + <chmod>0755</chmod> + <item>http://www.pfsense.com/packages/config/jail_template/jail_template.inc</item> + </additional_files_needed> + <additional_files_needed> + <prefix>/usr/</prefix> + <chmod>0755</chmod> + <item>http://www.pfsense.com/packages/config/jail_template/jail_template.img.uzip</item> + </additional_files_needed> + + <include_file>/usr/local/pkg/jail_template.inc</include_file> + <custom_php_install_command> + jail_template_install(); + </custom_php_install_command> + <custom_php_deinstall_command> + jail_template_deinstall(); + </custom_php_deinstall_command> + <custom_php_resync_config_command> + jail_template_resync(); + </custom_php_resync_config_command> +</packagegui> + diff --git a/config/jailctl.xml b/config/jailctl.xml new file mode 100644 index 00000000..079ddb6b --- /dev/null +++ b/config/jailctl.xml @@ -0,0 +1,233 @@ +<?xml version="1.0" encoding="utf-8" ?> +<!DOCTYPE packagegui SYSTEM "./schema/packages.dtd"> +<?xml-stylesheet type="text/xsl" href="./xsl/package.xsl"?> +<packagegui> + <description>Jail management</description> + <requirements>Disk space...</requirements> + <faq>Currently there are no FAQ items provided.</faq> + <name>pfJailctl</name> + <version>0.1</version> + <title>Jails</title> + <!-- Menu is where this packages menu will appear --> + <menu> + <name>Jails</name> + <tooltiptext>Jail management</tooltiptext> + <section>Services</section> + <configfile>jailctl.xml</configfile> + </menu> + <service> + <name>Jails</name> + <rcfile>jails.sh</rcfile> + <description>All jails with autostart enabled.</description> + <custom_php_service_status_command> + include("/usr/local/pkg/jailctl.inc"); + jailctl_servicestatus(); + </custom_php_service_status_command> + </service> + <!-- configpath gets expanded out automatically and config items will be + stored in that location --> + <configpath>['installedpackages']['$packagename']['config']</configpath> + <additional_files_needed> + <prefix>/usr/local/pkg/</prefix> + <chmod>0644</chmod> + <item>http://www.pfsense.com/packages/config/jailctl/jailctl_defaults.xml</item> + </additional_files_needed> + <additional_files_needed> + <prefix>/usr/local/pkg/</prefix> + <chmod>0644</chmod> + <item>http://www.pfsense.com/packages/config/jailctl/jailctl_settings.xml</item> + </additional_files_needed> + <additional_files_needed> + <prefix>/usr/local/pkg/</prefix> + <chmod>0644</chmod> + <item>http://www.pfsense.com/packages/config/jailctl/jailctl.inc</item> + </additional_files_needed> + <additional_files_needed> + <prefix>/usr/local/pkg/</prefix> + <chmod>0644</chmod> + <item>http://www.pfsense.com/packages/config/jailctl/jailctl-utils.inc</item> + </additional_files_needed> + <additional_files_needed> + <prefix>/usr/local/pkg/</prefix> + <chmod>0644</chmod> + <item>http://www.pfsense.com/packages/config/jailctl/jailctl_list.inc</item> + </additional_files_needed> + <additional_files_needed> + <prefix>/usr/local/sbin/</prefix> + <chmod>0755</chmod> + <item>http://www.pfsense.com/packages/config/jailctl/jailctl</item> + </additional_files_needed> + <additional_files_needed> + <prefix>/usr/sbin/</prefix> + <chmod>0755</chmod> + <item>http://www.pfsense.com/packages/config/jailctl/sysinstall</item> + </additional_files_needed> + + <tabs> + <tab> + <text>Jails</text> + <url>/pkg.php?xml=jailctl.xml</url> + <active/> + </tab> + <tab> + <text>Global settings</text> + <url>/pkg_edit.php?xml=jailctl_settings.xml&id=0</url> + </tab> +<!-- <tab> + <text>Jail defaults</text> + <url>/pkg_edit.php?xml=jailctl_defaults.xml&id=0</url> + </tab> --> + </tabs> + + + <adddeleteeditpagefields> + <columnitem> + <fielddescr>State</fielddescr> + <fieldname>jstate</fieldname> + </columnitem> + <columnitem> + <fielddescr>Jail name</fielddescr> + <fieldname>jname</fieldname> + </columnitem> + <columnitem> + <fielddescr>Jail IF</fielddescr> + <fieldname>jifdesc</fieldname> + </columnitem> + <columnitem> + <fielddescr>Jail IP</fielddescr> + <fieldname>jip</fieldname> + </columnitem> + <columnitem> + <fielddescr>Jail path</fielddescr> + <fieldname>jpath</fieldname> + </columnitem> + <columnitem> + <fielddescr>Actions</fielddescr> + <fieldname>jactions</fieldname> + </columnitem> + + </adddeleteeditpagefields> + + <fields> + <field> + <fielddescr>Jail hostname</fielddescr> + <fieldname>jname</fieldname> + <description>FQDN of the jail</description> + <type>input</type> + </field> + <field> + <fielddescr>Network interface</fielddescr> + <fieldname>jif</fieldname> + <description>Jail will be bound to this interface</description> + <type>interfaces_selection</type> + </field> + <field> + <fielddescr>IP address</fielddescr> + <fieldname>jip</fieldname> + <description>Must be in the same subnet as the parent interface</description> + <type>input</type> + </field> + <field> + <fielddescr>Autostart jail on boot?</fielddescr> + <fieldname>jautostart</fieldname> + <description>Start this jail automatically when the system boots?</description> + <type>checkbox</type> + </field> + + + <field> + <fielddescr>Jail templates</fielddescr> + <fieldname>jselect_templates</fieldname> + <type>listtopic</type> + <name>Select a predefined template for your jail:</name> + </field> + <field> + <fielddescr>Templates</fielddescr> + <fieldname>jtemplates</fieldname> + <description>Files from the templates will be read-only inside the jail.</description> + <type>select</type> + <options> + <option><name> --- select --- </name><value></value></option> + </options> + <default_value>jtemplate_default</default_value> + </field> + <field> + <fielddescr>Use unionfs</fielddescr> + <fieldname>juse_unionfs</fieldname> + <description>Use unionfs instead of nullfs to mount the template contents into the jail</description> + <type>checkbox</type> + </field> + + <field> + <fielddescr>Package sets</fielddescr> + <fieldname>jselect_sets</fieldname> + <type>listtopic</type> + <name>OR select a distribution set to install:</name> + </field> + <field> + <fielddescr>Distribution sets</fielddescr> + <fieldname>jdistset</fieldname> + <description>Select a standard set of distributions to install</description> + <type>select</type> + <options> + <option><name> --- select --- </name><value></value></option> + <option><name>User (binaries only)</name><value>distSetUser</value></option> + <option><name>Developer (src/all, binaries)</name><value>distSetDeveloper</value></option> + <option><name>Kernel developer (src/kern, binaries)</name><value>distSetKernDeveloper</value></option> + <option><name>Minimum (minimal binaries)</name><value>distSet</value></option> + </options> + <default_value></default_value> + </field> + + <field> + <fielddescr>Individual packages</fielddescr> + <fieldname>jselect_individual</fieldname> + <type>listtopic</type> + <name>OR select individual distributions in addition to 'base':</name> + </field> + + <field> + <fielddescr>Individual distributions</fielddescr> + <fieldname>jdists</fieldname> + <description>Select individual distributions (multiple selection)</description> + <type>select</type> + <options> + <option><name>Manual pages</name><value>manpages</value></option> + <option><name>The Ports collection</name><value>ports</value></option> + <option><name>Miscellaneous documentation</name><value>doc</value></option> + <option><name>Local additions collection</name><value>local</value></option> + <option><name>X.org client binaries</name><value>Xbin</value></option> + <option><name>X.org libraries</name><value>Xlib</value></option> + <option><name>X.org manual pages</name><value>Xman</value></option> + <option><name>X.org imake distribution</name><value>Xprog</value></option> + <option><name>Games</name><value>games</value></option> + </options> + <multiple/> + </field> + + </fields> + + + <!-- php hooks --> + <include_file>/usr/local/pkg/jailctl_list.inc</include_file> + <custom_add_php_command> + sync_package_jailctl(); + </custom_add_php_command> + <custom_delete_php_command> + jailctl_delete(); + </custom_delete_php_command> + <custom_php_resync_config_command> + sync_package_jailctl(); + </custom_php_resync_config_command> + <custom_php_install_command> + jailctl_install(); + </custom_php_install_command> + <custom_php_deinstall_command> + jailctl_deinstall(); + </custom_php_deinstall_command> + <custom_php_after_form_command> + jailctl_addinterfaces($config); + jailctl_addtemplates($config); + </custom_php_after_form_command> +</packagegui> + |