Azure NSG configuration is a crucial step in securing your Azure resources.
Azure Network Security Groups (NSGs) can be used to filter traffic to and from Azure resources in a virtual network.
NSGs are defined at the subnet or NIC level, and can be applied to multiple resources at once.
NSGs can be created in the Azure portal, Azure CLI, or Azure PowerShell.
To create a basic NSG, you'll need to specify a name, location, and a set of security rules.
Security rules define the type of traffic allowed or denied, and can be based on source and destination IP addresses, ports, and protocols.
You can also use NSGs to allow or deny traffic based on Azure services, such as Azure Storage or Azure SQL Database.
Azure NSGs are stateful, meaning they can track the state of connections and allow return traffic.
Azure NSG Capabilities
Azure NSGs are incredibly capable, controlling access and managing communication between individual workloads hosted on one or more Azure VNets.
They can also handle connectivity between on-prem environments and Azure via various gateways and appliances, as well as connections to and from the Internet.
A standard Azure subscription can have up to 5,000 NSGs, and each NSG can have a maximum of 1,000 rules.
Here's a breakdown of the rule settings and their associated properties:
Capabilities
Azure NSGs are incredibly powerful tools for managing network traffic and security. They can control access and communication between individual workloads hosted on one or more Azure VNets.
You can also use Azure NSGs to manage connectivity between on-prem environments and Azure via an Application Gateway, VPN Gateway, Azure Firewall, Azure Bastion service, and Virtual Network Appliances. This is a big deal for businesses that need to connect their on-premises networks to the cloud.
A standard Azure subscription can have up to 5,000 NSGs, and each NSG can have a maximum of 1,000 rules. This means you can create a lot of rules to manage your network traffic, but you'll need to be strategic about how you use them.
Here's a breakdown of the properties you can set for each rule:
Augmented
Augmented security rules simplify security definition for virtual networks, allowing you to define larger and complex network security policies, with fewer rules. You can combine multiple ports and multiple explicit IP addresses and ranges into a single, easily understood security rule.
Augmented rules can be used in the source, destination, and port fields of a rule. This simplifies maintenance of your security rule definition.
There are limits to the number of addresses, ranges, and ports that you can specify in a rule. For details, see Azure limits.
Azure NSG Configuration
You can create a network security group (NSG) in Azure, but be aware that there are limits to the number of NSGs you can create per region and subscription.
To create an NSG, you can use the Azure portal or Azure CLI commands. In the portal, search for "Network security group" and select the result, then click on "+ Create". You can also use Azure CLI commands like `New-AzNetworkSecurityGroup` or `az network nsg create` to achieve the same result.
The process of creating an NSG involves specifying project details, selecting a subscription and resource group, and entering a name and region for the NSG. You can select an existing resource group or create a new one. After filling in the required information, click on "Review + create" and then "Create" to create the NSG.
View All
To view all the security rules in an Azure Network Security Group (NSG), you can use the Azure portal, Azure CLI, or Azure PowerShell. In the Azure portal, you can select the name of the NSG for which you want to view the rules, then select Inbound security rules or Outbound security rules to see the list of rules.
You can also use the Azure CLI command `az network nsg rule list` to view the security rules of an NSG. This command lists any rules that you created and the default security rules of your NSG.
Alternatively, you can use Azure PowerShell to view the security rules. The command `Get-AzNetworkSecurityRuleConfig` retrieves the security rules of an NSG. This command is useful for scripting and automating tasks.
The Azure portal also provides a search function that allows you to quickly find the NSG you want to view. Simply type "Network security group" in the search box, select Network security groups in the search results, and then select the name of the NSG you want to view.
If you're using the Azure CLI or Azure PowerShell, you can use the `az network nsg rule list` and `Get-AzNetworkSecurityRuleConfig` commands to view the security rules of an NSG. These commands provide detailed information about each rule, including its name, description, and priority.
Align to Services
Aligning your Network Security Groups (NSGs) to specific services can simplify your Azure NSG configuration. This approach helps you manage a smaller set of rules, making it easier to maintain and update your security settings.
You can align your NSGs to resource groups or services to reduce complexity. This is especially important as your network scales, as managing hundreds of allow and deny settings can become complex.
Using service tags can also help minimize the complexity of frequent updates on network security rules. Service tags represent a group of IP address prefixes from a given Azure service.
For example, you can use the Storage service tag to restrict network access to PaaS resources.
Create
To create a network security group in Azure, you can use the portal or PowerShell. To create one using the portal, enter "Network security group" in the search box, select "Network security groups" in the search results, and then click on the "+ Create" button.
You can create an NSG with a name like "myNSG" in the East US region using the command "New-AzNetworkSecurityGroup". To create an NSG using the Azure CLI, use the command "az network nsg create".
When creating an NSG, you need to select the subscription, resource group, and region where you want to deploy it. You can also create a new resource group if needed.
To create an application security group, follow similar steps as creating an NSG, but select "Application security groups" in the search results and enter a name for the group.
Here are the steps to create an NSG and an application security group using the portal and Azure CLI:
Note that the number of NSGs you can create for each Azure region and subscription is limited, so be sure to check the Azure subscription and service limits, quotas, and constraints before creating multiple NSGs.
Streamline Creation with IP Ranges
Using IP ranges is a game-changer when it comes to creating network security groups (NSGs) in Azure. It allows you to specify a range of IP addresses and ports, rather than individual addresses and ports, which can significantly reduce the number of rules you need to create and manage.
According to Azure NSGs, where possible, use ranges instead of individual addresses, as it will limit the number of rules you need to create and manage. This is especially true for IP ranges, where using a range like 192.168.1.0/24 is more efficient than listing individual addresses like 192.168.1.1, 192.168.1.2, and so on.
By using IP ranges, you can also specify ports in a similar format, such as 80-82 instead of listing individual ports like 80, 81, and 82. This can help mitigate the total amount of NSG rules, making it easier to manage and maintain your network security.
Here's a table showing the benefits of using IP ranges:
Using IP ranges can help you create more efficient and effective NSGs, which is a key part of Azure NSG configuration. By following these best practices, you can simplify the process of creating and managing your network security groups.
Azure NSG Management
Azure NSG Management is a crucial aspect of network security. Enabling Azure NSG Flow Logs is a three-step process that requires enabling the Network Watcher and registering the Insights provider.
To view all security rules, you can search for Network Security Group in the Azure portal, select the NSG, and then choose Inbound or Outbound security rules. This will display a list of any rules you created and the default security rules of your NSG.
You can also use the command line to view the security rules of an NSG, either by using Get-AzNetworkSecurityRuleConfig or az network nsg rule list.
Here are the steps to view the details of a security rule:
- Search for Network Security Group in the Azure portal, select the NSG, and then choose Inbound or Outbound security rules.
- Select the rule for which you want to view details.
Alternatively, you can use the command line to view the details of a security rule, either by using Get-AzNetworkSecurityRuleConfig or az network nsg rule show.
Portal Access
To access the Azure Portal for NSG management, you need to enable the Network Watcher, which is a three-step process.
This process involves selecting the region associated with your virtual network and NSG.
The Microsoft Insights provider is a prerequisite for Azure NSG flow logging, and you can check if it's registered by going to the Resource Providers under the Settings section.
If it's not registered, you can enable it from there.
To confirm registration, look for "microsoft.insights" to display as registered.
Once you have a storage account available, you can enable Azure NSG flow logging.
To do this, select NSG flow logs from the left-hand vertical navigation, and then click on the NSG you want to monitor.
Delete
To delete a network security group, you'll need to dissociate it from all subnets and network interfaces first. This is a crucial step to avoid any errors during the deletion process.
You can do this by following these steps: In the portal, search for Network security group, select Network security groups, and then choose the NSG you want to delete. Select Delete and confirm by selecting Yes in the dialog box.
Alternatively, you can use the Remove-AzNetworkSecurityGroup command or the az network nsg delete command to delete an NSG.
If you need to delete a security rule, you'll find it under the Inbound security rules or Outbound security rules section of your NSG. To delete a custom security rule, select the rule you want to delete and then select Delete, confirming your choice by selecting Yes.
Note that you can't delete a default security rule. If you need to delete multiple rules, you can select them all and then delete them at once.
Here's a summary of the steps to delete an NSG or a security rule:
View the Details
To view the details of a security rule, you need to follow a specific procedure.
Select the name of the NSG for which you want to view the rules, then select Inbound security rules or Outbound security rules. This will display the list of rules, including any rules you created and the default security rules of your NSG.
To view the details of a specific rule, select the rule for which you want to view details. Note that this procedure only applies to custom security rules and doesn't work for default security rules.
You can also use the Get-AzNetworkSecurityRuleConfig command to view the details of a security rule. Alternatively, you can use the az network nsg rule show command to view the details of a security rule.
Here are the steps to view the details of a security rule using the portal and Azure CLI:
- Portal: Select the name of the NSG, then select Inbound security rules or Outbound security rules, and finally select the rule for which you want to view details.
- Azure CLI: Use the Get-AzNetworkSecurityRuleConfig command or the az network nsg rule show command.
Azure NSG Security
Azure NSG Security is a crucial aspect of maintaining a secure environment. Azure NSG Flow Logs provide vital information on network traffic, including which services have connections, where those connections are coming from, and which ports are open to the Internet.
By leveraging Azure Flow Logs, you can identify unknown or suspicious network traffic, monitor bandwidth consumption and traffic levels, and baseline application behavior by filtering by IP and port. This helps you stay on top of potential security threats.
To further enhance security, Azure NSG Rule Enforcement includes default security rules that allow or deny specific types of traffic. For example, the "DenyAllInbound" rule blocks all inbound traffic, while the "AllowVnetInbound" rule allows all inbound traffic inside the virtual network.
Log Use Cases
Azure NSG Flow Logs can help you identify unknown or suspicious network traffic by analyzing data on your Azure virtual network.
Monitoring bandwidth consumption and traffic levels is also a great use case for Azure Flow Logs, allowing you to stay on top of network performance.
You can leverage filtering by IP and port to baseline application behavior, giving you a better understanding of your network's current state.
Exporting log data for reporting or live monitoring dashboard feeds is a useful feature for staying on top of your network's activity.
To optimize your network, you can identify the top talkers in your network and leverage Geo-IP to identify cross-region traffic.
Flow log data can also be used for capacity forecasting, helping you plan for future network needs.
Another benefit of Azure NSG Flow Logs is that they can help you verify that your traffic rules adhere to network isolation and compliance obligations.
Exporting flow log data to any IDS or SIEM can also be beneficial for network forensics and security analysis.
Analyzing network flow from suspicious IPs or network interfaces can help you identify potential security threats.
Service Tags
Service tags are a powerful tool for simplifying network security rules. They represent a group of IP address prefixes from a given Azure service.
Using service tags can minimize the complexity of frequent updates on network security rules. This is especially helpful when managing multiple objects.
For example, the "VirtualNetwork" service tag represents the entire VNet address range. Similarly, the "Internet" service tag indicates all external IP addresses that are publicly routable.
Azure service tags are a key component of Azure NSG security. They can be used to restrict network access to PaaS resources, as shown in the example of using the Storage service tag.
Service tags help to enhance the readability of NSG rules by leveraging virtual network service tags in the source and destination fields.
Priorities
Azure NSG rules are applied in a prioritized order, with lower numbered priorities processed before higher numbers. This means that if you have multiple rules with the same priority, they will be executed in the order they were created.
NSG rules can be nested, which can make configuration more complex. For example, if you have a VM connected to a subnet, and the subnet is part of a larger virtual network, you'll need to configure rules on all three NSGs to allow access to the VM.
The order of rule enforcement is as follows:
- For inbound traffic, NSGs applied to the NIC take priority over NSGs applied to the subnet.
- For outbound traffic, NSGs applied to the subnet take priority over NSGs applied to the NIC.
Here's a summary of the rule priorities:
Note that the DenyAllInbound and DenyAllOutbound rules have the lowest priority, but are enforced after all other rules have been processed. This means that if you have a rule that allows traffic, but the DenyAllInbound rule is also present, the traffic will be blocked.
Best Practices
Using logical naming conventions can make a big difference in managing Azure NSGs. Labeling your NSGs with a consistent naming convention, such as NSG-SRV-WEB-01, can help support teams quickly identify the resource.
Following a few best practices can help you manage Azure NSGs more effectively. Labeling your NSGs with a consistent naming convention is a good starting point.
Azure gives you flexibility when it comes to naming resources, but using logical naming conventions can help reduce the effort needed to support your Azure environment. This is especially useful when working with multiple NSGs.
Working with multiple NSGs can be challenging, especially when trying to understand the effective rules when two or more NSGs control network traffic. Following best practices can make a big difference.
Shortcomings and Limitations
Azure NSG has some limitations, especially when compared to Azure Firewall. Azure Firewall offers additional security features relevant to some use cases.
One limitation of Azure NSG is that it filters traffic on only Layer 3 (network) and Layer 4 (session), whereas Azure Firewall filters traffic on Layer 3, Layer 4, and Layer 7 (application). This means Azure Firewall can filter traffic based on application-level protocols.
Azure NSG does offer protocol-based traffic filtering, which is a plus. However, Azure Firewall also offers this feature, giving you even more control over traffic filtering.
Azure NSG does support Service Tag, which is a useful feature for filtering traffic based on Azure services. However, Azure Firewall also supports Service Tag, as well as FQDN Tag, which allows you to tag a group of fully qualified domain names.
Azure NSG does not support Source Network Address Translation (SNAT) or Destination Network Address Translation (DNAT), which are features that can help mask internal IP addresses and translate incoming traffic. Azure Firewall, on the other hand, does support these features.
Here's a comparison of Azure NSG and Azure Firewall features:
Azure NSG is integrated with Azure Monitor, but Flow Logs with Traffic Analysis is not enabled by default. Azure Firewall is also integrated with Azure Monitor, but diagnostic logging is not enabled by default.
Frequently Asked Questions
Is Azure nsg a firewall?
Yes, an Azure Network Security Group (NSG) acts as a firewall, filtering traffic at OSI Layers 3 and 4. It's a key component for securing your Azure Virtual Network resources.
What is the difference between Azure NSG and VNet?
Azure Virtual Network (VNet) provides a secure network infrastructure, while Network Security Groups (NSG) filter traffic within that network, controlling what data can enter or leave. Think of VNet as the network itself, and NSG as the gatekeeper that decides what traffic is allowed to pass through.
What is the difference between ACL and NSG in Azure?
NSG (Network Security Group) uses rules or Access Control Lists (ACLs) to control traffic, whereas ACLs are a specific type of rule that allows or denies traffic to Azure resources. Think of ACLs as a subset of NSG rules, used to refine traffic for individual vNets, subnets, and network interfaces.
What is the network security group in Azure?
A network security group in Azure is a collection of security rules that control inbound and outbound network traffic to and from various Azure resources. It allows you to specify source and destination, port, and protocol for each rule, providing a secure and granular network access control.
What is the difference between Azure nsg and firewall?
Azure Firewall provides threat protection for workloads, while Azure Network Security Group (NSG) filters network traffic among Azure resources. Together, they offer a robust defense-in-depth network security solution.
Sources
- https://www.cloudbolt.io/azure-costs/azure-nsg/
- https://learn.microsoft.com/en-us/azure/virtual-network/network-security-groups-overview
- https://learn.microsoft.com/en-us/azure/virtual-network/manage-network-security-group
- https://sc1.checkpoint.com/documents/CloudGuard_Dome9/Documentation/Network-Security/AzureNSG.htm
- https://www.kainos.com/insights/blogs/azure-network-security-groups-10-suggestions-for-best-practice
Featured Images: pexels.com