1
0
mirror of https://github.com/fwbuilder/fwbuilder synced 2026-03-22 11:17:31 +01:00

462 Commits

Author SHA1 Message Date
Vadim Kurland
493d22fd1c 2009-12-14 vadim <vadim@vk.crocodile.org>
* src/res/configlets/linux24/automatic_rules: Generation of the
automatic rules (matching ESTABLISHED and INVALID states,
backup ssh access and others) now uses configlet. Fixes #883

* src/res/configlets/linux24/automatic_rules: generated script can
now include automatic rules to match IPv6 neighbor discovery ICMP6
packets. This is controlled by a checkbox in the iptables
"advanced" settings dialog and is off by default. Fixes #878
2009-12-15 00:15:58 +00:00
Vadim Kurland
dbd9ab11f0 2009-12-14 vadim <vadim@vk.crocodile.org>
* PrefsDialog.cpp (PrefsDialog::accept): Added a place in the
global Preferences dialog for options specific for different
object types. First parameters include options for DNSName and
AddressTable to let the user decide if the newly created objects
of these types should be automatically configured with "Compile
Time" or "Run Time" mode. Also, added an option that makes DNSName
object editor copy the name of the object into the DNS record
input field when new object is created or whenever the name
changes.  This is useful when the user does not want to keep
object name and dns record different because they need to enter
the name only once.

* DNSNameDialog.cpp (DNSNameDialog::applyChanges): If global
Preferences option "Use DNS Name object name for the DNS record"
is turned on, copy the name into the record on every name change.
Fixes #866
2009-12-14 21:07:39 +00:00
Vadim Kurland
add2628ba8 2009-12-11 vadim <vadim@vk.crocodile.org>
* GroupObjectDialog.cpp (GroupObjectDialog::newObject):
Implemented feature request #2245537 "Add service object to
service groups directly from groups". Group object dialog now has
a button that shows a menu when clicked, this menu allows the user
to create new object and add it to the group in one operation.
This fixes #119

* ObjectManipulator::addNewObjectMenuItem: fixes #850 Redesigned
methods used to create "new object" menu and call functions that
create new objects to be able to build menus with limited sets
of new object types.

