diff --git a/extensions/Servers/Proxmox/views/boot-order.blade.php b/extensions/Servers/Proxmox/views/boot-order.blade.php index 00db6ce8c..e1fc9a4d6 100644 --- a/extensions/Servers/Proxmox/views/boot-order.blade.php +++ b/extensions/Servers/Proxmox/views/boot-order.blade.php @@ -38,7 +38,7 @@
Could not retrieve status from hypervisor:
++ The Firewall Management interface provides comprehensive control over your virtual machine's network security, including rule-based filtering, IP aliases, and security policies. +
+Firewall Rules: Create granular rules to allow or block specific traffic patterns.
+IP Aliases: Define named groups of IP addresses for easier rule management.
+IP Sets: Manage collections of IP addresses for advanced filtering.
+Security Logs: Monitor firewall activity and blocked attempts.
+
- @if($firewallEnabled)
-
-
-
-
-
- Active - Your VM is protected
-
- @else
-
-
Control default traffic behavior
-
+ @if($firewallEnabled)
+
+
+
+
+
+ Active - Your VM is protected
+
+ @else
+
+
Per-device firewall control
-How default policies control your network traffic
-Controls what happens to traffic coming INTO your VM when it doesn't match any explicit firewall rule.
-Controls what happens to traffic going OUT of your VM when it doesn't match any explicit firewall rule.
-To create a strict whitelist (only allow specific traffic):
-IP Filter: Validates that source/destination IP addresses in packets match the VM's assigned IPs. Helps prevent IP spoofing.
-MAC Filter: Validates that MAC addresses match the VM's network adapters. Provides additional layer of security.
-Create named references to IP addresses or CIDR ranges
-{{ $alias['comment'] ?? 'No description' }}
{{ trim($cidr) }}
+ Create aliases to simplify rule management
-Group multiple IPs/CIDRs for easier rule management
-No IP Sets created yet
-No members in this IPSet
-Select an IP Set to view its members
-Showing the latest logs first (most recent at top)
- @if($lastLogRefresh) - • Last updated: {{ $lastLogRefresh }} - @endif - • Auto-refreshes every 30s -{{ $logError }}
-Loading firewall logs...
-| Time | -Action | -Source | -Destination | -Protocol | -Src Port | -Dest Port | -Analysis | -
|---|---|---|---|---|---|---|---|
| - @if(isset($log['timestamp_iso']) && $log['timestamp_iso'] !== '-') - - @else - {{ $log['timestamp_display'] ?? $log['timestamp'] ?? '-' }} - @endif - | -- - {{ $log['action'] ?? '-' }} - - | -
-
- {{ $log['source'] ?? '-' }}
- @php $sourceIP = $log['source'] ?? ''; @endphp
- @if($sourceIP && $sourceIP !== '-' && $this->checkIsPublicIP($sourceIP))
-
-
-
- @endif
- |
-
-
- {{ $log['destination'] ?? '-' }}
- @php $destIP = $log['destination'] ?? ''; @endphp
- @if($destIP && $destIP !== '-' && $this->checkIsPublicIP($destIP))
-
-
-
- @endif
- |
- {{ $log['protocol'] ?? '-' }} | -{{ $log['source_port'] ?? '-' }} | -{{ $log['destination_port'] ?? '-' }} | -
- @php
- $sourceIP = $log['source'] ?? '';
- $destIP = $log['destination'] ?? '';
- $sourcePort = $log['source_port'] ?? '';
- $destPort = $log['destination_port'] ?? '';
- $protocol = $log['protocol'] ?? '';
- @endphp
- @if($coreRouterConfigured && $sourceIP && $sourceIP !== '-')
-
-
- @endif
- |
-
Logs will appear here when the firewall blocks or allows traffic
-Save and reuse firewall configurations across your VPS instances
-| Configuration Name | -Rules | -Policies | -Created | -Actions | -
|---|---|---|---|---|
|
-
-
-
-
- {{ $config['configuration_name'] }}
- |
- - - {{ is_array($config['firewall_rules']) ? count($config['firewall_rules']) : 0 }} rules - - | -
-
-
- IN: {{ $config['incoming_policy'] }}
-
-
- OUT: {{ $config['outgoing_policy'] }}
-
-
- |
- - {{ \Carbon\Carbon::parse($config['created_at'])->format('M d, Y H:i') }} - | -
-
-
- |
-
Save your current firewall configuration to reuse it later or apply it to other VPS instances
-Your virtual machine is currently unprotected. Enable the firewall above to secure your network traffic with customizable rules.
-Define rules to allow or block specific connections
-Track and log all firewall events in real-time
-Configure default behavior for incoming and outgoing traffic
-
-
Can use alias names or leave empty for any source
-Are you sure you want to delete this rule? This action cannot be undone.
-Delete alias "{{ $deletingAliasName }}"?
-This may affect firewall rules using this alias.
-After creating the IPSet, you can add IP addresses and CIDR ranges to it.
-Delete IPSet "{{ $deletingIPSetName }}"?
-All members will be removed and rules using this IPSet may be affected.
-{{ $ipset['comment'] ?? 'No description' }}
+Remove "{{ $deletingMemberCidr }}" from {{ $selectedIPSetName }}?
-Save your current firewall rules and policies as a reusable configuration
-{{ $message }}
- @enderror -Created on {{ $viewingConfiguration->created_at->format('M d, Y H:i') }}
-The following rules may not be compatible with this VPS:
-| # | -Action | -Direction | -Source | -Destination | -Protocol | -Port | -Status | -
|---|---|---|---|---|---|---|---|
| {{ $index + 1 }} | -- - {{ $rule['action'] ?? 'ACCEPT' }} - - | -{{ strtoupper($rule['type'] ?? '-') }} | -{{ $rule['source'] ?? 'any' }} | -{{ $rule['dest'] ?? 'any' }} | -{{ $rule['proto'] ?? '-' }} | -{{ $rule['dport'] ?? '-' }} | -
- @if($hasIssue)
- Incompatible
- @elseif(isset($rule['enable']) && $rule['enable'] == 0)
- Disabled
- @else
- Enabled
+ @if(isset($ipset['cidr']) && count($ipset['cidr']) > 0)
+
+ @foreach(array_slice($ipset['cidr'], 0, 5) as $cidr)
+ {{ $cidr }}
+ @endforeach
+ @if(count($ipset['cidr']) > 5)
+ ... and {{ count($ipset['cidr']) - 5 }} more @endif - |
-
No rules in this configuration
+Apply "{{ $applyingConfiguration->configuration_name }}" to this VPS
-Warning
-This will replace all existing firewall rules with the rules from this configuration. This action cannot be undone.
-Compatibility Notice
-{{ count($applyCompatibilityWarnings) }} rule(s) in this configuration are not fully compatible with this VPS and will be disabled.
+ {{-- LOGS TAB --}} +Rules
-{{ count($applyingConfiguration->firewall_rules) }}
-IN Policy
- -OUT Policy
- -Are you sure you want to delete this saved configuration? This action cannot be undone.
-Apply the current firewall configuration to all your other VPS instances.
-This will replace the firewall configuration on all your other servers. Existing rules will be deleted and replaced with the current configuration.
-No other servers found to apply the configuration to.
-Enter a new name for this configuration
+ {{-- SAVED CONFIGURATIONS TAB --}} +{{ $config['description'] ?? 'No description' }}
+{{ $config['created_at'] }}
+{{ $message }}
- @enderror + + + {{-- Policy Info Modal --}} + @if($showPolicyInfoModal) +How default policies control your network traffic
+Controls what happens to traffic coming INTO your VM when it doesn't match any explicit firewall rule.
+Controls what happens to traffic going OUT of your VM when it doesn't match any explicit firewall rule.
+To create a strict whitelist (only allow specific traffic):
+IP Filter: Validates that source/destination IP addresses in packets match the VM's assigned IPs. Helps prevent IP spoofing.
+MAC Filter: Validates that MAC addresses match the VM's network adapters. Provides additional layer of security.
+{{ $error }}
+
+ @if($firewallEnabled)
+
+
+
+
+
+ Active - Your VM is protected
+
+ @else
+
+
Control default traffic behavior
+Per-device firewall control
+How default policies control your network traffic
+Controls what happens to traffic coming INTO your VM when it doesn't match any explicit firewall rule.
+Controls what happens to traffic going OUT of your VM when it doesn't match any explicit firewall rule.
+To create a strict whitelist (only allow specific traffic):
+IP Filter: Validates that source/destination IP addresses in packets match the VM's assigned IPs. Helps prevent IP spoofing.
+MAC Filter: Validates that MAC addresses match the VM's network adapters. Provides additional layer of security.
+| Order | +Pos | +Action | +Direction | +Source | +Destination | +Protocol | +Ports | +Status | +Actions | +
|---|---|---|---|---|---|---|---|---|---|
|
+
+ @if($index > 0)
+
+ |
+ {{ $rule['pos'] ?? '-' }} | ++ @php + $actionClass = match($rule['action'] ?? '') { + 'ACCEPT' => 'bg-success/20 text-success', + 'REJECT' => 'bg-warning/20 text-warning', + 'DROP' => 'bg-error/20 text-error', + default => 'bg-base/20 text-base/60' + }; + @endphp + + {{ $rule['action'] ?? '-' }} + + | ++ + {{ strtoupper($rule['type'] ?? 'IN') }} + + | +
+
+ {{ $rule['source'] ?? '-' }}
+ @php $ruleSourceIP = $rule['source'] ?? ''; @endphp
+ @if($ruleSourceIP && $ruleSourceIP !== '-' && $this->checkIsPublicIP($ruleSourceIP))
+
+
+
+ @endif
+ |
+
+
+ {{ $rule['dest'] ?? '-' }}
+ @php $ruleDestIP = $rule['dest'] ?? ''; @endphp
+ @if($ruleDestIP && $ruleDestIP !== '-' && $this->checkIsPublicIP($ruleDestIP))
+
+
+
+ @endif
+ |
+ {{ strtoupper($rule['proto'] ?? ($rule['macro'] ?? 'ANY')) }} | +{{ $rule['dport'] ?? $rule['sport'] ?? '-' }} | ++ @if(isset($rule['enable']) && $rule['enable'] == 0) + Disabled + @else + Enabled + @endif + | +
+
+
+ |
+
Create your first rule to control network traffic
+Create named references to IP addresses or CIDR ranges
+Create aliases to simplify rule management
+Group multiple IPs/CIDRs for easier rule management
+No IP Sets created yet
+No members in this IPSet
+Select an IP Set to view its members
+Showing the latest logs first (most recent at top)
+ @if($lastLogRefresh) + • Last updated: {{ $lastLogRefresh }} + @endif + • Auto-refreshes every 30s +{{ $logError }}
+Loading firewall logs...
+| Time | +Action | +Source | +Destination | +Protocol | +Src Port | +Dest Port | +Analysis | +
|---|---|---|---|---|---|---|---|
| + @if(isset($log['timestamp_iso']) && $log['timestamp_iso'] !== '-') + + @else + {{ $log['timestamp_display'] ?? $log['timestamp'] ?? '-' }} + @endif + | ++ + {{ $log['action'] ?? '-' }} + + | +
+
+ {{ $log['source'] ?? '-' }}
+ @php $sourceIP = $log['source'] ?? ''; @endphp
+ @if($sourceIP && $sourceIP !== '-' && $this->checkIsPublicIP($sourceIP))
+
+
+
+ @endif
+ |
+
+
+ {{ $log['destination'] ?? '-' }}
+ @php $destIP = $log['destination'] ?? ''; @endphp
+ @if($destIP && $destIP !== '-' && $this->checkIsPublicIP($destIP))
+
+
+
+ @endif
+ |
+ {{ $log['protocol'] ?? '-' }} | +{{ $log['source_port'] ?? '-' }} | +{{ $log['destination_port'] ?? '-' }} | +
+ @php
+ $sourceIP = $log['source'] ?? '';
+ $destIP = $log['destination'] ?? '';
+ $sourcePort = $log['source_port'] ?? '';
+ $destPort = $log['destination_port'] ?? '';
+ $protocol = $log['protocol'] ?? '';
+ @endphp
+ @if($coreRouterConfigured && $sourceIP && $sourceIP !== '-')
+
+
+ @endif
+ |
+
Logs will appear here when the firewall blocks or allows traffic
+Save and reuse firewall configurations across your VPS instances
+| Configuration Name | +Rules | +Policies | +Created | +Actions | +
|---|---|---|---|---|
|
+
+
+
+
+ {{ $config['configuration_name'] }}
+ |
+ + + {{ is_array($config['firewall_rules']) ? count($config['firewall_rules']) : 0 }} rules + + | +
+
+
+ IN: {{ $config['incoming_policy'] }}
+
+
+ OUT: {{ $config['outgoing_policy'] }}
+
+
+ |
+ + {{ \Carbon\Carbon::parse($config['created_at'])->format('M d, Y H:i') }} + | +
+
+
+ |
+
Save your current firewall configuration to reuse it later or apply it to other VPS instances
+Your virtual machine is currently unprotected. Enable the firewall above to secure your network traffic with customizable rules.
+Define rules to allow or block specific connections
+Track and log all firewall events in real-time
+Configure default behavior for incoming and outgoing traffic
+
+
Can use alias names or leave empty for any source
+Are you sure you want to delete this rule? This action cannot be undone.
+Delete alias "{{ $deletingAliasName }}"?
+This may affect firewall rules using this alias.
+After creating the IPSet, you can add IP addresses and CIDR ranges to it.
+Delete IPSet "{{ $deletingIPSetName }}"?
+All members will be removed and rules using this IPSet may be affected.
+Remove "{{ $deletingMemberCidr }}" from {{ $selectedIPSetName }}?
+Save your current firewall rules and policies as a reusable configuration
+{{ $message }}
+ @enderror +Created on {{ $viewingConfiguration->created_at->format('M d, Y H:i') }}
+The following rules may not be compatible with this VPS:
+| # | +Action | +Direction | +Source | +Destination | +Protocol | +Port | +Status | +
|---|---|---|---|---|---|---|---|
| {{ $index + 1 }} | ++ + {{ $rule['action'] ?? 'ACCEPT' }} + + | +{{ strtoupper($rule['type'] ?? '-') }} | +{{ $rule['source'] ?? 'any' }} | +{{ $rule['dest'] ?? 'any' }} | +{{ $rule['proto'] ?? '-' }} | +{{ $rule['dport'] ?? '-' }} | ++ @if($hasIssue) + Incompatible + @elseif(isset($rule['enable']) && $rule['enable'] == 0) + Disabled + @else + Enabled + @endif + | +
No rules in this configuration
+ @endif +Apply "{{ $applyingConfiguration->configuration_name }}" to this VPS
+Warning
+This will replace all existing firewall rules with the rules from this configuration. This action cannot be undone.
+Compatibility Notice
+{{ count($applyCompatibilityWarnings) }} rule(s) in this configuration are not fully compatible with this VPS and will be disabled.
+Rules
+{{ count($applyingConfiguration->firewall_rules) }}
+IN Policy
+ +OUT Policy
+ +Are you sure you want to delete this saved configuration? This action cannot be undone.
+Apply the current firewall configuration to all your other VPS instances.
+This will replace the firewall configuration on all your other servers. Existing rules will be deleted and replaced with the current configuration.
+No other servers found to apply the configuration to.
+Enter a new name for this configuration
+{{ $message }}
+ @enderror +