设置Linux防火墙,通常使用iptables或firewalld命令,进行规则配置和端口开放。
Linux 防火墙设置详解
Linux 系统中的防火墙主要是通过 iptables 或者其更新的版本 firewalld 进行配置和管理,这两个工具都允许系统管理员对进出网络流量进行控制,以保障系统安全,以下内容将详细介绍如何通过 iptables 和 firewalld 来设置 Linux 防火墙。
iptables 的基本使用
iptables 是一个在内核级别上工作的强大工具,它能够对数据包进行过滤、转发以及修改等操作,iptables 基于链(chain)和规则(rule)的概念来处理流量。
1、查看当前规则
要查看当前的防火墙规则,可以使用以下命令:
sudo iptables -L -n -v
2、清空所有规则
在开始设置新的规则之前,可能需要清空所有现有的规则,这可以通过以下命令实现:
sudo iptables -F
3、设置默认策略
通常情况下,需要首先设置默认的策略,即当数据包不匹配任何规则时的处理方式,通常设置为 DROP(丢弃):
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT
4、允许特定的流量
接下来,可以根据需要允许特定的流量进入或离开系统,允许来自特定 IP 地址的流量:
sudo iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT
firewalld 的基本使用
firewalld 是 iptables 的一个封装,提供了更友好的用户界面和更高级的网络配置选项,它是 CentOS 7 及更高版本的默认防火墙工具。
1、启动与停止 firewalld
要启动 firewalld,可以运行:
sudo systemctl start firewalld
若要停止 firewalld,则运行:
sudo systemctl stop firewalld
2、查看当前状态
可以使用以下命令查看 firewalld 的状态:
sudo firewall-cmd –state
3、添加服务
firewalld 允许直接通过服务名称来添加规则,非常方便,要允许 SSH 服务,可以运行:
sudo firewall-cmd –add-service=ssh –permanent
不要忘记重新加载配置以使更改生效:
sudo firewall-cmd –reload
常见问题与解答
Q1: 如何使用 iptables 允许特定端口的流量?
A1: 可以使用 -p 参数指定协议(如 tcp 或 udp),并使用 –dport 或 –sports 参数指定目标或源端口号,允许所有到达端口 80 的 HTTP 流量:
sudo iptables -A INPUT -p tcp –dport 80 -j ACCEPT
Q2: 如何在 firewalld 中允许特定端口?
A2: 使用 –add-port 参数来添加端口规则,开放端口 8080:
sudo firewall-cmd –add-port=8080/tcp –permanent
Q3: 如何保存 iptables 的配置,使其在重启后依然有效?
A3: 可以使用 iptables-save 命令将当前规则导出到一个文件,然后在系统启动脚本中加入一个调用 iptables-restore 的命令来恢复规则。
Q4: 如何临时关闭 firewalld 而不重启服务?
A4: 可以使用 –runtime-to-permanent 选项来立即应用更改而不重新启动服务:
sudo firewall-cmd –add-service=ssh –runtime-to-permanent
无论是使用 iptables 还是 firewalld,Linux 防火墙都是网络安全的关键组成部分,正确配置和管理防火墙规则对于保护系统免受未授权访问至关重要。