mirror of
https://github.com/fwbuilder/fwbuilder
synced 2026-09-11 15:41:41 +02:00
Initial import into v3 branch
This commit is contained in:
@@ -0,0 +1,4 @@
|
||||
Makefile
|
||||
.moc
|
||||
.ui
|
||||
*.app
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
|
||||
|
||||
Vadim Kurland <vadim@vk.crocodile.org.> Main author: GUI, iptables compiler
|
||||
|
||||
Vadim Zaliva <lord@crocodile.org> libfwbuilder API design;
|
||||
XML DTD design;
|
||||
XML data storage implementation;
|
||||
implementation of printing
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
+340
@@ -0,0 +1,340 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
||||
+5553
File diff suppressed because it is too large
Load Diff
+99
@@ -0,0 +1,99 @@
|
||||
$Id: Credits 899 2005-12-14 06:58:43Z vkurland $
|
||||
|
||||
We would like to thank the following people who helped us in various
|
||||
ways to make this project happen:
|
||||
|
||||
Special thanks to Friedhelm Düsterhöft <fd@msdd.net> for help with XML
|
||||
development and initial XSLT filters implementation.
|
||||
|
||||
For icons : Hector Rivera Falu <misha@phreaker.net>
|
||||
|
||||
For icons and a first web site: Tanya Soussokolova <ts@vk.crocodile.org>
|
||||
|
||||
For debugging on SuSE, building packages for SuSE and for help
|
||||
with answering support requests:
|
||||
Marc Pfefferkorn <marc.pfefferkorn@post.rwth-aachen.de>
|
||||
|
||||
For German translation for Firewall Builder v1.x:
|
||||
Marc Pfefferkorn <marc.pfefferkorn@post.rwth-aachen.de>
|
||||
Jens Hektor <hektor@RZ.RWTH-Aachen.DE>
|
||||
Axel Stenkamp <axel.stenkamp@post.rwth-aachen.de>
|
||||
|
||||
For localization patch (gettext support) and French translation
|
||||
for Firewall Builder v1.x:
|
||||
Florent MANENS <manens@efrei.fr>
|
||||
|
||||
For French translation for Firewall Builder v2.x
|
||||
Jean-Michel Pour̩ <jm@poure.com>
|
||||
|
||||
For Japanese translation for Firewall Builder v2.x
|
||||
Tadashi Jokagi <elf@elf.no-ip.org>
|
||||
|
||||
For Swedish translation: Daniel Nylander <yeager@lidkoping.net>
|
||||
|
||||
For ideas, suggestions, patches and contributions:
|
||||
-------------------------------------------------------------
|
||||
Friedhelm Düsterhöft" <friedhelm.duesterhoeft@msdd.net>
|
||||
- many suggestions and prototype for DTD.
|
||||
|
||||
|
||||
Jeremy T. Bouse <jbouse@Debian.org>
|
||||
- package maintainer for Debian
|
||||
- libxml2 support.
|
||||
- X.509 certificate generation druid assistance
|
||||
- iptables/iproute2 patches
|
||||
|
||||
|
||||
Carlo Wood <carlo@alinoe.com>
|
||||
- many valuable patches and bug reports
|
||||
- suggestions regarding rpm building process and changes to spec file
|
||||
|
||||
|
||||
Jochen Friedrich <jochen+fwbuilder-dev@scram.de>
|
||||
- ideas for future development
|
||||
|
||||
|
||||
Vadim Fedukovich <vf@unity.net>
|
||||
- help with OpenSSL and answering related questins.
|
||||
|
||||
|
||||
David Gullasch <gullasch@secunet.de> and
|
||||
stephan_r@users.sourceforge.net
|
||||
- firewall policy installation script
|
||||
|
||||
|
||||
Igor Morozov <igor@grad.kiev.ua>
|
||||
- first attempt at Win32 porting and a prototype
|
||||
|
||||
|
||||
Mark Vevers <mark@vevers.net>
|
||||
- for an idea and a patch that fixes optimizer in fwb_ipt
|
||||
Patch information:
|
||||
|
||||
Author: Mark Vevers
|
||||
Copyright (c) 2004 Research Machines Plc
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
|
||||
Firewall Builder Routing add-on
|
||||
|
||||
Copyright (C) 2004 Compal GmbH, Germany
|
||||
|
||||
Author: Tidei Maurizio <fwbuilder-routing at compal.de>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
of the Software, and to permit persons to whom the Software is furnished to do
|
||||
so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
||||
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
|
||||
OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
@@ -0,0 +1,36 @@
|
||||
$Id: PatchAcceptancePolicy.txt 152 2004-03-27 17:11:54Z vkurland $
|
||||
|
||||
Firewall Buider Project welcomes user contributions. Because we would
|
||||
like not to be limited in future licensing options of the code,
|
||||
authors of all submitted patches must agree that their contribution is
|
||||
donated to our project under terms of following license (this is MIT
|
||||
license):
|
||||
|
||||
-------------------------------------------------------------------------
|
||||
|
||||
Copyright (c) <year> <copyright holders>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
-------------------------------------------------------------------------
|
||||
|
||||
When submitting the patch please state that you agree with this
|
||||
license.
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
|
||||
|
||||
How to generate firewall script for floppyfw
|
||||
(http://www.zelow.no/floppyfw/index.html)
|
||||
|
||||
|
||||
1. in Firewall dialog, tab "Firewall", set the following parameters:
|
||||
|
||||
- "Load modules" - OFF
|
||||
- "Create virtual addresses for NAT rules" - ON
|
||||
- "Use numeric log levels" - ON
|
||||
|
||||
|
||||
2. download and install rpm "fwbuilder-floppyfw-0.9.7"
|
||||
|
||||
|
||||
3. in "Compile/Install" tab configure full path and name of the
|
||||
install script "/usr/bin/floppyfw_install.sh". Now you can compile
|
||||
policy in a usual way using menu Rules->Compile and then install it
|
||||
to floppyfw floppy using menu Rules->Install. Install script makes
|
||||
certain checks to verify that floppy you use indeed contains floppyfw
|
||||
code. Install script depends on mtools package.
|
||||
|
||||
|
||||
4. some useful configuration parameters for floppyfw:
|
||||
|
||||
- activate serial console for kernel boot-time messages and shell:
|
||||
in file "config" : SERIAL_CONSOLE=ttyS0
|
||||
in file "syslinux.cfg" add "console=ttyS0,9600" kernel parameters:
|
||||
|
||||
------- file config ----------------------
|
||||
# Choose the serial port for the console "n" for none.
|
||||
SERIAL_CONSOLE=ttyS0
|
||||
------------------------------------------
|
||||
|
||||
------- file syslinux.cfg ----------------
|
||||
default floppyfw
|
||||
display floppyfw.msg
|
||||
label floppyfw
|
||||
kernel vmlinuz
|
||||
append initrd=initrd.gz root=/dev/fd0 console=ttyS0,9600 ether=0,0,0,eth0 ether=0,0,0,eth1
|
||||
------------------------------------------
|
||||
|
||||
|
||||
|
||||
- logging via syslog:
|
||||
in file "config" set USE_SYSLOG=y and add "-R" to log to remote loghost
|
||||
|
||||
------- file config ----------------------
|
||||
# Turning on syslogd and klogd.
|
||||
# This is a nice thing but will eat CPU which is why it is turned
|
||||
# off by default.
|
||||
#
|
||||
USE_SYSLOG=y
|
||||
|
||||
# This SYSLOG does not use syslogd.conf so we have to set things here.
|
||||
# Flags:
|
||||
# Log to /dev/tty3 instead of /var/log/messages which aren't exactly a
|
||||
# good idea on a ramdisk.
|
||||
# -O /dev/tty3
|
||||
# Log to network. host:port
|
||||
# -R 10.42.42.42:514
|
||||
# Log to both network and file:
|
||||
# -L
|
||||
# --MARK-- 0 is no mark.
|
||||
# -m 0
|
||||
# SYSLOG_FLAGS="-m 360 -O /dev/tty3"
|
||||
SYSLOG_FLAGS="-m 360 -R 10.42.42.4:514"
|
||||
------------------------------------------
|
||||
|
||||
- do not forget to add rule to the firewall policy to permit sending
|
||||
syslog packets from firewall to your loghost
|
||||
|
||||
@@ -0,0 +1,75 @@
|
||||
|
||||
|
||||
Policy compiler for Cisco IOS Access lists has been implemented as
|
||||
part of the Firewall Builder GUI as of version 2.1.12. The first
|
||||
functional build were importer worked on all supported OS was build
|
||||
270 (May 22, 2007)
|
||||
|
||||
|
||||
Support for Cisco IOS access lists in Firewall Builder v2.1.12, build 270:
|
||||
----------------------------------------------------------------
|
||||
|
||||
Features implemented in this version:
|
||||
|
||||
- The compiler generates extended ACLs using "ip access-list
|
||||
extended" command. ACL names are automatically generated using
|
||||
abbreviated interface names and direction symbols to make it easy
|
||||
to figure out which ACL is which. Compiler uses rather minimal set
|
||||
of options of the "ip access-list" command and should generate code
|
||||
that will work for IOS 12.x. I did not test with 11.x but I am
|
||||
pretty sure it will work, at least with the latest versions of
|
||||
11.x.
|
||||
|
||||
- Compiler can also add commands to configure logging.
|
||||
|
||||
- The GUI includes built-in installer for routers which works just
|
||||
like installer for PIX. Both installers were updated however to
|
||||
improve support for the automatic roll-back feature in case you
|
||||
lose connect with the firewall or the router because of an error in
|
||||
the policy. Now you can make installer schedule reboot in a few
|
||||
minutes, then upload new policy or ACLs and then cancel reboot if
|
||||
upload was successful. While before auto-rollback option was only
|
||||
available if you installed in the test mode, now you can always use
|
||||
it. Test mode means that installer does not save configuration in
|
||||
the permanent memory, as before.
|
||||
|
||||
- All three installation methods that were available for PIX are now
|
||||
available for routers: you can make it clear all access lists and
|
||||
then load new ones or just update access lists without
|
||||
clearing. The last method (the "safety net" method) creates
|
||||
temporary acl to permit communication with the management station,
|
||||
assigns it to the interface marked as management interface, then
|
||||
clears all access lists and loads new ones and in the end swaps
|
||||
proper list on the management interface. This helps prevent
|
||||
locking yourself out of the router in the middle of the
|
||||
installation process in case of an error in the ACL and at the same
|
||||
time does not leave the router with no acls for the time it takes
|
||||
to install new policy. In combination with automatic roll-back,
|
||||
installation process is pretty reliable.
|
||||
|
||||
- New option has been added to the interface object, called
|
||||
"unprotected". This allows you to mark some interfaces to be
|
||||
skipped by the compiler when it picks interfaces for ACL
|
||||
rules. This should be useful when you have routers with many
|
||||
interfaces and only want to add ACLs to some of them. Also, you can
|
||||
explicitly put interface objects into policy rules and specify
|
||||
direction if you want to do this manually.
|
||||
|
||||
- Since router ACLs have no state, all rules should be created in the
|
||||
policy pretty much like you do it on the router, including rules
|
||||
that permit reply packets. New option has been added to the TCP
|
||||
Service object, called "established". This makes compiler use
|
||||
option "established" in rules it generates if it is supported by
|
||||
the firewall platform. Compilers for iptables, ipfilter, pf and PIX
|
||||
can not use objects with this option and treat it as an error
|
||||
because corresponding platforms do not support it. IPFW, on the
|
||||
other hand, supports it so compiler fwb_ipfw can use it.
|
||||
|
||||
|
||||
Shortcomings of this version:
|
||||
|
||||
- "tos", "precedence" and "time-range" options are not supported
|
||||
|
||||
- "igmp" access lists can no be generated
|
||||
|
||||
|
||||
+149
@@ -0,0 +1,149 @@
|
||||
fwb_ipf(1) Firewall Builder fwb_ipf(1)
|
||||
|
||||
|
||||
|
||||
NNAAMMEE
|
||||
fwb_ipf - Policy compiler for ipfilter
|
||||
|
||||
SSYYNNOOPPSSIISS
|
||||
ffwwbb__iippff [[--vvVVxx]] [[--dd wwddiirr]] --ff ddaattaa__ffiillee..xxmmll object_name
|
||||
|
||||
|
||||
DDEESSCCRRIIPPTTIIOONN
|
||||
ffwwbb__iippff is a firewall policy compiler component of Fire
|
||||
wall Builder (see fwbuilder(1)). This compiler generates
|
||||
code for ipfilter. Compiler reads objects definitions and
|
||||
firewall description from the data file specified with
|
||||
"-f" option and generates ipfilter configuration files and
|
||||
firewall activation script.
|
||||
|
||||
All generated files have names that start with the name of
|
||||
the firewall object. Firewall activation script has exten
|
||||
sion ".fw" and is simple shell script that flushes current
|
||||
policy, loads new filter and nat rules and then activates
|
||||
ipfilter. IPFilter configuration file name starts with
|
||||
the name of the firewall object, plus "-ipf.conf". NAT
|
||||
configuration file name also starts with the name of the
|
||||
firewall object, plus "-nat.conf". For example, if fire
|
||||
wall object has name "myfirewall", then compiler will cre
|
||||
ate three files: "myfirewall.fw", "myfirewall-pf.conf",
|
||||
"myfirewall-nat.conf".
|
||||
|
||||
The data file and the name of the firewall objects must be
|
||||
specified on the command line. Other command line parame
|
||||
ters are optional.
|
||||
|
||||
|
||||
|
||||
OOPPTTIIOONNSS
|
||||
-f FILE
|
||||
Specify the name of the data file to be processed.
|
||||
|
||||
|
||||
-d wdir
|
||||
Specify working directory. Compiler creates
|
||||
firewall activation script and ipfilter configura
|
||||
tion files in this directory. If this parameter is
|
||||
missing, then all files will be placed in the cur
|
||||
rent working directory.
|
||||
|
||||
|
||||
-v Be verbose: compiler prints diagnostic messages
|
||||
when it works.
|
||||
|
||||
|
||||
-V Print version number and quit.
|
||||
|
||||
|
||||
-x Generate debugging information while working. This
|
||||
option is intended for debugging only and may pro
|
||||
duce lots of cryptic messages.
|
||||
|
||||
|
||||
NNOOTTEESS
|
||||
Support for ipf returned in version 1.0.1 of Firewall
|
||||
Builder
|
||||
|
||||
Supported features:
|
||||
|
||||
|
||||
|
||||
o both ipf.conf and nat.conf files are generated
|
||||
|
||||
|
||||
o negation in policy rules
|
||||
|
||||
|
||||
o stateful inspection in individual rule can be
|
||||
turned off in rule options dialog. By default com
|
||||
piler adds "keep state" or "modulate state" to each
|
||||
rule with action 'pass'
|
||||
|
||||
|
||||
o rule options dialog provides a choice of icmp or
|
||||
tcp rst replies for rules with action "Reject"
|
||||
|
||||
|
||||
o compiler adds flag "allow-opts" if match on ip
|
||||
options is needed
|
||||
|
||||
|
||||
o compiler can generate rules matching on TCP flags
|
||||
|
||||
|
||||
o compiler can generate script adding ip aliases for
|
||||
NAT rules using addresses that do not belong to any
|
||||
interface of the firewall
|
||||
|
||||
|
||||
o compiler always adds rule "block quick all" at the
|
||||
very bottom of the script to ensure "block all by
|
||||
default" policy even if the policy is empty.
|
||||
|
||||
|
||||
o Address ranges in both policy and NAT
|
||||
|
||||
|
||||
|
||||
|
||||
Features that are not supported (yet)
|
||||
|
||||
|
||||
o negation in NAT
|
||||
|
||||
|
||||
o custom services
|
||||
|
||||
|
||||
|
||||
|
||||
Features that won't be supported (at least not anytime
|
||||
soon)
|
||||
|
||||
|
||||
o policy routing
|
||||
|
||||
|
||||
|
||||
|
||||
UURRLL
|
||||
Firewall Builder home page is located at the following
|
||||
URL: hhttttpp::////wwwwww..ffwwbbuuiillddeerr..oorrgg//
|
||||
|
||||
|
||||
BBUUGGSS
|
||||
Please report bugs using bug tracking system on Source
|
||||
Forge:
|
||||
|
||||
hhttttpp::////ssoouurrcceeffoorrggee..nneett//ttrraacckkeerr//??ggrroouupp__iidd==55331144&&aattiidd==110055331144
|
||||
|
||||
|
||||
|
||||
SSEEEE AALLSSOO
|
||||
ffwwbbuuiillddeerr((11)),, ffwwbb__iipptt((11)),, ffwwbb__ppff((11))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
FWB fwb_ipf(1)
|
||||
@@ -0,0 +1,82 @@
|
||||
fwb_ipfw(1) Firewall Builder fwb_ipfw(1)
|
||||
|
||||
|
||||
|
||||
NNAAMMEE
|
||||
fwb_ipfw - Policy compiler for ipfw
|
||||
|
||||
SSYYNNOOPPSSIISS
|
||||
ffwwbb__iippffww [[--vvVVxx]] [[--dd wwddiirr]] --ff ddaattaa__ffiillee..xxmmll object_name
|
||||
|
||||
|
||||
DDEESSCCRRIIPPTTIIOONN
|
||||
ffwwbb__iippffww is a firewall policy compiler component of Fire
|
||||
wall Builder (see fwbuilder(1)). This compiler generates
|
||||
code for ipfw - a firewall and traffic shaper in FreeBSD
|
||||
(see ipfw(8)). Compiler reads objects definitions and
|
||||
firewall description from the data file specified with
|
||||
"-f" option and generates firewall configuration and acti
|
||||
vation script.
|
||||
|
||||
The generated file has a name that starts with the name of
|
||||
the firewall object, with an extension ".fw". It is a
|
||||
shell script that flushes current policy, then loads new
|
||||
filter and nat rules.
|
||||
|
||||
The data file and the name of the firewall objects must be
|
||||
specified on the command line. Other command line parame
|
||||
ters are optional.
|
||||
|
||||
|
||||
|
||||
OOPPTTIIOONNSS
|
||||
-f FILE
|
||||
Specify the name of the data file to be processed.
|
||||
|
||||
|
||||
-d wdir
|
||||
Specify working directory. Compiler creates fire
|
||||
wall activation script in this directory. If this
|
||||
parameter is missing, then all files will be placed
|
||||
in the current working directory.
|
||||
|
||||
|
||||
-v Be verbose: compiler prints diagnostic messages
|
||||
when it works.
|
||||
|
||||
|
||||
-V Print version number and quit.
|
||||
|
||||
|
||||
-x Generate debugging information while working. This
|
||||
option is intended for debugging only and may pro
|
||||
duce lots of cryptic messages.
|
||||
|
||||
|
||||
NNOOTTEESS
|
||||
Support for ipfw was added in version 1.0.10 of Firewall
|
||||
Builder
|
||||
|
||||
|
||||
|
||||
UURRLL
|
||||
Firewall Builder home page is located at the following
|
||||
URL: hhttttpp::////wwwwww..ffwwbbuuiillddeerr..oorrgg//
|
||||
|
||||
|
||||
BBUUGGSS
|
||||
Please report bugs using bug tracking system on Source
|
||||
Forge:
|
||||
|
||||
hhttttpp::////ssoouurrcceeffoorrggee..nneett//ttrraacckkeerr//??ggrroouupp__iidd==55331144&&aattiidd==110055331144
|
||||
|
||||
|
||||
|
||||
SSEEEE AALLSSOO
|
||||
ffwwbbuuiillddeerr((11)),, ffwwbb__iipptt((11)),, ffwwbb__ppff((11)) ffwwbb__iippff((11))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
FWB fwb_ipfw(1)
|
||||
@@ -0,0 +1,68 @@
|
||||
fwb_ipt(1) Firewall Builder fwb_ipt(1)
|
||||
|
||||
|
||||
|
||||
NNAAMMEE
|
||||
fwb_ipt - Policy compiler for iptables
|
||||
|
||||
SSYYNNOOPPSSIISS
|
||||
ffwwbb__iipptt [[--wwvvVV]] [[--dd wwddiirr]] --ff ddaattaa__ffiillee..xxmmll object_name
|
||||
|
||||
|
||||
DDEESSCCRRIIPPTTIIOONN
|
||||
ffwwbb__iipptt is firewall policy compiler component of Firewall
|
||||
Builder (see fwbuilder(1)). Compiler reads objects defini
|
||||
tions and firewall description from the data file speci
|
||||
fied with "-f" option and generates resultant iptables
|
||||
script. The script is written to the file with the name
|
||||
the same as the name of the firewall object, plus exten
|
||||
sion ".fw".
|
||||
|
||||
The data file and the name of the firewall objects must be
|
||||
specified on the command line. Other command line parame
|
||||
ters are optional.
|
||||
|
||||
|
||||
OOPPTTIIOONNSS
|
||||
-f FILE
|
||||
Specify the name of the data file to be processed.
|
||||
|
||||
|
||||
-d wdir
|
||||
Specify working directory. Compiler creates file
|
||||
with iptables script in this directory. If this
|
||||
parameter is missing, then iptables script will be
|
||||
placed in the current working directory.
|
||||
|
||||
|
||||
-w Supress compiler's warnings
|
||||
|
||||
|
||||
-v Be verbose: compiler prints diagnostic messages
|
||||
when it works.
|
||||
|
||||
|
||||
-V Print version number and quit.
|
||||
|
||||
|
||||
UURRLL
|
||||
Firewall Builder home page is located at the following
|
||||
URL: hhttttpp::////wwwwww..ffwwbbuuiillddeerr..oorrgg//
|
||||
|
||||
|
||||
BBUUGGSS
|
||||
Please report bugs using bug tracking system on Source
|
||||
Forge:
|
||||
|
||||
hhttttpp::////ssoouurrcceeffoorrggee..nneett//ttrraacckkeerr//??ggrroouupp__iidd==55331144&&aattiidd==110055331144
|
||||
|
||||
|
||||
|
||||
SSEEEE AALLSSOO
|
||||
ffwwbbuuiillddeerr((11)),, ffwwbb__iippff((11)),, ffwwbb__ppff((11))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
FWB fwb_ipt(1)
|
||||
+152
@@ -0,0 +1,152 @@
|
||||
fwb_pf(1) Firewall Builder fwb_pf(1)
|
||||
|
||||
|
||||
|
||||
NNAAMMEE
|
||||
fwb_pf - Policy compiler for OpenBSD packet filter "pf"
|
||||
|
||||
SSYYNNOOPPSSIISS
|
||||
ffwwbb__ppff [[--vvVVxx]] [[--dd wwddiirr]] --ff ddaattaa__ffiillee..xxmmll object_name
|
||||
|
||||
|
||||
DDEESSCCRRIIPPTTIIOONN
|
||||
ffwwbb__ppff is a firewall policy compiler component of Firewall
|
||||
Builder (see fwbuilder(1)). This compiler generates code
|
||||
for OpenBSD Packet Filter (pf). Compiler reads objects
|
||||
definitions and firewall description from the data file
|
||||
specified with "-f" option and generates pf configuration
|
||||
files and firewall activation script.
|
||||
|
||||
All generated files have names that start with the name of
|
||||
the firewall object. Firewall activation script has exten
|
||||
sion ".fw" and is simple shell script that flushes current
|
||||
policy, loads new filter and nat rules and then activates
|
||||
pf. PF configuration file name starts with the name of
|
||||
the firewall object, plus "-pf.conf". NAT configuration
|
||||
file name also starts with the name of the firewall
|
||||
object, plus "-nat.conf". For example, if firewall object
|
||||
has name "myfirewall", then compiler will create three
|
||||
files: "myfirewall.fw", "myfirewall-pf.conf", "myfirewall-
|
||||
nat.conf".
|
||||
|
||||
The data file and the name of the firewall objects must be
|
||||
specified on the command line. Other command line parame
|
||||
ters are optional.
|
||||
|
||||
|
||||
|
||||
OOPPTTIIOONNSS
|
||||
-f FILE
|
||||
Specify the name of the data file to be processed.
|
||||
|
||||
|
||||
-d wdir
|
||||
Specify working directory. Compiler creates
|
||||
firewall activation script and PF configuration
|
||||
files in this directory. If this parameter is
|
||||
missing, then all files will be placed in the cur
|
||||
rent working directory.
|
||||
|
||||
|
||||
-v Be verbose: compiler prints diagnostic messages
|
||||
when it works.
|
||||
|
||||
|
||||
-V Print version number and quit.
|
||||
|
||||
|
||||
-x Generate debugging information while working. This
|
||||
option is intended for debugging only and may pro
|
||||
duce lots of cryptic messages.
|
||||
|
||||
|
||||
NNOOTTEESS
|
||||
Support for PF has been introduced in version 1.0.1 of
|
||||
Firewall Builder
|
||||
|
||||
|
||||
Supported features:
|
||||
|
||||
|
||||
o both pf.conf and nat.conf files are generated
|
||||
|
||||
|
||||
o negation in policy and NAT rules
|
||||
|
||||
|
||||
o grouping in "from", "to" and ports using '{' '}'
|
||||
syntax
|
||||
|
||||
|
||||
o if checkbox "Scrub" is checked in the rule options
|
||||
dialog, and rule's action is Accept, the compiler
|
||||
generates two (almost) identical rules: first with
|
||||
action 'scrub' and the second with action 'pass
|
||||
quick'
|
||||
|
||||
|
||||
o stateful inspection in individual rule can be
|
||||
turned off in rule options dialog. By default com
|
||||
piler adds "keep state" or "modulate state" to each
|
||||
rule with action 'pass'
|
||||
|
||||
|
||||
o rule options dialog provides a choice of icmp or
|
||||
tcp rst replies for rules with action "Reject"
|
||||
|
||||
|
||||
o compiler adds flag "allow-opts" if match on ip
|
||||
options is needed
|
||||
|
||||
|
||||
o compiler can generate rules matching on TCP flags
|
||||
|
||||
|
||||
o compiler can generate script adding ip aliases for
|
||||
NAT rules using addresses that do not belong to any
|
||||
interface of the firewall
|
||||
|
||||
|
||||
o compiler always adds rule "block quick all" at the
|
||||
very bottom of the script to ensure "block all by
|
||||
default" policy even if the policy is empty.
|
||||
|
||||
|
||||
o Address ranges in both policy and NAT
|
||||
|
||||
|
||||
|
||||
Features that are not supported (yet)
|
||||
|
||||
|
||||
o custom services
|
||||
|
||||
|
||||
|
||||
What will not be supported (at least not anytime soon)
|
||||
|
||||
|
||||
o policy routing
|
||||
|
||||
|
||||
UURRLL
|
||||
Firewall Builder home page is located at the following
|
||||
URL: hhttttpp::////wwwwww..ffwwbbuuiillddeerr..oorrgg//
|
||||
|
||||
|
||||
BBUUGGSS
|
||||
Please report bugs using bug tracking system on Source
|
||||
Forge:
|
||||
|
||||
hhttttpp::////ssoouurrcceeffoorrggee..nneett//ttrraacckkeerr//??ggrroouupp__iidd==55331144&&aattiidd==110055331144
|
||||
|
||||
|
||||
|
||||
SSEEEE AALLSSOO
|
||||
ffwwbbuuiillddeerr((11)),, ffwwbb__iipptt((11)),, ffwwbb__iippff((11))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
FWB fwb_pf(1)
|
||||
@@ -0,0 +1,166 @@
|
||||
|
||||
|
||||
Policy importer has been implemented as part of the Firewall Builder
|
||||
GUI as of version 2.1.12. The first functional build were importer
|
||||
worked on all supported OS was build 270 (May 22, 2007)
|
||||
|
||||
Policy importer uses ANTLR lexer and parser ( http://www.antlr.org/ )
|
||||
Version 2.7.7 is used in Firewall Builder v2.1.12 ( http://www.antlr2.org/ )
|
||||
|
||||
Firewall Builder needs ANTLR C++ runtime header files and library and
|
||||
include these in the source tree under src/antlr. Unless you want to
|
||||
change the grammar (*.g files) you don't need to install ANTLR
|
||||
separately. All relevant ANTLR files are included in the package. For
|
||||
more information on ANTRL see: http://www.antlr2.org
|
||||
|
||||
|
||||
|
||||
Policy import iptables configurations (v2.1.12, build 281 and later)
|
||||
----------------------------------------------------------------
|
||||
|
||||
Features implemented in this version :
|
||||
|
||||
- Importer can parse iptables config saved using iptables-save
|
||||
utility. Because of the huge variety of iptables modules, Importer
|
||||
can only interpret basic iptables configuration and a subset of
|
||||
modules. Currently the following modules are supported:
|
||||
|
||||
* state
|
||||
* multiport
|
||||
* limit
|
||||
* mark
|
||||
|
||||
- Importer creates firewall object with all interfaces. It can not
|
||||
assign object name for the firewall object nor add IP and MAC
|
||||
addresses to interfaces because this information is not present in
|
||||
iptables-save file.
|
||||
|
||||
- option "Assume firewall is part of 'any'" is off in the created
|
||||
firewall object. Import is done this way in order to preserve logic
|
||||
of chains INPUT, OUTPUT and FORWARD in the recreated fwbuilder
|
||||
rules. Rules that had chain INPUT in the imported script will have
|
||||
firewall object in "destination" in the corresponding fwbuilder
|
||||
rules. Firewall object is placed in "Source" for rules with chain
|
||||
OUTPUT. For rules with chain FORWARD rule elements "Source" and
|
||||
"Destination" are populated with objects created using options "-s"
|
||||
and "-d" of the original rules or left empty ("any").
|
||||
|
||||
- all recognized iptables rules are imported and interface and
|
||||
direction are set in all rules appropriately. Interface objects are
|
||||
created as parser finds them in the script.
|
||||
|
||||
- targets ACCEPT, DROP, REJECT, MARK and others are converted to the
|
||||
corresponding fwbuilder policy rule actions. Unrecognized targets
|
||||
and converted to branching rules, where the name of the target
|
||||
becomes the name of the branch.
|
||||
|
||||
- SNAT, DNAT, MASQUERADING, REDIRECT and NETMAP targets and their
|
||||
parameters are recognized in the NAT rules.
|
||||
|
||||
- Address and service objects are created in the process for all
|
||||
addresses and ports used in all rules.
|
||||
|
||||
- iptables rules can refer to tcp/udp ports both by name or by
|
||||
number. Importer can properly interpret both formats using system
|
||||
function getservbyname() to convert service name to the port
|
||||
number. Since the result of this function depends on the OS, some
|
||||
port names may not convert on some systems. For example, Windows
|
||||
can convert more limited set of service names compared to Linux or
|
||||
BSD.
|
||||
|
||||
- targets LOG and ULOG are converted to the "logging" option in
|
||||
fwbuilder rules with action "Continue". This is an empty action
|
||||
that does not affect packet flow through the firewall but can be
|
||||
used in combination with "logging" option to log the packet. If
|
||||
such empty (logging-only) rule is undesired, it must be manually
|
||||
merged with some other rule in the policy.
|
||||
|
||||
- "--log-prefix", and "--log-level" options of the LOG target are
|
||||
recognized
|
||||
|
||||
- "--ulog-prefix" option of the ULOG target is recognized. Other
|
||||
options of the ULOG target are not.
|
||||
|
||||
- Address and service objects are reused in the process of import.
|
||||
|
||||
- in case when importer fails to parse some part of the iptables-save
|
||||
file, corresponding policy rule is colored red and appropriate
|
||||
diagnostic message added to its comment. The problem must be
|
||||
corrected manually.
|
||||
|
||||
- comments ("#") found inside access lists are ignored.
|
||||
|
||||
|
||||
Shortcomings of this version:
|
||||
|
||||
- user-defined chains in table "nat" are not supported
|
||||
|
||||
- no import of time intervals
|
||||
|
||||
- no MAC address matching import
|
||||
|
||||
|
||||
|
||||
|
||||
Policy import of Cisco IOS access lists (v2.1.12, build 270)
|
||||
----------------------------------------------------------------
|
||||
|
||||
Features implemented in this version :
|
||||
|
||||
- Importer can parse router config saved using "show run"
|
||||
command. Although importer can only interpret a subset of IOS
|
||||
configuration commands, other commands that it does not understand
|
||||
will be ignored and should not affect operation. No manual editing
|
||||
of the config is required prior to import.
|
||||
|
||||
- Importer creates firewall object with all interfaces
|
||||
|
||||
- firewall object name is assigned if "hostname" command is found in
|
||||
the configuration. If this command is not present, the name remains
|
||||
generic "New Firewall"
|
||||
|
||||
- interface addresses are assigned if command "ip address" is found
|
||||
(multiple addresses per interface are supported). Interfaces
|
||||
without "ip address" in the configuration are marked as
|
||||
"unnumbered" in the firewall builder object tree.
|
||||
|
||||
- all access lists are imported and interface and direction are set
|
||||
in all rules appropriately
|
||||
|
||||
- Address and service objects are created in the process for all
|
||||
addresses and ports used in access lists
|
||||
|
||||
- IOS access lists can define ip protocol, icmp code and type, and
|
||||
tcp/udp ports both by name or by number. Importer can properly
|
||||
interpret both formats.
|
||||
|
||||
- "log", "log-input", "fragments", "established" keywords are
|
||||
supported and translated into rule or object options as
|
||||
appropriate.
|
||||
|
||||
- Address and service objects are reused in the process of import.
|
||||
|
||||
- in case when importer fails to parse some part of the access-list
|
||||
command, corresponding policy rule is colored in red and
|
||||
appropriate diagnostic message added to its comment. The problem
|
||||
must be corrected manually.
|
||||
|
||||
- "remark" commands found inside access lists are translated into
|
||||
rule comments
|
||||
|
||||
- comments ("!") found inside access lists are ignored.
|
||||
|
||||
|
||||
Shortcomings of this version:
|
||||
|
||||
- importer does not use address and service objects that existed in
|
||||
the tree before the operation has started, it creates new
|
||||
ones. Deduplication only works for objects created in the process
|
||||
of import.
|
||||
|
||||
- the following keywords available in extended access lists are not
|
||||
supported at this time: tos, precedence, time-range.
|
||||
|
||||
- igmp access lists are not parsed.
|
||||
|
||||
|
||||
@@ -0,0 +1,206 @@
|
||||
|
||||
//=========================================================================\\
|
||||
|| Firewall Builder Routing Add-On ||
|
||||
|| ||
|
||||
|| Copyright (c) 2004 Compal GmbH, Germany ||
|
||||
|| Tidei Maurizio, fwbuilder-routing at compal.de ||
|
||||
|| ||
|
||||
\\=========================================================================//
|
||||
|
||||
|
||||
|
||||
Index
|
||||
|
||||
1 - Requirements
|
||||
2 - Features
|
||||
3 - Problems
|
||||
4 - Future
|
||||
|
||||
|
||||
|
||||
(1) Requirements
|
||||
================
|
||||
|
||||
The routing rules composed in the gui can be compiled using the ip
|
||||
tables compiler, which now generates "ip route" commands, too. The
|
||||
"ip" command is available since Linux 2.2. The other compilers (ipf,
|
||||
ipfw, pf and cisco pix) simply ignore the routing rules.
|
||||
|
||||
If you want to use ECMP routing rules (Equal Cost Multi Path), make
|
||||
sure your kernel is compiled with the CONFIG_IP_ROUTE_MULTIPATH
|
||||
option.
|
||||
|
||||
|
||||
|
||||
(2) Features
|
||||
============
|
||||
|
||||
The GUI's routing add-on offers object based definition of the routing
|
||||
rules, exactly the same way as you define policy rules. This enables
|
||||
you to use the same objects you already defined to build the firewall
|
||||
policy in your routing rules. You won't have to update them
|
||||
separately when you change something in your network.
|
||||
|
||||
In the GUI a routing rule is composed of a Destination, a Gateway, an
|
||||
Interface, a Metric and the Comment. The following table shows what
|
||||
can be inserted for this elements:
|
||||
|
||||
| | | | |
|
||||
|Destination |Gateway |Interface |Metric |Comment
|
||||
------------------------|-------------------------------|---------------|---------------|-------|--------
|
||||
What can be inserted? |all Objects under the |- ip-adress |- interface |int |text
|
||||
|library's "Objects" section: |- interface | | |
|
||||
|- address ranges |- host | | |
|
||||
|- addresses | | | |
|
||||
|- groups | | | |
|
||||
|- hosts | | | |
|
||||
|- networks | | | |
|
||||
------------------------|-------------------------------|---------------|---------------|-------|--------
|
||||
Restrictions |none |Only one |The interface |0-255 |none
|
||||
| |interface or |has to be a | |
|
||||
| |host with ONE |child of the | |
|
||||
| |ip adress can |current fire- | |
|
||||
| |be inserted |wall | |
|
||||
------------------------|-------------------------------|---------------|---------------|-------|--------
|
||||
Default value |"Default" (0.0.0.0/0) |none |none |0 |""
|
||||
| | | | |
|
||||
|
||||
To build a valid routing rule you have to insert at least one of the
|
||||
two elements gateway and interface. More than one path can be
|
||||
sprecified for one destination.
|
||||
|
||||
"This approach is called 'Equal-Cost Multi-Path Routing' and is used
|
||||
for load balancing (Note that this does not provide failover). With
|
||||
ECMP, a router potentially has several available next hops towards any
|
||||
given destination. A new gateway is chosen for each new
|
||||
source/destination IP pair. This means that, for example, one FTP
|
||||
connection will use only one link, but new connection to a different
|
||||
server will use another link. This also means that routes to
|
||||
often-used sites will always be over the same provider. But on big
|
||||
backbones this should distribute traffic fine. Also this has another
|
||||
good feature - single connection packets do not get reordered and
|
||||
therefore do not kill TCP performance." (The last Paragraph is a
|
||||
quotation from
|
||||
"http://www.mikrotik.com/Documentation/manual_2.7/IP/Route.html")
|
||||
|
||||
To create an ECMP rule simply specify several rules with different
|
||||
paths, i.e. different combinations of Gateway and Interface, for the
|
||||
same Destination and with the same metric.
|
||||
|
||||
Example:
|
||||
|
||||
Destination Gateway Interface Metric Comment
|
||||
|
||||
hostA hostB eth1 0 first possible route
|
||||
hostA hostC 0 second possible route
|
||||
hostA eth3 0 third possible route
|
||||
|
||||
If you try to insert a non-valid object in a field, it will be ignored
|
||||
and a message box informs you of the mistake.
|
||||
|
||||
The "Default" route can be specified by inserting a new rule or
|
||||
deleting all the destination of an existing rule.
|
||||
|
||||
Before compiling the rules, they traverse several checks, to make sure
|
||||
that only complete, non-ambiguous and non-concurring rules are
|
||||
translated into ip commands. Follow the instructions of the compiler
|
||||
to correct the errors.
|
||||
|
||||
If no error was found, the rules are automatically classified in ECMP
|
||||
rules and non-ECMP. The ECMP rules are written out in a separated
|
||||
section of the firewall script after the "normal" routing rules.
|
||||
|
||||
|
||||
|
||||
(3) Problems
|
||||
============
|
||||
|
||||
1.
|
||||
Please note that when executing a firewall script all existing
|
||||
routing rules previously set by user space processes will be
|
||||
deleted.
|
||||
|
||||
To see which rules will be deleted, you can use the command "ip
|
||||
route show". All lines not including "proto kernel" will be deleted
|
||||
upon reload of the firewall script.
|
||||
|
||||
2.
|
||||
*** NOTE FOR REDHAT 8.0 ***
|
||||
|
||||
Redhat seems to reset routing rules explicitly upon system
|
||||
startup. Therefore its hard to distinguish interface rules from
|
||||
rules setup by the user. On Redhat systems you need to include the
|
||||
interface basic routing rules into your fwbuilder routing setup. IF
|
||||
YOU DO NOT FOLLOW THIS HINT, YOUR MACHINE WILL FREEZE ANY NETWORK
|
||||
TRAFFIC UPON START OF THE FIREWALL SCRIPT. This means e.g. if eth0
|
||||
has network 192.168.3.0/24 attached to it, you need to add a route
|
||||
with Destination=Network(192.168.3.0/24), Gateway empty and
|
||||
Interface=eth0. We encountered this problem on redhat 8.0. Other
|
||||
versions and distros might be affected too. Debian sarge and SuSE
|
||||
Linux work fine without interface routing rules being included in
|
||||
fwbuilders routing rules.
|
||||
|
||||
3.
|
||||
If the firewall script states that the ECMP routes could not be
|
||||
installed on your system, make sure your Kernel was compiled with
|
||||
the CONFIG_IP_ROUTE_MULTIPATH option or renounce to ECMP rules.
|
||||
|
||||
4.
|
||||
If you have interfaces with a dynamic address or a point-to-point
|
||||
address and you try to insert a routing rule for the default
|
||||
gateway, compilation might fail, stateing "gateway not reachable".
|
||||
Typically this is the case for DSL dialup links. Solution: leave the
|
||||
gateway field empty. Just specify the interface.
|
||||
|
||||
Example:
|
||||
|
||||
The firewall connects itself to the internet by a DSL link via
|
||||
interface ppp0. During dialup pppd configures the default route:
|
||||
|
||||
default via 62.14.190.33 dev ppp
|
||||
|
||||
After specifying a routing rule in fwbuilder Destination=default,
|
||||
Gateway empty, Interface=ppp0 and running the script on the
|
||||
firewall, the route looks like:
|
||||
|
||||
default dev ppp0 scope link
|
||||
|
||||
Besides this, the kernel generates another route automaticelly upon
|
||||
default gw setup:
|
||||
|
||||
62.14.190.33 dev ppp0 proto kernel scope link src 191.54.12.143
|
||||
|
||||
We tested this on Debian/sarge with kernel 2.4.27.
|
||||
|
||||
Technical explanation:
|
||||
|
||||
On compilation, fwbuilder checks if gateways are reachable through
|
||||
any local network of the firewall. Otherwise setting up routing
|
||||
rules will fail on the firewall upon install. In case of
|
||||
point-to-point interfaces fwbuilder doesn't know the point-to-point
|
||||
address of the interface. Therefore this check fails since for
|
||||
fwbuilder it looks like the gateway is not from any local network.
|
||||
The only workaround available so far is to leave the gateway empty
|
||||
and to specify the interface only. Pakets will find their way to
|
||||
the internet anyway, since they are traveling over a point-to-point
|
||||
interface.
|
||||
|
||||
|
||||
(4) Future
|
||||
==========
|
||||
|
||||
Ideas, that could be implemented in the future, are:
|
||||
|
||||
- Multiple customizable routing tables
|
||||
|
||||
The idea is to add an option to the policy rules enabling the user
|
||||
to mark matching packets with a color. For every used color a new
|
||||
routing table would have to be built, that will be used only for
|
||||
packets marked with the associated color.
|
||||
|
||||
|
||||
- Load balancing
|
||||
|
||||
Another idea is to integrate more sophisticated load balancing
|
||||
options in fwbuilder's GUI.
|
||||
|
||||
@@ -0,0 +1,103 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
|
||||
<link rel="stylesheet" type="text/css" href="http://www.fwbuilder.org/pages/fwbuilder.css">
|
||||
<title>Release Notes 2.0.1</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h1> Firewall Builder Release Notes </h1>
|
||||
<br>
|
||||
<h2> Version 2.0.1 </h2>
|
||||
<br>
|
||||
<p>
|
||||
Released 08/11/04
|
||||
<br>
|
||||
<b>GUI and compilers v2.0.1 require API library libfwbuilder version 2.0.1</b>
|
||||
<br>
|
||||
<h2>Summary </h2>
|
||||
<p>
|
||||
Firewall Builder GUI v2.0.1 is a maintenance release that includes
|
||||
fixes for bugs discovered since 2.0 has been released.
|
||||
<p>
|
||||
<b>For those who wish to build from source, instructions are outlined
|
||||
in <a
|
||||
href="http://www.fwbuilder.org/archives/cat_installation.html">"Install
|
||||
and Build instructions"</a></b>
|
||||
|
||||
|
||||
<h2>Bugs fixed in libfwbuilder API:</h2>
|
||||
<ul>
|
||||
<li>bug #1001725: "object with empty name can not be
|
||||
deleted". the problem was caused by the algorithm used in
|
||||
FWObject::getPath. If object had had a blank name, the path
|
||||
returned by this method would end with the name of its parent
|
||||
without slash.</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<h2>Bugs fixed in GUI:</h2>
|
||||
<ul>
|
||||
<li>bug #1001521: "Cant create ICMP service". ICMP Service
|
||||
dialog did not save icmp code and type numbers in the object.
|
||||
</li>
|
||||
|
||||
<li>bug #1001275: "object duplication fails w/ no action". GUI
|
||||
used to not allow user to duplicate IP address object. Now any
|
||||
object can be duplicated so that the copy is placed under the
|
||||
same parent, including IP address.</li>
|
||||
|
||||
<li>bug #1000862: "Creating groups in Deleted Objects". Library
|
||||
"Deleted objects" should not be offered as a choice for "group
|
||||
objects" operation.</li>
|
||||
|
||||
<li>bug #1000485: "Firewalls in the drop-down box not
|
||||
ordered". List of firewalls in the pull-down that controls
|
||||
policy views is now alphabetically sorted on program
|
||||
startup.</li>
|
||||
|
||||
<li>there were two TCP Service objects "linuxconf" in the
|
||||
Standard objects library. Object with ID id3AED0D6D has been
|
||||
removed. It seems this object has been duplicated long time ago
|
||||
(at least it was like this in 1.1.2)</li>
|
||||
|
||||
<li>bug #1002388: "Clamp MSS to MTU" option was missing in
|
||||
2.0</li>
|
||||
|
||||
<li>bug #1001833: fixed memory leak that appeared when autosave
|
||||
option was used</li>
|
||||
|
||||
<li>bug #1003068: "object copy/paste not always working". IP
|
||||
address object could not be placed under interface using
|
||||
copy/paste operation. Now ip address object can be pasted to
|
||||
interface as well as to Objects/Addresses folder.</li>
|
||||
|
||||
<li>Operation File/discard could not be used if the file was
|
||||
upgraded. Changed the way operation File/Discard works: it now
|
||||
closes the file, discards all the changes that have been made to
|
||||
it and replaces it with a fresh copy of the head revision from
|
||||
RCS. This works if user wants to abort file upgrade when they
|
||||
switch to the new version of fwbuilder.</li>
|
||||
</ul>
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<h2>Bugs fixed in iptables policy compiler fwb_ipt:</h2>
|
||||
<ul>
|
||||
<li>bug #1004153 "limit-burst = 0 is not valid". Iptables does not
|
||||
accept the rule using "limit-burst" option if it is set to
|
||||
zero.</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<hr>
|
||||
<!-- Created: Fri Aug 6 21:40:42 PDT 2004 -->
|
||||
<!-- hhmts start -->
|
||||
Last modified: Wed Aug 11 20:54:38 PDT 2004
|
||||
<!-- hhmts end -->
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,55 @@
|
||||
Firewall Builder Release Notes
|
||||
|
||||
Version 2.0.1
|
||||
|
||||
Released 08/11/04
|
||||
GUI and compilers v2.0.1 require API library libfwbuilder version 2.0.1
|
||||
|
||||
Summary
|
||||
|
||||
Firewall Builder GUI v2.0.1 is a maintenance release that includes fixes for bugs discovered
|
||||
since 2.0 has been released.
|
||||
|
||||
For those who wish to build from source, instructions are outlined in "Install and Build
|
||||
instructions"
|
||||
|
||||
Bugs fixed in libfwbuilder API:
|
||||
|
||||
* bug #1001725: "object with empty name can not be deleted". the problem was caused by the
|
||||
algorithm used in FWObject::getPath. If object had had a blank name, the path returned by
|
||||
this method would end with the name of its parent without slash.
|
||||
|
||||
Bugs fixed in GUI:
|
||||
|
||||
* bug #1001521: "Cant create ICMP service". ICMP Service dialog did not save icmp code and
|
||||
type numbers in the object.
|
||||
* bug #1001275: "object duplication fails w/ no action". GUI used to not allow user to
|
||||
duplicate IP address object. Now any object can be duplicated so that the copy is placed
|
||||
under the same parent, including IP address.
|
||||
* bug #1000862: "Creating groups in Deleted Objects". Library "Deleted objects" should not
|
||||
be offered as a choice for "group objects" operation.
|
||||
* bug #1000485: "Firewalls in the drop-down box not ordered". List of firewalls in the
|
||||
pull-down that controls policy views is now alphabetically sorted on program startup.
|
||||
* there were two TCP Service objects "linuxconf" in the Standard objects library. Object
|
||||
with ID id3AED0D6D has been removed. It seems this object has been duplicated long time
|
||||
ago (at least it was like this in 1.1.2)
|
||||
* bug #1002388: "Clamp MSS to MTU" option was missing in 2.0
|
||||
* bug #1001833: fixed memory leak that appeared when autosave option was used
|
||||
* bug #1003068: "object copy/paste not always working". IP address object could not be
|
||||
placed under interface using copy/paste operation. Now ip address object can be pasted to
|
||||
interface as well as to Objects/Addresses folder.
|
||||
* Operation File/discard could not be used if the file was upgraded. Changed the way
|
||||
operation File/Discard works: it now closes the file, discards all the changes that have
|
||||
been made to it and replaces it with a fresh copy of the head revision from RCS. This
|
||||
works if user wants to abort file upgrade when they switch to the new version of
|
||||
fwbuilder.
|
||||
|
||||
Bugs fixed in iptables policy compiler fwb_ipt:
|
||||
|
||||
* bug #1004153 "limit-burst = 0 is not valid". Iptables does not accept the rule using
|
||||
"limit-burst" option if it is set to zero.
|
||||
|
||||
------------------------------------------------------------------------------------------
|
||||
|
||||
Last modified: Wed Aug 11 20:54:38 PDT 2004
|
||||
6 PDT 2004
|
||||
@@ -0,0 +1,171 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
|
||||
<link rel="stylesheet" type="text/css" href="http://www.fwbuilder.org/pages/fwbuilder.css">
|
||||
<title>Release Notes 2.0.2</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h1> Firewall Builder Release Notes </h1>
|
||||
<br>
|
||||
<h2> Version 2.0.2 </h2>
|
||||
<br>
|
||||
<p>
|
||||
Released 08/31/04
|
||||
<br>
|
||||
<b>GUI and compilers v2.0.2 require API library libfwbuilder version 2.0.2</b>
|
||||
<br>
|
||||
<h2>Summary </h2>
|
||||
<p>
|
||||
Firewall Builder GUI v2.0.2 is a maintenance release that includes
|
||||
fixes for bugs discovered since 2.0.1 has been released.
|
||||
<p>
|
||||
<b>For those who wish to build from source, instructions are outlined
|
||||
in <a
|
||||
href="http://www.fwbuilder.org/archives/cat_installation.html">"Install
|
||||
and Build instructions"</a></b>
|
||||
|
||||
|
||||
<h2>General</h2>
|
||||
<ul>
|
||||
<li>Updated FreeBSD ports, tested on 5.3-BETA</li>
|
||||
</ul>
|
||||
<p>
|
||||
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<h2>New standard objects</h2>
|
||||
<ul>
|
||||
<li>added new service objects to the Standard objects library:
|
||||
"xmas scan" (old object renamed "xmas scan - full"), rsync,
|
||||
distcc, cvspserver, cvsup, afp, whois, bgp, radius and radius
|
||||
acct, SSDP and UPnP.</li>
|
||||
</ul>
|
||||
<p>
|
||||
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<h2>New template objects</h2>
|
||||
<ul>
|
||||
<li>added template firewall objects for Linksys firewall and a
|
||||
web server.</li>
|
||||
</ul>
|
||||
<p>
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<h2>New features in policy compiler for PF</h2>
|
||||
<ul>
|
||||
<li>Implemented support for all timeout settings in pf:
|
||||
tcp.first,tcp.opening,tcp.established,
|
||||
tcp.closing,tcp.finwait,tcp.closed,udp.first,udp.single,udp.multiple,
|
||||
icmp.first,icmp.error,other.first,other.single,other.multiple,
|
||||
including adaptive timeout scaling options adaptive.start and
|
||||
adaptive.end</li>
|
||||
|
||||
<li>Added support for options "max", "max-src-nodes" and
|
||||
"max-src-states" in pf. These allow to limit number of
|
||||
concurrent state table entries ("max"), number of source
|
||||
addresses that can simultaneously have state table entries
|
||||
("max-src-nodes") and number of simultaneous state entries per
|
||||
source address ("max-src-states") per rule.</li>
|
||||
</ul>
|
||||
<p>
|
||||
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<h2>Bugs fixed in libfwbuilder API:</h2>
|
||||
<ul>
|
||||
<li>: added element physAddress to list of child elements of
|
||||
Library (bug #1011617)</li>
|
||||
|
||||
<li>bug #1012733: "configure --libdir=DIR will be ignored at
|
||||
installation". Needed to use macro _libdir to specify target
|
||||
directory for libraries. Used it in configure, qmake.in,
|
||||
libfwbuilder-config-2 and a .spec file. Code should compile and
|
||||
install in correct place on 64-bit systems.</li>
|
||||
</ul>
|
||||
<p>
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<h2>Bugs fixed in GUI:</h2>
|
||||
<ul>
|
||||
<li>bug #1019691: "040829 nightly build doesn't add paths for
|
||||
linksys"</li>
|
||||
|
||||
<li>bug #1013177: "deleting multiple hosts causes crash"
|
||||
</li>
|
||||
|
||||
<li>bug #1009345: "Can only move one host object at a time
|
||||
between libraries"</li>
|
||||
|
||||
<li>bug #1013018: "host OS settings" dialog is missing for
|
||||
linksys. Added host OS settings dialog for
|
||||
linksys/Sveasoft. Dialog provides entry fields for paths to
|
||||
iptables, lsmod, modprobe, logger tools and two shell prompt
|
||||
string patterns, this should help to work around changes in the
|
||||
shell prompt on Linksys.</li>
|
||||
|
||||
<li>bug #1013022: "can not install policy script on linksts
|
||||
Alchemy pre-5.2". Built-in installer uses shell prompt string
|
||||
patterns configured in the host OS settings dialog for
|
||||
linksys.</li>
|
||||
|
||||
<li>bug #1008956: "Existing .fwb file gets overwritten if has
|
||||
wrong extension". If the GUI needs to rename a data file with
|
||||
old extension .xml to .fwb, it checks if a file with new
|
||||
extension exists and offers user a chance to choose a different
|
||||
name. It also treats symlinks in a special way: if user creates
|
||||
a symlink with extension .xml pointing at a file with extension
|
||||
.fwb, the GUI simply follows the link and works with .fwb
|
||||
file. This should work with Windows shortcuts, too. </li>
|
||||
|
||||
<li>bug #1013485: "File/Import should allow to import .fwb
|
||||
file". Function File/Import offers a choice of .fwl, .fwb and
|
||||
"all files" in the open file dialog.</li>
|
||||
|
||||
<li>bug #1011248: "need two xmas scan service objects". </li>
|
||||
|
||||
<li>bug #1013957: "incorrect NAT rule in firewall created from
|
||||
template #3". The problem was caused by incorrect ip address of
|
||||
interface "dmz" in the template object #3.</li>
|
||||
|
||||
<li>bug #1014725: "adding new ICMP types". If user created
|
||||
service group with the name "ICMP", the GUI would place new ICMP
|
||||
objects under this group instead of the standard folder
|
||||
"ICMP". There was the same problem with other object types, too.</li>
|
||||
|
||||
<li>bug #1015884: "Export more than one library fails with 0
|
||||
references". Export library operation failed if user exported
|
||||
two libraries with groups or rules in one library referencing
|
||||
objects in the other.</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<h2>Bugs fixed in iptables policy compiler fwb_ipt:</h2>
|
||||
<ul>
|
||||
<li>bug #1005148: "MAC matching - space missing". Space was
|
||||
missing between MAC address and custom service code.</li>
|
||||
|
||||
<li>avoiding grep in the script generated for Linksys/Sveasoft
|
||||
firewall - Sveasoft Alchemy pre-5.2.3 does not have grep</li>
|
||||
|
||||
<li>bug #1019943: "Missing ip addresses in the rule using
|
||||
interfaces"</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<hr>
|
||||
<!-- Created: Fri Aug 6 21:40:42 PDT 2004 -->
|
||||
<!-- hhmts start -->
|
||||
Last modified: Tue Aug 31 20:38:55 PDT 2004
|
||||
<!-- hhmts end -->
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,100 @@
|
||||
Firewall Builder Release Notes
|
||||
|
||||
Version 2.0.2
|
||||
|
||||
Released 08/31/04
|
||||
GUI and compilers v2.0.2 require API library libfwbuilder version 2.0.2
|
||||
|
||||
Summary
|
||||
|
||||
Firewall Builder GUI v2.0.2 is a maintenance release that includes fixes
|
||||
for bugs discovered since 2.0.1 has been released.
|
||||
|
||||
For those who wish to build from source, instructions are outlined in
|
||||
"Install and Build instructions"
|
||||
|
||||
General
|
||||
|
||||
* Updated FreeBSD ports, tested on 5.3-BETA
|
||||
|
||||
New standard objects
|
||||
|
||||
* added new service objects to the Standard objects library: "xmas scan"
|
||||
(old object renamed "xmas scan - full"), rsync, distcc, cvspserver,
|
||||
cvsup, afp, whois, bgp, radius and radius acct, SSDP and UPnP.
|
||||
|
||||
New template objects
|
||||
|
||||
* added template firewall objects for Linksys firewall and a web server.
|
||||
|
||||
New features in policy compiler for PF
|
||||
|
||||
* Implemented support for all timeout settings in pf:
|
||||
tcp.first,tcp.opening,tcp.established,
|
||||
tcp.closing,tcp.finwait,tcp.closed,udp.first,udp.single,udp.multiple,
|
||||
icmp.first,icmp.error,other.first,other.single,other.multiple,
|
||||
including adaptive timeout scaling options adaptive.start and
|
||||
adaptive.end
|
||||
* Added support for options "max", "max-src-nodes" and "max-src-states"
|
||||
in pf. These allow to limit number of concurrent state table entries
|
||||
("max"), number of source addresses that can simultaneously have state
|
||||
table entries ("max-src-nodes") and number of simultaneous state
|
||||
entries per source address ("max-src-states") per rule.
|
||||
|
||||
Bugs fixed in libfwbuilder API:
|
||||
|
||||
* : added element physAddress to list of child elements of Library (bug
|
||||
#1011617)
|
||||
* bug #1012733: "configure --libdir=DIR will be ignored at
|
||||
installation". Needed to use macro _libdir to specify target directory
|
||||
for libraries. Used it in configure, qmake.in, libfwbuilder-config-2
|
||||
and a .spec file. Code should compile and install in correct place on
|
||||
64-bit systems.
|
||||
|
||||
Bugs fixed in GUI:
|
||||
|
||||
* bug #1019691: "040829 nightly build doesn't add paths for linksys"
|
||||
* bug #1013177: "deleting multiple hosts causes crash"
|
||||
* bug #1009345: "Can only move one host object at a time between
|
||||
libraries"
|
||||
* bug #1013018: "host OS settings" dialog is missing for linksys. Added
|
||||
host OS settings dialog for linksys/Sveasoft. Dialog provides entry
|
||||
fields for paths to iptables, lsmod, modprobe, logger tools and two
|
||||
shell prompt string patterns, this should help to work around changes
|
||||
in the shell prompt on Linksys.
|
||||
* bug #1013022: "can not install policy script on linksts Alchemy
|
||||
pre-5.2". Built-in installer uses shell prompt string patterns
|
||||
configured in the host OS settings dialog for linksys.
|
||||
* bug #1008956: "Existing .fwb file gets overwritten if has wrong
|
||||
extension". If the GUI needs to rename a data file with old extension
|
||||
.xml to .fwb, it checks if a file with new extension exists and offers
|
||||
user a chance to choose a different name. It also treats symlinks in a
|
||||
special way: if user creates a symlink with extension .xml pointing at
|
||||
a file with extension .fwb, the GUI simply follows the link and works
|
||||
with .fwb file. This should work with Windows shortcuts, too.
|
||||
* bug #1013485: "File/Import should allow to import .fwb file". Function
|
||||
File/Import offers a choice of .fwl, .fwb and "all files" in the open
|
||||
file dialog.
|
||||
* bug #1011248: "need two xmas scan service objects".
|
||||
* bug #1013957: "incorrect NAT rule in firewall created from template
|
||||
#3". The problem was caused by incorrect ip address of interface "dmz"
|
||||
in the template object #3.
|
||||
* bug #1014725: "adding new ICMP types". If user created service group
|
||||
with the name "ICMP", the GUI would place new ICMP objects under this
|
||||
group instead of the standard folder "ICMP". There was the same
|
||||
problem with other object types, too.
|
||||
* bug #1015884: "Export more than one library fails with 0 references".
|
||||
Export library operation failed if user exported two libraries with
|
||||
groups or rules in one library referencing objects in the other.
|
||||
|
||||
Bugs fixed in iptables policy compiler fwb_ipt:
|
||||
|
||||
* bug #1005148: "MAC matching - space missing". Space was missing
|
||||
between MAC address and custom service code.
|
||||
* avoiding grep in the script generated for Linksys/Sveasoft firewall -
|
||||
Sveasoft Alchemy pre-5.2.3 does not have grep
|
||||
* bug #1019943: "Missing ip addresses in the rule using interfaces"
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Last modified: Tue Aug 31 20:38:55 PDT 2004
|
||||
@@ -0,0 +1,306 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
|
||||
<link rel="stylesheet" type="text/css" href="http://www.fwbuilder.org/pages/fwbuilder.css">
|
||||
<title>Release Notes 2.0.3</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h1> Firewall Builder Release Notes </h1>
|
||||
<br>
|
||||
<h2> Version 2.0.3 </h2>
|
||||
<br>
|
||||
<p>
|
||||
Released 09/30/04
|
||||
<br>
|
||||
<b>GUI and compilers v2.0.3 require API library libfwbuilder version 2.0.3</b>
|
||||
<br>
|
||||
<h2>Summary </h2>
|
||||
<p>
|
||||
Firewall Builder GUI v2.0.3 is a maintenance release that includes
|
||||
fixes for bugs discovered since 2.0.2 has been released.
|
||||
<p>
|
||||
<b>For those who wish to build from source, instructions are outlined
|
||||
in <a
|
||||
href="http://www.fwbuilder.org/archives/cat_installation.html">"Install
|
||||
and Build instructions"</a></b>
|
||||
|
||||
<ul>
|
||||
<li>This release improves support for the PF firewall by always
|
||||
using tables in policy rules; it also uses syntax " !
|
||||
<tbl>" for negation, assignes "rdr" rules to interfaces
|
||||
and adds "flags S/SA" to policy rules that keep state. </li>
|
||||
|
||||
<li>This release significantly improves optimizer for iptables
|
||||
and adds an automatically generated rule to block packets that
|
||||
correspond to an INVALID state</li>
|
||||
|
||||
<li>Built-in policy installer can compress firewall policy
|
||||
script before it is installed in flash memory on
|
||||
Linksys/Sveasoft firewall; this allows for much larger policy to
|
||||
be used on Linksys. Script compression is optional.</li>
|
||||
|
||||
<li>Built-in policy installer can be used to test new policy
|
||||
rules with automatic roll-back to the previous version of the
|
||||
policy after specified interval of time. This feature helps to
|
||||
work around errors in the policy that block access to the
|
||||
firewall from the management workstation.
|
||||
</ul>
|
||||
<p>
|
||||
|
||||
|
||||
<h2>Caveats</h2>
|
||||
|
||||
<p>New version (as of build 421) completely changes the way it
|
||||
loads and activates firewall script on linksys. Old version put
|
||||
the whole script in variable rc_firewall. New one puts script in
|
||||
variable fwb and puts a one-line command in rc_firewall to read
|
||||
the script from fwb and execute it. This was done because of the
|
||||
need to uncompress it when linksys executes command stored in
|
||||
rc_firewall, in other words, rc_firewall needs to be a little
|
||||
script that uncompresses and runs the main firewall script. This
|
||||
is why scripts were separated and rc_firewall has changed compared
|
||||
to the previous versions of fwbuilder.
|
||||
|
||||
<p>Reverting from v2.0.3 (build 421 and later) to v2.0.2 requires
|
||||
you to erase nvram variable "fwb" which holds the whole script in
|
||||
the new builds.
|
||||
|
||||
<p>
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<h2>New features in the built in policy installer</h2>
|
||||
<ul>
|
||||
<li>added an option for test run. When this option is activated,
|
||||
policy script is pushed to the firewall and is executed but is
|
||||
not stored there permanently. Firewall reverts to the last
|
||||
working configuration after reboot.</li>
|
||||
|
||||
<li>implemented compression of the firewall script for
|
||||
Linksys/Sveasoft combo. Using gzip and uuencode/uudecode to
|
||||
compress the script and store it in flash variable
|
||||
'fwb'. Installer prints flash memory stats after commiting
|
||||
changes. Installer uses scp to copy firewall script to the
|
||||
firewall and autogenerated prompt to detect when it logged in;
|
||||
it does not depend on Linksys shell prompt anymore.</li>
|
||||
|
||||
<li>added an option to schedule automatic firewall reboot in
|
||||
specified time (in minutes) after policy activation. <b>This
|
||||
option is available for all firewall platforms but PIX</b>. This
|
||||
option only works if user requested policy activation in a test
|
||||
mode, in which case policy is copied and activated on the
|
||||
firewall but not stored in the permanent location. After reboot
|
||||
the firewall reverts to the previous version of the policy. To
|
||||
cancel scheduled reboot, run installer again with "test run"
|
||||
option turned off. Installer stores the policy in the permanent
|
||||
location, activates it and cancels scheduled reboot. The
|
||||
commands used to schedule reboot and cancel it depend on the
|
||||
host os of the firewall. On Linux, it will use "shutdown -r +NN"
|
||||
and "shutdown -c". On *BSD systems it uses "shutdown -r +NN" and
|
||||
a combination of ps and awk to find and kill shutdown when
|
||||
reboot is canceled. Installer uses "reboot" and kills it with
|
||||
"killall" on linksys.</li>
|
||||
|
||||
<li>All manipulations that installer does on the firewall are
|
||||
programmed in little one-line scripts stored in resource file
|
||||
for each supported OS the firewall is running. These are in
|
||||
/usr/share/fwbuilder/os on Linux/*BSD or in
|
||||
C:\FWBuilder\resources\os on Windows. Users can hack commands
|
||||
in these files to make installer work with host OS that is not
|
||||
supported by default. Currently, the GUI only looks for the
|
||||
OS-specific resource files in the system-wide directory. Future
|
||||
versions will also look in a predefined directory in users'
|
||||
home. Directory path to be defined later.</li>
|
||||
|
||||
<li>Added option "output file name" to firewall settings dialogs
|
||||
for all platforms. User can specify the name for the output
|
||||
file; this name is then used by built in installer in place of a
|
||||
macro %FWSCRIPT%.</li>
|
||||
</ul>
|
||||
<p>
|
||||
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<h2>New features in policy compiler for iptables</h2>
|
||||
<ul>
|
||||
<li>implemented feature request #1023430: "add checkbox for
|
||||
INVALID support in fw settings". Added two checkboxes to the
|
||||
firewall settings dialog: one adds a rule to drop INVALID
|
||||
packets and another adds logging to the rule.</li>
|
||||
|
||||
<li>rules that permit packets associated with
|
||||
ESTABLISHED,RELATED states moved to the beginning of the script
|
||||
before NAT rules.</li>
|
||||
|
||||
<li>bug #1022216: "negated time produces incorrect iptables
|
||||
rule". Implemented negation for the "Time" rule element for
|
||||
iptables</li>
|
||||
|
||||
<li>using abbreviated versions of "--dport", "--sport",
|
||||
"--dports", "--sports" options to make generated iptables script
|
||||
smaller. Also changed the name of the variables used to hold IP
|
||||
address of dynamic interface from "interface_<ifname>" to
|
||||
"i_<ifname>". All this should help to fit larger policies into
|
||||
small flash on linksys. These changes shrunk my test script from
|
||||
7964 bytes to 7430 bytes</li>
|
||||
|
||||
<li>Generated iptables script flushes only secondary ip
|
||||
addresses on interfaces during initialization phase if option
|
||||
"configure interfaces" is on. This should fix a bug that caused
|
||||
linksys/sveasoft unit to lose default route upon reboot if
|
||||
external interface has static IP address.</li>
|
||||
|
||||
<li>Generated script checks if /usr/sbin/ip exists on the
|
||||
firewall before it tries to use it to verify interfaces and
|
||||
configure IP addresses. This check is only performed if user
|
||||
activated options that use this tool. An error message
|
||||
"Interface eth0 does not exist" was generated if package
|
||||
iproute2 was not installed on the firewall, which was
|
||||
confusing.</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<h2>New features in policy compiler for PF</h2>
|
||||
<ul>
|
||||
<li> A NAT rule of type DNAT (rdr rule) is assigned to an
|
||||
interface of the firewall if interface object or its address
|
||||
object is used in ODst. To get rdr rule without interface
|
||||
assignment, use an Address or a Host object that has the same IP
|
||||
address as that of firewall's interface but that is not a child
|
||||
of an interface. This is the same approach that is used in
|
||||
iptables.</li>
|
||||
|
||||
<li>Compiler for pf always uses tables; this breaks
|
||||
compatibility with older OpenBSD systems (3.2 and 3.3)</li>
|
||||
|
||||
<li>Compiler for pf puts interface name in a table for rules
|
||||
that use multiple objects in src or dst and one of these objects
|
||||
is dynamic interface of the firewall that is being
|
||||
processed. Using dynamic interface of another object in a rule
|
||||
is still considered an error. Compiler puts the name of dynamic
|
||||
interface in a table verbatim, without brackets '(' ')' since pf
|
||||
does not replace dynamic interface with its address dynamically
|
||||
if it is used in a table (pfctl issues an error if interface is
|
||||
put in brackets)</li>
|
||||
|
||||
<li>added an option to permit tcp sessions opened prior to
|
||||
firewall restart. This is needed now since compiler generates
|
||||
"flags S/SA" for the "keep state" and "modulate state" rules
|
||||
which means firewall won't permit TCP sessions unless it saw
|
||||
opening SYN packet.</li>
|
||||
|
||||
<li>bug #1028973: fwb_pf: missing "flags S/SA" in front of
|
||||
"modulate state". Compiler adds "flags S/SA" to policy rules
|
||||
that use either "keep state" or "modulate state" options.</li>
|
||||
|
||||
<li>bug #1028980: "need an option to turn logging on on fallback
|
||||
rule". Option has been added.</li>
|
||||
</ul>
|
||||
<p>
|
||||
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<h2>Bugs fixed in libfwbuilder API:</h2>
|
||||
<ul>
|
||||
<li>bug #1022788: "GUI corrupts XML file after creating a second
|
||||
firewall". Global object ID counter was getting reset every time
|
||||
new FWObjectDatabase object was created. This lead to the ID
|
||||
collision if user quickly created and deleted complex objects
|
||||
(such as Firewall) and used database merge. This should also fix
|
||||
bug #1022785: "GUI corrupts XML file after creating a host
|
||||
entry"</li>
|
||||
|
||||
<li>fixed bug (no number): all references to the interfaces, as
|
||||
well as their IP and MAC addresses, in policy and NAT rules
|
||||
should be replaced when Firewall object is duplicated. Until now
|
||||
only references to the firewall object itself and to its
|
||||
interfaces were replaced with references to the newly created
|
||||
copies of object. References to IP and MAC addresses still
|
||||
pointed at the old objects.</li>
|
||||
</ul>
|
||||
<p>
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<h2>Bugs fixed in GUI:</h2>
|
||||
<ul>
|
||||
<li>bug (no number): after deleting a library firewall objects
|
||||
that belong to it were not removed from the pull-down list</li>
|
||||
|
||||
<li>bug #1026945: '"Save As" does not work if current file is in
|
||||
RCS'</li>
|
||||
|
||||
<li>bug #1028078: "options.png is not displayed for "Assume
|
||||
firewall is part..."</li>
|
||||
|
||||
<li>bug #1035132: "compile errors with default Linksys firewall
|
||||
object". This bug has been introduced in build 435. When user
|
||||
created a new firewall object using one of the template objects,
|
||||
the GUI would add bunch of garbage to the firewall options. This
|
||||
garbage violated XML DTD, so compilers and the GUI would not
|
||||
accept the data file anymore.</li>
|
||||
|
||||
<li>bug #1035130: 'Persistent "Save" dialog box'. Certain
|
||||
combination of actions on user's part used to lead to an
|
||||
indefinite loop of "do you want to save the data" dialogs. The
|
||||
problem was triggered if user skipped choosing a name for the
|
||||
new file in startup dialog.</li>
|
||||
</ul>
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<h2>Bugs fixed in iptables policy compiler fwb_ipt:</h2>
|
||||
<ul>
|
||||
<li>bug #1024861: "optimizer is broken in fwb_ipt". Used idea
|
||||
and a patch by Mark Vevers <mark@vevers.net>. Fixed compiler
|
||||
fwb_ipt generates more efficient iptables script for rules with
|
||||
multiple objects in all rule elements. The script is smaller and
|
||||
eliminates unnecessary comparisons for packet attributes. Every
|
||||
attribute (i.e. source address, destination address, protocol
|
||||
and port numbers) is checked by the script only once. This
|
||||
should help reduce load on firewalls with lots of complex
|
||||
rules.</mark>
|
||||
|
||||
<li>bug #1026509: "incorrect rules generated for dual negation
|
||||
with time". Compiler generated incorrect iptables commands for
|
||||
rules that had negation in two or more rule elements, one of
|
||||
which was Time.</li>
|
||||
|
||||
<li>bug #1026794: multiple SRC ntwks --> "iptables: invalid
|
||||
argument". Recent changes in optimizer introduced this
|
||||
bug. Rules with multiple objects in src or dst, TCP service,
|
||||
action Reject and option "reject with TCP RST" would generate
|
||||
iptables command that used option "--reject-with tcp-reset"
|
||||
without "-p tcp"</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<h2>Bugs fixed in iptables policy compiler fwb_pf:</h2>
|
||||
<ul>
|
||||
<li>bug #1006906: "Negated network causes pass on
|
||||
network". Compiler for pf uses native negation syntax that is
|
||||
now available in pf</li>
|
||||
|
||||
<li>bug (no num): "firewall settings" dialog for OpenBSD pf did
|
||||
not save option "Use tables". Since compiler is always using
|
||||
tables, this option was removed from the dialog.</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<hr>
|
||||
<!-- Created: Fri Aug 6 21:40:42 PDT 2004 -->
|
||||
<!-- hhmts start -->
|
||||
Last modified: Thu Sep 30 20:16:23 PDT 2004
|
||||
<!-- hhmts end -->
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,204 @@
|
||||
Firewall Builder Release Notes
|
||||
|
||||
Version 2.0.3
|
||||
|
||||
Released 09/30/04
|
||||
GUI and compilers v2.0.3 require API library libfwbuilder version 2.0.3
|
||||
|
||||
Summary
|
||||
|
||||
Firewall Builder GUI v2.0.3 is a maintenance release that includes fixes
|
||||
for bugs discovered since 2.0.2 has been released.
|
||||
|
||||
For those who wish to build from source, instructions are outlined in
|
||||
"Install and Build instructions"
|
||||
|
||||
* This release improves support for the PF firewall by always using
|
||||
tables in policy rules; it also uses syntax " ! <tbl>" for negation,
|
||||
assignes "rdr" rules to interfaces and adds "flags S/SA" to policy
|
||||
rules that keep state.
|
||||
* This release significantly improves optimizer for iptables and adds an
|
||||
automatically generated rule to block packets that correspond to an
|
||||
INVALID state
|
||||
* Built-in policy installer can compress firewall policy script before
|
||||
it is installed in flash memory on Linksys/Sveasoft firewall; this
|
||||
allows for much larger policy to be used on Linksys. Script
|
||||
compression is optional.
|
||||
* Built-in policy installer can be used to test new policy rules with
|
||||
automatic roll-back to the previous version of the policy after
|
||||
specified interval of time. This feature helps to work around errors
|
||||
in the policy that block access to the firewall from the management
|
||||
workstation.
|
||||
|
||||
Caveats
|
||||
|
||||
New version (as of build 421) completely changes the way it loads and
|
||||
activates firewall script on linksys. Old version put the whole script in
|
||||
variable rc_firewall. New one puts script in variable fwb and puts a
|
||||
one-line command in rc_firewall to read the script from fwb and execute
|
||||
it. This was done because of the need to uncompress it when linksys
|
||||
executes command stored in rc_firewall, in other words, rc_firewall needs
|
||||
to be a little script that uncompresses and runs the main firewall script.
|
||||
This is why scripts were separated and rc_firewall has changed compared to
|
||||
the previous versions of fwbuilder.
|
||||
|
||||
Reverting from v2.0.3 (build 421 and later) to v2.0.2 requires you to
|
||||
erase nvram variable "fwb" which holds the whole script in the new builds.
|
||||
|
||||
New features in the built in policy installer
|
||||
|
||||
* added an option for test run. When this option is activated, policy
|
||||
script is pushed to the firewall and is executed but is not stored
|
||||
there permanently. Firewall reverts to the last working configuration
|
||||
after reboot.
|
||||
* implemented compression of the firewall script for Linksys/Sveasoft
|
||||
combo. Using gzip and uuencode/uudecode to compress the script and
|
||||
store it in flash variable 'fwb'. Installer prints flash memory stats
|
||||
after commiting changes. Installer uses scp to copy firewall script to
|
||||
the firewall and autogenerated prompt to detect when it logged in; it
|
||||
does not depend on Linksys shell prompt anymore.
|
||||
* added an option to schedule automatic firewall reboot in specified
|
||||
time (in minutes) after policy activation. This option is available
|
||||
for all firewall platforms but PIX. This option only works if user
|
||||
requested policy activation in a test mode, in which case policy is
|
||||
copied and activated on the firewall but not stored in the permanent
|
||||
location. After reboot the firewall reverts to the previous version of
|
||||
the policy. To cancel scheduled reboot, run installer again with "test
|
||||
run" option turned off. Installer stores the policy in the permanent
|
||||
location, activates it and cancels scheduled reboot. The commands used
|
||||
to schedule reboot and cancel it depend on the host os of the
|
||||
firewall. On Linux, it will use "shutdown -r +NN" and "shutdown -c".
|
||||
On *BSD systems it uses "shutdown -r +NN" and a combination of ps and
|
||||
awk to find and kill shutdown when reboot is canceled. Installer uses
|
||||
"reboot" and kills it with "killall" on linksys.
|
||||
* All manipulations that installer does on the firewall are programmed
|
||||
in little one-line scripts stored in resource file for each supported
|
||||
OS the firewall is running. These are in /usr/share/fwbuilder/os on
|
||||
Linux/*BSD or in C:\FWBuilder\resources\os on Windows. Users can hack
|
||||
commands in these files to make installer work with host OS that is
|
||||
not supported by default. Currently, the GUI only looks for the
|
||||
OS-specific resource files in the system-wide directory. Future
|
||||
versions will also look in a predefined directory in users' home.
|
||||
Directory path to be defined later.
|
||||
* Added option "output file name" to firewall settings dialogs for all
|
||||
platforms. User can specify the name for the output file; this name is
|
||||
then used by built in installer in place of a macro %FWSCRIPT%.
|
||||
|
||||
New features in policy compiler for iptables
|
||||
|
||||
* implemented feature request #1023430: "add checkbox for INVALID
|
||||
support in fw settings". Added two checkboxes to the firewall settings
|
||||
dialog: one adds a rule to drop INVALID packets and another adds
|
||||
logging to the rule.
|
||||
* rules that permit packets associated with ESTABLISHED,RELATED states
|
||||
moved to the beginning of the script before NAT rules.
|
||||
* bug #1022216: "negated time produces incorrect iptables rule".
|
||||
Implemented negation for the "Time" rule element for iptables
|
||||
* using abbreviated versions of "--dport", "--sport", "--dports",
|
||||
"--sports" options to make generated iptables script smaller. Also
|
||||
changed the name of the variables used to hold IP address of dynamic
|
||||
interface from "interface_<ifname>" to "i_<ifname>". All this should
|
||||
help to fit larger policies into small flash on linksys. These changes
|
||||
shrunk my test script from 7964 bytes to 7430 bytes
|
||||
* Generated iptables script flushes only secondary ip addresses on
|
||||
interfaces during initialization phase if option "configure
|
||||
interfaces" is on. This should fix a bug that caused linksys/sveasoft
|
||||
unit to lose default route upon reboot if external interface has
|
||||
static IP address.
|
||||
* Generated script checks if /usr/sbin/ip exists on the firewall before
|
||||
it tries to use it to verify interfaces and configure IP addresses.
|
||||
This check is only performed if user activated options that use this
|
||||
tool. An error message "Interface eth0 does not exist" was generated
|
||||
if package iproute2 was not installed on the firewall, which was
|
||||
confusing.
|
||||
|
||||
New features in policy compiler for PF
|
||||
|
||||
* A NAT rule of type DNAT (rdr rule) is assigned to an interface of the
|
||||
firewall if interface object or its address object is used in ODst. To
|
||||
get rdr rule without interface assignment, use an Address or a Host
|
||||
object that has the same IP address as that of firewall's interface
|
||||
but that is not a child of an interface. This is the same approach
|
||||
that is used in iptables.
|
||||
* Compiler for pf always uses tables; this breaks compatibility with
|
||||
older OpenBSD systems (3.2 and 3.3)
|
||||
* Compiler for pf puts interface name in a table for rules that use
|
||||
multiple objects in src or dst and one of these objects is dynamic
|
||||
interface of the firewall that is being processed. Using dynamic
|
||||
interface of another object in a rule is still considered an error.
|
||||
Compiler puts the name of dynamic interface in a table verbatim,
|
||||
without brackets '(' ')' since pf does not replace dynamic interface
|
||||
with its address dynamically if it is used in a table (pfctl issues an
|
||||
error if interface is put in brackets)
|
||||
* added an option to permit tcp sessions opened prior to firewall
|
||||
restart. This is needed now since compiler generates "flags S/SA" for
|
||||
the "keep state" and "modulate state" rules which means firewall won't
|
||||
permit TCP sessions unless it saw opening SYN packet.
|
||||
* bug #1028973: fwb_pf: missing "flags S/SA" in front of "modulate
|
||||
state". Compiler adds "flags S/SA" to policy rules that use either
|
||||
"keep state" or "modulate state" options.
|
||||
* bug #1028980: "need an option to turn logging on on fallback rule".
|
||||
Option has been added.
|
||||
|
||||
Bugs fixed in libfwbuilder API:
|
||||
|
||||
* bug #1022788: "GUI corrupts XML file after creating a second
|
||||
firewall". Global object ID counter was getting reset every time new
|
||||
FWObjectDatabase object was created. This lead to the ID collision if
|
||||
user quickly created and deleted complex objects (such as Firewall)
|
||||
and used database merge. This should also fix bug #1022785: "GUI
|
||||
corrupts XML file after creating a host entry"
|
||||
* fixed bug (no number): all references to the interfaces, as well as
|
||||
their IP and MAC addresses, in policy and NAT rules should be replaced
|
||||
when Firewall object is duplicated. Until now only references to the
|
||||
firewall object itself and to its interfaces were replaced with
|
||||
references to the newly created copies of object. References to IP and
|
||||
MAC addresses still pointed at the old objects.
|
||||
|
||||
Bugs fixed in GUI:
|
||||
|
||||
* bug (no number): after deleting a library firewall objects that belong
|
||||
to it were not removed from the pull-down list
|
||||
* bug #1026945: '"Save As" does not work if current file is in RCS'
|
||||
* bug #1028078: "options.png is not displayed for "Assume firewall is
|
||||
part..."
|
||||
* bug #1035132: "compile errors with default Linksys firewall object".
|
||||
This bug has been introduced in build 435. When user created a new
|
||||
firewall object using one of the template objects, the GUI would add
|
||||
bunch of garbage to the firewall options. This garbage violated XML
|
||||
DTD, so compilers and the GUI would not accept the data file anymore.
|
||||
* bug #1035130: 'Persistent "Save" dialog box'. Certain combination of
|
||||
actions on user's part used to lead to an indefinite loop of "do you
|
||||
want to save the data" dialogs. The problem was triggered if user
|
||||
skipped choosing a name for the new file in startup dialog.
|
||||
|
||||
Bugs fixed in iptables policy compiler fwb_ipt:
|
||||
|
||||
* bug #1024861: "optimizer is broken in fwb_ipt". Used idea and a patch
|
||||
by Mark Vevers <mark@vevers.net>. Fixed compiler fwb_ipt generates
|
||||
more efficient iptables script for rules with multiple objects in all
|
||||
rule elements. The script is smaller and eliminates unnecessary
|
||||
comparisons for packet attributes. Every attribute (i.e. source
|
||||
address, destination address, protocol and port numbers) is checked by
|
||||
the script only once. This should help reduce load on firewalls with
|
||||
lots of complex rules.
|
||||
* bug #1026509: "incorrect rules generated for dual negation with time".
|
||||
Compiler generated incorrect iptables commands for rules that had
|
||||
negation in two or more rule elements, one of which was Time.
|
||||
* bug #1026794: multiple SRC ntwks --> "iptables: invalid argument".
|
||||
Recent changes in optimizer introduced this bug. Rules with multiple
|
||||
objects in src or dst, TCP service, action Reject and option "reject
|
||||
with TCP RST" would generate iptables command that used option
|
||||
"--reject-with tcp-reset" without "-p tcp"
|
||||
|
||||
Bugs fixed in iptables policy compiler fwb_pf:
|
||||
|
||||
* bug #1006906: "Negated network causes pass on network". Compiler for
|
||||
pf uses native negation syntax that is now available in pf
|
||||
* bug (no num): "firewall settings" dialog for OpenBSD pf did not save
|
||||
option "Use tables". Since compiler is always using tables, this
|
||||
option was removed from the dialog.
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Last modified: Thu Sep 30 20:16:23 PDT 2004
|
||||
@@ -0,0 +1,381 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
|
||||
<link rel="stylesheet" type="text/css" href="http://www.fwbuilder.org/pages/fwbuilder.css">
|
||||
</head>
|
||||
<body>
|
||||
<h1> Firewall Builder Release Notes </h1>
|
||||
<br>
|
||||
<h2> Version 2.0.4 </h2>
|
||||
<br>
|
||||
<p>
|
||||
Released 12/02/04
|
||||
<br>
|
||||
<b>GUI and compilers v2.0.4 require API library libfwbuilder version 2.0.4</b>
|
||||
<br>
|
||||
<h2>Summary </h2>
|
||||
<p>
|
||||
|
||||
<p>
|
||||
<b>For those who wish to build from source, instructions are outlined
|
||||
in the document "Install and Build instructions" on our web site <a
|
||||
href="http://www.fwbuilder.org/archives/cat_installation.html">here</a></b>
|
||||
|
||||
<h2>What's new</h2>
|
||||
<ul>
|
||||
|
||||
<li>Improvements in the GUI
|
||||
<p>
|
||||
<ul>
|
||||
<li>improved error handling: if the GUI is started with a
|
||||
file on the command line or is configured to open a file
|
||||
automatically on startup and RCS can not check the file out,
|
||||
the GUI will come up empty (with only standard objects
|
||||
loaded). Previously in a situation when the GUI was
|
||||
configured to open a file automatically, but the file could
|
||||
not be checked out, there was no way to cancel this
|
||||
automatic file open operation since the GUI would never come
|
||||
up.</li>
|
||||
|
||||
<li>Added Japanese translation by Tadashi Jokagi
|
||||
<elf@elf.no-ip.org></li>
|
||||
|
||||
<li>Added Russian translation by RusBusinessSecurity Co. Ltd.,
|
||||
Russia. This translation is fairly complete but is still
|
||||
considered preliminary. Bug reports and suggestions are very
|
||||
welcome.
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<li>Improvements in the built-in policy installer
|
||||
<p>
|
||||
<ul>
|
||||
<li>Built-in installer checks exit status of the script it
|
||||
runs on the firewall and aborts installation sequence if it
|
||||
detects an error. OS resource files have been updated
|
||||
accordingly so they return exit status '1' in case of error
|
||||
and '0' when they succeed.</li>
|
||||
|
||||
<li>Added an option to push PIX configuration to a standby
|
||||
firewall at the end of install.</li>
|
||||
|
||||
<li>Added support in installer for new configuration script
|
||||
formats for PIX:
|
||||
<p>
|
||||
<ol>
|
||||
<li>basic or old format when access lists are cleared
|
||||
and added from scratch</li>
|
||||
|
||||
<li>Access lists have unique names each time policy is
|
||||
recompiled, lists are added without clearing.</li>
|
||||
|
||||
<li>Access lists are added with temporary names and
|
||||
assigned to interfaces, then the same lists are added
|
||||
with permanent names, lists are swapped and temporary
|
||||
lists cleared</li>
|
||||
</ol>
|
||||
|
||||
<p>Last two methods provide for instantaneous access list
|
||||
swap so that the firewall never runs with empty
|
||||
lists. This helps maintain access to the firewall if
|
||||
configuration is installed remotely.
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li>Improvements in policy compiler for iptables:
|
||||
<p>
|
||||
<ul>
|
||||
<li>implemented Feature Request #1021201: "output
|
||||
iptables-restore compatible config from fwb_ipt". Policy
|
||||
compiler for iptables can use iptables-restore to activate
|
||||
firewall policy. Iptables-restore provides for atomic policy
|
||||
load and allows to load large policy much faster. Atomic
|
||||
load means the whole filter or nat table is activated at
|
||||
once, and if there is an error, nothing is changed. Compiler
|
||||
generates script in three possible formats:
|
||||
<p>
|
||||
<ol>
|
||||
<li>the ususal shell script that adds rules one at a
|
||||
time by executing iptables command with an "-A" flag to
|
||||
add a rule;</li>
|
||||
|
||||
<li>commands are fed to iptables-restore, this format is
|
||||
used when all interfaces of the firewall have static IP
|
||||
addresses and script does not need to determine
|
||||
addresses at run time;</li>
|
||||
|
||||
<li>script determines IP addresses of interfaces and
|
||||
discovers dynamic interfaces that were defined as a
|
||||
"wildcard" interface in fwbuilder (e.g. 'ppp*'); code
|
||||
that is sent to iptables-restore is generated
|
||||
dynamically by the script at run time.</li>
|
||||
</ol>
|
||||
|
||||
<p>Using iptables-restore is optional and is controlled by
|
||||
the checkbutton in the "Script options" tab of firewall
|
||||
settings dialog. Path to iptables-restore utility can be
|
||||
set in the "Paths" tab of the host settings dialog.
|
||||
</p>
|
||||
</li>
|
||||
|
||||
<li>policy installation via iptables-restore has been tested
|
||||
with old versions of iptables (1.2.6a). Script need to
|
||||
include "-m tcp", "-m udp" or "-m icmp", otherwise
|
||||
iptables-restore does not understand options "--dport",
|
||||
"--tcp-flags" and some others. Also had to use "--tcp-flags
|
||||
SYN,RST,ACK SYN" instea dof "--syn" for better backwards
|
||||
compatibility.</li>
|
||||
|
||||
<li>A change in the script generated by fwb_ipt: if
|
||||
iptables-restore is not used to load policy, generated shell
|
||||
script purges existing firewall policy (all tables and
|
||||
chains) and sets default chain policies after it configures
|
||||
interfaces of the firewall. Previously, it would flush
|
||||
tables and set default policy before it configured
|
||||
interfaces.</li>
|
||||
|
||||
|
||||
<li>removed code that added iptables command to the "drop"
|
||||
table to drop and log all dropped packets. This rule used
|
||||
obsoleted patch-o-matic patch "drop" which is not available
|
||||
anymore. </li>
|
||||
|
||||
<li>moved rule permitting backup ssh access from the
|
||||
management station to the firewall to the top of the
|
||||
script. This helps maintain ssh session, otherwise it may
|
||||
stall or break because stdout buffer is filled with
|
||||
diagnostic or progress output from the script that is
|
||||
printed after all chains are flushed but before rule
|
||||
permitting ssh to the firewall is added. If stdout buffer is
|
||||
full, ssh stops and tries to send the text to the management
|
||||
station but times out because firewall blocks it.</li>
|
||||
|
||||
|
||||
</ul>
|
||||
<br><br>
|
||||
</li>
|
||||
|
||||
<li>Improvements in policy compiler for pf:
|
||||
<p>
|
||||
<ul>
|
||||
<li>Activation script for PF flushes only information about
|
||||
rules, nat, source and tables (it used to flush "all"). This
|
||||
preserves queue entries and states. </li>
|
||||
|
||||
</ul>
|
||||
<p>
|
||||
</li>
|
||||
|
||||
<li>Improvements in policy compilers for all platforms:
|
||||
<p>
|
||||
<ul>
|
||||
<li>added support for prolog and epilog scripts for all
|
||||
firewall platforms. This was available for PIX for some
|
||||
time, now it has been added for all
|
||||
platforms. "Prolog/Epilog" tab of the firewall settings
|
||||
dialog allows for editing of two blocks of commands that
|
||||
will be added to the generated firewall script
|
||||
verbatim. Prolog block is added on top, while epilog block
|
||||
is added at the bottom. Both prolog and epilog are expected
|
||||
to be shell scripts and are added to the generated shell
|
||||
script that activates firewall. For iptables and ipfw all
|
||||
compiler generates is this shell script and prolog and
|
||||
epilog commands are inserted into it. These commands may
|
||||
execute some actions, as well as add any policy or nat
|
||||
commands. For ipf and pf prolog and epilog commands are
|
||||
added to the activation shell script ( .fw file); prolog is
|
||||
added immediately after the command that flushes all
|
||||
rules. This way user may either execute shell commands or
|
||||
add policy and/or nat rules by loading them from external
|
||||
file. </li>
|
||||
|
||||
<li>all policy compilers properly detect an error when the
|
||||
output file can not be created or overwritten and print
|
||||
error message to warn the user.</li>
|
||||
|
||||
|
||||
<li>Added element "Target/family" to all OS resource XML
|
||||
files. Compilers use "family" resource element to determine
|
||||
if host OS is supported. User may want to copy host OS
|
||||
resource file to modify installer scriptlets; as long as the
|
||||
family element is kept the same, compiler will accept new
|
||||
resource file.</li>
|
||||
</ul>
|
||||
<p>
|
||||
</li>
|
||||
|
||||
<br>
|
||||
</ul>
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<hr>
|
||||
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<h2>Bugs fixed in GUI:</h2>
|
||||
<ul>
|
||||
<li>bug #1077072: "CrossPlatform Firewall Builder Crash" -
|
||||
pressing arrow down key on the keyboard right after the GUI
|
||||
started with no firewall objects defined caused crash.</li>
|
||||
|
||||
<li>bug (no num): if a library was assigned a name with
|
||||
non-ascii characters, it would appear distorted in the pull-down
|
||||
list in object dialogs.</li>
|
||||
|
||||
<li>bug (no number) introduced in 2.0.3 when GUI crashed if user
|
||||
tried to choose pull-down menu item in the firewall list after
|
||||
the very first firewall object has been created. </li>
|
||||
|
||||
<li>bug (no number): group object dialog corrupted object names
|
||||
if they contained non-ascii characters.</li>
|
||||
|
||||
<li>bug #1046345: "ipfw - no option to specify ipfw
|
||||
executable". Added GUI control to let user specify alternative
|
||||
path to "ipfw" on FreeBSD. Control like that was previously
|
||||
available only for Mac OS X </li>
|
||||
|
||||
<li>bug #1028866: "incorrect order when several rules copied
|
||||
using copy/paste". Pasting multiple rules into an empty policy
|
||||
caused rules to be inserted in the wrong order.</li>
|
||||
|
||||
<li>bug (no number): Policy installer failed if the following
|
||||
conditions were met: - it was running on Linux, FreeBSD or Mac
|
||||
OS X - working directory configured in the "General" tab of the
|
||||
Preferences dialog did not exist and could not be created or its
|
||||
permissions did not allow user that runs the GUI to access
|
||||
it</li>
|
||||
|
||||
<li>Added #include <errno.h> to make code compile with gcc 3.4.2
|
||||
and glibc 2.3.3</li>
|
||||
|
||||
<li>bug (no number): GUI could not find names of the object
|
||||
libraries in external library files that user added for
|
||||
automatic load in the Preferences dialog on Windows. It would
|
||||
find the name of the library in the first file, but failed to
|
||||
find library names in subsequent files and used the name from
|
||||
the first file. Since this library was only present in the first
|
||||
file, object tree was getting corrupted when the program
|
||||
attempted to load this library from every file configured for
|
||||
automatic pre-load. This only happened on Windows.</li>
|
||||
</ul>
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<h2>Bugs fixed in API:</h2>
|
||||
<ul>
|
||||
<li>bug #1077496 ] Error compiling libfwbuilder in FreeBSD:
|
||||
The problem was caused by changed major version number of libnetsnmp library
|
||||
in the latest net-snmp port (v5.2)</li>
|
||||
|
||||
<li>bug #1055937: "Any->all_multicasts not in INPUT Chain". Need
|
||||
to check if network objects are multicasts; assume that
|
||||
multicast always matches firewall object (e.g fwb_ipt will put
|
||||
rule with such network object in destination in INPUT
|
||||
chain)</li>
|
||||
|
||||
<li>bug #1040773: need to match network address as well as
|
||||
broadcast. Packets sent to the network address (192.168.1.0 for
|
||||
net 192.168.1.0/24) go in the broadcast frame and behave just
|
||||
like IP broadcast packets (sent to 192.168.1.1255 for the same
|
||||
net)</li>
|
||||
|
||||
<li>bug (no number): rule shadowing algorithm now assumes that
|
||||
IPService object with protocol number '0' shades any other
|
||||
service just like 'any' does.</li>
|
||||
|
||||
<li>bug (no num): rule shadowing algorithm checks for IP flags
|
||||
in IP service object. IP service object with protocol 0 shades
|
||||
anything only if its flags are cleared. Two IP services shade
|
||||
each other only if they are completely equal (protocols and all
|
||||
flags settings are the same). However, IP service with protocol
|
||||
0 shades other IP service with protocol !=0 if all flags
|
||||
settings are the same.</li>
|
||||
|
||||
<li>change in the object database merge algorithm: when an
|
||||
object database we are trying to merge has non-empty "Deleted
|
||||
objects" library, deleted objects from this library should be
|
||||
ignored (they used to be deleted from the current
|
||||
tree). Likewise, when current tree has non-empty "Deleted
|
||||
objects" library and objects in it match objects being merged
|
||||
in, objects should be removed from "Deleted objects" library to
|
||||
avoid creating duplicate IDs with objects being merged in.</li>
|
||||
|
||||
<li>bug (no number): program crashed on FreeBSD 5.3 when using
|
||||
SNMP to obtain parameters for hosts and interfaces. Crash
|
||||
occurred because of use of uninitialized mutex variables in
|
||||
module dns.cpp</li>
|
||||
|
||||
<li>bug (no number): The API used to corrupt CustomService
|
||||
object while saving data to the XML file if service code
|
||||
included special characters such as '&'</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<h2>Bugs fixed in policy compiler for iptables fwb_ipt:</h2>
|
||||
<ul>
|
||||
<li>bug #1073491: incorrect code for rules using two interfaces
|
||||
with negation. If a rule had two (or more) interfaces of the
|
||||
firewall in the destination, with negation, the code generated
|
||||
by compiler would check one interface's address in INPUT chain
|
||||
and another in FORWARD chain. It should check addresses of all
|
||||
interfaces from the corresponding rule element in the INPUT
|
||||
chain and also check addresses and possibly services from other
|
||||
rule elements in the FORWARD chain. This bug affected rules with
|
||||
two or more interfaces both in source and destination.</li>
|
||||
|
||||
<li>bug #1040788: fwb_ipt and user name. Compiler used to read
|
||||
environment variable "USER" to find out user's name. Sometimes
|
||||
this variable is not set, which caused compiler to abort. Using
|
||||
env variable LOGNAME in addition to USER.</li>
|
||||
|
||||
<li>bug #1040599: "unnecessary FORWARD rules". If ip forwarding
|
||||
is turned off in the host settings dialog of the linux-based
|
||||
firewall, compiler should not generate rules in FORWARD
|
||||
chain.</li>
|
||||
|
||||
<li>bug (no number): compiler placed extra quote '"' at the end
|
||||
of each NAT command in the script using iptables-restore; this
|
||||
happened only if all interfaces of the firewall had static
|
||||
addresses.</li>
|
||||
|
||||
<li>bug (no number) in fwb_ipt that caused no-nat rules with
|
||||
firewall in OSrc to be placed only in OUTPUT chain. Packets
|
||||
originating on the firewall go into OUTPUT and POSTROUTING
|
||||
chains, so no-nat rules must be placed in both. Other minor
|
||||
improvements for NAT of the locally originated connections have
|
||||
been done as well.</li>
|
||||
|
||||
<li>bug (no number) where compiler for iptables used option
|
||||
"--destination-port" with module "multiport" for versions of
|
||||
iptables that do not understand it (1.2.6 and later, as well as
|
||||
default version setting 'any'). The option should be
|
||||
"--destination-ports" or "--dports".</li>
|
||||
|
||||
<li>bug #1063953: "Wrong accept/multiport rule
|
||||
generated". Compiler generated wrong code for rules using
|
||||
multiple service objects of different types (TCP and UDP, or TCP
|
||||
and ICMP etc), multiple addresses in src or dst with option that
|
||||
requires using TCP RST for action REJECT. This bug was
|
||||
introduced in build 453</li>
|
||||
|
||||
<li>bug (no number): policy compiler for iptables used "tail -1"
|
||||
in the shell script that read actual IP addresses of interfaces
|
||||
of the firewall. This shell code failed to determine correct
|
||||
address of an interface that was configured with a secondary
|
||||
address. Reverted to using grep (I switched to tail when ran
|
||||
into limitations of one of the beta builds of Sveasoft Linksys
|
||||
firmware that did not have grep)</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,254 @@
|
||||
Firewall Builder Release Notes
|
||||
|
||||
Version 2.0.4
|
||||
|
||||
Released 12/02/04
|
||||
GUI and compilers v2.0.4 require API library libfwbuilder version 2.0.4
|
||||
|
||||
Summary
|
||||
|
||||
For those who wish to build from source, instructions are outlined in the
|
||||
document "Install and Build instructions" on our web site here
|
||||
|
||||
What's new
|
||||
|
||||
* Improvements in the GUI
|
||||
|
||||
* improved error handling: if the GUI is started with a file on the
|
||||
command line or is configured to open a file automatically on
|
||||
startup and RCS can not check the file out, the GUI will come up
|
||||
empty (with only standard objects loaded). Previously in a
|
||||
situation when the GUI was configured to open a file
|
||||
automatically, but the file could not be checked out, there was
|
||||
no way to cancel this automatic file open operation since the GUI
|
||||
would never come up.
|
||||
* Added Japanese translation by Tadashi Jokagi <elf@elf.no-ip.org>
|
||||
* Added Russian translation by RusBusinessSecurity Co. Ltd.,
|
||||
Russia. This translation is fairly complete but is still
|
||||
considered preliminary. Bug reports and suggestions are very
|
||||
welcome.
|
||||
|
||||
* Improvements in the built-in policy installer
|
||||
|
||||
* Built-in installer checks exit status of the script it runs on
|
||||
the firewall and aborts installation sequence if it detects an
|
||||
error. OS resource files have been updated accordingly so they
|
||||
return exit status '1' in case of error and '0' when they
|
||||
succeed.
|
||||
* Added an option to push PIX configuration to a standby firewall
|
||||
at the end of install.
|
||||
* Added support in installer for new configuration script formats
|
||||
for PIX:
|
||||
|
||||
1. basic or old format when access lists are cleared and added
|
||||
from scratch
|
||||
2. Access lists have unique names each time policy is
|
||||
recompiled, lists are added without clearing.
|
||||
3. Access lists are added with temporary names and assigned to
|
||||
interfaces, then the same lists are added with permanent
|
||||
names, lists are swapped and temporary lists cleared
|
||||
|
||||
Last two methods provide for instantaneous access list swap so
|
||||
that the firewall never runs with empty lists. This helps
|
||||
maintain access to the firewall if configuration is installed
|
||||
remotely.
|
||||
|
||||
* Improvements in policy compiler for iptables:
|
||||
|
||||
* implemented Feature Request #1021201: "output iptables-restore
|
||||
compatible config from fwb_ipt". Policy compiler for iptables can
|
||||
use iptables-restore to activate firewall policy.
|
||||
Iptables-restore provides for atomic policy load and allows to
|
||||
load large policy much faster. Atomic load means the whole filter
|
||||
or nat table is activated at once, and if there is an error,
|
||||
nothing is changed. Compiler generates script in three possible
|
||||
formats:
|
||||
|
||||
1. the ususal shell script that adds rules one at a time by
|
||||
executing iptables command with an "-A" flag to add a rule;
|
||||
2. commands are fed to iptables-restore, this format is used
|
||||
when all interfaces of the firewall have static IP addresses
|
||||
and script does not need to determine addresses at run time;
|
||||
3. script determines IP addresses of interfaces and discovers
|
||||
dynamic interfaces that were defined as a "wildcard"
|
||||
interface in fwbuilder (e.g. 'ppp*'); code that is sent to
|
||||
iptables-restore is generated dynamically by the script at
|
||||
run time.
|
||||
|
||||
Using iptables-restore is optional and is controlled by the
|
||||
checkbutton in the "Script options" tab of firewall settings
|
||||
dialog. Path to iptables-restore utility can be set in the
|
||||
"Paths" tab of the host settings dialog.
|
||||
|
||||
* policy installation via iptables-restore has been tested with old
|
||||
versions of iptables (1.2.6a). Script need to include "-m tcp",
|
||||
"-m udp" or "-m icmp", otherwise iptables-restore does not
|
||||
understand options "--dport", "--tcp-flags" and some others. Also
|
||||
had to use "--tcp-flags SYN,RST,ACK SYN" instea dof "--syn" for
|
||||
better backwards compatibility.
|
||||
* A change in the script generated by fwb_ipt: if iptables-restore
|
||||
is not used to load policy, generated shell script purges
|
||||
existing firewall policy (all tables and chains) and sets default
|
||||
chain policies after it configures interfaces of the firewall.
|
||||
Previously, it would flush tables and set default policy before
|
||||
it configured interfaces.
|
||||
* removed code that added iptables command to the "drop" table to
|
||||
drop and log all dropped packets. This rule used obsoleted
|
||||
patch-o-matic patch "drop" which is not available anymore.
|
||||
* moved rule permitting backup ssh access from the management
|
||||
station to the firewall to the top of the script. This helps
|
||||
maintain ssh session, otherwise it may stall or break because
|
||||
stdout buffer is filled with diagnostic or progress output from
|
||||
the script that is printed after all chains are flushed but
|
||||
before rule permitting ssh to the firewall is added. If stdout
|
||||
buffer is full, ssh stops and tries to send the text to the
|
||||
management station but times out because firewall blocks it.
|
||||
|
||||
* Improvements in policy compiler for pf:
|
||||
|
||||
* Activation script for PF flushes only information about rules,
|
||||
nat, source and tables (it used to flush "all"). This preserves
|
||||
queue entries and states.
|
||||
|
||||
* Improvements in policy compilers for all platforms:
|
||||
|
||||
* added support for prolog and epilog scripts for all firewall
|
||||
platforms. This was available for PIX for some time, now it has
|
||||
been added for all platforms. "Prolog/Epilog" tab of the firewall
|
||||
settings dialog allows for editing of two blocks of commands that
|
||||
will be added to the generated firewall script verbatim. Prolog
|
||||
block is added on top, while epilog block is added at the bottom.
|
||||
Both prolog and epilog are expected to be shell scripts and are
|
||||
added to the generated shell script that activates firewall. For
|
||||
iptables and ipfw all compiler generates is this shell script and
|
||||
prolog and epilog commands are inserted into it. These commands
|
||||
may execute some actions, as well as add any policy or nat
|
||||
commands. For ipf and pf prolog and epilog commands are added to
|
||||
the activation shell script ( .fw file); prolog is added
|
||||
immediately after the command that flushes all rules. This way
|
||||
user may either execute shell commands or add policy and/or nat
|
||||
rules by loading them from external file.
|
||||
* all policy compilers properly detect an error when the output
|
||||
file can not be created or overwritten and print error message to
|
||||
warn the user.
|
||||
* Added element "Target/family" to all OS resource XML files.
|
||||
Compilers use "family" resource element to determine if host OS
|
||||
is supported. User may want to copy host OS resource file to
|
||||
modify installer scriptlets; as long as the family element is
|
||||
kept the same, compiler will accept new resource file.
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Bugs fixed in GUI:
|
||||
|
||||
* bug #1077072: "CrossPlatform Firewall Builder Crash" - pressing arrow
|
||||
down key on the keyboard right after the GUI started with no firewall
|
||||
objects defined caused crash.
|
||||
* bug (no num): if a library was assigned a name with non-ascii
|
||||
characters, it would appear distorted in the pull-down list in object
|
||||
dialogs.
|
||||
* bug (no number) introduced in 2.0.3 when GUI crashed if user tried to
|
||||
choose pull-down menu item in the firewall list after the very first
|
||||
firewall object has been created.
|
||||
* bug (no number): group object dialog corrupted object names if they
|
||||
contained non-ascii characters.
|
||||
* bug #1046345: "ipfw - no option to specify ipfw executable". Added GUI
|
||||
control to let user specify alternative path to "ipfw" on FreeBSD.
|
||||
Control like that was previously available only for Mac OS X
|
||||
* bug #1028866: "incorrect order when several rules copied using
|
||||
copy/paste". Pasting multiple rules into an empty policy caused rules
|
||||
to be inserted in the wrong order.
|
||||
* bug (no number): Policy installer failed if the following conditions
|
||||
were met: - it was running on Linux, FreeBSD or Mac OS X - working
|
||||
directory configured in the "General" tab of the Preferences dialog
|
||||
did not exist and could not be created or its permissions did not
|
||||
allow user that runs the GUI to access it
|
||||
* Added #include <errno.h> to make code compile with gcc 3.4.2 and glibc
|
||||
2.3.3
|
||||
* bug (no number): GUI could not find names of the object libraries in
|
||||
external library files that user added for automatic load in the
|
||||
Preferences dialog on Windows. It would find the name of the library
|
||||
in the first file, but failed to find library names in subsequent
|
||||
files and used the name from the first file. Since this library was
|
||||
only present in the first file, object tree was getting corrupted when
|
||||
the program attempted to load this library from every file configured
|
||||
for automatic pre-load. This only happened on Windows.
|
||||
|
||||
Bugs fixed in API:
|
||||
|
||||
* bug #1077496 ] Error compiling libfwbuilder in FreeBSD: The problem
|
||||
was caused by changed major version number of libnetsnmp library in
|
||||
the latest net-snmp port (v5.2)
|
||||
* bug #1055937: "Any->all_multicasts not in INPUT Chain". Need to check
|
||||
if network objects are multicasts; assume that multicast always
|
||||
matches firewall object (e.g fwb_ipt will put rule with such network
|
||||
object in destination in INPUT chain)
|
||||
* bug #1040773: need to match network address as well as broadcast.
|
||||
Packets sent to the network address (192.168.1.0 for net
|
||||
192.168.1.0/24) go in the broadcast frame and behave just like IP
|
||||
broadcast packets (sent to 192.168.1.1255 for the same net)
|
||||
* bug (no number): rule shadowing algorithm now assumes that IPService
|
||||
object with protocol number '0' shades any other service just like
|
||||
'any' does.
|
||||
* bug (no num): rule shadowing algorithm checks for IP flags in IP
|
||||
service object. IP service object with protocol 0 shades anything only
|
||||
if its flags are cleared. Two IP services shade each other only if
|
||||
they are completely equal (protocols and all flags settings are the
|
||||
same). However, IP service with protocol 0 shades other IP service
|
||||
with protocol !=0 if all flags settings are the same.
|
||||
* change in the object database merge algorithm: when an object database
|
||||
we are trying to merge has non-empty "Deleted objects" library,
|
||||
deleted objects from this library should be ignored (they used to be
|
||||
deleted from the current tree). Likewise, when current tree has
|
||||
non-empty "Deleted objects" library and objects in it match objects
|
||||
being merged in, objects should be removed from "Deleted objects"
|
||||
library to avoid creating duplicate IDs with objects being merged in.
|
||||
* bug (no number): program crashed on FreeBSD 5.3 when using SNMP to
|
||||
obtain parameters for hosts and interfaces. Crash occurred because of
|
||||
use of uninitialized mutex variables in module dns.cpp
|
||||
* bug (no number): The API used to corrupt CustomService object while
|
||||
saving data to the XML file if service code included special
|
||||
characters such as '&'
|
||||
|
||||
Bugs fixed in policy compiler for iptables fwb_ipt:
|
||||
|
||||
* bug #1073491: incorrect code for rules using two interfaces with
|
||||
negation. If a rule had two (or more) interfaces of the firewall in
|
||||
the destination, with negation, the code generated by compiler would
|
||||
check one interface's address in INPUT chain and another in FORWARD
|
||||
chain. It should check addresses of all interfaces from the
|
||||
corresponding rule element in the INPUT chain and also check addresses
|
||||
and possibly services from other rule elements in the FORWARD chain.
|
||||
This bug affected rules with two or more interfaces both in source and
|
||||
destination.
|
||||
* bug #1040788: fwb_ipt and user name. Compiler used to read environment
|
||||
variable "USER" to find out user's name. Sometimes this variable is
|
||||
not set, which caused compiler to abort. Using env variable LOGNAME in
|
||||
addition to USER.
|
||||
* bug #1040599: "unnecessary FORWARD rules". If ip forwarding is turned
|
||||
off in the host settings dialog of the linux-based firewall, compiler
|
||||
should not generate rules in FORWARD chain.
|
||||
* bug (no number): compiler placed extra quote '"' at the end of each
|
||||
NAT command in the script using iptables-restore; this happened only
|
||||
if all interfaces of the firewall had static addresses.
|
||||
* bug (no number) in fwb_ipt that caused no-nat rules with firewall in
|
||||
OSrc to be placed only in OUTPUT chain. Packets originating on the
|
||||
firewall go into OUTPUT and POSTROUTING chains, so no-nat rules must
|
||||
be placed in both. Other minor improvements for NAT of the locally
|
||||
originated connections have been done as well.
|
||||
* bug (no number) where compiler for iptables used option
|
||||
"--destination-port" with module "multiport" for versions of iptables
|
||||
that do not understand it (1.2.6 and later, as well as default version
|
||||
setting 'any'). The option should be "--destination-ports" or
|
||||
"--dports".
|
||||
* bug #1063953: "Wrong accept/multiport rule generated". Compiler
|
||||
generated wrong code for rules using multiple service objects of
|
||||
different types (TCP and UDP, or TCP and ICMP etc), multiple addresses
|
||||
in src or dst with option that requires using TCP RST for action
|
||||
REJECT. This bug was introduced in build 453
|
||||
* bug (no number): policy compiler for iptables used "tail -1" in the
|
||||
shell script that read actual IP addresses of interfaces of the
|
||||
firewall. This shell code failed to determine correct address of an
|
||||
interface that was configured with a secondary address. Reverted to
|
||||
using grep (I switched to tail when ran into limitations of one of the
|
||||
beta builds of Sveasoft Linksys firmware that did not have grep)
|
||||
@@ -0,0 +1,212 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
|
||||
<link rel="stylesheet" type="text/css" href="http://www.fwbuilder.org/pages/fwbuilder.css">
|
||||
</head>
|
||||
<body>
|
||||
<h1> Firewall Builder Release Notes </h1>
|
||||
<br>
|
||||
<h2> Version 2.0.5 </h2>
|
||||
<br>
|
||||
<p>
|
||||
Released 01/07/05
|
||||
<br>
|
||||
<b>GUI and compilers v2.0.5 require API library libfwbuilder version 2.0.5</b>
|
||||
<br>
|
||||
<h2>Summary </h2>
|
||||
<p>
|
||||
This is a bugfix release; its main focus is on internationalization and usability
|
||||
<p>
|
||||
<b>For those who wish to build from source, instructions are outlined
|
||||
in the document "Install and Build instructions" on our web site <a
|
||||
href="http://www.fwbuilder.org/archives/cat_installation.html">here</a></b>
|
||||
|
||||
<h2>What's new</h2>
|
||||
<ul>
|
||||
|
||||
<li>Improvements in the GUI
|
||||
<p>
|
||||
<ul>
|
||||
<li>Fixed lots of places were strings were not properly
|
||||
marked for localization, this lead to GUI showing '????'
|
||||
instead of a text in some menu items and dialogs in
|
||||
non-english locales</li>
|
||||
|
||||
<li>properly synchronizing state of the items main menu with
|
||||
state of corresponding items in the pop-up menu that appears
|
||||
when user right-mouse-clicks on an object in the tree</li>
|
||||
|
||||
<li>fixes for non-localized text strings in dialogs (mostly
|
||||
"Continue", "Yes"/"No" etc. in many places)</li>
|
||||
|
||||
<li>proper localization of the human-readable version number
|
||||
text for iptables; also made info window print readable text
|
||||
instead of "lt_1.2.6"</li>
|
||||
|
||||
<li>cosmetic changes in some dialogs layout to make the look
|
||||
better when localized text makes strings much longer</li>
|
||||
|
||||
<li>firewall object dialog tab "Templates" has been hidden. It
|
||||
is unlikely that this feature will be implemented in 2.0.X
|
||||
series.</li>
|
||||
|
||||
<li>Streamlined logic in the object editor dialog. This improves
|
||||
handling of the situation when user closes dialog by clicking on
|
||||
[x] while 1) there are unsaved data and/or 2) some of the
|
||||
object's parameters have illegal values. The dialog behavior
|
||||
also depends on the setting of the global flag "Autosave" that
|
||||
causes dialog to automatically save data when user switches
|
||||
between objects.</li>
|
||||
|
||||
<li>when user opens data file in the old format (fwbuilder
|
||||
v1.1.x, extension .xml) and after autoupgrade the program
|
||||
discovers that the same file with extension .fwb already
|
||||
exists, it offers the user a chance to choose different
|
||||
name. If user clicks "Cancel" at this point, the program
|
||||
cancel operation and reverts upgraded data file back to its
|
||||
original name and version.</li>
|
||||
|
||||
<li>improved behavior of the main menu "Edit" as well as
|
||||
pop-up menu that appears when user right mouse clicks on an
|
||||
object in the tree. Menu item "Paste" should only be enabled
|
||||
if the clipboard is not empty and objects that are stored in
|
||||
it can be pasted into selected object in the tree.</li>
|
||||
|
||||
<li>when user clicks menu item "File/Open" to open a new
|
||||
file, the GUI should save and close currently opened file
|
||||
only after the user chooses new file. If user clicks Cancel
|
||||
in the File/Open dialog, operation should be cancelled so
|
||||
the user can continue working with currently opened
|
||||
file. The same applies to operation File/New.</li>
|
||||
|
||||
<li>implemented feature request: colors that are used to
|
||||
color rules can be changed in Preferences dialog.</li>
|
||||
|
||||
<li>main menu item "Object/New Object/Address" and
|
||||
corresponding toolbar button always creates an Address
|
||||
object under Objects/Addresses folder in the tree. Address
|
||||
of an interface can be created using pop-up menu item "Add
|
||||
IP Address"</li>
|
||||
|
||||
<li>Pull-down menu "On startup" in the "General" tab of the
|
||||
preferences dialog now has three items: "Load standard
|
||||
objects", "Load last edited file" and "Ask user what to
|
||||
do". The last item is default.</li>
|
||||
|
||||
<li>Updated Japanese and Russian translations</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<hr>
|
||||
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<h2>Bugs fixed in GUI:</h2>
|
||||
<ul>
|
||||
<li>bug (no num): the GUI crashed when user tried to add a
|
||||
library file for auto-load in Preferences/Libraries and the
|
||||
first library object in that file had a name using non-ascii
|
||||
characters</li>
|
||||
|
||||
<li>bug (internal #34) the program should issue a warning when
|
||||
user tries to add a library file (.fwl) that contains object
|
||||
library that already exists in the opened data file.</li>
|
||||
|
||||
<li>bugfixes for the behavior of the object editor
|
||||
dialogs. Dialog should ask if user wants to save data and then
|
||||
validate it when user clicks on [x] to close editor dialog. It
|
||||
used to validate the data first, then ask if they want to close
|
||||
dialog.</li>
|
||||
|
||||
<li>bug (localization): RCS log entries made using non-ascii
|
||||
characters used to appear as '???' in Open File and
|
||||
File/Properties dialogs.</li>
|
||||
|
||||
<li>localization was broken on win32 and mac os x because
|
||||
translation files were not installed properly. Now fixed.</li>
|
||||
|
||||
<li>bug #1092810: "Multiline RCS comments are shown as a single
|
||||
line on windows". As it turned out, this bug affected all
|
||||
platforms.</li>
|
||||
|
||||
<li>bug (no num) that caused GUI crash when user created new
|
||||
firewall object using template with three interfaces.</li>
|
||||
</ul>
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<h2>Bugs fixed in API:</h2>
|
||||
<ul>
|
||||
<li>bug #1068119: "additional whitespace for Rule comments in
|
||||
.fw file". Added extra space between rule number and interface
|
||||
spec in rule comments.</li>
|
||||
</ul>
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<h2>Bugs fixed in policy compiler for iptables fwb_ipt:</h2>
|
||||
<ul>
|
||||
<li>bug #1089586: "default --icmp-type value is 0 in iptables <
|
||||
1.2.9". The problem concerns policy rules using service object
|
||||
"any ICMP". A rule like this is supposed to match any ICMP
|
||||
packet. Few versions ago I had to add option "-m icmp" (and "-m
|
||||
udp", "-m tcp") because I've discovered that iptables-restore on
|
||||
some systems (linksys sveasoft firmware, iptables v1.2.11)
|
||||
refused to load rules without it. Now it turns out that iptables
|
||||
v < 1.2.9 (tested on 1.2.6a and 1.2.7a) implicitly adds
|
||||
equivalent of "--icmp-type 0" to rules with "-p icmp -m icmp"
|
||||
and without "--icmp-type" option. Since type 0 is actually icmp
|
||||
echo reply, a rule like this does not match "any ICMP" as it was
|
||||
supposed to do. Iptables 1.2.9 implicitly adds "--icmp-type 255"
|
||||
which matches any icmp type. Using "--icmp-type 255" on iptables
|
||||
1.2.6 and 1.2.7 does not work (a rule does not match icmp
|
||||
packets with type different from 255). The fix generates "-p
|
||||
icmp -m icmp --icmp-type any" for iptables 1.2.9 and later, as
|
||||
well as when iptables version is not specified in the firewall
|
||||
object settings. It generates just "-p icmp" for versions <
|
||||
1.2.9.</li>
|
||||
|
||||
<li>bug #1092141: "irritating FORWARD rule for established
|
||||
connections". Need rule in FORWARD chain only if ip forwarding
|
||||
is on or set to "no change"</li>
|
||||
|
||||
<li>bug #1059393: "function getaddr failed for
|
||||
eth1.0020". Generated script can now work with interfaces that
|
||||
have a dot in their name (such as "eth1.0020" - vlan interface)</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<h2>Bugs fixed in policy compiler for ipfw fwb_ipfw:</h2>
|
||||
<ul>
|
||||
<li>bug #1089866: "multiple services in one rule confuses ipfw
|
||||
compiler". If several UDP or TCP objects were used in the same
|
||||
policy rule and these service objects had source port ranges
|
||||
defined, the compiler would produce incorrect code by combining
|
||||
source port range specifications together in the same ipfw
|
||||
command.</li>
|
||||
|
||||
<li>bug #1093461: "problem with 'established' in ipfw". Ipfw
|
||||
requires protocol to be set to 'tcp' if option 'established' is
|
||||
used in a rule.</li>
|
||||
|
||||
<li>bug #1093472: "ipfw port range(s) errors". There can only be
|
||||
one port range in a single ipfw rule.</li>
|
||||
|
||||
<li>bug #1093620: "path (to ipfw) with spaces fails". Generated
|
||||
script failed if path to ipfw contained space. I only worked
|
||||
around this problem for ipfw; paths to sysctl and logger must be
|
||||
standard and never contain spaces.</li>
|
||||
|
||||
</ul>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,140 @@
|
||||
Firewall Builder Release Notes
|
||||
|
||||
Version 2.0.5
|
||||
|
||||
Released 01/07/05
|
||||
GUI and compilers v2.0.5 require API library libfwbuilder version 2.0.5
|
||||
|
||||
Summary
|
||||
|
||||
This is a bugfix release; its main focus is on internationalization and
|
||||
usability
|
||||
|
||||
For those who wish to build from source, instructions are outlined in the
|
||||
document "Install and Build instructions" on our web site here
|
||||
|
||||
What's new
|
||||
|
||||
* Improvements in the GUI
|
||||
|
||||
* Fixed lots of places were strings were not properly marked for
|
||||
localization, this lead to GUI showing '????' instead of a text
|
||||
in some menu items and dialogs in non-english locales
|
||||
* properly synchronizing state of the items main menu with state of
|
||||
corresponding items in the pop-up menu that appears when user
|
||||
right-mouse-clicks on an object in the tree
|
||||
* fixes for non-localized text strings in dialogs (mostly
|
||||
"Continue", "Yes"/"No" etc. in many places)
|
||||
* proper localization of the human-readable version number text for
|
||||
iptables; also made info window print readable text instead of
|
||||
"lt_1.2.6"
|
||||
* cosmetic changes in some dialogs layout to make the look better
|
||||
when localized text makes strings much longer
|
||||
* firewall object dialog tab "Templates" has been hidden. It is
|
||||
unlikely that this feature will be implemented in 2.0.X series.
|
||||
* Streamlined logic in the object editor dialog. This improves
|
||||
handling of the situation when user closes dialog by clicking on
|
||||
[x] while 1) there are unsaved data and/or 2) some of the
|
||||
object's parameters have illegal values. The dialog behavior also
|
||||
depends on the setting of the global flag "Autosave" that causes
|
||||
dialog to automatically save data when user switches between
|
||||
objects.
|
||||
* when user opens data file in the old format (fwbuilder v1.1.x,
|
||||
extension .xml) and after autoupgrade the program discovers that
|
||||
the same file with extension .fwb already exists, it offers the
|
||||
user a chance to choose different name. If user clicks "Cancel"
|
||||
at this point, the program cancel operation and reverts upgraded
|
||||
data file back to its original name and version.
|
||||
* improved behavior of the main menu "Edit" as well as pop-up menu
|
||||
that appears when user right mouse clicks on an object in the
|
||||
tree. Menu item "Paste" should only be enabled if the clipboard
|
||||
is not empty and objects that are stored in it can be pasted into
|
||||
selected object in the tree.
|
||||
* when user clicks menu item "File/Open" to open a new file, the
|
||||
GUI should save and close currently opened file only after the
|
||||
user chooses new file. If user clicks Cancel in the File/Open
|
||||
dialog, operation should be cancelled so the user can continue
|
||||
working with currently opened file. The same applies to operation
|
||||
File/New.
|
||||
* implemented feature request: colors that are used to color rules
|
||||
can be changed in Preferences dialog.
|
||||
* main menu item "Object/New Object/Address" and corresponding
|
||||
toolbar button always creates an Address object under
|
||||
Objects/Addresses folder in the tree. Address of an interface can
|
||||
be created using pop-up menu item "Add IP Address"
|
||||
* Pull-down menu "On startup" in the "General" tab of the
|
||||
preferences dialog now has three items: "Load standard objects",
|
||||
"Load last edited file" and "Ask user what to do". The last item
|
||||
is default.
|
||||
* Updated Japanese and Russian translations
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Bugs fixed in GUI:
|
||||
|
||||
* bug (no num): the GUI crashed when user tried to add a library file
|
||||
for auto-load in Preferences/Libraries and the first library object in
|
||||
that file had a name using non-ascii characters
|
||||
* bug (internal #34) the program should issue a warning when user tries
|
||||
to add a library file (.fwl) that contains object library that already
|
||||
exists in the opened data file.
|
||||
* bugfixes for the behavior of the object editor dialogs. Dialog should
|
||||
ask if user wants to save data and then validate it when user clicks
|
||||
on [x] to close editor dialog. It used to validate the data first,
|
||||
then ask if they want to close dialog.
|
||||
* bug (localization): RCS log entries made using non-ascii characters
|
||||
used to appear as '???' in Open File and File/Properties dialogs.
|
||||
* localization was broken on win32 and mac os x because translation
|
||||
files were not installed properly. Now fixed.
|
||||
* bug #1092810: "Multiline RCS comments are shown as a single line on
|
||||
windows". As it turned out, this bug affected all platforms.
|
||||
* bug (no num) that caused GUI crash when user created new firewall
|
||||
object using template with three interfaces.
|
||||
|
||||
Bugs fixed in API:
|
||||
|
||||
* bug #1068119: "additional whitespace for Rule comments in .fw file".
|
||||
Added extra space between rule number and interface spec in rule
|
||||
comments.
|
||||
|
||||
Bugs fixed in policy compiler for iptables fwb_ipt:
|
||||
|
||||
* bug #1089586: "default --icmp-type value is 0 in iptables < 1.2.9".
|
||||
The problem concerns policy rules using service object "any ICMP". A
|
||||
rule like this is supposed to match any ICMP packet. Few versions ago
|
||||
I had to add option "-m icmp" (and "-m udp", "-m tcp") because I've
|
||||
discovered that iptables-restore on some systems (linksys sveasoft
|
||||
firmware, iptables v1.2.11) refused to load rules without it. Now it
|
||||
turns out that iptables v < 1.2.9 (tested on 1.2.6a and 1.2.7a)
|
||||
implicitly adds equivalent of "--icmp-type 0" to rules with "-p icmp
|
||||
-m icmp" and without "--icmp-type" option. Since type 0 is actually
|
||||
icmp echo reply, a rule like this does not match "any ICMP" as it was
|
||||
supposed to do. Iptables 1.2.9 implicitly adds "--icmp-type 255" which
|
||||
matches any icmp type. Using "--icmp-type 255" on iptables 1.2.6 and
|
||||
1.2.7 does not work (a rule does not match icmp packets with type
|
||||
different from 255). The fix generates "-p icmp -m icmp --icmp-type
|
||||
any" for iptables 1.2.9 and later, as well as when iptables version is
|
||||
not specified in the firewall object settings. It generates just "-p
|
||||
icmp" for versions < 1.2.9.
|
||||
* bug #1092141: "irritating FORWARD rule for established connections".
|
||||
Need rule in FORWARD chain only if ip forwarding is on or set to "no
|
||||
change"
|
||||
* bug #1059393: "function getaddr failed for eth1.0020". Generated
|
||||
script can now work with interfaces that have a dot in their name
|
||||
(such as "eth1.0020" - vlan interface)
|
||||
|
||||
Bugs fixed in policy compiler for ipfw fwb_ipfw:
|
||||
|
||||
* bug #1089866: "multiple services in one rule confuses ipfw compiler".
|
||||
If several UDP or TCP objects were used in the same policy rule and
|
||||
these service objects had source port ranges defined, the compiler
|
||||
would produce incorrect code by combining source port range
|
||||
specifications together in the same ipfw command.
|
||||
* bug #1093461: "problem with 'established' in ipfw". Ipfw requires
|
||||
protocol to be set to 'tcp' if option 'established' is used in a rule.
|
||||
* bug #1093472: "ipfw port range(s) errors". There can only be one port
|
||||
range in a single ipfw rule.
|
||||
* bug #1093620: "path (to ipfw) with spaces fails". Generated script
|
||||
failed if path to ipfw contained space. I only worked around this
|
||||
problem for ipfw; paths to sysctl and logger must be standard and
|
||||
never contain spaces.
|
||||
@@ -0,0 +1,259 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
|
||||
<link rel="stylesheet" type="text/css" href="http://www.fwbuilder.org/pages/fwbuilder.css">
|
||||
</head>
|
||||
<body>
|
||||
<h1> Firewall Builder Release Notes </h1>
|
||||
<br>
|
||||
<h2> Version 2.0.6 </h2>
|
||||
<br>
|
||||
<p>
|
||||
Released 02/17/05
|
||||
<br>
|
||||
<b>GUI and compilers v2.0.6 require API library libfwbuilder version 2.0.6</b>
|
||||
<br>
|
||||
<h2>Summary </h2>
|
||||
<p>
|
||||
This release adds ability to print firewall rulesets
|
||||
<p>
|
||||
<b>For those who wish to build from source, instructions are outlined
|
||||
in the document "Install and Build instructions" on our web site <a
|
||||
href="http://www.fwbuilder.org/archives/cat_installation.html">here</a></b>
|
||||
|
||||
<h2>What's new</h2>
|
||||
<ul>
|
||||
|
||||
<li>Improvements in the GUI
|
||||
<p>
|
||||
<ul>
|
||||
<li>Support for printing of firewall rulesets:
|
||||
<p>
|
||||
<ul>
|
||||
<li>prints policies and NAT rules for the currently
|
||||
opened firewall object</li>
|
||||
|
||||
<li>can print a header on each page, header includes
|
||||
file name, RCS revision number and page number. Header
|
||||
can be turned off</li>
|
||||
|
||||
<li>can print a legend at the end of the
|
||||
printout. Legend shows each icon and what object type it
|
||||
corresponds to. Printing of the legend can be turned
|
||||
off.</li>
|
||||
|
||||
<li>can print a list of objects used in all rules of the
|
||||
firewall. Each object is accompanied with a brief
|
||||
summary of its parameters. This can be turned off as
|
||||
well.</li>
|
||||
|
||||
<li>While printing rule sets, the program will break the
|
||||
table on the boundary of a rule when it reaches end of
|
||||
the page</li>
|
||||
|
||||
<li>Rule sets are printed as screenshots of the same
|
||||
table widget used in the GUI. The user can change
|
||||
scaling factor for the tables to make them fit on the
|
||||
page</li>
|
||||
|
||||
<li>Printing has been tested on Linux, Windows and Mac
|
||||
OS X</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li>slightly changed logic with user warnings in the object
|
||||
removal code. The program asks the user for confirmation if
|
||||
they remove an ordinary object from a regular
|
||||
library. Confirmation is not asked if object is removed from
|
||||
"Deleted objects" library or when a library is being deleted
|
||||
(in this case we ask a different quastion later
|
||||
anyway). This helps avoid double warning when a library is
|
||||
deleted.
|
||||
<p>
|
||||
</li>
|
||||
|
||||
<li>New service objects:
|
||||
<ul>
|
||||
<li>TCP service objects for regular VNC viewer (displays
|
||||
0 and 1) and Java VNC viewer (displays 0 and 1)</li>
|
||||
<li>UDP service object for OpenVPN</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li>Improvements in compiler for iptables fwb_ipt
|
||||
<p>
|
||||
<ul>
|
||||
<li>implemented feature req. #1112980: "Need unique names
|
||||
for accounting rules". User can now specify a unique name
|
||||
for rules with action 'Accounting'; this name will be
|
||||
converted to a chain name. This simplifies accounting since
|
||||
chain name for such rule won't change if the user adds or
|
||||
removes rules above or below. </li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<hr>
|
||||
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<h2>Bugs fixed in GUI:</h2>
|
||||
<ul>
|
||||
<li>bug #1107838: "bug in configure script in fwbuilder
|
||||
2.0.6". Need to specify path "./" when calling runqmake.sh </li>
|
||||
|
||||
<li>bug #1109631: "can not copy firewall script to /etc on
|
||||
Linksys". Added an option ot all OS resource files that
|
||||
determines whether user is allowed to change installation
|
||||
directory on the firewall. Currently it is allowed on all
|
||||
supported OS except Linksys/Sveasoft because there /etc/ resides
|
||||
on read-only filesystem</li>
|
||||
|
||||
<li>bug #1109174: "Cannot print rule base" - implemented
|
||||
printing</li>
|
||||
|
||||
<li>bug #1111244 "GUI allows to add more than one MAC address to
|
||||
an interface". There can only be one MAC address for each
|
||||
interface.</li>
|
||||
|
||||
<li>bug #1112264: "Load last edited file" setting doesn't
|
||||
work. This was broken only on Mac OS X.</li>
|
||||
|
||||
<li>bug #1112764: "some Objects are partially obscured in
|
||||
printout". Parts of the "Objects" table were clipped. </li>
|
||||
|
||||
<li>bug #1112776: "some items touching seperator lines on
|
||||
printouts". Rule elements "Action", "Direction", "Options" and
|
||||
"Comment" were placed right at the top of the table cell which
|
||||
led to their clipping when rule set was printed on Mac OS
|
||||
X. Need more testing.</li>
|
||||
|
||||
<li>bug #1115412: "Problem installer FWbuilder 2.0.5 for
|
||||
Windows". Switched to command line option "-l" to specify user
|
||||
name for external ssh in installer. This was necessary because
|
||||
Van Dyke SecureCRT on Windows does not support user@host syntax.</li>
|
||||
|
||||
<li>bug #1030538: "incorrect highlighting when selecting
|
||||
multiple rules". This bug seems to be specific to Mac OS X</li>
|
||||
|
||||
<li>support request #1118039: "Error when Windows client calls
|
||||
plink -ssh". The problem is that putty ignores protocol and port
|
||||
specified in the session file if command line option -ssh is
|
||||
given. On the other hand, the sign of session usage is an empty
|
||||
user name, so we can check for that. If user name is empty, then
|
||||
putty will use current Windows account name to log in to the
|
||||
firewall and this is unlikely to work anyway. This seems to be a
|
||||
decent workaround.</li>
|
||||
|
||||
<li>bug #1118717: "fwbuilder 206 on Windows XP SP2: error
|
||||
checking out". Env variable USERNAME was not set in user's
|
||||
profile, which triggered this bug. Now using getuid to get user
|
||||
name on Unix and GetUserName on Windows. This should make the
|
||||
program more resilient for situations when environment variable
|
||||
LOGNAME or USERNAME is not set</li>
|
||||
|
||||
<li>bug #1120904: "GUI hangs when accessing RCS file". Improved
|
||||
parsing of rlog output.</li>
|
||||
</ul>
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<h2>Bugs fixed in API:</h2>
|
||||
<ul>
|
||||
<li>bug #1108861: "two rules using MAC address matching shadow
|
||||
each other". Need to check for MAC addresses while processing
|
||||
rules for shadowing. </li>
|
||||
|
||||
<li>bug #1105167: "Crash when importing a library that has been
|
||||
deleted".</li>
|
||||
|
||||
|
||||
</ul>
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<h2>Bugs fixed in policy compiler for iptables fwb_ipt:</h2>
|
||||
<ul>
|
||||
<li>bug #1106701: 'backup ssh access' and statefulness
|
||||
interation. Need to add rules matching states ESTABLISHED and
|
||||
RELATED for the backup ssh access to make sure it works even if
|
||||
global rule matching these states is disabled. </li>
|
||||
|
||||
<li>bug #1101910: "Samba problem with Bridged Firewall". Need to
|
||||
split rule to take care of broadcasts forwarded by the bridge
|
||||
and broadcasts that are accepted by the firewall itself. Need to
|
||||
do this only if the rule is not associated with any bridging
|
||||
interface.</li>
|
||||
|
||||
<li>bug #1102629: "lost chain in accounting rules". Rules with
|
||||
multiple objects in one of the rule elements and action
|
||||
'Accounting' generated code that ignored objects in that rule
|
||||
element</li>
|
||||
|
||||
<li>bug #1112976: "Accounting rule with logging produces looped
|
||||
iptables command"</li>
|
||||
|
||||
<li>bug #1112470: "Problem with FW part of ANY in Bridged mode".
|
||||
If fw is considered part of any, we should place rule in
|
||||
INPUT/OUTPUT chains even if it is a bridging fw since fw itself
|
||||
may send or receive packets.</li>
|
||||
|
||||
<li>bug #1123748 "busybox grep -E". Busybox does not support
|
||||
option "-E" with grep, however it has "egrep".</li>
|
||||
|
||||
<li>bug #1123933 "iptables add_addr() expr binary not found". As
|
||||
it turns out, /usr/bin/ is not in PATH during boot time on
|
||||
Slackware. I added /usr/bin/ to PATH variable in generated
|
||||
iptables script.</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<h2>Bugs fixed in policy compiler for pf fwb_pf:</h2>
|
||||
<ul>
|
||||
<li>bug #1105755 "Custom Service objects not working for PF
|
||||
compiler".User tried to generate a nat rule like this using
|
||||
CustomService object:
|
||||
<p>
|
||||
<blockquote>
|
||||
nat on eth1 proto {tcp udp icmp gre} from 192.168.1.0/24 to any -> 22.22.22.22
|
||||
</blockquote>
|
||||
<p>
|
||||
Taken from the bug report:
|
||||
<p>
|
||||
as it turned out, I can not fix this. You are trying to use
|
||||
Custom Service object to insert protocol list into a "nat"
|
||||
rule. Normally, a service object such as TCP or UDP service
|
||||
generates two components for any rule where it is used: a
|
||||
protocol specification and port specification (type/ code spec
|
||||
for ICMP). PF is sensitive to the order of parameters in the
|
||||
rule, in particular, protocol must be defined after interface
|
||||
but before src/dst addresses in the rule, while port numbers
|
||||
go after addresses. Compiler easily retrieves this
|
||||
information from IP, TCP, UDP and ICMP services and places it
|
||||
in a proper slots in the rule it generates. CustomService
|
||||
does not have a notion of protocol and parameters for it, so
|
||||
compiler puts a string that is configured in the CustomService
|
||||
in the place reserved for port numbers. This means you can not
|
||||
use CustomService to specify protocols.
|
||||
<p>
|
||||
There still was a bug in fwb_pf where it would print
|
||||
"custom_service" in place of protocol. This is fixed in 2.0.6
|
||||
build 542. Protocols can not be inserted with Custom Service
|
||||
though.
|
||||
<p>
|
||||
Feature request #1111267 "CustomService should specify protocol
|
||||
and parameters for it" has been opened
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,166 @@
|
||||
Firewall Builder Release Notes
|
||||
|
||||
Version 2.0.6
|
||||
|
||||
Released 02/17/05
|
||||
GUI and compilers v2.0.6 require API library libfwbuilder version 2.0.6
|
||||
|
||||
Summary
|
||||
|
||||
This release adds ability to print firewall rulesets
|
||||
|
||||
For those who wish to build from source, instructions are outlined in the
|
||||
document "Install and Build instructions" on our web site here
|
||||
|
||||
What's new
|
||||
|
||||
* Improvements in the GUI
|
||||
|
||||
* Support for printing of firewall rulesets:
|
||||
|
||||
* prints policies and NAT rules for the currently opened
|
||||
firewall object
|
||||
* can print a header on each page, header includes file name,
|
||||
RCS revision number and page number. Header can be turned
|
||||
off
|
||||
* can print a legend at the end of the printout. Legend shows
|
||||
each icon and what object type it corresponds to. Printing
|
||||
of the legend can be turned off.
|
||||
* can print a list of objects used in all rules of the
|
||||
firewall. Each object is accompanied with a brief summary of
|
||||
its parameters. This can be turned off as well.
|
||||
* While printing rule sets, the program will break the table
|
||||
on the boundary of a rule when it reaches end of the page
|
||||
* Rule sets are printed as screenshots of the same table
|
||||
widget used in the GUI. The user can change scaling factor
|
||||
for the tables to make them fit on the page
|
||||
* Printing has been tested on Linux, Windows and Mac OS X
|
||||
|
||||
* slightly changed logic with user warnings in the object removal
|
||||
code. The program asks the user for confirmation if they remove
|
||||
an ordinary object from a regular library. Confirmation is not
|
||||
asked if object is removed from "Deleted objects" library or when
|
||||
a library is being deleted (in this case we ask a different
|
||||
quastion later anyway). This helps avoid double warning when a
|
||||
library is deleted.
|
||||
|
||||
* New service objects:
|
||||
|
||||
* TCP service objects for regular VNC viewer (displays 0 and
|
||||
1) and Java VNC viewer (displays 0 and 1)
|
||||
* UDP service object for OpenVPN
|
||||
|
||||
* Improvements in compiler for iptables fwb_ipt
|
||||
|
||||
* implemented feature req. #1112980: "Need unique names for
|
||||
accounting rules". User can now specify a unique name for rules
|
||||
with action 'Accounting'; this name will be converted to a chain
|
||||
name. This simplifies accounting since chain name for such rule
|
||||
won't change if the user adds or removes rules above or below.
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Bugs fixed in GUI:
|
||||
|
||||
* bug #1107838: "bug in configure script in fwbuilder 2.0.6". Need to
|
||||
specify path "./" when calling runqmake.sh
|
||||
* bug #1109631: "can not copy firewall script to /etc on Linksys". Added
|
||||
an option ot all OS resource files that determines whether user is
|
||||
allowed to change installation directory on the firewall. Currently it
|
||||
is allowed on all supported OS except Linksys/Sveasoft because there
|
||||
/etc/ resides on read-only filesystem
|
||||
* bug #1109174: "Cannot print rule base" - implemented printing
|
||||
* bug #1111244 "GUI allows to add more than one MAC address to an
|
||||
interface". There can only be one MAC address for each interface.
|
||||
* bug #1112264: "Load last edited file" setting doesn't work. This was
|
||||
broken only on Mac OS X.
|
||||
* bug #1112764: "some Objects are partially obscured in printout". Parts
|
||||
of the "Objects" table were clipped.
|
||||
* bug #1112776: "some items touching seperator lines on printouts". Rule
|
||||
elements "Action", "Direction", "Options" and "Comment" were placed
|
||||
right at the top of the table cell which led to their clipping when
|
||||
rule set was printed on Mac OS X. Need more testing.
|
||||
* bug #1115412: "Problem installer FWbuilder 2.0.5 for Windows".
|
||||
Switched to command line option "-l" to specify user name for external
|
||||
ssh in installer. This was necessary because Van Dyke SecureCRT on
|
||||
Windows does not support user@host syntax.
|
||||
* bug #1030538: "incorrect highlighting when selecting multiple rules".
|
||||
This bug seems to be specific to Mac OS X
|
||||
* support request #1118039: "Error when Windows client calls plink
|
||||
-ssh". The problem is that putty ignores protocol and port specified
|
||||
in the session file if command line option -ssh is given. On the other
|
||||
hand, the sign of session usage is an empty user name, so we can check
|
||||
for that. If user name is empty, then putty will use current Windows
|
||||
account name to log in to the firewall and this is unlikely to work
|
||||
anyway. This seems to be a decent workaround.
|
||||
* bug #1118717: "fwbuilder 206 on Windows XP SP2: error checking out".
|
||||
Env variable USERNAME was not set in user's profile, which triggered
|
||||
this bug. Now using getuid to get user name on Unix and GetUserName on
|
||||
Windows. This should make the program more resilient for situations
|
||||
when environment variable LOGNAME or USERNAME is not set
|
||||
* bug #1120904: "GUI hangs when accessing RCS file". Improved parsing of
|
||||
rlog output.
|
||||
|
||||
Bugs fixed in API:
|
||||
|
||||
* bug #1108861: "two rules using MAC address matching shadow each
|
||||
other". Need to check for MAC addresses while processing rules for
|
||||
shadowing.
|
||||
* bug #1105167: "Crash when importing a library that has been deleted".
|
||||
|
||||
Bugs fixed in policy compiler for iptables fwb_ipt:
|
||||
|
||||
* bug #1106701: 'backup ssh access' and statefulness interation. Need to
|
||||
add rules matching states ESTABLISHED and RELATED for the backup ssh
|
||||
access to make sure it works even if global rule matching these states
|
||||
is disabled.
|
||||
* bug #1101910: "Samba problem with Bridged Firewall". Need to split
|
||||
rule to take care of broadcasts forwarded by the bridge and broadcasts
|
||||
that are accepted by the firewall itself. Need to do this only if the
|
||||
rule is not associated with any bridging interface.
|
||||
* bug #1102629: "lost chain in accounting rules". Rules with multiple
|
||||
objects in one of the rule elements and action 'Accounting' generated
|
||||
code that ignored objects in that rule element
|
||||
* bug #1112976: "Accounting rule with logging produces looped iptables
|
||||
command"
|
||||
* bug #1112470: "Problem with FW part of ANY in Bridged mode". If fw is
|
||||
considered part of any, we should place rule in INPUT/OUTPUT chains
|
||||
even if it is a bridging fw since fw itself may send or receive
|
||||
packets.
|
||||
* bug #1123748 "busybox grep -E". Busybox does not support option "-E"
|
||||
with grep, however it has "egrep".
|
||||
* bug #1123933 "iptables add_addr() expr binary not found". As it turns
|
||||
out, /usr/bin/ is not in PATH during boot time on Slackware. I added
|
||||
/usr/bin/ to PATH variable in generated iptables script.
|
||||
|
||||
Bugs fixed in policy compiler for pf fwb_pf:
|
||||
|
||||
* bug #1105755 "Custom Service objects not working for PF compiler".User
|
||||
tried to generate a nat rule like this using CustomService object:
|
||||
|
||||
nat on eth1 proto {tcp udp icmp gre} from 192.168.1.0/24 to any ->
|
||||
22.22.22.22
|
||||
|
||||
Taken from the bug report:
|
||||
|
||||
as it turned out, I can not fix this. You are trying to use Custom
|
||||
Service object to insert protocol list into a "nat" rule. Normally, a
|
||||
service object such as TCP or UDP service generates two components for
|
||||
any rule where it is used: a protocol specification and port
|
||||
specification (type/ code spec for ICMP). PF is sensitive to the order
|
||||
of parameters in the rule, in particular, protocol must be defined
|
||||
after interface but before src/dst addresses in the rule, while port
|
||||
numbers go after addresses. Compiler easily retrieves this information
|
||||
from IP, TCP, UDP and ICMP services and places it in a proper slots in
|
||||
the rule it generates. CustomService does not have a notion of
|
||||
protocol and parameters for it, so compiler puts a string that is
|
||||
configured in the CustomService in the place reserved for port
|
||||
numbers. This means you can not use CustomService to specify
|
||||
protocols.
|
||||
|
||||
There still was a bug in fwb_pf where it would print "custom_service"
|
||||
in place of protocol. This is fixed in 2.0.6 build 542. Protocols can
|
||||
not be inserted with Custom Service though.
|
||||
|
||||
Feature request #1111267 "CustomService should specify protocol and
|
||||
parameters for it" has been opened
|
||||
@@ -0,0 +1,271 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
|
||||
<link rel="stylesheet" type="text/css" href="http://www.fwbuilder.org/pages/fwbuilder.css">
|
||||
</head>
|
||||
<body>
|
||||
<h1> Firewall Builder Release Notes </h1>
|
||||
<br>
|
||||
<h2> Version 2.0.7 </h2>
|
||||
<br>
|
||||
<p>
|
||||
Released 05/08/2005
|
||||
<br>
|
||||
<b>GUI and compilers v2.0.7 require API library libfwbuilder version 2.0.7</b>
|
||||
<br>
|
||||
<h2>Summary </h2>
|
||||
<p>
|
||||
This is a bug fix release
|
||||
<p>
|
||||
<b>For those who wish to build from source, instructions are outlined
|
||||
in the document "Install and Build instructions" on our web site <a
|
||||
href="http://www.fwbuilder.org/archives/cat_installation.html">here</a></b>
|
||||
|
||||
<h2>What's new</h2>
|
||||
<ul>
|
||||
<li>Improvements in the GUI
|
||||
<p>
|
||||
<ul>
|
||||
<li>implemented feature req. #1151220: "Close" button should
|
||||
change is caption/title to "Install". When user clicks
|
||||
"Install" toolbar button or main menu item, the "Close"
|
||||
button in the pop-up window that displays compiler progress
|
||||
changes its text caption to "Install"</li>
|
||||
|
||||
<li>implemented feature request #1151206: "Search for IP
|
||||
Addresses". "Find" dialog searches for objects by a
|
||||
combination of name and one of the following attributes:
|
||||
address, tcp/udp port, ip protocol number or icmp message
|
||||
type. Regular expressions can be used for both name and
|
||||
attribute.</li>
|
||||
|
||||
<li>Support for SNMP operations has been added in Windows
|
||||
packages of Firewall Builder</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li>Improvements in built-in installer:
|
||||
<p>
|
||||
User can specify additional command line parameters for ssh
|
||||
that built-in installer runs to access firewall. This allows
|
||||
for alternative ssh port or alternative ssh identity to be
|
||||
used when accessing firewall. Parameters can be added in the
|
||||
"Installer" tab of firewall settings dialog for all
|
||||
platforms.
|
||||
</p>
|
||||
</li>
|
||||
|
||||
<li>Improvements in compiler for ipfilter fwb_ipf
|
||||
<p>
|
||||
Added support for dynamic addresses in ipfilter. Actual
|
||||
address of dynamic interface is now determined at run-time
|
||||
in the policy activation script <firewall_name>.fw
|
||||
generated by fwbuilder. If dynamic interface is used
|
||||
somewhere in the policy or nat rules, it will be replaced
|
||||
with its actual address by activation script before
|
||||
configuration is sent to ipf or ipnat for activation. This
|
||||
run-time substitution is done only if a checkbox is checked
|
||||
in the "Script options" tab of firewall settings
|
||||
dialog. Default behavior is to use "any". This is because
|
||||
ipfilter configuration files <firewall>-ipf.conf and
|
||||
<firewall>-nat.conf that rely on run-time substitution
|
||||
of dynamic interface address can not be loaded using
|
||||
standard activation scripts that come with FreeBSD.
|
||||
</p>
|
||||
<p>
|
||||
Generated script uses function getaddr() to determine
|
||||
address of dynamic interface. This function falls back to
|
||||
0.0.0.0/32 if dynamic interface has not been assigned an
|
||||
address yet or is down. Ipfilter policy using run-time
|
||||
substitution of dynamic interface addresses will be
|
||||
functional even if these interfaces are down or do not have
|
||||
IP address.
|
||||
</p>
|
||||
</li>
|
||||
|
||||
<li>Improvements in compiler for iptables fwb_ipt
|
||||
<p>
|
||||
Generated iptables script sets default policies to DROP in
|
||||
all ipv6 filter chains. More detailed control can be
|
||||
implemented using prolog or epilog scripts.
|
||||
<p>
|
||||
Note that this changes behavior of the generated iptables
|
||||
script with respect to IPv6. Until now, the script just
|
||||
ignored IPv6 but some people felt this leaves a hole in the
|
||||
firewall and asked me to make the script close it. Generated
|
||||
shell code will check if ip6tables is installed on the
|
||||
system and if it actually works before setting default
|
||||
policies to DROP. This means it won't try to do it if
|
||||
ip6tables is not installed or if it is present, but IPv6 is
|
||||
not compiled into the kernel (so ip6tables does not work and
|
||||
generates errors).
|
||||
</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<hr>
|
||||
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<h2>Bugs fixed in GUI:</h2>
|
||||
<ul>
|
||||
<li>bug #1151052: "Not external interfaces marked as
|
||||
external". Dialog for an interface object that belongs to a host
|
||||
should not show checkbox "external (insecure) interface"</li>
|
||||
|
||||
<li>bug #1151212: "Collapsed sub-objects shouldn't be added if
|
||||
they are hidden". When user selects multiple objects in the tree
|
||||
some of which have child objects, those child objects used to be
|
||||
also selected and added to groups in addition to their parent
|
||||
objects via drag-and-drop operation.</li>
|
||||
|
||||
<li>bug #1151243: "Maintain format of description text". The GUI
|
||||
ignored text formatting in object comment when displayed it in
|
||||
the info panel (lower left corner of the main windows)</li>
|
||||
|
||||
<li>bug #1155163: "print does not print group contents". The
|
||||
program printed only number of objects contaned in object or
|
||||
service groups. Now it prints lists of member objects for all
|
||||
groups used in rules. If groups contain other groups, they are
|
||||
printed recursively.</li>
|
||||
|
||||
<li>bug #1172620: "Add tcp service object for icslap". Added
|
||||
this object to the objects library "Standard".</li>
|
||||
|
||||
<li>bug #1184791: "can not copy/paste multiple objects into a
|
||||
group"</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<h2>Bugs fixed in API:</h2>
|
||||
<ul>
|
||||
<li>
|
||||
bug #1158870: "mutexes are not properly created on
|
||||
FreeBSD". Mutexes gethostbyname_mutex and gethostbyaddr_mutex
|
||||
were never created but used on OS where thread-safe resolver
|
||||
is not available.
|
||||
</li>
|
||||
|
||||
<li>bug #1151219: "New Host creation window is not well
|
||||
dimensioned". Fixed wrong dialog page layout in the new host
|
||||
wizard.</li>
|
||||
|
||||
<li>bug #1157976: "patches to make fwbuilder compile under
|
||||
NetBSD 1.6". Applied patches.</li>
|
||||
|
||||
<li>bug #1173801: '"&" character in prolog/epilog'. Needed to
|
||||
call xmlEncodeSpecialChars to encode special characters in
|
||||
firewall options</li>
|
||||
</ul>
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<h2>Bugs fixed in policy compiler for iptables fwb_ipt:</h2>
|
||||
<ul>
|
||||
<li>
|
||||
bug #1123748: "busybox grep -E". Busybox in floppyfw is
|
||||
compiled without support for egrep (or grep -E). Switched to
|
||||
using "plain" grep.</li>
|
||||
|
||||
<li>bug #1160186: 'IPTables Compiler - Multiport Issue'. When 16
|
||||
or 31 ports were used in a single rule, compiler generated
|
||||
command with conflicting options "-m multiport --dport"</li>
|
||||
|
||||
<li>
|
||||
bug #1176890: "block IPv6". Generated iptables script sets
|
||||
default policies to DROP in all ipv6 filter chains. More
|
||||
detailed control can be implemented using prolog or epilog
|
||||
scripts.
|
||||
<p>
|
||||
Note that this changes behavior of the generated iptables
|
||||
script with respect to IPv6. Until now, the script just
|
||||
ignored IPv6 but some people felt this leaves a hole in the
|
||||
firewall and asked me to make the script close it. Generated
|
||||
shell code will check if ip6tables is installed on the
|
||||
system and if it actually works before setting default
|
||||
policies to DROP. This means it won't try to do it if
|
||||
ip6tables is not installed or if it is present, but IPv6 is
|
||||
not compiled into the kernel (so ip6tables does not work and
|
||||
generates errors).
|
||||
</li>
|
||||
|
||||
<li>bug #1176890: "block IPv6". Generated iptables script sets
|
||||
default policies to DROP in all ipv6 filter chains. More
|
||||
detailed control can be implemented using prolog or epilog
|
||||
scripts.</li>
|
||||
|
||||
<li>bug #1179103: 'compiled rules can not be
|
||||
installed'. Generated iptables script could not be used on
|
||||
systems with non-English locale where timezone name used local
|
||||
characters because these characters were printed as hex (
|
||||
"&#21488;" ) and '&' caused problems with shell. Now using
|
||||
single quotes to make shell ignore any characters in the
|
||||
string. Will deal with proper printing of localazed timezone
|
||||
later.</li>
|
||||
|
||||
<li>bug #1181359: "Missing traling space in "INVALID state"
|
||||
syslog message"</li>
|
||||
|
||||
<li>bug #1195201: "getaddr function return error ip address". Yet
|
||||
another change in the way we use grep to find IP addresses of an
|
||||
interface on Linux. We can't use regex (bug #1123748) and need
|
||||
to filter out secondary addresses from the "ip addr show"
|
||||
output. It looks like "grep -v :" neatly solves the problem
|
||||
without using regex.</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<h2>Bugs fixed in policy compiler for pf fwb_ipf:</h2>
|
||||
<ul>
|
||||
<li>bug #1173067: "support for port ranges in NAT rules
|
||||
(ipfilter)" - policy compiler for ipfilter should split DNAT
|
||||
rules (rdr) that use TCP or UDP objects with port ranges. A
|
||||
warning is issued if more than 20 rules are created.
|
||||
</li>
|
||||
|
||||
<li>bug
|
||||
#1173064: "support for dynamic interfaces in ipfilter". Actual
|
||||
address of dynamic interface is now determined at run-time in the
|
||||
policy activation script <firewall_name>.fw generated by
|
||||
fwbuilder. If dynamic interface is used somewhere in the policy or
|
||||
nat rules, it will be replaced with its actual address by
|
||||
activation script before configuration is sent to ipf or ipnat for
|
||||
activation. This run-time substitution is done only if a checkbox
|
||||
is checked in the "Script options" tab of firewall settings
|
||||
dialog. Default behavior is to use "any". This is because ipfilter
|
||||
configuration files <firewall>-ipf.conf and <firewall>-nat.conf
|
||||
that rely on run-time substitution of dynamic interface address
|
||||
can not be loaded using standard activation scripts that come with
|
||||
FreeBSD.
|
||||
<p>
|
||||
This also fixes another problem in fwb_ipf where it generated rdr
|
||||
and nat commands with address 0.0.0.0/32 if dynamic interface was
|
||||
used in a NAT rule.</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<h2>Bugs fixed in policy compiler for pf fwb_pf:</h2>
|
||||
<ul>
|
||||
<li>bug #1176051: "incorrect rule generated for TCP service
|
||||
ftp-data". If a rule used several TCP or UDP service objects and
|
||||
one of them has source port range configured, generated PF
|
||||
filter rule incorrectly matched on a combiantion of that source
|
||||
port range _and_ destination port ranges from all other service
|
||||
objects. This bug affected compilers for OpenBSD PF and ipfilter</li>
|
||||
</ul>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,181 @@
|
||||
Firewall Builder Release Notes
|
||||
|
||||
Version 2.0.7
|
||||
|
||||
Released 05/08/2005
|
||||
GUI and compilers v2.0.7 require API library libfwbuilder version 2.0.7
|
||||
|
||||
Summary
|
||||
|
||||
This is a bug fix release
|
||||
|
||||
For those who wish to build from source, instructions are outlined in the
|
||||
document "Install and Build instructions" on our web site here
|
||||
|
||||
What's new
|
||||
|
||||
* Improvements in the GUI
|
||||
|
||||
* implemented feature req. #1151220: "Close" button should change
|
||||
is caption/title to "Install". When user clicks "Install" toolbar
|
||||
button or main menu item, the "Close" button in the pop-up window
|
||||
that displays compiler progress changes its text caption to
|
||||
"Install"
|
||||
* implemented feature request #1151206: "Search for IP Addresses".
|
||||
"Find" dialog searches for objects by a combination of name and
|
||||
one of the following attributes: address, tcp/udp port, ip
|
||||
protocol number or icmp message type. Regular expressions can be
|
||||
used for both name and attribute.
|
||||
* Support for SNMP operations has been added in Windows packages of
|
||||
Firewall Builder
|
||||
|
||||
* Improvements in built-in installer:
|
||||
|
||||
User can specify additional command line parameters for ssh that
|
||||
built-in installer runs to access firewall. This allows for
|
||||
alternative ssh port or alternative ssh identity to be used when
|
||||
accessing firewall. Parameters can be added in the "Installer" tab of
|
||||
firewall settings dialog for all platforms.
|
||||
|
||||
* Improvements in compiler for ipfilter fwb_ipf
|
||||
|
||||
Added support for dynamic addresses in ipfilter. Actual address of
|
||||
dynamic interface is now determined at run-time in the policy
|
||||
activation script <firewall_name>.fw generated by fwbuilder. If
|
||||
dynamic interface is used somewhere in the policy or nat rules, it
|
||||
will be replaced with its actual address by activation script before
|
||||
configuration is sent to ipf or ipnat for activation. This run-time
|
||||
substitution is done only if a checkbox is checked in the "Script
|
||||
options" tab of firewall settings dialog. Default behavior is to use
|
||||
"any". This is because ipfilter configuration files
|
||||
<firewall>-ipf.conf and <firewall>-nat.conf that rely on run-time
|
||||
substitution of dynamic interface address can not be loaded using
|
||||
standard activation scripts that come with FreeBSD.
|
||||
|
||||
Generated script uses function getaddr() to determine address of
|
||||
dynamic interface. This function falls back to 0.0.0.0/32 if dynamic
|
||||
interface has not been assigned an address yet or is down. Ipfilter
|
||||
policy using run-time substitution of dynamic interface addresses will
|
||||
be functional even if these interfaces are down or do not have IP
|
||||
address.
|
||||
|
||||
* Improvements in compiler for iptables fwb_ipt
|
||||
|
||||
Generated iptables script sets default policies to DROP in all ipv6
|
||||
filter chains. More detailed control can be implemented using prolog
|
||||
or epilog scripts.
|
||||
|
||||
Note that this changes behavior of the generated iptables script with
|
||||
respect to IPv6. Until now, the script just ignored IPv6 but some
|
||||
people felt this leaves a hole in the firewall and asked me to make
|
||||
the script close it. Generated shell code will check if ip6tables is
|
||||
installed on the system and if it actually works before setting
|
||||
default policies to DROP. This means it won't try to do it if
|
||||
ip6tables is not installed or if it is present, but IPv6 is not
|
||||
compiled into the kernel (so ip6tables does not work and generates
|
||||
errors).
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Bugs fixed in GUI:
|
||||
|
||||
* bug #1151052: "Not external interfaces marked as external". Dialog for
|
||||
an interface object that belongs to a host should not show checkbox
|
||||
"external (insecure) interface"
|
||||
* bug #1151212: "Collapsed sub-objects shouldn't be added if they are
|
||||
hidden". When user selects multiple objects in the tree some of which
|
||||
have child objects, those child objects used to be also selected and
|
||||
added to groups in addition to their parent objects via drag-and-drop
|
||||
operation.
|
||||
* bug #1151243: "Maintain format of description text". The GUI ignored
|
||||
text formatting in object comment when displayed it in the info panel
|
||||
(lower left corner of the main windows)
|
||||
* bug #1155163: "print does not print group contents". The program
|
||||
printed only number of objects contaned in object or service groups.
|
||||
Now it prints lists of member objects for all groups used in rules. If
|
||||
groups contain other groups, they are printed recursively.
|
||||
* bug #1172620: "Add tcp service object for icslap". Added this object
|
||||
to the objects library "Standard".
|
||||
* bug #1184791: "can not copy/paste multiple objects into a group"
|
||||
|
||||
Bugs fixed in API:
|
||||
|
||||
* bug #1158870: "mutexes are not properly created on FreeBSD". Mutexes
|
||||
gethostbyname_mutex and gethostbyaddr_mutex were never created but
|
||||
used on OS where thread-safe resolver is not available.
|
||||
* bug #1151219: "New Host creation window is not well dimensioned".
|
||||
Fixed wrong dialog page layout in the new host wizard.
|
||||
* bug #1157976: "patches to make fwbuilder compile under NetBSD 1.6".
|
||||
Applied patches.
|
||||
* bug #1173801: '"&" character in prolog/epilog'. Needed to call
|
||||
xmlEncodeSpecialChars to encode special characters in firewall options
|
||||
|
||||
Bugs fixed in policy compiler for iptables fwb_ipt:
|
||||
|
||||
* bug #1123748: "busybox grep -E". Busybox in floppyfw is compiled
|
||||
without support for egrep (or grep -E). Switched to using "plain"
|
||||
grep.
|
||||
* bug #1160186: 'IPTables Compiler - Multiport Issue'. When 16 or 31
|
||||
ports were used in a single rule, compiler generated command with
|
||||
conflicting options "-m multiport --dport"
|
||||
* bug #1176890: "block IPv6". Generated iptables script sets default
|
||||
policies to DROP in all ipv6 filter chains. More detailed control can
|
||||
be implemented using prolog or epilog scripts.
|
||||
|
||||
Note that this changes behavior of the generated iptables script with
|
||||
respect to IPv6. Until now, the script just ignored IPv6 but some
|
||||
people felt this leaves a hole in the firewall and asked me to make
|
||||
the script close it. Generated shell code will check if ip6tables is
|
||||
installed on the system and if it actually works before setting
|
||||
default policies to DROP. This means it won't try to do it if
|
||||
ip6tables is not installed or if it is present, but IPv6 is not
|
||||
compiled into the kernel (so ip6tables does not work and generates
|
||||
errors).
|
||||
* bug #1176890: "block IPv6". Generated iptables script sets default
|
||||
policies to DROP in all ipv6 filter chains. More detailed control can
|
||||
be implemented using prolog or epilog scripts.
|
||||
* bug #1179103: 'compiled rules can not be installed'. Generated
|
||||
iptables script could not be used on systems with non-English locale
|
||||
where timezone name used local characters because these characters
|
||||
were printed as hex ( "台" ) and '&' caused problems with shell.
|
||||
Now using single quotes to make shell ignore any characters in the
|
||||
string. Will deal with proper printing of localazed timezone later.
|
||||
* bug #1181359: "Missing traling space in "INVALID state" syslog
|
||||
message"
|
||||
* bug #1195201: "getaddr function return error ip address". Yet another
|
||||
change in the way we use grep to find IP addresses of an interface on
|
||||
Linux. We can't use regex (bug #1123748) and need to filter out
|
||||
secondary addresses from the "ip addr show" output. It looks like
|
||||
"grep -v :" neatly solves the problem without using regex.
|
||||
|
||||
Bugs fixed in policy compiler for pf fwb_ipf:
|
||||
|
||||
* bug #1173067: "support for port ranges in NAT rules (ipfilter)" -
|
||||
policy compiler for ipfilter should split DNAT rules (rdr) that use
|
||||
TCP or UDP objects with port ranges. A warning is issued if more than
|
||||
20 rules are created.
|
||||
* bug #1173064: "support for dynamic interfaces in ipfilter". Actual
|
||||
address of dynamic interface is now determined at run-time in the
|
||||
policy activation script <firewall_name>.fw generated by fwbuilder. If
|
||||
dynamic interface is used somewhere in the policy or nat rules, it
|
||||
will be replaced with its actual address by activation script before
|
||||
configuration is sent to ipf or ipnat for activation. This run-time
|
||||
substitution is done only if a checkbox is checked in the "Script
|
||||
options" tab of firewall settings dialog. Default behavior is to use
|
||||
"any". This is because ipfilter configuration files
|
||||
<firewall>-ipf.conf and <firewall>-nat.conf that rely on run-time
|
||||
substitution of dynamic interface address can not be loaded using
|
||||
standard activation scripts that come with FreeBSD.
|
||||
|
||||
This also fixes another problem in fwb_ipf where it generated rdr and
|
||||
nat commands with address 0.0.0.0/32 if dynamic interface was used in
|
||||
a NAT rule.
|
||||
|
||||
Bugs fixed in policy compiler for pf fwb_pf:
|
||||
|
||||
* bug #1176051: "incorrect rule generated for TCP service ftp-data". If
|
||||
a rule used several TCP or UDP service objects and one of them has
|
||||
source port range configured, generated PF filter rule incorrectly
|
||||
matched on a combiantion of that source port range _and_ destination
|
||||
port ranges from all other service objects. This bug affected
|
||||
compilers for OpenBSD PF and ipfilter
|
||||
@@ -0,0 +1,203 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
|
||||
<link rel="stylesheet" type="text/css" href="http://www.fwbuilder.org/pages/fwbuilder.css">
|
||||
</head>
|
||||
<body>
|
||||
<h1> Firewall Builder Release Notes </h1>
|
||||
<br>
|
||||
<h2> Version 2.0.8 </h2>
|
||||
<br>
|
||||
<p>
|
||||
Released 07/08/2005
|
||||
<br>
|
||||
<b>GUI and compilers v2.0.8 require API library libfwbuilder version 2.0.8</b>
|
||||
<br>
|
||||
<h2>Summary </h2>
|
||||
<p>
|
||||
This is a bug fix release
|
||||
<p>
|
||||
<b>For those who wish to build from source, instructions are outlined
|
||||
in the document "Install and Build instructions" on our web site <a
|
||||
href="http://www.fwbuilder.org/archives/cat_installation.html">here</a></b>
|
||||
|
||||
<h2>What's new</h2>
|
||||
<ul>
|
||||
<li>Improvements in the GUI
|
||||
<p>
|
||||
<ul>
|
||||
<li>Included updated German translation by Hans Peter
|
||||
Dittler <hpdittler at braintec-consult.de>
|
||||
</li>
|
||||
|
||||
<li>implemented Feature Request #1145666: "Print RCS
|
||||
Log". File/Properties dialog can now print RCS log. Thanks
|
||||
to "Ilya V. Yalovoy" <yalovoy@pilot.aip.mk.ua> for the
|
||||
patch.</li>
|
||||
|
||||
<li>Some code changes were made to make the code comiple and
|
||||
work on Solaris. In particular, tests and emulation for
|
||||
forkpty and cfmakeraw functions were added. Currently this
|
||||
still remains largely untested.</li>
|
||||
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li>Improvements in policy compilers for pf, ipf, ipfw
|
||||
<p>
|
||||
<ul>
|
||||
<li>implemented support for subnets for backup ssh access for
|
||||
pf,ipf,ipfw. Subnet can be defined using either full netmask or
|
||||
bitlength: both "192.168.1.0/255.255.255.0" and "192.168.1.0/24"
|
||||
are acceptable. Single host address works too, both as
|
||||
"192.168.1.10" and as "192.168.1.10/255.255.255.255" or
|
||||
"192.168.1.10/32". Incorrect address or netmask cause compiler
|
||||
to abort processing.</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li>Improvements in compiler for ipfw
|
||||
<p>
|
||||
<ul>
|
||||
<li>using rule sets to atomically swap old and new
|
||||
rules. New rules are loaded in the set 1 and then swapped
|
||||
into set 0. If there is an error in a new rule set, it is
|
||||
caught while loading rules into inactive set 1, at which
|
||||
point script stops without changing old firewall rules.</li>
|
||||
|
||||
<li>added "established" rule on top of the regular backup
|
||||
ssh access rule; this allows to maintain management ssh
|
||||
session after the policy is reloaded. both "ipfw -f" and
|
||||
swapping sets flushes all states, so the ssh session used to
|
||||
upload and activate new policy breaks. A rule with
|
||||
"established" keyword maintains this session.</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<hr>
|
||||
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<h2>Bugs fixed in the Standard Objects library:</h2>
|
||||
<ul>
|
||||
<li>bug #210518: 'Incorrect ending day in the standard object
|
||||
"weekends"'. This object defined time interval ending at 23:59
|
||||
on Monday instead of Sunday</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<h2>Bugs fixed in scripts and tools:</h2>
|
||||
<ul>
|
||||
<li>bug #1200902: "fwb_compile_all does not work in 2.0". Script
|
||||
fwb_compile_all broke because of changes in data file
|
||||
format</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<h2>Bugs fixed in GUI:</h2>
|
||||
<ul>
|
||||
<li>bug #1072842: "fwbuilder: Solaris and forkpty". We need
|
||||
forkpty fr built-in installer but this function is not awailable
|
||||
on Solaris. I am adding re-implementation, but it hasn't been
|
||||
tested since I do not have Solaris machine.</li>
|
||||
|
||||
<li>bug #1201406: "shutdown messages should be
|
||||
suppressed". Installation scriptlet tries to kill shutdown
|
||||
process, if there is one, to cancel pending shutdown that might
|
||||
have been left over from test install. If there is none, the
|
||||
script prints an error message "shutdown process not found" or
|
||||
similar, which confuses user. Needed to suppress these error
|
||||
messages.</li>
|
||||
|
||||
<li>bug #1204067: "incorrect timezone handling in RCS". Windows
|
||||
version of RCS incorrectly converts check-in time when time zone
|
||||
is east of GMT. This caused the GUI to incorrectly show checkin
|
||||
time of files in the "Open File" dialog if the program was
|
||||
running in locale East of GMT, for instance in Japan. </li>
|
||||
|
||||
<li>bug #1207983: "incorrect size of "I" and "L" buttons in the
|
||||
group view dialog". Tested with large font and cleaned up layout
|
||||
in many dialogs.</li>
|
||||
|
||||
<li>bug #1212121: "sudo shutdown doesn't work".</li>
|
||||
|
||||
<li>bug #1212123: "executing file below /tmp as root". Avoiding
|
||||
world-writable directory /tmp/ while activating policy in the
|
||||
test mode. This change makes installer use subdirectory "tmp"
|
||||
under directory specified in the "intaller" tab of firewall
|
||||
settings dialog. That directory is expected to have proper
|
||||
permissions; subdirectory "tmp" can be created manually,
|
||||
otherwise installer creates it. Either way, it is not
|
||||
world-writable, therefore unauthorized users can not create
|
||||
scripts in it.</li>
|
||||
|
||||
<li>bug #1212179: "tool tips for TCP services cuts off some
|
||||
services". The gui would show very long tooltip for large
|
||||
groups; if the group was too large, the tooltip did not fit on
|
||||
the screen.</li>
|
||||
|
||||
<li>bug #1213361: "PF on FreeBSD-5.4R". Bug description is
|
||||
misleading, the probem was caused by built-in installer rather
|
||||
than by compiler for PF. Installer would not copy generated
|
||||
script over ssh if the script was longer than some threshold and
|
||||
the gui was running on FreeBSD.</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<h2>Bugs fixed in policy compiler for iptables:</h2>
|
||||
<ul>
|
||||
<li>bug #191423: "Weekend Time restriction not created
|
||||
correctly". Rules with time restriction spanning from Saturday
|
||||
to Sunday were generated with incorrect "--day" option
|
||||
</li>
|
||||
|
||||
<li>bug #1205665: "Error with summer time when compiling
|
||||
script". Sometimes timezone name has "'" in it which confuses
|
||||
shell and causes an error when generated script prints
|
||||
"Activating firewall policy..." log message</li>
|
||||
|
||||
<li>bug #1215279: "rate limiting rule logs everything". Rule
|
||||
utlilizing "limit" module to rate limit packets with logging
|
||||
logged every packet and dropped those that exceeded the
|
||||
limit. The fix makes it apply the limit first and then log only
|
||||
packets that were dropped.</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<h2>Bugs fixed in policy compiler for iptw:</h2>
|
||||
<ul>
|
||||
<li>bug #1155351: "Remote install of FW rulset fails due to race
|
||||
condition". Generated ipfw firewall script could not be ran
|
||||
reliably over ssh session because "ipfw -f" flushes all rules
|
||||
and all state, which breaks ssh session. As soon as the script
|
||||
needed to print anything, it got I/O error from the system
|
||||
because TCP session for ssh was blocked; this stopped the script
|
||||
and did not let it activate new firewall policy. Using rule sets
|
||||
and "established" rule for the backup ssh access solved the
|
||||
problem.
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,124 @@
|
||||
Firewall Builder Release Notes
|
||||
|
||||
Version 2.0.8
|
||||
|
||||
Released 07/08/2005
|
||||
GUI and compilers v2.0.8 require API library libfwbuilder version 2.0.8
|
||||
|
||||
Summary
|
||||
|
||||
This is a bug fix release
|
||||
|
||||
For those who wish to build from source, instructions are outlined in the
|
||||
document "Install and Build instructions" on our web site here
|
||||
|
||||
What's new
|
||||
|
||||
* Improvements in the GUI
|
||||
|
||||
* Included updated German translation by Hans Peter Dittler
|
||||
<hpdittler at braintec-consult.de>
|
||||
* implemented Feature Request #1145666: "Print RCS Log".
|
||||
File/Properties dialog can now print RCS log. Thanks to "Ilya V.
|
||||
Yalovoy" <yalovoy@pilot.aip.mk.ua> for the patch.
|
||||
* Some code changes were made to make the code comiple and work on
|
||||
Solaris. In particular, tests and emulation for forkpty and
|
||||
cfmakeraw functions were added. Currently this still remains
|
||||
largely untested.
|
||||
|
||||
* Improvements in policy compilers for pf, ipf, ipfw
|
||||
|
||||
* implemented support for subnets for backup ssh access for
|
||||
pf,ipf,ipfw. Subnet can be defined using either full netmask or
|
||||
bitlength: both "192.168.1.0/255.255.255.0" and "192.168.1.0/24"
|
||||
are acceptable. Single host address works too, both as
|
||||
"192.168.1.10" and as "192.168.1.10/255.255.255.255" or
|
||||
"192.168.1.10/32". Incorrect address or netmask cause compiler to
|
||||
abort processing.
|
||||
|
||||
* Improvements in compiler for ipfw
|
||||
|
||||
* using rule sets to atomically swap old and new rules. New rules
|
||||
are loaded in the set 1 and then swapped into set 0. If there is
|
||||
an error in a new rule set, it is caught while loading rules into
|
||||
inactive set 1, at which point script stops without changing old
|
||||
firewall rules.
|
||||
* added "established" rule on top of the regular backup ssh access
|
||||
rule; this allows to maintain management ssh session after the
|
||||
policy is reloaded. both "ipfw -f" and swapping sets flushes all
|
||||
states, so the ssh session used to upload and activate new policy
|
||||
breaks. A rule with "established" keyword maintains this session.
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Bugs fixed in the Standard Objects library:
|
||||
|
||||
* bug #210518: 'Incorrect ending day in the standard object "weekends"'.
|
||||
This object defined time interval ending at 23:59 on Monday instead of
|
||||
Sunday
|
||||
|
||||
Bugs fixed in scripts and tools:
|
||||
|
||||
* bug #1200902: "fwb_compile_all does not work in 2.0". Script
|
||||
fwb_compile_all broke because of changes in data file format
|
||||
|
||||
Bugs fixed in GUI:
|
||||
|
||||
* bug #1072842: "fwbuilder: Solaris and forkpty". We need forkpty fr
|
||||
built-in installer but this function is not awailable on Solaris. I am
|
||||
adding re-implementation, but it hasn't been tested since I do not
|
||||
have Solaris machine.
|
||||
* bug #1201406: "shutdown messages should be suppressed". Installation
|
||||
scriptlet tries to kill shutdown process, if there is one, to cancel
|
||||
pending shutdown that might have been left over from test install. If
|
||||
there is none, the script prints an error message "shutdown process
|
||||
not found" or similar, which confuses user. Needed to suppress these
|
||||
error messages.
|
||||
* bug #1204067: "incorrect timezone handling in RCS". Windows version of
|
||||
RCS incorrectly converts check-in time when time zone is east of GMT.
|
||||
This caused the GUI to incorrectly show checkin time of files in the
|
||||
"Open File" dialog if the program was running in locale East of GMT,
|
||||
for instance in Japan.
|
||||
* bug #1207983: "incorrect size of "I" and "L" buttons in the group view
|
||||
dialog". Tested with large font and cleaned up layout in many dialogs.
|
||||
* bug #1212121: "sudo shutdown doesn't work".
|
||||
* bug #1212123: "executing file below /tmp as root". Avoiding
|
||||
world-writable directory /tmp/ while activating policy in the test
|
||||
mode. This change makes installer use subdirectory "tmp" under
|
||||
directory specified in the "intaller" tab of firewall settings dialog.
|
||||
That directory is expected to have proper permissions; subdirectory
|
||||
"tmp" can be created manually, otherwise installer creates it. Either
|
||||
way, it is not world-writable, therefore unauthorized users can not
|
||||
create scripts in it.
|
||||
* bug #1212179: "tool tips for TCP services cuts off some services". The
|
||||
gui would show very long tooltip for large groups; if the group was
|
||||
too large, the tooltip did not fit on the screen.
|
||||
* bug #1213361: "PF on FreeBSD-5.4R". Bug description is misleading, the
|
||||
probem was caused by built-in installer rather than by compiler for
|
||||
PF. Installer would not copy generated script over ssh if the script
|
||||
was longer than some threshold and the gui was running on FreeBSD.
|
||||
|
||||
Bugs fixed in policy compiler for iptables:
|
||||
|
||||
* bug #191423: "Weekend Time restriction not created correctly". Rules
|
||||
with time restriction spanning from Saturday to Sunday were generated
|
||||
with incorrect "--day" option
|
||||
* bug #1205665: "Error with summer time when compiling script".
|
||||
Sometimes timezone name has "'" in it which confuses shell and causes
|
||||
an error when generated script prints "Activating firewall policy..."
|
||||
log message
|
||||
* bug #1215279: "rate limiting rule logs everything". Rule utlilizing
|
||||
"limit" module to rate limit packets with logging logged every packet
|
||||
and dropped those that exceeded the limit. The fix makes it apply the
|
||||
limit first and then log only packets that were dropped.
|
||||
|
||||
Bugs fixed in policy compiler for iptw:
|
||||
|
||||
* bug #1155351: "Remote install of FW rulset fails due to race
|
||||
condition". Generated ipfw firewall script could not be ran reliably
|
||||
over ssh session because "ipfw -f" flushes all rules and all state,
|
||||
which breaks ssh session. As soon as the script needed to print
|
||||
anything, it got I/O error from the system because TCP session for ssh
|
||||
was blocked; this stopped the script and did not let it activate new
|
||||
firewall policy. Using rule sets and "established" rule for the backup
|
||||
ssh access solved the problem.
|
||||
@@ -0,0 +1,100 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
|
||||
<link rel="stylesheet" type="text/css" href="http://www.fwbuilder.org/pages/fwbuilder.css">
|
||||
</head>
|
||||
<body>
|
||||
<h1> Firewall Builder Release Notes </h1>
|
||||
<br>
|
||||
<h2> Version 2.0.9 </h2>
|
||||
<br>
|
||||
<p>
|
||||
Released 09/17/2005
|
||||
<br>
|
||||
<b>GUI and compilers v2.0.9 require API library libfwbuilder version 2.0.9</b>
|
||||
<br>
|
||||
<h2>Summary </h2>
|
||||
<p>
|
||||
This is a bug fix release
|
||||
<p>
|
||||
<b>For those who wish to build from source, instructions are outlined
|
||||
in the document "Install and Build instructions" on our web site <a
|
||||
href="http://www.fwbuilder.org/archives/cat_installation.html">here</a></b>
|
||||
|
||||
<h2>What's new</h2>
|
||||
<ul>
|
||||
<li>Added support for Cisco FWSM. This includes recognition
|
||||
of platform-specific options and parameters for FWSM v2.3
|
||||
(based on PIX 6.3), as well as interaction with FWSM in
|
||||
built-in policy installer. Firewall Builder for PIX v1.1.10
|
||||
is required to generate configuration compatible with FWSM.
|
||||
</li>
|
||||
|
||||
<li>Improvements in the GUI
|
||||
<p>
|
||||
<ul>
|
||||
<li>Feature Request #1225393 "Print comments on objects"
|
||||
</li>
|
||||
|
||||
<li>Feature Request #1187461 "Add "commit" menu item". This
|
||||
menu item commits opened data file to RCS but keeps it
|
||||
opened so the user can continue editing.</li>
|
||||
|
||||
<li>Spanish translation has been added, thanks to Carlos
|
||||
Lozano <clozano@andago.com></li>
|
||||
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<h2>Bugs fixed in the GUI:</h2>
|
||||
<ul>
|
||||
<li>bug #1254775: "RCS checkin fails on Windows when data file
|
||||
is too big". RCS tools failed to check the file in if it
|
||||
consisted of one huge line of text. This fix makes th GUI save
|
||||
data file (.fwb) in formatted form on Windows, just like on
|
||||
Linux. This means each XML element is saved on separate line
|
||||
instead of all of them being on the same line.</li>
|
||||
|
||||
<li>bug #1226069: "Segfault: Drag&Drop between two
|
||||
instances". If user started two instances of the GUI and tried
|
||||
to drag and drop objects between them, the instance receiving an
|
||||
object crashed.</li>
|
||||
|
||||
<li>bugs #1233165: "Illegal Logging-Limit string" and #1287755:
|
||||
"i18n is breaking iptables script". The GUI stored options of the
|
||||
"limit" module as translated strings instead of standard
|
||||
attributes.</li>
|
||||
|
||||
<li>bug #1240205: "Iilegal --log-level Information". The GUI
|
||||
stored log levels as translated strings instead of standard
|
||||
attributes.
|
||||
</li>
|
||||
|
||||
<li>bug #1277129: "script is truncated when installed by the GUI
|
||||
running on Mac". Built-in installer truncated firewall script
|
||||
while copying it to the firewall if GUI was running on Mac OS X
|
||||
and the script was relatively large. This bug triggered only on
|
||||
Mac OS X.</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<h2>Bugs fixed in policy compiler for PF:</h2>
|
||||
<ul>
|
||||
<li>bug #1276083: "Destination NAT rules". Old restriction on
|
||||
"rdr" rules that required service in OSrv is not valid anymore,
|
||||
pf supports rdr rules with no protocol specification. </li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,56 @@
|
||||
Firewall Builder Release Notes
|
||||
|
||||
Version 2.0.9
|
||||
|
||||
Released 09/17/2005
|
||||
GUI and compilers v2.0.9 require API library libfwbuilder version 2.0.9
|
||||
|
||||
Summary
|
||||
|
||||
This is a bug fix release
|
||||
|
||||
For those who wish to build from source, instructions are outlined in the
|
||||
document "Install and Build instructions" on our web site here
|
||||
|
||||
What's new
|
||||
|
||||
* Added support for Cisco FWSM. This includes recognition of
|
||||
platform-specific options and parameters for FWSM v2.3 (based on PIX
|
||||
6.3), as well as interaction with FWSM in built-in policy installer.
|
||||
Firewall Builder for PIX v1.1.10 is required to generate configuration
|
||||
compatible with FWSM.
|
||||
* Improvements in the GUI
|
||||
|
||||
* Feature Request #1225393 "Print comments on objects"
|
||||
* Feature Request #1187461 "Add "commit" menu item". This menu item
|
||||
commits opened data file to RCS but keeps it opened so the user
|
||||
can continue editing.
|
||||
* Spanish translation has been added, thanks to Carlos Lozano
|
||||
<clozano@andago.com>
|
||||
|
||||
Bugs fixed in the GUI:
|
||||
|
||||
* bug #1254775: "RCS checkin fails on Windows when data file is too
|
||||
big". RCS tools failed to check the file in if it consisted of one
|
||||
huge line of text. This fix makes th GUI save data file (.fwb) in
|
||||
formatted form on Windows, just like on Linux. This means each XML
|
||||
element is saved on separate line instead of all of them being on the
|
||||
same line.
|
||||
* bug #1226069: "Segfault: Drag&Drop between two instances". If user
|
||||
started two instances of the GUI and tried to drag and drop objects
|
||||
between them, the instance receiving an object crashed.
|
||||
* bugs #1233165: "Illegal Logging-Limit string" and #1287755: "i18n is
|
||||
breaking iptables script". The GUI stored options of the "limit"
|
||||
module as translated strings instead of standard attributes.
|
||||
* bug #1240205: "Iilegal --log-level Information". The GUI stored log
|
||||
levels as translated strings instead of standard attributes.
|
||||
* bug #1277129: "script is truncated when installed by the GUI running
|
||||
on Mac". Built-in installer truncated firewall script while copying it
|
||||
to the firewall if GUI was running on Mac OS X and the script was
|
||||
relatively large. This bug triggered only on Mac OS X.
|
||||
|
||||
Bugs fixed in policy compiler for PF:
|
||||
|
||||
* bug #1276083: "Destination NAT rules". Old restriction on "rdr" rules
|
||||
that required service in OSrv is not valid anymore, pf supports rdr
|
||||
rules with no protocol specification.
|
||||
@@ -0,0 +1,59 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
|
||||
<link rel="stylesheet" type="text/css" href="http://www.fwbuilder.org/pages/fwbuilder.css">
|
||||
</head>
|
||||
<body>
|
||||
<h1> Firewall Builder Release Notes </h1>
|
||||
<br>
|
||||
<h2> Version 2.1.10 </h2>
|
||||
<br>
|
||||
<p>
|
||||
Released 02/17/2007
|
||||
<br>
|
||||
<b>GUI and compilers v2.1.10 require API library libfwbuilder version 2.1.10</b>
|
||||
<br>
|
||||
<h2>Summary </h2>
|
||||
<p>
|
||||
This is bugfix release.
|
||||
|
||||
<p>
|
||||
<b>For those who wish to build from source, instructions are outlined
|
||||
in the document "Install and Build instructions" on our web site <a
|
||||
href="http://www.fwbuilder.org/archives/cat_installation.html">here</a></b>
|
||||
|
||||
|
||||
|
||||
<h2>Improvements and bug fixes in the GUI</h2>
|
||||
<ul>
|
||||
|
||||
<li>fixed bug #1661140: "built-in installer broken in 2.1.9 for
|
||||
PF". Installer incorrectly set name for files it copied to the
|
||||
firewall if generated configuration consisted of several
|
||||
files. Affected platforms are PF and ipfilter because normally for
|
||||
these platforms compiler generates two files.
|
||||
</li>
|
||||
|
||||
<li>fixed bug #1659832: "No compile with QT without STL
|
||||
support"</li>
|
||||
|
||||
<li>a workaround for the bug 1629461: "Policy tabs do not scroll @
|
||||
window extent on OSX". The tab widget used to show policy, nat,
|
||||
routing and policy branch rulesets does not switch to a "folded"
|
||||
mode on Mac OS X when it needs to show more tabs that fit in the
|
||||
window. Since I can't figure out a way to force it to do that, I
|
||||
am dropping "Policy/" from the tab titles for branches to make
|
||||
them shorter. This will help users with policies with many
|
||||
branches, however it does not solve the problem because as they
|
||||
keep adding branches, at some point they won't fit in the window
|
||||
again.</li>
|
||||
|
||||
<li>added an item "Where used" to the context menu associated with
|
||||
objects in rules</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,33 @@
|
||||
Firewall Builder Release Notes
|
||||
|
||||
Version 2.1.10
|
||||
|
||||
Released 02/17/2007
|
||||
GUI and compilers v2.1.10 require API library libfwbuilder version 2.1.10
|
||||
|
||||
Summary
|
||||
|
||||
This is bugfix release.
|
||||
|
||||
For those who wish to build from source, instructions are outlined in the
|
||||
document "Install and Build instructions" on our web site here
|
||||
|
||||
Improvements and bug fixes in the GUI
|
||||
|
||||
* fixed bug #1661140: "built-in installer broken in 2.1.9 for PF".
|
||||
Installer incorrectly set name for files it copied to the firewall if
|
||||
generated configuration consisted of several files. Affected platforms
|
||||
are PF and ipfilter because normally for these platforms compiler
|
||||
generates two files.
|
||||
* fixed bug #1659832: "No compile with QT without STL support"
|
||||
* a workaround for the bug 1629461: "Policy tabs do not scroll @ window
|
||||
extent on OSX". The tab widget used to show policy, nat, routing and
|
||||
policy branch rulesets does not switch to a "folded" mode on Mac OS X
|
||||
when it needs to show more tabs that fit in the window. Since I can't
|
||||
figure out a way to force it to do that, I am dropping "Policy/" from
|
||||
the tab titles for branches to make them shorter. This will help users
|
||||
with policies with many branches, however it does not solve the
|
||||
problem because as they keep adding branches, at some point they won't
|
||||
fit in the window again.
|
||||
* added an item "Where used" to the context menu associated with objects
|
||||
in rules
|
||||
@@ -0,0 +1,109 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
|
||||
<link rel="stylesheet" type="text/css" href="http://www.fwbuilder.org/pages/fwbuilder.css">
|
||||
</head>
|
||||
<body>
|
||||
<h1> Firewall Builder Release Notes </h1>
|
||||
<br>
|
||||
<h2> Version 2.1.11 </h2>
|
||||
<br>
|
||||
<p>
|
||||
Released 04/29/2007
|
||||
<br>
|
||||
<b>GUI and compilers v2.1.11 require API library libfwbuilder version 2.1.11</b>
|
||||
<br>
|
||||
<h2>Summary </h2>
|
||||
<p>
|
||||
This is bugfix release.
|
||||
|
||||
<p>
|
||||
<b>For those who wish to build from source, instructions are outlined
|
||||
in the document "Install and Build instructions" on our web site <a
|
||||
href="http://www.fwbuilder.org/archives/cat_installation.html">here</a></b>
|
||||
|
||||
|
||||
|
||||
<h2>Improvements and bug fixes in the GUI</h2>
|
||||
<ul>
|
||||
|
||||
<li>redesigned TimeService object dialog</li>
|
||||
|
||||
<li>minor redesign of the interface object dialog to make network
|
||||
zone more prominent and easier to set when network and group
|
||||
objects have long names.</li>
|
||||
|
||||
<li>fixed bug #1685741: "GUI crash: click on an empty part of obj
|
||||
tree, then desktop"</li>
|
||||
|
||||
<li>fixed bug #1692411: "can't set accouting rule name (fwbuilder
|
||||
2.1.11)"</li>
|
||||
|
||||
<li>fixed bug #1684334: "RCS should use $LOGNAME when commit"</li>
|
||||
|
||||
<li>fixed bug #1701971: "Enabeling test mode doent activate the
|
||||
reboot interval". Checking "Test mode" checkbox in the
|
||||
installer options dialog should enable widgets that configure
|
||||
automatic reboot timeout.</li>
|
||||
|
||||
<li>fixed bug #1702830: "fwbuilder does not detect errors during
|
||||
policy install". Built-in installer detects error messages
|
||||
printed by iptables and iptables-restore and aborts
|
||||
installation process. Summary page shown in the end reflects
|
||||
this as failed install.</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>Improvements and bug fixes in policy compiler for iptables</h2>
|
||||
<ul>
|
||||
<li>Added support for --datestart and --datestop options for module
|
||||
'time' in compiler for iptables</li>
|
||||
|
||||
<li>fixed bug #1672191: "Time limit generates unexpected iptables
|
||||
command"</li>
|
||||
|
||||
<li>fixed bug #1695481: "compliation error with lower end
|
||||
port". Before, user could enter start port range number
|
||||
greater than the end port range number. Neither the GUI nor
|
||||
compiler noticed this, which resulted in the incorrect
|
||||
firewall configuration. This fix adds check in the GUI to not
|
||||
let the user enter port ranges like that.</li>
|
||||
|
||||
<li>fixed bug 1699483: "hashlimit-htable-expire not set". Added GUI
|
||||
controls and compiler support for hashlimit module options
|
||||
"--hashlimit-name", "--hashlimit-htable-size",
|
||||
"--hashlimit-htable-max", "--hashlimit-htable-expire" and
|
||||
"--hashlimit-htable-gcinterval"</li>
|
||||
|
||||
<li>fixed bug #1703954: "Mark target in postrouting chain". Packets
|
||||
that originate on the firewall should be marked in the OUTPUT
|
||||
chain. According to the netfilter packet flow diagram at
|
||||
http://www.shorewall.net/NetfilterOverview.html , rerouting
|
||||
happens after OUTPUT hook but before POSTROUTING hook. So in
|
||||
order to be able to reroute packet originated on the firewall,
|
||||
they should be marked in OUTPUT</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Improvements and bug fixes in policy compiler for PF</h2>
|
||||
<ul>
|
||||
<li>fixed bug #1674940: "if max-src-conn == 0: syntax
|
||||
error". Options max-src-conn and max-src-states can not have
|
||||
value '0'</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>Improvements and bug fixes in policy compiler for ipfilter</h2>
|
||||
<ul>
|
||||
<li>fixed bug #1678410: "Ipfilter compiler uses wrong keyword for
|
||||
"fragment""</li>
|
||||
|
||||
<li>fixed bug #1676845: "lsrr option not compiling"</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,65 @@
|
||||
Firewall Builder Release Notes
|
||||
|
||||
Version 2.1.11
|
||||
|
||||
Released 04/29/2007
|
||||
GUI and compilers v2.1.11 require API library libfwbuilder version 2.1.11
|
||||
|
||||
Summary
|
||||
|
||||
This is bugfix release.
|
||||
|
||||
For those who wish to build from source, instructions are outlined in the
|
||||
document "Install and Build instructions" on our web site here
|
||||
|
||||
Improvements and bug fixes in the GUI
|
||||
|
||||
* redesigned TimeService object dialog
|
||||
* minor redesign of the interface object dialog to make network zone
|
||||
more prominent and easier to set when network and group objects have
|
||||
long names.
|
||||
* fixed bug #1685741: "GUI crash: click on an empty part of obj tree,
|
||||
then desktop"
|
||||
* fixed bug #1692411: "can't set accouting rule name (fwbuilder 2.1.11)"
|
||||
* fixed bug #1684334: "RCS should use $LOGNAME when commit"
|
||||
* fixed bug #1701971: "Enabeling test mode doent activate the reboot
|
||||
interval". Checking "Test mode" checkbox in the installer options
|
||||
dialog should enable widgets that configure automatic reboot timeout.
|
||||
* fixed bug #1702830: "fwbuilder does not detect errors during policy
|
||||
install". Built-in installer detects error messages printed by
|
||||
iptables and iptables-restore and aborts installation process. Summary
|
||||
page shown in the end reflects this as failed install.
|
||||
|
||||
Improvements and bug fixes in policy compiler for iptables
|
||||
|
||||
* Added support for --datestart and --datestop options for module 'time'
|
||||
in compiler for iptables
|
||||
* fixed bug #1672191: "Time limit generates unexpected iptables command"
|
||||
* fixed bug #1695481: "compliation error with lower end port". Before,
|
||||
user could enter start port range number greater than the end port
|
||||
range number. Neither the GUI nor compiler noticed this, which
|
||||
resulted in the incorrect firewall configuration. This fix adds check
|
||||
in the GUI to not let the user enter port ranges like that.
|
||||
* fixed bug 1699483: "hashlimit-htable-expire not set". Added GUI
|
||||
controls and compiler support for hashlimit module options
|
||||
"--hashlimit-name", "--hashlimit-htable-size",
|
||||
"--hashlimit-htable-max", "--hashlimit-htable-expire" and
|
||||
"--hashlimit-htable-gcinterval"
|
||||
* fixed bug #1703954: "Mark target in postrouting chain". Packets that
|
||||
originate on the firewall should be marked in the OUTPUT chain.
|
||||
According to the netfilter packet flow diagram at
|
||||
http://www.shorewall.net/NetfilterOverview.html , rerouting happens
|
||||
after OUTPUT hook but before POSTROUTING hook. So in order to be able
|
||||
to reroute packet originated on the firewall, they should be marked in
|
||||
OUTPUT
|
||||
|
||||
Improvements and bug fixes in policy compiler for PF
|
||||
|
||||
* fixed bug #1674940: "if max-src-conn == 0: syntax error". Options
|
||||
max-src-conn and max-src-states can not have value '0'
|
||||
|
||||
Improvements and bug fixes in policy compiler for ipfilter
|
||||
|
||||
* fixed bug #1678410: "Ipfilter compiler uses wrong keyword for
|
||||
"fragment""
|
||||
* fixed bug #1676845: "lsrr option not compiling"
|
||||
@@ -0,0 +1,436 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
|
||||
<link rel="stylesheet" type="text/css" href="http://www.fwbuilder.org/pages/fwbuilder.css">
|
||||
</head>
|
||||
<body>
|
||||
<h1> Firewall Builder Release Notes </h1>
|
||||
<br>
|
||||
<h2> Version 2.1.12 </h2>
|
||||
<br>
|
||||
<p>
|
||||
Released 06/24/2007
|
||||
<br>
|
||||
<b>GUI and compilers v2.1.12 require API library libfwbuilder version 2.1.12</b>
|
||||
<br>
|
||||
<h2>Summary </h2>
|
||||
<p>
|
||||
This release comes with support for Cisco IOS access lists and ability
|
||||
to import existing iptables and IOS access lists
|
||||
configurations. Multiple bug fixes are included as well.
|
||||
|
||||
<p>
|
||||
<b>For those who wish to build from source, instructions are outlined
|
||||
in the document "Install and Build instructions" on our web site <a
|
||||
href="http://www.fwbuilder.org/archives/cat_installation.html">here</a></b>
|
||||
|
||||
<h2>Support for Cisco IOS access lists</h2>
|
||||
|
||||
Policy compiler for Cisco IOS Access lists has been implemented as
|
||||
part of the Firewall Builder GUI as of version 2.1.12. The first
|
||||
functional build were importer worked on all supported OS was build
|
||||
270 (May 22, 2007)
|
||||
<p>
|
||||
|
||||
<b>Features implemented in this version:</b>
|
||||
<p>
|
||||
<ul>
|
||||
|
||||
<li> The compiler generates extended ACLs using "ip access-list
|
||||
extended" command. ACL names are automatically generated using
|
||||
abbreviated interface names and direction symbols to make it easy
|
||||
to figure out which ACL is which. Compiler uses rather minimal set
|
||||
of options of the "ip access-list" command and should generate code
|
||||
that will work for IOS 12.x. I did not test with 11.x but I am
|
||||
pretty sure it will work, at least with the latest versions of
|
||||
11.x.
|
||||
|
||||
<li> Compiler can also add commands to configure logging.
|
||||
|
||||
<li> The GUI includes built-in installer for routers which works just
|
||||
like installer for PIX. Both installers were updated however to
|
||||
improve support for the automatic roll-back feature in case you
|
||||
lose connect with the firewall or the router because of an error in
|
||||
the policy. Now you can make installer schedule reboot in a few
|
||||
minutes, then upload new policy or ACLs and then cancel reboot if
|
||||
upload was successful. While before auto-rollback option was only
|
||||
available if you installed in the test mode, now you can always use
|
||||
it. Test mode means that installer does not save configuration in
|
||||
the permanent memory, as before.
|
||||
|
||||
<li> All three installation methods that were available for PIX are now
|
||||
available for routers: you can make it clear all access lists and
|
||||
then load new ones or just update access lists without
|
||||
clearing. The last method (the "safety net" method) creates
|
||||
temporary acl to permit communication with the management station,
|
||||
assigns it to the interface marked as management interface, then
|
||||
clears all access lists and loads new ones and in the end swaps
|
||||
proper list on the management interface. This helps prevent
|
||||
locking yourself out of the router in the middle of the
|
||||
installation process in case of an error in the ACL and at the same
|
||||
time does not leave the router with no acls for the time it takes
|
||||
to install new policy. In combination with automatic roll-back,
|
||||
installation process is pretty reliable.
|
||||
|
||||
<li> New option has been added to the interface object, called
|
||||
"unprotected". This allows you to mark some interfaces to be
|
||||
skipped by the compiler when it picks interfaces for ACL
|
||||
rules. This should be useful when you have routers with many
|
||||
interfaces and only want to add ACLs to some of them. Also, you can
|
||||
explicitly put interface objects into policy rules and specify
|
||||
direction if you want to do this manually.
|
||||
|
||||
<li> Since router ACLs have no state, all rules should be created in the
|
||||
policy pretty much like you do it on the router, including rules
|
||||
that permit reply packets. New option has been added to the TCP
|
||||
Service object, called "established". This makes compiler use
|
||||
option "established" in rules it generates if it is supported by
|
||||
the firewall platform. Compilers for iptables, ipfilter, pf and PIX
|
||||
can not use objects with this option and treat it as an error
|
||||
because corresponding platforms do not support it. IPFW, on the
|
||||
other hand, supports it so compiler fwb_ipfw can use it.
|
||||
|
||||
</ul>
|
||||
<p>
|
||||
|
||||
<b>Shortcomings of this version:</b>
|
||||
<p>
|
||||
<ul>
|
||||
<li> "tos", "precedence" and "time-range" options are not supported
|
||||
<li> "igmp" access lists can no be generated
|
||||
</ul>
|
||||
<p>
|
||||
|
||||
|
||||
<h2>Policy import iptables configurations (v2.1.12, build 281 and later)</h2>
|
||||
<p>
|
||||
Policy importer has been implemented as part of the Firewall Builder
|
||||
GUI as of version 2.1.12. The first functional build were importer
|
||||
worked on all supported OS was build 270 (May 22, 2007)
|
||||
<p>
|
||||
Policy importer uses ANTLR lexer and parser ( http://www.antlr.org/ )
|
||||
Version 2.7.7 is used in Firewall Builder v2.1.12 ( http://www.antlr2.org/ )
|
||||
<p>
|
||||
Firewall Builder needs ANTLR C++ runtime header files and library and
|
||||
include these in the source tree under src/antlr. Unless you want to
|
||||
change the grammar (*.g files) you don't need to install ANTLR
|
||||
separately. All relevant ANTLR files are included in the package. For
|
||||
more information on ANTRL see: http://www.antlr2.org
|
||||
<p>
|
||||
<b> Features implemented in this version :</b>
|
||||
|
||||
<ul>
|
||||
<li> Importer can parse iptables config saved using iptables-save
|
||||
utility. Because of the huge variety of iptables modules, Importer
|
||||
can only interpret basic iptables configuration and a subset of
|
||||
modules. Currently the following modules are supported:
|
||||
<p>
|
||||
<ul>
|
||||
<li> state
|
||||
<li> multiport
|
||||
<li> limit
|
||||
<li> mark
|
||||
</ul>
|
||||
</p>
|
||||
<li> Importer creates firewall object with all interfaces. It can not
|
||||
assign object name for the firewall object nor add IP and MAC
|
||||
addresses to interfaces because this information is not present in
|
||||
iptables-save file.
|
||||
|
||||
<li> option "Assume firewall is part of 'any'" is off in the created
|
||||
firewall object. Import is done this way in order to preserve logic
|
||||
of chains INPUT, OUTPUT and FORWARD in the recreated fwbuilder
|
||||
rules. Rules that had chain INPUT in the imported script will have
|
||||
firewall object in "destination" in the corresponding fwbuilder
|
||||
rules. Firewall object is placed in "Source" for rules with chain
|
||||
OUTPUT. For rules with chain FORWARD rule elements "Source" and
|
||||
"Destination" are populated with objects created using options "-s"
|
||||
and "-d" of the original rules or left empty ("any").
|
||||
|
||||
<li> all recognized iptables rules are imported and interface and
|
||||
direction are set in all rules appropriately. Interface objects are
|
||||
created as parser finds them in the script.
|
||||
|
||||
<li> targets ACCEPT, DROP, REJECT, MARK and others are converted to the
|
||||
corresponding fwbuilder policy rule actions. Unrecognized targets
|
||||
and converted to branching rules, where the name of the target
|
||||
becomes the name of the branch.
|
||||
|
||||
<li> SNAT, DNAT, MASQUERADING, REDIRECT and NETMAP targets and their
|
||||
parameters are recognized in the NAT rules.
|
||||
|
||||
<li> Address and service objects are created in the process for all
|
||||
addresses and ports used in all rules.
|
||||
|
||||
<li> iptables rules can refer to tcp/udp ports both by name or by
|
||||
number. Importer can properly interpret both formats using system
|
||||
function getservbyname() to convert service name to the port
|
||||
number. Since the result of this function depends on the OS, some
|
||||
port names may not convert on some systems. For example, Windows
|
||||
can convert more limited set of service names compared to Linux or
|
||||
BSD.
|
||||
|
||||
<li> targets LOG and ULOG are converted to the "logging" option in
|
||||
fwbuilder rules with action "Continue". This is an empty action
|
||||
that does not affect packet flow through the firewall but can be
|
||||
used in combination with "logging" option to log the packet. If
|
||||
such empty (logging-only) rule is undesired, it must be manually
|
||||
merged with some other rule in the policy.
|
||||
|
||||
<li> "--log-prefix", and "--log-level" options of the LOG target are
|
||||
recognized
|
||||
|
||||
<li> "--ulog-prefix" option of the ULOG target is recognized. Other
|
||||
options of the ULOG target are not.
|
||||
|
||||
<li> Address and service objects are reused in the process of import.
|
||||
|
||||
<li> in case when importer fails to parse some part of the iptables-save
|
||||
file, corresponding policy rule is colored red and appropriate
|
||||
diagnostic message added to its comment. The problem must be
|
||||
corrected manually.
|
||||
|
||||
<li> comments ("#") found inside access lists are ignored.
|
||||
</ul>
|
||||
|
||||
<b>Shortcomings of this version:</b>
|
||||
|
||||
<ul>
|
||||
<li> user-defined chains in table "nat" are not supported
|
||||
<li> no import of time intervals
|
||||
<li> no MAC address matching import
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
|
||||
|
||||
<h2>Policy import of Cisco IOS access lists (v2.1.12, build 270)</h2>
|
||||
<p>
|
||||
|
||||
<b> Features implemented in this version :</b>
|
||||
|
||||
<ul>
|
||||
<li> Importer can parse router config saved using "show run"
|
||||
command. Although importer can only interpret a subset of IOS
|
||||
configuration commands, other commands that it does not understand
|
||||
will be ignored and should not affect operation. No manual editing
|
||||
of the config is required prior to import.
|
||||
|
||||
<li> Importer creates firewall object with all interfaces
|
||||
|
||||
<li> firewall object name is assigned if "hostname" command is found in
|
||||
the configuration. If this command is not present, the name remains
|
||||
generic "New Firewall"
|
||||
|
||||
<li> interface addresses are assigned if command "ip address" is found
|
||||
(multiple addresses per interface are supported). Interfaces
|
||||
without "ip address" in the configuration are marked as
|
||||
"unnumbered" in the firewall builder object tree.
|
||||
|
||||
<li> all access lists are imported and interface and direction are set
|
||||
in all rules appropriately
|
||||
|
||||
<li> Address and service objects are created in the process for all
|
||||
addresses and ports used in access lists
|
||||
|
||||
<li> IOS access lists can define ip protocol, icmp code and type, and
|
||||
tcp/udp ports both by name or by number. Importer can properly
|
||||
interpret both formats.
|
||||
|
||||
<li> "log", "log-input", "fragments", "established" keywords are
|
||||
supported and translated into rule or object options as
|
||||
appropriate.
|
||||
|
||||
<li> Address and service objects are reused in the process of import.
|
||||
|
||||
<li> in case when importer fails to parse some part of the access-list
|
||||
command, corresponding policy rule is colored in red and
|
||||
appropriate diagnostic message added to its comment. The problem
|
||||
must be corrected manually.
|
||||
|
||||
<li> "remark" commands found inside access lists are translated into
|
||||
rule comments
|
||||
|
||||
<li> comments ("!") found inside access lists are ignored.
|
||||
</ul>
|
||||
<p>
|
||||
|
||||
<b>Shortcomings of this version:</b>
|
||||
|
||||
<ul>
|
||||
<li> importer does not use address and service objects that existed in
|
||||
the tree before the operation has started, it creates new
|
||||
ones. Deduplication only works for objects created in the process
|
||||
of import.
|
||||
|
||||
<li> the following keywords available in extended access lists are not
|
||||
supported at this time: tos, precedence, time-range.
|
||||
|
||||
<li> igmp access lists are not parsed.
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
<hr>
|
||||
<p>
|
||||
|
||||
<h2>New object types and improvements in the base API</h2>
|
||||
|
||||
<ul>
|
||||
|
||||
<li>TCPService object now has flag "established". Policy comilers
|
||||
for platforms that have special keyword for this flag can recognize
|
||||
this flag in TCPService object.</li>
|
||||
|
||||
<li>TCPService object "All TCP established" has been added to the
|
||||
Standard objects library.</li>
|
||||
|
||||
<li>Interface of the firewall has new flag "unprotected", currently
|
||||
only used in compiler for Cisco IOS access lists. Compiler skips
|
||||
interfaces marked as "unprotected" when it decides which interface a
|
||||
policy rule should be assigned to.
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Improvements and bug fixes in the GUI</h2>
|
||||
<ul>
|
||||
|
||||
<li>dialogs and resource files for Cisco IOS access lists.</li>
|
||||
|
||||
<li>Policy installer for Cisco routers</li>
|
||||
|
||||
<li>fixed long-standing problem with size of the built-in installer
|
||||
options dialog. The dialog was too big and did not properly resize
|
||||
itself when some options were hidden.</li>
|
||||
|
||||
<li>PIX and Cisco routers (IOS) : built-in installer can schedule
|
||||
reboot of the firewall before activating new policy, then cancel
|
||||
it if the policy has been activated successfully. </li>
|
||||
|
||||
<li>note about built-in installer on windows. Installer seems to
|
||||
have broke with upgrade of QT to 3.3.8. Specifically, in
|
||||
SSHSession::readFromStdout(), proc->readStdout() returns a byte
|
||||
array that contains actual output from the device, with some
|
||||
garbage appeneded to it. The garbage is included in the size()
|
||||
count of QByteArray returned by readStdout so it gets included
|
||||
into the QString which we append to stdoutBuffer. This happens
|
||||
only on win32; reverting to QT 3.3.7 fixes the problem.</li>
|
||||
|
||||
<li>the GUI is compiled with ANTLR C++ run-time, used for policy
|
||||
importer</li>
|
||||
|
||||
<li>Policy importer: can read and import iptables rules from the
|
||||
iptables-save file and Cisco IOS access lists from the router
|
||||
configuration saved using "show run" command. See
|
||||
README.policy_import file for more details.</li>
|
||||
|
||||
<li>allow for object group in "Interface" rule element</li>
|
||||
|
||||
<li>Added support for action "Continue" (an empty action) in the GUI
|
||||
and compiler for iptables. This action creates a rule that does
|
||||
nothing, however it generates iptables command with target "-j
|
||||
LOG" if logging is turned on. This can be useful if one wants only
|
||||
to log packets that match certain pattern but not make any policy
|
||||
decision in the same rule.</li>
|
||||
|
||||
<li>After changes made in the compiler to simplify algorithm used to
|
||||
decide which chain a rule with action Tag should go to, rule
|
||||
action option "Mark connections in PREROUTING chain" (
|
||||
"ipt_mark_prerouting" ) has been deprecated.</li>
|
||||
|
||||
<li>fixed bug (no number) where installer failed to properly copy
|
||||
.fwb file over to the firewall if file name contained
|
||||
whitespace</li>
|
||||
|
||||
<li>fixed bug #1739373: "FWB2111, register Routing not printed". Tab
|
||||
"Routing" was not included in the printed copy of firewall
|
||||
policies</li>
|
||||
</ul>
|
||||
|
||||
<h2>Improvements and bug fixes in policy compiler for iptables</h2>
|
||||
<ul>
|
||||
|
||||
<li>fixed bug 1737733: "install script doesn't detect BROADCAST if
|
||||
eth is NO-CARRIER". If firewall script runs before network
|
||||
interface comes up (i.e. is still in NO-CARRIER state), script
|
||||
failed to add virtual addresses for NAT.</li>
|
||||
|
||||
<li>fixed bug #1711595: "ip6tables DROPs". Compiler adds rules to
|
||||
permit any-to-any on loopback interface for ipv6 in addition to
|
||||
rules that set default policy to DROP for all chains in ipv6</li>
|
||||
|
||||
<li>streamlined algorithm that assigns chain to a rule with action
|
||||
Tag. The goal is to always use chain PREROUTING for rules with
|
||||
direction Inbound or Both and a combination of OUTPUT and
|
||||
POSTROUTING for rules with direction Outbound and Both.</li>
|
||||
|
||||
<li>Added support for action "Continue" (an empty action) in the GUI
|
||||
and compiler for iptables. This action creates a rule that does
|
||||
nothing, however it generates iptables command with target "-j
|
||||
LOG" if logging is turned on. This can be useful if one wants only
|
||||
to log packets that match certain pattern but not make any policy
|
||||
decision in the same rule.</li>
|
||||
|
||||
<li>fixed bug #1718791: "Bug with more than one router". This bug
|
||||
affected routing rules.</li>
|
||||
|
||||
<li>fixed bug #1720022: "Fail to load modules .ko.gz".</li>
|
||||
|
||||
<li>fixed bug #1720480: '"-A POSTROUTING -i interface" in branching
|
||||
rules'. Compiler should not generate iptables commands in
|
||||
POSTROUTING chain with "-i interface" clause.</li>
|
||||
|
||||
<li>bug (no number): compiler used to not set unique internal id for
|
||||
rules in branches, which lead to chain names like 'C.0' in
|
||||
generated script.</li>
|
||||
|
||||
<li>bug (no number): when a rule number is inserted into a log
|
||||
record in place of macro %N, it should be formatted as "N/M" for
|
||||
rules in a branch.</li>
|
||||
|
||||
<li>bug (no number): setting chain for Classify action only if it
|
||||
has not been set before. Setting chain to POSTROUTING always broke
|
||||
things if a rule with action 'Classify' was used in a branch (so
|
||||
the chain has been set to that of the branch)</li>
|
||||
|
||||
<li>bugs #1676635: "no way to match on state if the action is drop"
|
||||
and #1671910: "2.1.8 In 'Branch' acton compiler doesn't insert NEW
|
||||
stanza". Rely only on rule option 'stateless' to decide whether
|
||||
the rule should have "-m state --state NEW". Rule option
|
||||
'stateless' is automatically set when user changes rule action so
|
||||
it becomes anything except 'Accept', 'Tag' or 'Route'. This option
|
||||
is also automatically cleared when action is switched to any of
|
||||
these three actions. The user can override these default settings
|
||||
by checking or unchecking the option in the rule options dialog.
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Improvements and bug fixes in policy compiler for PF</h2>
|
||||
<ul>
|
||||
<li>fixed bug #1727715: "Policy Installer failed but indicates
|
||||
succes". Activation script for PF exits with non-zero return code
|
||||
if script activation fails.</li>
|
||||
|
||||
<li>fixed bug #1740545: "AddressTable in NAT section". Policy
|
||||
compiler for PF crashed if AddressTable object was used in TDst
|
||||
element of a NAT rule.</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Improvements and bug fixes in policy compiler for ipfw</h2>
|
||||
<ul>
|
||||
<li>new TCPService object flag "established" in compiler for
|
||||
ipfw.</li>
|
||||
|
||||
<li></li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,311 @@
|
||||
Firewall Builder Release Notes
|
||||
|
||||
Version 2.1.12
|
||||
|
||||
Released 06/24/2007
|
||||
GUI and compilers v2.1.12 require API library libfwbuilder version 2.1.12
|
||||
|
||||
Summary
|
||||
|
||||
This release comes with support for Cisco IOS access lists and ability to
|
||||
import existing iptables and IOS access lists configurations. Multiple bug
|
||||
fixes are included as well.
|
||||
|
||||
For those who wish to build from source, instructions are outlined in the
|
||||
document "Install and Build instructions" on our web site here
|
||||
|
||||
Support for Cisco IOS access lists
|
||||
|
||||
Policy compiler for Cisco IOS Access lists has been implemented as part of
|
||||
the Firewall Builder GUI as of version 2.1.12. The first functional build
|
||||
were importer worked on all supported OS was build 270 (May 22, 2007)
|
||||
|
||||
Features implemented in this version:
|
||||
|
||||
* The compiler generates extended ACLs using "ip access-list extended"
|
||||
command. ACL names are automatically generated using abbreviated
|
||||
interface names and direction symbols to make it easy to figure out
|
||||
which ACL is which. Compiler uses rather minimal set of options of the
|
||||
"ip access-list" command and should generate code that will work for
|
||||
IOS 12.x. I did not test with 11.x but I am pretty sure it will work,
|
||||
at least with the latest versions of 11.x.
|
||||
* Compiler can also add commands to configure logging.
|
||||
* The GUI includes built-in installer for routers which works just like
|
||||
installer for PIX. Both installers were updated however to improve
|
||||
support for the automatic roll-back feature in case you lose connect
|
||||
with the firewall or the router because of an error in the policy. Now
|
||||
you can make installer schedule reboot in a few minutes, then upload
|
||||
new policy or ACLs and then cancel reboot if upload was successful.
|
||||
While before auto-rollback option was only available if you installed
|
||||
in the test mode, now you can always use it. Test mode means that
|
||||
installer does not save configuration in the permanent memory, as
|
||||
before.
|
||||
* All three installation methods that were available for PIX are now
|
||||
available for routers: you can make it clear all access lists and then
|
||||
load new ones or just update access lists without clearing. The last
|
||||
method (the "safety net" method) creates temporary acl to permit
|
||||
communication with the management station, assigns it to the interface
|
||||
marked as management interface, then clears all access lists and loads
|
||||
new ones and in the end swaps proper list on the management interface.
|
||||
This helps prevent locking yourself out of the router in the middle of
|
||||
the installation process in case of an error in the ACL and at the
|
||||
same time does not leave the router with no acls for the time it takes
|
||||
to install new policy. In combination with automatic roll-back,
|
||||
installation process is pretty reliable.
|
||||
* New option has been added to the interface object, called
|
||||
"unprotected". This allows you to mark some interfaces to be skipped
|
||||
by the compiler when it picks interfaces for ACL rules. This should be
|
||||
useful when you have routers with many interfaces and only want to add
|
||||
ACLs to some of them. Also, you can explicitly put interface objects
|
||||
into policy rules and specify direction if you want to do this
|
||||
manually.
|
||||
* Since router ACLs have no state, all rules should be created in the
|
||||
policy pretty much like you do it on the router, including rules that
|
||||
permit reply packets. New option has been added to the TCP Service
|
||||
object, called "established". This makes compiler use option
|
||||
"established" in rules it generates if it is supported by the firewall
|
||||
platform. Compilers for iptables, ipfilter, pf and PIX can not use
|
||||
objects with this option and treat it as an error because
|
||||
corresponding platforms do not support it. IPFW, on the other hand,
|
||||
supports it so compiler fwb_ipfw can use it.
|
||||
|
||||
Shortcomings of this version:
|
||||
|
||||
* "tos", "precedence" and "time-range" options are not supported
|
||||
* "igmp" access lists can no be generated
|
||||
|
||||
Policy import iptables configurations (v2.1.12, build 281 and later)
|
||||
|
||||
Policy importer has been implemented as part of the Firewall Builder GUI
|
||||
as of version 2.1.12. The first functional build were importer worked on
|
||||
all supported OS was build 270 (May 22, 2007)
|
||||
|
||||
Policy importer uses ANTLR lexer and parser ( http://www.antlr.org/ )
|
||||
Version 2.7.7 is used in Firewall Builder v2.1.12 ( http://www.antlr2.org/
|
||||
)
|
||||
|
||||
Firewall Builder needs ANTLR C++ runtime header files and library and
|
||||
include these in the source tree under src/antlr. Unless you want to
|
||||
change the grammar (*.g files) you don't need to install ANTLR separately.
|
||||
All relevant ANTLR files are included in the package. For more information
|
||||
on ANTRL see: http://www.antlr2.org
|
||||
|
||||
Features implemented in this version :
|
||||
|
||||
* Importer can parse iptables config saved using iptables-save utility.
|
||||
Because of the huge variety of iptables modules, Importer can only
|
||||
interpret basic iptables configuration and a subset of modules.
|
||||
Currently the following modules are supported:
|
||||
|
||||
* state
|
||||
* multiport
|
||||
* limit
|
||||
* mark
|
||||
|
||||
* Importer creates firewall object with all interfaces. It can not
|
||||
assign object name for the firewall object nor add IP and MAC
|
||||
addresses to interfaces because this information is not present in
|
||||
iptables-save file.
|
||||
* option "Assume firewall is part of 'any'" is off in the created
|
||||
firewall object. Import is done this way in order to preserve logic of
|
||||
chains INPUT, OUTPUT and FORWARD in the recreated fwbuilder rules.
|
||||
Rules that had chain INPUT in the imported script will have firewall
|
||||
object in "destination" in the corresponding fwbuilder rules. Firewall
|
||||
object is placed in "Source" for rules with chain OUTPUT. For rules
|
||||
with chain FORWARD rule elements "Source" and "Destination" are
|
||||
populated with objects created using options "-s" and "-d" of the
|
||||
original rules or left empty ("any").
|
||||
* all recognized iptables rules are imported and interface and direction
|
||||
are set in all rules appropriately. Interface objects are created as
|
||||
parser finds them in the script.
|
||||
* targets ACCEPT, DROP, REJECT, MARK and others are converted to the
|
||||
corresponding fwbuilder policy rule actions. Unrecognized targets and
|
||||
converted to branching rules, where the name of the target becomes the
|
||||
name of the branch.
|
||||
* SNAT, DNAT, MASQUERADING, REDIRECT and NETMAP targets and their
|
||||
parameters are recognized in the NAT rules.
|
||||
* Address and service objects are created in the process for all
|
||||
addresses and ports used in all rules.
|
||||
* iptables rules can refer to tcp/udp ports both by name or by number.
|
||||
Importer can properly interpret both formats using system function
|
||||
getservbyname() to convert service name to the port number. Since the
|
||||
result of this function depends on the OS, some port names may not
|
||||
convert on some systems. For example, Windows can convert more limited
|
||||
set of service names compared to Linux or BSD.
|
||||
* targets LOG and ULOG are converted to the "logging" option in
|
||||
fwbuilder rules with action "Continue". This is an empty action that
|
||||
does not affect packet flow through the firewall but can be used in
|
||||
combination with "logging" option to log the packet. If such empty
|
||||
(logging-only) rule is undesired, it must be manually merged with some
|
||||
other rule in the policy.
|
||||
* "--log-prefix", and "--log-level" options of the LOG target are
|
||||
recognized
|
||||
* "--ulog-prefix" option of the ULOG target is recognized. Other options
|
||||
of the ULOG target are not.
|
||||
* Address and service objects are reused in the process of import.
|
||||
* in case when importer fails to parse some part of the iptables-save
|
||||
file, corresponding policy rule is colored red and appropriate
|
||||
diagnostic message added to its comment. The problem must be corrected
|
||||
manually.
|
||||
* comments ("#") found inside access lists are ignored.
|
||||
|
||||
Shortcomings of this version:
|
||||
|
||||
* user-defined chains in table "nat" are not supported
|
||||
* no import of time intervals
|
||||
* no MAC address matching import
|
||||
|
||||
Policy import of Cisco IOS access lists (v2.1.12, build 270)
|
||||
|
||||
Features implemented in this version :
|
||||
|
||||
* Importer can parse router config saved using "show run" command.
|
||||
Although importer can only interpret a subset of IOS configuration
|
||||
commands, other commands that it does not understand will be ignored
|
||||
and should not affect operation. No manual editing of the config is
|
||||
required prior to import.
|
||||
* Importer creates firewall object with all interfaces
|
||||
* firewall object name is assigned if "hostname" command is found in the
|
||||
configuration. If this command is not present, the name remains
|
||||
generic "New Firewall"
|
||||
* interface addresses are assigned if command "ip address" is found
|
||||
(multiple addresses per interface are supported). Interfaces without
|
||||
"ip address" in the configuration are marked as "unnumbered" in the
|
||||
firewall builder object tree.
|
||||
* all access lists are imported and interface and direction are set in
|
||||
all rules appropriately
|
||||
* Address and service objects are created in the process for all
|
||||
addresses and ports used in access lists
|
||||
* IOS access lists can define ip protocol, icmp code and type, and
|
||||
tcp/udp ports both by name or by number. Importer can properly
|
||||
interpret both formats.
|
||||
* "log", "log-input", "fragments", "established" keywords are supported
|
||||
and translated into rule or object options as appropriate.
|
||||
* Address and service objects are reused in the process of import.
|
||||
* in case when importer fails to parse some part of the access-list
|
||||
command, corresponding policy rule is colored in red and appropriate
|
||||
diagnostic message added to its comment. The problem must be corrected
|
||||
manually.
|
||||
* "remark" commands found inside access lists are translated into rule
|
||||
comments
|
||||
* comments ("!") found inside access lists are ignored.
|
||||
|
||||
Shortcomings of this version:
|
||||
|
||||
* importer does not use address and service objects that existed in the
|
||||
tree before the operation has started, it creates new ones.
|
||||
Deduplication only works for objects created in the process of import.
|
||||
* the following keywords available in extended access lists are not
|
||||
supported at this time: tos, precedence, time-range.
|
||||
* igmp access lists are not parsed.
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
New object types and improvements in the base API
|
||||
|
||||
* TCPService object now has flag "established". Policy comilers for
|
||||
platforms that have special keyword for this flag can recognize this
|
||||
flag in TCPService object.
|
||||
* TCPService object "All TCP established" has been added to the Standard
|
||||
objects library.
|
||||
* Interface of the firewall has new flag "unprotected", currently only
|
||||
used in compiler for Cisco IOS access lists. Compiler skips interfaces
|
||||
marked as "unprotected" when it decides which interface a policy rule
|
||||
should be assigned to.
|
||||
|
||||
Improvements and bug fixes in the GUI
|
||||
|
||||
* dialogs and resource files for Cisco IOS access lists.
|
||||
* Policy installer for Cisco routers
|
||||
* fixed long-standing problem with size of the built-in installer
|
||||
options dialog. The dialog was too big and did not properly resize
|
||||
itself when some options were hidden.
|
||||
* PIX and Cisco routers (IOS) : built-in installer can schedule reboot
|
||||
of the firewall before activating new policy, then cancel it if the
|
||||
policy has been activated successfully.
|
||||
* note about built-in installer on windows. Installer seems to have
|
||||
broke with upgrade of QT to 3.3.8. Specifically, in
|
||||
SSHSession::readFromStdout(), proc->readStdout() returns a byte array
|
||||
that contains actual output from the device, with some garbage
|
||||
appeneded to it. The garbage is included in the size() count of
|
||||
QByteArray returned by readStdout so it gets included into the QString
|
||||
which we append to stdoutBuffer. This happens only on win32; reverting
|
||||
to QT 3.3.7 fixes the problem.
|
||||
* the GUI is compiled with ANTLR C++ run-time, used for policy importer
|
||||
* Policy importer: can read and import iptables rules from the
|
||||
iptables-save file and Cisco IOS access lists from the router
|
||||
configuration saved using "show run" command. See README.policy_import
|
||||
file for more details.
|
||||
* allow for object group in "Interface" rule element
|
||||
* Added support for action "Continue" (an empty action) in the GUI and
|
||||
compiler for iptables. This action creates a rule that does nothing,
|
||||
however it generates iptables command with target "-j LOG" if logging
|
||||
is turned on. This can be useful if one wants only to log packets that
|
||||
match certain pattern but not make any policy decision in the same
|
||||
rule.
|
||||
* After changes made in the compiler to simplify algorithm used to
|
||||
decide which chain a rule with action Tag should go to, rule action
|
||||
option "Mark connections in PREROUTING chain" ( "ipt_mark_prerouting"
|
||||
) has been deprecated.
|
||||
* fixed bug (no number) where installer failed to properly copy .fwb
|
||||
file over to the firewall if file name contained whitespace
|
||||
* fixed bug #1739373: "FWB2111, register Routing not printed". Tab
|
||||
"Routing" was not included in the printed copy of firewall policies
|
||||
|
||||
Improvements and bug fixes in policy compiler for iptables
|
||||
|
||||
* fixed bug 1737733: "install script doesn't detect BROADCAST if eth is
|
||||
NO-CARRIER". If firewall script runs before network interface comes up
|
||||
(i.e. is still in NO-CARRIER state), script failed to add virtual
|
||||
addresses for NAT.
|
||||
* fixed bug #1711595: "ip6tables DROPs". Compiler adds rules to permit
|
||||
any-to-any on loopback interface for ipv6 in addition to rules that
|
||||
set default policy to DROP for all chains in ipv6
|
||||
* streamlined algorithm that assigns chain to a rule with action Tag.
|
||||
The goal is to always use chain PREROUTING for rules with direction
|
||||
Inbound or Both and a combination of OUTPUT and POSTROUTING for rules
|
||||
with direction Outbound and Both.
|
||||
* Added support for action "Continue" (an empty action) in the GUI and
|
||||
compiler for iptables. This action creates a rule that does nothing,
|
||||
however it generates iptables command with target "-j LOG" if logging
|
||||
is turned on. This can be useful if one wants only to log packets that
|
||||
match certain pattern but not make any policy decision in the same
|
||||
rule.
|
||||
* fixed bug #1718791: "Bug with more than one router". This bug affected
|
||||
routing rules.
|
||||
* fixed bug #1720022: "Fail to load modules .ko.gz".
|
||||
* fixed bug #1720480: '"-A POSTROUTING -i interface" in branching
|
||||
rules'. Compiler should not generate iptables commands in POSTROUTING
|
||||
chain with "-i interface" clause.
|
||||
* bug (no number): compiler used to not set unique internal id for rules
|
||||
in branches, which lead to chain names like 'C.0' in generated script.
|
||||
* bug (no number): when a rule number is inserted into a log record in
|
||||
place of macro %N, it should be formatted as "N/M" for rules in a
|
||||
branch.
|
||||
* bug (no number): setting chain for Classify action only if it has not
|
||||
been set before. Setting chain to POSTROUTING always broke things if a
|
||||
rule with action 'Classify' was used in a branch (so the chain has
|
||||
been set to that of the branch)
|
||||
* bugs #1676635: "no way to match on state if the action is drop" and
|
||||
#1671910: "2.1.8 In 'Branch' acton compiler doesn't insert NEW
|
||||
stanza". Rely only on rule option 'stateless' to decide whether the
|
||||
rule should have "-m state --state NEW". Rule option 'stateless' is
|
||||
automatically set when user changes rule action so it becomes anything
|
||||
except 'Accept', 'Tag' or 'Route'. This option is also automatically
|
||||
cleared when action is switched to any of these three actions. The
|
||||
user can override these default settings by checking or unchecking the
|
||||
option in the rule options dialog.
|
||||
|
||||
Improvements and bug fixes in policy compiler for PF
|
||||
|
||||
* fixed bug #1727715: "Policy Installer failed but indicates succes".
|
||||
Activation script for PF exits with non-zero return code if script
|
||||
activation fails.
|
||||
* fixed bug #1740545: "AddressTable in NAT section". Policy compiler for
|
||||
PF crashed if AddressTable object was used in TDst element of a NAT
|
||||
rule.
|
||||
|
||||
Improvements and bug fixes in policy compiler for ipfw
|
||||
|
||||
* new TCPService object flag "established" in compiler for ipfw.
|
||||
*
|
||||
@@ -0,0 +1,106 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
|
||||
<link rel="stylesheet" type="text/css" href="http://www.fwbuilder.org/pages/fwbuilder.css">
|
||||
</head>
|
||||
<body>
|
||||
<h1> Firewall Builder Release Notes </h1>
|
||||
<br>
|
||||
<h2> Version 2.1.13 </h2>
|
||||
<br>
|
||||
<p>
|
||||
Released 07/22/2007
|
||||
<br>
|
||||
<b>GUI and compilers v2.1.13 require API library libfwbuilder version 2.1.13</b>
|
||||
<br>
|
||||
<h2>Summary </h2>
|
||||
<p>
|
||||
This is bugfix release; its main focus is better support for new
|
||||
features available in PF in OpenBSD 4.1.
|
||||
|
||||
<p>
|
||||
<b>For those who wish to build from source, instructions are outlined
|
||||
in the document "Install and Build instructions" on our web site <a
|
||||
href="http://www.fwbuilder.org/archives/cat_installation.html">here</a></b>
|
||||
|
||||
|
||||
|
||||
<h2>Improvements and bug fixes in the GUI</h2>
|
||||
<ul>
|
||||
|
||||
<li>fixed bug #1740766: "lock not saved". This method now copies the
|
||||
value of "ro" attribute (read-only). Clear it in the caller if
|
||||
neccessary. Method duplicate() clears it after calling
|
||||
shallowDuplicate in order to be able to modify the object, then
|
||||
restores this attribute to its original value.</li>
|
||||
|
||||
<li>fixed bug #1743117: "crash while editing any". Added check, user
|
||||
should not be able to unlock Standard objects library</li>
|
||||
|
||||
<li>fixed bug #1753188: "policy activation fails on PIX and
|
||||
IOS". Installer failed if account used to authenticate to the
|
||||
router or PIX went straight to 'enable' mode after login.</li>
|
||||
|
||||
<li>added simple template object for Cisco router 36xx </li>
|
||||
</ul>
|
||||
|
||||
<h2>Improvements and bug fixes in policy compiler for iptables</h2>
|
||||
<ul>
|
||||
|
||||
<li>fixed bug #1746257: "fwbuilder breaks IPv6". Added an option to
|
||||
the firewall settings dialog for iptables that controls whether
|
||||
compiler should skip generation of the code to set default policy
|
||||
of all ipv6 chains to DROP. This option is off by default, that is
|
||||
compiler puts the code in. This helps maintain backwards
|
||||
compatibility with old data files that do not have this option,
|
||||
which is equivalent to this option being "off".</li>
|
||||
|
||||
<li>fixed bug #1747332: "missing CONNMARK/ restore mark in Output
|
||||
Chain"</li>
|
||||
|
||||
<li>compiler permits setting direction in the rule while interface
|
||||
field is "All". This generates iptables command in chain INPUT or
|
||||
OUTPUT with "-i +" or "-o +" interface specification to match all
|
||||
interfaces.</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Improvements and bug fixes in policy compiler for PF</h2>
|
||||
<ul>
|
||||
<li>fixed bug #1747828: "anchors generation - "log" not
|
||||
supported". "Log" keyword is not allowed in "anchor" rules;
|
||||
compiler should not generate it even if user turned logging on in
|
||||
a rule with action 'Branch'</li>
|
||||
|
||||
<li>implemented support for PF limit options "src-nodes", "tables"
|
||||
and "table-entries". Feature Req. #1674919: "Support "set limit
|
||||
table-entries""</li>
|
||||
|
||||
<li>better compliance with PF 4.x. Feature Req. #1679793: "add 'no
|
||||
state' and 'flags any'". If version is set to 4.x, compiler skips
|
||||
"flags S/SA keep state" for rules mathcing tcp services. However,
|
||||
according to the section "1.2. Operational changes" in PF FAQ at
|
||||
http://www.openbsd.org/faq/upgrade41.html , there should be a way
|
||||
to add "keep state" explicitly for rules on interface enc0. Added
|
||||
this option to the rule options dialog.</li>
|
||||
|
||||
<li>Added support for "set skip on <ifspec>" command for PF. If an
|
||||
interface is marked as "unprotected" in the GUI, compiler
|
||||
generates this command for it. This is useful for loopback or
|
||||
other virtual interfaces.</ifspec>
|
||||
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>Improvements and bug fixes in policy compilers for Cisco IOS ACL</h2>
|
||||
<ul>
|
||||
<li>Fixed bug that caused compiler to exit abnormally while
|
||||
compiling a rule with interface field "all". Compiler should
|
||||
generate ACL lines for all interfaces of the router (except those
|
||||
marked "unprotected")</li>
|
||||
</ul>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,67 @@
|
||||
Firewall Builder Release Notes
|
||||
|
||||
Version 2.1.13
|
||||
|
||||
Released 07/22/2007
|
||||
GUI and compilers v2.1.13 require API library libfwbuilder version 2.1.13
|
||||
|
||||
Summary
|
||||
|
||||
This is bugfix release; its main focus is better support for new features
|
||||
available in PF in OpenBSD 4.1
|
||||
|
||||
For those who wish to build from source, instructions are outlined in the
|
||||
document "Install and Build instructions" on our web site here
|
||||
|
||||
Improvements and bug fixes in the GUI
|
||||
|
||||
* fixed bug #1740766: "lock not saved". This method now copies the value
|
||||
of "ro" attribute (read-only). Clear it in the caller if neccessary.
|
||||
Method duplicate() clears it after calling shallowDuplicate in order
|
||||
to be able to modify the object, then restores this attribute to its
|
||||
original value.
|
||||
* fixed bug #1743117: "crash while editing any". Added check, user
|
||||
should not be able to unlock Standard objects library
|
||||
* fixed bug #1753188: "policy activation fails on PIX and IOS".
|
||||
Installer failed if account used to authenticate to the router or PIX
|
||||
went straight to 'enable' mode after login.
|
||||
* added simple template object for Cisco router 36xx
|
||||
|
||||
Improvements and bug fixes in policy compiler for iptables
|
||||
|
||||
* fixed bug #1746257: "fwbuilder breaks IPv6". Added an option to the
|
||||
firewall settings dialog for iptables that controls whether compiler
|
||||
should skip generation of the code to set default policy of all ipv6
|
||||
chains to DROP. This option is off by default, that is compiler puts
|
||||
the code in. This helps maintain backwards compatibility with old data
|
||||
files that do not have this option, which is equivalent to this option
|
||||
being "off".
|
||||
* fixed bug #1747332: "missing CONNMARK/ restore mark in Output Chain"
|
||||
* compiler permits setting direction in the rule while interface field
|
||||
is "All". This generates iptables command in chain INPUT or OUTPUT
|
||||
with "-i +" or "-o +" interface specification to match all interfaces.
|
||||
|
||||
Improvements and bug fixes in policy compiler for PF
|
||||
|
||||
* fixed bug #1747828: "anchors generation - "log" not supported". "Log"
|
||||
keyword is not allowed in "anchor" rules; compiler should not generate
|
||||
it even if user turned logging on in a rule with action 'Branch'
|
||||
* implemented support for PF limit options "src-nodes", "tables" and
|
||||
"table-entries". Feature Req. #1674919: "Support "set limit
|
||||
table-entries""
|
||||
* better compliance with PF 4.x. Feature Req. #1679793: "add 'no state'
|
||||
and 'flags any'". If version is set to 4.x, compiler skips "flags S/SA
|
||||
keep state" for rules mathcing tcp services. However, according to the
|
||||
section "1.2. Operational changes" in PF FAQ at
|
||||
http://www.openbsd.org/faq/upgrade41.html , there should be a way to
|
||||
add "keep state" explicitly for rules on interface enc0. Added this
|
||||
option to the rule options dialog.
|
||||
* Added support for "set skip on " command for PF. If an interface is
|
||||
marked as "unprotected" in the GUI, compiler generates this command
|
||||
for it. This is useful for loopback or other virtual interfaces.
|
||||
|
||||
Improvements and bug fixes in policy compilers for Cisco IOS ACL
|
||||
|
||||
* Fixed bug that caused compiler to exit abnormally while compiling a
|
||||
rule with interface field "all". Compiler should generate ACL lines
|
||||
for all interfaces of the router (except those marked "unprotected")
|
||||
@@ -0,0 +1,106 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
|
||||
<link rel="stylesheet" type="text/css" href="http://www.fwbuilder.org/pages/fwbuilder.css">
|
||||
</head>
|
||||
<body>
|
||||
<h1> Firewall Builder Release Notes </h1>
|
||||
<br>
|
||||
<h2> Version 2.1.14 </h2>
|
||||
<br>
|
||||
<p>
|
||||
Released 09/10/2007
|
||||
<br>
|
||||
<b>GUI and compilers v2.1.14 require API library libfwbuilder version 2.1.14</b>
|
||||
<br>
|
||||
<h2>Summary </h2>
|
||||
<p>
|
||||
This is another bugfix release, it comes with numerous improvements in
|
||||
the iptables policy importer and fixes for gcc 4.2 and 4.3
|
||||
|
||||
<p>
|
||||
<b>For those who wish to build from source, instructions are outlined
|
||||
in the document "Install and Build instructions" on our web site <a
|
||||
href="http://www.fwbuilder.org/archives/cat_installation.html">here</a></b>
|
||||
|
||||
|
||||
|
||||
<h2>Improvements and bug fixes in libfwbuilder library</h2>
|
||||
<ul>
|
||||
|
||||
<li>fixed bug #1761373: "libfwbuilder doesn't build on Mandriva
|
||||
cooker". Applied fixes to make the code compile with gcc 4.2</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>Improvements and bug fixes in the policy importer for iptables</h2>
|
||||
<ul>
|
||||
<li>fixed bug #1764988: "iptables import -> GUI crash":
|
||||
<p>
|
||||
<ul>
|
||||
|
||||
<li>iptables policy importer recognizes and parses target
|
||||
RETURN</li>
|
||||
|
||||
<li>iptables policy importer recognizes and parses TCP flag
|
||||
parameters ALL and NONE</li>
|
||||
|
||||
<li>syntax for TCP flag matching in iptables-save should allow
|
||||
for more than 2 flags in 'comp' part</li>
|
||||
|
||||
</ul>
|
||||
<p>
|
||||
</li>
|
||||
|
||||
<li>fixed bug (no num): iptables policy importer should properly
|
||||
parse numeric protocol specification (e.g. "-p 47").</li>
|
||||
|
||||
<li>added missing supprot for "--log-tcp-sequence",
|
||||
"--log-tcp-options" and "--log-ip-options" options for target LOG to
|
||||
iptables policy importer</li>
|
||||
|
||||
<li>added a workaround for a situation when several iptables
|
||||
commands pass control to the same user-define chain in the
|
||||
iptables-save file. As of fwbuilder v2.1, branch ruleset is a
|
||||
child object of PolicyRule. This means two different rules can not
|
||||
point at the same branch ruleset. This is unfortunate but it is
|
||||
hard to fix in the current version because it requires changes XML
|
||||
DTD and API. Will do this in 3.0. Meanwhile, checking if branch
|
||||
ruleset with requested name already exists and change the name by
|
||||
adding suffix '1', '2' etc to make it different. Imported rule is
|
||||
marked as 'bad' (red background) and gets a comment explaining
|
||||
this.</li>
|
||||
|
||||
<li>fixed bug (no num): importer for iptables should properly assign
|
||||
rule options when it finds "-m limit" and "--limit" options in the
|
||||
input file.</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>Improvements and bug fixes in the GUI</h2>
|
||||
<ul>
|
||||
<li>configure.in: another patch by Carlos Silva
|
||||
<r3pek@r3pek.org> to add third parameter to
|
||||
AC_DEFINE_UNQUOTED </r3pek>
|
||||
|
||||
<li>fixed bug reported in Debian Bug report #417685 - added missing
|
||||
#include <algorithm> to make code compile with gcc 4.3</li>
|
||||
|
||||
<li>applied patch by Carlos Silva <r3pek@r3pek.org> to make
|
||||
configure.in use ANTLR C++ run-time installed on the system if
|
||||
it can find one; otherwise it uses copy in src/antlr</li>
|
||||
|
||||
<li>fixed bug #1772722: "installer should recognize when it uses
|
||||
plink 0.60". We detect when installer uses plink on Windows by
|
||||
checking the name of the configured ssh client. The check should
|
||||
be case-insensitive.</li>
|
||||
|
||||
<li>fixed bug #1764971: "allowed value range for burst
|
||||
limit". Iptables "--limit-burst" option should not be limited in
|
||||
the GUI.</li>
|
||||
|
||||
</ul>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,64 @@
|
||||
Firewall Builder Release Notes
|
||||
|
||||
Version 2.1.14
|
||||
|
||||
Released 09/10/2007
|
||||
GUI and compilers v2.1.14 require API library libfwbuilder version 2.1.14
|
||||
|
||||
Summary
|
||||
|
||||
This is another bugfix release, it comes with numerous improvements in the
|
||||
iptables policy importer and fixes for gcc 4.2 and 4.3
|
||||
|
||||
For those who wish to build from source, instructions are outlined in the
|
||||
document "Install and Build instructions" on our web site here
|
||||
|
||||
Improvements and bug fixes in libfwbuilder library
|
||||
|
||||
* fixed bug #1761373: "libfwbuilder doesn't build on Mandriva cooker".
|
||||
Applied fixes to make the code compile with gcc 4.2
|
||||
|
||||
Improvements and bug fixes in the policy importer for iptables
|
||||
|
||||
* fixed bug #1764988: "iptables import -> GUI crash":
|
||||
|
||||
* iptables policy importer recognizes and parses target RETURN
|
||||
* iptables policy importer recognizes and parses TCP flag
|
||||
parameters ALL and NONE
|
||||
* syntax for TCP flag matching in iptables-save should allow for
|
||||
more than 2 flags in 'comp' part
|
||||
|
||||
* fixed bug (no num): iptables policy importer should properly parse
|
||||
numeric protocol specification (e.g. "-p 47").
|
||||
* added missing supprot for "--log-tcp-sequence", "--log-tcp-options"
|
||||
and "--log-ip-options" options for target LOG to iptables policy
|
||||
importer
|
||||
* added a workaround for a situation when several iptables commands pass
|
||||
control to the same user-define chain in the iptables-save file. As of
|
||||
fwbuilder v2.1, branch ruleset is a child object of PolicyRule. This
|
||||
means two different rules can not point at the same branch ruleset.
|
||||
This is unfortunate but it is hard to fix in the current version
|
||||
because it requires changes XML DTD and API. Will do this in 3.0.
|
||||
Meanwhile, checking if branch ruleset with requested name already
|
||||
exists and change the name by adding suffix '1', '2' etc to make it
|
||||
different. Imported rule is marked as 'bad' (red background) and gets
|
||||
a comment explaining this.
|
||||
* fixed bug (no num): importer for iptables should properly assign rule
|
||||
options when it finds "-m limit" and "--limit" options in the input
|
||||
file.
|
||||
|
||||
Improvements and bug fixes in the GUI
|
||||
|
||||
* configure.in: another patch by Carlos Silva <r3pek@r3pek.org> to add
|
||||
third parameter to AC_DEFINE_UNQUOTED
|
||||
* fixed bug reported in Debian Bug report #417685 - added missing
|
||||
#include to make code compile with gcc 4.3
|
||||
* applied patch by Carlos Silva <r3pek@r3pek.org> to make configure.in
|
||||
use ANTLR C++ run-time installed on the system if it can find one;
|
||||
otherwise it uses copy in src/antlr
|
||||
* fixed bug #1772722: "installer should recognize when it uses plink
|
||||
0.60". We detect when installer uses plink on Windows by checking the
|
||||
name of the configured ssh client. The check should be
|
||||
case-insensitive.
|
||||
* fixed bug #1764971: "allowed value range for burst limit". Iptables
|
||||
"--limit-burst" option should not be limited in the GUI.
|
||||
@@ -0,0 +1,88 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
|
||||
<link rel="stylesheet" type="text/css" href="http://www.fwbuilder.org/pages/fwbuilder.css">
|
||||
</head>
|
||||
<body>
|
||||
<h1> Firewall Builder Release Notes </h1>
|
||||
<br>
|
||||
<h2> Version 2.1.15 </h2>
|
||||
<br>
|
||||
<p>
|
||||
Released 12/10/2007
|
||||
<br>
|
||||
<b>GUI and compilers v2.1.15 require API library libfwbuilder version 2.1.15</b>
|
||||
<br>
|
||||
<h2>Summary </h2>
|
||||
<p>
|
||||
This is another bugfix release. Several problems with policy installer
|
||||
running in batch mode have been fixed, also this release resolves
|
||||
compatibility issues with Windows Vista and Mac OS X Leopard.
|
||||
|
||||
<p>
|
||||
<b>For those who wish to build from source, instructions are outlined
|
||||
in the document "Install and Build instructions" on our web site <a
|
||||
href="http://www.fwbuilder.org/archives/cat_installation.html">here</a></b>
|
||||
|
||||
<p>
|
||||
The GUI code is in the freeze for QT4 conversion. I will fix bugs in
|
||||
policy compilers but will try to avoid changes in the GUI. New GUI
|
||||
based on QT4 will be released next spring when KDE4 is included in all
|
||||
major Linux distributions and FreeBSD. There will be one more bugfix
|
||||
release for v2.1 if necessary.
|
||||
|
||||
|
||||
<h2>Improvements and bug fixes in the GUI</h2>
|
||||
<ul>
|
||||
<li>fixed bug #1811781: "Batch Install". Built-in installer used
|
||||
address of the first firewall of the batch to communicate with
|
||||
all firewalls in the "batch install" mode.
|
||||
</li>
|
||||
|
||||
<li>fixed bug #1826558: "OSX 10.5 font problem". This problem
|
||||
appeared only in Mac OS X Leoprard (10.5) build, other platforms
|
||||
were unaffected.</li>
|
||||
|
||||
<li>Starting with build 320 Windows packages install on Vista</li>
|
||||
|
||||
<li>Added Brazilian Portuguese translation by Jose Carlos Medeiros
|
||||
<jose@psabs.com.br></li>
|
||||
|
||||
<li>fixed bug #1821576: "Rule option tracking gives inavlid config
|
||||
with default value". Compiler should skip max-src-nodes when it is
|
||||
set to default '0' in the GUI.</li>
|
||||
</ul>
|
||||
|
||||
<h2>Improvements and bug fixes in the policy importer for iptables</h2>
|
||||
<ul>
|
||||
<li>fixed bug #1812295: "Can't use runtime address tables AND
|
||||
iptabels-restore". Script generated by fwb_ipt used "here
|
||||
document" if the option "use iptables-restore to activate
|
||||
policy" was turned on. This did not work in case policy used
|
||||
any tun-time address table objects. Now generated script
|
||||
always uses "echo" to generate iptables commands that it sends
|
||||
to th standard input of iptables-restore.
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>Improvements and bug fixes in the policy importer for ipfilter</h2>
|
||||
<ul>
|
||||
<li>applied patch by <Cy.Schubert@komquats.com> to add support for
|
||||
Kerberos rcmd and Kerberos ekshell proxies in ipfilter NAT rules.
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>Improvements and bug fixes in the policy importer for pf</h2>
|
||||
<ul>
|
||||
<li>fixed bug #1800875 "'keep state' missing from pass out going
|
||||
traffic rule". Compilers for pf, ipf and ipfw were affected.
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,55 @@
|
||||
Firewall Builder Release Notes
|
||||
|
||||
Version 2.1.15
|
||||
|
||||
Released 12/10/2007
|
||||
GUI and compilers v2.1.15 require API library libfwbuilder version 2.1.15
|
||||
|
||||
Summary
|
||||
|
||||
This is another bugfix release. Several problems with policy installer
|
||||
running in batch mode have been fixed, also this release resolves
|
||||
compatibility issues with Windows Vista and Mac OS X Leopard.
|
||||
|
||||
For those who wish to build from source, instructions are outlined in the
|
||||
document "Install and Build instructions" on our web site here
|
||||
|
||||
The GUI code is in the freeze for QT4 conversion. I will fix bugs in
|
||||
policy compilers but will try to avoid changes in the GUI. New GUI based
|
||||
on QT4 will be released next spring when KDE4 is included in all major
|
||||
Linux distributions and FreeBSD. There will be one more bugfix release for
|
||||
v2.1 if necessary.
|
||||
|
||||
Improvements and bug fixes in the GUI
|
||||
|
||||
* fixed bug #1811781: "Batch Install". Built-in installer used address
|
||||
of the first firewall of the batch to communicate with all firewalls
|
||||
in the "batch install" mode.
|
||||
* fixed bug #1826558: "OSX 10.5 font problem". This problem appeared
|
||||
only in Mac OS X Leoprard (10.5) build, other platforms were
|
||||
unaffected.
|
||||
* Starting with build 320 Windows packages install on Vista
|
||||
* Added Brazilian Portuguese translation by Jose Carlos Medeiros
|
||||
<jose@psabs.com.br>
|
||||
* fixed bug #1821576: "Rule option tracking gives inavlid config with
|
||||
default value". Compiler should skip max-src-nodes when it is set to
|
||||
default '0' in the GUI.
|
||||
|
||||
Improvements and bug fixes in the policy importer for iptables
|
||||
|
||||
* fixed bug #1812295: "Can't use runtime address tables AND
|
||||
iptabels-restore". Script generated by fwb_ipt used "here document" if
|
||||
the option "use iptables-restore to activate policy" was turned on.
|
||||
This did not work in case policy used any tun-time address table
|
||||
objects. Now generated script always uses "echo" to generate iptables
|
||||
commands that it sends to th standard input of iptables-restore.
|
||||
|
||||
Improvements and bug fixes in the policy importer for ipfilter
|
||||
|
||||
* applied patch by <Cy.Schubert@komquats.com> to add support for
|
||||
Kerberos rcmd and Kerberos ekshell proxies in ipfilter NAT rules.
|
||||
|
||||
Improvements and bug fixes in the policy importer for pf
|
||||
|
||||
* fixed bug #1800875 "'keep state' missing from pass out going traffic
|
||||
rule". Compilers for pf, ipf and ipfw were affected.
|
||||
@@ -0,0 +1,487 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
|
||||
<link rel="stylesheet" type="text/css" href="http://www.fwbuilder.org/pages/fwbuilder.css">
|
||||
</head>
|
||||
<body>
|
||||
<h1> Firewall Builder Release Notes </h1>
|
||||
<br>
|
||||
<h2> Version 2.1.7 </h2>
|
||||
<br>
|
||||
<p>
|
||||
Released 10/31/2006
|
||||
<br>
|
||||
<b>GUI and compilers v2.1.7 require API library libfwbuilder version 2.1.7</b>
|
||||
<br>
|
||||
<h2>Summary </h2>
|
||||
<p>
|
||||
|
||||
<p>
|
||||
<b>For those who wish to build from source, instructions are outlined
|
||||
in the document "Install and Build instructions" on our web site <a
|
||||
href="http://www.fwbuilder.org/archives/cat_installation.html">here</a></b>
|
||||
|
||||
|
||||
<h2>Installation</h2>
|
||||
|
||||
<p>
|
||||
Packages of Firewall Builder 2.1 are built in a such way that you
|
||||
should be able to install them on the same machine with Firewall
|
||||
Builder 2.0.X. All binaries have names that end with <b>"21"</b>,
|
||||
e.g. <b>"fwbuilder21"</b> or <b>"fwb_ipt21"</b>. On Windows the
|
||||
binary name is the same but the package installs in
|
||||
directory <b>c:\FWBuilder21</b> which is different from the default
|
||||
directory for Firewall Builder 2.0; all registry entries are also
|
||||
located in different subtrees. All this is done to ensure the user
|
||||
can run Firewall Builder 2.1 while still using stable version 2.0.12
|
||||
on the same machine.
|
||||
</p>
|
||||
|
||||
<h2>Improvements and changes in the GUI</h2>
|
||||
<ul>
|
||||
|
||||
<li>The GUI works much faster with very large object trees. Tested
|
||||
using a data file with over 3000 objects)
|
||||
<p>
|
||||
</p>
|
||||
</li>
|
||||
|
||||
<li>"Where used" menu item has been added to quickly find and show
|
||||
all groups and firewall rules that reference given
|
||||
object. Confirmation dialog that is shown when user tries to
|
||||
delete an object also shows all groups and rules that use it.
|
||||
<p>
|
||||
</p>
|
||||
</li>
|
||||
|
||||
<li>By popular request, built-in installer can now save a copy of
|
||||
.fwb file to the firewall.
|
||||
<p>
|
||||
</p>
|
||||
</li>
|
||||
|
||||
<li>Compile/install dialog is now an independent window instead of a
|
||||
modal dialog, this means the user can look at the policy and
|
||||
objects while compilation and/or installation is going on. This is
|
||||
especially convenient as it allows one to inspect the rules after
|
||||
failed compilation while still having compiler error on screen.
|
||||
<p>
|
||||
</p>
|
||||
</li>
|
||||
|
||||
|
||||
<li>Network discovery driud is back, ported from fwbuilder
|
||||
1.0. As before, it supports reading object definitions from a
|
||||
file in <b>/etc/hosts</b> format, can read DNS zone and also can
|
||||
crawl the network using SNMP queries.
|
||||
<p>
|
||||
</p>
|
||||
</li>
|
||||
|
||||
<li>Startup wizard ("Welcome to Firewall Builder") has been
|
||||
removed. The GUI now starts either into an empty database or
|
||||
opens data file specified on the command line.
|
||||
<p>
|
||||
</li>
|
||||
|
||||
<li>Keeping track of dependencies between objects. This is
|
||||
useful when many firewalls in the tree use the same set of
|
||||
objects. Each firewall object keeps track of objects it
|
||||
depends on, so if any object is modified, all firewalls that
|
||||
use it in their rules are marked with bold font to indicate
|
||||
that they need to be recompiled. Object dependencies are
|
||||
tracked not only when objects are directly used in rules,
|
||||
but also when they apepar there indirectly, as members of
|
||||
groups
|
||||
<p>
|
||||
</li>
|
||||
|
||||
<li>Added bulk compile and install operations. This is useful
|
||||
when there are many firewalls in the tree that need to be
|
||||
compiled and installed in one go. Bulk install operation is
|
||||
only possible if all firewalls use the same user name and
|
||||
password for authentication. If this is not the case,
|
||||
built-in installer can be instructed to ask for the
|
||||
authentication information before it touches each firewall.
|
||||
<p>
|
||||
</li>
|
||||
|
||||
<li>All object dialogs have been converted into built-in
|
||||
panels that appear in the right hand part of the main
|
||||
window. This simplifies navigation ( pop-up dialogs used to
|
||||
obscure parts of the main window). Objects open in the
|
||||
editor on a single mouse click in the tree and rules.
|
||||
<p>
|
||||
</li>
|
||||
|
||||
<li>Improvements in "Find" function: administrator can now
|
||||
drag an object into a well in the find dialog panel to make
|
||||
it search for this particular object. This is useful if the
|
||||
name of the obejct is not unique. Search by object's name or
|
||||
a value of its attribute is also possible.
|
||||
<p>
|
||||
<img src="http://www.fwbuilder.org/images/find_dialog_1.png">
|
||||
<p>
|
||||
</li>
|
||||
|
||||
<li>In addition to the "Find" function, the "Find and replace"
|
||||
operation has been implemented. Objects can be found and
|
||||
replaced in groups and firewall rules
|
||||
<p>
|
||||
<img src="http://www.fwbuilder.org/images/find_replace_1.png">
|
||||
<p>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>New object types, new rule types and rule elements, new
|
||||
actions and other new features</h2>
|
||||
<ul>
|
||||
<li><b>AddressTable</b> This object resolves to a set of
|
||||
IP addresses defined in an external file. The object can be
|
||||
configured to read the file at compile time or at run time. For
|
||||
each compile-time AddressTable object defined in the object tree
|
||||
compiler tries to find and read the file specified in the object
|
||||
configuration. Compiler aborts processing if the file can not be
|
||||
found or can not be read. If the file is in place and can be
|
||||
read, such AddressTable object behaves as if it was a group of
|
||||
IP address objects, that is, all addresses are explicitly copied
|
||||
into generated configuration, although compiler may use target
|
||||
firewall syntax that helps to group such sets of addresses into
|
||||
tables. Compilers for iptables, ipfw, ipf and PIX generate bunch
|
||||
of rules matching each address read from the file. Compiler for
|
||||
PF creates a table and also lists all IP addresses it reads from
|
||||
the file; it uses the name of the AddressTable object for the
|
||||
name of the table it creates.<p>
|
||||
|
||||
|
||||
Run-time AddressTable objects are only supported by
|
||||
compilers for iptables and PF. Compiler for iptables
|
||||
generates shell code to read the contents of the file when
|
||||
firewall configuration is activated. Compiler for PF uses
|
||||
native <b>"table <name> persist file <file_name>"</b>
|
||||
syntax. Here also the name of the table is the same as the
|
||||
name of the AddressTable object it was created for.
|
||||
<p>
|
||||
</li>
|
||||
|
||||
<li><b>DNSName:</b> This object resolves a host name to
|
||||
the IP address using DNS. Object can be confgiured to do so at
|
||||
compile time or run time. Resolution is done using system call
|
||||
gethostbyaddr() to read DNS A records for the name. System
|
||||
resolver should take care of recursion and CNAME records, if
|
||||
any. If the name resolves to several IP addresses, all addresses
|
||||
are used in the generated firewall configuration. Run-time
|
||||
DNSName objects rely on the target firewall software to be able
|
||||
to convert symbolic names used in rules into actual IP addresses
|
||||
at a time when policy is activated. Not all platforms provide
|
||||
means to support run-time DNSName objects.
|
||||
<p>
|
||||
</li>
|
||||
|
||||
|
||||
<li><b>TagService:</b> This object matches tags set by
|
||||
action <b>Tag</b>. It is translated into <b>--mark
|
||||
<mark_code></b> for iptables and <b>tag</b> option for
|
||||
PF. This service object is only supported by compilers for
|
||||
iptables and PF.
|
||||
<p>
|
||||
</li>
|
||||
|
||||
<li><b>Interface</b> objects can now have an attribute to mark
|
||||
them as bridge ports, used for bridging firewalls.
|
||||
<p>
|
||||
</li>
|
||||
|
||||
|
||||
<li>Support for routing rules has been implemented using patch
|
||||
provided by Tidei Maurizio <fwbuilder-routing at
|
||||
compal.de> Support for routing rules is only implemented in
|
||||
compiler for iptables. See file README.routing included in
|
||||
fwbuilder2 package.
|
||||
<p>
|
||||
<blockquote>
|
||||
<b>NOTE:</b> I can only provide very limited support for this feature, please direct your questions and bugreports to the author
|
||||
</blockquote>
|
||||
<p>
|
||||
</li>
|
||||
|
||||
<li>Global policy and interface policies have been merged. Each
|
||||
policy rule now has rule element "Interface". Administrator
|
||||
can drag and drop interface object of the firewall into this
|
||||
rule element field. Policy compilers support multiple
|
||||
interfaces and negation in "Interface" rule element. Rule
|
||||
element "direction" that previously was only part of the
|
||||
interface policy rules is now part of all policy rules.
|
||||
<p>
|
||||
</li>
|
||||
|
||||
<li>Policy rules can have the following new actions:<p>
|
||||
<ul>
|
||||
<li><b>Queue:</b> This action passes the packet to
|
||||
user space process for inspection, it is translated
|
||||
into <b>QUEUE</b> for iptables and <b>divert</b> for
|
||||
ipfw. This action is only supported by compilers for
|
||||
iptables and ipfw..
|
||||
<p>
|
||||
</li>
|
||||
|
||||
<li><b>Custom:</b> This action allows administrator
|
||||
to define arbitrary piece of code to be used in place of
|
||||
an action. Supported by compilers for iptables, ipf and
|
||||
ipfw
|
||||
<p>
|
||||
</li>
|
||||
|
||||
<li><b>Branch:</b> This action is used to create a
|
||||
branch in the rule set. It works on target platforms that
|
||||
provide suitable syntax and allow control to return to the
|
||||
higher level rule set if the branch can not make final
|
||||
decision about the packet. For iptables this action is
|
||||
translated into user-defined chain. The name of the chain
|
||||
is the name of the branch choosen by administrator. For PF
|
||||
this action is translated into an anchor with the name the
|
||||
same as the name of the branch defined by the
|
||||
administrator. This action is only supported by compilers
|
||||
for iptables and PF.
|
||||
<p>
|
||||
<img src="http://www.fwbuilder.org/images/action_branch_1.png"><br>
|
||||
Fig.1 <i>Rule #0 of the global policy creates a branch with the name <b>rule0_branch</b></i>
|
||||
<p>
|
||||
<p>
|
||||
</li>
|
||||
|
||||
<li><b>Tag:</b> This action associates internal tag
|
||||
with the packet. Tag can later be inspected using
|
||||
service object <b>TagService</b>. This action is
|
||||
translated into <b>MARK</b> target with
|
||||
corresponding <b>--set-mark</b> parameter and optionally
|
||||
additional rule with <b>CONNMARK --save-mark</b> target
|
||||
for iptables. If option that activates <b>CONNMARK</b>
|
||||
target is used, compiler also adds a rule at the very
|
||||
top of the policy to restore the mark. Rules are placed
|
||||
in <b>INPUT</b>,<b>OUTPUT</b> and <b>FORWARD</b> chain
|
||||
of the <b>"mangle"</b> table, this ensures
|
||||
that <b>DNAT</b> happens before rules placed in the
|
||||
mangle table see the packet. <b>PREROUTING</b> chain in
|
||||
mangle table is executed before <b>PREROUTING</b> chain
|
||||
in the nat table, so placing tagging rules in the
|
||||
<b>PREROUTING</b> chain would make them fire before
|
||||
<b>DNAT</b>. <b>POSTROUTING</b> chain of the mangle
|
||||
table, as well as its <b>FORWARD</b> and <b>OUTPUT</b>
|
||||
chains, work before corresponding chains of the nat
|
||||
table. In all cases the goal is to make sure <b>DNAT</b>
|
||||
rules process the packet before, and SNAT rules process
|
||||
it after filtering and tagging rules.<p>
|
||||
|
||||
For PF this action is translated into <b>tag</b>.
|
||||
Supported only by compilers for iptables and PF.
|
||||
<p>
|
||||
<img src="http://www.fwbuilder.org/images/action_tag_1.png"><br>
|
||||
Fig.2 <i>Example of a rule utilizing action <b>Tag</b>. To illustrate policy branches, this rule belongs to the branch with the name <b>rule0_branch</b></i>
|
||||
<p>
|
||||
<p>
|
||||
</li>
|
||||
|
||||
<li><b>Classify:</b> This action allows the firewall
|
||||
to define QoS class for the packet that matches the
|
||||
rule. It is translated into <b>CLASSIFY</b> for
|
||||
iptables, with parameter <b>--set-class</b>. For PF it
|
||||
is translated into <b>queue</b>; compiler for ipfw can
|
||||
use <b>pipe</b>, <b>queue</b> or <b>divert</b> depending
|
||||
on how the action is configured by the administrator in
|
||||
the GUI. This action is only supported by compilers for
|
||||
iptables, PF and ipfw.
|
||||
<p>
|
||||
</li>
|
||||
|
||||
<li><b>Route:</b> This action makes the firewall to
|
||||
route the packet that matches the rule through an
|
||||
interface or a gateway specified in the parameters of the
|
||||
action. This action is translated into <b>ROUTE</b> target
|
||||
for iptables and <b>route</b> option for PF and
|
||||
ipfilter. Compilers for PF and ipfilter
|
||||
support <b><i>fastroute</i></b>, <b><i>route-to</i></b>,
|
||||
<b><i>reply-to</i></b> and <b><i>dup-to</i></b> options.
|
||||
<p>
|
||||
<img src="http://www.fwbuilder.org/images/action_route.png"><br>
|
||||
Fig.3 <i>Rules #0 and #1 tag packets entering the firewall through interfaces <b>eth0</b> and <b>eth2</b>; rules #3 and #4 help route reply packets back through the same interfaces</i>
|
||||
<p>
|
||||
<p>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
The GUI uses different names for the new actions depending
|
||||
on the target firewall platform to simplify adoption. For
|
||||
example, new action that created branch in rule set is
|
||||
called <b>Chain</b> for iptables firewalls and <b>Anchor</b>
|
||||
for PF fierwalls.
|
||||
</p>
|
||||
</li>
|
||||
|
||||
<li>Firewall object now has an attribute <b>"inactive"</b>. Firewall
|
||||
marked as inactive will not be picked by the GUI for the bulk
|
||||
compile and install operations even if the timestamps indicate
|
||||
that this firewall object needs to be recompiled
|
||||
<p>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Compiler for iptables</h2>
|
||||
<ul>
|
||||
<li>Support for address tables loaded from external files at
|
||||
compile or run time
|
||||
<p>
|
||||
</li>
|
||||
|
||||
<li>Support user defined chains with predefined names (using
|
||||
special action )
|
||||
<p>
|
||||
</li>
|
||||
|
||||
<li>Support
|
||||
for <b>CLASSIFY</b>, <b>MARK</b>, <b>CONNMARK</b>, <b>QUEUE</b>, <b>ROUTE</b>
|
||||
targets
|
||||
<p>
|
||||
</li>
|
||||
|
||||
<li>Support for <b>physdev</b> module for bridging firewalls
|
||||
<p>
|
||||
</li>
|
||||
|
||||
<li>additional optimization of rules i INPUT and OUTPUT chain:
|
||||
now removing firewall object from src or dst to simplify rule
|
||||
if it uses OUTPUT or INPUT chain. Doing this only if original
|
||||
rule did not have negation and we do not add any virtual
|
||||
addresses for NAT. After removal the rule collapses to a
|
||||
simple command like this:
|
||||
<p>
|
||||
<pre>
|
||||
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT
|
||||
</pre>
|
||||
<p>
|
||||
this works fine except if we have added virtual addresses for
|
||||
NAT. It is assumed that firewall object in rules represents
|
||||
combination of addresses configured in its interfaces in the
|
||||
GUI. Virtual addresses added for NAT are considered to be a
|
||||
side effect and connections should not be implicitly permitted
|
||||
to them by a rule with fw object in destination. The same
|
||||
applies to fw object in source. See bug #685947 for
|
||||
discussion. To avoid inadvertently opening holes in the
|
||||
firewall by a rule like that, we remove fw object only when it
|
||||
is safe to do so.
|
||||
<p>
|
||||
</li>
|
||||
|
||||
<li> support for modules <b>connlimit</b>
|
||||
and <b>hashlimit</b>. There is an option to generate commands
|
||||
for the latter module using name <b>dstlimit</b> because older
|
||||
versions of iptables included this module under this (now
|
||||
obsolete) name.
|
||||
<p>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Compiler for PF</h2>
|
||||
<ul>
|
||||
|
||||
<li>Support for load balancing rules</li>
|
||||
|
||||
<li>Support for <b>tag</b> and <b>route</b> options</li>
|
||||
|
||||
<li>Support for address ranges and networ objects in TSrc in NAT
|
||||
rules</li>
|
||||
|
||||
<li>Support for pool types in NAT rules ('bitmask', 'random',
|
||||
'source-hash', 'round-robin'), as well as 'static-port'
|
||||
option.</li>
|
||||
|
||||
<li>Supprot for anchors (by way of a special action)</li>
|
||||
|
||||
<li>Support for tables with predefined names (using AddressTable object)</li>
|
||||
|
||||
<li>Support for packet 'tagging' (by way of a special action and service object TagService)</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Compiler for ipfilter</h2>
|
||||
<ul>
|
||||
<li>Support for PPTP and IRC proxies</li>
|
||||
|
||||
<li>Support for <b>route</b> option</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h2>API</h2>
|
||||
<ul>
|
||||
<li>internal object ID is augumented with process ID of the
|
||||
program that creates an object. This allows fwbedit to quickly
|
||||
create objects and still ensure their IDs are unique
|
||||
</li>
|
||||
|
||||
<li>
|
||||
</ul>
|
||||
|
||||
<h2>fwbedit</h2>
|
||||
|
||||
<p>
|
||||
Fwbedit can now create objects and repair broken object
|
||||
database. This tool can now be used to populate object database
|
||||
using shell scripts or other automation. For example, to create an
|
||||
address object in object library 'Test' one could run it like
|
||||
this:
|
||||
</p>
|
||||
<p>
|
||||
|
||||
<blockquote>
|
||||
fwbedit -f filename.fwb -t IPv4 -n newAddress -L Test -o 192.0.2.1
|
||||
</blockquote>
|
||||
|
||||
<pre>
|
||||
Firewall Builder: general purpose object tree editing tool
|
||||
Version 2.1.5-b
|
||||
Usage: fwbedit21 -f filename.fwb -u [-a obj,grp] [-r obj,grp] [-d obj] [-s] [-l path] [(-p parent|-L library) -t objtype -n objname [-o object attributes]]
|
||||
|
||||
-t objtype : create an object of this type
|
||||
-L library : specify library when creating a new object
|
||||
-p obj : specify parent object when creating a new object
|
||||
-n name : specify a name of the new object
|
||||
-o attribute1[,attribute2...] : specify attributes when creating a new object
|
||||
-a obj,grp : create reference to object 'obj' in the group 'grp'
|
||||
-r obj,grp : remove reference to object 'obj' from the group 'grp'
|
||||
-d obj : delete object 'obj' and remove references to it from
|
||||
all rules and groups
|
||||
-l path : print list of objects for 'path'
|
||||
-s : test and repair object tree structure
|
||||
-u : autoupgrade of file
|
||||
|
||||
An object and a group can be defined by their ID or
|
||||
by the full path and name in the XML tree
|
||||
|
||||
Object creation syntax:
|
||||
|
||||
-t Firewall -n obj_name -L User -o platform, host OS
|
||||
-t IPv4 -n obj_name -L User -o IP address
|
||||
-t DNSName -n obj_name -L User -o DNS record,run time
|
||||
-t AddressRange -n obj_name -L User -o start address, end address
|
||||
-t ObjectGroup
|
||||
-t Network -n obj_name -L User -o address,netmask
|
||||
-t Interval -n obj_name -L User -o start time,start date,start day,end time, end date, end day
|
||||
-t Interface -n obj_name -L User -o security level,address type (dynamic or unnumbered),management
|
||||
-t Host
|
||||
-t TCPService -n obj_name -L User -o source port range start,end,Destination port range start,end,UAPRSF,UAPRSF
|
||||
-t UDPService -n obj_name -L User -o source port range start,end,Destination port range start,end
|
||||
-t ICMPService -n obj_name -L User -o ICMP type,ICMP code
|
||||
-t IPService -n obj_name -L User -o protocol number,lsrr/ssrr/rr/ts/fragm/short_fragm
|
||||
</pre>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,325 @@
|
||||
Firewall Builder Release Notes
|
||||
|
||||
Version 2.1.7
|
||||
|
||||
Released 10/31/2006
|
||||
GUI and compilers v2.1.7 require API library libfwbuilder version 2.1.7
|
||||
|
||||
Summary
|
||||
|
||||
For those who wish to build from source, instructions are outlined in the
|
||||
document "Install and Build instructions" on our web site here
|
||||
|
||||
Installation
|
||||
|
||||
Packages of Firewall Builder 2.1 are built in a such way that you should
|
||||
be able to install them on the same machine with Firewall Builder 2.0.X.
|
||||
All binaries have names that end with "21", e.g. "fwbuilder21" or
|
||||
"fwb_ipt21". On Windows the binary name is the same but the package
|
||||
installs in directory c:\FWBuilder21 which is different from the default
|
||||
directory for Firewall Builder 2.0; all registry entries are also located
|
||||
in different subtrees. All this is done to ensure the user can run
|
||||
Firewall Builder 2.1 while still using stable version 2.0.12 on the same
|
||||
machine.
|
||||
|
||||
Improvements and changes in the GUI
|
||||
|
||||
* The GUI works much faster with very large object trees. Tested using a
|
||||
data file with over 3000 objects)
|
||||
|
||||
* "Where used" menu item has been added to quickly find and show all
|
||||
groups and firewall rules that reference given object. Confirmation
|
||||
dialog that is shown when user tries to delete an object also shows
|
||||
all groups and rules that use it.
|
||||
|
||||
* By popular request, built-in installer can now save a copy of .fwb
|
||||
file to the firewall.
|
||||
|
||||
* Compile/install dialog is now an independent window instead of a modal
|
||||
dialog, this means the user can look at the policy and objects while
|
||||
compilation and/or installation is going on. This is especially
|
||||
convenient as it allows one to inspect the rules after failed
|
||||
compilation while still having compiler error on screen.
|
||||
|
||||
* Network discovery driud is back, ported from fwbuilder 1.0. As before,
|
||||
it supports reading object definitions from a file in /etc/hosts
|
||||
format, can read DNS zone and also can crawl the network using SNMP
|
||||
queries.
|
||||
|
||||
* Startup wizard ("Welcome to Firewall Builder") has been removed. The
|
||||
GUI now starts either into an empty database or opens data file
|
||||
specified on the command line.
|
||||
|
||||
* Keeping track of dependencies between objects. This is useful when
|
||||
many firewalls in the tree use the same set of objects. Each firewall
|
||||
object keeps track of objects it depends on, so if any object is
|
||||
modified, all firewalls that use it in their rules are marked with
|
||||
bold font to indicate that they need to be recompiled. Object
|
||||
dependencies are tracked not only when objects are directly used in
|
||||
rules, but also when they apepar there indirectly, as members of
|
||||
groups
|
||||
|
||||
* Added bulk compile and install operations. This is useful when there
|
||||
are many firewalls in the tree that need to be compiled and installed
|
||||
in one go. Bulk install operation is only possible if all firewalls
|
||||
use the same user name and password for authentication. If this is not
|
||||
the case, built-in installer can be instructed to ask for the
|
||||
authentication information before it touches each firewall.
|
||||
|
||||
* All object dialogs have been converted into built-in panels that
|
||||
appear in the right hand part of the main window. This simplifies
|
||||
navigation ( pop-up dialogs used to obscure parts of the main window).
|
||||
Objects open in the editor on a single mouse click in the tree and
|
||||
rules.
|
||||
|
||||
* Improvements in "Find" function: administrator can now drag an object
|
||||
into a well in the find dialog panel to make it search for this
|
||||
particular object. This is useful if the name of the obejct is not
|
||||
unique. Search by object's name or a value of its attribute is also
|
||||
possible.
|
||||
|
||||
* In addition to the "Find" function, the "Find and replace" operation
|
||||
has been implemented. Objects can be found and replaced in groups and
|
||||
firewall rules
|
||||
|
||||
New object types, new rule types and rule elements, new actions and other new
|
||||
features
|
||||
|
||||
* AddressTable This object resolves to a set of IP addresses defined in
|
||||
an external file. The object can be configured to read the file at
|
||||
compile time or at run time. For each compile-time AddressTable object
|
||||
defined in the object tree compiler tries to find and read the file
|
||||
specified in the object configuration. Compiler aborts processing if
|
||||
the file can not be found or can not be read. If the file is in place
|
||||
and can be read, such AddressTable object behaves as if it was a group
|
||||
of IP address objects, that is, all addresses are explicitly copied
|
||||
into generated configuration, although compiler may use target
|
||||
firewall syntax that helps to group such sets of addresses into
|
||||
tables. Compilers for iptables, ipfw, ipf and PIX generate bunch of
|
||||
rules matching each address read from the file. Compiler for PF
|
||||
creates a table and also lists all IP addresses it reads from the
|
||||
file; it uses the name of the AddressTable object for the name of the
|
||||
table it creates.
|
||||
|
||||
Run-time AddressTable objects are only supported by compilers for
|
||||
iptables and PF. Compiler for iptables generates shell code to read
|
||||
the contents of the file when firewall configuration is activated.
|
||||
Compiler for PF uses native "table <name> persist file <file_name>"
|
||||
syntax. Here also the name of the table is the same as the name of the
|
||||
AddressTable object it was created for.
|
||||
|
||||
* DNSName: This object resolves a host name to the IP address using
|
||||
DNS. Object can be confgiured to do so at compile time or run time.
|
||||
Resolution is done using system call gethostbyaddr() to read DNS A
|
||||
records for the name. System resolver should take care of recursion
|
||||
and CNAME records, if any. If the name resolves to several IP
|
||||
addresses, all addresses are used in the generated firewall
|
||||
configuration. Run-time DNSName objects rely on the target firewall
|
||||
software to be able to convert symbolic names used in rules into
|
||||
actual IP addresses at a time when policy is activated. Not all
|
||||
platforms provide means to support run-time DNSName objects.
|
||||
|
||||
* TagService: This object matches tags set by action Tag. It is
|
||||
translated into --mark <mark_code> for iptables and tag option for PF.
|
||||
This service object is only supported by compilers for iptables and
|
||||
PF.
|
||||
|
||||
* Interface objects can now have an attribute to mark them as bridge
|
||||
ports, used for bridging firewalls.
|
||||
|
||||
* Support for routing rules has been implemented using patch provided by
|
||||
Tidei Maurizio <fwbuilder-routing at compal.de> Support for routing
|
||||
rules is only implemented in compiler for iptables. See file
|
||||
README.routing included in fwbuilder2 package.
|
||||
|
||||
NOTE: I can only provide very limited support for this feature,
|
||||
please direct your questions and bugreports to the author
|
||||
|
||||
* Global policy and interface policies have been merged. Each policy
|
||||
rule now has rule element "Interface". Administrator can drag and drop
|
||||
interface object of the firewall into this rule element field. Policy
|
||||
compilers support multiple interfaces and negation in "Interface" rule
|
||||
element. Rule element "direction" that previously was only part of the
|
||||
interface policy rules is now part of all policy rules.
|
||||
|
||||
* Policy rules can have the following new actions:
|
||||
|
||||
* Queue: This action passes the packet to user space process for
|
||||
inspection, it is translated into QUEUE for iptables and divert
|
||||
for ipfw. This action is only supported by compilers for iptables
|
||||
and ipfw..
|
||||
|
||||
* Custom: This action allows administrator to define arbitrary
|
||||
piece of code to be used in place of an action. Supported by
|
||||
compilers for iptables, ipf and ipfw
|
||||
|
||||
* Branch: This action is used to create a branch in the rule set.
|
||||
It works on target platforms that provide suitable syntax and
|
||||
allow control to return to the higher level rule set if the
|
||||
branch can not make final decision about the packet. For iptables
|
||||
this action is translated into user-defined chain. The name of
|
||||
the chain is the name of the branch choosen by administrator. For
|
||||
PF this action is translated into an anchor with the name the
|
||||
same as the name of the branch defined by the administrator. This
|
||||
action is only supported by compilers for iptables and PF.
|
||||
|
||||
Fig.1 Rule #0 of the global policy creates a branch with the name
|
||||
rule0_branch
|
||||
|
||||
* Tag: This action associates internal tag with the packet. Tag
|
||||
can later be inspected using service object TagService. This
|
||||
action is translated into MARK target with corresponding
|
||||
--set-mark parameter and optionally additional rule with CONNMARK
|
||||
--save-mark target for iptables. If option that activates
|
||||
CONNMARK target is used, compiler also adds a rule at the very
|
||||
top of the policy to restore the mark. Rules are placed in
|
||||
INPUT,OUTPUT and FORWARD chain of the "mangle" table, this
|
||||
ensures that DNAT happens before rules placed in the mangle table
|
||||
see the packet. PREROUTING chain in mangle table is executed
|
||||
before PREROUTING chain in the nat table, so placing tagging
|
||||
rules in the PREROUTING chain would make them fire before DNAT.
|
||||
POSTROUTING chain of the mangle table, as well as its FORWARD and
|
||||
OUTPUT chains, work before corresponding chains of the nat table.
|
||||
In all cases the goal is to make sure DNAT rules process the
|
||||
packet before, and SNAT rules process it after filtering and
|
||||
tagging rules.
|
||||
|
||||
For PF this action is translated into tag. Supported only by
|
||||
compilers for iptables and PF.
|
||||
|
||||
Fig.2 Example of a rule utilizing action Tag. To illustrate
|
||||
policy branches, this rule belongs to the branch with the name
|
||||
rule0_branch
|
||||
|
||||
* Classify: This action allows the firewall to define QoS class
|
||||
for the packet that matches the rule. It is translated into
|
||||
CLASSIFY for iptables, with parameter --set-class. For PF it is
|
||||
translated into queue; compiler for ipfw can use pipe, queue or
|
||||
divert depending on how the action is configured by the
|
||||
administrator in the GUI. This action is only supported by
|
||||
compilers for iptables, PF and ipfw.
|
||||
|
||||
* Route: This action makes the firewall to route the packet that
|
||||
matches the rule through an interface or a gateway specified in
|
||||
the parameters of the action. This action is translated into
|
||||
ROUTE target for iptables and route option for PF and ipfilter.
|
||||
Compilers for PF and ipfilter support fastroute, route-to,
|
||||
reply-to and dup-to options.
|
||||
|
||||
Fig.3 Rules #0 and #1 tag packets entering the firewall through
|
||||
interfaces eth0 and eth2; rules #3 and #4 help route reply
|
||||
packets back through the same interfaces
|
||||
|
||||
The GUI uses different names for the new actions depending on the
|
||||
target firewall platform to simplify adoption. For example, new action
|
||||
that created branch in rule set is called Chain for iptables firewalls
|
||||
and Anchor for PF fierwalls.
|
||||
|
||||
* Firewall object now has an attribute "inactive". Firewall marked as
|
||||
inactive will not be picked by the GUI for the bulk compile and
|
||||
install operations even if the timestamps indicate that this firewall
|
||||
object needs to be recompiled
|
||||
|
||||
Compiler for iptables
|
||||
|
||||
* Support for address tables loaded from external files at compile or
|
||||
run time
|
||||
|
||||
* Support user defined chains with predefined names (using special
|
||||
action )
|
||||
|
||||
* Support for CLASSIFY, MARK, CONNMARK, QUEUE, ROUTE targets
|
||||
|
||||
* Support for physdev module for bridging firewalls
|
||||
|
||||
* additional optimization of rules i INPUT and OUTPUT chain: now
|
||||
removing firewall object from src or dst to simplify rule if it uses
|
||||
OUTPUT or INPUT chain. Doing this only if original rule did not have
|
||||
negation and we do not add any virtual addresses for NAT. After
|
||||
removal the rule collapses to a simple command like this:
|
||||
|
||||
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT
|
||||
|
||||
|
||||
this works fine except if we have added virtual addresses for NAT. It
|
||||
is assumed that firewall object in rules represents combination of
|
||||
addresses configured in its interfaces in the GUI. Virtual addresses
|
||||
added for NAT are considered to be a side effect and connections
|
||||
should not be implicitly permitted to them by a rule with fw object in
|
||||
destination. The same applies to fw object in source. See bug #685947
|
||||
for discussion. To avoid inadvertently opening holes in the firewall
|
||||
by a rule like that, we remove fw object only when it is safe to do
|
||||
so.
|
||||
|
||||
* support for modules connlimit and hashlimit. There is an option to
|
||||
generate commands for the latter module using name dstlimit because
|
||||
older versions of iptables included this module under this (now
|
||||
obsolete) name.
|
||||
|
||||
Compiler for PF
|
||||
|
||||
* Support for load balancing rules
|
||||
* Support for tag and route options
|
||||
* Support for address ranges and networ objects in TSrc in NAT rules
|
||||
* Support for pool types in NAT rules ('bitmask', 'random',
|
||||
'source-hash', 'round-robin'), as well as 'static-port' option.
|
||||
* Supprot for anchors (by way of a special action)
|
||||
* Support for tables with predefined names (using AddressTable object)
|
||||
* Support for packet 'tagging' (by way of a special action and service
|
||||
object TagService)
|
||||
|
||||
Compiler for ipfilter
|
||||
|
||||
* Support for PPTP and IRC proxies
|
||||
* Support for route option
|
||||
|
||||
API
|
||||
|
||||
* internal object ID is augumented with process ID of the program that
|
||||
creates an object. This allows fwbedit to quickly create objects and
|
||||
still ensure their IDs are unique
|
||||
* fwbedit
|
||||
|
||||
Fwbedit can now create objects and repair broken object database. This
|
||||
tool can now be used to populate object database using shell scripts or
|
||||
other automation. For example, to create an address object in object
|
||||
library 'Test' one could run it like this:
|
||||
|
||||
fwbedit -f filename.fwb -t IPv4 -n newAddress -L Test -o 192.0.2.1
|
||||
|
||||
Firewall Builder: general purpose object tree editing tool
|
||||
Version 2.1.5-b
|
||||
Usage: fwbedit21 -f filename.fwb -u [-a obj,grp] [-r obj,grp] [-d obj] [-s] [-l path] [(-p parent|-L library) -t objtype -n objname [-o object attributes]]
|
||||
|
||||
-t objtype : create an object of this type
|
||||
-L library : specify library when creating a new object
|
||||
-p obj : specify parent object when creating a new object
|
||||
-n name : specify a name of the new object
|
||||
-o attribute1[,attribute2...] : specify attributes when creating a new object
|
||||
-a obj,grp : create reference to object 'obj' in the group 'grp'
|
||||
-r obj,grp : remove reference to object 'obj' from the group 'grp'
|
||||
-d obj : delete object 'obj' and remove references to it from
|
||||
all rules and groups
|
||||
-l path : print list of objects for 'path'
|
||||
-s : test and repair object tree structure
|
||||
-u : autoupgrade of file
|
||||
|
||||
An object and a group can be defined by their ID or
|
||||
by the full path and name in the XML tree
|
||||
|
||||
Object creation syntax:
|
||||
|
||||
-t Firewall -n obj_name -L User -o platform, host OS
|
||||
-t IPv4 -n obj_name -L User -o IP address
|
||||
-t DNSName -n obj_name -L User -o DNS record,run time
|
||||
-t AddressRange -n obj_name -L User -o start address, end address
|
||||
-t ObjectGroup
|
||||
-t Network -n obj_name -L User -o address,netmask
|
||||
-t Interval -n obj_name -L User -o start time,start date,start day,end time, end date, end day
|
||||
-t Interface -n obj_name -L User -o security level,address type (dynamic or unnumbered),management
|
||||
-t Host
|
||||
-t TCPService -n obj_name -L User -o source port range start,end,Destination port range start,end,UAPRSF,UAPRSF
|
||||
-t UDPService -n obj_name -L User -o source port range start,end,Destination port range start,end
|
||||
-t ICMPService -n obj_name -L User -o ICMP type,ICMP code
|
||||
-t IPService -n obj_name -L User -o protocol number,lsrr/ssrr/rr/ts/fragm/short_fragm
|
||||
|
||||
@@ -0,0 +1,97 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
|
||||
<link rel="stylesheet" type="text/css" href="http://www.fwbuilder.org/pages/fwbuilder.css">
|
||||
</head>
|
||||
<body>
|
||||
<h1> Firewall Builder Release Notes </h1>
|
||||
<br>
|
||||
<h2> Version 2.1.8 </h2>
|
||||
<br>
|
||||
<p>
|
||||
Released 12/02/2006
|
||||
<br>
|
||||
<b>GUI and compilers v2.1.8 require API library libfwbuilder version 2.1.8</b>
|
||||
<br>
|
||||
<h2>Summary </h2>
|
||||
<p>
|
||||
|
||||
<p>
|
||||
<b>For those who wish to build from source, instructions are outlined
|
||||
in the document "Install and Build instructions" on our web site <a
|
||||
href="http://www.fwbuilder.org/archives/cat_installation.html">here</a></b>
|
||||
|
||||
|
||||
<h2>Installation</h2>
|
||||
|
||||
<p>
|
||||
<b>
|
||||
Optinon poll ran on the fwbuilder-discussion mailing list showed
|
||||
that majority of users are not interested in ability to install and
|
||||
run both fwbuilder 2.0 and 2.1 on the same machine at the same
|
||||
time. Hence we are reverting to the old naming schema without suffix
|
||||
'21' for the binaries and man pages in this release.
|
||||
</b>
|
||||
</p>
|
||||
|
||||
<h2>Improvements and bug fixes in the GUI</h2>
|
||||
<ul>
|
||||
|
||||
<li>The user can search for objects using regular expressions
|
||||
matching their names or attributes.
|
||||
<p>
|
||||
</p>
|
||||
</li>
|
||||
|
||||
<li>Fixed bug #1592130: "Policy Chaining Issues". The GUI should
|
||||
properly display nested branch rulesets. The user can create
|
||||
policy branches within other branches.
|
||||
</li>
|
||||
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>All compilers</h2>
|
||||
|
||||
<ul>
|
||||
<li>Fixed bug #1590746 "problem with using "DNS Names" objects on MS
|
||||
Windows". Compiler failed to convert DNSName objects set to resolve
|
||||
at compile time into IP addresses.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<h2>Compiler for iptables</h2>
|
||||
<ul>
|
||||
<li>fixed bug #1593221: "iptables filtering bridge problem - PHYSDEV:
|
||||
no physdev opti..." Some times rules were generated with "-m
|
||||
physdev" but witout "--physdev-in" or "--physdev-out" options.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2>Compiler for Cisco PIX</h2>
|
||||
<ul>
|
||||
|
||||
<li>fixed a bug (no num, support req. #1604103: "fwb_pix policy
|
||||
compiler dies when SNMP or NTP hosts defined". Compiler did not
|
||||
print error message when it could not find an interface with
|
||||
network zone matching IP address of NTP or SNMP server (it just
|
||||
printed the address without explanation of what went wrong)
|
||||
</li>
|
||||
|
||||
<li>Experimental utility <b>fwb_pix_diff</b> has been added to the
|
||||
package. This utility takes two PIX configurations on the command
|
||||
line and produces the 'diff' that consists of a set of commands
|
||||
that should bring the firewall from the state defined by the first
|
||||
config to the state defined by the second. Only PIX 7.0 is
|
||||
supported. This utility will be incorporated into policy installer
|
||||
in the future to make policy updates simpler and faster,
|
||||
especially when small changes are made to the large set of access
|
||||
lists and nat rules.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,56 @@
|
||||
Firewall Builder Release Notes
|
||||
|
||||
Version 2.1.8
|
||||
|
||||
Released 12/02/2006
|
||||
GUI and compilers v2.1.8 require API library libfwbuilder version 2.1.8
|
||||
|
||||
Summary
|
||||
|
||||
For those who wish to build from source, instructions are outlined in the
|
||||
document "Install and Build instructions" on our web site here
|
||||
|
||||
Installation
|
||||
|
||||
Optinon poll ran on the fwbuilder-discussion mailing list showed that
|
||||
majority of users are not interested in ability to install and run both
|
||||
fwbuilder 2.0 and 2.1 on the same machine at the same time. Hence we are
|
||||
reverting to the old naming schema without suffix '21' for the binaries
|
||||
and man pages in this release.
|
||||
|
||||
Improvements and bug fixes in the GUI
|
||||
|
||||
* The user can search for objects using regular expressions matching
|
||||
their names or attributes.
|
||||
|
||||
* Fixed bug #1592130: "Policy Chaining Issues". The GUI should properly
|
||||
display nested branch rulesets. The user can create policy branches
|
||||
within other branches.
|
||||
|
||||
All compilers
|
||||
|
||||
* Fixed bug #1590746 "problem with using "DNS Names" objects on MS
|
||||
Windows". Compiler failed to convert DNSName objects set to resolve at
|
||||
compile time into IP addresses.
|
||||
|
||||
Compiler for iptables
|
||||
|
||||
* fixed bug #1593221: "iptables filtering bridge problem - PHYSDEV: no
|
||||
physdev opti..." Some times rules were generated with "-m physdev" but
|
||||
witout "--physdev-in" or "--physdev-out" options.
|
||||
|
||||
Compiler for Cisco PIX
|
||||
|
||||
* fixed a bug (no num, support req. #1604103: "fwb_pix policy compiler
|
||||
dies when SNMP or NTP hosts defined". Compiler did not print error
|
||||
message when it could not find an interface with network zone matching
|
||||
IP address of NTP or SNMP server (it just printed the address without
|
||||
explanation of what went wrong)
|
||||
* Experimental utility fwb_pix_diff has been added to the package. This
|
||||
utility takes two PIX configurations on the command line and produces
|
||||
the 'diff' that consists of a set of commands that should bring the
|
||||
firewall from the state defined by the first config to the state
|
||||
defined by the second. Only PIX 7.0 is supported. This utility will be
|
||||
incorporated into policy installer in the future to make policy
|
||||
updates simpler and faster, especially when small changes are made to
|
||||
the large set of access lists and nat rules.
|
||||
@@ -0,0 +1,187 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
|
||||
<link rel="stylesheet" type="text/css" href="http://www.fwbuilder.org/pages/fwbuilder.css">
|
||||
</head>
|
||||
<body>
|
||||
<h1> Firewall Builder Release Notes </h1>
|
||||
<br>
|
||||
<h2> Version 2.1.9 </h2>
|
||||
<br>
|
||||
<p>
|
||||
Released 02/10/2007
|
||||
<br>
|
||||
<b>GUI and compilers v2.1.9 require API library libfwbuilder version 2.1.9</b>
|
||||
<br>
|
||||
<h2>Summary </h2>
|
||||
<p>
|
||||
This is bugfix release.
|
||||
|
||||
<p>
|
||||
<b>For those who wish to build from source, instructions are outlined
|
||||
in the document "Install and Build instructions" on our web site <a
|
||||
href="http://www.fwbuilder.org/archives/cat_installation.html">here</a></b>
|
||||
|
||||
|
||||
|
||||
<h2>Improvements and bug fixes in the GUI</h2>
|
||||
<ul>
|
||||
|
||||
<li>New feature: new operation "Tools/Find Conflicting Objects in
|
||||
Two Data Files". This operation inspects two data files (either
|
||||
.fwb or .fwl) and finds conflicting objects. Conflicting objects
|
||||
have the same internal ID but different attributes. Two data files
|
||||
can not be merged, or one imported into another, if they contain
|
||||
such objects. This operation also helps identify changes made to
|
||||
objects in two copies of the same data file. This operation does
|
||||
not find objects present in one file but not in the other, such
|
||||
objects present no problem for merge or import operations. This
|
||||
operation works with two external files, neither of which needs to
|
||||
be opened in the program. Currently opened data file is not
|
||||
affected by this operation and objects in the tree do not
|
||||
change. In the process of this operation user is presented with
|
||||
series of dialogs showing conflicting objects side by side. In the
|
||||
end the program can generate report and write it to a text
|
||||
file.</li>
|
||||
|
||||
|
||||
<li>installOptionsDialog was too large and did not fit on some
|
||||
laptop screens. Doing tricks to make sure the dialog properly
|
||||
resized after unused GUI elements are hidden.
|
||||
</li>
|
||||
|
||||
<li>bug #1629521: "can't delete empty chain/policy tab"</li>
|
||||
|
||||
<li>bug #1619842: "prolog "script editor" opens behind other
|
||||
windows"</li>
|
||||
|
||||
<li>bug #1620206: "RuleOptions' "Apply" button greyed-out until menu
|
||||
selection"</li>
|
||||
|
||||
<li>bug 1619930: "Prolog tab's ScriptEditor's import fails to
|
||||
overwrite"</li>
|
||||
|
||||
<li>bug #1617501:"Install fails after compile". The GUI got confused
|
||||
when user enter full path to the policy file in the "Output file
|
||||
name" input field in the "Compiler" tab of firewall object
|
||||
dialog. Making sure we always strip directory path from the file
|
||||
name if user specified full path for the policy file in the
|
||||
"Output file name" input field in the "Compiler" tab of firewall
|
||||
object dialog. Need to strip path when macro "%FWSCRIPT%" is
|
||||
substituted in installation scriptlets and in some other
|
||||
places.</li>
|
||||
|
||||
<li>"Apply" and "Close" buttons in the objct editor panel should be
|
||||
of fixed size horizontally</li>
|
||||
|
||||
<li>bug #1624577: "group window doesn't stay open on
|
||||
multiple-adds". Using special flag to tell ObjectTreeView that it
|
||||
should ignore MouseReleaseEvent it gets after d&d operation, so it
|
||||
wont switch object in the editor panel. Note the bug triggered
|
||||
only on Mac OS X.</li>
|
||||
|
||||
<li>bug (no num.): GUI used show fanthom 'Policy', 'NAT' and
|
||||
'Routing' tabs when user deleted objects from the Deleted Objects
|
||||
library, provided some of these objects were previously deleted
|
||||
firewalls.</li>
|
||||
|
||||
<li>bug #1620284: "conflict when adding library to
|
||||
Preferences/Libraries". When the user tried to add a library to
|
||||
the list in Preferemces/Libraries when a data file with the same
|
||||
object library was loaded, the GUI detected the conflict and
|
||||
showed error dialog.</li>
|
||||
|
||||
<li>bug #1650369: "[patch] please add support for
|
||||
GNU/kFreeBSD". Applied patch to make code compile on kFreeBSD.</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
|
||||
<h2>Compiler for iptables</h2>
|
||||
<ul>
|
||||
<li>bug #1623338: "Can not disable rules in a branch". Compiler for
|
||||
iptables ignored flag 'disabled' on rules in a branch.
|
||||
</li>
|
||||
|
||||
<li>bug #1623113: 'connlimit fails in compiled "address table"
|
||||
rules' Module connlimit can only be used in iptables rules
|
||||
matching TCP services. Such iptables commands have "-p tcp"
|
||||
and/or "-m tcp" options. If a rule in fwbuilder uses TCP Service
|
||||
and connlimit option and has multiple objects in src and dst,
|
||||
optimizer used to split it to minimize matches. It however
|
||||
preserved connlimit option in all subrules, even though some of
|
||||
them did not have TCP service after the split. This lead to
|
||||
generation of incorrect iptables commands.</li>
|
||||
|
||||
<li>bug #1620925: "compile-time AddressTable object with empty
|
||||
file". Compile-time AddressTable object that uses file with no
|
||||
addresses should be treated as an empty group according to the
|
||||
"Ignore empty groups" option.</li>
|
||||
|
||||
<li>bug #1618381: "CLASSIFY/MARK are non-terminating". This bug
|
||||
report in fact reported several problems.
|
||||
<p>
|
||||
<ul>
|
||||
<li>For action Branch with option to add branching rule to the
|
||||
mangle table: we now generate rules in PREROUTING,
|
||||
POSTROUTING, INPUT, OUTPUT and FORWARD chains. This is
|
||||
because some targets can only work in PREROUTING or
|
||||
POSTROUTING chains but we do not know what rules will user
|
||||
put in the branch. So we need to branch in all chains
|
||||
</li>
|
||||
|
||||
<li>For rules in mangle table with direction set to Inbound or
|
||||
Outbound force chain to PREROUTING or POSTROUTING
|
||||
respectively early. This eliminates duplicates such as the
|
||||
same rule in PREROUTING and INPUT chains. Also since most
|
||||
(all?) targets that require mangle table go into either
|
||||
PREROUTING or POSTROUTING chains, it should be enough to use
|
||||
these two chains.
|
||||
</li>
|
||||
|
||||
<li>Non-terminating rules shadow each other "backwards", that
|
||||
is more general rule shadows other rules _above_ it. Added
|
||||
flag 'reverse' to the method find_more_general_rule and
|
||||
added new rule processor
|
||||
DetectShadowingForNonTerminatingRules that finds such cases
|
||||
of 'reverse' shadowing. Using it for rules in the mangle
|
||||
table for iptables.
|
||||
</li>
|
||||
|
||||
<li>Adding iptables rule with target ACCEPT to emulate
|
||||
terminating behavior for Tag and Classify actions. Emulation
|
||||
is controlled by a global option in the "Compiler" tab of
|
||||
the firewall properties dialog (default is "off"). This
|
||||
means emulation can be turned on and off for all rules that
|
||||
might require it at once. It is impossible to mix such rules
|
||||
with terminating and non-termninating behavior. The reason
|
||||
for this is that shadowing detection algorithm can only work
|
||||
with either terminating or non-terminating rules, not with
|
||||
the mix. </li>
|
||||
|
||||
</ul>
|
||||
</p>
|
||||
</li>
|
||||
|
||||
<li>bug #1628989: "run-time-loaded rules don't accept ";" as line
|
||||
comment"</li>
|
||||
|
||||
<li>bug #1632054: "Runtime AddressObjects FAIL to load if "Name:"
|
||||
contains "."". Compiler checks if the name of the run-time
|
||||
AddressTable object contains characters that have special meaning
|
||||
in sheel and relaces them with '_' when it generates the name of
|
||||
the temporary shell variable.</li>
|
||||
|
||||
<li>bug (no num.): data files used for run-time AddressTable objects
|
||||
can have empty lines, the script should skip them.</li>
|
||||
|
||||
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,118 @@
|
||||
Firewall Builder Release Notes
|
||||
|
||||
Version 2.1.9
|
||||
|
||||
Released 02/10/2007
|
||||
GUI and compilers v2.1.9 require API library libfwbuilder version 2.1.9
|
||||
|
||||
Summary
|
||||
|
||||
This is bugfix release.
|
||||
|
||||
For those who wish to build from source, instructions are outlined in the
|
||||
document "Install and Build instructions" on our web site here
|
||||
|
||||
Improvements and bug fixes in the GUI
|
||||
|
||||
* New feature: new operation "Tools/Find Conflicting Objects in Two Data
|
||||
Files". This operation inspects two data files (either .fwb or .fwl)
|
||||
and finds conflicting objects. Conflicting objects have the same
|
||||
internal ID but different attributes. Two data files can not be
|
||||
merged, or one imported into another, if they contain such objects.
|
||||
This operation also helps identify changes made to objects in two
|
||||
copies of the same data file. This operation does not find objects
|
||||
present in one file but not in the other, such objects present no
|
||||
problem for merge or import operations. This operation works with two
|
||||
external files, neither of which needs to be opened in the program.
|
||||
Currently opened data file is not affected by this operation and
|
||||
objects in the tree do not change. In the process of this operation
|
||||
user is presented with series of dialogs showing conflicting objects
|
||||
side by side. In the end the program can generate report and write it
|
||||
to a text file.
|
||||
* installOptionsDialog was too large and did not fit on some laptop
|
||||
screens. Doing tricks to make sure the dialog properly resized after
|
||||
unused GUI elements are hidden.
|
||||
* bug #1629521: "can't delete empty chain/policy tab"
|
||||
* bug #1619842: "prolog "script editor" opens behind other windows"
|
||||
* bug #1620206: "RuleOptions' "Apply" button greyed-out until menu
|
||||
selection"
|
||||
* bug 1619930: "Prolog tab's ScriptEditor's import fails to overwrite"
|
||||
* bug #1617501:"Install fails after compile". The GUI got confused when
|
||||
user enter full path to the policy file in the "Output file name"
|
||||
input field in the "Compiler" tab of firewall object dialog. Making
|
||||
sure we always strip directory path from the file name if user
|
||||
specified full path for the policy file in the "Output file name"
|
||||
input field in the "Compiler" tab of firewall object dialog. Need to
|
||||
strip path when macro "%FWSCRIPT%" is substituted in installation
|
||||
scriptlets and in some other places.
|
||||
* "Apply" and "Close" buttons in the objct editor panel should be of
|
||||
fixed size horizontally
|
||||
* bug #1624577: "group window doesn't stay open on multiple-adds". Using
|
||||
special flag to tell ObjectTreeView that it should ignore
|
||||
MouseReleaseEvent it gets after d&d operation, so it wont switch
|
||||
object in the editor panel. Note the bug triggered only on Mac OS X.
|
||||
* bug (no num.): GUI used show fanthom 'Policy', 'NAT' and 'Routing'
|
||||
tabs when user deleted objects from the Deleted Objects library,
|
||||
provided some of these objects were previously deleted firewalls.
|
||||
* bug #1620284: "conflict when adding library to Preferences/Libraries".
|
||||
When the user tried to add a library to the list in
|
||||
Preferemces/Libraries when a data file with the same object library
|
||||
was loaded, the GUI detected the conflict and showed error dialog.
|
||||
* bug #1650369: "[patch] please add support for GNU/kFreeBSD". Applied
|
||||
patch to make code compile on kFreeBSD.
|
||||
|
||||
Compiler for iptables
|
||||
|
||||
* bug #1623338: "Can not disable rules in a branch". Compiler for
|
||||
iptables ignored flag 'disabled' on rules in a branch.
|
||||
* bug #1623113: 'connlimit fails in compiled "address table" rules'
|
||||
Module connlimit can only be used in iptables rules matching TCP
|
||||
services. Such iptables commands have "-p tcp" and/or "-m tcp"
|
||||
options. If a rule in fwbuilder uses TCP Service and connlimit option
|
||||
and has multiple objects in src and dst, optimizer used to split it to
|
||||
minimize matches. It however preserved connlimit option in all
|
||||
subrules, even though some of them did not have TCP service after the
|
||||
split. This lead to generation of incorrect iptables commands.
|
||||
* bug #1620925: "compile-time AddressTable object with empty file".
|
||||
Compile-time AddressTable object that uses file with no addresses
|
||||
should be treated as an empty group according to the "Ignore empty
|
||||
groups" option.
|
||||
* bug #1618381: "CLASSIFY/MARK are non-terminating". This bug report in
|
||||
fact reported several problems.
|
||||
|
||||
* For action Branch with option to add branching rule to the mangle
|
||||
table: we now generate rules in PREROUTING, POSTROUTING, INPUT,
|
||||
OUTPUT and FORWARD chains. This is because some targets can only
|
||||
work in PREROUTING or POSTROUTING chains but we do not know what
|
||||
rules will user put in the branch. So we need to branch in all
|
||||
chains
|
||||
* For rules in mangle table with direction set to Inbound or
|
||||
Outbound force chain to PREROUTING or POSTROUTING respectively
|
||||
early. This eliminates duplicates such as the same rule in
|
||||
PREROUTING and INPUT chains. Also since most (all?) targets that
|
||||
require mangle table go into either PREROUTING or POSTROUTING
|
||||
chains, it should be enough to use these two chains.
|
||||
* Non-terminating rules shadow each other "backwards", that is more
|
||||
general rule shadows other rules _above_ it. Added flag 'reverse'
|
||||
to the method find_more_general_rule and added new rule processor
|
||||
DetectShadowingForNonTerminatingRules that finds such cases of
|
||||
'reverse' shadowing. Using it for rules in the mangle table for
|
||||
iptables.
|
||||
* Adding iptables rule with target ACCEPT to emulate terminating
|
||||
behavior for Tag and Classify actions. Emulation is controlled by
|
||||
a global option in the "Compiler" tab of the firewall properties
|
||||
dialog (default is "off"). This means emulation can be turned on
|
||||
and off for all rules that might require it at once. It is
|
||||
impossible to mix such rules with terminating and
|
||||
non-termninating behavior. The reason for this is that shadowing
|
||||
detection algorithm can only work with either terminating or
|
||||
non-terminating rules, not with the mix.
|
||||
|
||||
* bug #1628989: "run-time-loaded rules don't accept ";" as line comment"
|
||||
* bug #1632054: "Runtime AddressObjects FAIL to load if "Name:" contains
|
||||
"."". Compiler checks if the name of the run-time AddressTable object
|
||||
contains characters that have special meaning in sheel and relaces
|
||||
them with '_' when it generates the name of the temporary shell
|
||||
variable.
|
||||
* bug (no num.): data files used for run-time AddressTable objects can
|
||||
have empty lines, the script should skip them.
|
||||
@@ -0,0 +1,335 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
|
||||
<link rel="stylesheet" type="text/css" href="http://www.fwbuilder.org/pages/fwbuilder.css">
|
||||
</head>
|
||||
<body>
|
||||
<h1> Firewall Builder Release Notes </h1>
|
||||
<br>
|
||||
<h2> Version 2.0 </h2>
|
||||
<br>
|
||||
<p>
|
||||
Released 07/28/04
|
||||
<br>
|
||||
<b>GUI and compilers v2.0 require API library libfwbuilder version 2.0</b>
|
||||
<br>
|
||||
<h2>Summary </h2>
|
||||
<p>
|
||||
|
||||
<b>Firewall Builder GUI v2.0 has been completely rewritten using QT</b>
|
||||
<p>
|
||||
<b>For those who wish to build from source, instructions are outlined
|
||||
in <a
|
||||
href="http://www.fwbuilder.org/archives/cat_installation.html">"Install
|
||||
and Build instructions"</a></b>
|
||||
|
||||
<h2>What's new</h2>
|
||||
<p>
|
||||
The GUI has been rewritten from scratch. The new GUI is based on
|
||||
QT 3.x. It has been tested with Qt v3.1.1, 3.2.3 and 3.3.1. We
|
||||
build on RedHat 9.0, Mandrake 10, SuSE 9.1, FreeBSD 5.2 using QT
|
||||
packages that come with these systems.
|
||||
|
||||
<p>The GUI has been redesigned to addresses problems known to
|
||||
exist in fwbuilder 1.1.x user interface:
|
||||
|
||||
<ul>
|
||||
<li>Speed imporevements in the GUI. Firewall policy that consist
|
||||
of 1000 rules renders just as fast as policy that has only 10
|
||||
rules. The GUI has actually been tested with 1000 rules
|
||||
policies.</li>
|
||||
|
||||
<li>Object tree is not synchronized with firewall policy
|
||||
view. Selecting an object in the tree does not immediately open
|
||||
it in the right hand panel in the main window. Right hand side
|
||||
panel is dedicated for the policy view and always shows policy
|
||||
or NAT rules of the firewall selected in the pull-down menu
|
||||
above it. Editing of all objects is done in a separate floating
|
||||
editor window that can be kept open at all times.
|
||||
</li>
|
||||
|
||||
<li>Properties of an object selected in the tree or in any rule
|
||||
are shown in the information panel under the tree. The size of
|
||||
the panel can be changed; the panel has three modes of
|
||||
operation: a) hidden, b) showing only comment associated with
|
||||
selected object, c) showing its parameters and comment. User can
|
||||
choose the mode by clilcking on the toolbar button under the
|
||||
information panel.</li>
|
||||
|
||||
<li>"Find object" function finds obejcts by their name in the
|
||||
tree, in groups and in rules. Regular expressions are
|
||||
recognized.</li>
|
||||
|
||||
<li>Built-in version control based on RCS provides for a simple
|
||||
way to track changes.</li>
|
||||
|
||||
<li>Data file can be opened read-only for inspection. If the
|
||||
file is checked out and locked by a different user, it can only
|
||||
be opened read-only.</li>
|
||||
|
||||
<li>Data file can be given on the command line without "-f"
|
||||
switch. The "-f" is also supported for backwards
|
||||
compatibility. </li>
|
||||
|
||||
<li>The program does not make copies of standard objects in user
|
||||
data file anymore (per Feature Request #810504 "'Standard'
|
||||
definitions should not be saved" )</li>
|
||||
|
||||
<li>Users can create and distribute their own libraries of
|
||||
objects. The GUI allows for objects to be exported to external
|
||||
library file with extension .fwl and imported from such
|
||||
file.</li>
|
||||
|
||||
<li>Objects in the 'Standard' objects library, as well as
|
||||
objects in libraries imported from external files, are
|
||||
read-only</li>
|
||||
|
||||
<li>Added an option for autosave - if this option is turned on,
|
||||
the gui periodically saves data to the file. The autosave
|
||||
interval can be set between 1 minute and 2 hours.</li>
|
||||
|
||||
<li>The GUI detects collisions between objects when external
|
||||
library is imported. Collision is detected when any attribute of
|
||||
an objects in the tree is different from that attribute in the
|
||||
object with the same unique ID in the file being imported. Some
|
||||
old data files may trigger collisions because of subtle
|
||||
differences in comments</li>
|
||||
|
||||
<li>Whenever user changes the name of a firewall, host or an
|
||||
interface object, the GUI asks whether they want to also rename
|
||||
all IP and MAC addresses that belong to that firewall or
|
||||
host. If user agrees to rename them, the program generates names
|
||||
automatically using scheme 'host_name:interface_name:ip' and
|
||||
'host_name:interface_name:mac'</li>
|
||||
|
||||
<li>Deleted objects are moved to a special library and can be
|
||||
recovered with "Undelete" operation</li>
|
||||
|
||||
<li>Rules can be color-labeled in all policies.</li>
|
||||
|
||||
<li>Window size and position is remembered across multiple
|
||||
sessions for all dialogs.</li>
|
||||
|
||||
<li>Two modes of drag-and-drop of objects in policy and NAT
|
||||
rules: dragging of an object moves it; dragging of an object
|
||||
with Ctrl key pressed copies it</li>
|
||||
|
||||
<li>Multiple objects can be selected in the tree. Operations
|
||||
such as duplication, moving between libraries, copy/paste can be
|
||||
performed on multiple selected objects</li>
|
||||
|
||||
<li>Multiple rules can also be selected for operations such as
|
||||
moving, deleting, copy/paste, setting colors</li>
|
||||
|
||||
<li>A collection of firewall template objects comes in a
|
||||
separate XML file with the package. You can create a new
|
||||
firewall object using one for these templates. This replaced
|
||||
"help me build firewall" wizard. </li>
|
||||
|
||||
<li>The "Help me build firewall policy" wizard was phased out
|
||||
and replaced with firewall templates. The template library will
|
||||
be extended in the future releases.</li>
|
||||
|
||||
<li>GUI has a built-in installer that uses external ssh client
|
||||
to communicate with firewall. Installer has simple GUI interface
|
||||
and works on both Linux and Windows (uses putty or SecureCRT on
|
||||
Windows). There is no need in external install script
|
||||
fwb_install anymore.</li>
|
||||
|
||||
<li>An option has been added to firewall platforms iptables,
|
||||
ipfilter, pf and ipfw that sets up a policy rule to permit ssh
|
||||
access from one specified IP address to the firewall regardless
|
||||
of other rules. This is for a backup ssh access from the
|
||||
management workstation in case of an error in the policy that
|
||||
locks user out of the firewall. The option (a checkbox and entry
|
||||
field for the management station address) is located in the
|
||||
"Compiler" tab of the firewall settings dialog. A command that
|
||||
permits ssh to the firewall from the given address is added on
|
||||
top of all other rules.</li>
|
||||
|
||||
<li>Packages for Windows 2000, Windows XP and Mac OS X will be
|
||||
distributed under a different license.</li>
|
||||
|
||||
<li>The build process is based on qmake and uses autoconf
|
||||
sparingly. Libtool is not used at all.</li>
|
||||
|
||||
<li>Internationalization is done using gettext 0.14.1 which
|
||||
supports QT .qm files</li>
|
||||
|
||||
<li>Reasonably complete French translation is provided.</li>
|
||||
|
||||
<li>Object names and comments are stored in the object file in
|
||||
UTF-8 format. This allows for names and comments to be entered
|
||||
and displayed in local languages. Although object names can be
|
||||
localized, it is recommended to keep firewall names in plain
|
||||
ASCII because compilers do not support UTF-8 yet. This fixes
|
||||
very old bug #657156: "Special characters problem".</li>
|
||||
|
||||
<li>Code compiles with gcc 3.4</li>
|
||||
</ul>
|
||||
<br>
|
||||
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<h2>New firewall platforms and new features that apply to all
|
||||
platforms:</h2>
|
||||
<ul>
|
||||
<li>
|
||||
Added support for Linksys devices running Sveasoft
|
||||
firmware. Firewall object should be configured as platform
|
||||
"iptables", host OS "linksys". Policy installer works both
|
||||
using password and public key authentication.</li>
|
||||
|
||||
<li>Added an option to firewall platforms iptables, ipfilter, pf
|
||||
and ipfw that sets up a policy rule to permit ssh access from
|
||||
one specified IP address to the firewall regardless of other
|
||||
rules. This is for a backup ssh access from the management
|
||||
workstation in case of an error in the policy that locks user
|
||||
out of the firewall. The option (a checkbox and entry field for
|
||||
the management station address) is located in the "Compiler" tab
|
||||
of the firewall settings dialog. A command that permits ssh to
|
||||
the firewall from the given address is added on top of all other
|
||||
rules.</li>
|
||||
|
||||
<li>added attribute 'lastModified' to element FWBObjectDatabase
|
||||
in DTD. this attribute holds time of last modification done to
|
||||
any object in the database (GMT). Added support for this
|
||||
attribute in class FWObjectDatabase. This attribute is
|
||||
implied.</li>
|
||||
</ul>
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<hr>
|
||||
|
||||
<h2>Bugs fixed in libfwbuilder API:</h2>
|
||||
<ul>
|
||||
<li>fixed bug that appeared only when used with libxml2 2.6.6
|
||||
and libxslt 1.0.33 - '*Group' elements were not converted
|
||||
properly (losing all child elements). It worked on RH 9 with
|
||||
libxml2 2.5.4 and libxslt 1.0.27. Fix tested with libxml2 2.6.6
|
||||
and libxslt 1.0.33 on Fedora C1 </li>
|
||||
|
||||
<li>Method Firewall::duplicate replaces references to the
|
||||
firewall, its interfaces as well as IPv4 and physical addresses
|
||||
of the interfaces in all rule sets with references to the copies
|
||||
of corresponding objects. Now firewall created from another one
|
||||
using 'duplicate' does not reference interfaces or addresses
|
||||
that belong to the original firewall object. </li>
|
||||
|
||||
<li>bug #950857: "Incorrect conversion of address range" -
|
||||
address range that consisted of two IP addresses was converted
|
||||
to a set of networks incorrectly.</li>
|
||||
|
||||
<li>bug that occured on big endian architecture (e.g. Macintosh)
|
||||
because of incorrect usage of preprocessor directives to check
|
||||
BYTE_ORDER. This bug caused incorrect address arithmetics.</li>
|
||||
|
||||
<li>bug #906709: "A dynamic interface". Dynamic interface used
|
||||
to "shadow" old broadcast object (0.0.0.0)</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<h2>New features in iptables policy compiler fwb_ipt:</h2>
|
||||
<ul>
|
||||
<li>Feature Request #913273: make "assume fw is part of any" a
|
||||
per-rule option</li>
|
||||
|
||||
<li>Processing of policy rules where firewall object is used in
|
||||
src or dst with negation (possibly in combination with other
|
||||
objects) has been optimized. Before, generated script would
|
||||
match firewall's addresses in INPUT/OUTPUT and FORWARD chains
|
||||
which added redundant checks in the FORWARD chain.</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<h2>Bugs fixed in iptables policy compiler fwb_ipt:</h2>
|
||||
<ul>
|
||||
<li>
|
||||
bug #956544: "Error into load modules script generation",
|
||||
where generated script would not load kernel modules with
|
||||
names "module.ko.gz". Regular expression should match on
|
||||
".ko.*$" to find these modules properly. Thanks to Andrey
|
||||
Kaminsky <and@fao.lv> who pointed this out.
|
||||
</li>
|
||||
|
||||
<li>bug #934949: "duplicate rules". fwb_ipt created duplicate
|
||||
rules for a bridging firewall if fw object or its interfaces or
|
||||
their addresses were not in the source or desintaion</li>
|
||||
|
||||
<li>bug #912849: "Reorder activation of network interfaces in
|
||||
IPT" - script generated by the compiler for iptables sets
|
||||
default policy to DROP, flushes all rules and then reconfigures
|
||||
interfaces of the firewall (it used to reconfigure intefaces and
|
||||
then flush the rules).</li>
|
||||
|
||||
<li>bug #906709: "A dynamic interface". Dynamic interface used
|
||||
to "shadow" old broadcast object (0.0.0.0)</li>
|
||||
|
||||
<li>bug #979484: "improper command for rule with service any and
|
||||
action reject." For rules like that, and if rule options dialog
|
||||
does not specify particular way to handle this combination, the
|
||||
compiler splits the rule; the first iptables command rejects any
|
||||
tcp packet with TCP RST, while the second rejects everything
|
||||
else with ICMP message.</li>
|
||||
|
||||
<li>bug #917422: "compiler misinterprets interface with addr
|
||||
0.0.0.0". If an interface has IP address "0.0.0.0", it is
|
||||
considered an error.</li>
|
||||
|
||||
<li>bug #978854: "false rule generated for fw object in
|
||||
interface rule". Policy compiler for iptables generated
|
||||
incorrect code for rules using negated firewall object in source
|
||||
or destination when global option "assume firewall is part of
|
||||
any" was turned off.</li>
|
||||
|
||||
<li>bug #925199: "compiles wrongly a double negation". Policy
|
||||
compiler for iptables generated incorrect code for rules where
|
||||
two rule elements used negation (i.e. both src and dst, or dst
|
||||
and srv, etc.)</li>
|
||||
|
||||
<li>bug #988860: "Logging missing when firewall start is
|
||||
aborted". When iptables script generated by fwb_ipt finds
|
||||
missing interfaces, it prints error message both on stdout and
|
||||
sends it to the log.</li>
|
||||
|
||||
<li>bug #965558: "False ruleset generated for iptables (negate
|
||||
w/ nat)". There were problems with double negations in NAT rules
|
||||
(OSrc and ODst, or ODst and OSrv, etc).</li>
|
||||
|
||||
<li>bugs #935794: "dual translation and negation in fwb_ipt" and
|
||||
#986376: "Wrong result for negated source in NAT rules". Dual
|
||||
translation rule with negation in OSrc did not process negation
|
||||
in the second half (POSTROUTING rule, the one that translates
|
||||
the source).</li>
|
||||
|
||||
<li>bug #990037: "Wrong rule generated: fw interface included in
|
||||
negated group". Rules with negation should not generate code in
|
||||
INPUT/OUTPUT chains if option "assume firewall is part of any"
|
||||
is off.</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<h2>Bugs fixed in iptables policy compiler fwb_pf:</h2>
|
||||
<ul>
|
||||
<li> bug (no number) where fwb_pf would not include code defined by
|
||||
custom service object in the .conf file</li>
|
||||
|
||||
<li>bug #985527: pf NAT rules miss destination port
|
||||
specification. NAT rules that translate to "map" missed
|
||||
destination port specification. </li>
|
||||
|
||||
<li>bug #986518: "PF redirection always point to loopback
|
||||
address"</li>
|
||||
</ul>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,227 @@
|
||||
Firewall Builder Release Notes
|
||||
|
||||
Version 2.0
|
||||
|
||||
Released 07/28/04
|
||||
GUI and compilers v2.0 require API library libfwbuilder version 2.0
|
||||
|
||||
Summary
|
||||
|
||||
Firewall Builder GUI v2.0 has been completely rewritten using QT
|
||||
|
||||
For those who wish to build from source, instructions are outlined in
|
||||
"Install and Build instructions"
|
||||
|
||||
What's new
|
||||
|
||||
The GUI has been rewritten from scratch. The new GUI is based on QT 3.x.
|
||||
It has been tested with Qt v3.1.1, 3.2.3 and 3.3.1. We build on RedHat
|
||||
9.0, Mandrake 10, SuSE 9.1, FreeBSD 5.2 using QT packages that come with
|
||||
these systems.
|
||||
|
||||
The GUI has been redesigned to addresses problems known to exist in
|
||||
fwbuilder 1.1.x user interface:
|
||||
|
||||
* Speed imporevements in the GUI. Firewall policy that consist of 1000
|
||||
rules renders just as fast as policy that has only 10 rules. The GUI
|
||||
has actually been tested with 1000 rules policies.
|
||||
* Object tree is not synchronized with firewall policy view. Selecting
|
||||
an object in the tree does not immediately open it in the right hand
|
||||
panel in the main window. Right hand side panel is dedicated for the
|
||||
policy view and always shows policy or NAT rules of the firewall
|
||||
selected in the pull-down menu above it. Editing of all objects is
|
||||
done in a separate floating editor window that can be kept open at
|
||||
all times.
|
||||
* Properties of an object selected in the tree or in any rule are
|
||||
shown in the information panel under the tree. The size of the panel
|
||||
can be changed; the panel has three modes of operation: a) hidden,
|
||||
b) showing only comment associated with selected object, c) showing
|
||||
its parameters and comment. User can choose the mode by clilcking on
|
||||
the toolbar button under the information panel.
|
||||
* "Find object" function finds obejcts by their name in the tree, in
|
||||
groups and in rules. Regular expressions are recognized.
|
||||
* Built-in version control based on RCS provides for a simple way to
|
||||
track changes.
|
||||
* Data file can be opened read-only for inspection. If the file is
|
||||
checked out and locked by a different user, it can only be opened
|
||||
read-only.
|
||||
* Data file can be given on the command line without "-f" switch. The
|
||||
"-f" is also supported for backwards compatibility.
|
||||
* The program does not make copies of standard objects in user data
|
||||
file anymore (per Feature Request #810504 "'Standard' definitions
|
||||
should not be saved" )
|
||||
* Users can create and distribute their own libraries of objects. The
|
||||
GUI allows for objects to be exported to external library file with
|
||||
extension .fwl and imported from such file.
|
||||
* Objects in the 'Standard' objects library, as well as objects in
|
||||
libraries imported from external files, are read-only
|
||||
* Added an option for autosave - if this option is turned on, the gui
|
||||
periodically saves data to the file. The autosave interval can be
|
||||
set between 1 minute and 2 hours.
|
||||
* The GUI detects collisions between objects when external library is
|
||||
imported. Collision is detected when any attribute of an objects in
|
||||
the tree is different from that attribute in the object with the
|
||||
same unique ID in the file being imported. Some old data files may
|
||||
trigger collisions because of subtle differences in comments
|
||||
* Whenever user changes the name of a firewall, host or an interface
|
||||
object, the GUI asks whether they want to also rename all IP and MAC
|
||||
addresses that belong to that firewall or host. If user agrees to
|
||||
rename them, the program generates names automatically using scheme
|
||||
'host_name:interface_name:ip' and 'host_name:interface_name:mac'
|
||||
* Deleted objects are moved to a special library and can be recovered
|
||||
with "Undelete" operation
|
||||
* Rules can be color-labeled in all policies.
|
||||
* Window size and position is remembered across multiple sessions for
|
||||
all dialogs.
|
||||
* Two modes of drag-and-drop of objects in policy and NAT rules:
|
||||
dragging of an object moves it; dragging of an object with Ctrl key
|
||||
pressed copies it
|
||||
* Multiple objects can be selected in the tree. Operations such as
|
||||
duplication, moving between libraries, copy/paste can be performed
|
||||
on multiple selected objects
|
||||
* Multiple rules can also be selected for operations such as moving,
|
||||
deleting, copy/paste, setting colors
|
||||
* A collection of firewall template objects comes in a separate XML
|
||||
file with the package. You can create a new firewall object using
|
||||
one for these templates. This replaced "help me build firewall"
|
||||
wizard.
|
||||
* The "Help me build firewall policy" wizard was phased out and
|
||||
replaced with firewall templates. The template library will be
|
||||
extended in the future releases.
|
||||
* GUI has a built-in installer that uses external ssh client to
|
||||
communicate with firewall. Installer has simple GUI interface and
|
||||
works on both Linux and Windows (uses putty or SecureCRT on
|
||||
Windows). There is no need in external install script fwb_install
|
||||
anymore.
|
||||
* An option has been added to firewall platforms iptables, ipfilter,
|
||||
pf and ipfw that sets up a policy rule to permit ssh access from one
|
||||
specified IP address to the firewall regardless of other rules. This
|
||||
is for a backup ssh access from the management workstation in case
|
||||
of an error in the policy that locks user out of the firewall. The
|
||||
option (a checkbox and entry field for the management station
|
||||
address) is located in the "Compiler" tab of the firewall settings
|
||||
dialog. A command that permits ssh to the firewall from the given
|
||||
address is added on top of all other rules.
|
||||
* Packages for Windows 2000, Windows XP and Mac OS X will be
|
||||
distributed under a different license.
|
||||
* The build process is based on qmake and uses autoconf sparingly.
|
||||
Libtool is not used at all.
|
||||
* Internationalization is done using gettext 0.14.1 which supports QT
|
||||
.qm files
|
||||
* Reasonably complete French translation is provided.
|
||||
* Object names and comments are stored in the object file in UTF-8
|
||||
format. This allows for names and comments to be entered and
|
||||
displayed in local languages. Although object names can be
|
||||
localized, it is recommended to keep firewall names in plain ASCII
|
||||
because compilers do not support UTF-8 yet. This fixes very old bug
|
||||
#657156: "Special characters problem".
|
||||
* Code compiles with gcc 3.4
|
||||
|
||||
New firewall platforms and new features that apply to all platforms:
|
||||
|
||||
* Added support for Linksys devices running Sveasoft firmware.
|
||||
Firewall object should be configured as platform "iptables", host OS
|
||||
"linksys". Policy installer works both using password and public key
|
||||
authentication.
|
||||
* Added an option to firewall platforms iptables, ipfilter, pf and
|
||||
ipfw that sets up a policy rule to permit ssh access from one
|
||||
specified IP address to the firewall regardless of other rules. This
|
||||
is for a backup ssh access from the management workstation in case
|
||||
of an error in the policy that locks user out of the firewall. The
|
||||
option (a checkbox and entry field for the management station
|
||||
address) is located in the "Compiler" tab of the firewall settings
|
||||
dialog. A command that permits ssh to the firewall from the given
|
||||
address is added on top of all other rules.
|
||||
* added attribute 'lastModified' to element FWBObjectDatabase in DTD.
|
||||
this attribute holds time of last modification done to any object in
|
||||
the database (GMT). Added support for this attribute in class
|
||||
FWObjectDatabase. This attribute is implied.
|
||||
|
||||
--------------------------------------------------------------------
|
||||
|
||||
Bugs fixed in libfwbuilder API:
|
||||
|
||||
* fixed bug that appeared only when used with libxml2 2.6.6 and
|
||||
libxslt 1.0.33 - '*Group' elements were not converted properly
|
||||
(losing all child elements). It worked on RH 9 with libxml2 2.5.4
|
||||
and libxslt 1.0.27. Fix tested with libxml2 2.6.6 and libxslt 1.0.33
|
||||
on Fedora C1
|
||||
* Method Firewall::duplicate replaces references to the firewall, its
|
||||
interfaces as well as IPv4 and physical addresses of the interfaces
|
||||
in all rule sets with references to the copies of corresponding
|
||||
objects. Now firewall created from another one using 'duplicate'
|
||||
does not reference interfaces or addresses that belong to the
|
||||
original firewall object.
|
||||
* bug #950857: "Incorrect conversion of address range" - address range
|
||||
that consisted of two IP addresses was converted to a set of
|
||||
networks incorrectly.
|
||||
* bug that occured on big endian architecture (e.g. Macintosh) because
|
||||
of incorrect usage of preprocessor directives to check BYTE_ORDER.
|
||||
This bug caused incorrect address arithmetics.
|
||||
* bug #906709: "A dynamic interface". Dynamic interface used to
|
||||
"shadow" old broadcast object (0.0.0.0)
|
||||
|
||||
New features in iptables policy compiler fwb_ipt:
|
||||
|
||||
* Feature Request #913273: make "assume fw is part of any" a per-rule
|
||||
option
|
||||
* Processing of policy rules where firewall object is used in src or
|
||||
dst with negation (possibly in combination with other objects) has
|
||||
been optimized. Before, generated script would match firewall's
|
||||
addresses in INPUT/OUTPUT and FORWARD chains which added redundant
|
||||
checks in the FORWARD chain.
|
||||
|
||||
Bugs fixed in iptables policy compiler fwb_ipt:
|
||||
|
||||
* bug #956544: "Error into load modules script generation", where
|
||||
generated script would not load kernel modules with names
|
||||
"module.ko.gz". Regular expression should match on ".ko.*$" to find
|
||||
these modules properly. Thanks to Andrey Kaminsky <and@fao.lv> who
|
||||
pointed this out.
|
||||
* bug #934949: "duplicate rules". fwb_ipt created duplicate rules for
|
||||
a bridging firewall if fw object or its interfaces or their
|
||||
addresses were not in the source or desintaion
|
||||
* bug #912849: "Reorder activation of network interfaces in IPT" -
|
||||
script generated by the compiler for iptables sets default policy to
|
||||
DROP, flushes all rules and then reconfigures interfaces of the
|
||||
firewall (it used to reconfigure intefaces and then flush the
|
||||
rules).
|
||||
* bug #906709: "A dynamic interface". Dynamic interface used to
|
||||
"shadow" old broadcast object (0.0.0.0)
|
||||
* bug #979484: "improper command for rule with service any and action
|
||||
reject." For rules like that, and if rule options dialog does not
|
||||
specify particular way to handle this combination, the compiler
|
||||
splits the rule; the first iptables command rejects any tcp packet
|
||||
with TCP RST, while the second rejects everything else with ICMP
|
||||
message.
|
||||
* bug #917422: "compiler misinterprets interface with addr 0.0.0.0".
|
||||
If an interface has IP address "0.0.0.0", it is considered an error.
|
||||
* bug #978854: "false rule generated for fw object in interface rule".
|
||||
Policy compiler for iptables generated incorrect code for rules
|
||||
using negated firewall object in source or destination when global
|
||||
option "assume firewall is part of any" was turned off.
|
||||
* bug #925199: "compiles wrongly a double negation". Policy compiler
|
||||
for iptables generated incorrect code for rules where two rule
|
||||
elements used negation (i.e. both src and dst, or dst and srv, etc.)
|
||||
* bug #988860: "Logging missing when firewall start is aborted". When
|
||||
iptables script generated by fwb_ipt finds missing interfaces, it
|
||||
prints error message both on stdout and sends it to the log.
|
||||
* bug #965558: "False ruleset generated for iptables (negate w/ nat)".
|
||||
There were problems with double negations in NAT rules (OSrc and
|
||||
ODst, or ODst and OSrv, etc).
|
||||
* bugs #935794: "dual translation and negation in fwb_ipt" and
|
||||
#986376: "Wrong result for negated source in NAT rules". Dual
|
||||
translation rule with negation in OSrc did not process negation in
|
||||
the second half (POSTROUTING rule, the one that translates the
|
||||
source).
|
||||
* bug #990037: "Wrong rule generated: fw interface included in negated
|
||||
group". Rules with negation should not generate code in INPUT/OUTPUT
|
||||
chains if option "assume firewall is part of any" is off.
|
||||
|
||||
Bugs fixed in iptables policy compiler fwb_pf:
|
||||
|
||||
* bug (no number) where fwb_pf would not include code defined by
|
||||
custom service object in the .conf file
|
||||
* bug #985527: pf NAT rules miss destination port specification. NAT
|
||||
rules that translate to "map" missed destination port specification.
|
||||
* bug #986518: "PF redirection always point to loopback address"
|
||||
@@ -0,0 +1,131 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
|
||||
<link rel="stylesheet" type="text/css" href="http://www.fwbuilder.org/pages/fwbuilder.css">
|
||||
</head>
|
||||
<body>
|
||||
<h1> Firewall Builder Release Notes </h1>
|
||||
<br>
|
||||
<h2> Version 2.0.1 </h2>
|
||||
<br>
|
||||
<p>
|
||||
Released MM/DD/YY
|
||||
<br>
|
||||
<b>GUI and compilers v2.0.1 require API library libfwbuilder version 2.0.1</b>
|
||||
<br>
|
||||
<h2>Summary </h2>
|
||||
<p>
|
||||
|
||||
<p>
|
||||
<b>For those who wish to build from source, instructions are outlined
|
||||
in the document "Install and Build instructions" on our web site <a
|
||||
href="http://www.fwbuilder.org/archives/cat_installation.html">here</a></b>
|
||||
|
||||
<h2>What's new</h2>
|
||||
<ul>
|
||||
<li>Improvements in the GUI:
|
||||
<p>
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
<br>
|
||||
</li>
|
||||
|
||||
<li>Improvements in policy compiler for iptables:
|
||||
<p>
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
<br><br>
|
||||
</li>
|
||||
|
||||
<li>Improvements in policy compiler for ipfiler:
|
||||
<p>
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
<p>
|
||||
</li>
|
||||
|
||||
<li>Improvements in policy compilers for all platforms:
|
||||
<p>
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
New components:
|
||||
<p>
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
<br>
|
||||
</ul>
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<hr>
|
||||
|
||||
<h2>Bugs fixed in libfwbuilder API:</h2>
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<h2>Bugs fixed in GUI:</h2>
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<h2>Bugs fixed in iptables policy compiler fwb_ipt:</h2>
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<h2>Bugs fixed in iptables policy compiler fwb_ipf:</h2>
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<h2>Bugs fixed in iptables policy compiler fwb_pf:</h2>
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
+69
@@ -0,0 +1,69 @@
|
||||
#-*- mode: makefile; tab-width: 4; -*-
|
||||
#
|
||||
|
||||
include(../qmake.inc)
|
||||
|
||||
win32 {
|
||||
QMAKE_RUN_CC = @echo
|
||||
QMAKE_RUN_CXX = @echo
|
||||
QMAKE_LINK = @echo
|
||||
}
|
||||
!win32 {
|
||||
QMAKE_RUN_CC = @echo > /dev/null
|
||||
QMAKE_RUN_CXX = @echo > /dev/null
|
||||
QMAKE_LINK = @echo > /dev/null
|
||||
}
|
||||
|
||||
TARGET = doc
|
||||
|
||||
doc.files = AUTHORS \
|
||||
ChangeLog \
|
||||
COPYING \
|
||||
Credits \
|
||||
README.floppyfw \
|
||||
README.ipf \
|
||||
README.ipfw \
|
||||
README.ipt \
|
||||
README.pf \
|
||||
README.routing \
|
||||
README.iosacl \
|
||||
README.policy_import \
|
||||
FWBuilder-Routing-LICENSE.txt \
|
||||
PatchAcceptancePolicy.txt \
|
||||
ReleaseNotes_2.1.7.html \
|
||||
ReleaseNotes_2.1.7.txt \
|
||||
ReleaseNotes_2.1.8.html \
|
||||
ReleaseNotes_2.1.8.txt \
|
||||
ReleaseNotes_2.1.9.html \
|
||||
ReleaseNotes_2.1.9.txt \
|
||||
ReleaseNotes_2.1.10.html \
|
||||
ReleaseNotes_2.1.10.txt \
|
||||
ReleaseNotes_2.1.11.html \
|
||||
ReleaseNotes_2.1.11.txt \
|
||||
ReleaseNotes_2.1.12.html \
|
||||
ReleaseNotes_2.1.12.txt \
|
||||
ReleaseNotes_2.1.13.html \
|
||||
ReleaseNotes_2.1.13.txt \
|
||||
ReleaseNotes_2.1.14.html \
|
||||
ReleaseNotes_2.1.14.txt \
|
||||
ReleaseNotes_2.1.15.html \
|
||||
ReleaseNotes_2.1.15.txt
|
||||
|
||||
doc.path = $$DOCDIR
|
||||
|
||||
man.files = fwbedit.1 \
|
||||
fwblookup.1 \
|
||||
fwbuilder.1 \
|
||||
fwb_ipf.1 \
|
||||
fwb_ipfw.1 \
|
||||
fwb_ipt.1 \
|
||||
fwb_pf.1 \
|
||||
|
||||
# fwb_install.1 \
|
||||
# fwb_compile_all.1 \
|
||||
|
||||
man.path = $$MANDIR/man1
|
||||
|
||||
INSTALLS -= target
|
||||
INSTALLS += doc
|
||||
INSTALLS += man
|
||||
@@ -0,0 +1,446 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE FWObjectDatabase SYSTEM "fwbuilder.dtd">
|
||||
<FWObjectDatabase xmlns="http://www.fwbuilder.org/1.0/" version="2.1.5" lastModified="1150430669" id="root">
|
||||
<Library color="#d2ffd0" id="id449356F828075" name="User">
|
||||
<ObjectGroup id="id449356F928075" name="Objects">
|
||||
<ObjectGroup id="id449356FA28075" name="Addresses"/>
|
||||
<ObjectGroup id="id449356FB28075" name="DNS Names"/>
|
||||
<ObjectGroup id="id449356FC28075" name="Address Tables"/>
|
||||
<ObjectGroup id="id449356FD28075" name="Groups"/>
|
||||
<ObjectGroup id="id449356FE28075" name="Hosts">
|
||||
<Host comment="This object represents a PC with a single network interface" id="id44935FEF28075" name="server">
|
||||
<Interface bridgeport="False" dyn="False" id="id44935FF128075" label="" name="eth0" security_level="0" unnum="False">
|
||||
<IPv4 address="192.168.1.1" comment="" id="id44935FF228075" name="server:eth0:ip" netmask="255.255.255.0"/>
|
||||
</Interface>
|
||||
<Management address="0.0.0.0">
|
||||
<SNMPManagement enabled="False" snmp_read_community="" snmp_write_community=""/>
|
||||
<FWBDManagement enabled="False" identity="" port="-1"/>
|
||||
<PolicyInstallScript arguments="" command="" enabled="False"/>
|
||||
</Management>
|
||||
<HostOptions>
|
||||
<Option name="use_mac_addr_filter">False</Option>
|
||||
</HostOptions>
|
||||
</Host>
|
||||
</ObjectGroup>
|
||||
<ObjectGroup id="id449356FF28075" name="Networks"/>
|
||||
<ObjectGroup id="id4493570028075" name="Address Ranges"/>
|
||||
</ObjectGroup>
|
||||
<ServiceGroup id="id4493570128075" name="Services">
|
||||
<ServiceGroup id="id4493570228075" name="Groups"/>
|
||||
<ServiceGroup id="id4493570328075" name="ICMP"/>
|
||||
<ServiceGroup id="id4493570428075" name="IP"/>
|
||||
<ServiceGroup id="id4493570528075" name="TCP"/>
|
||||
<ServiceGroup id="id4493570628075" name="UDP"/>
|
||||
<ServiceGroup id="id4493570728075" name="Custom"/>
|
||||
<ServiceGroup id="id4493570828075" name="TagServices">
|
||||
<TagService comment="" id="id44935FFA28075" name="tag-isp1" tagcode="1"/>
|
||||
<TagService comment="" id="id44935FFB28075" name="tag-isp2" ro="False" tagcode="2"/>
|
||||
</ServiceGroup>
|
||||
</ServiceGroup>
|
||||
<ObjectGroup id="id4493570928075" name="Firewalls">
|
||||
<Firewall comment="this firewall demonstrates technique for the redundant Internet connection through two different ISPs. Firewall provides outgoing access for hosts on internal network through ISP1 and allows access to a server on internal net using NAT through IP addresses provided by both ISPs." host_OS="linux24" id="id44935AA428075" inactive="False" lastCompiled="1150429960" lastInstalled="0" lastModified="1150430669" name="example1" platform="iptables" ro="False" version="">
|
||||
<NAT id="id44935B3E28075">
|
||||
<NATRule comment="Translate source address for outgoing connections" disabled="False" id="id44935B4D28075" position="0">
|
||||
<OSrc neg="False">
|
||||
<ObjectRef ref="id3DC75CE7-1"/>
|
||||
</OSrc>
|
||||
<ODst neg="False">
|
||||
<ObjectRef ref="sysid0"/>
|
||||
</ODst>
|
||||
<OSrv neg="False">
|
||||
<ServiceRef ref="sysid1"/>
|
||||
</OSrv>
|
||||
<TSrc neg="False">
|
||||
<ObjectRef ref="id44935B6E28075"/>
|
||||
</TSrc>
|
||||
<TDst neg="False">
|
||||
<ObjectRef ref="sysid0"/>
|
||||
</TDst>
|
||||
<TSrv neg="False">
|
||||
<ServiceRef ref="sysid1"/>
|
||||
</TSrv>
|
||||
<NATRuleOptions/>
|
||||
</NATRule>
|
||||
<NATRule disabled="False" id="id44935B5C28075" position="1">
|
||||
<OSrc neg="False">
|
||||
<ObjectRef ref="sysid0"/>
|
||||
</OSrc>
|
||||
<ODst neg="False">
|
||||
<ObjectRef ref="id44935B7428075"/>
|
||||
</ODst>
|
||||
<OSrv neg="False">
|
||||
<ServiceRef ref="tcp-HTTP"/>
|
||||
<ServiceRef ref="tcp-SMTP"/>
|
||||
</OSrv>
|
||||
<TSrc neg="False">
|
||||
<ObjectRef ref="sysid0"/>
|
||||
</TSrc>
|
||||
<TDst neg="False">
|
||||
<ObjectRef ref="id44935FEF28075"/>
|
||||
</TDst>
|
||||
<TSrv neg="False">
|
||||
<ServiceRef ref="sysid1"/>
|
||||
</TSrv>
|
||||
<NATRuleOptions/>
|
||||
</NATRule>
|
||||
<NATRule disabled="False" id="id4493621228075" position="2">
|
||||
<OSrc neg="False">
|
||||
<ObjectRef ref="sysid0"/>
|
||||
</OSrc>
|
||||
<ODst neg="False">
|
||||
<ObjectRef ref="id44935B6E28075"/>
|
||||
</ODst>
|
||||
<OSrv neg="False">
|
||||
<ServiceRef ref="tcp-SMTP"/>
|
||||
<ServiceRef ref="tcp-HTTP"/>
|
||||
</OSrv>
|
||||
<TSrc neg="False">
|
||||
<ObjectRef ref="sysid0"/>
|
||||
</TSrc>
|
||||
<TDst neg="False">
|
||||
<ObjectRef ref="id44935FEF28075"/>
|
||||
</TDst>
|
||||
<TSrv neg="False">
|
||||
<ServiceRef ref="sysid1"/>
|
||||
</TSrv>
|
||||
<NATRuleOptions/>
|
||||
</NATRule>
|
||||
</NAT>
|
||||
<Policy id="id44935AAA28075">
|
||||
<PolicyRule action="Tag" direction="Inbound" disabled="False" id="id44935B8828075" log="False" position="0">
|
||||
<Src neg="False">
|
||||
<ObjectRef ref="sysid0"/>
|
||||
</Src>
|
||||
<Dst neg="False">
|
||||
<ObjectRef ref="sysid0"/>
|
||||
</Dst>
|
||||
<Srv neg="False">
|
||||
<ServiceRef ref="sysid1"/>
|
||||
</Srv>
|
||||
<Itf neg="False">
|
||||
<ObjectRef ref="id44935B6E28075"/>
|
||||
</Itf>
|
||||
<When neg="False">
|
||||
<IntervalRef ref="sysid2"/>
|
||||
</When>
|
||||
<PolicyRuleOptions>
|
||||
<Option name="action_on_reject"></Option>
|
||||
<Option name="branch_anchor_name"></Option>
|
||||
<Option name="branch_chain_name"></Option>
|
||||
<Option name="classify_str"></Option>
|
||||
<Option name="custom_str"></Option>
|
||||
<Option name="ipf_route_opt_addr"></Option>
|
||||
<Option name="ipf_route_opt_if"></Option>
|
||||
<Option name="ipf_route_option">Route through</Option>
|
||||
<Option name="ipfw_classify_method">2</Option>
|
||||
<Option name="ipfw_pipe_port_num">0</Option>
|
||||
<Option name="ipfw_pipe_queue_num">0</Option>
|
||||
<Option name="ipt_continue">False</Option>
|
||||
<Option name="ipt_gw"></Option>
|
||||
<Option name="ipt_iif"></Option>
|
||||
<Option name="ipt_mark_connections">True</Option>
|
||||
<Option name="ipt_oif"></Option>
|
||||
<Option name="ipt_tee">False</Option>
|
||||
<Option name="pf_fastroute">False</Option>
|
||||
<Option name="pf_route_opt_addr"></Option>
|
||||
<Option name="pf_route_opt_if"></Option>
|
||||
<Option name="pf_route_option">Route through</Option>
|
||||
<Option name="rule_name_accounting"></Option>
|
||||
<Option name="tagvalue">1</Option>
|
||||
</PolicyRuleOptions>
|
||||
</PolicyRule>
|
||||
<PolicyRule action="Tag" direction="Inbound" disabled="False" id="id44935FFD28075" log="False" position="1">
|
||||
<Src neg="False">
|
||||
<ObjectRef ref="sysid0"/>
|
||||
</Src>
|
||||
<Dst neg="False">
|
||||
<ObjectRef ref="sysid0"/>
|
||||
</Dst>
|
||||
<Srv neg="False">
|
||||
<ServiceRef ref="sysid1"/>
|
||||
</Srv>
|
||||
<Itf neg="False">
|
||||
<ObjectRef ref="id44935B7428075"/>
|
||||
</Itf>
|
||||
<When neg="False">
|
||||
<IntervalRef ref="sysid2"/>
|
||||
</When>
|
||||
<PolicyRuleOptions>
|
||||
<Option name="action_on_reject"></Option>
|
||||
<Option name="branch_anchor_name"></Option>
|
||||
<Option name="branch_chain_name"></Option>
|
||||
<Option name="classify_str"></Option>
|
||||
<Option name="custom_str"></Option>
|
||||
<Option name="ipf_route_opt_addr"></Option>
|
||||
<Option name="ipf_route_opt_if"></Option>
|
||||
<Option name="ipf_route_option">Route through</Option>
|
||||
<Option name="ipfw_classify_method">2</Option>
|
||||
<Option name="ipfw_pipe_port_num">0</Option>
|
||||
<Option name="ipfw_pipe_queue_num">0</Option>
|
||||
<Option name="ipt_continue">False</Option>
|
||||
<Option name="ipt_gw"></Option>
|
||||
<Option name="ipt_iif"></Option>
|
||||
<Option name="ipt_mark_connections">True</Option>
|
||||
<Option name="ipt_oif"></Option>
|
||||
<Option name="ipt_tee">False</Option>
|
||||
<Option name="pf_fastroute">False</Option>
|
||||
<Option name="pf_route_opt_addr"></Option>
|
||||
<Option name="pf_route_opt_if"></Option>
|
||||
<Option name="pf_route_option">Route through</Option>
|
||||
<Option name="rule_name_accounting"></Option>
|
||||
<Option name="tagvalue">2</Option>
|
||||
</PolicyRuleOptions>
|
||||
</PolicyRule>
|
||||
<PolicyRule action="Route" direction="Both" disabled="False" id="id4493608A28075" log="False" position="2">
|
||||
<Src neg="False">
|
||||
<ObjectRef ref="sysid0"/>
|
||||
</Src>
|
||||
<Dst neg="False">
|
||||
<ObjectRef ref="sysid0"/>
|
||||
</Dst>
|
||||
<Srv neg="False">
|
||||
<ServiceRef ref="id44935FFA28075"/>
|
||||
</Srv>
|
||||
<Itf neg="False">
|
||||
<ObjectRef ref="sysid0"/>
|
||||
</Itf>
|
||||
<When neg="False">
|
||||
<IntervalRef ref="sysid2"/>
|
||||
</When>
|
||||
<PolicyRuleOptions>
|
||||
<Option name="action_on_reject"></Option>
|
||||
<Option name="branch_anchor_name"></Option>
|
||||
<Option name="branch_chain_name"></Option>
|
||||
<Option name="classify_str"></Option>
|
||||
<Option name="custom_str"></Option>
|
||||
<Option name="ipf_route_opt_addr"></Option>
|
||||
<Option name="ipf_route_opt_if"></Option>
|
||||
<Option name="ipf_route_option">Route through</Option>
|
||||
<Option name="ipfw_classify_method">2</Option>
|
||||
<Option name="ipfw_pipe_port_num">0</Option>
|
||||
<Option name="ipfw_pipe_queue_num">0</Option>
|
||||
<Option name="ipt_continue">False</Option>
|
||||
<Option name="ipt_gw"></Option>
|
||||
<Option name="ipt_iif"></Option>
|
||||
<Option name="ipt_mark_connections">False</Option>
|
||||
<Option name="ipt_oif">eth1</Option>
|
||||
<Option name="ipt_tee">False</Option>
|
||||
<Option name="pf_fastroute">False</Option>
|
||||
<Option name="pf_route_opt_addr"></Option>
|
||||
<Option name="pf_route_opt_if"></Option>
|
||||
<Option name="pf_route_option">Route through</Option>
|
||||
<Option name="rule_name_accounting"></Option>
|
||||
</PolicyRuleOptions>
|
||||
</PolicyRule>
|
||||
<PolicyRule action="Route" direction="Both" disabled="False" id="id4493609728075" log="False" position="3">
|
||||
<Src neg="False">
|
||||
<ObjectRef ref="sysid0"/>
|
||||
</Src>
|
||||
<Dst neg="False">
|
||||
<ObjectRef ref="sysid0"/>
|
||||
</Dst>
|
||||
<Srv neg="False">
|
||||
<ServiceRef ref="id44935FFB28075"/>
|
||||
</Srv>
|
||||
<Itf neg="False">
|
||||
<ObjectRef ref="sysid0"/>
|
||||
</Itf>
|
||||
<When neg="False">
|
||||
<IntervalRef ref="sysid2"/>
|
||||
</When>
|
||||
<PolicyRuleOptions>
|
||||
<Option name="action_on_reject"></Option>
|
||||
<Option name="branch_anchor_name"></Option>
|
||||
<Option name="branch_chain_name"></Option>
|
||||
<Option name="classify_str"></Option>
|
||||
<Option name="custom_str"></Option>
|
||||
<Option name="ipf_route_opt_addr"></Option>
|
||||
<Option name="ipf_route_opt_if"></Option>
|
||||
<Option name="ipf_route_option">Route through</Option>
|
||||
<Option name="ipfw_classify_method">2</Option>
|
||||
<Option name="ipfw_pipe_port_num">0</Option>
|
||||
<Option name="ipfw_pipe_queue_num">0</Option>
|
||||
<Option name="ipt_continue">False</Option>
|
||||
<Option name="ipt_gw"></Option>
|
||||
<Option name="ipt_iif"></Option>
|
||||
<Option name="ipt_mark_connections">False</Option>
|
||||
<Option name="ipt_oif">eth2</Option>
|
||||
<Option name="ipt_tee">False</Option>
|
||||
<Option name="pf_fastroute">False</Option>
|
||||
<Option name="pf_route_opt_addr"></Option>
|
||||
<Option name="pf_route_opt_if"></Option>
|
||||
<Option name="pf_route_option">Route through</Option>
|
||||
<Option name="rule_name_accounting"></Option>
|
||||
</PolicyRuleOptions>
|
||||
</PolicyRule>
|
||||
<PolicyRule action="Accept" direction="Both" disabled="False" id="id4493613C28075" log="False" position="4">
|
||||
<Src neg="False">
|
||||
<ObjectRef ref="sysid0"/>
|
||||
</Src>
|
||||
<Dst neg="False">
|
||||
<ObjectRef ref="id44935FEF28075"/>
|
||||
</Dst>
|
||||
<Srv neg="False">
|
||||
<ServiceRef ref="tcp-HTTP"/>
|
||||
</Srv>
|
||||
<Itf neg="False">
|
||||
<ObjectRef ref="sysid0"/>
|
||||
</Itf>
|
||||
<When neg="False">
|
||||
<IntervalRef ref="sysid2"/>
|
||||
</When>
|
||||
<PolicyRuleOptions/>
|
||||
</PolicyRule>
|
||||
<PolicyRule action="Accept" direction="Both" disabled="False" id="id4493615428075" log="False" position="5">
|
||||
<Src neg="False">
|
||||
<ObjectRef ref="id3DC75CE7-1"/>
|
||||
</Src>
|
||||
<Dst neg="False">
|
||||
<ObjectRef ref="sysid0"/>
|
||||
</Dst>
|
||||
<Srv neg="False">
|
||||
<ServiceRef ref="sysid1"/>
|
||||
</Srv>
|
||||
<Itf neg="False">
|
||||
<ObjectRef ref="sysid0"/>
|
||||
</Itf>
|
||||
<When neg="False">
|
||||
<IntervalRef ref="sysid2"/>
|
||||
</When>
|
||||
<PolicyRuleOptions/>
|
||||
</PolicyRule>
|
||||
<PolicyRule action="Deny" disabled="False" id="id44935B3228075" log="True" position="6">
|
||||
<Src neg="False">
|
||||
<ObjectRef ref="sysid0"/>
|
||||
</Src>
|
||||
<Dst neg="False">
|
||||
<ObjectRef ref="sysid0"/>
|
||||
</Dst>
|
||||
<Srv neg="False">
|
||||
<ServiceRef ref="sysid1"/>
|
||||
</Srv>
|
||||
<Itf neg="False">
|
||||
<ObjectRef ref="sysid0"/>
|
||||
</Itf>
|
||||
<When neg="False">
|
||||
<IntervalRef ref="sysid2"/>
|
||||
</When>
|
||||
<PolicyRuleOptions/>
|
||||
</PolicyRule>
|
||||
</Policy>
|
||||
<Routing id="id44935B6A28075"/>
|
||||
<Interface bridgeport="False" comment="this interface is internal, it is connected to LAN behind the firewall" dyn="False" id="id44935B6B28075" label="" mgmt="True" name="eth0" security_level="100" unnum="False">
|
||||
<IPv4 address="192.168.1.1" comment="" id="id44935B6D28075" name="example1:eth0:ip" netmask="255.255.255.0"/>
|
||||
</Interface>
|
||||
<Interface bridgeport="False" comment="first external interface connected to ISP1" dyn="False" id="id44935B6E28075" label="" mgmt="False" name="eth1" security_level="0" unnum="False">
|
||||
<IPv4 address="192.0.2.1" comment="" id="id44935B7028075" name="example1:eth1:ip" netmask="255.255.255.0"/>
|
||||
</Interface>
|
||||
<Interface bridgeport="False" comment="loopback interface" dyn="False" id="id44935B7128075" label="" mgmt="False" name="lo" security_level="100" unnum="False">
|
||||
<IPv4 address="127.0.0.1" comment="" id="id44935B7328075" name="example1:lo:ip" netmask="255.0.0.0"/>
|
||||
</Interface>
|
||||
<Interface bridgeport="False" comment="the second external interface, connected to ISP2" dyn="False" id="id44935B7428075" label="" mgmt="False" name="eth2" security_level="0" unnum="False">
|
||||
<IPv4 address="192.0.3.1" comment="" id="id44935B7628075" name="example1:eth2:ip" netmask="255.255.255.0"/>
|
||||
</Interface>
|
||||
<Management address="192.168.1.1">
|
||||
<SNMPManagement enabled="False" snmp_read_community="" snmp_write_community=""/>
|
||||
<FWBDManagement enabled="False" identity="" port="-1"/>
|
||||
<PolicyInstallScript arguments="" command="" enabled="False"/>
|
||||
</Management>
|
||||
<FirewallOptions>
|
||||
<Option name="accept_established">True</Option>
|
||||
<Option name="accept_new_tcp_with_no_syn">True</Option>
|
||||
<Option name="action_on_reject"></Option>
|
||||
<Option name="activationCmd"></Option>
|
||||
<Option name="admUser"></Option>
|
||||
<Option name="altAddress"></Option>
|
||||
<Option name="bridging_fw">False</Option>
|
||||
<Option name="check_shading">True</Option>
|
||||
<Option name="clamp_mss_to_mtu">False</Option>
|
||||
<Option name="cmdline"></Option>
|
||||
<Option name="compiler"></Option>
|
||||
<Option name="configure_interfaces">True</Option>
|
||||
<Option name="debug">False</Option>
|
||||
<Option name="drop_invalid">False</Option>
|
||||
<Option name="eliminate_duplicates">true</Option>
|
||||
<Option name="epilog_script"></Option>
|
||||
<Option name="firewall_dir">/etc</Option>
|
||||
<Option name="firewall_is_part_of_any_and_networks">True</Option>
|
||||
<Option name="freebsd_ip_forward">1</Option>
|
||||
<Option name="ignore_empty_groups">False</Option>
|
||||
<Option name="in_out_code">true</Option>
|
||||
<Option name="limit_suffix"></Option>
|
||||
<Option name="limit_value">0</Option>
|
||||
<Option name="linux24_ip_forward">1</Option>
|
||||
<Option name="load_modules">True</Option>
|
||||
<Option name="local_nat">False</Option>
|
||||
<Option name="log_all">False</Option>
|
||||
<Option name="log_invalid">False</Option>
|
||||
<Option name="log_ip_opt">False</Option>
|
||||
<Option name="log_level">info</Option>
|
||||
<Option name="log_prefix">RULE %N -- %A </Option>
|
||||
<Option name="log_tcp_opt">False</Option>
|
||||
<Option name="log_tcp_seq">False</Option>
|
||||
<Option name="loopback_interface">lo0</Option>
|
||||
<Option name="macosx_ip_forward">1</Option>
|
||||
<Option name="manage_virtual_addr">True</Option>
|
||||
<Option name="mgmt_addr"></Option>
|
||||
<Option name="mgmt_ssh">False</Option>
|
||||
<Option name="openbsd_ip_forward">1</Option>
|
||||
<Option name="output_file"></Option>
|
||||
<Option name="pass_all_out">false</Option>
|
||||
<Option name="pf_limit_frags">5000</Option>
|
||||
<Option name="pf_limit_states">10000</Option>
|
||||
<Option name="pf_scrub_maxmss">1460</Option>
|
||||
<Option name="pf_timeout_frag">30</Option>
|
||||
<Option name="pf_timeout_interval">10</Option>
|
||||
<Option name="pix_add_clear_statements">true</Option>
|
||||
<Option name="pix_assume_fw_part_of_any">true</Option>
|
||||
<Option name="pix_default_logint">300</Option>
|
||||
<Option name="pix_emblem_log_format">false</Option>
|
||||
<Option name="pix_emulate_out_acl">true</Option>
|
||||
<Option name="pix_floodguard">true</Option>
|
||||
<Option name="pix_include_comments">true</Option>
|
||||
<Option name="pix_route_dnat_supported">true</Option>
|
||||
<Option name="pix_rule_syslog_settings">false</Option>
|
||||
<Option name="pix_security_fragguard_supported">true</Option>
|
||||
<Option name="pix_syslog_device_id_supported">false</Option>
|
||||
<Option name="pix_use_acl_remarks">true</Option>
|
||||
<Option name="prolog_place">top</Option>
|
||||
<Option name="prolog_script"></Option>
|
||||
<Option name="prompt1">$ </Option>
|
||||
<Option name="prompt2"> # </Option>
|
||||
<Option name="solaris_ip_forward">1</Option>
|
||||
<Option name="sshArgs"></Option>
|
||||
<Option name="ulog_cprange">0</Option>
|
||||
<Option name="ulog_nlgroup">1</Option>
|
||||
<Option name="ulog_qthreshold">1</Option>
|
||||
<Option name="use_ULOG">False</Option>
|
||||
<Option name="use_iptables_restore">False</Option>
|
||||
<Option name="use_numeric_log_levels">False</Option>
|
||||
<Option name="verify_interfaces">True</Option>
|
||||
</FirewallOptions>
|
||||
</Firewall>
|
||||
</ObjectGroup>
|
||||
<IntervalGroup id="id4493570A28075" name="Time"/>
|
||||
</Library>
|
||||
<Library id="sysid99" name="Deleted Objects" ro="False">
|
||||
<ObjectRef ref="id3DC75CE7-2"/>
|
||||
</Library>
|
||||
<Library color="#d4f8ff" comment="Standard objects" id="syslib000" name="Standard" ro="False">
|
||||
<AnyNetwork comment="Any Network" id="sysid0" name="Any" address="0.0.0.0" netmask="0.0.0.0"/>
|
||||
<AnyIPService comment="Any IP Service" id="sysid1" name="Any" protocol_num="0"/>
|
||||
<AnyInterval comment="Any Interval" from_day="-1" from_hour="-1" from_minute="-1" from_month="-1" from_weekday="-1" from_year="-1" id="sysid2" name="Any" to_day="-1" to_hour="-1" to_minute="-1" to_month="-1" to_weekday="-1" to_year="-1"/>
|
||||
<ServiceGroup id="stdid05" name="Services">
|
||||
<ServiceGroup id="stdid09" name="TCP">
|
||||
<TCPService ack_flag="False" ack_flag_mask="False" comment="" dst_range_end="80" dst_range_start="80" fin_flag="False" fin_flag_mask="False" id="tcp-HTTP" name="http" psh_flag="False" psh_flag_mask="False" rst_flag="False" rst_flag_mask="False" src_range_end="0" src_range_start="0" syn_flag="False" syn_flag_mask="False" urg_flag="False" urg_flag_mask="False"/>
|
||||
<TCPService ack_flag="False" ack_flag_mask="False" comment="" dst_range_end="25" dst_range_start="25" fin_flag="False" fin_flag_mask="False" id="tcp-SMTP" name="smtp" psh_flag="False" psh_flag_mask="False" rst_flag="False" rst_flag_mask="False" src_range_end="0" src_range_start="0" syn_flag="False" syn_flag_mask="False" urg_flag="False" urg_flag_mask="False"/>
|
||||
</ServiceGroup>
|
||||
</ServiceGroup>
|
||||
<ObjectGroup id="stdid01" name="Objects">
|
||||
<ObjectGroup id="stdid03" name="Networks">
|
||||
<Network comment="192.168.1.0/24 - Address often used for home and small office networks. " id="id3DC75CE7-1" name="net-192.168.1.0" address="192.168.1.0" netmask="255.255.255.0"/>
|
||||
<Network comment="192.168.2.0/24 - Address often used for home and small office networks. " id="id3DC75CE7-2" name="net-192.168.2.0" address="192.168.2.0" netmask="255.255.255.0"/>
|
||||
</ObjectGroup>
|
||||
</ObjectGroup>
|
||||
</Library>
|
||||
</FWObjectDatabase>
|
||||
@@ -0,0 +1,56 @@
|
||||
.TH fwb_compile_all 1 "" FWB "Firewall Builder"
|
||||
.SH NAME
|
||||
fwb_compile_all \- Wrapper script that compiles policies for multiple firewall objects
|
||||
.SH SYNOPSIS
|
||||
|
||||
.B fwb_compile_all
|
||||
.RB -f file.xml
|
||||
.RB [-d wdir]
|
||||
.RB [-av]
|
||||
[obj[ obj ...]]
|
||||
|
||||
.SH "DESCRIPTION"
|
||||
|
||||
.B fwb_compile_all
|
||||
is a wrapper script that compiles policies for several firewall
|
||||
objects in one batch job. This script takes a list of firewall object
|
||||
names on the command line (or '-a' command line option, see below) and
|
||||
calls policy compiler for each one. The script correctly determines
|
||||
which policy compiler is needed depending on the firewall platform of
|
||||
each object.
|
||||
|
||||
.SH OPTIONS
|
||||
.IP "-a"
|
||||
The script processes all firewall objects in the "/Firewalls" subtree.
|
||||
|
||||
.IP "-d wdir"
|
||||
Specify working directory. Compiler creates file with iptables script
|
||||
in this directory. If this parameter is missing, then iptables script
|
||||
will be placed in the current working directory.
|
||||
|
||||
.IP "-f FILE"
|
||||
Specify the name of the data file to be processed.
|
||||
|
||||
.IP "-v"
|
||||
Script passes this option to the compiler, this makes it print
|
||||
diagnostic messages indicating its progress.
|
||||
|
||||
.SH URL
|
||||
Firewall Builder home page is located at the following URL:
|
||||
.B http://www.fwbuilder.org/
|
||||
|
||||
.SH BUGS
|
||||
Please report bugs using bug tracking system on SourceForge:
|
||||
|
||||
.BR http://sourceforge.net/tracker/?group_id=5314&atid=105314
|
||||
|
||||
|
||||
.SH SEE ALSO
|
||||
.BR fwbuilder(1),
|
||||
.BR fwb_ipt(1)
|
||||
.BR fwb_ipf(1)
|
||||
.BR fwb_pf(1)
|
||||
.BR fwbedit(1),
|
||||
.BR fwblookup(1)
|
||||
|
||||
.P
|
||||
@@ -0,0 +1,126 @@
|
||||
.\"-*- mode: nroff; tab-width: 4; -*-
|
||||
.\"
|
||||
.de Sp
|
||||
.if n .sp
|
||||
.if t .sp 0.4
|
||||
..
|
||||
.TH fwb_install 1 "" FWB "Firewall Builder"
|
||||
.SH NAME
|
||||
fwb_install \- Firewall policy installation and activation script
|
||||
.SH SYNOPSIS
|
||||
|
||||
.B fwb_install
|
||||
.B [-d wdir]
|
||||
.B -f data_file.xml
|
||||
object_name
|
||||
|
||||
.SH "DESCRIPTION"
|
||||
|
||||
.B fwb_install
|
||||
is firewall policy installation and activation script for Firewall
|
||||
Builder (see fwbuilder(1)). This script transfers compiled
|
||||
rulesets via ssh to a firewall and activates them. Optionally it
|
||||
transfers a backup of the .xml source file, too.
|
||||
.PP
|
||||
The data file and the name of the firewall objects must be specified
|
||||
on the command line. Other command line parameters are optional.
|
||||
.PP
|
||||
The firewall rules should allow ssh traffic to the firewall, or you
|
||||
will lock yourself out.
|
||||
.PP
|
||||
|
||||
.SH INSTALLATION
|
||||
|
||||
You should have a ssh and sshd installed and configured properly.
|
||||
.PP
|
||||
Make a public/private keypair using ssh-keygen tool, the public key
|
||||
goes into ~$REMOTEUSER/.ssh/ on the firewall, $SSHIDENTITY locally
|
||||
points to the private key. Protect your key with a good passphrase!
|
||||
.PP
|
||||
Tell fwbuilder to use the script: enter /home/vadim/Projects/fwb/fwbuilder/../usr//bin/fwb_install (a full
|
||||
path and name for this script) in the "install script" entry field in
|
||||
the firewall object dialog.
|
||||
.PP
|
||||
To customize the script you can adjust the following variables inside
|
||||
of it :
|
||||
.PP
|
||||
.PD 0
|
||||
.TP
|
||||
.B REMOTEDIR
|
||||
Specifies where the firewall script or configuration file will be
|
||||
placed on the firewall (default: "/etc/firewall")
|
||||
.TP
|
||||
.B REMOTEUSER
|
||||
Specifies the user on the firewall allowed to set up the firewall rulesets
|
||||
(default: "root")
|
||||
.TP
|
||||
.B DOXMLBACKUP
|
||||
Specifies whether we want to store a backup copy of the .xml on the firewall
|
||||
(default: "YES")
|
||||
.TP
|
||||
.B SSHIDENTITY
|
||||
location of private ssh key (default: "${HOME}/.ssh/id_dsa")
|
||||
|
||||
|
||||
.SH OPTIONS
|
||||
.IP "-f FILE"
|
||||
Specify the name of the data file to be processed.
|
||||
|
||||
.IP "-d wdir"
|
||||
Specify working directory. Policy compilers create firewall
|
||||
configurations and/or scripts in this directory. If this parameter is
|
||||
missing, then script looks in the current working directory.
|
||||
|
||||
.SH CAVEATS
|
||||
|
||||
The firewall rules should allow ssh traffic to the firewall, or you
|
||||
will lock yourself out.
|
||||
|
||||
.PP
|
||||
The script uses address of firewall's interface which is marked as
|
||||
"management". The script aborts if there is no management interface.
|
||||
|
||||
.PP
|
||||
There still is a depenency on the current DTD structure in that the
|
||||
script assumes that all firewalls are always located in the tree
|
||||
branch "Firewalls". This may change in the future; the script will
|
||||
need to be updated then.
|
||||
|
||||
.PP
|
||||
This script has been developed and tested for iptables firewall on
|
||||
Linux systems. To the best of my knowledge, nobody used this script
|
||||
for any other firewall type or OS, however it should work for any
|
||||
firewall running on a Unix box where firewall configuration is
|
||||
represented in a form of a shell script. On example is ipfw used on
|
||||
FreeBSD or Mac OS X.
|
||||
|
||||
.PP
|
||||
.SH URL
|
||||
Firewall Builder home page is located at the following URL:
|
||||
.B http://www.fwbuilder.org/
|
||||
|
||||
.SH BUGS
|
||||
Please report bugs using bug tracking system on SourceForge:
|
||||
|
||||
.BR http://sourceforge.net/tracker/?group_id=5314&atid=105314
|
||||
|
||||
.SH AUTHOR
|
||||
|
||||
David Gullasch <xonox@web.de>, <gullasch@secunet.de>
|
||||
Changes and corrections by Vadim Kurland <vadim@fwbuilder.org>
|
||||
|
||||
.SH DISCLAIMER
|
||||
|
||||
(K) 2001 by David Gullasch <xonox@web.de>, <gullasch@secunet.de> All
|
||||
rights reversed. Copy what you like, but give credit and include this
|
||||
note. Don't blame me when this script does not do what you want it to
|
||||
- there is no bug-free software.
|
||||
|
||||
|
||||
.SH SEE ALSO
|
||||
.BR fwbuilder(1),
|
||||
.BR fwb_ipt(1),
|
||||
.BR fwb_ipf(1),
|
||||
.BR fwb_pf(1)
|
||||
|
||||
.P
|
||||
+139
@@ -0,0 +1,139 @@
|
||||
.de Sp
|
||||
.if n .sp
|
||||
.if t .sp 0.4
|
||||
..
|
||||
.TH fwb_ipf 1 "" FWB "Firewall Builder"
|
||||
.SH NAME
|
||||
fwb_ipf \- Policy compiler for ipfilter
|
||||
.SH SYNOPSIS
|
||||
|
||||
.B fwb_ipf
|
||||
.B [-vVx]
|
||||
.B [-d wdir]
|
||||
.B [-o output.fw]
|
||||
.B -f data_file.xml
|
||||
object_name
|
||||
|
||||
.SH "DESCRIPTION"
|
||||
|
||||
.B fwb_ipf
|
||||
is a firewall policy compiler component of Firewall Builder (see
|
||||
fwbuilder(1)). This compiler generates code for ipfilter. Compiler
|
||||
reads objects definitions and firewall description from the data file
|
||||
specified with "-f" option and generates ipfilter configuration files
|
||||
and firewall activation script.
|
||||
|
||||
All generated files have names that start with the name of the
|
||||
firewall object. Firewall activation script has extension ".fw" and is
|
||||
simple shell script that flushes current policy, loads new filter and
|
||||
nat rules and then activates ipfilter. IPFilter configuration file name
|
||||
starts with the name of the firewall object, plus "-ipf.conf". NAT
|
||||
configuration file name also starts with the name of the firewall
|
||||
object, plus "-nat.conf". For example, if firewall object has name
|
||||
"myfirewall", then compiler will create three files: "myfirewall.fw",
|
||||
"myfirewall-pf.conf", "myfirewall-nat.conf".
|
||||
|
||||
The data file and the name of the firewall objects must be specified
|
||||
on the command line. Other command line parameters are optional.
|
||||
|
||||
|
||||
.SH OPTIONS
|
||||
.IP "-f FILE"
|
||||
Specify the name of the data file to be processed.
|
||||
|
||||
.IP "-o output.fw"
|
||||
Specify output file name
|
||||
|
||||
.IP "-d wdir"
|
||||
Specify working directory. Compiler creates firewall activation
|
||||
script and ipfilter configuration files in this directory. If this
|
||||
parameter is missing, then all files will be placed in the
|
||||
current working directory.
|
||||
|
||||
.IP "-v"
|
||||
Be verbose: compiler prints diagnostic messages when it works.
|
||||
|
||||
.IP "-V"
|
||||
Print version number and quit.
|
||||
|
||||
.IP "-x"
|
||||
Generate debugging information while working. This option is intended
|
||||
for debugging only and may produce lots of cryptic messages.
|
||||
|
||||
.SH NOTES
|
||||
|
||||
Support for ipf returned in version 1.0.1 of Firewall Builder
|
||||
|
||||
Supported features:
|
||||
|
||||
|
||||
.IP o
|
||||
both ipf.conf and nat.conf files are generated
|
||||
|
||||
.IP o
|
||||
negation in policy rules
|
||||
|
||||
.IP o
|
||||
stateful inspection in individual rule can be turned off in rule
|
||||
options dialog. By default compiler adds "keep state" or "modulate
|
||||
state" to each rule with action 'pass'
|
||||
|
||||
.IP o
|
||||
rule options dialog provides a choice of icmp or tcp rst replies for
|
||||
rules with action "Reject"
|
||||
|
||||
.IP o
|
||||
compiler adds flag "allow-opts" if match on ip options is needed
|
||||
|
||||
.IP o
|
||||
compiler can generate rules matching on TCP flags
|
||||
|
||||
.IP o
|
||||
compiler can generate script adding ip aliases for NAT rules using addresses
|
||||
that do not belong to any interface of the firewall
|
||||
|
||||
.IP o
|
||||
compiler always adds rule "block quick all" at the very bottom of
|
||||
the script to ensure "block all by default" policy even if the policy
|
||||
is empty.
|
||||
|
||||
.IP o
|
||||
Address ranges in both policy and NAT
|
||||
|
||||
|
||||
|
||||
.PP
|
||||
Features that are not supported (yet)
|
||||
|
||||
.IP o
|
||||
negation in NAT
|
||||
|
||||
.IP o
|
||||
custom services
|
||||
|
||||
|
||||
|
||||
.PP
|
||||
Features that won't be supported (at least not anytime soon)
|
||||
|
||||
.IP o
|
||||
policy routing
|
||||
|
||||
|
||||
|
||||
.SH URL
|
||||
Firewall Builder home page is located at the following URL:
|
||||
.B http://www.fwbuilder.org/
|
||||
|
||||
.SH BUGS
|
||||
Please report bugs using bug tracking system on SourceForge:
|
||||
|
||||
.BR http://sourceforge.net/tracker/?group_id=5314&atid=105314
|
||||
|
||||
|
||||
.SH SEE ALSO
|
||||
.BR fwbuilder(1),
|
||||
.BR fwb_ipt(1),
|
||||
.BR fwb_pf(1)
|
||||
|
||||
.P
|
||||
+139
@@ -0,0 +1,139 @@
|
||||
.de Sp
|
||||
.if n .sp
|
||||
.if t .sp 0.4
|
||||
..
|
||||
.TH fwb_ipf 1 "" FWB "Firewall Builder"
|
||||
.SH NAME
|
||||
fwb_ipf \- Policy compiler for ipfilter
|
||||
.SH SYNOPSIS
|
||||
|
||||
.B fwb_ipf
|
||||
.B [-vVx]
|
||||
.B [-d wdir]
|
||||
.B [-o output.fw]
|
||||
.B -f data_file.xml
|
||||
object_name
|
||||
|
||||
.SH "DESCRIPTION"
|
||||
|
||||
.B fwb_ipf
|
||||
is a firewall policy compiler component of Firewall Builder (see
|
||||
fwbuilder(1)). This compiler generates code for ipfilter. Compiler
|
||||
reads objects definitions and firewall description from the data file
|
||||
specified with "-f" option and generates ipfilter configuration files
|
||||
and firewall activation script.
|
||||
|
||||
All generated files have names that start with the name of the
|
||||
firewall object. Firewall activation script has extension ".fw" and is
|
||||
simple shell script that flushes current policy, loads new filter and
|
||||
nat rules and then activates ipfilter. IPFilter configuration file name
|
||||
starts with the name of the firewall object, plus "-ipf.conf". NAT
|
||||
configuration file name also starts with the name of the firewall
|
||||
object, plus "-nat.conf". For example, if firewall object has name
|
||||
"myfirewall", then compiler will create three files: "myfirewall.fw",
|
||||
"myfirewall-pf.conf", "myfirewall-nat.conf".
|
||||
|
||||
The data file and the name of the firewall objects must be specified
|
||||
on the command line. Other command line parameters are optional.
|
||||
|
||||
|
||||
.SH OPTIONS
|
||||
.IP "-f FILE"
|
||||
Specify the name of the data file to be processed.
|
||||
|
||||
.IP "-o output.fw"
|
||||
Specify output file name
|
||||
|
||||
.IP "-d wdir"
|
||||
Specify working directory. Compiler creates firewall activation
|
||||
script and ipfilter configuration files in this directory. If this
|
||||
parameter is missing, then all files will be placed in the
|
||||
current working directory.
|
||||
|
||||
.IP "-v"
|
||||
Be verbose: compiler prints diagnostic messages when it works.
|
||||
|
||||
.IP "-V"
|
||||
Print version number and quit.
|
||||
|
||||
.IP "-x"
|
||||
Generate debugging information while working. This option is intended
|
||||
for debugging only and may produce lots of cryptic messages.
|
||||
|
||||
.SH NOTES
|
||||
|
||||
Support for ipf returned in version 1.0.1 of Firewall Builder
|
||||
|
||||
Supported features:
|
||||
|
||||
|
||||
.IP o
|
||||
both ipf.conf and nat.conf files are generated
|
||||
|
||||
.IP o
|
||||
negation in policy rules
|
||||
|
||||
.IP o
|
||||
stateful inspection in individual rule can be turned off in rule
|
||||
options dialog. By default compiler adds "keep state" or "modulate
|
||||
state" to each rule with action 'pass'
|
||||
|
||||
.IP o
|
||||
rule options dialog provides a choice of icmp or tcp rst replies for
|
||||
rules with action "Reject"
|
||||
|
||||
.IP o
|
||||
compiler adds flag "allow-opts" if match on ip options is needed
|
||||
|
||||
.IP o
|
||||
compiler can generate rules matching on TCP flags
|
||||
|
||||
.IP o
|
||||
compiler can generate script adding ip aliases for NAT rules using addresses
|
||||
that do not belong to any interface of the firewall
|
||||
|
||||
.IP o
|
||||
compiler always adds rule "block quick all" at the very bottom of
|
||||
the script to ensure "block all by default" policy even if the policy
|
||||
is empty.
|
||||
|
||||
.IP o
|
||||
Address ranges in both policy and NAT
|
||||
|
||||
|
||||
|
||||
.PP
|
||||
Features that are not supported (yet)
|
||||
|
||||
.IP o
|
||||
negation in NAT
|
||||
|
||||
.IP o
|
||||
custom services
|
||||
|
||||
|
||||
|
||||
.PP
|
||||
Features that won't be supported (at least not anytime soon)
|
||||
|
||||
.IP o
|
||||
policy routing
|
||||
|
||||
|
||||
|
||||
.SH URL
|
||||
Firewall Builder home page is located at the following URL:
|
||||
.B http://www.fwbuilder.org/
|
||||
|
||||
.SH BUGS
|
||||
Please report bugs using bug tracking system on SourceForge:
|
||||
|
||||
.BR http://sourceforge.net/tracker/?group_id=5314&atid=105314
|
||||
|
||||
|
||||
.SH SEE ALSO
|
||||
.BR fwbuilder(1),
|
||||
.BR fwb_ipt(1),
|
||||
.BR fwb_pf(1)
|
||||
|
||||
.P
|
||||
@@ -0,0 +1,78 @@
|
||||
.de Sp
|
||||
.if n .sp
|
||||
.if t .sp 0.4
|
||||
..
|
||||
.TH fwb_ipfw 1 "" FWB "Firewall Builder"
|
||||
.SH NAME
|
||||
fwb_ipfw \- Policy compiler for ipfw
|
||||
.SH SYNOPSIS
|
||||
|
||||
.B fwb_ipfw
|
||||
.B [-vVx]
|
||||
.B [-d wdir]
|
||||
.B [-o output.fw]
|
||||
.B -f data_file.xml
|
||||
object_name
|
||||
|
||||
.SH "DESCRIPTION"
|
||||
|
||||
.B fwb_ipfw
|
||||
is a firewall policy compiler component of Firewall Builder (see
|
||||
fwbuilder(1)). This compiler generates code for ipfw - a firewall and
|
||||
traffic shaper in FreeBSD (see ipfw(8)). Compiler reads objects
|
||||
definitions and firewall description from the data file specified with
|
||||
"-f" option and generates firewall configuration and activation
|
||||
script.
|
||||
|
||||
The generated file has a name that starts with the name of the
|
||||
firewall object, with an extension ".fw". It is a shell script that
|
||||
flushes current policy, then loads new filter and nat rules.
|
||||
|
||||
The data file and the name of the firewall objects must be specified
|
||||
on the command line. Other command line parameters are optional.
|
||||
|
||||
|
||||
.SH OPTIONS
|
||||
.IP "-f FILE"
|
||||
Specify the name of the data file to be processed.
|
||||
|
||||
.IP "-o output.fw"
|
||||
Specify output file name
|
||||
|
||||
.IP "-d wdir"
|
||||
Specify working directory. Compiler creates firewall activation
|
||||
script in this directory. If this parameter is missing, then all
|
||||
files will be placed in the current working directory.
|
||||
|
||||
.IP "-v"
|
||||
Be verbose: compiler prints diagnostic messages when it works.
|
||||
|
||||
.IP "-V"
|
||||
Print version number and quit.
|
||||
|
||||
.IP "-x"
|
||||
Generate debugging information while working. This option is intended
|
||||
for debugging only and may produce lots of cryptic messages.
|
||||
|
||||
.SH NOTES
|
||||
|
||||
Support for ipfw was added in version 1.0.10 of Firewall Builder
|
||||
|
||||
|
||||
.SH URL
|
||||
Firewall Builder home page is located at the following URL:
|
||||
.B http://www.fwbuilder.org/
|
||||
|
||||
.SH BUGS
|
||||
Please report bugs using bug tracking system on SourceForge:
|
||||
|
||||
.BR http://sourceforge.net/tracker/?group_id=5314&atid=105314
|
||||
|
||||
|
||||
.SH SEE ALSO
|
||||
.BR fwbuilder(1),
|
||||
.BR fwb_ipt(1),
|
||||
.BR fwb_pf(1)
|
||||
.BR fwb_ipf(1)
|
||||
|
||||
.P
|
||||
@@ -0,0 +1,78 @@
|
||||
.de Sp
|
||||
.if n .sp
|
||||
.if t .sp 0.4
|
||||
..
|
||||
.TH fwb_ipfw 1 "" FWB "Firewall Builder"
|
||||
.SH NAME
|
||||
fwb_ipfw \- Policy compiler for ipfw
|
||||
.SH SYNOPSIS
|
||||
|
||||
.B fwb_ipfw
|
||||
.B [-vVx]
|
||||
.B [-d wdir]
|
||||
.B [-o output.fw]
|
||||
.B -f data_file.xml
|
||||
object_name
|
||||
|
||||
.SH "DESCRIPTION"
|
||||
|
||||
.B fwb_ipfw
|
||||
is a firewall policy compiler component of Firewall Builder (see
|
||||
fwbuilder(1)). This compiler generates code for ipfw - a firewall and
|
||||
traffic shaper in FreeBSD (see ipfw(8)). Compiler reads objects
|
||||
definitions and firewall description from the data file specified with
|
||||
"-f" option and generates firewall configuration and activation
|
||||
script.
|
||||
|
||||
The generated file has a name that starts with the name of the
|
||||
firewall object, with an extension ".fw". It is a shell script that
|
||||
flushes current policy, then loads new filter and nat rules.
|
||||
|
||||
The data file and the name of the firewall objects must be specified
|
||||
on the command line. Other command line parameters are optional.
|
||||
|
||||
|
||||
.SH OPTIONS
|
||||
.IP "-f FILE"
|
||||
Specify the name of the data file to be processed.
|
||||
|
||||
.IP "-o output.fw"
|
||||
Specify output file name
|
||||
|
||||
.IP "-d wdir"
|
||||
Specify working directory. Compiler creates firewall activation
|
||||
script in this directory. If this parameter is missing, then all
|
||||
files will be placed in the current working directory.
|
||||
|
||||
.IP "-v"
|
||||
Be verbose: compiler prints diagnostic messages when it works.
|
||||
|
||||
.IP "-V"
|
||||
Print version number and quit.
|
||||
|
||||
.IP "-x"
|
||||
Generate debugging information while working. This option is intended
|
||||
for debugging only and may produce lots of cryptic messages.
|
||||
|
||||
.SH NOTES
|
||||
|
||||
Support for ipfw was added in version 1.0.10 of Firewall Builder
|
||||
|
||||
|
||||
.SH URL
|
||||
Firewall Builder home page is located at the following URL:
|
||||
.B http://www.fwbuilder.org/
|
||||
|
||||
.SH BUGS
|
||||
Please report bugs using bug tracking system on SourceForge:
|
||||
|
||||
.BR http://sourceforge.net/tracker/?group_id=5314&atid=105314
|
||||
|
||||
|
||||
.SH SEE ALSO
|
||||
.BR fwbuilder(1),
|
||||
.BR fwb_ipt(1),
|
||||
.BR fwb_pf(1)
|
||||
.BR fwb_ipf(1)
|
||||
|
||||
.P
|
||||
@@ -0,0 +1,59 @@
|
||||
.TH fwb_ipt 1 "" FWB "Firewall Builder"
|
||||
.SH NAME
|
||||
fwb_ipt \- Policy compiler for iptables
|
||||
.SH SYNOPSIS
|
||||
|
||||
.B fwb_ipt
|
||||
.RB [-wvV]
|
||||
.RB [-d wdir]
|
||||
.RB [-o output.fw]
|
||||
.RB -f data_file.xml
|
||||
object_name
|
||||
|
||||
.SH "DESCRIPTION"
|
||||
|
||||
.B fwb_ipt
|
||||
is a firewall policy compiler component of Firewall Builder (see
|
||||
fwbuilder(1)). Compiler reads objects definitions and firewall
|
||||
description from the data file specified with "-f" option and
|
||||
generates resultant iptables script. The script is written to
|
||||
the file with the name the same as the name of the firewall
|
||||
object, plus extension ".fw".
|
||||
|
||||
The data file and the name of the firewall objects must be specified
|
||||
on the command line. Other command line parameters are optional.
|
||||
|
||||
.SH OPTIONS
|
||||
.IP "-f FILE"
|
||||
Specify the name of the data file to be processed.
|
||||
|
||||
.IP "-o output.fw"
|
||||
Specify output file name
|
||||
|
||||
.IP "-d wdir"
|
||||
Specify working directory. Compiler creates file with iptables script
|
||||
in this directory. If this parameter is missing, then iptables script
|
||||
will be placed in the current working directory.
|
||||
|
||||
.IP "-v"
|
||||
Be verbose: compiler prints diagnostic messages when it works.
|
||||
|
||||
.IP "-V"
|
||||
Print version number and quit.
|
||||
|
||||
.SH URL
|
||||
Firewall Builder home page is located at the following URL:
|
||||
.B http://www.fwbuilder.org/
|
||||
|
||||
.SH BUGS
|
||||
Please report bugs using bug tracking system on SourceForge:
|
||||
|
||||
.BR http://sourceforge.net/tracker/?group_id=5314&atid=105314
|
||||
|
||||
|
||||
.SH SEE ALSO
|
||||
.BR fwbuilder(1),
|
||||
.BR fwb_ipf(1),
|
||||
.BR fwb_pf(1)
|
||||
|
||||
.P
|
||||
@@ -0,0 +1,59 @@
|
||||
.TH fwb_ipt 1 "" FWB "Firewall Builder"
|
||||
.SH NAME
|
||||
fwb_ipt \- Policy compiler for iptables
|
||||
.SH SYNOPSIS
|
||||
|
||||
.B fwb_ipt
|
||||
.RB [-wvV]
|
||||
.RB [-d wdir]
|
||||
.RB [-o output.fw]
|
||||
.RB -f data_file.xml
|
||||
object_name
|
||||
|
||||
.SH "DESCRIPTION"
|
||||
|
||||
.B fwb_ipt
|
||||
is a firewall policy compiler component of Firewall Builder (see
|
||||
fwbuilder(1)). Compiler reads objects definitions and firewall
|
||||
description from the data file specified with "-f" option and
|
||||
generates resultant iptables script. The script is written to
|
||||
the file with the name the same as the name of the firewall
|
||||
object, plus extension ".fw".
|
||||
|
||||
The data file and the name of the firewall objects must be specified
|
||||
on the command line. Other command line parameters are optional.
|
||||
|
||||
.SH OPTIONS
|
||||
.IP "-f FILE"
|
||||
Specify the name of the data file to be processed.
|
||||
|
||||
.IP "-o output.fw"
|
||||
Specify output file name
|
||||
|
||||
.IP "-d wdir"
|
||||
Specify working directory. Compiler creates file with iptables script
|
||||
in this directory. If this parameter is missing, then iptables script
|
||||
will be placed in the current working directory.
|
||||
|
||||
.IP "-v"
|
||||
Be verbose: compiler prints diagnostic messages when it works.
|
||||
|
||||
.IP "-V"
|
||||
Print version number and quit.
|
||||
|
||||
.SH URL
|
||||
Firewall Builder home page is located at the following URL:
|
||||
.B http://www.fwbuilder.org/
|
||||
|
||||
.SH BUGS
|
||||
Please report bugs using bug tracking system on SourceForge:
|
||||
|
||||
.BR http://sourceforge.net/tracker/?group_id=5314&atid=105314
|
||||
|
||||
|
||||
.SH SEE ALSO
|
||||
.BR fwbuilder(1),
|
||||
.BR fwb_ipf(1),
|
||||
.BR fwb_pf(1)
|
||||
|
||||
.P
|
||||
+140
@@ -0,0 +1,140 @@
|
||||
.de Sp
|
||||
.if n .sp
|
||||
.if t .sp 0.4
|
||||
..
|
||||
.TH fwb_pf 1 "" FWB "Firewall Builder"
|
||||
.SH NAME
|
||||
fwb_pf \- Policy compiler for OpenBSD packet filter "pf"
|
||||
.SH SYNOPSIS
|
||||
|
||||
.B fwb_pf
|
||||
.B [-vVx]
|
||||
.B [-d wdir]
|
||||
.B [-o output.fw]
|
||||
.B -f data_file.xml
|
||||
object_name
|
||||
|
||||
.SH "DESCRIPTION"
|
||||
|
||||
.B fwb_pf
|
||||
is a firewall policy compiler component of Firewall Builder (see
|
||||
fwbuilder(1)). This compiler generates code for OpenBSD Packet
|
||||
Filter (pf). Compiler reads objects definitions and firewall description
|
||||
from the data file specified with "-f" option and generates pf
|
||||
configuration files and firewall activation script.
|
||||
|
||||
All generated files have names that start with the name of the
|
||||
firewall object. Firewall activation script has extension ".fw" and is
|
||||
simple shell script that flushes current policy, loads new filter and
|
||||
nat rules and then activates pf. PF configuration file name starts
|
||||
with the name of the firewall object, plus "-pf.conf". NAT
|
||||
configuration file name also starts with the name of the firewall
|
||||
object, plus "-nat.conf". For example, if firewall object has name
|
||||
"myfirewall", then compiler will create three files: "myfirewall.fw",
|
||||
"myfirewall-pf.conf", "myfirewall-nat.conf".
|
||||
|
||||
The data file and the name of the firewall objects must be specified
|
||||
on the command line. Other command line parameters are optional.
|
||||
|
||||
|
||||
.SH OPTIONS
|
||||
.IP "-f FILE"
|
||||
Specify the name of the data file to be processed.
|
||||
|
||||
.IP "-o output.fw"
|
||||
Specify output file name
|
||||
|
||||
.IP "-d wdir"
|
||||
Specify working directory. Compiler creates firewall activation
|
||||
script and PF configuration files in this directory. If this
|
||||
parameter is missing, then all files will be placed in the
|
||||
current working directory.
|
||||
|
||||
.IP "-v"
|
||||
Be verbose: compiler prints diagnostic messages when it works.
|
||||
|
||||
.IP "-V"
|
||||
Print version number and quit.
|
||||
|
||||
.IP "-x"
|
||||
Generate debugging information while working. This option is intended
|
||||
for debugging only and may produce lots of cryptic messages.
|
||||
|
||||
.SH NOTES
|
||||
Support for PF has been introduced in version 1.0.1 of Firewall Builder
|
||||
|
||||
|
||||
Supported features:
|
||||
|
||||
.IP o
|
||||
both pf.conf and nat.conf files are generated
|
||||
|
||||
.IP o
|
||||
negation in policy and NAT rules
|
||||
|
||||
.IP o
|
||||
grouping in "from", "to" and ports using '{' '}' syntax
|
||||
|
||||
.IP o
|
||||
if checkbox "Scrub" is checked in the rule options dialog, and
|
||||
rule's action is Accept, the compiler generates two (almost)
|
||||
identical rules: first with action 'scrub' and the second with
|
||||
action 'pass quick'
|
||||
|
||||
.IP o
|
||||
stateful inspection in individual rule can be turned off in rule
|
||||
options dialog. By default compiler adds "keep state" or "modulate
|
||||
state" to each rule with action 'pass'
|
||||
|
||||
.IP o
|
||||
rule options dialog provides a choice of icmp or tcp rst replies for
|
||||
rules with action "Reject"
|
||||
|
||||
.IP o
|
||||
compiler adds flag "allow-opts" if match on ip options is needed
|
||||
|
||||
.IP o
|
||||
compiler can generate rules matching on TCP flags
|
||||
|
||||
.IP o
|
||||
compiler can generate script adding ip aliases for NAT rules using addresses
|
||||
that do not belong to any interface of the firewall
|
||||
|
||||
.IP o
|
||||
compiler always adds rule "block quick all" at the very bottom of
|
||||
the script to ensure "block all by default" policy even if the policy
|
||||
is empty.
|
||||
|
||||
.IP o
|
||||
Address ranges in both policy and NAT
|
||||
|
||||
|
||||
.PP
|
||||
Features that are not supported (yet)
|
||||
|
||||
.IP o
|
||||
custom services
|
||||
|
||||
|
||||
.PP
|
||||
What will not be supported (at least not anytime soon)
|
||||
|
||||
.IP o
|
||||
policy routing
|
||||
|
||||
.SH URL
|
||||
Firewall Builder home page is located at the following URL:
|
||||
.B http://www.fwbuilder.org/
|
||||
|
||||
.SH BUGS
|
||||
Please report bugs using bug tracking system on SourceForge:
|
||||
|
||||
.BR http://sourceforge.net/tracker/?group_id=5314&atid=105314
|
||||
|
||||
|
||||
.SH SEE ALSO
|
||||
.BR fwbuilder(1),
|
||||
.BR fwb_ipt(1),
|
||||
.BR fwb_ipf(1)
|
||||
|
||||
.P
|
||||
+140
@@ -0,0 +1,140 @@
|
||||
.de Sp
|
||||
.if n .sp
|
||||
.if t .sp 0.4
|
||||
..
|
||||
.TH fwb_pf 1 "" FWB "Firewall Builder"
|
||||
.SH NAME
|
||||
fwb_pf \- Policy compiler for OpenBSD packet filter "pf"
|
||||
.SH SYNOPSIS
|
||||
|
||||
.B fwb_pf
|
||||
.B [-vVx]
|
||||
.B [-d wdir]
|
||||
.B [-o output.fw]
|
||||
.B -f data_file.xml
|
||||
object_name
|
||||
|
||||
.SH "DESCRIPTION"
|
||||
|
||||
.B fwb_pf
|
||||
is a firewall policy compiler component of Firewall Builder (see
|
||||
fwbuilder(1)). This compiler generates code for OpenBSD Packet
|
||||
Filter (pf). Compiler reads objects definitions and firewall description
|
||||
from the data file specified with "-f" option and generates pf
|
||||
configuration files and firewall activation script.
|
||||
|
||||
All generated files have names that start with the name of the
|
||||
firewall object. Firewall activation script has extension ".fw" and is
|
||||
simple shell script that flushes current policy, loads new filter and
|
||||
nat rules and then activates pf. PF configuration file name starts
|
||||
with the name of the firewall object, plus "-pf.conf". NAT
|
||||
configuration file name also starts with the name of the firewall
|
||||
object, plus "-nat.conf". For example, if firewall object has name
|
||||
"myfirewall", then compiler will create three files: "myfirewall.fw",
|
||||
"myfirewall-pf.conf", "myfirewall-nat.conf".
|
||||
|
||||
The data file and the name of the firewall objects must be specified
|
||||
on the command line. Other command line parameters are optional.
|
||||
|
||||
|
||||
.SH OPTIONS
|
||||
.IP "-f FILE"
|
||||
Specify the name of the data file to be processed.
|
||||
|
||||
.IP "-o output.fw"
|
||||
Specify output file name
|
||||
|
||||
.IP "-d wdir"
|
||||
Specify working directory. Compiler creates firewall activation
|
||||
script and PF configuration files in this directory. If this
|
||||
parameter is missing, then all files will be placed in the
|
||||
current working directory.
|
||||
|
||||
.IP "-v"
|
||||
Be verbose: compiler prints diagnostic messages when it works.
|
||||
|
||||
.IP "-V"
|
||||
Print version number and quit.
|
||||
|
||||
.IP "-x"
|
||||
Generate debugging information while working. This option is intended
|
||||
for debugging only and may produce lots of cryptic messages.
|
||||
|
||||
.SH NOTES
|
||||
Support for PF has been introduced in version 1.0.1 of Firewall Builder
|
||||
|
||||
|
||||
Supported features:
|
||||
|
||||
.IP o
|
||||
both pf.conf and nat.conf files are generated
|
||||
|
||||
.IP o
|
||||
negation in policy and NAT rules
|
||||
|
||||
.IP o
|
||||
grouping in "from", "to" and ports using '{' '}' syntax
|
||||
|
||||
.IP o
|
||||
if checkbox "Scrub" is checked in the rule options dialog, and
|
||||
rule's action is Accept, the compiler generates two (almost)
|
||||
identical rules: first with action 'scrub' and the second with
|
||||
action 'pass quick'
|
||||
|
||||
.IP o
|
||||
stateful inspection in individual rule can be turned off in rule
|
||||
options dialog. By default compiler adds "keep state" or "modulate
|
||||
state" to each rule with action 'pass'
|
||||
|
||||
.IP o
|
||||
rule options dialog provides a choice of icmp or tcp rst replies for
|
||||
rules with action "Reject"
|
||||
|
||||
.IP o
|
||||
compiler adds flag "allow-opts" if match on ip options is needed
|
||||
|
||||
.IP o
|
||||
compiler can generate rules matching on TCP flags
|
||||
|
||||
.IP o
|
||||
compiler can generate script adding ip aliases for NAT rules using addresses
|
||||
that do not belong to any interface of the firewall
|
||||
|
||||
.IP o
|
||||
compiler always adds rule "block quick all" at the very bottom of
|
||||
the script to ensure "block all by default" policy even if the policy
|
||||
is empty.
|
||||
|
||||
.IP o
|
||||
Address ranges in both policy and NAT
|
||||
|
||||
|
||||
.PP
|
||||
Features that are not supported (yet)
|
||||
|
||||
.IP o
|
||||
custom services
|
||||
|
||||
|
||||
.PP
|
||||
What will not be supported (at least not anytime soon)
|
||||
|
||||
.IP o
|
||||
policy routing
|
||||
|
||||
.SH URL
|
||||
Firewall Builder home page is located at the following URL:
|
||||
.B http://www.fwbuilder.org/
|
||||
|
||||
.SH BUGS
|
||||
Please report bugs using bug tracking system on SourceForge:
|
||||
|
||||
.BR http://sourceforge.net/tracker/?group_id=5314&atid=105314
|
||||
|
||||
|
||||
.SH SEE ALSO
|
||||
.BR fwbuilder(1),
|
||||
.BR fwb_ipt(1),
|
||||
.BR fwb_ipf(1)
|
||||
|
||||
.P
|
||||
@@ -0,0 +1,94 @@
|
||||
.TH fwbedit 1 "" FWB "Firewall Builder"
|
||||
.LO 1
|
||||
.SH NAME
|
||||
fwbedit \- General purpose object tree editing tool
|
||||
.SH SYNOPSIS
|
||||
|
||||
.B fwbedit
|
||||
.RB [-a obj,grp]
|
||||
.RB [-r obj,grp]
|
||||
.RB [-d obj]
|
||||
.RB -f data_file.xml
|
||||
|
||||
|
||||
.SH "DESCRIPTION"
|
||||
|
||||
.B fwbedit
|
||||
is a general purpose object tree editing tool for Firewall Builder (see
|
||||
fwbuilder(1)). This tool can be used in the shell scripts written for
|
||||
batch-processing of the Firewall Builder data files. Fwbedit can
|
||||
perform the following operations on the objects and the tree: add a
|
||||
reference to the given object to a group, remove reference to an
|
||||
object from a group and delete an object and all references to it from
|
||||
the tree. Both object and a group can be specified by their ID or
|
||||
by their name and a full path in the tree (see section
|
||||
.B EXAMPLES
|
||||
below).
|
||||
|
||||
.SH OPTIONS
|
||||
.IP "-f FILE"
|
||||
Specify the name of the data file to be processed.
|
||||
|
||||
.IP "-a obj,grp"
|
||||
Adds reference to object 'obj' to the group 'grp'.
|
||||
|
||||
.IP "-r obj,grp"
|
||||
Removes reference to object 'obj' from the group 'grp'.
|
||||
|
||||
.IP "-d obj"
|
||||
Deletes object 'obj' and references to it from all groups and rules.
|
||||
|
||||
.IP "-V"
|
||||
Prints version number and quit.
|
||||
|
||||
.SH EXAMPLES
|
||||
.PP
|
||||
fwbedit -f x.xml -a /Objects/Hosts/A,/Objects/Groups/B
|
||||
.PP
|
||||
Adds reference to the Host object 'A' to the group 'B'.
|
||||
.PP
|
||||
.PP
|
||||
fwbedit -f x.xml -a id3D71A1BA,id3D151943
|
||||
.PP
|
||||
Adds reference to the object with ID id3D71A1BA to the group with ID
|
||||
id3D151943. If objects with given IDs do not exist, fwbedit prints an
|
||||
error message and does not make any changes in the data file.
|
||||
.PP
|
||||
.PP
|
||||
fwbedit -f x.xml -a id3D71A1BA,/Objects/Groups/testgroup
|
||||
.PP
|
||||
Adds reference to the object with ID id3D71A1BA to the group
|
||||
'testgroup'.
|
||||
.PP
|
||||
.PP
|
||||
fwbedit can be used in combination with fwblookup to execute
|
||||
operations on many objects:
|
||||
.LP
|
||||
fwblookup -f x.xml -lP /Objects/Hosts | \\
|
||||
grep domain.com | \\
|
||||
while read h; do \\
|
||||
fwbedit -f x.xml -a $h,/Objects/Groups/domainGRP; \\
|
||||
done
|
||||
.PP
|
||||
first, this script uses fwblookup to print full path of all Host
|
||||
objects (option -l in combination with option -P prints full path for
|
||||
all children objects of /Objects/Hosts), then uses grep to filter only
|
||||
those hosts that have 'domain.com' in their name, then cycles through
|
||||
the obtained list and uses fwbedit to add them to the group 'domainGRP'.
|
||||
|
||||
|
||||
.SH URL
|
||||
Firewall Builder home page is located at the following URL:
|
||||
.B http://www.fwbuilder.org/
|
||||
|
||||
.SH BUGS
|
||||
Please report bugs using bug tracking system on SourceForge:
|
||||
|
||||
.BR http://sourceforge.net/tracker/?group_id=5314&atid=105314
|
||||
|
||||
|
||||
.SH SEE ALSO
|
||||
.BR fwbuilder(1),
|
||||
.BR fwblookup(1),
|
||||
|
||||
.P
|
||||
@@ -0,0 +1,94 @@
|
||||
.TH fwbedit 1 "" FWB "Firewall Builder"
|
||||
.LO 1
|
||||
.SH NAME
|
||||
fwbedit \- General purpose object tree editing tool
|
||||
.SH SYNOPSIS
|
||||
|
||||
.B fwbedit
|
||||
.RB [-a obj,grp]
|
||||
.RB [-r obj,grp]
|
||||
.RB [-d obj]
|
||||
.RB -f data_file.xml
|
||||
|
||||
|
||||
.SH "DESCRIPTION"
|
||||
|
||||
.B fwbedit
|
||||
is a general purpose object tree editing tool for Firewall Builder (see
|
||||
fwbuilder(1)). This tool can be used in the shell scripts written for
|
||||
batch-processing of the Firewall Builder data files. Fwbedit can
|
||||
perform the following operations on the objects and the tree: add a
|
||||
reference to the given object to a group, remove reference to an
|
||||
object from a group and delete an object and all references to it from
|
||||
the tree. Both object and a group can be specified by their ID or
|
||||
by their name and a full path in the tree (see section
|
||||
.B EXAMPLES
|
||||
below).
|
||||
|
||||
.SH OPTIONS
|
||||
.IP "-f FILE"
|
||||
Specify the name of the data file to be processed.
|
||||
|
||||
.IP "-a obj,grp"
|
||||
Adds reference to object 'obj' to the group 'grp'.
|
||||
|
||||
.IP "-r obj,grp"
|
||||
Removes reference to object 'obj' from the group 'grp'.
|
||||
|
||||
.IP "-d obj"
|
||||
Deletes object 'obj' and references to it from all groups and rules.
|
||||
|
||||
.IP "-V"
|
||||
Prints version number and quit.
|
||||
|
||||
.SH EXAMPLES
|
||||
.PP
|
||||
fwbedit -f x.xml -a /Objects/Hosts/A,/Objects/Groups/B
|
||||
.PP
|
||||
Adds reference to the Host object 'A' to the group 'B'.
|
||||
.PP
|
||||
.PP
|
||||
fwbedit -f x.xml -a id3D71A1BA,id3D151943
|
||||
.PP
|
||||
Adds reference to the object with ID id3D71A1BA to the group with ID
|
||||
id3D151943. If objects with given IDs do not exist, fwbedit prints an
|
||||
error message and does not make any changes in the data file.
|
||||
.PP
|
||||
.PP
|
||||
fwbedit -f x.xml -a id3D71A1BA,/Objects/Groups/testgroup
|
||||
.PP
|
||||
Adds reference to the object with ID id3D71A1BA to the group
|
||||
'testgroup'.
|
||||
.PP
|
||||
.PP
|
||||
fwbedit can be used in combination with fwblookup to execute
|
||||
operations on many objects:
|
||||
.LP
|
||||
fwblookup -f x.xml -lP /Objects/Hosts | \\
|
||||
grep domain.com | \\
|
||||
while read h; do \\
|
||||
fwbedit -f x.xml -a $h,/Objects/Groups/domainGRP; \\
|
||||
done
|
||||
.PP
|
||||
first, this script uses fwblookup to print full path of all Host
|
||||
objects (option -l in combination with option -P prints full path for
|
||||
all children objects of /Objects/Hosts), then uses grep to filter only
|
||||
those hosts that have 'domain.com' in their name, then cycles through
|
||||
the obtained list and uses fwbedit to add them to the group 'domainGRP'.
|
||||
|
||||
|
||||
.SH URL
|
||||
Firewall Builder home page is located at the following URL:
|
||||
.B http://www.fwbuilder.org/
|
||||
|
||||
.SH BUGS
|
||||
Please report bugs using bug tracking system on SourceForge:
|
||||
|
||||
.BR http://sourceforge.net/tracker/?group_id=5314&atid=105314
|
||||
|
||||
|
||||
.SH SEE ALSO
|
||||
.BR fwbuilder(1),
|
||||
.BR fwblookup(1),
|
||||
|
||||
.P
|
||||
@@ -0,0 +1,95 @@
|
||||
.TH fwblookup 1 "" FWB "Firewall Builder"
|
||||
.SH NAME
|
||||
fwblookup \- General purpose object lookup tool
|
||||
.SH SYNOPSIS
|
||||
|
||||
.B fwblookup
|
||||
.RB [-a attribute]
|
||||
.RB [-rADILMNPTV]
|
||||
.RB -f data_file.xml
|
||||
object_id|tree_path_to_object
|
||||
|
||||
.SH "DESCRIPTION"
|
||||
|
||||
.B fwblookup
|
||||
is a general purpose object lookup tool for Firewall Builder (see
|
||||
fwbuilder(1)). This tool finds object in the data file specified with
|
||||
"-f" option and prints its attributes requested via command line
|
||||
options. Object to be found is designated by its ID or full tree path
|
||||
given as an argument on the command line. This tool can be used in
|
||||
scripts that need to be able to find and inspect objects in the XML
|
||||
file, such as firewall policy installation script etc.
|
||||
|
||||
.SH OPTIONS
|
||||
.IP "-f FILE"
|
||||
Specify the name of the data file to be processed.
|
||||
|
||||
.IP "-a atribute"
|
||||
Print value of the XML attribute 'attribute'. If specified attribute
|
||||
does not exist in the object, fwblookup prints an error message and
|
||||
terminates. This is universal option that can find and print any
|
||||
attribute in any object, provided it exists, however you need to know
|
||||
full tree path to the object or its ID and correct name of the
|
||||
attribute you want to print. This means that detailed knowledge of
|
||||
Firewall Builder XML DTD is required. See below for some convenient
|
||||
shortcut options. This option can be used only once on a command line;
|
||||
if it is used multiple times, then only the last attribute is printed.
|
||||
|
||||
.IP "-A"
|
||||
Print an address of the object. Since not all objects can have an
|
||||
address, the program verifies type of the object and returns an error
|
||||
if the object does not have an address.
|
||||
|
||||
.IP "-D"
|
||||
Dump all the data available for the object. If option "-r" is also
|
||||
used, dump recursively the object and all other objects in the tree
|
||||
below it.
|
||||
|
||||
.IP "-I"
|
||||
Print object's ID.
|
||||
|
||||
.IP "-l"
|
||||
List all the objects located immediately under the given object in the
|
||||
tree (its 'children') and print their names, IDs, path or type,
|
||||
depending on the options -N, -I, -T or -P which can be used together
|
||||
with -l.
|
||||
|
||||
.IP "-L"
|
||||
Print interface label
|
||||
|
||||
.IP "-M"
|
||||
Print management address. Only Host and Firewall objects can have
|
||||
management address.
|
||||
|
||||
.IP "-N"
|
||||
Print object's name
|
||||
|
||||
.IP "-P"
|
||||
Print full tree path to the object, starting with a tree root
|
||||
"FWobjectDatabase".
|
||||
|
||||
.IP "-r"
|
||||
Dump or list the object and all other objects in the tree below
|
||||
it (see "-l and -D")
|
||||
|
||||
.IP "-T"
|
||||
Print objects's type name.
|
||||
|
||||
.IP "-V"
|
||||
Print version number and quit.
|
||||
|
||||
.SH URL
|
||||
Firewall Builder home page is located at the following URL:
|
||||
.B http://www.fwbuilder.org/
|
||||
|
||||
.SH BUGS
|
||||
Please report bugs using bug tracking system on SourceForge:
|
||||
|
||||
.BR http://sourceforge.net/tracker/?group_id=5314&atid=105314
|
||||
|
||||
|
||||
.SH SEE ALSO
|
||||
.BR fwbuilder(1),
|
||||
.BR fwbedit(1),
|
||||
|
||||
.P
|
||||
@@ -0,0 +1,95 @@
|
||||
.TH fwblookup 1 "" FWB "Firewall Builder"
|
||||
.SH NAME
|
||||
fwblookup \- General purpose object lookup tool
|
||||
.SH SYNOPSIS
|
||||
|
||||
.B fwblookup
|
||||
.RB [-a attribute]
|
||||
.RB [-rADILMNPTV]
|
||||
.RB -f data_file.xml
|
||||
object_id|tree_path_to_object
|
||||
|
||||
.SH "DESCRIPTION"
|
||||
|
||||
.B fwblookup
|
||||
is a general purpose object lookup tool for Firewall Builder (see
|
||||
fwbuilder(1)). This tool finds object in the data file specified with
|
||||
"-f" option and prints its attributes requested via command line
|
||||
options. Object to be found is designated by its ID or full tree path
|
||||
given as an argument on the command line. This tool can be used in
|
||||
scripts that need to be able to find and inspect objects in the XML
|
||||
file, such as firewall policy installation script etc.
|
||||
|
||||
.SH OPTIONS
|
||||
.IP "-f FILE"
|
||||
Specify the name of the data file to be processed.
|
||||
|
||||
.IP "-a atribute"
|
||||
Print value of the XML attribute 'attribute'. If specified attribute
|
||||
does not exist in the object, fwblookup prints an error message and
|
||||
terminates. This is universal option that can find and print any
|
||||
attribute in any object, provided it exists, however you need to know
|
||||
full tree path to the object or its ID and correct name of the
|
||||
attribute you want to print. This means that detailed knowledge of
|
||||
Firewall Builder XML DTD is required. See below for some convenient
|
||||
shortcut options. This option can be used only once on a command line;
|
||||
if it is used multiple times, then only the last attribute is printed.
|
||||
|
||||
.IP "-A"
|
||||
Print an address of the object. Since not all objects can have an
|
||||
address, the program verifies type of the object and returns an error
|
||||
if the object does not have an address.
|
||||
|
||||
.IP "-D"
|
||||
Dump all the data available for the object. If option "-r" is also
|
||||
used, dump recursively the object and all other objects in the tree
|
||||
below it.
|
||||
|
||||
.IP "-I"
|
||||
Print object's ID.
|
||||
|
||||
.IP "-l"
|
||||
List all the objects located immediately under the given object in the
|
||||
tree (its 'children') and print their names, IDs, path or type,
|
||||
depending on the options -N, -I, -T or -P which can be used together
|
||||
with -l.
|
||||
|
||||
.IP "-L"
|
||||
Print interface label
|
||||
|
||||
.IP "-M"
|
||||
Print management address. Only Host and Firewall objects can have
|
||||
management address.
|
||||
|
||||
.IP "-N"
|
||||
Print object's name
|
||||
|
||||
.IP "-P"
|
||||
Print full tree path to the object, starting with a tree root
|
||||
"FWobjectDatabase".
|
||||
|
||||
.IP "-r"
|
||||
Dump or list the object and all other objects in the tree below
|
||||
it (see "-l and -D")
|
||||
|
||||
.IP "-T"
|
||||
Print objects's type name.
|
||||
|
||||
.IP "-V"
|
||||
Print version number and quit.
|
||||
|
||||
.SH URL
|
||||
Firewall Builder home page is located at the following URL:
|
||||
.B http://www.fwbuilder.org/
|
||||
|
||||
.SH BUGS
|
||||
Please report bugs using bug tracking system on SourceForge:
|
||||
|
||||
.BR http://sourceforge.net/tracker/?group_id=5314&atid=105314
|
||||
|
||||
|
||||
.SH SEE ALSO
|
||||
.BR fwbuilder(1),
|
||||
.BR fwbedit(1),
|
||||
|
||||
.P
|
||||
@@ -0,0 +1,62 @@
|
||||
.de Sp
|
||||
.if n .sp
|
||||
.if t .sp 0.4
|
||||
..
|
||||
.TH fwbuilder 1 "" FWB "Firewall Builder"
|
||||
.SH NAME
|
||||
fwbuilder \- Multiplatform firewall configuration tool
|
||||
.SH SYNOPSIS
|
||||
|
||||
.B /usr/bin/fwbuilder
|
||||
[
|
||||
.B -f file.xml
|
||||
]
|
||||
|
||||
.SH "DESCRIPTION"
|
||||
|
||||
.B fwbuilder
|
||||
is the Graphic User Interface (GUI) component of Firewall Builder.
|
||||
|
||||
Firewall Builder consists of a GUI and set of policy
|
||||
compilers for various firewall platforms. It helps
|
||||
users maintain a database of objects and allows policy
|
||||
editing using simple drag-and-drop operations. GUI
|
||||
generates firewall description in the form of XML file,
|
||||
which compilers then interpret and generate platform-specific
|
||||
code. Several algorithms are provided for automated
|
||||
network objects discovery and bulk import of data. The
|
||||
GUI and policy compilers are completely independent,
|
||||
this provides for a consistent abstract model and the
|
||||
same GUI for different firewall platforms.
|
||||
|
||||
At the moment of this writing Firewall Builder supports firewalls
|
||||
based on iptables (available on Linux, kernel 2.4.x, see
|
||||
fwb_ipt(1)), ipfilter (available on a variety of platforms
|
||||
including *BSD, Solaris and others, see fwb_ipf(1)) and pf (available
|
||||
on OpenBSD 3.0, see fwb_pf(1))
|
||||
|
||||
.SH OPTIONS
|
||||
.IP "-f FILE"
|
||||
Specify the name of the file to be loaded when program starts.
|
||||
|
||||
.SH FILES
|
||||
.IP $HOME/.qt/firewallbuilder2rc
|
||||
fwbuilder stores user preferences in this file
|
||||
|
||||
.SH URL
|
||||
Firewall Builder home page is located at the following URL:
|
||||
.B http://www.fwbuilder.org/
|
||||
|
||||
.SH BUGS
|
||||
Please report bugs using bug tracking system on SourceForge:
|
||||
|
||||
.BR http://sourceforge.net/tracker/?group_id=5314&atid=105314
|
||||
|
||||
|
||||
.SH SEE ALSO
|
||||
.BR fwblookup(1),
|
||||
.BR fwb_ipt(1),
|
||||
.BR fwb_ipf(1),
|
||||
.BR fwb_pf(1)
|
||||
|
||||
.P
|
||||
@@ -0,0 +1,62 @@
|
||||
.de Sp
|
||||
.if n .sp
|
||||
.if t .sp 0.4
|
||||
..
|
||||
.TH fwbuilder 1 "" FWB "Firewall Builder"
|
||||
.SH NAME
|
||||
fwbuilder \- Multiplatform firewall configuration tool
|
||||
.SH SYNOPSIS
|
||||
|
||||
.B /usr/bin/fwbuilder
|
||||
[
|
||||
.B -f file.xml
|
||||
]
|
||||
|
||||
.SH "DESCRIPTION"
|
||||
|
||||
.B fwbuilder
|
||||
is the Graphic User Interface (GUI) component of Firewall Builder.
|
||||
|
||||
Firewall Builder consists of a GUI and set of policy
|
||||
compilers for various firewall platforms. It helps
|
||||
users maintain a database of objects and allows policy
|
||||
editing using simple drag-and-drop operations. GUI
|
||||
generates firewall description in the form of XML file,
|
||||
which compilers then interpret and generate platform-specific
|
||||
code. Several algorithms are provided for automated
|
||||
network objects discovery and bulk import of data. The
|
||||
GUI and policy compilers are completely independent,
|
||||
this provides for a consistent abstract model and the
|
||||
same GUI for different firewall platforms.
|
||||
|
||||
At the moment of this writing Firewall Builder supports firewalls
|
||||
based on iptables (available on Linux, kernel 2.4.x, see
|
||||
fwb_ipt(1)), ipfilter (available on a variety of platforms
|
||||
including *BSD, Solaris and others, see fwb_ipf(1)) and pf (available
|
||||
on OpenBSD 3.0, see fwb_pf(1))
|
||||
|
||||
.SH OPTIONS
|
||||
.IP "-f FILE"
|
||||
Specify the name of the file to be loaded when program starts.
|
||||
|
||||
.SH FILES
|
||||
.IP $HOME/.qt/firewallbuilder2rc
|
||||
fwbuilder stores user preferences in this file
|
||||
|
||||
.SH URL
|
||||
Firewall Builder home page is located at the following URL:
|
||||
.B http://www.fwbuilder.org/
|
||||
|
||||
.SH BUGS
|
||||
Please report bugs using bug tracking system on SourceForge:
|
||||
|
||||
.BR http://sourceforge.net/tracker/?group_id=5314&atid=105314
|
||||
|
||||
|
||||
.SH SEE ALSO
|
||||
.BR fwblookup(1),
|
||||
.BR fwb_ipt(1),
|
||||
.BR fwb_ipf(1),
|
||||
.BR fwb_pf(1)
|
||||
|
||||
.P
|
||||
Reference in New Issue
Block a user