零基础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企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]