防火墙命令

背景介绍
防火墙是计算机网络中用于监控和控制进出流量的关键系统,它主要通过设置条件,监测通过的包的特征来决定放行或者阻止,以保护内部网络免受外部攻击,在Linux系统中,firewalld和iptables是两种常见的防火墙管理工具,本文将详细解析这些工具的基本命令及其使用方法。
基本概念
区域(Zone):firewalld使用区域来定义一组规则,每个区域代表一种网络环境,如公共网络、内部网络等。
运行时模式与永久模式:firewalld提供了两种配置模式,运行时模式的配置仅在当前会话有效,而永久模式的配置则在重启后依然有效。
常用命令详解
`firewall-cmd` 命令
查看防火墙状态

firewall-cmd --state:查看firewalld的运行状态。
running表示防火墙正在运行。
not running表示防火墙已停止。
开启/关闭/重启防火墙
systemctl start firewalld # 启动防火墙 systemctl stop firewalld # 关闭防火墙 systemctl restart firewalld # 重启防火墙
设置防火墙开机自启
systemctl enable firewalld # 设置防火墙开机自启 systemctl disable firewalld # 取消防火墙开机自启 systemctl is-enabled firewalld # 查看防火墙是否开机自启
按端口查询/开放/移除放行规则
firewall-cmd --zone=public --list-ports:列出所有开放的端口。

firewall-cmd --zone=public --query-port=80/tcp:检查指定端口是否开放。
firewall-cmd --permanent --zone=public --add-port=80/tcp:永久开放指定端口。
firewall-cmd --permanent --zone=public --remove-port=80/tcp:永久移除指定端口。
firewall-cmd --reload:重新加载防火墙规则。
按服务查询/开放/移除放行规则
firewall-cmd --get-services:列出所有支持的服务。
firewall-cmd --zone=public --list-services:列出所有开放的服务。
firewall-cmd --zone=public --query-service=http:检查指定服务是否开放。
firewall-cmd --permanent --zone=public --add-service=http:永久开放指定服务。
firewall-cmd --permanent --zone=public --remove-service=http:永久移除指定服务。
firewall-cmd --reload:重新加载防火墙规则。
端口转发
firewall-cmd --zone=public --list-forward:查看所有端口转发规则。
firewall-cmd --permanent --zone=public --add-forward-port=port=80:proto=tcp:toport=8080:本机端口转发。
firewall-cmd --permanent --zone=public --add-forward-port=proto=80:proto=tcp:toaddr=192.168.1.12:toport=8080:服务器之间转发。
firewall-cmd --permanent --zone=public --remove-forward-port=port=80:proto=tcp:toport=8080:移除端口转发规则。
firewall-cmd --reload:重新加载防火墙规则。
扩展功能
firewall-cmd --query-masquerade:检查是否允许伪装IP。
firewall-cmd --add-masquerade:允许防火墙伪装IP。
firewall-cmd --remove-masquerade:禁止防火墙伪装IP。
`iptables` 命令
查看策略
iptables -L:列出所有链的规则。
iptables -L INPUT:列出INPUT链的规则。
iptables -L FORWARD:列出FORWARD链的规则。
iptables -L OUTPUT:列出OUTPUT链的规则。
添加规则
iptables -A INPUT -p tcp --dport 22 -j ACCEPT:允许TCP协议的22号端口。
iptables -A INPUT -p tcp --dport 80 -j ACCEPT:允许TCP协议的80号端口。
iptables -A INPUT -p tcp --dport 443 -j ACCEPT:允许TCP协议的443号端口。
删除规则
iptables -D INPUT -p tcp --dport 22 -j ACCEPT:删除允许TCP协议的22号端口的规则。
保存和恢复配置
iptables-save > /etc/iptables.rules:保存当前配置到文件。
iptables-restore < /etc/iptables.rules:从文件恢复配置。
本文详细介绍了Linux系统中常用的防火墙命令,包括firewalld和iptables的基本操作,通过这些命令,用户可以有效地管理和配置防火墙,提高系统的安全性,以下是一些关键点的回顾:
firewalld提供了动态更新规则的能力,而不需要重启服务。
iptables则是一种更为底层的工具,需要手动保存和恢复配置。
两者都支持基于端口和服务的规则配置,以及端口转发和伪装IP等功能。
常见问题FAQs
Q1: 如何更改firewalld的默认区域?
A1: 使用以下命令可以更改默认区域:
firewall-cmd --set-default-zone=<区域名>
将默认区域设置为public:
firewall-cmd --set-default-zone=public
然后重新加载防火墙规则:
firewall-cmd --reload
Q2: 如何在firewalld中开放多个连续端口?
A2: 使用破折号(-)指定端口范围即可开放多个连续端口,开放8080到8090之间的所有端口:
firewall-cmd --permanent --zone=public --add-port=8080-8090/tcp firewall-cmd --reload
小伙伴们,上文介绍了“防火墙命令”的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。
文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/20344.html<
