linux

Linux防火墙如何实现高效过滤

小樊
48
2025-07-17 16:25:01
栏目: 智能运维

在Linux系统中,实现高效过滤的防火墙通常使用iptables或nftables。以下是使用这两种工具进行高效过滤的方法:

使用iptables

  1. 基本规则设置

    • 清除现有规则:iptables -F
    • 设置默认策略:iptables -P INPUT DROP(阻止所有输入),iptables -P FORWARD DROP(阻止所有转发),iptables -P OUTPUT ACCEPT(允许所有输出)。
  2. 允许必要的流量

    • 允许SSH连接:iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
    • 允许HTTP/HTTPS连接:iptables -A INPUT -p tcp --dport 80 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPTiptables -A INPUT -p tcp --dport 443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
  3. 限制连接数

    • 限制每秒连接数:iptables -A INPUT -p tcp --syn -m limit --limit 1/s --limit-burst 3 -j ACCEPT
  4. 日志记录

    • 记录被拒绝的连接:iptables -A INPUT -j LOG --log-prefix "IPTables-Dropped: " --log-level 4
  5. 保存规则

    • 保存iptables规则:iptables-save > /etc/iptables/rules.v4

使用nftables

nftables是iptables的下一代,提供了更简洁和高效的规则管理。

  1. 基本规则设置

    • 清除现有规则:nft flush ruleset
    • 设置默认策略:nft add rule ip filter input dropnft add rule ip filter forward dropnft add rule ip filter output accept
  2. 允许必要的流量

    • 允许SSH连接:nft add rule ip filter input tcp dport 22 accept
    • 允许HTTP/HTTPS连接:nft add rule ip filter input tcp dport 80 acceptnft add rule ip filter input tcp dport 443 accept
  3. 限制连接数

    • 限制每秒连接数:nft add rule ip filter input tcp flags syn limit rate over 1/sec burst 3 accept
  4. 日志记录

    • 记录被拒绝的连接:nft add rule ip filter input log prefix "nftables-Dropped: " level info
  5. 保存规则

    • 保存nftables规则:nft list ruleset > /etc/nftables.conf

其他优化建议

通过以上方法,可以在Linux系统中实现高效的防火墙过滤,确保系统的安全性和性能。

0
看了该问题的人还看了