Basic Firewall Setup on Dedicated Linux Server

Basic Firewall Setup on Dedicated Linux Server

A firewall will stop any unusual activities on one network from being passed on to another network. In most systems the Linux kernel is compiled with IP forwarding set to yes. This means is that if the computer has more than one network connected to it then network information will be passed directly from one network to the other as if it was physically connected.

Forgetting to secure and configure a dedicated server firewall is a common mistake and a huge security flaw. Going into the firewall’s configuration allows you to remove unnecessary software that’s connected to the internet. This makes your server and its ports vulnerable to intrusion.

Firewall Setup on Dedicated Linux Server

Now, we can see how to setup basic firewall on dedicated linux server.

Installing Firewall on Linux

On Ubuntu/Debian:

$ sudo apt-get install iptables

On CentOS 7/RHEL 7:

# yum install iptables-services

Let’s decide which Firewall Ports to Block

The first step in firewall installation is deciding which ports has to be left open on our dedicated server. This will vary based on what you are using the dedicated host for, if you are running a web server, you would likely want the following ports open:

  • Web: 80 and 443
  • SSH: Typically run on port 22
  • Email: 110 (POP3), 143 (IMAP), 993 (IMAP SSL), 995 (POP3 SSL).

Change your SSH port to a non-default port by reading our article on changing your servers SSH port. Want your users to only use email over SSL? Block standard POP3 and IMAP ports in your firewall to force SSL use.

Flush Default Firewall Rules

Run the below command to flush to default firewall rules.

# iptables -F

Block Common Server Attack Routes

We have to run some standard commands here to block common attacks.

Block syn-flood packets:

# iptables -A INPUT -p tcp ! –syn -m state –state NEW -j DROP

Block XMAS Packets:

# iptables -A INPUT -p tcp –tcp-flags ALL ALL -j DROP

Block null packets:

# iptables -A INPUT -p tcp –tcp-flags ALL NONE -j DROP

Opening Required Ports

Run the below command to open up the ports you need. Here are some examples for you to work,
Allow SSH Access:

# iptables -A INPUT -p tcp -m tcp –dport 22 -j ACCEPT

Open up LOCALHOST access:

# iptables -A INPUT -i lo -j ACCEPT

Allow web traffic:

# iptables -A INPUT -p tcp -m tcp –dport 80 -j ACCEPT
# iptables -A INPUT -p tcp -m tcp –dport 443 -j ACCEPT


Test Firewall Configuration

Run the following command to save the configuration and restart your firewall:

# iptables -L -n
# iptables-save | sudo tee /etc/sysconfig/iptables
# service iptables restart

You may also like...

1 Response

  1. April 30, 2019

    […] To know about basic firewll setup on linux server : click here […]

Leave a Reply

Your email address will not be published.