JumpServer 高危命令拦截规则 + 防火墙配置方案
环境说明
通过防火墙 禁止其他IP(剔除堡垒机和其他管理机IP) 通过ssh 访问业务服务器,通过过滤命令 禁止高危命令和修改防火墙以及ssh 配置;支持用户使用root 命令
通用配置说明
- 所有拦截规则动作:拒绝(Deny)
- 规则优先级:1(最高)
- 全部使用单行独立正则,无复合逻辑,适配 JumpServer,防空格绕过、无误拦截
- 防护目标:禁止修改防火墙配置、禁止篡改SSH端口;防火墙仅限制22端口,不影响其他业务端口正常访问
正则基础语法速查
| 语法 |
作用 |
\s+ |
匹配1个或多个空格,防御多空格绕过 |
\s* |
匹配0个或多个空格,兼容命令首尾空格 |
\w+ |
匹配字母/数字/下划线,适配目录、文件名 |
\b |
单词边界,避免关键词误匹配正常命令 |
一、高危删除类(防删库、销毁系统文件)
| 单行正则(直接复制) |
拦截真实命令 |
防护说明 |
rm\s+-rf\s+/\* |
rm -rf /* |
拦截清空根目录所有文件,防范删库跑路 |
rm\s+-rf\s+/\s* |
rm -rf / |
拦截直接删除根目录,防止全盘数据丢失 |
rm\s+-rf\s+~\s* |
rm -rf ~ |
拦截删除用户家目录,保护运维配置数据 |
rm\s+-rf\s+\$HOME |
rm -rf $HOME |
拦截通过环境变量绕过删除家目录 |
rm\s+-rf\s+/\w+ |
rm -rf /etc /var /data |
拦截删除系统、业务一级目录 |
二、磁盘销毁类(防分区格式化、裸盘擦写)
| 单行正则(直接复制) |
拦截真实命令 |
防护说明 |
mkfs\.\w+\s+/dev/ |
mkfs.ext4 /dev/sda1 |
拦截所有磁盘格式化操作 |
dd\s+if=.*of=/dev/ |
dd if=/dev/zero of=/dev/sda |
拦截裸盘读写、篡改分区表等高风险操作 |
三、系统攻击类(防Fork炸弹宕机)
| 单行正则(直接复制) |
拦截真实命令 |
防护说明 |
:\(\)\{:|:\&\};: |
Fork炸弹脚本 |
拦截无限生成进程攻击,避免服务器卡死宕机 |
四、权限篡改类(防系统权限紊乱、越权入侵)
| 单行正则(直接复制) |
拦截真实命令 |
防护说明 |
chmod\s+-R\s+777\s+/ |
chmod -R 777 / |
拦截全局开放777权限,杜绝木马植入、非法入侵 |
chown\s+-R\s+root:root\s+/ |
chown -R root:root / |
拦截全盘强制归属root用户,防止业务服务权限失效 |
五、防火墙防篡改规则(核心:禁止修改配置,不限制业务端口)
仅拦截防火墙规则变更、服务启停,正常业务端口访问不受限制。
| 单行正则(直接复制) |
拦截真实命令 |
防护说明 |
iptables\s+-F |
iptables -F |
拦截清空 iptables 所有规则 |
iptables\s+-X |
iptables -X |
拦截删除 iptables 自定义规则链 |
iptables\s+-A\s+ |
iptables -A |
拦截新增 iptables 规则 |
iptables\s+-I\s+ |
iptables -I |
拦截插入高优先级 iptables 规则 |
iptables\s+-D\s+ |
iptables -D |
拦截删除现有 iptables 防护规则 |
iptables\s+-R\s+ |
iptables -R |
拦截替换 iptables 原有安全策略 |
firewall-cmd\s+.*add\s+ |
firewall-cmd --add |
拦截 firewalld 新增端口/IP规则 |
firewall-cmd\s+.*remove\s+ |
firewall-cmd --remove |
拦截删除 firewalld 现有规则 |
firewall-cmd\s+.*delete\s+ |
firewall-cmd --delete |
拦截删除 firewalld 白名单、端口策略 |
systemctl\s+restart\s+firewalld |
systemctl restart firewalld |
拦截重启防火墙,避免规则临时失效 |
systemctl\s+stop\s+firewalld |
systemctl stop firewalld |
拦截关闭防火墙,防止服务器裸奔暴露 |
systemctl\s+disable\s+firewalld |
systemctl disable firewalld |
拦截禁用防火墙开机自启 |
六、SSH防篡改规则(核心:禁止改端口/改配置,正常登录不受限)
仅拦截编辑、修改、启停SSH配置,不拦截正常 ssh 登录命令,杜绝私自修改22端口搭建后门。
| 单行正则(直接复制) |
拦截真实命令 |
防护说明 |
vi\s+/etc/ssh/sshd_config |
vi /etc/ssh/sshd_config |
拦截手动编辑SSH核心配置文件 |
sed\s+.*Port\s+\d+\s+/etc/ssh/sshd_config |
sed 修改SSH端口 |
拦截命令行批量篡改SSH端口 |
echo\s+.*Port\s+\d+\s+>>\s+/etc/ssh/sshd_config |
echo 追加端口配置 |
拦截静默新增SSH后门端口 |
systemctl\s+restart\s+sshd |
systemctl restart sshd |
拦截重启SSH,阻断篡改配置生效 |
systemctl\s+stop\s+sshd |
systemctl stop sshd |
拦截关闭SSH服务,防止运维失联 |
systemctl\s+disable\s+sshd |
systemctl disable sshd |
拦截禁用SSH开机自启 |
七、关机/重启类(防无预警业务宕机)
| 单行正则(直接复制) |
拦截真实命令 |
防护说明 |
\breboot\b |
reboot |
拦截服务器重启 |
\bshutdown\b |
shutdown |
拦截系统关机 |
\bpoweroff\b |
poweroff |
拦截强制断电关机 |
\bhalt\b |
halt |
拦截系统停机 |
init\s+0 |
init 0 |
拦截运行级别0关机 |
telinit\s+0 |
telinit 0 |
拦截强制停机指令 |
八、敏感信息泄露类(防账号、密钥、配置外泄)
| 单行正则(直接复制) |
拦截真实命令 |
防护说明 |
cat\s+/etc/shadow |
cat /etc/shadow |
拦截查看系统密码哈希文件 |
cat\s+/etc/passwd |
cat /etc/passwd |
拦截查看系统用户列表 |
cat\s+/etc/sudoers |
cat /etc/sudoers |
拦截查看sudo提权配置 |
cat\s+/etc/ssh/sshd_config |
cat /etc/ssh/sshd_config |
拦截查看SSH端口、白名单配置 |
cat\s+.*\.pem |
cat xxx.pem |
拦截查看SSL证书私钥 |
cat\s+.*\.key |
cat xxx.key |
拦截查看各类密钥文件 |
cat\s+.*\.pfx |
cat xxx.pfx |
拦截查看加密证书 |
cat\s+.*\.p12 |
cat xxx.p12 |
拦截查看加密密钥包 |
九、数据外传 & 反弹Shell类(防数据泄露、植入后门)
| 单行正则(直接复制) |
拦截真实命令 |
防护说明 |
\bscp\b |
scp |
拦截远程文件外传 |
\brsync\b |
rsync |
拦截批量同步外传数据 |
nc\s+-l\s+-p\s+\d+ |
nc -l -p 端口 |
拦截端口监听、反弹Shell |
curl\s+.*|\s*bash |
curl url | bash |
拦截外网脚本下载并执行 |
curl\s+.*|\s*sh |
curl url | sh |
拦截外网脚本下载并执行 |
十、账号提权 & 配置清空类
| 单行正则(直接复制) |
拦截真实命令 |
防护说明 |
passwd\s+root |
passwd root |
拦截修改root管理员密码 |
usermod\s+-aG\s+root |
usermod -aG root |
拦截普通用户加入root组非法提权 |
>\s*/etc/\w+ |
> /etc/配置文件 |
拦截清空系统核心配置文件 |
附录:防火墙配置(仅限制22端口,放行所有其他端口)
需求说明
仅允许 10.3.170.32、10.3.153.201、10.3.170.95 访问服务器22端口,其余端口全部放行。
1. firewalld 配置(CentOS 7/8/9、RHEL 系列)
firewall-cmd --reload
firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='10.3.153.201/32' port protocol='tcp' port='22' accept"
firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='10.3.170.95/32' port protocol='tcp' port='22' accept"
firewall-cmd --permanent --add-rich-rule="rule family='ipv4' port protocol='tcp' port='22' drop"
firewall-cmd --reload
2. iptables 配置(通用全Linux)
iptables -F
iptables -X
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -s 10.3.153.201/32 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -s 10.3.170.95/32 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP
iptables -A INPUT -j ACCEPT
3. 规则验证命令
firewall-cmd --list-rich-rules
iptables -L -n --line-number
纯正则清单(批量导入JumpServer专用)
可全选复制,批量粘贴到 JumpServer 命令规则栏:
rm\s+-rf\s+/\*
rm\s+-rf\s+/\s*
rm\s+-rf\s+~\s*
rm\s+-rf\s+\$HOME
rm\s+-rf\s+/\w+
mkfs\.\w+\s+/dev/
dd\s+if=.*of=/dev/
:\(\)\{:\|:\&\};:
chmod\s+-R\s+777\s+/
chown\s+-R\s+root:root\s+/
iptables\s+-F
iptables\s+-X
iptables\s+-A\s+
iptables\s+-I\s+
iptables\s+-D\s+
iptables\s+-R\s+
firewall-cmd\s+.*add\s+
firewall-cmd\s+.*remove\s+
firewall-cmd\s+.*delete\s+
systemctl\s+restart\s+firewalld
systemctl\s+stop\s+firewalld
systemctl\s+disable\s+firewalld
vi\s+/etc/ssh/sshd_config
sed\s+.*Port\s+\d+\s+/etc/ssh/sshd_config
echo\s+.*Port\s+\d+\s+>>\s+/etc/ssh/sshd_config
systemctl\s+restart\s+sshd
systemctl\s+stop\s+sshd
systemctl\s+disable\s+sshd
\breboot\b
\bshutdown\b
\bpoweroff\b
\bhalt\b
init\s+0
telinit\s+0
cat\s+/etc/shadow
cat\s+/etc/passwd
cat\s+/etc/sudoers
cat\s+/etc/ssh/sshd_config
cat\s+.*\.pem
cat\s+.*\.key
cat\s+.*\.pfx
cat\s+.*\.p12
\bscp\b
\brsync\b
nc\s+-l\s+-p\s+\d+
curl\s+.*\|\s*bash
curl\s+.*\|\s*sh
passwd\s+root
usermod\s+-aG\s+root
>\s*/etc/\w+
所有评论(0)