如何使用 Ubuntu 作为防火墙服务器

如何使用 Ubuntu 作为防火墙服务器

Ubuntu配置为防火墙服务器,如果是的怎么办?,如果为什么 ?

答案1

Ubuntu 内置防火墙名为Iptable。默认情况下iptable允许所有流量。因此,您需要根据自己的需求进行配置 :)

以下是基本命令Iptable

打字

sudo iptables -L

列出 iptables 中的当前规则。如果你刚刚设置了服务器,则不会有规则,你应该看到

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

请参阅完整操作方法帮助中心

一个简单的 iptables 脚本

#!/bin/bash
# flush all chains
iptables -F
# set the default policy for each of the pre-defined chains
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
# allow establishment of connections initialised by my outgoing packets
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
# drop everything else
iptables -A INPUT -i eth+ -p udp -j DROP
iptables -A INPUT -i eth+ -p tcp -m tcp --syn -j DROP
# accept anything on localhost
iptables -A INPUT -i lo -j ACCEPT

我的网络接口有 eth0 和 eth1,因此此脚本的规则涵盖了这两个接口;如果您的接口有不同的名称,则需要编辑规则以涵盖该名称。这会丢弃所有传入内容,除了最初由我的传出数据包建立的连接(感谢 Luke!- 请参阅评论);这意味着它对服务器没有好处。

我把这个脚本放在 /opt/scripts/iptables.script 中并使其可执行。运行它后,您可以通过以下方式显示当前的 iptables 规则来了解它是否有效:

sudo iptables -L -v

然后我创建了一个简单的初始化脚本来启动/停止防火墙/etc/init.d/firewall

#!/bin/bash
if [[ $1 == start ]] ; then
  sudo /opt/scripts/iptables.script
else
  sudo iptables -F
fi

然后我/etc/rc.*使用 update-rc.d 工具将其符号链接到我的目录中,这样防火墙在网络启动之前启动:

update-rc.d firewall start 20 2 3 4 5 . stop 99 0 1 6 .

来源

希望这有帮助:)

答案2

我更喜欢联邦快递 帮助它是 iptables 的包装器,更易于配置。

相关内容