Netgate SG-1000 microFirewall

Author Topic: Unofficial E2guardian package for pfSense  (Read 20882 times)

0 Members and 1 Guest are viewing this topic.

Offline empbilly

  • Hero Member
  • *****
  • Posts: 943
  • Karma: +44/-8
  • Jesus é Senhor!
    • View Profile
    • infomatico
Re: Unofficial E2guardian package for pfSense
« Reply #555 on: August 12, 2017, 11:46:06 am »
I am also using the e2guardian and in a matter of hours the "memory ram" and swap are skyrocketing. I modified the script that marcelloc suggested in some posts above and when it restarts the service, for example 90% and 75% respectively, the values fall to 50% for memory and normalize the swap.

Offline pfsensation

  • Full Member
  • ***
  • Posts: 205
  • Karma: +3/-0
    • View Profile
Re: Unofficial E2guardian package for pfSense
« Reply #556 on: August 12, 2017, 11:55:53 am »
I am also using the e2guardian and in a matter of hours the "memory ram" and swap are skyrocketing. I modified the script that marcelloc suggested in some posts above and when it restarts the service, for example 90% and 75% respectively, the values fall to 50% for memory and normalize the swap.

Can you share your script? This is driving me insane now...

Offline empbilly

  • Hero Member
  • *****
  • Posts: 943
  • Karma: +44/-8
  • Jesus é Senhor!
    • View Profile
    • infomatico
Re: Unofficial E2guardian package for pfSense
« Reply #557 on: August 12, 2017, 01:46:44 pm »
Script by remzej
Original: https://forum.pfsense.org/index.php?topic=126309.msg727239#msg727239

Modified:

