系统安全及应用

引言

在互联网中,大部分服务器是通过远程登录的方式来管理的,二本地引导和终端登录往往被忽视,从而留下安全隐患。特别是当服务器所在的机房环境缺乏严格、安全的管制制度时,如何防止其他用户的非授权介入,就成为了非常重要的一步,今天我就为大家介绍一下如何引导系统和控制登录。

一、账号安全控制

1.1账号安全基本措施

系统账号清理
将非登录用户的shell设为/sbin/nologin
在这里插入图片描述

usermod -s /sbin/nologin 用户名  ###设置为非登录用户账号

锁定长期不使用账号

[root@localhost ~]# usermod -L 用户名    ###锁定用户账号方法一
[root@localhost ~]# passwd  -l  用户名   ###锁定用户账号方法二
[root@localhost ~]# usermod -U  用户名   ###解锁用户账号方法一
[root@localhost ~]# passwd  -u  用户名   ###解锁用户账号方法二


在这里插入图片描述
删除无用的账号

[root@localhost ~]# userdel -r kakaka

在这里插入图片描述
锁定账号文件passw、shadow

[root@localhost ~]# chattr +i /etc/passwd /etc/shadow  ###锁定账号文件passw、shadow
[root@localhost ~]# lsattr /etc/passwd /etc/shadow   ###查看文件是否锁定
----i----------- /etc/passwd
----i----------- /etc/shadow

在这里插入图片描述
密码安全控制
1.设置密码有效期
2.要求用户下次登录时修改密码

[root@localhost ~]#vi /etc/login.defs 
......
PASS_MAX_DAYS 30              ###修改密码有效期  适用于新建用户

[root@localhost ~]#chage -M 30 ka     ###适用于已有用户

[root@localhost ~]#chage -d 0 ka     ###强制在下次登录时更改密码

在这里插入图片描述
在这里插入图片描述
命令历史限制
1.减少记录的命令条数
2.注销时自动清空命令历史

[root@localhost ~]#vi /etc/profile    ###修改历史缓存数为200
HISTSIZE=200         

[root@localhost ~]#vi ~/.bash_logout    ###登出时自动清除
history -c
clear

终端自动注销
闲置600秒后自动注销

[root@localhost ~]#vi /etc/profile 
export TMOUT=600

1.2用户切换与提权

1.2.1 su命令—切换用户
1.用途及用法
用途:Substitute User,切换用户
格式:su - 目标用户(横杠“ - ”代表切换到目标用户的宿主目录)
在这里插入图片描述
root - - - >任意用户,不验证密码
普通用户- - - >其他用户,验证目标用户的密码
带 “ - ” 表示将使用目标用户的登录Shell环境

2. whoami 确定当前用户是谁
​限制使用su命令的用户
将允许使用su命令的用户加入wheel组
启用pam_wheel认证模块

[root@localhost ~]# gpasswd -a ka wheel 
正在将用户“ka”加入到“wheel”组中
[root@localhost ~]# 


查看su操作记录
安全日志文件:/var/log/secure
在这里插入图片描述

1.2.2 sudo 命令—提升执行权限
sudo命令的用途及用法:
用途:以其他用户身份(如root)执行授权命令
用法:sudo 授权命令

1.配置sudo授权
visudo 或者 vim /etc/sudoers
记录格式:
用户 主机名 = 命令程序列表
用户 主机名 = (用户)命令程序列表

用户: 直接授权指定的用户名,或采用 “ % ” 的形式(授权一个组的所有用户)
主机名: 使用此规则的主机名。没配置过主机名时可用localhost ,配置过主机名则使用实际的主机名,ALL 代表所有主机
(用户):用户能够以何种身份来执行命令。此项可省略,缺省时以root用户的身份来运行命令
命令程序列表:允许授权的用户通过 sudo 方式执行的特权命令,需填写命令程序的完整路径,多个命令之间以逗号“,” 进行分隔(可以使用通配符 “ * ” 号任意值 和 “ !” 号进行取反操作)。ALL则代表系统中的所有命令。

sudo [参数选项] 命令
-l 列出用户在主机上可用的和被禁止的命令,一般配置好/etc/sudoers以后,要用这个命令来查看和测试是不是配置正确的

-v 验证用户的时间戳,如果用户运行 sudo 后,输入用户的密码后,在短时间内可以不用输入口令来进行sudo 操作;用 -v 可以追踪最新的时间戳

-u 指定以某个用户执行特定操作

-k 删除时间戳,下一个 sudo 命令要求提供密码 

案例:ka 用户可以使用useradd usermod

配置
visudo

ka ALL=(root) /usr/sbin/useradd,/usr/sbin/usermod

