]> git.ipfire.org Git - ipfire-2.x.git/blobdiff - html/cgi-bin/ids.cgi
ids.cgi: Rework "Enable IPS" section
[ipfire-2.x.git] / html / cgi-bin / ids.cgi
index ba2136b2f9bf5279cab6f49d91d79ad4a02719ff..1235d477668bd1da437d8733e0cbe5f4221ed687 100644 (file)
@@ -323,8 +323,8 @@ if ($cgiparams{'RULESET'} eq $Lang::tr{'save'}) {
                &IDS::call_suricatactrl("cron", $cgiparams{'AUTOUPDATE_INTERVAL'});
        }
 
-       # Check if a ruleset is present - if not download it.
-       unless (%idsrules) {
+       # Check if a ruleset is present - if not or the source has been changed download it.
+       if((! %idsrules) || ($oldsettings{'RULES'} ne $cgiparams{'RULES'})) {
                # Check if the red device is active.
                unless (-e "${General::swroot}/red/active") {
                        $errormessage = "$Lang::tr{'could not download latest updates'} - $Lang::tr{'system is offline'}";
@@ -352,6 +352,14 @@ if ($cgiparams{'RULESET'} eq $Lang::tr{'save'}) {
                                &IDS::oinkmaster();
                        }
 
+                       # Check if the IDS is running.
+                       if(&IDS::ids_is_running()) {
+                               # Call suricatactrl to stop the IDS - because of the changed
+                               # ruleset - the use has to configure it before suricata can be
+                               # used again.
+                               &IDS::call_suricatactrl("stop");
+                       }
+
                        # Perform a reload of the page.
                        &reload();
                }
@@ -767,11 +775,11 @@ if (%idsrules) {
                <table width='100%' border='0'>
                        <tr>
                                <td class='base' colspan='2'>
-                                       <input type='checkbox' name='ENABLE_IDS' $checked{'ENABLE_IDS'}{'on'}>$Lang::tr{'ids activate'} $Lang::tr{'intrusion detection system'}
+                                       <input type='checkbox' name='ENABLE_IDS' $checked{'ENABLE_IDS'}{'on'}>&nbsp$Lang::tr{'ids enable'}
                                </td>
 
                                <td class='base' colspan='2'>
-                                       <input type='checkbox' name='MONITOR_TRAFFIC_ONLY' $checked{'MONITOR_TRAFFIC_ONLY'}{'on'}>$Lang::tr{'ids monitor traffic only'}
+                                       <input type='checkbox' name='MONITOR_TRAFFIC_ONLY' $checked{'MONITOR_TRAFFIC_ONLY'}{'on'}>&nbsp$Lang::tr{'ids monitor traffic only'}
                        </td>
                        </tr>
 
@@ -859,9 +867,9 @@ print <<END
 
                        <td>
                                <select name='AUTOUPDATE_INTERVAL'>
-                                       <option value='off' $selected{'AUTOUPDATE_INTERVAL'}{'off'} >$Lang::tr{'no'}</option>
-                                       <option value='daily' $selected{'AUTOUPDATE_INTERVAL'}{'daily'} >$Lang::tr{'urlfilter daily'}</option>
-                                       <option value='weekly' $selected{'AUTOUPDATE_INTERVAL'}{'weekly'} >$Lang::tr{'urlfilter weekly'}</option>
+                                       <option value='off' $selected{'AUTOUPDATE_INTERVAL'}{'off'} >- $Lang::tr{'Disabled'} -</option>
+                                       <option value='daily' $selected{'AUTOUPDATE_INTERVAL'}{'daily'} >$Lang::tr{'Daily'}</option>
+                                       <option value='weekly' $selected{'AUTOUPDATE_INTERVAL'}{'weekly'} >$Lang::tr{'Weekly'}</option>
                                </select>
                        </td>
                </tr>