第八章 系统安全及应用
前言:虽然说linux系统安全,高效,稳定,但如果平时不注意安全优化,也不会安全。本章将介绍账户安全,系统引导和登录的安全,以及弱口令检测,网络扫描工具的使用+综合实战!
一、账号安全控制
1、系统账号清理
1)以下常见的非登录用户要确保不被人为改动:
2) 各种非登录账户中,还有一部分是很少用到的,如news,uucp,games,gopher,这些用户可视为冗余账号,直接删除即可
3) 若不确定能否被删除,可以暂时锁定
4) 如果服务器中的账户已经固定,不再进行更改,还可以采用锁定账号配置文件的方法。
使用chattr命令,分别结合+i,-i来锁定、解锁。使用lsattr查看文件锁定情况。
2、 密码安全控制
1) 设置密码有效期为30天
修改配置文件,适合新建立的用户,vi /etc/login.defs
使用命令:Chage -M 30 zhangsan,适用于已有的张三用户
2) 设置用户下次登录时重设密码
然后使用张三登录终端
先输入原密码,然后再输入两次新密码,注意复杂性。
3、 命令历史,自动注销
1) 修改配置文件,设置最多纪录200条历史命令,如果纪录太多,容易泄露信息。
Vi /etc/profile,适用于新登录的用户
重启系统或者执行source /etc/profile使之生效。
执行export HISTSIZE=10适用于当前的账户
2) 当用户退出已登录的bash环境后,清空历史纪录
vi ~/.bash_history
删除一些不想让别人看到的命令,保存并退出
执行history -c:清空本次留在缓存中的历史命令
history -w :强制刷新缓存中的命令记录到.bash_history 文件中
然后重启之后重新登录系统,执行history发现没有历史纪录
3) 设置超时时间,指定时间没有任何输入就自动注销。
Vi /etc/profile,适用于新登录的用户。
执行export TMOUT=10用于当前用户(为了测试方便,时间调10秒),10秒之内没有任何输入就退出系统。也可以使用unset TMOUT取消设置
二、 用户切换与提权
1、 su命令:用来切换用户,具有该用户的所有权限。
1)su切换用户
上图的命令只切换用户身份,不切换用户环境,如果想切换身份的同时切换环境,需要在su后面加“-”,如下图:
2) 允许个别用户使用su命令进行切换,需要将授权使用su命令的用户zhangsan添加到wheel组,
修改/etc/pam.d/su认证配置
Vi /etc/pam.d/su,去掉下图中圈中的auth前面的#号。
重启系统之后使用zhangsan登录,执行su - root 可以正常切换,但是使用其他用户提示密码不正确,登录失败。
2、 sudo命令,提升执行权限,可以让普通用户拥有一部分管理权限,又不需要将root用户的密码告诉对方。
1) 在配置文件/etc/sudoers中添加授权
例如:授权用户lisi能够执行ifconfig命令修改ip地址,而wheel组的用户不需要验证密码即可执行任何命令,可以执行以下操作。
执行命令:Visudo
2) 通过sudo命令测试特权命令
使用lisi登录系统,执行/sbin/ifconfig eth0:0 192.168.1.1,提示失败,权限不够。
如果在命令前面加上sudo,执行成功
三、 系统引导和登录控制
1、 开关机安全控制
1) 调整biso引导控制
将第一引导设备设置为当前系统所在磁盘
禁止从光盘,u盘,网络等引导系统(Disabled)
将bios设置好管理密码。
2) 禁止ctrl+alt+del重启系统系统
Vi /etc/init/control-alt-delete.conf
重启系统之后,按ctrl+alt+del无法重启系统(在终端中测试)
3) 限制更改grub引导参数
首先使用grub-md5-mcypt生成加密的密码
然后修改配置文件,把密文添加到第一个title之前,如下图:
重启系统进入grub菜单,如果想修改引导参数,必须先按p输入密码,然后按e才能编辑引导参数
2、 终端及登录控制
1) 减少开放的tty终端个数,禁用tty1,tty2,tty3
Vi /etc/init/start-ttys.conf
Vi /etc/sysconfig/init
注意两个文件都需要更改
2)禁止root用户从tty5和tty6终端登录
Vi /etc/securetty
3)禁止普通用户登录,只需要建立/etc/nologin文件即可,如果恢复普通用户登录,删除这个文件即可
Touch /etc/nologin
然后使用普通用户登录测试
四、 弱口令检测和端口扫描
1、 弱口令探测(john the ripper)
1)下载并安装
查看是否安装成功
2) 检测弱口令
查看密码破解出的账户列表:
3) 使用密码字典文件破解,默认的字典文件为password.lst
首先清空破解出的账户列表
然后为xiaoming用户设置强密码Pwd@123
把密码写在字典文件中:vi password.lst,也可以使用密码字典生成工具生成密码,然后再导入到password.lst文件中。
执行破解(破解之前需要重新拷贝shadow文件
2、网络扫描(NMAP)
1)安装NAMP软件包
2) 针对本机进行扫描,检查开放了哪些常用的tcp端口,udp端口
Filtered表示可能被防火墙过滤
3) 检查哪些主机提供了ftp服务
4) 检测192.168.0.0网段中有哪些存活主机(能ping通)
5) 检测192.168.0.1-254主机是否开启文件共享服务
综合实战演练:
实验环境:
某公司新增了一台企业级服务器,已安装运行RHEL 6操作系统,由系统运维部、软件开发部、技术服务部共同使用。由于用户数量众多,且使用时间不固定,要求针对账号和登录过程采取基本的安全措施。
需求描述:
1、允许radmin使用su命令进行切换,其他用户一律禁止切换身份
2、授权zhangsan管理员工的账号,但禁止其修改root用户的信息
3、授权lisi能够执行/sbin/,/usr/sbin目录下的所有特权命令,不需要密码验证
4、所有的su、sudo操作,必须在系统日志文件中进行记录
5、禁止使用ctrl+alt+del快捷键,只开放tty3,tty5终端,为grub引导菜单设置密码
A、设置使用su命令
(1)修改认证文件/etc/pam.d/su,启用pam_wheel.so认证模块。
(2)将radmin用户加入到wheel组。
(3)验证除了root、radmin以外,其他用户均不能使用su进行切换。
B、设置sudo授权
(1)授权用户zhangsan使用useradd、userdel、passwd、usermod命令,但禁止其执行“passwd root”、“usermod * root”操作。(2)授权lisi用户使用/sbin/*、/usr/sbin/*命令,添加NOPASSWD:以取消验证。(3)添加“Defaults logfile”配置行,以启用sudo日志。
(4)分别以zhangsan、lisi用户登录,验证授权的sudo操作,并查看日志。
C、限制引导及登录过程
(1)禁用Ctrl+Alt+Del热键,禁用tty1、tty2、tty4、tty6这四个终端。
(2)在grub.conf文件中的第一个title行之前添加密码配置。
(3)重启后进入到GRUB菜单界面,验证直接按e键已无法编辑引导参数