Re: Is this even POSSIBLE?
linux_forum1 <[email protected]> Thu, 06 Jan 2022 20:10:31 +0000
| Newsgroups | gmane.linux.debian.devel.firewall |
|---|---|
| Message-ID | <T7xeFNQuIysXHwsmWPy72NmSLiDHgONnv5JRfgkcpSpm4vcfrPxOHP4yDa5DgHg1OyzWaHGo8o9ImCjxhW8DGfDWX_hSiOApZBiWuKb0RGw=@protonmail.com> |
Hello Dan! Thank you so much for the reply! Yes that helps a lot, but I have 2 follow up questions if you don't mind ha= ha. 1.) When you say " -A INPUT -j Block puts the chain in order", you mean tha= t at this point iptables will look for any rules appended to the Block chai= n, no matter where they are? This would make sense cz then the order wouldn= 't matter and you can jump to a chain in the beginning, whose rules are def= ined at the bottom for example. 2.) I want to log when one of these rules gets matched. (It's 30 - 40 rules in total) -A Block -p tcp -m tcp --tcp-flags SYN,RST SYN,RST -j DROP -A Block -s 169.254.0.0/16 -j DROP -A Block -s 172.16.0.0/12 -j DROP -A Block -s 192.0.2.0/24 -j DROP . . This is my solution: -A INPUT -j Block -A FORWARD -j Block -A Block -p tcp -m tcp --tcp-flags SYN,RST SYN,RST -j Logger -A Block -s 169.254.0.0/16 -j Logger -A Block -s 172.16.0.0/12 -j Logger -A Block -s 192.0.2.0/24 -j Logger Then in Logger it gets logged and dropped. I considered this, but was told the above is better. -A INPUT -j Block -A FORWARD -j Block -A Block -p tcp -m tcp --tcp-flags SYN,RST SYN,RST -j LOG -A Block -p tcp -m tcp --tcp-flags SYN,RST SYN,RST -j DROP -A Block -s 169.254.0.0/16 -j LOG -A Block -s 169.254.0.0/16 -j DROP -A Block -s 172.16.0.0/12 -j LOG -A Block -s 172.16.0.0/12 -j DROP . . Is there a better way? Thanks again. =E2=80=90=E2=80=90=E2=80=90=E2=80=90=E2=80=90=E2=80=90=E2=80=90 Original Me= ssage =E2=80=90=E2=80=90=E2=80=90=E2=80=90=E2=80=90=E2=80=90=E2=80=90 On Thursday, January 6th, 2022 at 7:26 PM, Dan Ritter <[email protected]= > wrote: > linux_forum1 wrote: > > > Hello, I have 2 questions if that's OK. > > > > INPUT DROP > > > > FORWARD DROP > > > > OUTPUT DROP > > > > -N Block > > > > -N Logger > > > > -A INPUT -j Block > > > > -A Block -p tcp -m tcp --tcp-flags SYN,FIN SYN,FIN -j Logger > > > > -A Logger -j LOG --log-level 4 > > > > -A Logger -j DROP > > > > -A INPUT -i lo -j ACCEPT > > > > -A OUTPUT -o lo -j ACCEPT > > > > There will be more rules in Block, but I just want to understand the lo= gic. > > > > 1.) How is -A INPUT -j Block possible before there are any rules append= ed to Block, does that mean iptables first searches and assembles all rules= that belong to custom chains regardless of order? Same for Logger. > > Everything has an order. You can turn on line numbers and see > > the order. > > Creating a chain (Block, Logger) does not put it into order. > > The jump (-j) to Block, from INPUT, places the chain in order. > > I note that you don't have a rule in Block to actually drop > > packets, and you do have a rule in Logger that drops packets. > > That seems... problematic to me. > > > 2.) > > > > Would this be OK to log and drop all rules in in Block? > > > > I am worried because there are four jumps, INPUT -> Block -> Logger -> = LOG -> Logger -> DROP > > In general, you can jump as many times as you like as long as > > you don't go in a circle. Note that -j LOG continues processing > > on the next rule in order, unlike ACCEPT, DROP and REJECT. If a chain > > ends without ACCEPT, DROP or REJECT happening, then when it ends > > execution picks up at the next statement in order following the > > jump to that chain. > > Does that help? > > -dsr-