Hi @Carl Dela Cruz
Check the NIC configuration of your log collector VM in the Azure portal. Does it have a Public IP assigned? If it's behind a Standard Azure LB, ensure the Public IP is assigned to the LB's frontend, and you have an appropriate Load Balancing rule or Inbound NAT rule directing the syslog traffic to the collector VM.
Please verify whether you've whitelisted the source IP or not. If yes, please double-check the rule details:
- Source: IP Addresses - Set to the specific Public IP of your external WAF. Avoid using Any or broad ranges, if possible, for security.
- Source Ports: * or Any.
- Destination: IP Addresses - Set to the Private IP address of your log collector VM NIC.
- Destination Ports: Match the required syslog port: 514 for the UDP rule and 6514 for the TCP rule.
- Protocol: Must be set to UDP for the port 514 rule and TCP for the port 6514 rule. Mismatching the protocol will cause the rule to fail.
- Action: Allow.
- Priority: Must be a number lower than the default DenyAllInBound rule (priority 65500) and lower than any custom Deny rules that might otherwise block this traffic. Valid priorities range from 100 to 4096. Assigning a low number ensures these rules take precedence over default denials.
In which level did you associate NSG? Azure allows NSGs to be associated at two levels: the virtual machine's NIC and the subnet within which the NIC resides. When NSGs are applied at both levels, they create a layered security posture, but both must be correctly configured for traffic to pass.
Even if Azure NSGs allow the traffic, the firewall running inside the log collector VM's operating system must also permit the inbound traffic, so configure the OS firewall to allow inbound traffic on the correct port (like 514) and protocol (UDP/TCP) specifically from the source IP address of the WAF.
Make sure the syslog service is installed, enabled, and running on the collector VM. Verify the syslog daemon configuration. It needs to be configured to: Listen for remote logs and listen on the correct network interface and sometimes they default to listening only on 127.0.0.1 (localhost). Listen on the correct port and protocol (UDP/TCP).
Confirm the WAF is configured to send syslog messages to the correct Public IP Address of your Azure log collector and ensure the port and protocol (UDP/TCP) configured on the WAF match what you are expecting and allowing in Azure (NSG, OS Firewall) and on the syslog daemon and is there any UDRs applied to the VM's subnet that might be forcing traffic destined for the internet through an NVA or elsewhere, potentially creating asymmetric routing.
Run a packet capture on the log collector VM's NIC via Azure Network Watcher. Filter for the source IP of the WAF and the destination port (514). This will show if packets are even reaching the Azure NIC level and enable NSG Flow Logs to see if traffic from the WAF IP is being allowed or denied by the NSG rules.
Use this tool to simulate a connection attempt from the WAF's Public IP to your VM's Public/Private IP and port. It will tell you which NSG rule is allowing or denying the traffic.
I hope this has been helpful!
Your feedback is important so please take a moment to click 'Accept answer'.
If you still have questions, please let us know what is needed in the comments so the question can be answered.