"安全起见:设置Linux防火墙"

1. 什么是Linux防火墙?

Linux防火墙是一种用于保护服务器的网络安全机制。在Internet上,服务器是一个开放的目标,因此安全非常重要。Linux防火墙可以防止来自互联网上不受欢迎的流量。

Linux防火墙使用规则来允许或拒绝特定类型的流量。这些规则可以设置端口号,IP地址和协议类型,从而获得完全的控制。例如,您可以允许访问Web服务器上的HTTP端口,但拒绝FTP端口。此外,Linux防火墙还可以防止某些特定的攻击,如拒绝服务攻击(DDoS攻击)和未授权登录。

本文将介绍如何设置Linux防火墙,以保护您的服务器免受攻击。

2. Linux防火墙类型

Linux防火墙有两种不同的实现方式:iptables和firewalld。虽然它们都是Linux防火墙,但它们的实现方式有所不同。

2.1 iptables

iptables是Linux系统中最常用的防火墙程序之一。它是一个基于内核的包过滤系统,可以在内部设置规则,以允许或拒绝数据包。iptables使用表,链和规则构建它的防火墙策略。

表:iptables有五种表,它们用于存储规则,以允许或拒绝特定的数据包。这些表包括:filter、nat、mangle、raw和security。大多数情况下,您将使用filter表。

链:iptables链用于将输入数据包传递给特定表中的规则。iptables有三个预定义的链:INPUT、FORWARD和OUTPUT。

规则:规则指定应当做什么。例如,您可以创建一个规则,它允许所有来自公共IP地址的数据包通过,但拒绝来自私有IP地址的数据包。

2.2 firewalld

firewalld是另一种Linux防火墙程序。它是RHEL7及其克隆版本的默认防火墙程序。

与iptables相比,firewalld是一个更为复杂的防火墙。Firewalld使用基于服务的规则来控制入站和出站流量,而不是基于IP地址、端口和协议。另外,firewalld使用了zones的概念。zone指定安全级别,例如“公共”、“专用”、“信任”等。

3. 设置iptables防火墙

3.1 查看iptables状态

在设置iptables防火墙之前,您需要查看iptables状态。您可以使用以下命令检查iptables是否正在运行:

sudo systemctl status iptables.service

如果iptables未运行,您可以使用以下命令启动它:

sudo systemctl start iptables.service

3.2 确定规则

在设置iptables防火墙之前,您需要确定规则。例如,如果您希望允许来自特定IP地址的所有数据包通过,则需要指定一个规则。您需要指定以下内容:

协议:TCP或UDP

源IP地址

源端口

目标IP地址

目标端口

请注意,如果您希望针对所有IP地址和所有端口进行允许,则可以省略源IP地址、源端口、目标IP地址和目标端口。

3.3 添加规则

在确定规则后,您可以使用以下命令添加规则:

sudo iptables -A INPUT -p TCP -s 192.168.1.0/24 --sport 1024:65535 -d 192.168.1.100 --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT

该命令将添加一条规则,允许来自192.168.1.0/24子网的HTTP流量,并将其定向到本地IP地址 192.168.1.100。 该规则只允许软件版本号为1024到65535的请求,状态必须是NEW或ESTABLISHED。

3.4 查看规则

您可以使用以下命令查看全部规则:

sudo iptables -L -n

此命令将显示当前的iptables规则列表。如果您想查看特定表的规则,比如filter,您可以使用以下命令:

sudo iptables -L -n -t filter

4. 设置firewalld防火墙

4.1 检查firewalld状态

在设置firewalld防火墙之前,请检查防火墙的状态。您可以使用以下命令检查firewalld的状态:

sudo systemctl status firewalld

如果firewalld未启动,您可以使用以下命令启动它:

sudo systemctl start firewalld

4.2 查看firewalld区域

Firewalld区域定义了您网络的安全级别,例如,公共区域用于公共Wi-Fi网络,专用区域用于家庭或办公网络,信任区域用于企业网络。在设置firewalld防火墙之前,请查看您当前的Firewalld区域:

sudo firewall-cmd --get-active-zones

此命令将显示您当前的Firewalld区域。

4.3 添加规则

在确定规则后,您可以使用以下命令添加规则:

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

该命令将添加一条规则,以允许来自公共区域的TCP流量,并将其定向到本地TCP端口80。在此示例中,我们将此规则添加到公共区域。如果要将规则添加到其他区域,请替换“public”为其他区域名称。

4.4 重新加载firewalld规则

添加规则后,您需要重新加载防火墙规则:

sudo firewall-cmd --reload

此命令将重新加载防火墙规则以使其生效。

4.5 查看规则

您可以使用以下命令查看允许的端口号:

sudo firewall-cmd --list-all

此命令将显示您的防火墙规则列表。

总结

Linux服务器上设置防火墙对于保护您的业务至关重要。在本文中,我们介绍了如何使用iptables和firewalld设置Linux防火墙。通过使您的服务器更安全,您可以保护自己和您的用户免受不必要的风险。

操作系统标签