centos7系统安全及应用(su,sudo,nmap,John then Ripper)

系统安全

实验材料
centos7一台足够,后面有一些工具我会提供百度云

账号安全控制

1.系统账号清理
禁止登陆终端的账号
[root@CentOS7-02 ~]# grep “/sbin/nologin$” /etc/passwd
对于linux服务器中长期不用的账号,若无法确定是否删除,可以暂时将其锁定
[root@CentOS7-02 ~]# useradd zhangsan
[root@CentOS7-02 ~]# passwd zhangsan ( 设置密码)
[root@CentOS7-02 ~]# usermod -L zhangsan ( 锁定账号)
[root@CentOS7-02 ~]# passwd -S zhangsan (查看状态)
zhangsan LK 2019-09-13 0 99999 7 -1 (密码已被锁定。)
root@CentOS7-02 ~]# usermod -U zhangsan (解锁账号)
[root@CentOS7-02 ~]# passwd -S zhangsan
zhangsan PS 2019-09-13 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)

如果服务器中的账号已经固定,不进行更改,可以锁定账号配置文件
[root@CentOS7-02 ~]# chattr +i /etc/passwd /etc/shadow (锁定文件)
[root@CentOS7-02 ~]# lsattr /etc/passwd /etc/shadow (需要这条命令查看)
----i----------- /etc/passwd
----i----------- /etc/shadow

[root@CentOS7-02 ~]# useradd lisi (锁定状态下,无法创建用户)
useradd:无法打开 /etc/passwd
[root@CentOS7-02 ~]# chattr -i /etc/passwd /etc/shadow (解锁)
[root@CentOS7-02 ~]# lsattr /etc/passwd /etc/shadow
---------------- /etc/passwd
---------------- /etc/shadow

可以正常创建用户了

2.密码安全控制
在不安全的网络环境中,为了降低密码被破解的风险,用户应该经常更换密码,
管理员可以在服务端限制用户密码的最大有效天数
[root@CentOS7-02 ~]# vim /etc/login.defs (试用于新建的用户)
滑倒最后,新起一行添加如下
PASS_MAX_DAYS 30
[root@CentOS7-02 ~]# chage -d 0 zhangsan (强制执行,可以对已经存在用户)
使用zhangsan,Xshell登陆会显示l如下成功
centos7系统安全及应用(su,sudo,nmap,John then Ripper)_第1张图片

3.命令历史,自动注销
Shell环境的命令历史机制提供了极大便利,但也有很大的风险
只要获取用户的命令历史文件,该用户的操作会露出,如果有明文密码,会有潜在的风险

[root@CentOS7-02 ~]# history (会发现有很多命令历史)
[root@CentOS7-02 ~]# export HISTSIZE=5 (适用当前用户)
[root@CentOS7-02 ~]# history ( 只有原来的倒数5条了,以后这个用户也是)
[root@CentOS7-02 ~]# vim /etc/profile (适用新登陆用户)
滑倒最后,新起一行添加如下,表示最多40条
HISTSIZE=40

在Bash终端环境中可以设置一个限制超时时间,,当超过指定时间没有任何操作自动注销终端
[root@CentOS7-02 ~]# export TMOUT=5 (5秒不动)适用当前登陆用户是临时的,退出终端就还原下面文件中的默认了
[root@CentOS7-02 ~]# 等待输入超时:自动登出
如果su有其他用户会切到其他用户
[root@CentOS7-02 ~]# export TMOUT=60000 (改回来)
[root@CentOS7-02 ~]# vim /etc/profile (适用新登陆用户,是永久的)
滑倒最后,新起一行添加如下 (1000秒)
export TMOUT=1000

用户切换于提权

1.su命令 – 切换用户
[root@CentOS7-02 ~]# su - zhangsan (不加-的话切换还在前一个用户目录下,加了-在自己的主目录下)
上一次登录:六 9月 14 04:32:38 CST 2019pts/0 上
[zhangsan@CentOS7-02 ~]$
默认情况下任何用户都运行适用su命令,这样非常不安全,可以准许个别用户用su
[root@CentOS7-02 ~]# gpasswd -a zhangsan wheel
正在将用户“zhangsan”加入到“wheel”组中
[root@CentOS7-02 ~]# grep wheel /etc/group
wheel:x:10:zhangsan
[root@CentOS7-02 ~]# vi /etc/pam.d/su
centos7系统安全及应用(su,sudo,nmap,John then Ripper)_第2张图片

除了root用户,其他未加入wheel组的用户不可以适用su

[root@CentOS7-02 ~]# useradd lisi
[root@CentOS7-02 ~]# passwd lisi
[root@CentOS7-02 ~]# su lisi
[lisi@CentOS7-02 root]$ su root
密码:
su: 拒绝权限

[lisi@CentOS7-02 root]$ exit( 回到root)

