public inbox for development@lists.ipfire.org
 help / color / mirror / Atom feed
From: Michael Tremer <michael.tremer@ipfire.org>
To: development@lists.ipfire.org
Subject: Re: IPFire meets Suricata - Call for tester
Date: Tue, 25 Dec 2018 22:56:27 +0100	[thread overview]
Message-ID: <7088171C-BD14-45C5-9CE3-8CAB49721F3C@ipfire.org> (raw)
In-Reply-To: <29f9e44b119b2637f71fd4436514394f46a071e3.camel@ipfire.org>

[-- Attachment #1: Type: text/plain, Size: 16254 bytes --]

Hello,

Good job.

Stefan, are you planning to release another image very soon?

-Michael

> On 25 Dec 2018, at 20:17, Stefan Schantl <stefan.schantl(a)ipfire.org> wrote:
> 
> Hello Tim,
> 
> thanks for joining and providing your feedback on this list.
>> Hi,
>> 
>> I've loaded a system up with the test image.  I've not had much time
>> to
>> actually use it (hopefully after Christmas).  I would like to know
>> when
>> there'll be an image with the marking fixed.
> 
> I'll generate and upload a new one very soon.
> 
>> 
>> I agree with Michael over the GUI; splitting the system settings and
>> ruleset settings seems like a good idea.  The thing that caught me
>> originally was that I selected a ruleset and then clicked on
>> 'Download
>> new ruleset' and nothing happened because I hadn't clicked on 'Save'.
> 
> I splitted the section into two parts. One for configuring the IDS and
> one which contains the rules settings for now.
> 
>> 
>> A couple of points on automatic updates:
>> 
>> 1 - The updates shouldn't run exactly on the hour since this means
>> the
>> load on the servers will be very bursty.  It would be better to
>> spread
>> the load by running at some point past the hour and ensuring that
>> this
>> is different for every system (generate a random offset during
>> installation?).  Since the rulesets are sizeable (100 MiB for Talos
>> VRT)
>> and they're given away for free, I think it's a good idea to do
>> something about this.
> 
> Thanks for that, I don't know if "fcron" does any kind of
> randomization. I'll have a closer look on it.
> 
> I'm reading you are using the ruleset provided by the Talos team. I'm
> intrested in adding support for this. Do you have some more details
> about this ruleset and a download URL?
> 
>> 
>> 2 - There's a warning in the oinkmaster documentation:
>> 
>> Oinkmaster can be run manually or automatically as a cron job. But
>> of 
>> course, be very careful when doing the latter. Things could easily
>> get 
>> messed up from one update to another because of different layout in
>> the 
>> rules archive, typo in a rule, bugs in the script, and so on. At
>> least 
>> run snort -T on the new rules before restarting your Snort process.
>> 
>> Since this is about the rulefiles I'm sure it applies to Suricata as
>> well.  I have actually seen one occasion when the updated rules
>> failed
>> snort -T with my updater - and was after the download passed an
>> md5sum
>> check.  So the downloaded ruleset can be corrupt, if not very often. 
>> Should probably do something like:
>> 
>> download update
>> backup old rules
>> run oinkmaster
>> if (suricata -T is OK) then
>>  tell suricata to re-read rules
>> else
>>  restore backup
>> end if
> 
> Thanks for the hint. I have to dig into this, if suricata offers a
> mechanism to check the ruleset before doing a reload of it.
> 
>> 
>> Otherwise, I'm encouraged by the reduction in memory usage over
>> snort,
>> although it'll be interesting to see how this holds up with a larger
>> ruleset and under heavier load.
> 
> Best regards,
> 
> -Stefan
>> 
>> Regards,
>> Tim
>> 
>> On 20/12/2018 14:05, Michael Tremer wrote:
>>> Hi,
>>> 
>>>> On 20 Dec 2018, at 13:03, Stefan Schantl <
>>>> stefan.schantl(a)ipfire.org> wrote:
>>>> 
>>>> Hello Michael,
>>>> 
>>>> thanks for having a look at suricata and your feedback.
>>>>> Hi,
>>>>> 
>>>>> So I finally had a closer look at this, too. I have a couple of
>>>>> questions and would like to propose some changes to the UI:
>>>>> 
>>>>> Questions:
>>>>> 
>>>>> * Is it a good idea to have “No” rules as default and also “no”
>>>>> automatic rule updates? I guess we can configure at least
>>>>> Emerging
>>>>> Threats as a good default because they are free. I also think
>>>>> that
>>>>> when IDS is enabled, the system should update the ruleset by
>>>>> default
>>>>> once a day. When IDS is enabled, there should be no rule
>>>>> update.
>>>>> 
>>>>> * That also leads me to: Should no automatic updates even be an
>>>>> option?
>>>>> 
>>>> Making the free ruleset of emergingthreads as default is okay for
>>>> me -
>>>> ACK.
>>>> 
>>>> I'm also fine with doing a weekly ruleset update as default
>>>> setting.
>>>> 
>>>> My personal opinion is, it should be possible to disable the
>>>> automatic
>>>> rule update. There are some situations where this feature could
>>>> be
>>>> quite usefull, for example if you have only volume limited
>>>> internet
>>>> access or even other (which we currently do not have in
>>>> mind....).
>>> I guess if you don’t update the rules there is no point in running
>>> the IPS. It’s just like a virus scanner with outdated signatures:
>>> detecting even less.
>>> 
>>> Do we have more people with an opinion on this?
>>> 
>>> The rulesets are indeed quite large. But the only people who might
>>> want to disable it are people who run IPFire on an IoT appliance
>>> and those are too slow to run the IPS anyways. So it’s not a very
>>> strong argument in my opinion.
>>> 
>>> The best argument I can make for it is only that this is probably
>>> unwanted behaviour and therefore can easily be misconfugured.
>>> 
>>>>> Bugs:
>>>>> 
>>>>> * When I enabled IDS in IPS mode, I checked the box to activate
>>>>> it
>>>>> and selected the ET ruleset and hit save. Suricata starts but
>>>>> without
>>>>> rules which is definitely not what I wanted. Either the box
>>>>> should be
>>>>> greyed out or the downloader is launched when there are no
>>>>> rules,
>>>>> yet.
>>>>> 
>>>>> * It is possible to enable suricata without selecting any
>>>>> interfaces.
>>>>> That just wastes RAM and makes it easy to enable it without
>>>>> actually
>>>>> having the protection.
>>>>> 
>>>>> If you agree, I will create tickets for this.
>>>> Thanks, fixed.
>>>> 
>>>> https://git.ipfire.org/?p=people/stevee/ipfire-2.x.git;a=commit;h=ebdd0f9a90da800cc6173f6f30fb0621dddc354b
>>> I am on a plane now, so I cannot see this, but thanks!
>>> 
>>>>> UI Stuff:
>>>>> 
>>>>> * I think that the settings to enable suricata up to and
>>>>> including
>>>>> “Traffic analysing” should be in the top box. The second box
>>>>> should
>>>>> only care about the rules. That might even solve the problem
>>>>> described above.
>>>> During development I had a very similar idea, of grouping all
>>>> suricata 
>>>> settings and all which are for the ruleset together into seperate
>>>> boxes. I dropped this idea, because of some big restrictions of
>>>> the
>>>> code and I was afraid of how many work this would be to re-write
>>>> huge
>>>> parts of it to get the desired result.
>>> I think that this is very little work.
>>> 
>>>>> * I find it quite confusing that one has to “Activate Intrusion
>>>>> Detection System” and then again select IDS or IPS. It doesn’t
>>>>> seem
>>>>> to make much sense even to select the top box when IPS is
>>>>> checked. I
>>>>> would therefore prefer the following: one box that just says
>>>>> “Activate” and that switches on or off the whole thing, and
>>>>> then a
>>>>> second box that says “monitor only” or something along these
>>>>> lines.
>>>>> That box should be disabled by default which will run suricata
>>>>> in IPS
>>>>> mode (which is what everybody wants!) and when checked will
>>>>> downgrade
>>>>> it to IDS mode. Right now it looks like this is an equal level
>>>>> of
>>>>> both options but I think that there is a risk here that people
>>>>> enable
>>>>> IDS and think that they are protected when they are in fact
>>>>> not. I
>>>>> think the “monitor only” checkbox makes this a lot clearer.
>>>> Fair enough - I'm going now to rework the current section for
>>>> choosing
>>>> the runmode and move from the radio buttons to a select box which
>>>> will
>>>> be called "Only monitor traffic" as you suggested and will place
>>>> it
>>>> right next to the box where you can enable the whole IPS/IDS
>>>> system.
>>> I think the best wording is: Monitor traffic only
>>> 
>>>>> * The Traffic Analyzing headline doesn’t make any sense. It
>>>>> should
>>>>> rather be “Monitored zones” or “Monitored interfaces”. Internet
>>>>> should be RED because it is called RED everywhere else.
>>>> ACK
>>>> 
>>>>> * We will need to grep for Snort everywhere and replace that
>>>>> phrase
>>>>> with “Intrusion Prevention System”. I do not think that we have
>>>>> to
>>>>> mention suricata here instead. It is confusing when the menu
>>>>> option
>>>>> is called IDS.
>>>> Most work on this already should be done, I'll remove the last
>>>> existing
>>>> snort entries if I'll found one. 
>>> Cool.
>>> 
>>>>> * The menu option should be called IPS instead of IDS I think
>>>>> since
>>>>> IPS mode is default. Spelled out obviously.
>>>> ACK - It should be a very easy task to switch the language string
>>>> from
>>>> "Intrusion Detection System" to the desired "Intrusion Prevention
>>>> System".
>>> Cool. I am just saying that it needs to be done :) don’t forget the
>>> logging section.
>>> 
>>>>> Apart from that I have to say that this is really really good
>>>>> work,
>>>>> Stefan. The main thing is: it works. I think this is a huge
>>>>> improvement over what we had in the past and that this is
>>>>> bringing
>>>>> IPFire to the next level. It solves many problems that we
>>>>> didn’t dare
>>>>> to touch because snort was simply badly integrated into IPFire
>>>>> and
>>>>> did not really do much instead of wasting CPU cycles and
>>>>> memory.
>>>>> 
>>>>> I hope that we can continue working in this direction and maybe
>>>>> add
>>>>> some nice reports and so on and obviously carry over this work
>>>>> into
>>>>> IPFire 3 as soon as possible.
>>>>> 
>>>>> Please feel free to disagree with me above, but please do that
>>>>> via
>>>>> email if possible.
>>>>> 
>>>>> I want to target merging this into next as soon as possible in
>>>>> January. I hope that we can get the things above sorted out
>>>>> over the
>>>>> holidays since it should not be much work.
>>>>> 
>>>> Best regards,
>>>> 
>>>> -Stefan
>>>>>> On 17 Dec 2018, at 19:08, Stefan Schantl <
>>>>>> stefan.schantl(a)ipfire.org
>>>>>>> wrote:
>>>>>>> What is the bypass mark for? At least that should be set to
>>>>>>> nothing
>>>>>>> instead of one, because that will again conflict with the
>>>>>>> SNAT
>>>>>>> fix
>>>>>>> rule.
>>>>>>> 
>>>>>>> Best,
>>>>>>> -Michael
>>>>>>> 
>>>>>> Hello Michael,
>>>>>> 
>>>>>> taken from the official suricata.yaml documentation:
>>>>>> 
>>>>>> bypass mark and mask can be used to implement NFQ bypass. If
>>>>>> bypass
>>>>>> mark is set then the NFQ bypass is activated. Suricata will
>>>>>> set the
>>>>>> bypass mark/mask on packet of a flow that need to be
>>>>>> bypassed. The
>>>>>> Nefilter ruleset has to directly accept all packets of a flow
>>>>>> once
>>>>>> a
>>>>>> packet has been marked.
>>>>> Weird. Why would you even pass this to the userspace process
>>>>> then?
>>>>> 
>>>>> Whatever, we don’t need it then...
>>>>> 
>>>>>> In my commit, I've disabled the bypass options to exactly
>>>>>> prevent
>>>>>> from
>>>>>> any issuse again with the SNAT packet mark.
>>>>>> 
>>>>>> Best regards,
>>>>>> 
>>>>>> -Stefan
>>>>> Best,
>>>>> -Michael
>>>>> 
>>>>>>>> On 17 Dec 2018, at 14:21, Stefan Schantl <
>>>>>>>> stefan.schantl(a)ipfire.org
>>>>>>>>> wrote:
>>>>>>>> Am Sonntag, den 16.12.2018, 21:28 +0100 schrieb Peter
>>>>>>>> Müller:
>>>>>>>>> Hello Stefan,
>>>>>>>>> 
>>>>>>>>> to be a bit more precise about the NAT issue:
>>>>>>>>> 
>>>>>>>>> My setup is the IPFire Suricata test VM running in KVM,
>>>>>>>>> with
>>>>>>>>> two clients (Debian and OpenBSD) directly attached to
>>>>>>>>> it.
>>>>>>>>> 
>>>>>>>>> The Debian machine is located in GREEN, OpenBSD in
>>>>>>>>> ORANGE.
>>>>>>>>> RED interface is connected via bridge to my actual
>>>>>>>>> testing
>>>>>>>>> LAN;
>>>>>>>>> for the first testing, any outgoing traffic to the
>>>>>>>>> internet
>>>>>>>>> was allowed (I will test upstream proxy behaviour
>>>>>>>>> later).
>>>>>>>>> 
>>>>>>>>> While GREEN was using IPv4 range 192.168.100.0/24, with
>>>>>>>>> IPFire
>>>>>>>>> as 192.168.100.1, enabling Suricata caused packets
>>>>>>>>> coming
>>>>>>>>> from
>>>>>>>>> GREEN not to be NATted anymore: Instead of using the
>>>>>>>>> firewall's
>>>>>>>>> RED IP for destination, it was the internal GREEN IP.
>>>>>>>>> 
>>>>>>>>> Let me know whether is is useful or not. :-)
>>>>>>>>> 
>>>>>>>>> Thanks, and best regards,
>>>>>>>>> Peter Müller
>>>>>>>>> 
>>>>>>>>>> Hello Stefan,
>>>>>>>>>> 
>>>>>>>>>> back again. :-)
>>>>>>>>>> 
>>>>>>>>>> The new IDS WebUI looks quite good so far -
>>>>>>>>>> enabling/disabling
>>>>>>>>>> Suricata works as well as selecting the rule source
>>>>>>>>>> and the
>>>>>>>>>> operation mode (IDS/IPS).
>>>>>>>>>> 
>>>>>>>>>> I was also able to download the "Snort/VRT Community"
>>>>>>>>>> ruleset.
>>>>>>>>>> Trying to switch to the "Emerging Threats" ruleset is
>>>>>>>>>> possible,
>>>>>>>>>> but downloading its ruleset afterwards is not: The
>>>>>>>>>> GUI
>>>>>>>>>> simply
>>>>>>>>>> stalls, printing a message that "Snort (!) is
>>>>>>>>>> performing a
>>>>>>>>>> task".
>>>>>>>>>> 
>>>>>>>>>> The WebUI services page still shows IDS status for
>>>>>>>>>> each
>>>>>>>>>> interface,
>>>>>>>>>> which does not seem to work anymore (everything is
>>>>>>>>>> stopped,
>>>>>>>>>> but
>>>>>>>>>> Suricata was active on RED and GREEN).
>>>>>>>>>> 
>>>>>>>>>> Further, a client located in GREEN behind the test
>>>>>>>>>> firewall
>>>>>>>>>> instance is unable to browse the internet as soon as
>>>>>>>>>> Suricata
>>>>>>>>>> is
>>>>>>>>>> enabled. If disabled, downloading ET rulesets work as
>>>>>>>>>> well
>>>>>>>>>> as
>>>>>>>>>> internet traffic. At the moment, I am flying blind
>>>>>>>>>> here,
>>>>>>>>>> but it
>>>>>>>>>> looks
>>>>>>>>>> like packets are not NATted anymore if Suricata is
>>>>>>>>>> active.
>>>>>>>>>> 
>>>>>>>>>> Any outgoing connection is in state "SYN_SENT" if
>>>>>>>>>> Suricata
>>>>>>>>>> is
>>>>>>>>>> active.
>>>>>>>>>> 
>>>>>>>>>> A portscan against the firewall (GREEN interface) is
>>>>>>>>>> not
>>>>>>>>>> detected,
>>>>>>>>>> even though ET SCAN ruleset is enabled (used nmap
>>>>>>>>>> with NSE
>>>>>>>>>> active).
>>>>>>>>>> 
>>>>>>>>>> Especially the outgoing connection/NAT/? issue
>>>>>>>>>> mentioned
>>>>>>>>>> above
>>>>>>>>>> breaks things in my scenario. Anything else are minor
>>>>>>>>>> issues
>>>>>>>>>> (of
>>>>>>>>>> course, a portscan should be detected, this needs
>>>>>>>>>> further
>>>>>>>>>> investigation
>>>>>>>>>> indeed). WebUI works fine so far.
>>>>>>>>>> 
>>>>>>>>>> Thanks again for your work; I hope the feedback can
>>>>>>>>>> appreciate
>>>>>>>>>> it
>>>>>>>>>> somehow. :-)
>>>>>>>>>> 
>>>>>>>>>> Let me know if there are questions.
>>>>>>>>>> 
>>>>>>>>>> Thanks, and best regards,
>>>>>>>>>> Peter Müller
>>>>>>>>>> 
>>>>>>>> Hello Peter,
>>>>>>>> 
>>>>>>>> thanks for testing and your feedback.
>>>>>>>> 
>>>>>>>> I've setup a test environment and was able to re-produce
>>>>>>>> your
>>>>>>>> NAT
>>>>>>>> issue
>>>>>>>> very easy. After some research and help of Michael, we
>>>>>>>> were
>>>>>>>> able to
>>>>>>>> find the real issue.
>>>>>>>> 
>>>>>>>> It was located in a identical mark on the packets which
>>>>>>>> already
>>>>>>>> have
>>>>>>>> been scanned by suricata and packets which should be
>>>>>>>> modified
>>>>>>>> for
>>>>>>>> SNAT
>>>>>>>> in the "Mangle" table of the routing logic by the kernel.
>>>>>>>> 
>>>>>>>> The changes can be found in my git repository:
>>>>>>>> 
>>>>>>>> https://git.ipfire.org/?p=people/stevee/ipfire-2.x.git;a=commit;h=f5ad510e3c0f416a1507999f5ad20ab171df9c07
>>>>>>>> 
>>>>>>>> I'll upload a fixed image very soon - please keep on
>>>>>>>> testing.
>>>>>>>> 
>>>>>>>> Best regards,
>>>>>>>> 
>>>>>>>> -Stefan


  reply	other threads:[~2018-12-25 21:56 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-29 19:43 Stefan Schantl
2018-12-11 20:53 ` Peter Müller
2018-12-12 20:54   ` Peter Müller
2018-12-16 20:28     ` Peter Müller
2018-12-17 14:21       ` Stefan Schantl
2018-12-17 17:05         ` Michael Tremer
2018-12-17 19:08           ` Stefan Schantl
2018-12-19 16:30             ` Michael Tremer
2018-12-20 13:03               ` Stefan Schantl
2018-12-20 14:05                 ` Michael Tremer
2018-12-21 16:03                   ` Tim FitzGeorge
2018-12-25 19:17                     ` Stefan Schantl
2018-12-25 21:56                       ` Michael Tremer [this message]
2018-12-25 19:03                   ` Stefan Schantl
2019-01-01 13:32 ` Stefan Schantl
2019-01-02 15:54   ` Michael Tremer
2019-02-06  8:58 ` Stefan Schantl
2019-02-14 14:28 ` Stefan Schantl
2019-02-14 15:20   ` ummeegge
2019-02-14 18:01   ` Matthias Fischer
2019-02-14 21:49     ` Stefan Schantl
2019-02-14 23:16       ` Matthias Fischer
2019-02-14 23:36   ` Mentalic
2019-02-15  7:51     ` Stefan Schantl
2019-02-15  0:03   ` Mentalic
2019-02-15  7:54     ` Stefan Schantl
2019-02-17 11:58 ` Stefan Schantl
2019-02-17 12:59   ` Michael Tremer
2019-02-17 19:57     ` Stefan Schantl
2019-02-18 11:44       ` Michael Tremer
2019-02-18 13:09         ` Stefan Schantl
2019-03-03 11:37   ` ummeegge
2019-03-03 18:48     ` Stefan Schantl
2019-03-04  6:28       ` ummeegge
2019-02-18 13:16 ` Stefan Schantl
2019-02-18 22:11   ` Mentalic
2019-02-19 11:33     ` Stefan Schantl
2019-02-19 22:12       ` Mentalic
2019-02-19 23:22         ` Mentalic
2019-02-20  7:55           ` Stefan Schantl
2019-02-21 21:56             ` Mentalic
2019-02-22 10:21               ` Michael Tremer
2019-02-22 11:08                 ` Stefan Schantl
2019-02-22 10:59               ` Stefan Schantl
2019-02-22 18:40                 ` Mentalic
2019-02-20  7:19         ` Stefan Schantl
2019-03-03 14:39 ` Stefan Schantl
2019-03-03 17:33   ` Mentalic
2019-03-04 19:54     ` Mentalic
2019-03-05  9:31       ` Michael Tremer
     [not found] <E1gf64O-0003zJ-Kt@smtprelay03.ispgateway.de>
2019-01-06 13:26 ` IPFire meets Suricata - Call for Tester Stefan Schantl
     [not found] <79FF884C-B36B-42F5-A620-F2636E3706FC@gmail.com>
2019-02-06  9:57 ` IPFire meets Suricata - Call for tester Stefan Schantl
2019-02-06 10:43   ` Michael Tremer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7088171C-BD14-45C5-9CE3-8CAB49721F3C@ipfire.org \
    --to=michael.tremer@ipfire.org \
    --cc=development@lists.ipfire.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox