Skip to main content

Command Palette

Search for a command to run...

🔥 Opening Firewall Ports on Linux: A DevOps Guide to Secure Access

Published
2 min read
R

Cloud DevOps Engineer with 3+ years of hands-on experience architecting and automating cloud-native infrastructure across AWS, Azure, and GCP. Passionate about building scalable CI/CD pipelines, containerized platforms, and secure cloud environments. Actively exploring Cloud AI Engineering roles and open to remote/international opportunities. I document my journey to help others and stay accountable.

In the world of cloud-native infrastructure, managing firewall rules is a critical skill for ensuring secure and reliable communication between services. Whether you're deploying a web server, configuring SSH access, or enabling custom applications, knowing how to open firewall ports on Linux is essential. This guide walks you through the process using two common Linux firewall tools: iptables and firewalld.

🧱 Understanding Linux Firewalls Linux firewalls control incoming and outgoing traffic based on predefined rules. The two most widely used tools are: • iptables: A powerful but lower-level tool for managing packet filtering rules. • firewalld: A modern, dynamic firewall manager that uses zones and services for easier configuration.

🔓 Opening Ports with ✅ Step-by-Step Example: Open Port 8080

Bash

Allow incoming TCP traffic on port 8080

sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT

Save the rule (varies by distro)

sudo iptables-save > /etc/iptables/rules.v4

🔁 Make It Persistent On Debian/Ubuntu:

sudo apt install iptables-persistent

On CentOS/RHEL:

sudo service iptables save

🌐 Opening Ports with ✅ Step-by-Step Example: Open Port 8080

Add port 8080/tcp to the public zone

sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent

Reload firewalld to apply changes

sudo firewall-cmd --reload

🔍 Verify the Rule

sudo firewall-cmd --list-ports

🛡️ Security Best Practices • Limit exposure: Only open ports you absolutely need. • Use zones: With , assign interfaces to zones like , , or . • Monitor traffic: Use tools like , , or to audit open ports. • Automate with Ansible/Terraform: For consistent firewall rules across environments.

🧠 Bonus: Opening Ports for Common Services

Service Port Command ( firevalid )

HTTP 80 —add-service=http

HTTPS 443 —add-service=https

SSH 22 —add-service-ssh

Custom App 3000 —add-port=3000/tcp

Example :

sudo firewall-cmd --zone=public --add-service=http --permanent sudo firewall-cmd --reload

🚀 Final Thoughts Opening firewall ports is more than just punching holes in your network—it’s about enabling secure communication while maintaining control. Whether you're deploying containers, configuring CI/CD pipelines, or managing cloud VMs, mastering firewall rules is a must-have skill in your DevOps toolkit. Want to automate firewall rules with Terraform or integrate them into your CI/CD pipeline? Drop a comment or reach out—I'd love to help you build it!