系统安全应用

 

一,基本安全实施

1.锁定用户及锁定文件

1)锁定账户

[root@localhost ~]# usermod -L lisi       //锁定账户
[root@localhost ~]# passwd -S lisi       //查看账户状态
lisi LK 1969-12-31 0 99999 7 -1 (密码已被锁定。)
[root@localhost ~]# usermod -U lisi     //解锁
[root@localhost ~]# passwd -S lisi 
lisi PS 1969-12-31 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)

2)锁定文件

锁定/etc/passwd,/etc/passwd文件后创建用户和赋予密码都执行不能执行了 

[root@localhost ~]# chattr +i /etc/passwd /etc/passwd      //锁定文件
[root@localhost ~]# lsattr /etc/passwd /etc/passwd        //查看锁定文件状态
----i----------- /etc/passwd
----i----------- /etc/passwd
[root@localhost ~]# useradd zhangsan     //锁定文件后创建用户和赋予密码都执行不能执行了              
useradd:无法打开 /etc/passwd
[root@localhost ~]# chattr -i /etc/passwd /etc/passwd     //解锁文件
[root@localhost ~]# useradd zhangsan
[root@localhost ~]# passwd zhangsan
更改用户 zhangsan 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

2.安全密码控制

1)设置密码有效期(chage用于设置密码时限)

[root@localhost ~]# vim /etc/login.defs       //针对新用户
PASS_MAX_DAYS   7                            //更改密码有效期为7天
[root@localhost ~]# chage -M 77 zhangsan    //针对已有用户,有效期为77天
[root@localhost ~]# tail /etc/shadow        //查看

2)设置下次登录时重新更改密码否则将拒绝登录

[root@localhost ~]# chage -d 0 zhangsan  //下次登录时重设置密码

3.历史命令,自动注销

1)修改历史命令条数

bash终端环境中,历史命令的记录由变量HISTSIZE控制,默认为1000条,可以更改/etc/profile文件内容设置历史命令条数。

[root@localhost ~]# vim /etc/profile //针对新用户
HISTSIZE=500                       //修改为500条历史命令

[root@localhost ~]# export HISTSIZE=200  //针对已有用户,修改为200条

2)退出bash环境以后,历史命令自动清空

修宿主目录~/.bash_logout文件,添加清空历史命令的操作语句

[root@localhost ~]# vim ~/.bash_logout
history -c
clear
[root@localhost ~]# source .bash_logout //刷新

3)设置超时时间

闲置超时由变量TMOUT来控制,默认单位为秒(s),更改/etc/profile文件设置

[root@localhost ~]# vim /etc/profile    //针对新用户
export TMOUT=600                      //600秒无人操作自动注销终端
[root@localhost ~]# export TMOUT=600 //针对已有用户

4.用户切换

1)su命令--切换用户

[root@localhost ~]# su zhangsan
[zhangsan@localhost root]$ su root
密码:

2)设置个别用户使用su命令

借助pam—wheel认证模块,只允许个别用户使用su命令,修改/etc/pam.d/su 启用pam—wheel即可

[root@localhost ~]# gpasswd -a zhangsan wheel   //添加用户到wheel组里面
正在将用户“zhangsan”加入到“wheel”组中
[root@localhost ~]# grep wheel /etc/group        //验证是否是wheel组成员
wheel:x:10:zhangsan

[root@localhost ~]# vim /etc/pam.d/su           
auth            required        pam_wheel.so use_uid    
//去#号,去掉以后表示只有wheel组成员才能使用su命令

[lisi@localhost root]$ su root  //测试
密码:
su: 拒绝权限

5.提升执行权限--sudo命令

1)用户设置权限

配置文件/etc/sudoers中,授权格式为

user    MACHINE     COMMANDS

授权主要包括用户,主机,命令三个部分

用户(user):直接授权指定用户名,或采用"%组名"的形式(授权组里所有用户)

主机(MACHINE):使用此配置文件的主机名称,主要方便多个主机共用一份sudoers文件,一般设置localhost或者实际主机名即可

命令(COMMANDS):,填写命令程序的完整路径,多个以","逗号隔开

