Using the Firewall module version 1.9 in puppet 3.8.7, I am getting the following error:
Error 400 on SERVER: Invalid parameter string on Firewall
Here is my Puppet Firewall rule.
firewall {
"051 asterisk-set-rate-limit-register":
string => "REGISTER sip:",
string_algo => "bm",
dport => '5060',
proto => 'udp',
recent => 'set',
rname => 'VOIPREGISTER',
rsource => 'true';
"052 asterisk-drop-rate-limit-register":
string => "REGISTER sip:",
string_algo => "bm",
dport => '5060',
proto => 'udp',
action => 'drop',
recent => 'update',
rseconds => '600',
rhitcount => '5',
rname => 'VOIPREGISTER',
rsource => true,
rttl => true;
}
проблема заключается в том, что класс межсетевого экрана не был создан. Я также добавил команду очистки брандмауэра, чтобы присутствовали только следующие правила. Это удобно, чтобы в брандмауэре случайно не остались дыры.
Вот код, который работает в моей системе:
class { 'firewall': }
resources { 'firewall':
purge => true,
}
firewall { "051 asterisk-set-rate-limit-register":
string => "REGISTER sip:",
string_algo => "bm",
dport => '5060',
proto => 'udp',
recent => 'set',
rname => 'VOIPREGISTER',
rsource => 'true';
}
firewall { "052 asterisk-drop-rate-limit-register":
string => "REGISTER sip:",
string_algo => "bm",
dport => '5060',
proto => 'udp',
action => 'drop',
recent => 'update',
rseconds => '600',
rhitcount => '5',
rname => 'VOIPREGISTER',
rsource => true,
rttl => true;
}
Я тестировал это на своей марионеточной установке с puppetlabs-firewall
установлен.
Успешно применен.