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

125 Commits

Author SHA1 Message Date
Vadim Kurland
72165862ca test for when the name of the script on the firewall is different 2010-02-19 19:05:49 +00:00
Vadim Kurland
76dd6e285c * PolicyCompiler_ipt.cpp (decideOnChainIfDstFW::processNext):
fixes #1231 rules are placed FORWARD chain if firewall object is
"bridging firewall". This bugfix concerns specific rule
configuration used with bridging firewall where firewall object or
one of its interfaces is used in "destination" and an interface
which is not a bridge port is in the "interface" rule column. Rule
like this should go into INPUT chain but compiler used to splut it
and put generated iptables rules in both INPUT and FORWARD chains.
Rule should be placed in the FORWARD chain only if interface in
"interface" column is bridge port. The same algorithm also applies
to rules with firewall or one if its interfaces in the "Source"
column.
2010-02-14 18:54:47 +00:00
Vadim Kurland
9757f61c34 add missing #include, add test rules for bug 1231 2010-02-14 17:34:58 +00:00
Vadim Kurland
c73c00658f * PolicyCompiler_ipt.cpp (specialCaseWithFWInDstAndOutbound::processNext):
fixes #1220 "bridging fw rule using all multicast object in
destination does not produce any iptables rules".
2010-02-10 22:10:44 +00:00
Vadim Kurland
2b8a352c58 * NATCompiler_PrintRule.cpp (PrintRule::processNext): fixes #1147
--persistent option for DNAT and SNAT
2010-01-27 01:06:12 +00:00
Vadim Kurland
f0a11a64b4 * NATCompiler_PrintRule.cpp (PrintRule::processNext): fixes #1146
support for NAT MASQUERADE source port randomization. This adds
support for the "--random" option for SNAT, DNAT and MASQUERADE
targets in iptables NAT rules. User needs to turn on the checkbox
that adds this option in NAT rules again
2010-01-27 00:39:17 +00:00
Vadim Kurland
1687a2efcb fixes #1150
"fwb_ipt should check AddressRange in TSrc against addresses of
interfaces".
2010-01-26 03:39:52 +00:00
Vadim Kurland
df34d27ca0 * PolicyCompiler_PrintRule.cpp (PrintRule::_printModules): fixes
#1123, #1124: Text label next to the option that translates into
--connlimit-above clause for the iptables "connlimit" module
now matches description in the iptables manual. Added checkbox
that allows the user to add negation to the generated code

fixes #1123, #1124
2010-01-21 03:50:38 +00:00
Vadim Kurland
0ee88506b5 * ../src/iptlib/NATCompiler_ipt.cpp (VerifyRules2::processNext):
fixes #1109: "rules that do not pass verifyRules() checks may
cause compiler crash in test mode or gui crash in single rule
compile mode"
2010-01-20 02:55:38 +00:00
Vadim Kurland
4a88afc651 fixes #1094 2010-01-17 23:09:51 +00:00
Vadim Kurland
2e27954947 * PolicyCompiler_ipt.cpp (PolicyCompiler_ipt::compile): Using rule
processor Compiler::checkForObjectsWithErrors to find objects with
errors and generate proper calls to abort(). This exposes errors
that happened when Preprocessor failed to resolve compile-time
AddressTable and DNSName objects. If compiler runs in test mode,
preprocessor did not abort but used dummy substitution addresses
and continued. Call to checkForObjectsWithErrors generates proper
error messages tied to rules. Using this rule processor in all
compilers. Fixes #1087
2010-01-16 00:26:01 +00:00
Vadim Kurland
5a39ed8f67 * PolicyCompiler_ipt.cpp (processMultiAddressObjectsInRE::processNext):
fixes #1086: incorrect processing of run time address tables.
SourceForge bug 2932680. Rules with two run-time AddressTable
objects in the same rule element (source or destination) were
converted to the shell script that read addresses from the address
table files, plus wrong iptables command that matched any to any.
This change removes this extra command.
2010-01-15 22:16:14 +00:00
Vadim Kurland
66856ab1f7 * OSConfigurator_linux24.cpp (OSConfigurator_linux24::printShellFunctions):
fixes #1084 "if all user turns off all interface management and
configuration checkboxes, the check_tools shell function is not
added to the script but still called". Shell function
"check_tools" verifies that system tools iptables script needs to
operate properly are installed on the firewall. These are: ip,
modprobe and optionally vconfig, brctl, ifenslave. The bug made
compiler for iptables to add the call to the function but function
definition was missing if user unchecked all "configure
interfaces" checkboxes in the Script tab of firewall object
settings dialog.
2010-01-15 20:39:34 +00:00
Vadim Kurland
8c84808bda 2010-01-15 vadim <vadim@vk.crocodile.org>
* CompilerDriver_ipt_run.cpp (CompilerDriver_ipt::run): Refs #869
making sure non-english comments appear correctly in the single
rule compile output and generated configuration files and scripts.
2010-01-15 20:31:33 +00:00
Vadim Kurland
4d4ae0b63e fixes #1080 2010-01-13 23:00:21 +00:00
Vadim Kurland
f6e1886d4f * PolicyCompiler_PrintRuleIptRst.cpp (PrintRuleIptRst::_printRuleLabel):
really fixed #869 "compile rule" should also print the comment.
Printing rule comment in the compiler output in the single rule
compile mode when firewall object is configured to use
iptables-restore. Code that prints rule label and comment has been
unified for compilers for all firewall platforms.
2010-01-13 21:21:07 +00:00
Vadim Kurland
3b3a4678e4 * NATCompiler_ipt.cpp (AssignInterface::processNext): fixed bug
#1064: "Dedicated IPv6 interfaces show up in IPv4-NAT rules". Use
interface only if it has addresses that match address family we
compile for.