[root@localhost ~]# vim /etc/sudoers
zhangsan localhost.localdomain=/sbin/ifconfig    //设置zhangsan有使用ifcfing命令的权限
%wheel ALL=NOPASSWD:ALL    //设置wheel组里面成员不用使用密码,zhangsan没加组里,所以下面需要密码

[root@localhost ~]# su zhangsan
[zhangsan@localhost root]$ sudo ifconfig ens33 192.168.1.1 //使用命令前加sudo

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

[sudo] password for zhangsan:  //zhangsan密码

注意: 

使用sudo命令前需要加上sudo

sudo命令允许使用通配符"*",取反符"!"

2)查看用户获得那些sudo权限

[root@localhost ~]#  sudo -l

 如果启用日志可以从/var/log/sudo/文件中看到sudo的操作记录

[root@localhost ~]# tail /var/log/sudo

 二,系统引导和登录控制

1.禁止快捷键重启

[root@localhost ~]# ll /usr/lib/systemd/system/ctrl-alt-del.target //查看是链接文件
lrwxrwxrwx. 1 root root 13 5月   7 2018 /usr/lib/systemd/system/ctrl-alt-del.target -> reboot.target
[root@localhost ~]# systemctl mask ctrl-alt-del.target  //注销ctrl-alt-del.target
Created symlink from /etc/systemd/system/ctrl-alt-del.target to /dev/null.
[root@localhost ~]# systemctl daemon-reload  //重新加载system配置

2.设置GRUB密码

设置密码使用,grub2-mkpasswd-pbkdf2命令生成,生成密码后存放在/etc/grub.d/00_header配置文件中。

[root@localhost ~]# grub2-mkpasswd-pbkdf2 
输入口令:    //设置密码
Reenter password: 
PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.37B241BE7B9B7AA1FE3631633F2B9FACF0C68133C8D53DF1BCDFA029A5E75B6031D99736281F45EDE65737D4145719C4A18D4F26948C9B85F1C3EE1F6DDECA5C.21F50377A7E3D5BD8C60C5FD580C48A3518AEF747E21A7D0449C9F0B5EC589FB50B8EA0D531279B7C78A15C1867D70F68E1A7BA1B8E59BACDE77CDC1F96B465A
[root@localhost ~]# cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak   //备份
[root@localhost ~]# cp /etc/grub.d/00_header /etc/grub.d/00_header.bak  //备份
[root@localhost ~]# vim /etc/grub.d/00_header  //把经加密后的字符串添加至文件末尾
cat << EOF
set superusers="root"    //用户设置为root
password_pbkdf2 root  grub.pbkdf2.sha512.10000.37B241BE7B9B7AA1FE3631633F2B9FACF0C68133C8D53DF1BCDFA029A5E75B6031D99736281F45EDE65737D4145719C4A18D4F26948C9B85F1C3EE1F6DDECA5C.21F50377A7E3D5BD8C60C5FD580C48A3518AEF747E21A7D0449C9F0B5EC589FB50B8EA0D531279B7C78A15C1867D70F68E1A7BA1B8E59BACDE77CDC1F96B465A
EOF
[root@localhost ~]# grub2-mkconfig -o /boot/grub2/grub.cfg  //生成新grub.cf的文件

3.终端登录控制

1)禁止root用户登录终端

[root@localhost ~]# vim /etc/securetty 
#tty5   //禁止root在5,6终端登录
#tty6

2)禁止普通用户登录

禁止新的用户登录到系统,login程序会检查/etc/noloin文件是否存,如果存在将禁止新的用户登录到系统。

[root@localhost ~]# touch /etc/noloin

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

1.弱口令检测--john the ripper

源码包安装:链接:https://pan.baidu.com/s/1Sxyr1Vt4Y8WyBhEv6bQk7w 
提取码:a2gt

john the ripper是一款开源软件的密码破解工具,能够在已知密文中分析出明文密码字串,支持多种加密算法。

1)下载编译john the ripper

解压后可以看到三个文件分别为doc(手册文档),run(运行程序),src(源码文件)

