零基础Linux入门教程:Linux 防火墙的使用与配置
在 Linux 体系中,防火墙是保障服务器网络安全的重要工具,通过一系列规则控制数据包的流入、流出及转发举动。本文将从 CentOS 和 Ubuntu 两大主流 Linux 发行版出发,详细介绍它们的防火墙工具及使用方法。
一、防火墙基础概念
防火墙是操纵体系用于掩护网络安全的核心组件。它通过设置规则,允许或拒绝网络数据包的传输。Linux 防火墙基于 Netfilter 框架实现,并提供两类重要工具:
- iptables:传统的下令行工具,适合高级用户。
- 现代封装工具:如 firewalld 和 UFW,为用户提供更简单的下令接口。
无论工具种类怎样,防火墙的核心功能都是定义规则控制网络举动。
二、CentOS 防火墙详解
CentOS 体系中,防火墙工具重要有两种:现代的 firewalld 和传统的 iptables。
1. firewalld
firewalld 是 CentOS 默认的防火墙工具,它基于区域(zone)管理规则,可以动态修改防火墙配置,适合现代化的网络管理。
核心概念
- 区域(Zone):区域是 firewalld 的核心,用于管理网络接口的规则。不同区域有不同的安全级别,例如 public、dmz 等。
- 服务(Service):服务是预定义的一组规则,用于快速开放常见服务(如 HTTP、SSH)。
- 永世规则与运行时规则:
- 永世规则:需要加 --permanent 参数,只有在重新加载后生效。
- 运行时规则:即时生效,但重启后失效。
- 服务管理
- systemctl start firewalld # 启动防火墙
- systemctl stop firewalld # 停止防火墙
- systemctl restart firewalld # 重启防火墙
- systemctl enable firewalld # 开机自启
- systemctl status firewalld # 查看防火墙状态
复制代码 - 开放端口
- firewall-cmd --permanent --add-port=80/tcp
- firewall-cmd --reload # 重新加载规则
复制代码
- firewall-cmd --add-port=80/tcp
复制代码
- 允许服务
- firewall-cmd --permanent --add-service=ssh
- firewall-cmd --reload
复制代码
- firewall-cmd --permanent --remove-service=ssh
- firewall-cmd --reload
复制代码
- 查看规则
- firewall-cmd --zone=public --list-all
复制代码
- 管理区域
- firewall-cmd --get-active-zones
复制代码
- firewall-cmd --zone=public --add-interface=eth0
复制代码
- 重置防火墙
- firewall-cmd --permanent --reload-default
复制代码
2. iptables
iptables 是传统的防火墙工具,它直接操纵 Netfilter,规则灵活且强大。只管 firewalld 已成为主流,但某些高性能场景仍旧使用 iptables。
核心概念
- 表(Tables):
- filter 表:默认表,用于包过滤。
- nat 表:用于地点转换(如端口转发)。
- mangle 表:用于修改数据包。
- 链(Chains):
- INPUT:处置惩罚进入本机的数据包。
- OUTPUT:处置惩罚本机发送的数据包。
- FORWARD:处置惩罚转发的数据包。
- 规则(Rules):定义匹配条件和动作(如 ACCEPT、DROP)。
- 服务管理
- systemctl start iptables # 启动防火墙
- systemctl stop iptables # 停止防火墙
- systemctl enable iptables # 开机自启
复制代码 - 添加规则
- iptables -A INPUT -p tcp --dport 80 -j ACCEPT
- iptables -A INPUT -p tcp --dport 22 -j ACCEPT
复制代码
- iptables -A INPUT -j DROP
复制代码
- iptables -A INPUT -p tcp --dport 22 -m limit --limit 5/min -j ACCEPT
复制代码
- 查看规则
- 删除规则
- iptables -D INPUT -p tcp --dport 80 -j ACCEPT
复制代码
- 保存和恢复规则
- 端口转发(NAT)
- iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.100:80
复制代码
- echo 1 > /proc/sys/net/ipv4/ip_forward
复制代码
3. firewalld 和 iptables 的对比
功能firewalldiptables易用性更适合现代用户,下令简单配置复杂,适合高级用户动态配置支持动态修改,实时生效修改需手动重启规则区域管理支持基于区域的规则分组不支持区域概念灵活性灵活性中等,适合一样平常使用灵活性高,支持复杂场景性能对大规模规则场景稍有不足性能高,适合复杂场景 三、Ubuntu 防火墙
1. UFW(默认工具)
UFW(Uncomplicated Firewall)是 Ubuntu 的默认防火墙工具,它封装了 iptables,使配置防火墙更加简单直观。
- sudo ufw enable # 启用防火墙
- sudo ufw disable # 禁用防火墙
复制代码
- 添加规则:
- sudo ufw allow 80
- sudo ufw allow 22
复制代码
- 查看规则:
- 删除规则:
2. iptables
在 Ubuntu 上,iptables 的使用与 CentOS 雷同。实用于需要复杂规则配置的场景。
- iptables -A INPUT -s 192.168.1.100 -j DROP
复制代码- iptables -A INPUT -p tcp --dport 3306 -j DROP
复制代码 四、防火墙配置实践
以下是 CentOS 和 Ubuntu 上常见防护规则配置示例:
- 允许 SSH、HTTP 服务:
复制代码
- sudo ufw allow ssh
- sudo ufw allow http
- sudo ufw enable
复制代码
- 限定特定 IP 访问:
- iptables -A INPUT -s 192.168.1.100 -j DROP
复制代码
- 开放自定义端口(如 MySQL 3306):
- firewall-cmd --permanent --add-port=3306/tcp
- firewall-cmd --reload
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |