收集云服务器优惠信息
记录云服务器使用心得

Shorewall:用于配置Linux服务器的高级防火墙

对于新手或不太熟悉iptables 的人来说,在Linux系统中设置防火墙可能会非常困难。幸运的是, Shorewall有一个非常易于使用的解决方案。

在这个由多部分组成的教程中,首先小编将介绍如何开始使用Shorewall  ,并指导你使用这个出色的防火墙系统完成一些更高级的功能设置。

什么是Shorewall?

Shorewall本质上是iptables的前端,但它是一个命令行环境前端,利用多个文本文件进行配置。虽然Shorewall是一个强大的防火墙系统,可以扩展到为众多机器提供服务的大型网络,但这里将从基本的双接口配置开始,并确定基础知识。

双接口配置由一台具有两个以太网端口的机器组成,一个输入,一个输出到本地网络。

在Linux中安装Shorewall

Shorewall可以使用apt和yum包管理器工具安装,命令如下:

sudo apt install shorewall [基于Debian系统] 
sudo yum install shorewall [基于RHEL系统]

安装后,需要将示例配置从“ /usr/share/doc/shorewall ”目录复制到Shorewall的默认目录“ /etc/shorewall ”,命令如下:

sudo cp /usr/share/doc/shorewall/example/two-interfaces/* /etc/shorewall
cd /etc/shorewall

如果查看这个目录,我们会看到一堆文件和shorewall.conf配置文件:

列出shorewall目录

Shorewall将网络视为一组不同的区域,因此我们要查看的第一个文件是“ /etc/shorewall/zones ”文件:

sudo nano /etc/shorewall/zones

Shorewall

在这里,我们看到默认定义了三个区域:fw、net和loc。值得注意的是,Shorewall将防火墙机器本身视为自己的区域,并将其存储在名为$fw的变量中。

“ /etc/shorewall/zones ” 文件非常容易看懂,主要包括:net区域(面向互联网的接口)、loc区域(面向LAN的接口)和fw,这就是全部。

此设置给出了以下内容:

  • 允许从loc区域( LAN ) 到net 区域( Internet ) 的所有连接请求。
  • 丢弃(忽略)从网络区域到防火墙和LAN的所有连接请求。
  • 拒绝并记录所有其它请求。

LOG LEVEL位对于任何使用过Apache、MySQL或任何其它数量的FOSS程序进行管理的人来说都应该很熟悉。在这种情况下,可以告诉Shorewall使用日志记录的信息级别。

shorewall日志策略

我们的区域和策略已经设置,现在必须配置我们的接口。可以通过编辑“ /etc/shorewall/interfaces ”文件来完成此操作。

sudo nano /etc/shorewall/interfaces

shorewall接口

在这里,我们将面向互联网的接口设置为net zone的eth0。在LAN端,我们将另一个接口eth设置为loc zone。注意:请修改此文件以正确适合你自己的配置。

您可以为这两个界面中的任何一个放置各种选项,这些选项都很广泛,在手册页中有详细解释。

man shorewall-interfaces

其中一些的简要概述如下:

  • nosmurfs:过滤以广播地址为源的数据包。
  • logmartians:记录具有不可能源地址的数据包。
  • Routefilter:用于反欺骗的内核路由过滤。

现在系统已设置防火墙,我们需要允许某些连接通过,这样才能完成我们想要做的事情。。可以在“ /etc/shorewall/rules ”的规则文件中定义这些内容。

sudo nano /etc/shorewall/rules

shorewall规则

这个文件乍一看很混乱,主要是因为列重叠,但通过标题很容易明白它的作用。

  1. 首先,有ACTION列,它描述了你要执行的操作。
  2. 接下来,有一个SOURCE标头,可以在其中定义数据包的来源区域。
  3. 然后还有了一个DEST(或目的地),即目的地的区域或IP地址。

接下来让小编举个例子以便帮助你更好的理解。

假设你想在IP地址为192.168.1.55的计算机上的防火墙后面运行SSH服务器。你不仅需要在防火墙中打开一个端口,而且还必须告诉防火墙,来自端口22的任何流量都需要路由到位于192.168.1.55的计算机。

这称为端口转发,这是大多数防火墙/路由器的常见功能。在“ /etc/shorewall/rules ”中,可以通过添加如下行来完成此操作:

SSH(DNAT)	net		loc:192.168.1.55

在上面设置,我们定义了从网络区域到防火墙的任何以SSH为目的地的数据包都必须路由(DNAT)到地址为192.168.1.55的机器上的端口22。这称为网络地址转换或NAT。“ D ”只是告诉Shorewall这是目标地址的NAT 。

当然,要实现次目的,必须在Linux内核中启用NAT支持。如果你需要NAT但是没有的话,请参阅之前重新编译Debian内核教程。

总结

可以看出,Shorewall是用于配置Linux系统上Netfilter防火墙的高级工具。它旨在简化设置和管理防火墙的任务,使其更易于用户访问。Shorewall提供一组配置文件和一个命令行界面,允许用户定义防火墙规则、策略和设置。

另外,需要注意的是,配置防火墙需要对网络概念和安全原则有很好的理解。用户应仔细查阅Shorewall文档并测试其防火墙配置,以确保其满足安全需求。如果有什么不懂的操作,可以参考本文内容说明以及后面小编所写的教程。

赞(0)
网站声明:本文内容由趣云笔记原创,部分资源收集于网络,如有侵权请联系企鹅:2472781824删除。
文章名称:《Shorewall:用于配置Linux服务器的高级防火墙》
文章链接:https://www.ecscoupon.com/3967.html
本站资源仅供个人学习交流,未经允许不得转载,更不允许用于商业用途。如需转载,请注明来源,感谢理解!