Linux安全之禁用特定命令

背景

在生产实际中,常常会因为某些安全要求,需要对linux系统限制用户执行权限过大的命令或较敏感的,因此,如何限制系统的某些功能,限制linux系统下用户可执行的命令,将是一件安全日常不断需要深入研究的事,本文主要从几个方面,整理相关限制命令执行的方法,以供日常安全运维参考;

操作(未完待续)

1、禁用普通用户su到root

1)禁止非WHEEL用户使用SU命令
编辑su配置文件:vi /etc/pam.d/su,开启:
auth required /lib/security/$ISA/pam_wheel.so use_uid //即要求wheel组的用户才可执行su,只有usermod -G wheel 用户,才可su;
修改/etc/login.defs文件: echo “SU_WHEEL_ONLY yes” >> /etc/login.defs //普通用户登录,shell限制

修改默认的su的wheel组:vi /etc/pam.d/su文件
auth sufficient /lib/security/pam_rootok.so debug
auth required /lib/security/pam_wheel.so group=wheel //将wheel替换为其他组

2、禁用普通用户执行某些命令

3、禁用root执行某些命令和授权sudo

1)禁止授权普通用户sudo:
chmod u+w /etc/sudoers
2)vi /etc/sudoers 或visudo,编辑sudoers文件,找到以下行:
xxx ALL = (ALL) ALL ## 将xxx替换为允许sudo的普通用户名,后面,ALL,限制sudo执行的命令;

还可以为每个用户建立特定sudo策略文件,在/etc/sudoers.d/目录下建立与用户同名的策略文件:
visudo -f /etc/sudoers.d/blue,写入:
blue ALL=/usr/bin/, !/usr/bin/passwd, /bin/, !/bin/kill ##不可杀进程和修改密码

3)限制root执行某些命令

4)禁用内部命令
root下执行help可查看内部命令,然后执行:enable -n 要禁止的命令,可以禁止;如果再启用,只需执行enable 要启用的命令;

5)禁用history

history命令配置时间戳:# export HISTTIMEFORMAT=’%F %T ’
查看:# export HISTTIMEFORMAT=’%F %T ’ # history | more
控制历史命令记录的总行数:vi ~/.bash_profile,修改:HISTSIZE=450 HISTFILESIZE=450
强制 history 不记住特定的命令:# export HISTCONTROL=ignorespace //在不想被记住的命令前面输入一个空格
禁用 history: # export HISTSIZE=0

4、禁用ssh登录执行某些命令

5、禁用scp和sftp

6、禁止执行rm -rf /*

利用工具afe-rm,安装后替换系统命令rm;
在这里插入图片描述

下载地址:https://launchpad.net/safe-rm/+download;
下载:wget https://launchpad.net/safe-rm/trunk/1.1.0/+download/safe-rm-1.1.0.tar.gz

tar -zxvf safe-rm-1.1.0.tar.gz   # 将safe-rm命令复制到系统的/usr/local/bin目录
cp safe-rm-1.1.0/safe-rm /usr/local/bin/
ln -s /usr/local/bin/safe-rm /usr/local/bin/rm   # 创建软链接,用safe-rm替换rm,如果有问题,请检查环境变量PATH,是否包含/usr/local/bin路径

设置过滤目录:
编辑:vi /etc/safe-rm.conf 文件,添加需要过滤的目录即可,一行一个,而且应满足递归原则;格式:
/ 代表过滤 目录/
./* 代表过滤 目录/ 下面的所有文件

递归过滤示例(这样/root/blue/students各级目录都会受到保护):

/
/root
/root/blue
/root/blue/students

示例2:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/ximenjianxue/article/details/112464614