Code: [Select]
#!/usr/local/bin/php-cgi -q
<?php
/*
 * monitor_memory_usage.php
 *
 * part of pfSense (https://www.pfsense.org)
 * Copyright (c) 2011-2015 Rubicon Communications, LLC (Netgate)
 * All rights reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
require_once('config.inc');
require_once(
'util.inc');
require_once(
'squid.inc');
require_once(
'e2guardian.inc');
global 
$config;

// Monitor memory usage by remzej
// Get SWAP usage funtion
function swap_usage() {
exec("/usr/sbin/swapinfo"$swap_info);
$swap_used "";
foreach ($swap_info as $line) {
if (preg_match('/(\d+)%$/'$line$matches)) {
$swap_used $matches[1];
break;
}
}
return $swap_used;
}

// Get memory usage function
function mem_usage() {
$memory "";
exec("/sbin/sysctl -n vm.stats.vm.v_page_count vm.stats.vm.v_inactive_count " .
"vm.stats.vm.v_cache_count vm.stats.vm.v_free_count"$memory);

$totalMem $memory[0];
$availMem $memory[1] + $memory[2] + $memory[3];
$usedMem $totalMem $availMem;
$memUsage round(($usedMem 100) / $totalMem0);

return $memUsage;
}

// Get memory and SWAP usage value
$memusage_pct mem_usage();
$swapusage_pct swap_usage();

// Display memory usage
echo "Memory Usage: " $memusage_pct "%" PHP_EOL;
echo "SWAP Usage: " $swapusage_pct "%" PHP_EOL;

// If memory usage is above 90% and SWAP usage is above 75%, stop and restart squid services.  
if ((($memusage_pct 70) && ($swapusage_pct 50)) || ($memusage_pct 55) ) {
// stop e2g service
exec("/usr/local/sbin/e2guardian stop");
// stop squid service
squid_stop_monitor();
if (is_service_running('squid')) {
stop_service("squid");
}
                
// start e2g service
exec("/usr/local/sbin/e2guardian start");
// start squid service
                
squid_restart_services();
log_error(gettext(sprintf("[squid] Memory usage is $memusage_pct percent and SWAP usage is $swapusage_pct percent, stopping and restarting services.")));
}
?>


Offline pfsensation

  • Full Member
  • ***
  • Posts: 205
  • Karma: +3/-0
    • View Profile
Re: Unofficial E2guardian package for pfSense
« Reply #558 on: August 12, 2017, 04:40:42 pm »
Script by remzej
Original: https://forum.pfsense.org/index.php?topic=126309.msg727239#msg727239

Modified:

Code: [Select]
#!/usr/local/bin/php-cgi -q
<?php
/*
 * monitor_memory_usage.php
 *
 * part of pfSense (https://www.pfsense.org)
 * Copyright (c) 2011-2015 Rubicon Communications, LLC (Netgate)
 * All rights reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
require_once('config.inc');
require_once(
'util.inc');
require_once(
'squid.inc');
require_once(
'e2guardian.inc');
global 
$config;

// Monitor memory usage by remzej
// Get SWAP usage funtion
function swap_usage() {
exec("/usr/sbin/swapinfo"$swap_info);
$swap_used "";
foreach ($swap_info as $line) {
if (preg_match('/(\d+)%$/'$line$matches)) {
$swap_used $matches[1];
break;
}
}
return $swap_used;
}

// Get memory usage function
function mem_usage() {
$memory "";
exec("/sbin/sysctl -n vm.stats.vm.v_page_count vm.stats.vm.v_inactive_count " .
"vm.stats.vm.v_cache_count vm.stats.vm.v_free_count"$memory);

$totalMem $memory[0];
$availMem $memory[1] + $memory[2] + $memory[3];
$usedMem $totalMem $availMem;
$memUsage round(($usedMem 100) / $totalMem0);

return $memUsage;
}

// Get memory and SWAP usage value
$memusage_pct mem_usage();
$swapusage_pct swap_usage();

// Display memory usage
echo "Memory Usage: " $memusage_pct "%" PHP_EOL;
echo "SWAP Usage: " $swapusage_pct "%" PHP_EOL;

// If memory usage is above 90% and SWAP usage is above 75%, stop and restart squid services.  
if ((($memusage_pct 70) && ($swapusage_pct 50)) || ($memusage_pct 55) ) {
// stop e2g service
exec("/usr/local/sbin/e2guardian stop");
// stop squid service
squid_stop_monitor();
if (is_service_running('squid')) {
stop_service("squid");
}
                
// start e2g service
exec("/usr/local/sbin/e2guardian start");
// start squid service
                
squid_restart_services();
log_error(gettext(sprintf("[squid] Memory usage is $memusage_pct percent and SWAP usage is $swapusage_pct percent, stopping and restarting services.")));
}
?>


Thanks! I see you left the code for Squid there too, is there really a need to kill off squid too? From what I've seen, restarting E2 Guardian works just fine.

Offline empbilly

  • Hero Member
  • *****
  • Posts: 943
  • Karma: +44/-8
  • Jesus é Senhor!
    • View Profile
    • infomatico
Re: Unofficial E2guardian package for pfSense
« Reply #559 on: August 12, 2017, 05:14:05 pm »
Script by remzej
Original: https://forum.pfsense.org/index.php?topic=126309.msg727239#msg727239

Modified:

Code: [Select]
#!/usr/local/bin/php-cgi -q
<?php
/*
 * monitor_memory_usage.php
 *
 * part of pfSense (https://www.pfsense.org)
 * Copyright (c) 2011-2015 Rubicon Communications, LLC (Netgate)
 * All rights reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
require_once('config.inc');
require_once(
'util.inc');
require_once(
'squid.inc');
require_once(
'e2guardian.inc');
global 
$config;

// Monitor memory usage by remzej
// Get SWAP usage funtion
function swap_usage() {
exec("/usr/sbin/swapinfo"$swap_info);
$swap_used "";
foreach ($swap_info as $line) {
if (preg_match('/(\d+)%$/'$line$matches)) {
$swap_used $matches[1];
break;
}
}
return $swap_used;
}

// Get memory usage function
function mem_usage() {
$memory "";
exec("/sbin/sysctl -n vm.stats.vm.v_page_count vm.stats.vm.v_inactive_count " .
"vm.stats.vm.v_cache_count vm.stats.vm.v_free_count"$memory);

$totalMem $memory[0];
$availMem $memory[1] + $memory[2] + $memory[3];
$usedMem $totalMem $availMem;
$memUsage round(($usedMem 100) / $totalMem0);

return $memUsage;
}

// Get memory and SWAP usage value
$memusage_pct mem_usage();
$swapusage_pct swap_usage();

// Display memory usage
echo "Memory Usage: " $memusage_pct "%" PHP_EOL;
echo "SWAP Usage: " $swapusage_pct "%" PHP_EOL;

// If memory usage is above 90% and SWAP usage is above 75%, stop and restart squid services.  
if ((($memusage_pct 70) && ($swapusage_pct 50)) || ($memusage_pct 55) ) {
// stop e2g service
exec("/usr/local/sbin/e2guardian stop");
// stop squid service
squid_stop_monitor();
if (is_service_running('squid')) {
stop_service("squid");
}
                
// start e2g service
exec("/usr/local/sbin/e2guardian start");
// start squid service
                
squid_restart_services();
log_error(gettext(sprintf("[squid] Memory usage is $memusage_pct percent and SWAP usage is $swapusage_pct percent, stopping and restarting services.")));
}
?>


Thanks! I see you left the code for Squid there too, is there really a need to kill off squid too? From what I've seen, restarting E2 Guardian works just fine.

So, I ended up just adding the e2g block. :D

Offline pfsensation

  • Full Member
  • ***
  • Posts: 205
  • Karma: +3/-0
    • View Profile
Re: Unofficial E2guardian package for pfSense
« Reply #560 on: August 13, 2017, 12:09:04 pm »
I'm starting to experience system dumps again. Anyone else experiencing the same? Very strange... I've already clean installed.

Offline marcelloc

  • Hero Member
  • *****
  • Posts: 13371
  • Karma: +584/-6
    • View Profile
Re: Unofficial E2guardian package for pfSense
« Reply #561 on: August 14, 2017, 04:15:46 pm »
I'm starting to experience system dumps again. Anyone else experiencing the same? Very strange... I've already clean installed.

I've compiled the binaries again with the little changes from previous 4.1.2_2 we were using to 4.1.3. I don't expect any change on process behavior from last update but I've compiled it anyway to keep this project with the latest updates from e2guardian.

Offline pfsensation

  • Full Member
  • ***
  • Posts: 205
  • Karma: +3/-0
    • View Profile
Re: Unofficial E2guardian package for pfSense
« Reply #562 on: August 19, 2017, 07:00:50 am »
I'm starting to experience system dumps again. Anyone else experiencing the same? Very strange... I've already clean installed.

I've compiled the binaries again with the little changes from previous 4.1.2_2 we were using to 4.1.3. I don't expect any change on process behavior from last update but I've compiled it anyway to keep this project with the latest updates from e2guardian.

https://pastebin.com/zdMs98Zy It's now crashing often again... Only thing that changed is I think at one point there was a unexpected loss of power to the machine. Could this be it?

Offline pfsensation

  • Full Member
  • ***
  • Posts: 205
  • Karma: +3/-0
    • View Profile
Re: Unofficial E2guardian package for pfSense
« Reply #563 on: August 20, 2017, 01:38:59 pm »
Marcello can you take a look at the dump? Also how can I fully clean all files left over by E2Guardian? It's really annoying, I don't want to keep reinstalling pfSense...That sucks.

Offline marcelloc

  • Hero Member
  • *****
  • Posts: 13371
  • Karma: +584/-6
    • View Profile
Re: Unofficial E2guardian package for pfSense
« Reply #564 on: August 30, 2017, 11:23:03 am »
Also how can I fully clean all files left over by E2Guardian?

Uninstall the package will remove xml files and bsd package. /usr/local/etc/e2guardian will keep some files and e2guardian options will stay on xml.

Offline marcelloc

  • Hero Member
  • *****
  • Posts: 13371
  • Karma: +584/-6
    • View Profile
Re: Unofficial E2guardian package for pfSense
« Reply #565 on: August 30, 2017, 11:25:24 am »

Offline bedmakaveli

  • Newbie
  • *
  • Posts: 5
  • Karma: +0/-0
    • View Profile
Re: Unofficial E2guardian package for pfSense
« Reply #566 on: September 06, 2017, 03:43:01 am »
Hello guys,
here I am again :) .
After setting all up, and get E2guardian working correctly, I would love to redirect to the courtesy page also for https pages.
I've read a lot of posts without finding something clear.
I'm using explicit proxy setting, so i don't need the MITSSL, or at least I think so.
There is a way to redirect the https pages to the courtesy page visualized on blocked http traffic or should i lose my hopes?

Thanks marcelloc for all the work, I'll repay the efforts with a lot of coffes :)

PS: sorry for the repost, maybe here is the correct place for this kind of question :)

Offline marcelloc

  • Hero Member
  • *****
  • Posts: 13371
  • Karma: +584/-6
    • View Profile
Re: Unofficial E2guardian package for pfSense
« Reply #567 on: September 06, 2017, 05:10:23 am »
Take a look on report options. You can redirect to a external url or chance current template.

Offline bedmakaveli

  • Newbie
  • *
  • Posts: 5
  • Karma: +0/-0
    • View Profile
Re: Unofficial E2guardian package for pfSense
« Reply #568 on: September 07, 2017, 05:08:49 am »
Take a look on report options. You can redirect to a external url or chance current template.

Thanks marcelloc for the reply.
But how can I redirect to the report page when I try to access to an https site?
It seems to work only for http sites.

Offline marcelloc

  • Hero Member
  • *****
  • Posts: 13371
  • Karma: +584/-6
    • View Profile
Re: Unofficial E2guardian package for pfSense
« Reply #569 on: September 07, 2017, 09:06:08 am »
Take a look on report options. You can redirect to a external url or chance current template.

Thanks marcelloc for the reply.
But how can I redirect to the report page when I try to access to an https site?
It seems to work only for http sites.

Intercepting SSL. You can setup it on group settings but you need to install certificate authority on clients.