# Clear any existing firewall stuff before we start
iptables --flush
iptables -t nat --flush
iptables -t mangle --flush
# As the default policies, drop all incoming traffic but allow all
# outgoing traffic. This will allow us to make outgoing connections
# from any port, but will only allow incoming connections on the ports
# specified below.
iptables --policy INPUT DROP
iptables --policy OUTPUT ACCEPT
# Allow all incoming traffic if it is coming from the local loopback device
iptables -A INPUT -i lo -j ACCEPT
# Accept all incoming traffic associated with an established
# connection, or a "related" connection
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# Allow incoming connections
# SSH
iptables -A INPUT -p tcp -i eth0 --dport 22 -m state --state NEW -j ACCEPT
# HTTP
iptables -A INPUT -p tcp -i eth0 --dport 80 -m state --state NEW -j ACCEPT
# HTTPS
iptables -A INPUT -p tcp -i eth0 --dport 443 -m state --state NEW -j ACCEPT
# Allow icmp input so that people can ping us
iptables -A INPUT -p icmp -j ACCEPT
# Reject all other incoming packets
iptables -A INPUT -j REJECT
version 5
interface any IfAll
client any AnyClient accept
server "ssh http https" accept
# Accept everything from trusted networks
server anystateless AllInside accept src "10.3.27.0/24"
sudo ufw 默认拒绝
sudo ufw 允许 http
sudo ufw 允许 https
sudo ufw 允许 ssh
sudo ufw 启用
使用这个脚本。
只需决定是否要允许传入 ICMP (ping)。
正如对另一个答案的评论中所述,您不想在允许 ssh 端口之前丢失连接。从手册页:
“远程管理
当运行 ufw enable 或通过其 initscript 启动 ufw 时,ufw 将刷新其链。这是必需的,因此 ufw 可以保持一致的状态,但它可能会丢弃现有的连接(例如 ssh)。ufw 确实支持在启用防火墙之前添加规则,因此管理员可以:
在运行“ufw enable”之前。规则仍将被刷新,但启用防火墙后 ssh 端口将打开。请注意,一旦 ufw 被‘启用’,ufw 在添加或删除规则时不会刷新链(但在修改规则或更改默认策略时会刷新)。”
所以这是一种使用脚本来设置它的方法。运行此脚本时您将被注销,但运行后您可以通过 ssh 再次登录。
将以下内容放入脚本中并将其命名为 start-firewall.sh
然后使其可执行并通过执行来运行它
要了解更多信息,请阅读手册页。
如果您熟悉脚本
iptables
,您将可以完全控制所有防火墙功能。它远不如 Firestarter 友好,但可以在控制台上使用nano
/vi
编辑器完成。查看面向 Ubuntu的本教程。Quicktables 帮助我学习了 iptables 规则。只需运行该脚本,它就会为您生成一个 iptables 脚本……然后您可以打开它并查看它询问您的问题生成的相关命令。这是一个很好的学习资源。
不幸的是,它不再维护。
http://qtables.radom.org/
我真的很喜欢使用firehol ( package )。
要创建您喜欢的设置规则,您需要编辑文件 /etc/default/firehol 并更改 START_FIREHOL=YES
你想让你的 /etc/firehol/firehol.conf 看起来像这样。
firehol 的一大优点是“尝试”命令。您可以调整您的配置文件并执行“firehol 尝试”,如果您通过 ssh 连接,并且您更改的某些内容杀死了您的网络访问,那么 firehol 将恢复更改。要使更改真正生效,您必须说提交。
我更喜欢Shorewall。它易于设置,但同时也很灵活。
也许你应该看看http://iptables-tutorial.frozentux.net/iptables-tutorial.html。您还可以在lartc.org上找到更多信息
sudo apt-get install firestarter
然后,查看系统-> 管理菜单。