在Linux系统中,常用的防火墙管理工具主要有`iptables`、`nftables`以及`firewaltd`(通常与`firewallcmd`命令行工具一起使用),不同工具或版本的操作命令可能不同。下面根据常见的三种情况进行说明:
使用`iptables`
如果系统直接支持且使用`iptables`进行配置和管理:
打开防火墙:
通常情况下,安装好Linux系统之后默认会启用基础的防火墙规则。如果你想允许新的流量或者开启新的规则,可以直接操作,比如添加一个新的允许端口的规则。
bash
sudo iptables A INPUT p tcp dport 22 j ACCEPT 允许SSH(22)的访问
这不会立即打开或关闭防火墙作为一个整体的功能,只会增加一个新的特定规则。
若要彻底开启所有新流入连接:
需要确保相关的策略已经到位,例如默认接收新连接:
bash
sudo iptables P INPUT ACCEPT 设置链政策
然后你可以清空所有的现有规则来应用这些新策略:
bash
sudo iptables F 清除现有的所有规则列表
注意:这样的操作非常危险,除非你是有经验的用户,并理解你的系统安全需求。
要重新加载原有的iptables设置(例如重启后保留):
需要配置开机启动项或写入脚本,在开机时自动加载配置。
使用`nftables`
从`nftables`(取代`iptables`成为下一代高级防火墙工具):
sh
sudo nft list ruleset 列出现有策略
然后你可以通过追加新的策略或修改现存的规则来实现“打开”的效果。
举一个示例,开放HTTP(S)
sudo nft add rule inet filter input tcp dport 80 accept 开放HTTP
具体的`nftables`指令依赖于您的配置和需要管理的服务。
使用`firewalld`
大部分现代Linux发行版都开始采用`firewalld + firewallcmd`作为防火墙配置的主要方式,因为其配置更为方便:
要临时打开某个端口(直到系统下一次重启):
bash
sudo firewallcmd addport=22/tcp 举例:允许SSH (22) 的连接
如果希望该设置在系统重启后仍然生效,则加上参数`permanent`:
bash
sudo firewallcmd permanent addport=22/tcp 设置永久有效
要检查当前状态(包括哪些端口被开放),可执行:
bash
sudo firewallcmd listall
每一种工具和服务都有自己的特性和功能,请根据你的具体系统和需求选择正确的方法进行配置。如果你不确定哪一套是你的系统默认使用的,可以尝试使用命令检查当前防火墙状态或进程来确定。例如使用以下命令查询是否正在运行`firewalld`:
bash
sudo systemctl status firewalld 或者 systemctl status iptables,nftables查看对应服务的状态
发表评论