Linux基本防护措施

1.Linux基本防护措施
问题
本案例要求练习Linux系统的基本防护措施,完成以下任务:
1)禁止普通用户使用reboot、halt、poweroff程序
2)修改用户zhangsan的账号属性,设置为2015-12-31日失效(禁止登录)
3)锁定用户lisi的账户,使其无法登录,验证效果后解除锁定
4)锁定文件/etc/resolv.conf、/etc/hosts,以防止其内容被无意中修改
5)修改tty终端提示,使得登录前看到的第一行文本为“Windows Server 2012 Enterprise R2”,第二行文本为“NT 6.2 Hybrid”
步骤
实现此案例需要按照如下步骤进行。
步骤一:禁止普通用户使用reboot、halt、poweroff程序
1)测试默认的控制台程序权限
Linux系统的ConsoleHelper机制允许普通用户执行一部分特权程序,以方便用户使用Linux主机。比方说,普通用户(如zengye)登录后,可以执行reboot来重启Linux系统,也可以执行poweroff来关闭系统。
默认情况下,这些控制台程序的配置放在/etc/security/console.apps/目录下:
[root@svr5 ~]# ls /etc/security/console.apps/
authconfig halt subscription-manager system-config-keyboard
authconfig-gtk poweroff subscription-manager-gui system-config-network
authconfig-tui reboot system-config-authentication system-config-network-cmd
config-util rhn_register system-config-date system-config-users
eject setup system-config-kdump xserver
2)禁止个别高风险的控制台程序
只要从/etc/security/console.apps/目录下移除reboot、halt、power命令配置,普通用户就会失去对这些程序的执行权限。
使用tar命令将这些文件归档备份,结合–remove选项可以在完成打包后将被归档的文件删除:
[root@svr5 ~]# cd /etc/security/console.apps/
[root@svr5 console.apps]# tar zcpvf pw-app.tgz reboot halt poweroff --remove
reboot
halt
poweroff
确认移除结果:
[root@svr5 console.apps]# ls reboot halt poweroff
ls: 无法访问reboot: 没有那个文件或目录
ls: 无法访问halt: 没有那个文件或目录
ls: 无法访问poweroff: 没有那个文件或目录
3)测试调整结果
再次以普通用户执行reboot等程序时,将不起作用:
[zengye@localhost ~]$ which reboot
/usr/bin/reboot
[zengye@localhost ~]$ reboot
[zengye@localhost ~]$
步骤二:修改用户zhangsan的账户属性,设置为2015-12-31日失效(禁止登录)
1)未过期的用户账号可以正常登录
以用户zhangsan登录测试。
2)失效的用户将无法登录
使用chage命令将用户zhangsan的账户设为当前已失效(比如前一天):
[root@svr5 ~]# date
2015年 05月 16日 星期六 14:16:25 CST
[root@svr5 ~]# chage -E 2015-05-15 zhangsan //设为当日的前一天
尝试以用户zhangsan重新登录,输入正确的用户名、密码后直接闪退,返回登录页,说明此帐号已失效。
3)重设用户zhangsan的属性,将失效时间设为2015-12-31
[root@svr5 ~]# chage -E 2015-12-31 zhangsan //修改失效日期
[root@svr5 ~]# chage -l zhangsan //查看账户年龄信息
Last password change : May 15, 2015
Password expires : never
Password inactive : never
Account expires : Dec 31, 2015
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7
步骤三:锁定用户lisi的账户,使其无法登录,验证效果后解除锁定
1)未锁定的用户账号可以正常登录
以用户lisi登录测试。
2)锁定用户账号
使用passwd或usermod命令将用户lisi的账户锁定。
[root@svr5 ~]# passwd -l lisi //锁定用户账号
锁定用户 lisi 的密码 。
passwd: 操作成功

[root@svr5 ~]# passwd -S lisi //查看状态
lisi LK 2013-08-14 0 99999 7 -1 (密码已被锁定。)
3)验证用户lisi已无法登录,说明锁定生效
输入正确的用户名、密码,始终提示“Login incorrect”,无法登录。
4)解除对用户lisi的锁定
[root@svr5 ~]# passwd -u lisi //解锁用户账号
解锁用户 lisi 的密码 。
passwd: 操作成功

[root@svr5 ~]# passwd -S lisi //查看状态
lisi PS 2013-08-14 0 99999 7 -1 (密码已设置,使用 SHA512 加密。)
步骤四:锁定文件/etc/resolv.conf、/etc/hosts
1)使用chattr锁定文件,lsattr确认结果
[root@svr5 ~]# chattr +i /etc/resolv.conf /etc/hosts
[root@svr5 ~]# lsattr /etc/resolv.conf /etc/hosts
----i--------e- /etc/resolv.conf
----i--------e- /etc/hosts
2)测试文件锁定效果
[root@svr5 ~]# rm -rf /etc/resolv.conf
rm: 无法删除"/etc/resolv.conf": 不允许的操作
[root@svr5 ~]# echo “192.168.4.1 gateway.tarena.com” >> /etc/hosts
bash: /etc/hosts: 权限不够
3)恢复这两个文件原有的属性(避免对后续实验造成影响)
[root@svr5 ~]# chattr -i /etc/resolv.conf /etc/hosts
[root@svr5 ~]# lsattr /etc/resolv.conf /etc/hosts
-------------e- /etc/resolv.conf
-------------e- /etc/hosts
注意:使用passwd锁定用户账号时,会在/etc/shadow文件中的密码字段上增加两个感叹号,而usermod锁定只增加一个叹号。因此,对于使用passwd锁定的账号,如果用usermod去解锁的话,得解除两次。
步骤五:修改tty登录的提示信息,隐藏系统版本
1)备份原有的/etc/issue配置文件,然后按照要求改写内容
[root@svr5 ~]# cat /etc/issue //确认原始文件
Red Hat Enterprise Linux Server release 6.5 (Santiago)
Kernel \r on an \m

[root@svr5 ~]# cp /etc/issue /etc/issue.origin //备份文件

[root@svr5 ~]# vim /etc/issue //修改文件内容
Windows Server 2012 Enterprise R2
NT 6.2 Hybrid
2)测试版本伪装效果
退出已登录的tty终端,或者重启Linux系统,刷新后的终端提示信息会变成自定义的文本内容,如图-1所示。
Linux基本防护措施
图-1

上一篇:linux重启的神奇数字的目的是什么?


下一篇:linux – 在哪里可以找到“rebo​​ot”命令的源代码?