标签:系统账号清理 密码安全控制 命令历史、自助取消 su、sudo应用 开关机安全控制
前言:虽然说linux系统安全,高效,稳定,但如果平时不注意安全优化,也不会安全。本章将介绍账户安全,系统引导和登录的安全,以及弱口令检测,网络扫描工具的使用。一、账号安全控制
1、系统账号清理
1)以下常见的非登录用户要确保不被人为改动:
[root@localhost ~]# grep "/sbin/nologin$" /etc/passwd bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin mail:x:8:12:mail:/var/spool/mail:/sbin/nologin uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin 2)各种非登录账户中,还有一部分是很少用到的,如news,uucp,games,gopher,这些用户可视为冗余账号,直接删除即可 [root@localhost ~]# useradd uucp [root@localhost ~]# useradd games 2)若不确定能否被删除,可以暂时锁定 [root@localhost ~]# usermod -L zhangsan //锁定账号 [root@localhost ~]# passwd -S zhangsan //查看账号状态 zhangsan LK 2018-02-28 0 99999 7 -1 (密码已被锁定。) [root@localhost ~]# usermod -U zhangsan //解锁状态 [root@localhost ~]# passwd -S zhangsan zhangsan LK 2018-02-28 0 99999 7 -1 (密码已被锁定。) 2)如果服务器中的账户已经固定,不再进行更改,还可以采用锁定账号配置文件的方法。 使用chattr命令,分别结合+i,-i来锁定、解锁。使用lsattr查看文件锁定情况。 [root@localhost ~]# chattr +i /etc/passwd /etc/shadow //锁定文件 [root@localhost ~]# lsattr /etc/passwd /etc/shadow //查看锁定的状态 ----i--------e- /etc/passwd ----i--------e- /etc/shadow [root@localhost ~]# useradd user1 //测试锁定文件是否能创建用户 useradd: cannot open /etc/passwd [root@localhost ~]# chattr -i /etc/passwd /etc/shadow //解锁文件 [root@localhost ~]# useradd user1 //创建用户 [root@localhost ~]# lsattr /etc/passwd /etc/shadow //查看为解锁的状态 -------------e- /etc/passwd -------------e- /etc/shadow
2、密码安全控制
1)设置密码有效期为30天
修改配置文件,适合新建立的用户
[root@localhost ~]# vim /etc/login.defs //适用于新建的用户 # PASS_MAX_DAYS 30 PASS_MIN_DAYS 0 PASS_MIN_LEN 5 PASS_WARN_AGE 7
[root@localhost ~]# chage -M 30 zhangsan //适用于已有的zhangsan用户 1)设置用户下次登录时重设密码 [root@localhost ~]# chage -d 0 zhangsan //强制要求用户zhangsan下次登陆时重设密码 然后使用张三登录终端 先输入原密码,然后再输入两次新密码,注意复杂性。 3、命令历史,自动注销 1)修改配置文件,设置最多纪录200条历史命令,如果纪录太多,容易泄露信息。 Vi /etc/profile,适用于新登录的用户 [root@localhost ~]# vim /etc/profile HISTSIZE=200 //修改最多记录200条 重启系统或者执行source /etc/profile使之生效。 执行export HISTSIZE=10适用于当前的账户 [zhangsan@localhost ~]$ export HISTSIZE=10 [zhangsan@localhost ~]$ history 1 sudo 2 sudo zhangsan 3 cd 4 export histsize 10 5 export HISTSIZE 10 6 exit 7 sudo ~ zhangsan 8 export HISTSIZE=10 9 history 2)当用户退出已登录的bash环境后,清空历史纪录 [zhangsan@localhost ~]$ vim ~/.bash_logout # ~/.bash_logout history -c clear 然后重启之后重新登录系统,执行history发现没有历史纪录 1)设置超时时间,指定时间没有任何输入就自动注销。 Vi /etc/profile, 适用于新登录的用户。 export TMOUT=600 //需要添加 执行export TMOUT=10用于当前用户(为了测试方便,时间调10秒),10秒之内没有任何输入就退出系统。也可以使用unset TMOUT取消设置 二、用户切换与提权 1、su命令:用来切换用户,具有该用户的所有权限。 1)su切换用户 [root@localhost ~]# su zhangsan [zhangsan@localhost root]$ 上图的命令只切换用户身份,不切换用户环境,如果想切换身份的同时切换环境,需要在su后面加“-”,如下图: [root@localhost ~]# su - zhangsan [zhangsan@localhost ~]$ pwd /home/zhangsan 2)允许个别用户使用su命令进行切换,需要将授权使用su命令的用户zhangsan添加到wheel组,修改/etc/pam.d/su认证配置 [root@localhost ~]# vim /etc/pam.d/su #%PAM-1.0 auth sufficient pam_rootok.so # Uncomment the following line to implicitly trust users in the "wheel" group. #auth sufficient pam_wheel.so trust use_uid # Uncomment the following line to require a user to be in the "wheel" group. auth required pam_wheel.so use_uid //把前面的#去掉 auth include system-auth account sufficient pam_succeed_if.so uid = 0 use_uid quiet account include system-auth password include system-auth session include system-auth session optional pam_xauth.so 重启系统之后使用zhangsan登录,执行su - root 可以正常切换,但是使用其他用户提示密码不正确,登录失败。 [zhangsan@localhost ~]$ su - root 密码: [root@localhost ~]# su - user1 [user1@localhost ~]$ su - root 密码: su: 密码不正确 2、sudo命令,提升执行权限,可以让普通用户拥有一部分管理权限,又不需要将root用户的密码告诉对方。 1)在配置文件/etc/sudoers中添加授权 例如:授权用户jerry能够执行ifconfig命令修改ip地址,而wheel组的用户不需要验证密码即可执行任何命令,可以执行以下操作。 执行命令:Visudo user1 localhost=/sbin/ifconfig %whell ALL=NOPASSWD: ALL 当使用相同授权的用户较多,或者授权的命令较多时,可以采用集中定义的别名。用户、主机、命令部分都可以定义为别名(必须为大写) ,分别通过User_Alias、Host_Alias、Cmnd_Alias来进行设置如: user1 localhost=/sbin/ifconfig %whell ALL=NOPASSWD: ALL User_Alias OPERATORS=user1,lisi Host_Alias MAILSVERS=smtp,pop Cmnd_Alias PKGTOOLS=/bin/rpm,/usr/bin/yum OPERATORS MAILSVRS=PKGTOOLS 1)通过sudo命令测试特权命令 使用user1登录系统,执行/sbin/ifconfig eth0:0 192.168.1.10,提示失败,权限不够。 [useer1@localhost ~]$ /sbin/ifconfig eth0:0 192.168.1.10 SIOCSIFADDR: 权限不够 SIOCSIFFLAGS: 权限不够 如果在命令前面加上sudo,执行成功 [user1@localhost ~]$ sudo /sbin/ifconfig eth0:0 192.168.1.10 [user1@localhost ~]$ 三、系统引导和登录控制 1、开关机安全控制 1)调整biso引导控制 将第一引导设备设置为当前系统所在磁盘,禁止从光盘,u盘,网络等引导系统,将bios设置好管理密码。 2)禁止ctrl+alt+del重启系统系统 [root1@localhost ~]$ vim /etc/init/control-alt-delete.conf #start on control-alt-delete #exec /sbin/shutdown -r now "Control-Alt-Delete pressed" 重启系统之后,按ctrl+alt+del无法重启系统(在终端中测试) 1)限制更改grub引导参数 首先使用grub-md5-mcypt生成加密的密码 [root@localhost ~]# grub-md5-crypt //根据提示指定密码 Password: Retype password: $1$KhOqk/$J2NoMloU58XvJ10jo/TBe1 //经过加密的密码字符窜 然后修改配置文件,把密文添加到第一个title之前,如下: [root@localhost ~]# vim /boot/grub/grub.conf password --md5 $1$KhOqk/$J2NoMloU58XvJ10jo/TBe1 //添加到第一个title之前 title CentOS (2.6.32-431.el6.x86_64) 重启系统进入grub菜单,如果想修改引导参数,必须先按p输入密码,然后按e才能编辑引导参数 然后按e就可以编辑了 2、终端及登录控制 1)减少开放的tty终端个数,禁用tty1,tty2,tty3 [root@localhost ~]# vim /etc/init/start-ttys.conf env ACTIVE_CONSOLES=/dev/tty[456] //修改为456 env X_TTY=/dev/tty1 [root@localhost ~]# vim /etc/sysconfig/init AUTOSWAP=no # What ttys should gettys be started on? ACTIVE_CONSOLES=/dev/tty[456] //修改为456 # Set to '/sbin/sulogin' to prompt for password on single-user mode # Set to '/sbin/sushell' otherwise SINGLE=/sbin/sushell 注意两个文件都需要更改 2)禁止root用户从tty5和tty6终端登录 [root@localhost ~]# vim /etc/securetty ..... //省略部分内容 #tty5 #tty6 3)禁止普通用户登录,只需要建立/etc/nologin文件即可,如果恢复普通用户登录,删除这个文件即可 Touch /etc/nologin 然后使用普通用户登录测试
标签:系统账号清理 密码安全控制 命令历史、自助取消 su、sudo应用 开关机安全控制
原文地址:http://blog.51cto.com/13557682/2079478