2.sudo命令–提升权限
通过su命令可以非常方便的切换为另一个用户,但是必须知道密码,对linux服务器来收,这样做会非常不安全,
sudo命令可以实现给用户权限,而不让它知道密码,需要管理员预先设置

[root@CentOS7-02 ~]# visudo (这是一个管理工具,不是vi)
(默认有这行,现在不用做任何操作,一会后面添加用户)

centos7系统安全及应用(su,sudo,nmap,John then Ripper)_第3张图片
[root@CentOS7-02 ~]# visudo (,滑倒最后添加如下一行,启用sudo记录,就是可以查看谁使用了sudo)
Defaults logfile = "/var/log/sudo"
因为我上面已经把zhangsan加入了wheel组,这里就不用再次加入了
[root@CentOS7-02 ~]# passwd zhangsan (因为前面设置新登陆要改密码,这里直接重新设置一下)

centos7系统安全及应用(su,sudo,nmap,John then Ripper)_第4张图片
可以使用lisi用户来试一下sudo命令,发现不行,提示操作会被报告
lisi用户,exit命令退回到root,因为不在wheel组,lisi不可使用su命令回到root

因为它不在wheel组中,也不可使用sudo命令
如下这条命令,可以把lisi加到wheel组中,就可以使用sudo与su了
[zhangsan@CentOS7-02 root]$ su root
[root@CentOS7-02 ~]# gpasswd -a lisi wheel

su到root,可以看到有我刚刚zhangsan,lisi的使用记录
[root@CentOS7-02 ~]# tail /var/log/sudo
(可以看到 lisi用户,有 user NOT in sudoers 表示没有使用成功)

Sep 17 10:21:29 : zhangsan : TTY=pts/1 ; PWD=/root ; USER=root ;
COMMAND=/sbin/ifconfig ens33:0 192.168.1.11/24
Sep 17 10:24:19 : lisi : user NOT in sudoers ; TTY=pts/1 ; PWD=/root ; USER=root
; COMMAND=/sbin/ifconfig ens33:1 192.168.1.11/24

[root@CentOS7-02 ~]# su zhangsan
[zhangsan@CentOS7-02 root]$ sudo -l (查看自己拥有的sudo权限)
[sudo] zhangsan 的密码:
。。。。
用户 zhangsan 可以在 CentOS7-02 上运行以下命令: (ALL) ALL

系统引导和登陆控制

1.设置BIOS密码
防止U盘破解root密码,从网络启动等
重启虚拟机一直按F2,进入如下
centos7系统安全及应用(su,sudo,nmap,John then Ripper)_第5张图片
按f10,选择yes保存退出,再进bios发现要使用密码,再重启正常进入系统

2.禁止Ctrl+Alt+Del快捷键重启
linux中这个这三个快捷键一起按,会重启系统,这样非常不安全
[root@CentOS7-02 ~]# systemctl mask ctrl-alt-del.target (注意这里不可以补全,要手打)
Created symlink from /etc/systemd/system/ctrl-alt-del.target to /dev/null.
[root@CentOS7-02 ~]# systemctl daemon-reload (重新加载)
按虚拟机里的发送Ctrl+Alt+Del,发现已经没用了
如果你想启用的话,
[root@CentOS7-02 ~]# systemctl unmask ctrl-alt-del.target

Removed symlink /etc/systemd/system/ctrl-alt-del.target.
[root@CentOS7-02 ~]# systemctl daemon-reload

3.设置GRUB引导密码
GRUB也可以用来破解root密码等,

[root@CentOS7-02 ~]# grub2-mkpasswd-pbkdf2
输入口令: (输入想设置的密码,可以随意)
Reenter password: (重复输入)

PBKDF2 hash of your password is (下面这是一个密钥对肯定和我不一样,复制你们自己,is后面的都复制下来) grub.pbkdf2.sha512.10000.AF212A21A7B82695E3BABBC1EE79B2C496456D439B37EC5432D3B5DAA4598EAA5C75FCBDDD12B2A113C49A53305BE4F9DAFF316E16CBA07F9068F29B34D0B1F0.A7A647C9AFAE5145A4770EB25C6CC8615130B12310E0D028C852584691777503809E439C8EAE5A1FCCD64FF3BDE4B8FBBCED9A22C78EC1EA0ED76ED4BF9818E7
[root@CentOS7-02 ~]# cp /boot/grub2/grub.cfg /boot/grub2/gurb.cfg.bak
[root@CentOS7-02 ~]# cp /etc/grub.d/00_header /etc/grub.d/00_header.bak
上面cp两部都是备份,在虚拟机中可以不做
[root@CentOS7-02 ~]# vim /etc/grub.d/00_header
centos7系统安全及应用(su,sudo,nmap,John then Ripper)_第6张图片
[root@CentOS7-02 ~]# grub2-mkconfig -o /boot/grub2/grub.cfg (生成新的配置文件)
重启虚拟机一直按e键,会提示输入用户名和密码
用户名是root
密码是你刚刚设置的,就可以进入GRUB菜单了