fixes #1064
2010-01-08 19:32:20 +00:00
Vadim Kurland
ffe230a9c2 speed up policy compile (changes in libfwbuilder:r499) 2009-12-24 22:22:22 +00:00
Vadim Kurland
37db19faf9 fixes #939 Add backup ssh access rule to the "stop" section of generated iptables script. Now with dialog control to make this optional 2009-12-18 23:44:58 +00:00
Vadim Kurland
986bddd400 fixes #876 2009-12-15 22:08:26 +00:00
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
301d037988 see #803 take user name for the batch install from the dialog, overriding the name set in the fw object settings 2009-12-07 23:25:10 +00:00
Vadim Kurland
5001ba1d92 fixes #802 2009-12-07 21:12:26 +00:00
Vadim Kurland
ecfeec779b fixes #475 Added check for address a.b.c.d/0 in libfwbuilder and test for it in tets/ipt/ 2009-12-04 19:06:25 +00:00
Vadim Kurland
6934331544 fixes #97 2009-12-04 18:23:28 +00:00
Vadim Kurland
488a50251e fixes #651 Shell functions that read ip addresses of interfaces moved to configlet run_time_wrappers; using shell loops in generated script since now we read all ipv4 and ipv6 addresses of dynamic interfaces 2009-12-02 04:27:09 +00:00
Vadim Kurland
005507969c fixes #712 (ipt_mangle_only_rulesets option converted) fixes #713 2009-11-26 02:37:38 +00:00
Vadim Kurland
1572ef1fdb fixes #709 RuleSetDialog gets option "mangle_only_rule_set" from RuleSetOptions object 2009-11-25 23:35:35 +00:00
Vadim Kurland
cdc45a911e supprot for router-alert ip option in fwb_ipt; minor reformatting; test for the IPService object with DSCP bits matching and ip options matching at the same time 2009-11-08 21:28:47 +00:00
Vadim Kurland
02e767f799 support for IPService with "any options" attribute. Fixes #563 2009-11-04 19:14:38 +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
3215817bf8 fixes #539: ALL TCP and AL UDP objects should shadow any TCP/UDP service below 2009-10-22 21:07:04 +00:00
Vadim Kurland
b5eff7ec40 detect cluster interfaces in NAT rules and process accordingly 2009-10-22 19:48:43 +00:00
Vadim Kurland
7d672c2169 Support for NAT branching for iptables; see #84 2009-10-20 19:31:55 +00:00
Vadim Kurland
23ee2d9531 merge from v3_1_merge 2009-09-23 17:00:48 +00:00
Vadim Kurland
5d1ca8d171 * instDialog_ui_ops.cpp (instDialog::addToLog): fixed bug #2847263
"Batch compiling incrementally slow". The time it took to add a
log line to the progress window in the "Compile" dialog slowed
down a lot as amount of text in QTextEditor increased.
2009-08-31 01:12:48 +00:00
Vadim Kurland
5aaea155ec 2009-08-12 vadim <vadim@vk.crocodile.org>
* NATCompiler_ipt.cpp (splitSDNATRule::processNext): fixed bug
#2836321: "SNAT rule that changes Trans Src and Trans Port does
not work". Dual translation rule that changes source address and
destination port was not supported.
2009-08-12 17:51:41 +00:00
Vadim Kurland
674589476e 2009-07-19 vadim <vadim@vk.crocodile.org>
* PolicyCompiler_ipt.cpp (specialCaseWithFWInDstAndOutbound::processNext):
fixed bug #2823951: "unnecessary rules in FORWARD chain". Policy
rules that have interface object in "Interface" column and
direction "Both" generate unnecessary iptables commands in the
FORWARD chain when destination matches one of the addresses that
belong to the firewall.
2009-07-19 19:17:42 +00:00
Vadim Kurland
664c564037 * PolicyCompiler_ipt_optimizer.cpp (optimizeForMinusIOPlus::processNext):
fixed bug #2822098: "IPT: adds useless "-i +" iin some cases".
Added optimization to remove redundant "-i +" and "-o +" if
chain is INPUT or OUTPUT.
2009-07-16 00:30:12 +00:00
Vadim Kurland
baba332a12 test examples for bug 2822098 2009-07-15 22:39:11 +00:00
Vadim Kurland
1f29579740 added comments to rules per bug #2822098 2009-07-15 20:56:21 +00:00
Vadim Kurland
92abc2b58e * PolicyCompiler_ipt.cpp (singleItfNegation::processNext): fixed
bug #2819901: "sub-optimal expansion of negated interface". Policy
rules with single interface object in "interface" rule element
with negation should generate iptables commands using "-i ! itf"
or "-o ! itf" rather than multiply the rule using all other
interfaces of the firewall. Note that for iptables v1.4.3 and
later, extrapositioned syntax is used, such as "! -i itf".
2009-07-14 23:59:02 +00:00
Vadim Kurland
ef15df93fc * PolicyCompiler_PrintRule.cpp, NATCompiler_PrintRule.cpp: fixed
bug #2821050: "loading new fw rules on iptables 1.4.3.2+ gives
warnings". starting with v1.4.3.1 iptables started giving warnings
when negation ("!")  is used after --option. This fix adds version
"1.4.3" to the list of recognized iptables versions in fwbuilder
and makes compiler generate extrapositioned version of the option
such as "!  --option arg".
2009-07-14 21:26:34 +00:00
Vadim Kurland
8ae2ef2d9c * iptAdvancedDialog.cpp (iptAdvancedDialog::iptAdvancedDialog):
fixed bug #2820840: "IPT: prolog script+iptables-restore silent
incompatibility". With this fix the GUI does not allow for the
prolog script to be placed after policy reset if iptables-restore
is used to activate iptables rules. Also policy compiler for
iptables checks for this condition and aborts with an error
message if prolog place is set to "after reset" but
iptables-restore is used to activate policy. Configuration may end
up with this combination of options if user set prolog place to
"after reset" first and switched activation method to
iptables-restore later.
2009-07-13 23:14:55 +00:00
Vadim Kurland
251aaddd54 started 3.0.6
2009-07-11  vadim  <vadim@vk.crocodile.org>

