linux系统 ----------------------------------第十一节 linux的系统安全及应用

                                                                                                                    Linux系统安全及应用

一 系统账号的清理

(1)     将非登陆用户的shell设为 /sbin/nologin有三种方法

方法一;usermod -s

方法二;chsh命令 交互式修改

方法三;chsh -s

Useradd +用户 创建用户 usermod +用户 修改用户属性

Userdel +用户 删除用户

二 锁定长期不使用的账号

方法一 passwd -l (锁定用户的密码) passwd -u (解锁用户的密码)passwd -S (查看用户状态)

方法二 usermod -L (锁定用户的密码)usermod -U (解锁用户的密码)

若用passwd -l 锁定用户密码,用命令 usermod -U 解锁用户密码必须输入两次(usermod-U)命令解锁

三 锁定用户的文件 /etc/passwd /etc/shadow

加I锁    命令 chattr +i /etc/passwd /etc/shadow

解i锁    命令 chattr -i /etc/passwd /etc/shadow

查看状态 命令 lsattr  /etc/passwd /etc/shadow

I锁锁定用户以后普通用户和超级用户只能读不能写

 加a锁与解a锁与上面i锁类似只不过是加上a锁以后只能追加内容,不能修改内容。

三 修改某个已存在用户的密码有效期

方法一 chage -M 天数 用户名

方法二 passwd -x 天数 用户名

四 设置今后添加用户时的默认密码的有效期

Vim编辑 /etc/login.defs

修改 PASS_MAX_DAY后边的值

五  要求用户下次登陆时修改密码

命令 chage -d 0 用户名

六 命令历史限制

(1)   减少历史的命令条数

方法一 1 vi编辑/etc/profile文件,修改HISTSIZE后面的数值。

2修改完之后输入命令source /etc/profile 使/etc/profile配置文件生效,

此时全局生效

方法二 export HISTSIZE的数值。仅当前用户环境下生效

/etc/profile 全局系统变量都放在这个文件之下

Export (全局生效)

(1)     注销时自动清空历史命令

方法 ;vi编辑宿主下目录下的.bash_logout文件添加history -c

 七 终端自动注销

  方法一 vi编辑/etc/profile文件 添加 TMOUT=数值

         Source /etc/profile 是配置文件/etc/profile生效 此时全局生效

  方法二 export TMOUT=数值   仅当前用户下生效

八 更改端口号

Vi 编译/etc/ssh/sshd_config 修改port的数值

二                                        su命令

作用:切换用户
su 目标用户 切换账号,之前的进程并没消失;环境变量不改变
(exit也可用Ctrl+d操作,退出用户)
su - 目标用户 以普通用户的初始环境切换成普通用户,环境变量会重置成普通用户环境变量
su -c 临时切换到某一个用户,执行一个命令,执行完,自动返回当前用户;切换到一个shell,执行一个命令,然后退出所切换的用户环境
su -m 切换用户时,不重置用户环境
su -s 若/etc/shell允许,则运行指定的shell
su命令常用在/etc/rc.local
# vim  /etc/rc.local
su  - 用户 -c 命令  实现以普通用户实现进程,安全操作,表示仅限在xx用户下启动的服务命令脚本
查看su操作记录
安全日志文件:/var/log/secure
# tar /var/log/secure|less
sudo命令
su命令的缺点:在使用su命令时,不指定用户名默认切换至root用户,需要经常输root用户密码,但实际生产中root密码是不可以被广泛告知的。如果需要执行root用户才有权限的命令,需要通过sudo命令或wheel组的设置来实现
sudo的配置文件 /etc/sudoers
sudo命令
-l 列出用户在主机上可用的和被禁止的命令:当配置好sudo权限规则后,可用这个参数来查看授权情况
-v 验证用户的时间戳,当用户运行sudo,输入用户的密码后,在短时间内可以不用输入口令直接进行sudo操作;用-v可以跟踪最新的时间戳
-u指定以某个用户身份执行特定的命令操作,chensiqi ALL=(ALL) /bin/cp
-k同-K,删除时间戳,下一个sudo命令要求提供密码,前提是该用户授权中不能有NOPASSWD参数。时间戳默认5分钟也会失效。
配置sudo授权(激活sudo)
方法一:# visudo 或# vim /etc/sudoers 修改,只有root用户才能使用
在root这一行下面,按照root的格式,对benet进行授权
visudo授权配置中,ALL的表示:
第一个ALL:IP地址 
第二个ALL:主机别名
第三个ALL:限制的命令
visudo  -c    检查sudo配置文件是否有错误
sudo 授权命令
默认设置为首次执行时,需输入当前用户的登陆密码,5分钟内再次执行sudo命令式则无需再输入密码。
设置IP地址权限

 # visudo
在“root     ALL=(ALL)      ALL”行下,输入
 benet        192.168.232.136=       ALL 
单独授权某个命令
在第三个ALL上操作(绝对路径)
 # visudo
在“root     ALL=(ALL)      ALL”行下,输入
 benet        192.168.232.136=       /sbin/fdisk
 此时,只有sudo fdisk这个命令可以使用(因为只有fdisk被授权)
授权多个命令
在第三个ALL上操作(绝对路径),用逗号“,”分隔。
# visudo 
在“root     ALL=(ALL)      ALL”行下,输入
 benet        192.168.232.136=       /sbin/fdisk,/bin/ls

 

批量授权(存在优先级,先输入允许操作的命令(绝对路径),在输入不允许操作的命令(绝对路径))
对benet用户授权/sbin/下所有目录,除了/sbin/reboot命令 
 # visudo 
在“root     ALL=(ALL)      ALL”行下,输入
 benet        192.168.232.136=(ALL)       /sbin/*,! /sbin/reboot
批量授权,排除多个命令权限,用“,! ”分隔
若为! /sbin/fdisk /dev/sda 表示不允许/sbin/fdisk执行/dev/sda*
让一个普通用户自己分区,但禁止该用户采取任何破坏系统的操作(将A盘进行分区会破坏系统)
# visudo 
在“root     ALL=(ALL)      ALL”行下,输入
 benet        192.168.232.136=(ALL)       /sbin/*,! /sbin/reboot,! /sbin/fdisk /dev/sda*
 不允许/sbin/fdisk 执行/dev/sda*,但由于授予/sbin/所有前线,则可以对其他盘进行分区
对普通用户授权:只看日志 
# visudo 
在“root     ALL=(ALL)      ALL”行下,输入
 benet        192.168.232.136=(ALL)       /bin/cat /var/log/messages*
!!!但是“看”的命令不仅仅是cat,还有more、less、head、tail、tac、sed、awk等,需要将它们全部授权(绝对路径)。

查看sudo操作记录
先# visudo 添加“Defaults logfile=/var/log/sudo”,再# cat /var/log/sudo

 

 

猜你喜欢

转载自www.cnblogs.com/yunweizongjian/p/9855632.html