centos7系统安全及应用(su,sudo,nmap,John then Ripper)_第7张图片

终端及登陆控制

1.禁止root用户登陆哪几个终端(tty)

linux系统中一共有6个虚拟终端(tty),进到centos7虚拟机中,而不是Xshell,按ctrl+alt+f1,切换第一个终端

后面f1换成加f2,f3,f4,f5,f6可以切换不同的tty
[root@CentOS7-02 ~]# w (这条命令可以查看当前有哪些终端)
在这里插入图片描述

[root@CentOS7-02 ~]# vim /etc/securetty (把这几行,加上#号,其他不用动)
#tty2
#tty3
#tty4
#tty5
#tty6

发现只能在tty1登陆root用户,其他tty登陆都显示
Login incorrect
但是其他的用户可以正常登陆所有tty,这是针对root用户的

2.禁止普通用户登陆
当服务器在进行备份或调试工作时,如果不希望有除了root用户的其他用户登陆系统
可以做如下操作

[root@CentOS7-02 ~]# touch /etc/nologin
然后使用zhangsan登陆,发现登陆不了
[root@CentOS7-02 ~]# rm -rf /etc/nologin
zhangsan可以登陆了

弱口令检测,端口扫描

弱口令扫描

1.安装John the Ripper
链接:https://pan.baidu.com/s/11-in6NrkDfsnrbtAVP_PLw
提取码:28ql

[root@CentOS7-02 ~]# tar zxf john-1.8.0.tar.gz
[root@CentOS7-02 ~]# cd john-1.8.0
[root@CentOS7-02 src]# cd src/
[root@CentOS7-02 src]# make clean linux-x86-64 (单独执行make的话,会列出可用的编译操作,支持的系统
[root@CentOS7-02 src]# ls ../run/john (确认生成了可执行程序)
../run/john

2.检查弱口令账号
可以对/ect/shadow来测试
[root@CentOS7-02 src]# cd …/run/
[root@CentOS7-02 src]# cp /etc/shadow /root/mima.txt
[root@CentOS7-02 run]# passwd zhangsan (密码设置为”123“,后面才有效果)
[root@CentOS7-02 run]# passwd lisi (这里也是)
[root@CentOS7-02 run]# ./john /root/mima.txt
左边是密码 右边是用户名
centos7系统安全及应用(su,sudo,nmap,John then Ripper)_第8张图片
速度较慢,如果破解不出来ctrl+c停止

密码信息会自动保存到john.pot文件中,如下命令查看,mima.txt没有里面没有变化,这个命令会自动查看破解的密码
[root@CentOS7-02 run]# ./john --show /root/mima.txt ( 查看已破解的账号列表,必须这个格式查看)
zhangsan:123:18156:0:99999:7:::
lisi:123:18156:0:30:7:::

(第二段就是密码)

3.使用密码字典
[root@CentOS7-02 run]# :>john.pot ( 清空已破解的账号列表,以便重新分析)
[root@CentOS7-02 run]# ./john --wordlist=./password.lst /root/mima.txt
(使用内置的密码字典,破解)
时间会很长,ctrl+c 退出即可,这里只是如何操作
注意所有操作要在这个目录下
/root/john-1.8.0/run

网络扫描–NMAP

1.安装NMAP安装包
挂上光盘,配置yum源
[root@CentOS7-02 run]# yum -y install nmap

2.扫描类型及语法
nmap 【扫描类型】 【选项】 【扫描目标】
-sU,UDP扫描:探测目标提供哪些UDP服务,UDP扫描速度会比较慢
-sP,ICMP扫描:类似ping监测,快速判断目标主机是否存活,不做其他扫描
-P0, 跳过ping检测:这种方式认为所有的目标主机是活的,但对方不响应的icmp请求时,使用这种方式可以避免因为无法ping通而放弃扫描

3.扫描实例
[root@CentOS7-02 run]# nmap 127.0.0.1 (扫描自己开放的常用的tcp端口)
[root@CentOS7-02 run]# nmap -sU 127.0.0.1 (扫描自己开放的常用的UDP端口)
[root@CentOS7-02 run]# nmap -p 21 192.168.100.0/24 (扫描192.168.100.0网段,有哪些主机开放了21号端口)
centos7系统安全及应用(su,sudo,nmap,John then Ripper)_第9张图片
[root@CentOS7-02 run]# nmap -n -sP 192.168.100.0/24
快速检测192.168.100.0有哪些存活主机,能ping通的
-n:禁用反向DNS解析(可以加快速度)
[root@CentOS7-02 run]# nmap -p 139,445 192.168.100.100-200
扫描100-200网段是否有主机开放共享服务

实验完毕

你可能感兴趣的:(三期,Linux高级管理)