Linux环境防火墙常用配置说明
Linux环境防火墙常用配置是我们运维人员必备的技能,今天我们分析一下:
一、firewalld 防火墙策略
1、启关命令
sudo systemctl status firewalld #查看防火墙状态:
systemctl status firewalld 2>/dev/null | grep "Active: active (running)" #查看是否运行
sudo systemctl start firewalld #启动防火墙
sudo systemctl enable --now firewalld #设置开机自启并立即启动服务
sudo systemctl stop firewalld #关闭防火墙
sudo systemctl enable firewalld #开机启动
sudo systemctl restart firewalld #重启
sudo firewall-cmd --reload # 使新规则生效
sudo firewall-cmd --list-all # 查看当前生效规则
2、端口号处理
sudo firewall-cmd --add-port=8082/tcp --permanent #放开
sudo firewall-cmd --zone=public --remove-port=9200/tcp --permanent #关闭端口号(不对外开放)
sudo firewall-cmd --list-ports #验证端口是否已开放
3、添加移除单个ip黑名单
#添加ip黑名单
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="<IP地址>" reject' # 永久禁止指定
#示例
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" reject'
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.0.0.200" reject'
#移除ip黑名单
sudo firewall-cmd --permanent --remove-rich-rule="rule family=ipv4 source address="<IP地址>" reject"
#示例
sudo firewall-cmd --permanent --remove-rich-rule="rule family=ipv4 source address=47.93.18.18 reject"
#移除某个ip的某个端口号封禁
# 示例:移除对 192.168.1.110 的 3306 端口封禁
sudo firewall-cmd --direct --remove-rule ipv4 filter INPUT 0 -s 192.168.1.110 -p tcp --dport 3306 -j REJECT
--permanent:规则永久生效
reject:明确拒绝连接(客户端会收到拒绝响应)
若需静默丢弃流量,可将 reject 改为 drop
4、批量添加ip黑名单
#!/bin/bash
# 启用 firewalld
sudo systemctl enable --now firewalld
# 定义要封禁的 IP 列表
BLOCKED_IPS=("192.168.1.110" "10.0.0.211")
# 添加黑名单规则(禁止所有协议)
for ip in "${BLOCKED_IPS[@]}"; do
sudo firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=$ip reject"
done
# 重新加载防火墙配置
sudo firewall-cmd --reload
# 验证规则
echo -e "rule is looking"
sudo firewall-cmd --list-all
1)赋予权限
chmod +x block_ips.sh
2)执行
sudo ./block_ips.sh
3)测试
curl -v http://你的服务器IP
telnet ip prot
4)定时更新
# 每天凌晨更新黑名单
0 0 * * * /path/to/block_ips.sh
5)验证某ip是否添加成功
firewall-cmd --list-rich-rules | grep "103.148.218.186"
6)批量整理ip脚本
BLOCKED_IPS=("47.98.78.188" "47.98.78.189")
整理成上面的形式,java代码处理
String str = "49.240.222.55\n" +
" 51.183.29.244\n" +
" 188.255.122.19\n" +
" 20.65.19.49\n" +
" 137.14.177.28 ";
// 核心处理逻辑
String result = "(" +
Arrays.stream(str.split("\\n")) // 按换行符分割
.map(String::trim) // 去除首尾空格
.filter(s -> !s.isEmpty()) // 过滤空行
.distinct() // 新增去重操作
.map(s -> "\"" + s + "\"") // 添加双引号
.collect(Collectors.joining(" ")) + // 用空格连接
")";
System.out.println(result);
4、查看整体生效规则
sudo firewall-cmd --list-all # 查看当前生效规则
5、
6、
7、
8、
9、
10、
11、
12、
二、iptables 防火墙策略
1、
2、查看规则
sudo iptables -L -n
3、添加黑名单
sudo iptables -A INPUT -s <IP地址> -j DROP # 禁止指定 IP 的所有入站流
#示例
sudo iptables -A INPUT -s 192.168.1.100 -j DROP
sudo iptables -A INPUT -s 10.0.0.200 -j DROP
验证规则是否生效
sudo iptables -L -n # 查看当前 iptables 规则
永久保存:Debian/Ubuntu 系统
sudo iptables-save > /etc/iptables/rules.v4 # 保存规则至文件
CentOS/RHEL 系统
sudo service iptables save # 或安装 iptables-persistent
4、
5、
6、
今天的测试分享完毕,后续会继续更新,敬请期待!