diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php index 4f64b46..1b3a23b 100644 --- a/app/Http/Controllers/HomeController.php +++ b/app/Http/Controllers/HomeController.php @@ -27,6 +27,7 @@ public function __construct() public function index(Request $request) { $tab = $request->input('tab', 'my-apps'); + $limit = $request->input('limit', 20); $user = Auth::user(); $servers = YnhServer::forUser($user); $memory_usage = collect(); @@ -41,11 +42,11 @@ public function index(Request $request) if ($tab === 'security') { $security_events = [ - 'authorized_keys' => YnhOsquery::authorizedKeys($servers), - 'kernel_modules' => YnhOsquery::kernelModules($servers), - 'suid_bin' => YnhOsquery::suidBin($servers), - 'last_logins_and_logouts' => YnhOsquery::loginsAndLogouts($servers), - 'users' => YnhOsquery::users($servers), + 'authorized_keys' => YnhOsquery::authorizedKeys($servers, $limit), + 'kernel_modules' => YnhOsquery::kernelModules($servers, $limit), + 'suid_bin' => YnhOsquery::suidBinaries($servers, $limit), + 'last_logins_and_logouts' => YnhOsquery::loginsAndLogouts($servers, $limit), + 'users' => YnhOsquery::users($servers, $limit), ]; } @@ -116,6 +117,7 @@ public function index(Request $request) } return view('home.index', compact( 'tab', + 'limit', 'servers', 'orders', 'users', diff --git a/app/Http/Controllers/YnhServerController.php b/app/Http/Controllers/YnhServerController.php index 19d397e..44f7daa 100644 --- a/app/Http/Controllers/YnhServerController.php +++ b/app/Http/Controllers/YnhServerController.php @@ -53,6 +53,7 @@ public function __construct() public function index(YnhServer $server, Request $request) { $tab = $request->input('tab', 'settings'); + $limit = $request->input('limit', 40); $user = Auth::user(); $servers = collect([$server]); $memory_usage = collect(); @@ -67,11 +68,11 @@ public function index(YnhServer $server, Request $request) if ($tab === 'security') { $security_events = [ - 'authorized_keys' => YnhOsquery::authorizedKeys($servers), - 'kernel_modules' => YnhOsquery::kernelModules($servers), - 'suid_bin' => YnhOsquery::suidBin($servers), - 'last_logins_and_logouts' => YnhOsquery::loginsAndLogouts($servers), - 'users' => YnhOsquery::users($servers), + 'authorized_keys' => YnhOsquery::authorizedKeys($servers, $limit), + 'kernel_modules' => YnhOsquery::kernelModules($servers, $limit), + 'suid_bin' => YnhOsquery::suidBinaries($servers, $limit), + 'last_logins_and_logouts' => YnhOsquery::loginsAndLogouts($servers, $limit), + 'users' => YnhOsquery::users($servers, $limit), ]; } @@ -94,6 +95,7 @@ public function index(YnhServer $server, Request $request) } return view('home.pages._servers', compact( 'tab', + 'limit', 'server', 'memory_usage', 'disk_usage', diff --git a/app/Models/YnhOsquery.php b/app/Models/YnhOsquery.php index 52611ba..db09f79 100644 --- a/app/Models/YnhOsquery.php +++ b/app/Models/YnhOsquery.php @@ -36,7 +36,7 @@ class YnhOsquery extends Model 'packed' => 'boolean', ]; - public static function memoryUsage(Collection $servers): Collection + public static function memoryUsage(Collection $servers, int $limit = 1000): Collection { return $servers->isEmpty() ? collect() : collect(DB::select(" SELECT @@ -69,7 +69,7 @@ public static function memoryUsage(Collection $servers): Collection FROM ynh_memory_usage ORDER BY timestamp DESC - LIMIT 1000 + LIMIT {$limit} ) AS t INNER JOIN ynh_servers ON ynh_servers.id = t.ynh_server_id WHERE ynh_servers.id IN ({$servers->pluck('id')->join(',')}) @@ -77,7 +77,7 @@ public static function memoryUsage(Collection $servers): Collection ")); } - public static function diskUsage(Collection $servers): Collection + public static function diskUsage(Collection $servers, int $limit = 1000): Collection { return $servers->isEmpty() ? collect() : collect(DB::select(" SELECT @@ -110,7 +110,7 @@ public static function diskUsage(Collection $servers): Collection FROM ynh_disk_usage ORDER BY timestamp DESC - LIMIT 1000 + LIMIT {$limit} ) AS t INNER JOIN ynh_servers ON ynh_servers.id = t.ynh_server_id WHERE ynh_servers.id IN ({$servers->pluck('id')->join(',')}) @@ -118,7 +118,7 @@ public static function diskUsage(Collection $servers): Collection ")); } - public static function users(Collection $servers): Collection + public static function users(Collection $servers, int $limit): Collection { // { // "description":null, @@ -147,11 +147,11 @@ public static function users(Collection $servers): Collection WHERE ynh_osquery.name = 'users' AND ynh_osquery.ynh_server_id IN ({$servers->pluck('id')->join(',')}) ORDER BY timestamp DESC - LIMIT 20; + LIMIT {$limit}; ")); } - public static function loginsAndLogouts(Collection $servers): Collection + public static function loginsAndLogouts(Collection $servers, int $limit): Collection { // { // "host":null, @@ -185,11 +185,11 @@ public static function loginsAndLogouts(Collection $servers): Collection WHERE ynh_osquery.name = 'last' AND ynh_osquery.ynh_server_id IN ({$servers->pluck('id')->join(',')}) ORDER BY timestamp DESC, entry_timestamp DESC - LIMIT 20; + LIMIT {$limit}; ")); } - public static function suidBin(Collection $servers): Collection + public static function suidBinaries(Collection $servers, int $limit): Collection { // { // "groupname":"tty", @@ -212,11 +212,11 @@ public static function suidBin(Collection $servers): Collection WHERE ynh_osquery.name = 'suid_bin' AND ynh_osquery.ynh_server_id IN ({$servers->pluck('id')->join(',')}) ORDER BY timestamp DESC - LIMIT 20; + LIMIT {$limit}; ")); } - public static function kernelModules(Collection $servers): Collection + public static function kernelModules(Collection $servers, int $limit): Collection { // { // "address":"0xffffffffc0223000", @@ -241,11 +241,11 @@ public static function kernelModules(Collection $servers): Collection WHERE ynh_osquery.name = 'kernel_modules' AND ynh_osquery.ynh_server_id IN ({$servers->pluck('id')->join(',')}) ORDER BY timestamp DESC - LIMIT 20 + LIMIT {$limit} ")); } - public static function authorizedKeys(Collection $servers): Collection + public static function authorizedKeys(Collection $servers, int $limit): Collection { // { // "algorithm":"ssh-rsa", @@ -281,7 +281,7 @@ public static function authorizedKeys(Collection $servers): Collection WHERE ynh_osquery.name = 'authorized_keys' AND ynh_osquery.ynh_server_id IN ({$servers->pluck('id')->join(',')}) ORDER BY timestamp DESC - LIMIT 20 + LIMIT {$limit} ")); } diff --git a/resources/views/home/cards/_security.blade.php b/resources/views/home/cards/_security.blade.php index 2f41b47..b0b3988 100644 --- a/resources/views/home/cards/_security.blade.php +++ b/resources/views/home/cards/_security.blade.php @@ -3,7 +3,7 @@ @if($security_events['authorized_keys'])
-

{{ __('Authorized Keys (Last 20 Events)') }}

+

{{ __('Authorized Keys (last :count events)', ['count' => $limit]) }}

@if(count($security_events['authorized_keys']) === 0)
@@ -11,7 +11,7 @@ {{ __('An access key has been added or removed.') }}
-
+
None.
@@ -74,7 +74,7 @@ @if($security_events['last_logins_and_logouts'])
-

{{ __('Logins and Logouts (Last 20 Events)') }}

+

{{ __('Logins and Logouts (last :count events)', ['count' => $limit]) }}

@if(count($security_events['last_logins_and_logouts']) === 0)
@@ -82,7 +82,7 @@ {{ __('System logins and logouts.') }}
-
+
None.
@@ -153,7 +153,7 @@ @if($security_events['users'])
-

{{ __('User Accounts (Last 20 Events)') }}

+

{{ __('User Accounts (last :count events)', ['count' => $limit]) }}

@if(count($security_events['users']) === 0)
@@ -161,7 +161,7 @@ {{ __('System logins and logouts.') }}
-
+
None.
@@ -228,7 +228,7 @@ @if($security_events['kernel_modules'])
-

{{ __('Kernel Modules (Last 20 Events)') }}

+

{{ __('Kernel Modules (last :count events)', ['count' => $limit]) }}

@if(count($security_events['kernel_modules']) === 0)
@@ -236,7 +236,7 @@ {{ __('A kernel module has been added or removed.') }}
-
+
None.
@@ -311,7 +311,7 @@ @if($security_events['suid_bin'])
-

{{ __('Suid Binaries (Last 20 Events)') }}

+

{{ __('Suid Binaries (last :count events)', ['count' => $limit]) }}

@if(count($security_events['suid_bin']) === 0)
@@ -319,7 +319,7 @@ {{ __('A suid binary has been detected (often used in backdoors).') }}
-
+
None.
diff --git a/resources/views/home/index.blade.php b/resources/views/home/index.blade.php index 3ed6f71..ef546f1 100644 --- a/resources/views/home/index.blade.php +++ b/resources/views/home/index.blade.php @@ -104,7 +104,7 @@ @if(Auth::user()->canListServers()) @@ -147,7 +147,7 @@ @include('home.cards._towerify_domains') @endif @if($tab === 'applications') - @include('home.cards._towerify_applications') + @include('home.cards._towerify_applications') @endif @if($tab === 'orders') @include('home.cards._orders') diff --git a/resources/views/home/pages/_servers.blade.php b/resources/views/home/pages/_servers.blade.php index 0dce831..a414e21 100644 --- a/resources/views/home/pages/_servers.blade.php +++ b/resources/views/home/pages/_servers.blade.php @@ -61,7 +61,7 @@