Pavel Loginov 2020-05-11 18:41:54 +02:00
parent a803e03801
commit 0ffd81bd69
11 changed files with 80 additions and 25 deletions

View File

@ -429,12 +429,15 @@ if serv is not None and form.getvalue('rows1') is not None:
cmd="cat %s| awk -F\"/|:\" '$3>\"%s:00\" && $3<\"%s:00\"' |tail -%s %s %s" % (apache_log_path+"/"+serv, date, date1, rows, grep_act, grep)
elif serv == 'haproxy-wi.error.log':
cmd="cat %s| awk '$4>\"%s:00\" && $4<\"%s:00\"' |tail -%s %s %s" % (apache_log_path+"/"+serv, date, date1, rows, grep_act, grep)
elif serv == 'fail2ban.log':
cmd="cat %s| awk -F\"/|:\" '$3>\"%s:00\" && $3<\"%s:00\"' |tail -%s %s %s" % ("/var/log/"+serv, date, date1, rows, grep_act, grep)
output, stderr = funct.subprocess_execute(cmd)
print(funct.show_log(output))
print(stderr)
if form.getvalue('viewlogs') is not None:
viewlog = form.getvalue('viewlogs')

View File

@ -656,7 +656,7 @@ def get_dick_permit(**kwargs):
if grp == '1':
sql = """ select * from servers where enable = 1 %s %s %s """ % (disable, type_ip, nginx)
else:
sql = """ select * from servers where groups like '%{group}%' and (enable = 1 {disable}) {type_ip} {ip} {haproxy} {nginx} {keepalived}
sql = """ select * from servers where groups = '{group}' and (enable = 1 {disable}) {type_ip} {ip} {haproxy} {nginx} {keepalived}
""".format(group=grp, disable=disable, type_ip=type_ip, ip=ip, haproxy=haproxy, nginx=nginx, keepalived=keepalived)
try:
@ -1140,7 +1140,10 @@ def select_waf_servers_metrics(uuid, **kwargs):
def select_waf_metrics(serv, **kwargs):
con, cur = get_cur()
sql = """ select * from (select * from waf_metrics where serv = '%s' order by `date` desc limit 60) order by `date`""" % serv
if mysql_enable == '1':
sql = """ select * from waf_metrics where serv = '%s' order by `date` desc limit 60 """ % serv
else:
sql = """ select * from (select * from waf_metrics where serv = '%s' order by `date` desc limit 60) order by `date`""" % serv
try:
cur.execute(sql)
except sqltool.Error as e:
@ -1240,7 +1243,10 @@ def delete_mentrics():
def select_metrics(serv, **kwargs):
con, cur = get_cur()
sql = """ select * from (select * from metrics where serv = '%s' order by `date` desc limit 60) order by `date` """ % serv
if mysql_enable == '1':
sql = """ select * from metrics where serv = '%s' order by `date` desc limit 60 """ % serv
else:
sql = """ select * from (select * from metrics where serv = '%s' order by `date` desc limit 60) order by `date` """ % serv
try:
cur.execute(sql)
except sqltool.Error as e:

View File

@ -30,22 +30,6 @@
host = host.replace(/\./g, '\\.');
hostnamea.push(host)
{% endfor %}
$( function() {
$( ".sortable" ).sortable({
revert: true,
placeholder: "ui-state-highlight"
});
$( ".sortable" ).disableSelection();
$( ".sortable" ).sortable({
stop: function(event, ui) {
var itemOrder = $('.sortable').sortable("toArray");
for (var i = 0; i < itemOrder.length; i++) {
console.log("Position: " + i + " ID: " + itemOrder[i]);
}
}
});
});
</script>
<div id="up-pannel" class="sortable">
{% if servers|length == 0 %}
@ -112,11 +96,14 @@
<a id="start-{{ s.2 }}" class="start" title="Start {{service}} service">
<span class="service-start" onclick="confirmAjaxAction('start', '{{action_service}}', '{{s.2}}')"></span>
</a>
<a id="stop-{{ s.2 }}" class="stop" title="Stop {{service}} service">
<span class="service-stop" onclick="confirmAjaxAction('stop', '{{action_service}}', '{{s.2}}')"></span>
<a id="reload-{{ s.2 }}" class="reload" title="Reload {{service}} service">
<span class="service-reload" onclick="confirmAjaxAction('reload', '{{action_service}}', '{{s.2}}', '{{s.1}}')"></span>
</a>
<a id="restart-{{ s.2 }}" class="restart" title="Restart {{service}} service">
<span class="service-reload" onclick="confirmAjaxAction('restart', '{{action_service}}', '{{s.2}}')"></span>
<span class="service-reload service-restart" onclick="confirmAjaxAction('restart', '{{action_service}}', '{{s.2}}')"></span>
</a>
<a id="stop-{{ s.2 }}" class="stop" title="Stop {{service}} service">
<span class="service-stop" onclick="confirmAjaxAction('stop', '{{action_service}}', '{{s.2}}')"></span>
</a>
</span>
{% endif %}

View File

@ -291,8 +291,8 @@
</td>
<td class="padding10 first-collumn" style="width: 20%;">
{% set values = dict() %}
{% set values = {'2.0.5-1':'2.0.5-1','2.0.6-1':'2.0.6-1', '2.0.7-1':'2.0.7-1', '2.0.9-1':'2.0.9-1', '2.0.11-1':'2.0.11-1', '2.0.12-1':'2.0.12-1', '2.0.13-1':'2.0.13-1'} %}
{{ select('hapver', values=values, selected='2.0.13-1', required='required') }}
{% set values = {'2.0.5-1':'2.0.5-1','2.0.6-1':'2.0.6-1', '2.0.7-1':'2.0.7-1', '2.0.9-1':'2.0.9-1', '2.0.11-1':'2.0.11-1', '2.0.12-1':'2.0.12-1', '2.0.13-1':'2.0.13-1', '2.0.14-1':'2.0.14-1'} %}
{{ select('hapver', values=values, selected='2.0.14-1', required='required') }}
</td>
<td class="padding10 first-collumn">
<select autofocus required name="haproxyaddserv" id="haproxyaddserv">

View File

@ -59,6 +59,7 @@ except:
selects = funct.get_files(log_path, format="log")
selects.append(['fail2ban.log','fail2ban.log'])
selects.append(['haproxy-wi.error.log','error.log'])
selects.append(['haproxy-wi.access.log','access.log'])
output_from_parsed_template = template.render(h2 = 1,

View File

@ -0,0 +1,17 @@
# Fail2Ban haproxy-wi filter
#
[Definition]
# Mode for filter: normal (default) and aggressive (allows DDoS & brute force detection of mod_evasive)
mode = normal
failregex = from <HOST> user: .* failed log in for: .*
from <HOST> user: .* tried do action with wrong token for: .*
Failed log in. Wrong username from <HOST>
ignoreregex =
# Author: Pavel Loginov
# For project: haproxy-wi.org

View File

@ -0,0 +1,21 @@
[apache-noscript]
enabled = true
port = http,https
filter = apache-noscript
logpath = /var/log/httpd/*error.log
maxretry = 6
[apache-overflows]
enabled = true
port = http,https
filter = apache-overflows
logpath = /var/log/httpd/*error.log
maxretry = 2
[apache-nohome]
enabled = true
port = http,https
filter = apache-nohome
logpath = /var/log/httpd/*error.log
maxretry = 2

View File

@ -0,0 +1,9 @@
[haproxy-wi]
enabled = true
filter = haproxy-wi
port = http,https
action = iptables[name=haproxy-wi, port=https, protocol=tcp]
logpath = /var/www/haproxy-wi/log/haproxy-wi-*.log
findtime = 600
bantime = 600
maxretry = 2

View File

@ -0,0 +1,8 @@
[ssh-iptables]
backend = systemd
enabled = true
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
logpath = /var/log/secure
maxretry = 2
bantime = 2h

View File

@ -225,6 +225,9 @@
.fa-stop {
color: red !important;
}
.service-restart > .fa-sync-alt {
color: orange !important;
}
.service-reload::after {
display: none;
font-family: "Font Awesome 5 Solid";

View File

@ -462,7 +462,7 @@ function findGetParameter(parameterName) {
return result;
}
function viewLogs() {
if($('#viewlogs').val() == 'haproxy-wi.error.log' || $('#viewlogs').val() == 'haproxy-wi.access.log') {
if($('#viewlogs').val() == 'haproxy-wi.error.log' || $('#viewlogs').val() == 'haproxy-wi.access.log' || $('#viewlogs').val() == 'fail2ban.log') {
showApacheLog($('#viewlogs').val());
} else {
var rows = $('#rows').val()