$iface) { $iflist[$ifname] = $iface; } include("head.inc"); if ($input_errors) { print_input_errors($input_errors); } $form = new Form; $section = new Form_Section('State Synchronization Settings (pfsync)'); $section->addInput(new Form_Checkbox( 'pfsyncenabled', 'Synchronize states', 'pfsync transfers state insertion, update, and deletion messages between firewalls.', ($pconfig['pfsyncenabled'] === 'on'), 'on' ))->setHelp('Each firewall sends these messages out via multicast on a specified interface, using the PFSYNC protocol (IP Protocol 240).' . ' It also listens on that interface for similar messages from other firewalls, and imports them into the local state table.%1$s' . 'This setting should be enabled on all members of a failover group.%1$s' . 'Clicking "Save" will force a configuration sync if it is enabled! (see Configuration Synchronization Settings below)', '
'); $section->addInput(new Form_Select( 'pfsyncinterface', 'Synchronize Interface', $pconfig['pfsyncinterface'], $iflist ))->setHelp('If Synchronize States is enabled this interface will be used for communication.%1$s' . 'It is recommended to set this to an interface other than LAN! A dedicated interface works the best.%1$s' . 'An IP must be defined on each machine participating in this failover group.%1$s' . 'An IP must be assigned to the interface on any participating sync nodes.', '
'); $section->addInput(new Form_Input( 'pfsyncpeerip', 'pfsync Synchronize Peer IP', 'text', $pconfig['pfsyncpeerip'], ['placeholder' => 'IP Address'] ))->setHelp('Setting this option will force pfsync to synchronize its state table to this IP address. The default is directed multicast.'); $form->add($section); $section = new Form_Section('Configuration Synchronization Settings (XMLRPC Sync)'); $section->addInput(new Form_Input( 'synchronizetoip', 'Synchronize Config to IP', 'text', $pconfig['synchronizetoip'], ['placeholder' => 'IP Address'] ))->setHelp('Enter the IP address of the firewall to which the selected configuration sections should be synchronized.%1$s%1$s' . 'XMLRPC sync is currently only supported over connections using the same protocol and port as this system - make sure the remote system\'s port and protocol are set accordingly!%1$s' . 'Do not use the Synchronize Config to IP and password option on backup cluster members!', '
'); $section->addInput(new Form_Input( 'username', 'Remote System Username', 'text', $pconfig['username'] ))->setHelp('Enter the webConfigurator username of the system entered above for synchronizing the configuration.%1$s' . 'Do not use the Synchronize Config to IP and username option on backup cluster members!', '
'); $section->addPassword(new Form_Input( 'passwordfld', 'Remote System Password', 'password', $pconfig['passwordfld'] ))->setHelp('Enter the webConfigurator password of the system entered above for synchronizing the configuration.%1$s' . 'Do not use the Synchronize Config to IP and password option on backup cluster members!', '
'); $group = new Form_MultiCheckboxGroup('Select options to sync'); $group->add(new Form_MultiCheckbox( 'synchronizeusers', 'Synchronize Users and Groups', 'User manager users and groups', ($pconfig['synchronizeusers'] === 'on'), 'on' )); $group->add(new Form_MultiCheckbox( 'synchronizeauthservers', 'Synchronize Auth Servers', 'Authentication servers (e.g. LDAP, RADIUS)', ($pconfig['synchronizeauthservers'] === 'on'), 'on' )); $group->add(new Form_MultiCheckbox( 'synchronizecerts', 'Synchronize Certificates', 'Certificate Authorities, Certificates, and Certificate Revocation Lists', ($pconfig['synchronizecerts'] === 'on'), 'on' )); $group->add(new Form_MultiCheckbox( 'synchronizerules', 'Synchronize Rules', 'Firewall rules ', ($pconfig['synchronizerules'] === 'on'), 'on' )); $group->add(new Form_MultiCheckbox( 'synchronizeschedules', 'Synchronize Firewall schedules', 'Firewall schedules ', ($pconfig['synchronizeschedules'] === 'on'), 'on' )); $group->add(new Form_MultiCheckbox( 'synchronizealiases', 'Synchronize Firewall aliases', 'Firewall aliases ', ($pconfig['synchronizealiases'] === 'on'), 'on' )); $group->add(new Form_MultiCheckbox( 'synchronizenat', 'Synchronize NAT', 'NAT configuration ', ($pconfig['synchronizenat'] === 'on'), 'on' )); $group->add(new Form_MultiCheckbox( 'synchronizeipsec', 'Synchronize IPsec', 'IPsec configuration ', ($pconfig['synchronizeipsec'] === 'on'), 'on' )); $group->add(new Form_MultiCheckbox( 'synchronizeopenvpn', 'Synchronize OpenVPN', 'OpenVPN configuration ', ($pconfig['synchronizeopenvpn'] === 'on'), 'on' )); $group->add(new Form_MultiCheckbox( 'synchronizedhcpd', 'Synchronize DHCPD', 'DHCP Server settings ', ($pconfig['synchronizedhcpd'] === 'on'), 'on' )); $group->add(new Form_MultiCheckbox( 'synchronizewol', 'Synchronize Wake-on-LAN', 'WoL Server settings ', ($pconfig['synchronizewol'] === 'on'), 'on' )); $group->add(new Form_MultiCheckbox( 'synchronizestaticroutes', 'Synchronize Static Routes', 'Static Route configuration ', ($pconfig['synchronizestaticroutes'] === 'on'), 'on' )); $group->add(new Form_MultiCheckbox( 'synchronizelb', 'Synchronize Load Balancer', 'Load Balancer configuration ', ($pconfig['synchronizelb'] === 'on'), 'on' )); $group->add(new Form_MultiCheckbox( 'synchronizevirtualip', 'Synchronize Virtual IPs', 'Virtual IPs ', ($pconfig['synchronizevirtualip'] === 'on'), 'on' )); $group->add(new Form_MultiCheckbox( 'synchronizetrafficshaper', 'Synchronize traffic shaper (queues)', 'Traffic Shaper configuration ', ($pconfig['synchronizetrafficshaper'] === 'on'), 'on' )); $group->add(new Form_MultiCheckbox( 'synchronizetrafficshaperlimiter', 'Synchronize traffic shaper (limiter)', 'Traffic Shaper Limiters configuration ', ($pconfig['synchronizetrafficshaperlimiter'] === 'on'), 'on' )); $group->add(new Form_MultiCheckbox( 'synchronizednsforwarder', 'Synchronize DNS (Forwarder/Resolver)', 'DNS Forwarder and DNS Resolver configurations ', ($pconfig['synchronizednsforwarder'] === 'on'), 'on' )); $group->add(new Form_MultiCheckbox( 'synchronizecaptiveportal', 'Synchronize Captive Portal)', 'Captive Portal ', ($pconfig['synchronizecaptiveportal'] === 'on'), 'on' )); $section->add($group); $form->add($section); print($form); include("foot.inc");