Linux系统安全及应用

 

1 系统账号清理

     (1)将非登录用户的shell设为/sbin/nologin

           方法一:usermod    -s

           方法二:chsh命令,交互式修改

           方法三:chsh  -s

           除了前三种还可以用vim编辑/etc/passwd文件进行修改

    示例:

 

   (2) 长期不使用的账号锁定,查看及解锁

  方法一:  passwd    -l        查看:   passwd  -S

  方法二:  usermod   -L         解锁:usermod  -U 和passwd  -u

除了上述方法外还可以vim编辑/etc/shadow文件进行修改

示例:

          

        

 

      (3) 加i锁和解i锁及查看(锁定后即使超级用户也不能修改该文件,既不能创建,删除,修改用户信息)

            锁定账号文件 /etc/passwd,/etc/shadow

                1>锁定 :chattr +i /etc/passwd /etc/shadow(普通用户只能读)

                2>解锁: chattr -i /etc/passwd /etc/shadow

                3>查看:  lsattr /etc/passwd /etc/shadow

        a锁和上述一样 ,只是不能修改内容只能追加内容,也就是vim保存不了,只能echo输入

 

 

2 密码安全控制

     (1)设置密码有效期

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

                chage   -M  天数   用户名

                passwd  -x  天数   用户名

   示列

 

 (3)设置以后添加用户时的默认密码的有效期

          vim编辑/etc/login.defs

          修改PASS_MAX_DAY后面的值

  (4) 要求用户下次登录是修改密码

          1>方法:chage -d 0  用户名

  (5)命令历史限制

         1.减少历史的命令条数

              1>方法一:vim编辑/etc/profie文件,修改“HISTSIZE=”后面的数值 。    (修改完后输入命令soure /etc/profie使/etc/profie配置文件生效,此时是全局生效)

              2>方法二:export HISTSIZE=数值  (当前用户环境下生效)

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

            1>方法:vim编辑宿主目录下的“.bash_logout”文件,添加“history -c”

  (7)终端自动注销

             1> 方法一: vim编辑/etc/profile文件,添加“TMOUT=数值”

             2>方法二:export TMOUT=数值

   (8)更改端口号

            在/etc/ssh/目录下

             # vim sshd_config

              在port 22处更改端口号(工作中一般将端口号设置为一万以上)

3 切换用户  su 命令

       1.作用:切换用户

       2.格式    su  -(有‘-’初始化环境变量,无“-”环境变量不改变)

        su 安全日志文件:/var/log/secure

  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.184.130=       ALL 

 单独授权某个命令

在第三个ALL上操作(绝对路径)

  visudo

在“root     ALL=(ALL)      ALL”行下,输入

 benet        192.168.184.130=       /sbin/fdisk

 此时,只有sudo fdisk这个命令可以使用(因为只有fdisk被授权)

 授权多个命令

在第三个ALL上操作(绝对路径),用逗号“,”分隔。

    visudo 

在“root     ALL=(ALL)      ALL”行下,输入

 benet        192.168.184.130=       /sbin/fdisk,/bin/ls

 批量授权(存在优先级,先输入允许操作的命令(绝对路径),在输入不允许操作的命令(绝对路径))

对benet用户授权/sbin/下所有目录,除了/sbin/reboot命令 

 visudo 

在“root     ALL=(ALL)      ALL”行下,输入

 benet        192.168.184.130=(ALL)       /sbin/*,! /sbin/reboot

批量授权,排除多个命令权限,用“,! ”分隔

若为! /sbin/fdisk /dev/sda 表示不允许/sbin/fdisk执行/dev/sda*

 让一个普通用户自己分区,但禁止该用户采取任何破坏系统的操作(将A盘进行分区会破坏系统)

visudo 

在“root     ALL=(ALL)      ALL”行下,输入

 benet        192.168.184.130=(ALL)       /sbin/*,! /sbin/reboot,! /sbin/fdisk /dev/sda*

 不允许/sbin/fdisk 执行/dev/sda*,但由于授予/sbin/所有前线,则可以对其他盘进行分区

 对普通用户授权:只看日志 

 visudo 

在“root     ALL=(ALL)      ALL”行下,输入

 benet        192.168.184.130=(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

posted @ 2018-10-26 12:34  抱紧再见  阅读(343)  评论(0编辑  收藏  举报