Re: how to discard a netfilter rule

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2013/2/28 Rob Sterenborg (lists) <lists@xxxxxxxxxxxxxxx>
>
> On 02/28/2013 07:26 AM, Donghua Liu wrote:
>>
>> Hi,
>>
>> Say if I set a netfilter rule by "iptables -t nat -A custom_chain -p
>> tcp -dport 80 -j DNAT --to-destination 127.0.0.1:1234" for some
>> requirement.
>>
>> I also have a LKM which will check the availablity of service
>> "127.0.0.1:1234" and how can I cancel the rule's operation(Do NOT
>> delete this rule), let the packet go as usual ignore the nat.
>
>
> man iptables says there is a -R command to replace rules:
>
> ----
>        -R, --replace chain rulenum rule-specification
>               Replace a rule in the selected chain.  If the source and/or
> destination names resolve to multiple addresses, the command will fail.
> Rules are numbered starting at 1.
> ----
>
> Assuming you know which rulenum must be changed, you can do this:
>
> iptables -t nat -R custom_chain 1 -p tcp -dport 80
>
> IOW, lose the -j parameter from the rule, keeping the others. The result
> is that the rule will still be there, but effectively won't do anything
> except for matching and updating packet/byte counting.
>
>
> --
> Rob
>

Replace rules maybe solve my problem, but I must do it in kernelspace.
Now I have some ideas
Maybe I should extend the netfilter/xtables like
    iptables -t nat -A custom_chain -p tcp -dport 80 -m
process_available --process_name some_process_name -j DNAT
--to-destination 127.0.0.1:1234
    or
    iptables -t nat -A custom_chain -p tcp -dport 80 -j SAFE_DNAT
--to-destination 127.0.0.1:1234
But how can I implement these.
Can anyone provide me some tutorial or write a small example to explain this.
Thanks in advance!
--
To unsubscribe from this list: send the line "unsubscribe netfilter" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Netfilter Development]     [Linux Kernel Networking Development]     [Netem]     [Berkeley Packet Filter]     [Linux Kernel Development]     [Advanced Routing & Traffice Control]     [Bugtraq]

  Powered by Linux