Ever since I started playing with packet filters on embedded PCs, I wanted to
have a nice web-based GUI to control all aspects of my firewall without having
to type a single shell command.
There are numerous efforts to create nice firewall packages with web
interfaces on the Internet (most of them Linux based), but none met all my
requirements (free, fast, simple, clean and with all the features I need).
So, I eventually started writing my own web GUI. But soon I figured out that
I didn't want to create another incarnation of webmin – I wanted to create a
complete, new embedded firewall software package.
It all evolved to the point where one could plug in the box, set the LAN IP
address via the serial console, log into the web interface and set it up.
Then I decided that I didn't like the usual bootup system configuration with
shell scripts (I already had to write a C program to generate the filter rules
since that's almost impossible in a shell script), and since my web interface
was based on PHP, it didn't take me long to figure out that I might use PHP
for the system configuration as well.
That way, the configuration data would no longer have to be stored in text
files that can be parsed in a shell script – it could now be stored in an XML
file. So I completely rewrote the whole system again, not changing much in the
look-and-feel, but quite a lot "under the hood".
End of the m0n0wall project¶
The active development of m0n0wall ended in 2015.
Manuel Kasper, wrote the following on 15 February 2015:
Dear m0n0wall enthusiasts,
on this day 12 years ago, I have released the first version of m0n0wall to
the public. In theory, one could still run that version - pb1 it was called -
on a suitably old PC and use it to control the Internet access of a small LAN
(not that it would be recommended security-wise). However, the world keeps
turning, and while m0n0wall has made an effort to keep up, there are now better
solutions available and under active development.
Therefore, today I announce that the m0n0wall project has officially ended.
No development will be done anymore, and there will be no further releases.
The forums and the mailing list will be frozen at the end of this month.
All the contents of the website, repository, downloads, mailing list and forum
will be archived in a permanent location on the web so that they remain
accessible indefinitely to anyone who might be interested in them.
m0n0wall has served as the seed for several other well known open source
projects, like pfSense, FreeNAS and AskoziaPBX.
The newest offspring, OPNsense (https://opnsense.org), aims to continue the open source spirit of
m0n0wall while updating the technology to be ready for the future. In my view,
it is the perfect way to bring the m0n0wall idea into 2015, and I encourage all
current m0n0wall users to check out OPNsense and contribute if they can.
Finally, I would like to take this opportunity to thank everyone who has been
involved in the m0n0wall project and helped in some way or another -
by contributing code, documentation, answering questions on the mailing
list or the forum, donating or just spreading the word. It has been a great
journey for me, and I'm convinced that even now that it has come to an end,
the m0n0wall spirit will live on in the various projects it has spawned.
Relations with OPNsense¶
Deciso B.V. the founder of OPNsense has taken over the m0n0wall websites from Manuel Kasper and continues to offer all the sources, website & forum content both as a historical reference as well as to preserve knowledge gained.
The OPNsense core team would like to thank Manuel for all his efforts, as without him OPNsense would not have been possible.