基于生产权限控制方案
方案目的
通过禁止root账户远程登录(ssh)来避免root账户被破解的危险
通过新建专用账号来启动相关服务以达到降权启动的目的
通过对专用账号的权限控制达到减小危害的目的
两种方案备选
方案1:
禁止root账户远程登录,新建专用账户做远程登录,登录后使用su命令切换至root账号后做相关操作
优点:
简单,快速,不需要对现有操作方式做过多更改
缺点:
还是使用的root账号,权限过大
方案2:
禁止root账户远程登录,新建专用账户,通过sudo命令控制其命令权限,以该用户来启动相关服务
优点:
避免了root账户的使用,控制了专用账户的操作权限,非root账号启动服务,避免了提权危害
缺点:
需要更改现有的操作方式,权限控制存在一定的不方便性
每种服务需不同的用户名,要注意UID的统一
方法2的具体实现[以java程序为例]
步骤1:新建专用账户
useradd totodi
password totodi步骤2:用visudo配置权限
Cmnd_Alias TOTODI_CMD=/usr/bin/free,/usr/bin/iostat,/usr/bin/top,/bin/hostname,/sbin/ifconfig,\
/bin/netstat,/sbin/route,/sbin/iptables,/etc/init.d/network,/bin/nice,/bin/kill,\
/usr/bin/kill,/usr/bin/killall,/bin/rpm,/usr/bin/up2date,/usr/bin/yum,\
/sbin/fdisk,/sbin/sfdisk,/sbin/parted,/sbin/partprobe,/bin/mount,/bin/umount,\
/sbin/service,/sbin/chkconfig,/bin/cat,/bin/ls,\
!/usr/bin/passwd root,/usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd root,\
!/bin/rm,!/bin/su
totodi ALL=(root) NOPASSWD:TOTODI_CMD
步骤3:切换用户并启动服务
以ttd-fund-message:10086程序为例
#切换用户
su - totodi
#修改日志文件夹权限
chown -R totodi.totodi /data/logs/ttd-fund-message-service/
#启动服务
java -server -jar -Xms256m -Xmx256m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m -Dinstance.flag=server1 /data/server/ttd-message-service/lib/message-service.jar --server.port=10086
步骤4:禁用root使用ssh
略
步骤5:历史记录修改
https://www.cnblogs.com/morgana/p/8846965.html
通过对所有用户历史记录的配置,达到将历史记录输出到指定目录,增减时间选项,多终端共享history文件
创建目录并配置权限:
mkdir /var/history
#配置目录权限,使得用户有权限创建自己的history文件
chmod 777 /var/history
chmod a+t /var/history写入/etc/profile
if [ $UID -ge 500 ];then
readonly HISTFILE=/var/history/$USER-$UID.log
readonly HISTFILESIZE=50000
readonly HISTSIZE=10000
readonly HISTTIMEFORMAT='%F %T '
readonly HISTCONTROL=ignoredups
shopt -s histappend
readonly PROMPT_COMMAND="history -a"
fi文档更新时间: 2023-08-09 06:54 作者:月影鹏鹏