Oct 6, 2023 3 min read

How to Install Iptables on CentOS 7

Install and configure Iptables on CentOS 7 with our step-by-step tutorial. It is a powerful and popular firewall utility for Linux-based systems.

Install Iptables on CentOS 7
Table of Contents

Choose a different version or distribution

Introduction

Before, we begin talking about steps to Install Iptables on CentOS 7. First, let's understand - What is Iptables?

Iptables is a powerful and popular firewall utility for Linux-based systems. It manages network traffic by filtering and controlling incoming and outgoing data. Using a set of rules, it decides which connections are allowed or denied, providing enhanced security. This flexible tool is essential for safeguarding servers and networks from unauthorized access and potential threats.

In this tutorial, you will install Iptables on CentOS 7. We will also answer few FAQs related to Iptables installation.

Advantages of Iptables

  1. Robust Firewall: Iptables provides a strong firewall that effectively filters network traffic, preventing unauthorized access and protecting against malicious attacks.
  2. Access Control: It allows precise control over incoming and outgoing connections, enabling administrators to specify permitted and blocked access.
  3. Port Forwarding: Iptables facilitates port forwarding, redirecting network traffic to specific ports or destinations, enhancing network flexibility.
  4. Packet Manipulation: With packet manipulation capabilities, it enables modifying packets, optimizing routing, and implementing Network Address Translation (NAT).
  5. Customizable Rules: Administrators can create and modify rules to suit their specific security needs, ensuring a tailored and secure network environment.

Prerequisites to Install Iptables on CentOS 7

1) Make sure, to log in as a user with the sudo privileges.

Step 1 – Disabling the FirewallD

1) Firstly, you need to type the below command, it will stop the FirewallD service, by:

sudo systemctl stop firewalld

2) After that, disable the FirewallD service to start automatically on system boot using the following command:

sudo systemctl disable firewalld

3) Then, you will need to mask the FirewallD service, which prevents it from being started by other services:

sudo systemctl mask --now firewalld

Step 2 – Installing and Enabling Iptables

1) Continue to run the below command, and it will install iptables-service the package from the CentOS repositories:

sudo yum install iptables-services

2) After, installing the package, start the Iptables services using the following command:

sudo systemctl start iptables
sudo systemctl start ip6tables

3) After that, enable the Iptables service. It then starts automatically on system boot by:

sudo systemctl enable iptables
sudo systemctl enable ip6tables

4) Proceed to check the Iptables service status, by:

sudo systemctl status iptables
sudo systemctl status ip6tables

5) You can check the current Iptables rules using the below command:

sudo iptables -nvL
sudo ip6tables -nvL

Now, by default, only the SSH port 22 is open. The output will look like this:

Output
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
 5400 6736K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           
    2   148 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
    3   180 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            state NEW tcp dpt:22
    0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT 4298 packets, 295K bytes)
 pkts bytes target     prot opt in     out     source               destination   

Now, you have successfully enabled the Iptables service and can start building your firewall. The changes will remain as is after a reboot.

FAQs to Install Iptables on CentOS 7

What is Iptables and why should I install it on CentOS 7?

Iptables is a firewall management tool that is used to configure and manage firewall rules on CentOS 7. It is important to install Iptables on CentOS 7 to protect your system from network attacks and security threats.

How do I check if Iptables is already installed on my CentOS 7 system?

You can check if Iptables is already installed on your CentOS 7 system by using the iptables --version command.

How do I enable Iptables on CentOS 7 after installation?

You can enable Iptables on CentOS 7 by using the "systemctl enable iptables" command.

How do I check if Iptables is working properly on my CentOS 7 system?

You can check if Iptables is working properly on your CentOS 7 system by using the iptables -L command to list the current firewall rules.

Are there any alternatives to Iptables for firewall configuration on CentOS 7?

Yes, there are other firewall management tools such as Firewalld and UFW that can be used as alternatives to Iptables on CentOS 7. However, Iptables remains a popular and reliable choice for firewall configuration on Linux systems.

Can I use iptables to log network events?

Yes, you can enable logging of network events in iptables. Use the LOG target with appropriate rules to log specific traffic to a log file.

Conclusion

We hope this detailed tutorial helped you to Install Iptables on CentOS 7.

If you have any queries, please leave a comment below, and we’ll be happy to respond to them for sure.

Great! You’ve successfully signed up.
Welcome back! You've successfully signed in.
You've successfully subscribed to DevOps Tutorials - VegaStack.
Your link has expired.
Success! Check your email for magic link to sign-in.
Success! Your billing info has been updated.
Your billing was not updated.