如ka ALL=(root) NOPASSWD:/usr/sbin/useradd,PASSWD:/usr/sbin/usermod ###前面不需要输入密码,后面需要输入密码

配置/etc/sudoers文件,可以授权用户较多的时使用
​
 Host_Alias MYHOST= localhost  主机名
 User_Alias MYUSER = lu,zhangsan,lisi  需要授权的用户   
 Cmnd_Alias MYCMND = /sbin/*,/usr/bin/passwd  授权
 MYUSER  MYHOST = NOPASSWD : MYCMND  授权格式


二、系统引导和登录控制

2.1开关安全控制

调整BIOS引导设置原则
将第一引导设备设为当前系统所在硬盘;

禁止从其他设备(光盘、 U盘、网络)引导系统;

将安全级别设为setup,并设置管理员密码。

GRUB限制
使用grub2-mkpasswd-pbkdf2生成密钥

修改/etc/grub.d/00_header文件中,添加密码记录

生成新的grub.cfg配置文件

**GRUB限制的实现**
法一:
1.  使用grub2-mkpasswd-pbkdf2生成密钥并复制,然后备份两个配置文件。 
2. [root@localhost ~]# cp /boot/grub2/grub.cfg /boot/grub2/geub.cfg.bak
   [root@localhost ~]# cp /etc/grub.d/00_header /etc/grub.d/00_header.bak

3.  修改/etc/grub.d/00_ header文件中, 添加密码记录,并存并退出 
​
法二:
直接设置grub2—setpassword 设置grub密码

[root@localhost ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
     ###生成新的grub.cfg文件,然后重启系统


在这里插入图片描述
在这里插入图片描述

2.2 终端登录安全控制

限制root用户只在安全终端登录

安全终端配置:/etc/securetty

步骤:
1.更改相关配置文件

2.切换至指定终端进行测试

3.切换至其他终端进行测试
在这里插入图片描述
禁止普通用户登录
建立/etc/nologin文件
删除nologin文件或者重启后即恢复正常
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、弱口令检测、端口扫描

3.1弱口令检测—John the Ripper

一款密码分析工具,支持字典式的暴力破解;

通过对shadow文件的口令分析,可以检测密码强度;

官方网站:John the Ripper password cracker

3.2 John the Ripper实例

安装方法 [make clean 系统类型]

主程序文件为john

1. 把下载好的安装包用过rz命令下到目录opt下:
[root@localhost ~]#cd /opt
  
[root@localhost opt]#ls
john-1.8.0.tar.gz
​
2. 解压
[root@localhost opt]#tar -zxvf john-1.8.0.tar.gz 
​
3. 安装软件编译工具
[root@localhost src]#yum install gcc gcc-c++ make -y
​
4. 进行编译安装
[root@localhost src]#make clean linux-x86-64
​
5. 准备待破解的密码文件
[root@localhost src]#cd ..   切换至上级目录
[root@localhost src]#cp /etc/shadow /opt/shadow.txt  准备密码文件
 
6. 执行暴力破解
[root@localhost src]#cd /opt/john-1.8.0/run/
[root@localhost run]#./john /opt/shadow.txt 
​
7.查看已经破解出的密码
[root@localhost run]#./john --show /opt/shadow.txt

使用密码字典文件

> john.pot
清空已破解出的账户列表,便重新分析
./john --wordlist=./passwd.lst /opt/shadow.txt
使用指定的字典文件进行破解

3.3 网络扫描—NMAP

一款强大的网络扫描、安全检测工具

CentOS 7.3光盘中安装包 nmap-6.40-7.el7.x86_64.rpm

控制位
在这里插入图片描述

常用格式:
nmap [扫描类型]  [选项]  <扫描目标>
netstat natp                                            ###查看正在运行的使用TCP协议的网络状态信息
netstat -natp | grep httpd                          ###实际操作(httpd换成80也可以)
​
netstat -naup                                           ###查看正在运行的使用UDP协议的网络状态信息
​
[root@localhost run]#rpm -qa|grep nmap  ### 查看nmap
[root@localhost run]#yum install -y nmap   ###安装nmap


在这里插入图片描述
示例:
分别查看本机开放的TCP端口、UDP端口
在这里插入图片描述
在这里插入图片描述
检测192.168.146.0/24网段有哪些存活主机
在这里插入图片描述

总结

1.账号基本安全措施
( 系统账号清理、密码安全控制、命令历史清理、自动注销 )
2.用户切换与提权
( su 、sudo )
3.开关机安全控制
(BIOS引导设置、禁止Ctrl+Alt+Del快捷键、GRUB菜单设置密码)
4.终端控制
5.namp命令

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值