Class: Netfilter
- Inherits:
-
Object
show all
- Defined in:
- lib/netfilter.rb,
lib/netfilter/tool.rb,
lib/netfilter/chain.rb,
lib/netfilter/table.rb,
lib/netfilter/filter.rb,
lib/netfilter/version.rb,
lib/netfilter/eb_tables.rb,
lib/netfilter/ip_tables.rb,
lib/netfilter/ip6_tables.rb
Defined Under Namespace
Classes: Chain, EbTables, Filter, Ip6Tables, IpTables, Table, Tool
Constant Summary
collapse
- NATIVE_TABLES =
%w(filter nat mangle raw)
- NATIVE_CHAINS =
%w(input output forward prerouting postrouting)
- NATIVE_TARGETS =
%w(accept drop continue return reject dnat snat arpreply ct mark)
- SystemError =
Class.new(StandardError)
- VERSION =
"4.2"
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(namespace = nil) {|eb_tables, ip_tables, ip6_tables| ... } ⇒ Netfilter
Returns a new instance of Netfilter.
36
37
38
39
40
41
|
# File 'lib/netfilter.rb', line 36
def initialize(namespace = nil)
self.eb_tables = EbTables.new(namespace)
self.ip_tables = IpTables.new(namespace)
self.ip6_tables = Ip6Tables.new(namespace)
yield(eb_tables, ip_tables, ip6_tables) if block_given?
end
|
Instance Attribute Details
#eb_tables ⇒ Object
Returns the value of attribute eb_tables.
25
26
27
|
# File 'lib/netfilter.rb', line 25
def eb_tables
@eb_tables
end
|
#ip6_tables ⇒ Object
Returns the value of attribute ip6_tables.
25
26
27
|
# File 'lib/netfilter.rb', line 25
def ip6_tables
@ip6_tables
end
|
#ip_tables ⇒ Object
Returns the value of attribute ip_tables.
25
26
27
|
# File 'lib/netfilter.rb', line 25
def ip_tables
@ip_tables
end
|
Class Method Details
.import(data) ⇒ Object
27
28
29
30
31
32
33
34
|
# File 'lib/netfilter.rb', line 27
def self.import(data)
data = data.symbolize_keys
new.tap do |netfilter|
netfilter.eb_tables = data[:eb_tables] ? EbTables.import(data[:eb_tables]) : EbTables.new
netfilter.ip_tables = data[:ip_tables] ? IpTables.import(data[:ip_tables]) : IpTables.new
netfilter.ip6_tables = data[:ip6_tables] ? Ip6Tables.import(data[:ip6_tables]) : Ip6Tables.new
end
end
|
Instance Method Details
#down ⇒ Object
69
70
71
72
73
74
75
76
77
78
|
# File 'lib/netfilter.rb', line 69
def down
done = []
[:eb_tables, :ip_tables, :ip6_tables].each do |tool|
send(tool).down
done << tool
end
rescue => e
done.reverse.each{ |tool| send(tool).up }
raise e
end
|
#export ⇒ Object
100
101
102
103
104
105
106
|
# File 'lib/netfilter.rb', line 100
def export
{
:eb_tables => eb_tables.export,
:ip_tables => ip_tables.export,
:ip6_tables => ip6_tables.export,
}
end
|
#namespace=(name) ⇒ Object
94
95
96
97
98
|
# File 'lib/netfilter.rb', line 94
def namespace=(name)
eb_tables.namespace = name
ip_tables.namespace = name
ip6_tables.namespace = name
end
|
#pp ⇒ Object
80
81
82
83
84
85
86
87
88
89
90
91
92
|
# File 'lib/netfilter.rb', line 80
def pp
puts "Eb-Tables"
puts "-" * 80
eb_tables.pp
puts
puts "Ip-Tables"
puts "-" * 80
ip_tables.pp
puts
puts "Ip6-Tables"
puts "-" * 80
ip6_tables.pp
end
|
#up ⇒ Object
58
59
60
61
62
63
64
65
66
67
|
# File 'lib/netfilter.rb', line 58
def up
done = []
[:eb_tables, :ip_tables, :ip6_tables].each do |tool|
send(tool).up
done << tool
end
rescue => e
done.reverse.each{ |tool| send(tool).down }
raise e
end
|