Configure firewall rules, policies, aliases, and IPSets for your virtual machine
{{ $error }}
@if($firewallEnabled) ✓ Active - Your VM is protected by firewall rules @else ⚠ Disabled - Your VM has no firewall protection @endif
Control default traffic behavior
Default action for incoming traffic not matching any rule
Default action for outgoing traffic not matching any rule
Per-device firewall control
No network adapters found
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)
@else
@endif
@if($index < count($rules) - 1)
@else
@endif
|
{{ $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))
{{-- IP Location Modal (same as logs) --}}
@endif
|
{{ $rule['dest'] ?? '-' }}
@php $ruleDestIP = $rule['dest'] ?? ''; @endphp
@if($ruleDestIP && $ruleDestIP !== '-' && $this->checkIsPublicIP($ruleDestIP))
{{-- IP Location Modal (same structure) --}}
@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 | 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))
{{-- IP Location Modal --}}
@endif
|
{{ $log['destination'] ?? '-' }}
@php $destIP = $log['destination'] ?? ''; @endphp
@if($destIP && $destIP !== '-' && $this->checkIsPublicIP($destIP))
{{-- IP Location Modal --}}
@endif
|
{{ $log['protocol'] ?? '-' }} | {{ $log['destination_port'] ?? '-' }} |
@php
$sourceIP = $log['source'] ?? '';
$destIP = $log['destination'] ?? '';
$sourcePort = $log['source_port'] ?? '';
$destPort = $log['destination_port'] ?? '';
$protocol = $log['protocol'] ?? '';
@endphp
{{-- Network Analysis Modal --}}
|
Logs will appear here when the firewall blocks or allows traffic
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 }}?