109 lines
8.3 KiB
HTML
109 lines
8.3 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="de">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>AdGuard Shield - Report</title>
|
|
<style>
|
|
body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; background-color: #f0f2f5; margin: 0; padding: 0; color: #1a1a2e; }
|
|
.container { max-width: 700px; margin: 30px auto; background: #ffffff; border-radius: 12px; box-shadow: 0 2px 12px rgba(0,0,0,0.08); overflow: hidden; }
|
|
.header { background: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%); color: #ffffff; padding: 30px 35px; text-align: center; }
|
|
.header h1 { margin: 0 0 6px 0; font-size: 26px; font-weight: 700; letter-spacing: 0.5px; }
|
|
.header .subtitle { font-size: 14px; color: #a8b2d1; margin: 0; }
|
|
.header .period { display: inline-block; margin-top: 14px; padding: 6px 18px; background: rgba(255,255,255,0.12); border-radius: 20px; font-size: 13px; color: #ccd6f6; }
|
|
.content { padding: 30px 35px; }
|
|
.stats-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 28px; }
|
|
.stat-card { background: #f8f9fc; border-radius: 10px; padding: 18px 20px; border-left: 4px solid #0f3460; }
|
|
.stat-card.danger { border-left-color: #e74c3c; }
|
|
.stat-card.warning { border-left-color: #f39c12; }
|
|
.stat-card.success { border-left-color: #27ae60; }
|
|
.stat-card.info { border-left-color: #3498db; }
|
|
.stat-card .stat-value { font-size: 28px; font-weight: 700; color: #1a1a2e; line-height: 1.2; }
|
|
.stat-card .stat-label { font-size: 12px; color: #6c757d; text-transform: uppercase; letter-spacing: 0.5px; margin-top: 4px; }
|
|
h2 { font-size: 18px; color: #1a1a2e; margin: 28px 0 14px 0; padding-bottom: 8px; border-bottom: 2px solid #f0f2f5; }
|
|
h2:first-child { margin-top: 0; }
|
|
table { width: 100%; border-collapse: collapse; margin-bottom: 20px; font-size: 14px; }
|
|
th { background: #f8f9fc; color: #1a1a2e; font-weight: 600; text-align: left; padding: 10px 14px; border-bottom: 2px solid #e8ecf1; font-size: 12px; text-transform: uppercase; letter-spacing: 0.3px; }
|
|
td { padding: 10px 14px; border-bottom: 1px solid #f0f2f5; color: #495057; }
|
|
tr:last-child td { border-bottom: none; }
|
|
tr:hover td { background: #fafbfd; }
|
|
.rank { display: inline-block; width: 24px; height: 24px; line-height: 24px; text-align: center; background: #e8ecf1; border-radius: 50%; font-size: 12px; font-weight: 600; color: #495057; }
|
|
.rank.top3 { background: #0f3460; color: #ffffff; }
|
|
.ip-cell { font-family: 'SF Mono', 'Fira Code', 'Consolas', monospace; font-size: 13px; color: #1a1a2e; }
|
|
.bar-container { display: flex; align-items: center; gap: 8px; }
|
|
.bar { height: 8px; background: linear-gradient(90deg, #0f3460, #3498db); border-radius: 4px; min-width: 4px; }
|
|
.bar-value { font-size: 13px; font-weight: 600; color: #1a1a2e; white-space: nowrap; }
|
|
.protocol-badge { display: inline-block; padding: 3px 10px; border-radius: 12px; font-size: 12px; font-weight: 600; background: #e8ecf1; color: #495057; margin: 2px; }
|
|
.protocol-badge.dns { background: #dff0d8; color: #3c763d; }
|
|
.protocol-badge.doh { background: #d9edf7; color: #31708f; }
|
|
.protocol-badge.dot { background: #fcf8e3; color: #8a6d3b; }
|
|
.protocol-badge.doq { background: #f2dede; color: #a94442; }
|
|
.reason-badge { display: inline-block; padding: 3px 10px; border-radius: 12px; font-size: 12px; font-weight: 600; }
|
|
.reason-badge.rate-limit { background: #fcf8e3; color: #8a6d3b; }
|
|
.reason-badge.subdomain-flood { background: #f2dede; color: #a94442; }
|
|
.reason-badge.external { background: #d9edf7; color: #31708f; }
|
|
.no-data { text-align: center; padding: 30px; color: #adb5bd; font-style: italic; }
|
|
.footer { background: #f8f9fc; padding: 24px 35px; text-align: center; font-size: 12px; color: #6c757d; border-top: 1px solid #e8ecf1; }
|
|
.footer a { color: #0f3460; text-decoration: none; font-weight: 600; }
|
|
.footer .links { margin-top: 10px; display: flex; justify-content: space-between; align-items: center; gap: 12px; }
|
|
.footer .separator { margin: 0 8px; color: #ced4da; }
|
|
.version-tag { display: block; margin-top: 8px; font-size: 11px; color: #adb5bd; }
|
|
.update-notice { display: inline-block; margin-top: 10px; padding: 7px 14px; background: #fff8e1; border: 1px solid #ffc107; border-radius: 8px; color: #7a5700; font-size: 12px; font-weight: 600; }
|
|
.update-notice a { color: #7a5700; text-decoration: none; font-weight: 700; }
|
|
.period-today td { background: #eef4ff; font-weight: 600; }
|
|
.period-today td:first-child { color: #0f3460; }
|
|
.period-gestern td { background: #f0faf3; font-weight: 600; }
|
|
.period-gestern td:first-child { color: #27ae60; }
|
|
@media (max-width: 700px) { .container { margin: 0; border-radius: 0; } .content, .header, .footer { padding-left: 18px; padding-right: 18px; } .stats-grid { grid-template-columns: 1fr; } table { font-size: 12px; } th, td { padding: 8px 8px; } .footer .links { display: block; } }
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div class="container">
|
|
<div class="header">
|
|
<h1>AdGuard Shield</h1>
|
|
<p class="subtitle">Sicherheits-Report</p>
|
|
<div class="period">{{REPORT_PERIOD}}</div>
|
|
</div>
|
|
<div class="content">
|
|
<h2>Zeitraum-Schnelluebersicht</h2>
|
|
{{PERIOD_OVERVIEW_TABLE}}
|
|
<h2>Uebersicht</h2>
|
|
<div class="stats-grid">
|
|
<div class="stat-card danger"><div class="stat-value">{{TOTAL_BANS}}</div><div class="stat-label">Sperren gesamt</div></div>
|
|
<div class="stat-card success"><div class="stat-value">{{TOTAL_UNBANS}}</div><div class="stat-label">Entsperrungen</div></div>
|
|
<div class="stat-card warning"><div class="stat-value">{{UNIQUE_IPS}}</div><div class="stat-label">Eindeutige IPs</div></div>
|
|
<div class="stat-card info"><div class="stat-value">{{PERMANENT_BANS}}</div><div class="stat-label">Permanente Sperren</div></div>
|
|
<div class="stat-card"><div class="stat-value">{{ACTIVE_BANS}}</div><div class="stat-label">Aktuell aktive Sperren</div></div>
|
|
<div class="stat-card info"><div class="stat-value">{{ABUSEIPDB_REPORTS}}</div><div class="stat-label">AbuseIPDB Reports</div></div>
|
|
</div>
|
|
<h2>Angriffsarten</h2>
|
|
<div class="stats-grid">
|
|
<div class="stat-card warning"><div class="stat-value">{{RATELIMIT_BANS}}</div><div class="stat-label">Rate-Limit Sperren</div></div>
|
|
<div class="stat-card danger"><div class="stat-value">{{SUBDOMAIN_FLOOD_BANS}}</div><div class="stat-label">Subdomain-Flood Sperren</div></div>
|
|
<div class="stat-card"><div class="stat-value">{{EXTERNAL_BLOCKLIST_BANS}}</div><div class="stat-label">Externe Blocklist</div></div>
|
|
<div class="stat-card success"><div class="stat-value">{{BUSIEST_DAY}}</div><div class="stat-label">{{BUSIEST_DAY_LABEL}}</div></div>
|
|
</div>
|
|
<h2>Top 10 - Auffaelligste IPs</h2>
|
|
{{TOP10_IPS_TABLE}}
|
|
<h2>Top 10 - Meistbetroffene Domains</h2>
|
|
{{TOP10_DOMAINS_TABLE}}
|
|
<h2>Protokoll-Verteilung</h2>
|
|
{{PROTOCOL_TABLE}}
|
|
<h2>Letzte 10 Sperren</h2>
|
|
{{RECENT_BANS_TABLE}}
|
|
</div>
|
|
<div class="footer">
|
|
<div class="links">
|
|
<span><a href="https://www.patrick-asmus.de">Patrick-Asmus.de</a><span class="separator">|</span><a href="https://www.cleveradmin.de">CleverAdmin.de</a></span>
|
|
<span><a href="https://git.techniverse.net/scriptos/adguard-shield.git">AdGuard Shield auf Gitea</a><span class="separator">|</span><a href="https://git.techniverse.net/scriptos/adguard-shield/src/branch/main/docs">docs</a></span>
|
|
</div>
|
|
<br>
|
|
Dieser Report wurde automatisch von <strong>AdGuard Shield</strong> generiert.<br>
|
|
Generiert am: {{REPORT_DATE}}
|
|
<div class="version-tag">AdGuard Shield {{VERSION}} · {{HOSTNAME}}</div>
|
|
{{UPDATE_NOTICE}}
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|