室内设计说明搜索优化
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[@]}"; dosudo 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://你的服务器IPtelnet 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、
今天的测试分享完毕,后续会继续更新,敬请期待!