$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");