* AddressRange.h (libfwbuilder): fixed bug #2820152: "Address
ranges and other such need IPv4/v6 typing". AddressRange object
should be recognized and removed from the rule if it is used in
ipv6 rule set. To do this, add virtual method
hasInetAddress() (should return true) to indicate that this object
has an address. This works since virtual method getAddressPtr()
has been implemented anyway.
2009-07-12 02:03:46 +00:00
Vadim Kurland
405aa3d937 more test cases for bug #2820152 2009-07-12 00:02:51 +00:00
Vadim Kurland
f2428e7962 test case for bug #2820152 2009-07-11 22:39:00 +00:00
Vadim Kurland
f9eb5e1a8c 2009-06-09 vadim <vadim@vk.crocodile.org>
* NATCompiler_pf_writers.cpp (PrintRule::_printSrcPort): fixed bug
#2803702 "NAT rule with source port range in TSrv is broken for
PF".  NAT rules matching source port ranges and translating source
port ranges should be possible.

* NATCompiler.cpp (classifyNATRule::processNext): (change in
libfwbuilder) fixed bug #2803689 "NAT rule matching dport but
chaning sport is broken".  NAT rules that match destination port
but translate source port should be possible (and the opposite
too).
2009-06-09 22:36:41 +00:00
Vadim Kurland
37cb4e4afa 2009-06-08 vadim <vadim@vk.crocodile.org>
* NATCompiler_ipt.cpp (splitSDNATRule::processNext): Improved
support for NAT rules that translate both source and destination:
now a rule like this can translate both source and destination
addresses and at the same time source and destination port ranges.
Compiler generates two iptables commands, one with SNAT and
another with DNAT translation for a rule like this.
2009-06-08 20:03:24 +00:00
Vadim Kurland
71ca455795 2009-06-08 vadim <vadim@vk.crocodile.org>
* NATCompiler_PrintRule.cpp (PrintRule::processNext): Added
support for SNAT rules that translate only source port of udp or
tcp packets. This rule generate "-j SNAT --to-source :<port>"
with no address part.


;
2009-06-08 17:04:53 +00:00