Linux 如何设置防火墙

Linux 如何设置防火墙

防火墙是每个当代计算机系统不可缺少的组成部分,它保障了网络的安全,保护系统不被非法访问。在这篇文章中,我们将深入了解Linux防火墙的领域,并学习如何配置一个防火墙。

在我们涉及到在Linux中建立防火墙的技术细节之前,让我们澄清一下什么是防火墙以及为什么它如此重要!

防火墙是一种网络安全设备,根据预定的安全规则监控和限制网络流量。防火墙的主要功能是阻止对计算机系统或网络的未经授权的访问,同时仍然允许授权的访问。它作为一个看门人,控制谁和什么可以进入和离开网络。

在Linux中配置防火墙有两个主要选择:iptables和firewalld。

iptables “是一个用于管理Linux内核防火墙的命令行程序。多年来,它是Linux服务器的默认防火墙,至今仍被广泛使用。

firewalld “是一种更现代的管理Linux中防火墙的方法。它是一个动态守护程序,为管理防火墙规则提供了一个D-Bus接口,它被许多Linux发行版作为默认防火墙使用。

现在让我们深入了解在Linux中使用iptables和firewalld设置防火墙所需的步骤。

使用 “iptables “来创建一个防火墙

  • 要开始设置iptables防火墙,首先要确保它已经安装在你的系统上。尽管iptables存在于大多数Linux发行版中,但最好还是仔细检查一下。

  • 打开终端,输入以下命令,看看你的系统上是否安装了iptables:sudo iptables -L

  • 如果iptables还没有安装在你的机器上,使用下面的命令来安装它:sudo apt-get install iptables

  • 一旦你确认iptables已经安装在你的系统上,你就可以开始设置防火墙。

  • iptables配置的最初步骤是为入站和出站流量建立默认策略。默认策略决定了对不符合防火墙中任何规则的数据包的处理方式。

  • 要将默认策略设置为放弃所有传入和传出的流量,请运行以下命令

sudo iptables -P INPUT DROP
sudo iptables -P OUTPUT DROP
  • 一旦你设置了默认策略,你就可以开始添加规则以允许或阻止特定类型的流量。向iptables添加规则的基本语法如下 –
sudo iptables -A [CHAIN] -p [PROTOCOL] --dport [PORT] -j [ACTION]

让我们来分解一下规则的组成部分 –

  • CHAIN – 这指定了防火墙中的链,该规则将被添加到其中。iptables的三个默认链是INPUT、OUTPUT和FORWARD。

  • PROTOCOL – 这指定了流量的协议。常见的协议包括TCP、UDP和ICMP。

  • PORT – 这指定了流量的端口号。

  • ACTION – 这指定了对符合规则的流量应采取的措施。常见的行动包括:ACCEPT、DROP和REJECT。

例如,下面的命令将在INPUT链上接受传入的SSH流量(端口22)。

sudo iptables -A INPUT -p tcp —dport 22 -j ACCEPT

Similarly, the following command would enable OUTPUT chain HTTP traffic (port 80) −

sudo iptables -A OUTPUT -p tcp —dport 80 -j ACCEPT

使用 “firewalld “来创建防火墙

在Linux中设置防火墙的另一个选择是使用firewalld。Firewalld是一个现代动态守护程序,被一些Linux发行版,如CentOS、Fedora和Red Hat Enterprise Linux,用作默认的防火墙管理工具。

用firewalld配置防火墙的第1步是看它是否已经安装在你的系统上。

大多数最近的Linux发行版都预装了firewalld,但是你可以通过在终端输入以下命令来验证它的存在

sudo firewall-cmd —state

如果你的机器上还没有安装firewalld,使用下面的命令来安装它: sudo yum install firewalld

一旦你确认Firewalld已经安装在你的系统上,你就开始配置防火墙。

配置firewalld的第1步是检查默认区域。默认区域是一组预定义的规则,管理系统上允许的流量。要检查默认区域,请运行以下命令

sudo firewall-cmd --get-default-zone

默认情况下,默认区域被设置为 “公共”。你可以通过运行以下命令来改变默认区域

sudo firewall-cmd --set-default-zone=zone

其中 “zone “是你想设置为默认的区域名称。

下一步是向防火墙添加规则,允许或阻止特定类型的流量。Firewalld使用一个叫做 “服务 “的概念,将相关的端口和协议组合在一起。一些常用的服务包括 “http”、”https”、”ssh “和 “smtp”。

To allow incoming HTTP traffic, for example, you can use the following command −

sudo firewall-cmd --add-service=http --permanent

“–permanent “选项使规则成为永久性的,所以它在重启后仍然存在。如果你不使用”–permanent “选项,当系统重新启动时,该规则将被删除。

你还可以通过使用”–add-port “选项来允许特定的端口。例如,下面的命令允许SSH的22号端口的传入流量:

sudo firewall-cmd --add-port=22/tcp --permanent

在添加必要的规则后,确保重新加载防火墙,以便使变化生效。

sudo firewall-cmd --reload

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Linux 基础