IT评测·应用市场-qidao123.com技术社区
标题:
零基础Linux入门教程:Linux 防火墙的使用与配置
[打印本页]
作者:
熊熊出没
时间:
2025-1-3 04:04
标题:
零基础Linux入门教程:Linux 防火墙的使用与配置
零基础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 # 查看防火墙状态
复制代码
开放端口
永世开放端口(如 HTTP 80)
:
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --reload # 重新加载规则
复制代码
临时开放端口
:
firewall-cmd --add-port=80/tcp
复制代码
允许服务
添加服务规则(如 SSH)
:
firewall-cmd --permanent --add-service=ssh
firewall-cmd --reload
复制代码
移除服务规则
:
firewall-cmd --permanent --remove-service=ssh
firewall-cmd --reload
复制代码
查看规则
列出全部规则:
firewall-cmd --list-all
复制代码
查看某区域的规则:
firewall-cmd --zone=public --list-all
复制代码
管理区域
查看全部可用区域:
firewall-cmd --get-zones
复制代码
查看当前接口绑定的区域:
firewall-cmd --get-active-zones
复制代码
将接口绑定到指定区域(如 public):
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 # 开机自启
复制代码
添加规则
允许 HTTP 和 SSH 服务
:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
复制代码
拒绝全部其他流量
:
iptables -A INPUT -j DROP
复制代码
限定 SSH 毗连速率
:
iptables -A INPUT -p tcp --dport 22 -m limit --limit 5/min -j ACCEPT
复制代码
查看规则
显示全部规则:
iptables -L -v -n
复制代码
查看某表(如 nat)规则:
iptables -t nat -L -v -n
复制代码
删除规则
删除指定规则(如 HTTP):
iptables -D INPUT -p tcp --dport 80 -j ACCEPT
复制代码
清空全部规则:
iptables -F
复制代码
保存和恢复规则
保存规则到配置文件:
service iptables save
复制代码
恢复规则:
service iptables restart
复制代码
端口转发(NAT)
将外部 8080 端口映射到内部 80 端口:
iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.100:80
复制代码
启用 IP 转发:
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 # 禁用防火墙
复制代码
添加规则
:
允许 HTTP 和 SSH 服务:
sudo ufw allow 80
sudo ufw allow 22
复制代码
克制 FTP 服务:
sudo ufw deny 21
复制代码
查看规则
:
sudo ufw status
复制代码
删除规则
:
sudo ufw delete allow 22
复制代码
2. iptables
在 Ubuntu 上,iptables 的使用与 CentOS 雷同。实用于需要复杂规则配置的场景。
限定单个 IP 访问
:
iptables -A INPUT -s 192.168.1.100 -j DROP
复制代码
设置限定特定端口的访问
:
iptables -A INPUT -p tcp --dport 3306 -j DROP
复制代码
四、防火墙配置实践
以下是 CentOS 和 Ubuntu 上常见防护规则配置示例:
允许 SSH、HTTP 服务
:
CentOS(firewalld)
:
firewall-cmd --permanent --add-service=ssh
firewall-cmd --permanent --add-service=http
firewall-cmd --reload
复制代码
Ubuntu(UFW)
:
sudo ufw allow ssh
sudo ufw allow http
sudo ufw enable
复制代码
限定特定 IP 访问
:
iptables
:
iptables -A INPUT -s 192.168.1.100 -j DROP
复制代码
开放自定义端口(如 MySQL 3306)
:
CentOS(firewalld)
:
firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --reload
复制代码
Ubuntu(UFW)
:
sudo ufw allow 3306
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/)
Powered by Discuz! X3.4