linux防火墙命令手册
linux防火墙命令手册详细介绍
以下是 Linux 防火墙命令的综合手册,涵盖主流工具的核心操作、适用场景及最佳实践,帮助您高效管理网络流量:
一、主流防火墙工具对比
| 工具 | 特点 | 适用场景 | 典型发行版 |
|---|---|---|---|
| iptables | 传统命令行工具,直接操作内核 Netfilter,规则复杂但功能强大 | 静态服务器、复杂规则需求 | CentOS 6/7、Ubuntu 16.04 及更早 |
| ufw | 简化的 iptables 前端,语法简洁,适合新手快速配置 | 桌面环境、简单服务器配置 | Ubuntu、Debian |
| firewalld | 动态防火墙,支持区域(Zone)和服务(Service)管理,规则实时生效 | 云服务器、频繁调整规则的场景 | CentOS 7/8、Fedora |
| nftables | 新一代框架,替代 iptables,语法更简洁,支持集合和事务型更新,性能更优 | 高性能网络、复杂策略配置 | CentOS 8+、Fedora 30+ |
二、核心工具命令详解
1.
iptables(传统防火墙)
bash
iptables
iptables INPUT tcp ACCEPT
iptables INPUT tcp ACCEPT
iptables INPUT DROP
iptables-save /etc/iptables/rules.v4
iptables save
iptables
2.
ufw(简化配置)
bash
ufw
ufw disable
ufw status verbose
ufw allow /tcp
ufw allow from .1.0/24 to any port
ufw deny
ufw status numbered
ufw delete
ufw default deny incoming
ufw default allow outgoing
3.
firewalld(动态管理)
bash
systemctl start firewalld
systemctl firewalld
firewall-cmd --get-active-zones
firewall-cmd public --add-port/tcp
firewall-cmd
firewall-cmd public --add-servicessh
firewall-cmd public --remove-port/tcp
firewall-cmd --list-all
4.
nftables(新一代框架)
bash
nft table inet filter
nft chain inet filter input filter hook input priority
nft rule inet filter input tcp dport ssh, accept
nft list chain inet filter input
nft delete rule inet filter input handle
nft list ruleset /etc/nftables.conf
systemctl nftables
systemctl start nftables
nft flush ruleset
三、高级功能与场景
1.
持久化规则
- iptables:bash
iptables-save /etc/iptables/rules.v4
/etc/network/if-pre-up.d/iptables
- ufw:规则自动保存,无需额外操作。
- firewalld:使用
--permanent参数并执行firewall-cmd --reload。 - nftables:保存到
/etc/nftables.conf并启用服务。
2.
端口转发(NAT)
bash
iptables nat PREROUTING tcp REDIRECT --to-port
firewall-cmd --add-forward-portport:prototcp:toaddr.1.10:toport
3.
基于 IP 的访问控制
bash
ufw allow from .1.100
nft inet filter blacklist ipv4_addr
nft element inet filter blacklist .3.0/24, .7.8
nft rule inet filter input saddr @blacklist drop
4.
日志记录
bash
iptables INPUT LOG --log-prefix
iptables INPUT DROP
四、安全最佳实践
- 默认策略设置:
- 入站(INPUT)默认拒绝,出站(OUTPUT)默认允许。
- 示例:
sudo iptables -P INPUT DROP。
- 最小权限原则:
- 仅开放必要端口(如 SSH、HTTP),避免全端口放行。
- 动态封禁攻击源:
- 结合
fail2ban自动封禁频繁尝试登录的 IP。
- 结合
- 规则测试:
- 使用临时规则(如
--permanent前不加参数)验证配置,避免锁定自己。
- 使用临时规则(如
- 备份规则:
- 修改前保存当前规则,如
iptables-save > /tmp/iptables.bak。
- 修改前保存当前规则,如
五、工具选择建议
- 新手入门:优先使用
ufw,语法简单,适合快速配置。 - 动态环境:
firewalld支持区域管理和实时更新,适合云服务器。 - 高性能需求:
nftables替代iptables,语法更简洁,性能更优。 - 复杂策略:
iptables或nftables,提供最底层的控制。
六、官方文档与资源
- iptables:Linux man page
- ufw:Ubuntu Wiki
- firewalld:Fedora 文档
- nftables:Linux Foundation
通过以上命令和策略,您可以灵活配置 Linux 防火墙,保护系统安全。根据实际需求选择工具,并结合日志分析和自动化工具(如 Ansible)提升管理效率。