在Linux中设置防火墙可以是一个新手非常艰巨,还是有人不是很熟悉iptables的 。 幸运的是,有一个很容易的shorewall使用的解决方案。
在Linux中安装Shorewall防火墙
在这个多部分教程,我将让您开始使用的shorewall,并引导您完成一些更高级的话题与这真棒防火墙系统。
什么是Shorewall?
的shorewall本质上是一个前端iptables的 ,但它是一个命令行环境的前端,利用若干文本文件为它的配置。 虽然是的shorewall能在非常大的网络服务众多的机器上迈上了一个强大的防火墙系统,我们将有一个基本的双接口配置开始和明确的基础。
双接口配置包括具有两个以太网端口的机器,一个进入,一个进入本地网络。
在Linux中安装Shorewall
可以的shorewall使用apt-get和yum包管理工具进行安装。
在Debian / Ubuntu / Linux Mint
$ sudo apt-get install shorewall6
在RHEL / CentOS / Fedora上
$ sudo yum install shorewall6
安装完毕后,我们需要一个示例配置从“ 的 / usr /共享/ DOC /的shorewall”目录复制到的shorewall的默认目录“ 的 / etc / shorewal L”。
$ sudo cp /usr/share/doc/shorewall/example/two-interfaces/* /etc/shorewall
然后cd到/ etc / shorewall。
$ cd /etc/shorewall
如果我们把这个目录中一看,我们看到一堆文件和文件shorewall.conf的。 的shorewall认为网络作为一组不同的区域,所以我们要看看它是“ 在 / etc /的shorewall /区 ”文件中的第一个文件。
区域
在这里,我们看到有默认定义了三个区域: 净 , 禄 ,和所有 。 要注意的是的shorewall对待防火墙机器本身作为在称为$ FW可变其自己的区域,并存储是重要的。 您将在整个配置文件的其余部分中看到此变量。
该“ 的 / etc /的shorewall /区 ”的文件是不言自明。 你有净区 (面向Internet接口), 组委会 区 (LAN接口面临的),以及所有 ,这就是一切。
政策
这个设置放弃了以下:
- 它允许从禄区 (LAN) 净区域 (Internet)的所有连接请求。
- 丢弃所有连接请求(忽略)从网区到防火墙和LAN。
- 拒绝并记录所有其他请求。
日志级别位应该是熟悉的人谁做与Apache,MySQL和或任何其他许多其它开放源码软件项目建设与管理。 在这种情况下,我们告诉的shorewall使用记录的信息级别 。
如果你想有提供给您您的防火墙从你的局域网管理,可以将以下几行添加到您“ 的 / etc /的shorewall /政策 ”的文件。
#SOURCE DEST POLICY LOG LEVEL LIMIT:BURST loc $FW ACCEPT $FW loc ACCEPT
现在我们的区域和策略已设置,我们必须配置我们的接口。 您可以通过编辑“ 的 / etc /的shorewall /接口 ”的文件做到这一点。
接口
在这里,我们设置了面向Internet的接口为eth0 净区域 。 在我们的局域网方面,我们已经设置了其他接口,eth1的 ,到禄区 。 请调整此文件以正确配置您的配置。
您可以为这些接口放置的各种选项是广泛的,最好在手册页上详细说明。
$ man shorewall-interfaces
其中一些的快速下降如下:
- nosmurfs -过滤数据包广播地址作为源。
- logmartians -记录与不可能的源地址的数据包。
- routefilter -核心路由过滤防欺骗。
当然,现在我们的系统是防火墙的,我们将需要某些连接被允许通过,以获得我们需要做的事情。 你在 “/ etc /的shorewall /规则 ”定义这些规则文件。
规则
这个文件首先看起来很混乱,主要是因为列重叠,但头部是很自明的。 首先,你必须在操作列中,描述要执行什么。
接下来,你有一个源头,可以定义所在的包始发的区域 。 然后,你有你DEST,或目标 ,这是在目标的区域或IP地址 。 让我们举一个例子。
假设你想与192.168.1.25的IP地址的机器上运行防火墙后面的SSH服务器。 不仅是你要在你的防火墙中打开一个端口,但你将不得不告诉任何通信端口22来需要在192.168.1.25到被路由到本机防火墙。
这被称为端口转发 。 它是最防火墙 / 路由器上的共同特征。 在“ 在 / etc /的shorewall /规则 ”,你会加入这样一行做到这一点:
SSH(DNAT) net loc:192.168.1.25
SSH端口转发
上面,我们定义从网区防火墙未来的SSH指定数据包必须被路由 (DNAT)到端口22台机器上的地址192.168.1.25。
这被称为网络地址转换或NAT。 在“D”简单地告诉的shorewall,这是一个目的地址的NAT。
为了这个工作,你必须在你的内核中启用NAT支持。 如果你需要NAT和没有它,请参阅我的教程重新编译Debian内核 。
参考链接
在下一篇文章中,我们将介绍一些更高级的主题,但是在这里应该有很多东西让你开始使用。 和往常一样,请查看手册页以获得更深入的了解。
另请阅读 : 探索的shorewall防火墙配置和命令行选项