* ../src/gui/FWBTree.h (class FWBTree): added methods
getTranslatableObjectTypeName and getTranslatableNewObjectMenuText
that return translatable strings for the given object type name.
2009-12-12 04:50:41 +00:00
Vadim Kurland
8c88569276 change log and release notes records 2009-12-09 18:44:24 +00:00
Vadim Kurland
e97f326f7b fixes #202 implemented library merge function in fwbedit 2009-12-09 00:59:54 +00:00
Vadim Kurland
96f309c9f3 fixes #807 also using events in where used to show and select objects 2009-12-08 01:27:03 +00:00
Vadim Kurland
c7c0ccccd3 fixes #397 : unified terminology for Branch and Tag actions; minor dialog reformatting for rule actions 2009-12-04 18:36:52 +00:00
Vadim Kurland
aa34ea4cfd refs #651 added changelog record 2009-12-02 04:44:37 +00:00
Vadim Kurland
5fa8b694d1 fixes #750 (remove object from clipboard when it is delted), fixes #743 (changelog and release notes entry for the new newCluster) 2009-11-29 17:53:31 +00:00
Vadim Kurland
189d85089c object dialogs save changes instantly. Fixes #669 2009-11-22 02:44:42 +00:00
Vadim Kurland
faba808d35 New feature: when user creates new firewall from a template, the
wizard dialog now offers a new page where they can change ip
addresses of the interfaces of the template. User can change name,
label, address, netmask, MAC address and type (regular/dynamic) of
the interface, as well as add and delete interfaces. The program
then creates interface objects with new parameters and updates
policy and NAT rules of the template. It creates new Network and
NetworkIPv6 objects using new addresses and replaces references to
network objects that match old addresses with references to these
new objects in rules and groups. This eliminates the need to do
manual search and replace to update firewall object created from a
template to make it match actual user network configuration.
Fixes #613
2009-11-14 23:37:37 +00:00
Vadim Kurland
74d9cb6002 fixes #598 now generating failover commands 2009-11-12 02:08:50 +00:00
Vadim Kurland
12e1050803 see #586 preliminary: generating failover commands for PIX cluster 2009-11-11 02:28:02 +00:00
Vadim Kurland
672b8ff586 fixes #591 using configlet to generate interface configuration commands for PIX 2009-11-10 19:27:20 +00:00
Vadim Kurland
993c93cf44 2009-11-10 vadim <vadim@vk.crocodile.org>
* ObjectManipulator.cpp (ObjectManipulator::libChanged):
Experimental change in the GUI, new feature: Now the program does
not switch object in the editor on a single click in the tree.
User should double click object in the tree or use context menu
item "Edit" to open object in the editor. User can select
different object in the tree or switch to another library while
editor has unsaved changes. This helps, for example, when they
need to populate large object group and need to switch between
libraries to find objects. Switching to another library or
accidentally clicking on a wrong object in the tree does not cause
editor to switch.
2009-11-10 14:18:11 +00:00
Vadim Kurland
85703ff361 2009-11-09 vadim <vadim@vk.crocodile.org>
* CompilerDriver_pix_run.cpp (CompilerDriver_pix::run): Added
            support for failover configurations for PIX.

            - Interfaces of member firewalls used for failover configuration
            should be marked as "Dedicated failover" interfaces. They should
            have normal IP addresses. These interfaces will be used to
            generate "failover" commands in the PIX configuration.

            - Cluster should have interface with the same name as failover
            interfaces of the members, with protocol set to "PIX failover" and
            members configured as usual. This interface has no ip address.

            - Other interfaces of the cluster have the same name as
            corresponding interfaces of the member firewalls, protocol "None"
            and failover groups that define members as usual. These cluster
            interfaces also have no ip address.

            - Cluster state synchronization group uses protocol "PIX state
            synchrnization" and its members should be configured as usual.
            Use failover interfaces of the members as members of the state
            sync group.

            * Interface.cpp: Added attribute "dedicated_failover" to the
            Interface object. Interfaces with this attribute are treated like
            other "unprotected" interfaces, that is they are not used to
            attach ACLs to and not used in rules. Dedicated failover
            interfaces have special meaning in PIX configurations and are used
            to describe interfaces used for LAN failover.
2009-11-10 05:14:04 +00:00
Vadim Kurland
33fac22504 * PolicyCompiler_iosacl_writers.cpp (PrintRule::_printTCPFlags):
Implemented TCP flag matching per #2865044: "Add TCP options
support for IOS ACL". Uses extended ACL option "match-all" that
supports list of TCP flags that should be set and cleared. This
requires IOS v12.4 or later even though Cisco documentation seems
to indicate this option was introduced in 12.3(4)T. Fixes #455
2009-11-08 06:21:39 +00:00
Vadim Kurland
9750dea494 * PolicyCompiler_pix_writers.cpp (PrintRule::_printDstService): PIX
does not support IP options matching, compiler issues warning.
        Fixes #567

        * res/platform/iosacl.xml: Recognized IOS versions: 12.1, 12.2,
        12.3

        * PolicyCompiler_iosacl_writers.cpp (PrintRule::_printIPServiceOptions):
        Added support for IP options matching, requires IOS v12.3 or
        later. Fixes #566, #568
2009-11-07 02:32:50 +00:00
Vadim Kurland
2e6c6d9de6 merge from v3 r1685:1687 2009-11-06 18:09:27 +00:00
Vadim Kurland
927baf9333 * configlets/sveasoft/script_skeleton: Fixes #571 /bin/sh on
Sveasoft (busybox) does not like empty shell functions and fails
        with an error "36: Syntax error: "}" unexpected". Will call
        /bin/true as a placeholder so that if some other commands are
        added to the function body during template expansion, they are
        executed after /bin/true and their return code is preserved. If no
        commands are added, then the function body won't be empty and will
        return success.