[root@localhost mnt]# tar zxf john-1.8.0.tar.gz -C /usr/src/
[root@localhost mnt]# cd /usr/src/john-1.8.0/
[root@localhost john-1.8.0]# cd src/
[root@localhost src]# make clean linux-x86-64   //编译安装
[root@localhost src]# ls ../run/john      //确认生成可执行john文件
../run/john

2)检测弱口令

针对/etc/shadow密文文件进行破解明文

[root@localhost src]# cp /etc/shadow /root/shadow.txt   //准备待破解文件
[root@localhost src]# cd .. /run/
[root@localhost john-1.8.0]# cd run/            //执行暴力破解
[root@localhost run]# ./john /root/shadow.txt 
Loaded 3 password hashes with 3 different salts (crypt, generic crypt(3) [?/64])
Press 'q' or Ctrl-C to abort, almost any other key for stat
123456           (root)     //结果
123              (lisi)    //结果


[root@localhost run]# ./john --show /root/shadow.txt   //查看已破解账户列表
root:123456::0:99999:7::: 
lisi:123::0:99999:7:::

2 password hashes cracked, 1 left

3)使用密码字典文件

对于暴力密码破解来说密码词典很关键,john the ripper默认提供的字典文件为password.lst,其中列出3000个常见的弱口令,用户可在字典里文件中加上更多密码组合(生日,等)更容易破解密码,当然也可以自己编写字典,下面演示就是自己编写字典为aaa.txt

[root@localhost run]# :> john.pot   //清空已破解账户列表
[root@localhost run]# vim aaa.txt   //新建词典
qinziteng
qinziteng666
[root@localhost run]# ./john --wordlist=/aaa.txt /root/shadow.txt 

注意: --wordlist=后面跟词典名称,可以使用自带字典,也可以自己编写字典

 2.网络扫描--nmap

1)安装nmap

[root@localhost yum.repos.d]# yum -y install nmap  //安装nmap

2)语法及类型

nmap扫描位于/usr/bin/nmap,命令格式如下

nmap  [扫描类型]     [选项]   <扫描目标>

常用选项有

案例

扫描常用tcp端口
 

[root@localhost ~]# nmap 127.0.0.1      //扫描常用tcp端口

Starting Nmap 6.40 ( http://nmap.org ) at 2019-12-07 21:41 CST
mass_dns: warning: Unable to determine any DNS servers. Reverse DNS is disabled. Try using --system-dns or specify valid servers with --dns-servers
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000016s latency).
Not shown: 996 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh
25/tcp  open  smtp
111/tcp open  rpcbind
631/tcp open  ipp

Nmap done: 1 IP address (1 host up) scanned in 0.16 seconds

 扫描常用udp端口

[root@localhost ~]# nmap -sU 127.0.0.1   //扫描常用udp端口

Starting Nmap 6.40 ( http://nmap.org ) at 2019-12-07 21:44 CST
mass_dns: warning: Unable to determine any DNS servers. Reverse DNS is disabled. Try using --system-dns or specify valid servers with --dns-servers
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000016s latency).
Not shown: 999 closed ports
PORT     STATE         SERVICE
5353/udp open|filtered zeroconf

Nmap done: 1 IP address (1 host up) scanned in 1.28 seconds

检查192.168.1.0/24网段中那些提供ftp服务 -p指定端口

[root@localhost ~]# nmap -p 21 192.168.1.0/24

Starting Nmap 6.40 ( http://nmap.org ) at 2019-12-07 21:46 CST
setup_target: failed to determine route to 192.168.1.0
setup_target: failed to determine route to 192.168.1.1
setup_target: failed to determine route to 192.168.1.2
setup_target: failed to determine route to 192.168.1.3
setup_target: failed to determine route to 192.168.1.4

检查192.168.1.0/24网段有哪些存活主机

[root@localhost ~]# nmap -n -sP 192.168.1.0/24192.168.1.0/24

检查192.168.1.100-200有哪些开启文件共享服务 

[root@localhost ~]# nmap -p 139,445 192.168.1.100-200

猜你喜欢

转载自blog.csdn.net/weixin_45310323/article/details/103438861