Class: Inspec::Resources::FirewallD

Inherits:
Object
  • Object
show all
Defined in:
lib/resources/firewalld.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeFirewallD

Returns a new instance of FirewallD.



40
41
42
# File 'lib/resources/firewalld.rb', line 40

def initialize
  @params = parse_active_zones(active_zones)
end

Instance Attribute Details

#paramsObject (readonly)

Returns the value of attribute params.



28
29
30
# File 'lib/resources/firewalld.rb', line 28

def params
  @params
end

Instance Method Details

#default_zoneObject



60
61
62
63
64
# File 'lib/resources/firewalld.rb', line 60

def default_zone
  # return: word associated with the name of the default zone
  # example: 'public'
  firewalld_command('--get-default-zone')
end

#has_port_enabled_in_zone?(query_port, query_zone = default_zone) ⇒ Boolean

Returns:

  • (Boolean)


82
83
84
# File 'lib/resources/firewalld.rb', line 82

def has_port_enabled_in_zone?(query_port, query_zone = default_zone)
  firewalld_command("--zone=#{query_zone} --query-port=#{query_port}") == 'yes'
end

#has_rule_enabled?(rule, query_zone = default_zone) ⇒ Boolean

Returns:

  • (Boolean)


86
87
88
89
# File 'lib/resources/firewalld.rb', line 86

def has_rule_enabled?(rule, query_zone = default_zone)
  rule = "rule #{rule}" unless rule.start_with?('rule')
  firewalld_command("--zone=#{query_zone} --query-rich-rule='#{rule}'") == 'yes'
end

#has_service_enabled_in_zone?(query_service, query_zone = default_zone) ⇒ Boolean

Returns:

  • (Boolean)


66
67
68
# File 'lib/resources/firewalld.rb', line 66

def has_service_enabled_in_zone?(query_service, query_zone = default_zone)
  firewalld_command("--zone=#{query_zone} --query-service=#{query_service}") == 'yes'
end

#has_zone?(query_zone) ⇒ Boolean

Returns:

  • (Boolean)


48
49
50
51
52
# File 'lib/resources/firewalld.rb', line 48

def has_zone?(query_zone)
  return false unless installed?
  result = firewalld_command('--get-zones').split(' ')
  result.include?(query_zone)
end

#installed?Boolean

Returns:

  • (Boolean)


44
45
46
# File 'lib/resources/firewalld.rb', line 44

def installed?
  inspec.command('firewall-cmd').exist?
end

#running?Boolean

Returns:

  • (Boolean)


54
55
56
57
58
# File 'lib/resources/firewalld.rb', line 54

def running?
  return false unless installed?
  result = firewalld_command('--state')
  result =~ /^running/ ? true : false
end

#service_ports_enabled_in_zone(query_service, query_zone = default_zone) ⇒ Object



70
71
72
73
74
# File 'lib/resources/firewalld.rb', line 70

def service_ports_enabled_in_zone(query_service, query_zone = default_zone)
  # return: String of ports open
  # example: ['22/tcp', '4722/tcp']
  firewalld_command("--zone=#{query_zone} --service=#{query_service} --get-ports --permanent").split(' ')
end

#service_protocols_enabled_in_zone(query_service, query_zone = default_zone) ⇒ Object



76
77
78
79
80
# File 'lib/resources/firewalld.rb', line 76

def service_protocols_enabled_in_zone(query_service, query_zone = default_zone)
  # return: String of protocoals open
  # example: ['icmp', 'ipv4', 'igmp']
  firewalld_command("--zone=#{query_zone} --service=#{query_service} --get-protocols --permanent").split(' ')
end