2009-11-06 17:48:38 +00:00
Vadim Kurland
7971502d72 * NATCompiler_pf.cpp (NATCompiler_pf::compile): fixed bug
#2889579: "fwb_pf crash when unnumbered interface is used in nat
        rule". Compiler for PF crashed when unnumbered interface was used
        in TSrc element of a NAT rule.
2009-11-06 14:09:34 +00:00
Vadim Kurland
b570690ddb 2009-11-06 vadim <vadim@vk.crocodile.org>
* PolicyCompiler_PrintRule.cpp (PrintRule::_printSrcAddr): Fixed
            bug #2892100: "'Old boradcast' object produces 0/0 in iptables
            script". The bug triggered when iptables version was set to 1.3.x
            or later. "Old broadcast" object is defined as AddressRange with
            0.0.0.0 as a start and end addresses of the range. Generated
            script should have "0.0.0.0" but the compiler uses "0/0" instead.
2009-11-06 13:36:08 +00:00
Vadim Kurland
e14dc615fb fixes #565 Ability to match ip options in fwb_ipfw; warning when IPService object with "any options" attribute is used 2009-11-04 20:14:21 +00:00
Vadim Kurland
d58bc1ccc1 GUI support for the "any options" attribute of IPService object. Fixes #561 2009-11-04 14:52:40 +00:00
Vadim Kurland
f8142047d7 2009-11-03 Vadim Kurland <vadim@vk.crocodile.org>
* NATCompiler_ipt.cpp (dynamicInterfaceInTSrc::processNext):
Implemented feature request #2829661: "SNAT instead of MASQUERADE
on dynamic interfaces". NAT rule options dialog now has a checkbox
that makes compiler use SNAT target instead of MASQUERADING when
checked when TSrc has dynamic interface. Apparently MASQ target
has problems when iptables NAT is used in combination with policy
routing. Using SNAT with a variable that gets interface address
solves the problem. By default this option is off, that is
compiler uses MASQUERADE target when TSrc has dynamic interface.
Fixes #560
2009-11-03 17:21:00 +00:00
Vadim Kurland
313184be2c 2009-11-03 Vadim Kurland <vadim@vk.crocodile.org>
* PolicyCompiler_ipt.cpp (PolicyCompiler_ipt::prolog): Fixed bug
#2792847 (SourceForge) "cant turn off "part of any" for a rule if
default is on". There was no way to turn option "Assume firewall
is part of any" for just one rule when it was ON globally. Now
this attribute is presented as a tri-state control in the rule
options dialog, with options "Follow global setting", "On" and
"Off". Now this option can be turned on and off in individual
rules regardless of the global setting. Default is "follow
global".  Old "Off" maps to the new "follow global", old "On" maps
to the new "On". Fixes #559.
2009-11-03 12:16:36 +00:00
Vadim Kurland
1c8eb6d7ac 2009-11-02 Vadim Kurland <vadim@vk.crocodile.org>
* PolicyCompiler_pf_writers.cpp (PrintRule::_printInterface): New
feature: optimization in compiler for PF. Rules that have several
interface objects (or a group) in the "Interface" column are
compiled using "{ }" grouping to produce only one configuration
line instead of several for such rule. Fixes #76
2009-11-02 18:03:20 +00:00
Vadim Kurland
aab1d76910 2009-11-02 Vadim Kurland <vadim@vk.crocodile.org>
* PolicyCompiler_pf.cpp (SpecialServices::processNext): Compiler
for PF generates "allow-opts" keyword when IPService object used
in the rule has IP options. This includes new option "router-alert".
Fixes #503

