Fixed Ubuntu 10.04 - 12.04 support for firewall module.
This commit is contained in:
parent
6f1c01ea81
commit
18b55647ef
1 changed files with 86 additions and 56 deletions
|
@ -77,25 +77,55 @@ class firewall::custom {
|
||||||
#
|
#
|
||||||
class firewall::common::iptables {
|
class firewall::common::iptables {
|
||||||
|
|
||||||
|
case $::operatingsystem {
|
||||||
|
"centos","fedora","redhat": {
|
||||||
|
$iptables = "/etc/sysconfig/iptables"
|
||||||
|
$ip6tables = "/etc/sysconfig/ip6tables"
|
||||||
|
}
|
||||||
|
"ubuntu": {
|
||||||
|
if versioncmp($::operatingsystemrelease, "11.10") < 0 {
|
||||||
|
$iptables = "/etc/iptables/rules"
|
||||||
|
} else {
|
||||||
|
$iptables = "/etc/iptables/rules.v4"
|
||||||
|
}
|
||||||
|
if versioncmp($::operatingsystemrelease, "11.04") < 0 {
|
||||||
|
$ip6tables = undef
|
||||||
|
} else {
|
||||||
|
$ip6tables = "/etc/iptables/rules.v6"
|
||||||
|
}
|
||||||
|
# kludge for missing directory in Ubuntu 11.04 Natty
|
||||||
|
if $::operatingsystemrelease == "11.04" {
|
||||||
|
file { "/etc/iptables":
|
||||||
|
ensure => directory,
|
||||||
|
mode => "0755",
|
||||||
|
owner => "root",
|
||||||
|
group => "root",
|
||||||
|
before => File[$iptables],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
"debian": {
|
||||||
|
$iptables = "/etc/iptables/rules"
|
||||||
|
$ip6tables = undef
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$ip6states = versioncmp($::kernelversion, "2.6.20")
|
||||||
|
|
||||||
package { "iptables":
|
package { "iptables":
|
||||||
|
ensure => installed,
|
||||||
name => $::operatingsystem ? {
|
name => $::operatingsystem ? {
|
||||||
centos => [ "iptables", "iptables-ipv6" ],
|
"centos" => [ "iptables", "iptables-ipv6" ],
|
||||||
redhat => [ "iptables", "iptables-ipv6" ],
|
"redhat" => [ "iptables", "iptables-ipv6" ],
|
||||||
debian => [ "iptables", "iptables-persistent" ],
|
"debian" => [ "iptables", "iptables-persistent" ],
|
||||||
fedora => $::operatingsystemrelease ? {
|
"fedora" => $::operatingsystemrelease ? {
|
||||||
/^1[0-5]/ => [ "iptables", "iptables-ipv6" ],
|
/^1[0-5]/ => [ "iptables", "iptables-ipv6" ],
|
||||||
default => "iptables",
|
default => "iptables",
|
||||||
},
|
},
|
||||||
ubuntu => [ "iptables", "iptables-persistent" ],
|
"ubuntu" => [ "iptables", "iptables-persistent" ],
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
file { "/etc/sysconfig/iptables":
|
file { $iptables:
|
||||||
name => $::operatingsystem ? {
|
|
||||||
debian => "/etc/iptables/rules",
|
|
||||||
ubuntu => "/etc/iptables/rules",
|
|
||||||
default => "/etc/sysconfig/iptables",
|
|
||||||
},
|
|
||||||
ensure => present,
|
ensure => present,
|
||||||
mode => "0600",
|
mode => "0600",
|
||||||
owner => "root",
|
owner => "root",
|
||||||
|
@ -103,11 +133,24 @@ class firewall::common::iptables {
|
||||||
require => Package["iptables"],
|
require => Package["iptables"],
|
||||||
notify => Service["iptables"],
|
notify => Service["iptables"],
|
||||||
}
|
}
|
||||||
|
service { "iptables":
|
||||||
|
ensure => running,
|
||||||
|
name => $::operatingsystem ? {
|
||||||
|
"debian" => "iptables-persistent",
|
||||||
|
"ubuntu" => "iptables-persistent",
|
||||||
|
default => "iptables",
|
||||||
|
},
|
||||||
|
alias => $::operatingsystem ? {
|
||||||
|
"ubuntu" => "ip6tables",
|
||||||
|
default => undef,
|
||||||
|
},
|
||||||
|
enable => true,
|
||||||
|
status => "iptables -t filter --list --line-numbers | egrep '^1'",
|
||||||
|
require => Package["iptables"],
|
||||||
|
}
|
||||||
|
|
||||||
case $::operatingsystem {
|
if $ip6tables {
|
||||||
"centos","redhat","fedora": {
|
file { $ip6tables:
|
||||||
$ip6states = versioncmp($kernelversion, "2.6.20")
|
|
||||||
file { "/etc/sysconfig/ip6tables":
|
|
||||||
ensure => present,
|
ensure => present,
|
||||||
mode => "0600",
|
mode => "0600",
|
||||||
owner => "root",
|
owner => "root",
|
||||||
|
@ -115,6 +158,8 @@ class firewall::common::iptables {
|
||||||
require => Package["iptables"],
|
require => Package["iptables"],
|
||||||
notify => Service["ip6tables"],
|
notify => Service["ip6tables"],
|
||||||
}
|
}
|
||||||
|
case $::operatingsystem {
|
||||||
|
"centos","fedora","redhat": {
|
||||||
service { "ip6tables":
|
service { "ip6tables":
|
||||||
ensure => running,
|
ensure => running,
|
||||||
enable => true,
|
enable => true,
|
||||||
|
@ -122,7 +167,13 @@ class firewall::common::iptables {
|
||||||
hasrestart => true,
|
hasrestart => true,
|
||||||
require => Package["iptables"],
|
require => Package["iptables"],
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if $firewall_modules {
|
if $firewall_modules {
|
||||||
|
case $::operatingsystem {
|
||||||
|
"centos","fedora","redhat": {
|
||||||
$firewall_modules_str = inline_template('<%= @firewall_modules.join(" ") -%>')
|
$firewall_modules_str = inline_template('<%= @firewall_modules.join(" ") -%>')
|
||||||
augeas { "iptables-config":
|
augeas { "iptables-config":
|
||||||
context => "/files/etc/sysconfig/iptables-config",
|
context => "/files/etc/sysconfig/iptables-config",
|
||||||
|
@ -133,25 +184,6 @@ class firewall::common::iptables {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
service { "iptables":
|
|
||||||
name => $::operatingsystem ? {
|
|
||||||
debian => "iptables-persistent",
|
|
||||||
ubuntu => "iptables-persistent",
|
|
||||||
default => "iptables",
|
|
||||||
},
|
|
||||||
ensure => running,
|
|
||||||
enable => true,
|
|
||||||
hasrestart => $::operatingsystem ? {
|
|
||||||
centos => true,
|
|
||||||
redhat => true,
|
|
||||||
debian => false,
|
|
||||||
fedora => true,
|
|
||||||
ubuntu => false,
|
|
||||||
},
|
|
||||||
status => "iptables -t filter --list --line-numbers | egrep '^1'",
|
|
||||||
require => Package["iptables"],
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -159,17 +191,15 @@ class firewall::common::iptables {
|
||||||
#
|
#
|
||||||
class firewall::iptables inherits firewall::common::iptables {
|
class firewall::iptables inherits firewall::common::iptables {
|
||||||
|
|
||||||
File["/etc/sysconfig/iptables"] {
|
File[$firewall::common::iptables::iptables] {
|
||||||
content => template("firewall/iptables.erb"),
|
content => template("firewall/iptables.erb"),
|
||||||
}
|
}
|
||||||
|
|
||||||
case $::operatingsystem {
|
if $firewall::common::iptables::ip6tables {
|
||||||
"centos","redhat","fedora": {
|
File[$firewall::common::iptables::ip6tables] {
|
||||||
File["/etc/sysconfig/ip6tables"] {
|
|
||||||
content => template("firewall/ip6tables.erb"),
|
content => template("firewall/ip6tables.erb"),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -179,7 +209,7 @@ class firewall::iptables inherits firewall::common::iptables {
|
||||||
class firewall::custom::iptables inherits firewall::common::iptables {
|
class firewall::custom::iptables inherits firewall::common::iptables {
|
||||||
|
|
||||||
File["/etc/sysconfig/iptables"] {
|
File["/etc/sysconfig/iptables"] {
|
||||||
source => [ "puppet:///files/firewall/iptables.${fqdn}",
|
source => [ "puppet:///files/firewall/iptables.${::homename}",
|
||||||
"puppet:///files/firewall/iptables", ],
|
"puppet:///files/firewall/iptables", ],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -222,7 +252,7 @@ class firewall::pf inherits firewall::common::pf {
|
||||||
class firewall::custom::pf inherits firewall::common::pf {
|
class firewall::custom::pf inherits firewall::common::pf {
|
||||||
|
|
||||||
File["/etc/pf.conf"] {
|
File["/etc/pf.conf"] {
|
||||||
source => [ "puppet:///files/firewall/pf.conf.${fqdn}",
|
source => [ "puppet:///files/firewall/pf.conf.${::homename}",
|
||||||
"puppet:///files/firewall/pf.conf", ],
|
"puppet:///files/firewall/pf.conf", ],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue