# Fire 1.0.0

**URL:** <https://www.ruby-forum.com/t/fire-1-0-0/115147>\
**Category:** Ruby\
**Created:** [September 21, 2007, 1:19am UTC](https://www.ruby-forum.com/t/fire-1-0-0/115147 "2007-09-21T01:19:06Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Ari\_B](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/a698b9/32.png) [@Ari\_B](https://www.ruby-forum.com/u/Ari_B)\
**Post date:** [September 21, 2007, 1:19am UTC](https://www.ruby-forum.com/t/fire-1-0-0/115147/1 "2007-09-21T01:19:06Z")

</div>

fire version 1.8.6 has been released!

- [http://fire.rubyforge.com/](http://fire.rubyforge.com/)

## SYNOPSIS:

Here’s how to set up a Port Knocking Daemon with a key of ports 15,  
99, and 1632!  
When the password is accepted, it prints w007!

#### 

class MyPorter \< Porter

def initialize(\*arr)  
super(\*arr)  
end

def rules(pkt)  
return false unless pkt.to\_s =~ /192.168.15.1/  
true  
end

def accept(pkt)  
puts “w007”  
end  
end

MyPorter.new([15, 99, 1632])

Here’s how to set up a quick firewall, which saves it as an IPTables  
script:

###### 

Firewall :write, “/Users/ari/Desktop/firewall.sh” do  
@debug = true

Filter do  
chain “extra\_packets”

```
 extra_packets do
   log :all
 end

 INPUT do
   drop :all, :protocol => "tcp --syn",
   :dest => "192.168.15.1"
   drop :all, :not => {:port => "80"},
   :ip => "192.168.0.0/16",
   :dest_ip => "192.168.0.0/16",
   :interface => "eth0"
   send :all, :to => "extra_packets"
 end

```

end

NAT do  
chain(“TEST”)  
TEST do  
accept :all  
end  
end

Mangle do  
end

Raw do  
end  
end

##########  
And of course, you can manipulate IPTables within your script  
(experimental, but useable)

iptables = IPTables.new  
iptables.drop :all

Changes:

## 1.0.0 / 2007-09-15

- 1 major enhancement

- [http://fire.rubyforge.com/](http://fire.rubyforge.com/)

-------------------------------------------|  
Nietzsche is my copilot

---

<div class="post-metadata">

**Author:** ![Ari\_B](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/a698b9/32.png) [@Ari\_B](https://www.ruby-forum.com/u/Ari_B)\
**Post date:** [September 21, 2007, 4:18am UTC](https://www.ruby-forum.com/t/fire-1-0-0/115147/2 "2007-09-21T04:18:25Z")

</div>

Quoth Ari B.:

> #### 
> 
> script:  
> end  
> end
> 
> iptables.drop :all
> 
> -------------------------------------------|  
> Nietzsche is my copilot

Sounds very cool. I am interested in setting up a port-knocking system,  
so  
I’ll take a look :D.