* IPServiceDialog.cpp (IPServiceDialog::applyChanges): Added GUI
elements to support IP option "router-alert" which is now
available as an attribute of IPService object. Fixes #502
2009-11-02 14:10:56 +00:00
Vadim Kurland
2310dad6ff 2009-11-01 Vadim Kurland <vadim@vk.crocodile.org>
* CompilerDriver_pf.cpp (CompilerDriver_pf::printStaticOptions):
Added support for PF configuration parameter "set state-policy"
which can have values "if-bound" or "floating". The GUI input
element provides these options in addition to the default empty
option. If empty list item is selected, command "set state-policy"
is not added to the generated .conf file at all. Fixes #423
2009-11-01 17:50:34 +00:00
Vadim Kurland
7afeda42fb 2009-10-31 Vadim Kurland <vadim@vk.crocodile.org>
* instOptionsDialog.cpp (instOptionsDialog::instOptionsDialog):
New feature: password caching. Built-in installer can remember
firewall password (and enable password for Ciscos) for the
duration of the session. Passwords are never stored permanenetly
in any form, encrypted or plain text. The user needs to enter
password once when they activate generated policy. If they keep
the program open and need to modify and activate policy again, the
password fields in the installer dialog can be filled
automatically. The feature is optional and is off by default.
Cached passwords are associated with the firewall object and
account name used to activate policy. Implemented by a2k@codeminders.com
2009-10-31 07:10:18 +00:00
Vadim Kurland
7a0b3a5c6d 2009-10-22 vadim <vadim@vk.crocodile.org>
* RuleSetView.cpp (RuleSetView::itemDoubleClicked): Fixes #545.
Change in the GUI behavior: both left and right mouse click on an
object in rules should not select it in the tree. If user wants to
open it in the tree, they can use context menu item "Reveal in the
tree" or double click the object. This solves the following
inconvenient behavior (quoting from email):

1) anytime I copy something and then right click to paste into a
policy or nat it immediately changes the tree to the location of
the object under the cursor which is usually to the standard
library on any and then i have change it back to the user
library.

