[EMAIL PROTECTED] wrote:
> ...
> I think Ray mentioned somehing about order, XML is like a table it's order
> is it's rowsource/recno, so when you read a XML file the parser has to call
> the $IPCHAINS or whatever subsequently for each rule defenition on the XML,
> eliminating the order problem.

   The problem in XML is that there is no 'order' enforcing in the XML
spec; thus with SAX the order might be different from the DOM interface;
then the parsing becomes dependent to a particular API. Ofcourse one can
put in the ID attribute for the element to provide order hints, but
still that's not the strength of the XML.

   I still wonder if there is a way to detect the invalid order, thus
iliminate the order inside the XML.

> I sugest we separate a firewall script (a real ipchains scrip) in different
> categories. can anyone provide a good complicated example? My intentions are
> not to provide a ipchains specific conf file, instead a learning base for
> the evolution to netfilter or the old ipfwadm.

   Agreed.
   Separation of network descriptions and firewall rules is good. If we
think in terms of services & network, can we specify the rules? For
example: "I have an FTP service, on default port, on the DMZ network,
and I would like to offer this service to both the public & private
networks", can a utility generate that rule correctly?

   Thanks,
   Ly
-----

> so I'll try to explain my thoughts... I'll make just a simple draft:
> 
> <chain>
>   <id>input</id>
>   <dev>eth0</dev>
> </chain>
> <chain>
>   <id>forward</id>
>   <dev>eth0</dev>
> </chain>
> 
> <chain_desc id='input'>  <!-- under this element we can put all the input
> rules -->
>   <rule id='nothing passes'>
>     <cmd> A </cmd>
>     <proto> all </proto>
>     <src_ip> 0.0.0.0 </src_ip>  <!-- single or range -->
>     <src_mask> 0 </src_mask>
>     <src_port> 21 </src_port>  <!-- single or range -->
>     <dst_ip> 0.0.0.0 </dst_ip>  <!-- single or range -->
>     <dst_mask> 0 </dst_mask>
>     <dst_port> 21 </dst_port>  <!-- single or range -->
>     <masq> 0 </masq>
>     <fragment> 0 </fragment>  <!-- 0: not present, 1: set ,2: !set -->
>     <target> DENY </target>
>   </rule>
>   <rule>
>     ....
>   </rule>
> </chain_desc>
> 
> <chain_desc id='forward'>
>   ...
> </chain_desc>
> 
> is this suitable? I haven't got too much time, so I did this very simple and
> it may contain some bugs.
> 
> please comment.
> 
> pedro
> 
> > From: Anh (Ly) Vuong [mailto:[EMAIL PROTECTED]]
> >
> >    Hello Ray,
> >
> >    Thank you for the valuable insights.
> >
> >    Please allow me to clarify something on the topic of
> > writing rules in
> > XML format. I agreed that if we take on the task of 're-writing' the
> > rules in different format (XML or not); we don't solve anything and
> > still have to face the inherit problems. However, if we take the
> > approach of describing the network and services; then we might have a
> > chance of solving the rule problems.
> >
> >    For example, if the XML file only describes the services that s/he
> > wants to run on the network; the services part of the XML
> > file may look
> > like this:
> >
> >    <services>
> >       <service id="ftp_1" type="ftp">
> >          <port>default</port>
> >          <host>my_ftp_server.mydomain.com</host>
> >       </service>
> >
> >       <service id="web_1" type="web">
> >          <port>default</port>
> >          <host>my_web_server.mydomain.com</host>
> >       </service>
> >    </services>
> >    ...
> >
> >   Then, the access defintion part can be further described as follow:
> >
> >    <access>
> >       <allow service_id="ftp_1">
> >          <network>private</network>
> >       </allow>
> >       <allow service_id="web_1">
> >          <network>private</network>
> >          <network>public</network>
> >       </allow>
> >    </access>
> >
> >
> >   Other attributes or elements can further describing each
> > access policy
> > (ie. loging or not, hard or silent rejection...)
> >
> >   Now, once the networks & services are defined, other tools can then
> > translate (transform) this file into the appropriate native rules for
> > the applications to use. Basically, the transform engine will
> > determine
> > the order of the rules; may be based on a hardcode or selectible
> > strategy, which can be again identified by the user.
> >
> >   Cheers,
> >   Ly
> > ----
> > Ray Olszewski wrote:
> > >
> > > Before I get into the substance of a reply, I should take a
> > moment to
> > > mention that I have been working with Scott's company for
> > the past year or
> > > so. I've referred to that work a bit in the past, here and
> > on the LRP list.
> > > I still do some work for Scott on the side, though I now
> > have a full-time
> > > job elsewhere (again, as many of you know).
> > >
> > > With that detail out of the way ... Scott, I think this
> > attempt doesn't get
> > > to the essence of the design problem. It is no trick to
> > rewrite ipchains
> > > rule arguments in XML format, or Windows .ini-style format,
> > or probably in
> > > Middle English; the complexity is dealing with the logic of ruleset
> > > construction in a way that actually gains something from
> > the rewrite.
> > >
> > > The big problem with ipchains rulesets is that order matters. Often,
> > > mistakes (mine especially) involve trying to open a port
> > *after* I've closed
> > > it ... that is, putting an ACCEPT rule in place below a
> > more general DENY
> > > rule that moots the ACCEPT rule. Or trying to forward
> > packets that the input
> > > chain has DENY'd. Or other mistakes at that level. I rarely get an
> > > individual rule wrong.
> > >
> > > XML'ing the syntax of a single rule won't make it any
> > easier to handle that
> > > part. I'm not sure what would; the general problem probably
> > needs the full
> > > flexibility of the ipchains process, so any rewrite of it
> > will remain
> > > equally complex (except possibly in trivial ways, the kinds
> > of changes that
> > > make it easier to avoid typos.
> > >
> > > For that matter, I'm doubtful that XML'ing will help get
> > individual rules
> > > right. That requires a rule pre-screener, and why not just
> > let it write its
> > > output in "ipchains-native" format?
> > >
> > > Now one really interesting extension of this discussion
> > would be to come up
> > > with an XML (or other) format that could be translated into
> > rules for
> > > ipfwadm, ipchains, AND netfiler (as well as ipportfw, ipmasqadm, and
> > > whatever 2.4.x uses here). I suspect this is impractical,
> > since the 3 tools
> > > have different capabilities, sufficiently different that either the
> > > capabilities set of the format would be too limited for
> > netfilters or leave
> > > out too much for ipfwadm. But then you could think in terms
> > of using such a
> > > tool to generate firewall rulesets for any OS that
> > supported firewalling,
> > > not just Linux.
> > >
> > > In practice, though, I think this just won't fly.
> > >
> > > Successful simplifications generally involve trading flexibility for
> > > simplicity. The LRP/LEAF image approach reflects this --
> > many images are
> > > customized, or at least semi-customized, for particular
> > circumstances. No
> > > one familiar with the range of LRP/LEAF image choices would try, for
> > > example, to adapt Ken Hadley's PPPoE image to a
> > static-address connection.
> > > Why do the work? It misses the point of the customization,
> > and there are
> > > other images better suited to that use.
> > >
> > > In a way, Dave Cinege always had the right idea about this
> > problem ... write
> > > some scripts that simplify the basics, and expect the
> > advanced user to do
> > > the complicated bits by hand. His line between what his
> > network.conf does
> > > for you and what he expects you to do for yourself in
> > network_direct.conf
> > > may not be the exactly right place to draw the line, but
> > having such a line
> > > is a good idea.
> > >
> > > Generalizing this approach involves finding the (say) dozen
> > configurations
> > > that account for 95% of the use of firewalls when installed by
> > > non-specialists (I'm trying to distinguish a typical home
> > setup from, say,
> > > our colo'd site, where a fully bespoke firewall is a
> > reasonable solution).
> > > Then set up rule-generation procedures that fit them,
> > possibly even using an
> > > existing mechanism like the "ipmasq" package available for Debian.
> > >
> > > To judge from the traffic on the LRP list, the place to concentrate
> > > flexibility is in handling weird services. There are real
> > problems getting
> > > NetMeeting right, or Napster, or ICQ, or a bunch of other
> > services I myself
> > > don't use. If we got that right, and we had a simpler
> > procedure for either
> > > proxy-arp'ing or static-NAT'ing addresses for the crowd who
> > buys 5-IP DSL,
> > > and we better detected situations where the external address is in
> > > private-address space, we'd eliminate 90% of the *firewall*
> > troubleshooting
> > > that happens.
> > >
> > > Do all that plus write an auto-detector for NICs that works, and the
> > > LRP/LEAF troubleshooting business would all but vanish.
> > >
> > > This is the approach LRP/LEAF has taken for connection
> > types for years, with
> > > a range of ststic, dynamic, PPPoE, dialup ppp, and other
> > images available.
> > >
> > > At 01:53 PM 2/3/01 -0800, Scott C. Best wrote:
> > > >Ly:
> > > >       Going to take a stab myself here...
> > > >
> > > ><RULE>
> > > >  <CHAIN>input</CHAIN>
> > > >  <ACTION>policy=deny</ACTION>
> > > ></RULE>
> > > ><RULE>
> > > >  <CHAIN>input</CHAIN>
> > > >  <ACTION>flush</ACTION>
> > > ></RULE>
> > > ><RULE>
> > > >  <CHAIN>input</CHAIN>
> > > >  <ACTION>ADD
> > > >    <INT>external</INT>
> > > >    <SOURCE_IP>anywhere</SOURCE_IP>
> > > >    <SOURCE_MASK>0</SOURCE_MASK>
> > > >    <DEST_IP>255.255.255.255</DEST_IP>
> > > >    <DEST_MASK>32</DEST_MASK>
> > > >    <PROTOCOL>tcp</PROTOCOL>
> > > >    <LOGGING>no</LOGGING>
> > > >    <FLAGS>syn</FLAGS>
> > > >    <POLICY>deny</POLICY>
> > > >  </ACTION>
> > > ></RULE>
> > > >
> > > >       A starting point?
> > > >
> > > >-Scott
> > > [old stuff deleted]
> > >
> > > --
> > > ------------------------------------"Never tell me the odds!"---
> > > Ray Olszewski                                        -- Han Solo
> > > Palo Alto, CA                                    [EMAIL PROTECTED]
> > > ----------------------------------------------------------------
> > >
> > > _______________________________________________
> > > Leaf-devel mailing list
> > > [EMAIL PROTECTED]
> > > http://lists.sourceforge.net/lists/listinfo/leaf-devel
> >
> > --
> > "If you find yourself digging a deeper and deeper hole...
> > stop digging."
> > - Anonymous
> >
> > _______________________________________________
> > Leaf-devel mailing list
> > [EMAIL PROTECTED]
> > http://lists.sourceforge.net/lists/listinfo/leaf-devel
> >
> 
> _______________________________________________
> Leaf-devel mailing list
> [EMAIL PROTECTED]
> http://lists.sourceforge.net/lists/listinfo/leaf-devel

-- 
"If you find yourself digging a deeper and deeper hole... stop digging."
- Anonymous

_______________________________________________
Leaf-devel mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/leaf-devel

Reply via email to