在我以前的文章中,我们看了看的shorewall,如何安装,设置配置文件,并在配置NAT端口转发。 在本文中,我们将探讨一些的shorewall的常见错误,一些解决方案,并初步了解其命令行选项。
Shorewall配置选项
的shorewall提供内容广泛,可以在命令行中运行的命令阵列。 在看看男人的shorewall应该给你很多看到,但我们要执行的第一个任务是在我们的配置文件的检查。
$ sudo shorewall check
的shorewall会打印出所有配置文件中的检查,其中包含的选项。 输出将看起来像这样。
Determining Hosts in Zones... Locating Actions Files... Checking /usr/share/shorewall/action.Drop for chain Drop... Checking /usr/share/shorewall/action.Broadcast for chain Broadcast... Checking /usr/shrae/shorewall/action.Invalid for chain Invalid... Checking /usr/share/shorewall/action.NotSyn for chain NotSyn.. Checking /usr/share/shorewall/action.Reject for chain Reject... Checking /etc/shorewall/policy... Adding Anti-smurf Rules Adding rules for DHCP Checking TCP Flags filtering... Checking Kernel Route Filtering... Checking Martian Logging... Checking Accept Source Routing... Checking MAC Filtration -- Phase 1... Checking /etc/shorewall/rules... Checking /usr/share/shorewall/action.Invalid for chain %Invalid... Checking MAC Filtration -- Phase 2... Applying Policies... Checking /etc/shorewall/routestopped... Shorewall configuration verified
我们正在寻找神奇的线是一个在底部,上面写着:“ 配置的shorewall验证 ”。 如果您收到任何错误,它们很可能是由于您的内核配置中缺少模块。
我将告诉你如何解决两个更常见的错误,但如果你打算使用你的机器作为防火墙,你需要重新编译你的内核与所有必要的模块。
第一个错误,也是最常见的,是关于NAT错误。
Processing /etc/shorewall/shorewall.conf... Loading Modules... Checking /etc/shorewall/zones... Checking /etc/shorewall/interfaces... Determining Hosts in Zones... Locating Actions Files... Checking /usr/share/shorewall/action.Drop for chain Drop... Checking /usr/share/shorewall/action.Broadcast for chain Broadcast... Checking /usr/shrae/shorewall/action.Invalid for chain Invalid... Checking /usr/share/shorewall/action.NotSyn for chain NotSyn.. Checking /usr/share/shorewall/action.Reject for chain Reject... Checking /etc/shorewall/policy... Adding Anti-smurf Rules Adding rules for DHCP Checking TCP Flags filtering... Checking Kernel Route Filtering... Checking Martian Logging... Checking Accept Source Routing... Checking /etc/shorewall/masq... ERROR: a non-empty masq file requires NAT in your kernel and iptables /etc/shorewall/masq (line 15)
如果您看到类似的东西这一点,机会是你的内核是不是支持NAT编译。 这与大多数现成的内核很常见。 请阅读我的教程“ 如何编译Debian内核 ”,让您开始。
通过检查产生的另一个常见的错误是关于iptables和记录错误。
root@debian:/etc/shorewall# shorewall check Checking... Processing /etc/shorewall/params... Processing /etc/shorewall/shorewall.conf Loading Modules.. ERROR: Log level INFO requires LOG Target in your kernel and iptables
这也是东西,你可以编译成一个新的内核,但有一个快速修复它,如果你想使用ULOG。ULOG是从系统日志不同的日志机制。 这是很容易使用。
要设置此,您在所有在/ etc /的shorewall配置文件来改变的“ 信息 ”到“ULOG”每个实例。 以下命令可以为您执行此操作。
$ cd /etc/shorewall $ sudo sed –i ‘s/info/ULOG/g’ *
在此之后,编辑/etc/shorewall/shorewall.conf文件并设置行。
LOGFILE=
您要将日志存储到的位置。 矿是/var/log/shorewall.log。
LOGFILE=/var/log/shorewall.log
运行“ 命令的shorewall检查 ”应该给你一个健康清洁提单。
Shorewall的命令行界面为系统管理员提供了许多方便的一线程。 一个经常使用的命令,特别是当对防火墙进行大量更改时,是保存当前配置状态,以便在有任何复杂情况时可以回滚。 这里的语法很简单。
$ sudo shorewall save <filename>
回滚也很简单:
$ sudo shorewall restore <filename>
Shorewall也可以启动和配置为使用备用配置目录。 你可以指定这是开始命令,但你会想要先检查它。
$ sudo shorewall check <config-directory>
如果你只是想试试配置,如果它是工作,启动它,你可以指定try选项。
$ sudo shorewall try <config-directory> [ ]
Shorewall只是Linux系统上可用的许多强大的防火墙解决方案之一。 无论你发现自己在网络频谱的什么端,许多人发现它是简单和有用的。
这只是一个小的开始,可以让你在你的方式,而不会深入到网络概念。 和往常一样,请研究并查看手册页和其他资源。 Shorewall的邮件列表是一个真棒的地方,是最新的和良好的维护。