2) if I want to compile a rule, unless I am careful and right
click on the rule number instead of any field in the rule to
select compile it move the tree to whatever is under the cursor.
2009-10-23 02:40:35 +00:00
Vadim Kurland
f030c44a72 update changelog Refs #84 2009-10-21 01:05:58 +00:00
Vadim Kurland
f78806dcf8 . Added PF versions 4.0-4.2 and >4.3 to the list. Using keywords nat-anchor and rdr-anchor if PF version is <4.3. Refs #84 2009-10-21 00:49:39 +00:00
Vadim Kurland
a47cd5c817 Support for branching NAT rules for PF. Refs #84 2009-10-21 00:14:22 +00:00
Vadim Kurland
65524cde81 Human-readable names for actions come from platform resource files. This way, we can have aliases for actions depending on the platform. Refs #84 2009-10-20 21:48:53 +00:00
Vadim Kurland
7d672c2169 Support for NAT branching for iptables; see #84 2009-10-20 19:31:55 +00:00
Vadim Kurland
7a4cd8ccd2 2009-10-14 vadim <vadim@vk.crocodile.org>
* src/res/configlets/linux24/conntrack: Implemented support for
conntrack performance tuning parameters and tcp window tracking
option. Parameters CONNTRACK_MAX and HASHSIZE are described at
http://www.wallfire.org/misc/netfilter_conntrack_perf.txt.  The
conntrack_tcp_be_liberal option is described at
http://conntrack-tools.netfilter.org/manual.html . Parameters can
be set in the host OS dialog for Linux (added new tab
"conntrack").  Commands that will be added to the generated script
come from the new configlet "conntrack". Commands are different
for iptables versions <1.4.0 and >=1.4.0. User can customize the
commands by substituting the configlet if necessary. Fixes #198, #511.
2009-10-14 21:39:54 +00:00
Vadim Kurland
3c78b73938 merge from branch v3 Merging r1480 through r1593 2009-10-13 22:11:42 +00:00
Vadim Kurland
3848a03edb * PolicyCompiler_ipf.cpp (SplitDirectionIpfilter::processNext):
fixed bug #2874571: "ipfilter version 3.4.29 issues after
introduction of 282860". Optimizations added for PF broke rule
generation for ipfilter which does not allow rule without explicit
direction specification.
2009-10-13 21:56:02 +00:00
Vadim Kurland
5b5ef4316d * FWBSettings.cpp (FWBSettings::getCollapsedRuleGroups): fixed bug
#2872365: "problem with group names containing comma". State of
the rule group with a comma in the name could not be saved in
program settings and the group could not be expanded once it was
collapsed.
2009-10-13 21:29:08 +00:00
Vadim Kurland
f065f708d1 * CustomServiceDialog.cpp (CustomServiceDialog::loadFWObject):
fixed bug #2870562: "custom service - protocol name
options". Added protocol "ipv6-icmp" to the list of predefined
protocols in the CustomService object and fixed the dialog to make
it properly save protocol name entered by the user (the widget
where user choses protocol name also supports editing so the user
can enter any protocol name not offered in the list of standard
protocols).
2009-10-13 20:01:33 +00:00
Vadim Kurland
2527d93b98 * FWWindow.cpp (FWWindow::toolsDiscoveryDruid): fixed bug
#2867550: "Discovery Druid dieswhen there is no activeproject
2009-10-13 19:42:04 +00:00
Vadim Kurland
667a07fd23 2009-10-13 vadim <vadim@vk.crocodile.org>
* debugDialog.cpp (debugDialog::debugDialog),
DiscoveryDruid.cpp (DiscoveryDruid::DiscoveryDruid) Reversing the
change made in 3.0.7 in the debug and discovery druid windows, the
change was intended to make the window title bar show "close"
button on Mac OS X. Unfortunately the caused the title bar to
disappear all together on Linux under some window managers. Modal
QT dialogs do not have title bar buttons on Mac OS X, but since
they always have "OK", "Finish", "Close" or "Cancel" buttons as
part of the dialog contents, absense of the "close" button in the
title bar is not critical.
2009-10-13 18:45:13 +00:00
Vadim Kurland
ef412ed5a3 started 3.0.8 2009-10-13 17:37:55 +00:00
Vadim Kurland
a8fe781703 fixes #499
2009-10-07  vadim  <vadim@vk.crocodile.org>

* FindWhereUsedWidget.cpp (FindWhereUsedWidget::itemClicked):
"find where used" panel selects object in the tree or in rules on
single click in the list of the results. To open the object in the
editor user needs to switch to the editor tab in the bottom docked
panel.
2009-10-07 19:31:39 +00:00
Vadim Kurland
fcd1d808b5 editor panel docked into the main window rather than ProjectPanel 2009-10-05 00:17:24 +00:00
Vadim Kurland
0bc7e9ff38 merge from v3_1 2009-10-03 19:21:45 +00:00
Vadim Kurland
1f5ab1b9ec 2009-10-03 vadim <vadim@vk.crocodile.org>
* PolicyCompiler_ipt.cpp (PolicyCompiler_ipt::insertFailoverRule):
Added support for heartbeat over unicast. Protocol options dialog
for heartbeat offers checkbox "Use unicast" (off by default, when
checked, address input field for the multicast heartbeat address
becomes disabled). When checkbox is checked, compiler
automatically adds rules to permit unicast heartbeat health checks
between addresses of interfaces which are members of the failover
group.
2009-10-03 19:18:42 +00:00
Vadim Kurland
025e2824d1 using dock widgets for tree, rules and editor; editor and search dialogs appear as part if the tabbed widget in the bottom panel; bottom panel and rules are not detachable 2009-10-02 17:52:28 +00:00
Vadim Kurland
caaf341458 fixes #486, #393 Implemented ability to show object attributes in the tree 2009-09-30 22:37:35 +00:00