文章目录

  • 系统安全及应用
    • 账户安全控制
      • 基本安全措施
      • chattr--锁定账号配置文件
      • 密码安全控制( chage)
      • 要求用户下次登录时修改密码
      • 命令历史,自动注销
      • 注销时自动清空命令历史:
      • bash终端自动注销
    • 用户切换与提权
      • su 命令 -切换用户
      • sudo命令--提升执行权限
      • 配置文件/etc/sudoers中添加
      • 认识了解pam_wheel认证模块
    • PAM安全认证
      • su 命令的隐患
      • PAM认证原理
      • PAM认证的构成
      • PAM安全认证流程
    • 系统引导和登录控制
        • 调整BIOS引导设置
        • 更改GRUB引导参数
      • 终端登录安全控制
        • 禁止root用户登录
        • 禁止普通用户登录
    • 弱口令检测
      • 弱命令检查
      • 弱口令实验:通过john工具查看自己的密码
    • 四:端口扫描
      • nmap实验

系统安全及应用

账户安全控制

基本安全措施

系统账号清理

一般除了手动创建账号之外,还包括系统或安装过程生成的其他账号。除了其他账号只是用来维护系统运作,启动或保持服务,一般不允许登录,常见的非登录用户包括bin,daemon,adm,lp,mail,nobody,apache,mysql,dbus,ftp,gdm,haldaemon等。

为了确保系统安全,这些用户的登录shell通常是/sbin/nologin,表示禁止终端登录,应确保不被人为改动

[root@localhost ~]#  grep "/sbin/nologin$" /etc/passwd
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin

对长期不用的账号进行锁定(passwd ,usermod)

[root@localhost ~]# usermod -L tom    锁定账号
[root@localhost ~]# passwd -S tom     查看账号状态
tom LK 2020-06-21 0 99999 7 -1 (密码已被锁定。)
[root@localhost ~]# usermod -U tom     解锁账号
[root@localhost ~]# passwd -S tom
tom PS 2020-06-21 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)

chattr–锁定账号配置文件

[root@localhost ~]# chattr +i /etc/passwd /etc/shadow   锁定文件
[root@localhost ~]# lsattr  /etc/passwd /etc/shadow     查看锁定的状态
----i----------- /etc/passwd
----i----------- /etc/shadow
[root@localhost ~]# chattr -i /etc/passwd /etc/shadow   解锁文件
[root@localhost ~]# lsattr  /etc/passwd /etc/shadow     查看为解锁状态
---------------- /etc/passwd
---------------- /etc/shadow
锁定账户是无法登录和删除账号,更改密码
[root@localhost ~]# useradd zhang
useradd:无法打开 /etc/passwd

密码安全控制( chage)

chage命令—设置密码有效期限

为了降低密码被猜出和暴力爆破的风险

[root@localhost ~]# vi /etc/login.defs      见下图,对于未创建的用户,使用此命令修改配置文件'
PASS_MAX_DAYS   99999    密码有效期无限大
PASS_MIN_DAYS   0
PASS_MIN_LEN    5
PASS_WARN_AGE   7[root@localhost ~]# chage -M 30 lisi  对于已创建的用户,用这条命令'

把最大天数9999改为30天,9999为无线大

要求用户下次登录时修改密码

[root@localhost ~]# chage -d 0 mike 重新登录一下
You must change your password now and login again!
更改用户 mike 的密码 。
为 mike 更改 STRESS 密码。
(当前)UNIX 密码:

命令历史,自动注销

shell给用户提供了极大的方便,但是历史机制会给安全带来隐患这里记录条数由HISTSIZE控制,默认1000条,可以设置200条

root@localhost ~]# vi /etc/profile          对于未创建的用户,使用此命令修改配置文件
...省略部分内容
将其中的HISTSIZE=1000,修改为HISTSIZE=200
[root@localhost ~]# export HISTSIZE=200        该命令适用于当前用户,及时成效

注销时自动清空命令历史:

修改用户宿主目录中的~/.bash_logout文件,添加清空历史命令的操作语句。即:当用户注销(退出已登录的bash环境)时,所记录的历史命令将自动清空

[root@localhost ~]# vi .bash_logout
history -c
clear

bash终端自动注销

bash终端环境中,可以设置一个闲置超时时间,当超过指定时间没有任何输入时即自动注销终端,这样可以有效避免当管理员不在时其他人员对服务器的误操作风险。闲置时间有变量TMOUT来控制,默认单位为秒

[root@localhost ~]# vi /etc/profile     '适用于新登录的用户'
...中间省略内容
export TMOUT=20            '闲置时间设置为20s'
[root@localhost ~]# export TMOUT=20       '适用于当前用户'

用户切换与提权

大多数Linux服务器并不建议用户直接以root用户进行登录。

linux 提供了su ,sudo 两种命令

su命令主要用来切换用户

sudo命令用来提升执行权限

su 命令 -切换用户

使用su命令,可以切换为指定的另一个用户,从而具有该用户的所有权限

切换时需要对目标用户的密码进行验证(从root用户切换为其他用户不需要)

[root@localhost ~]# su - root
上一次登录:一 6月 22 19:38:36 CST 2020从 192.168.136.2pts/0 上
[root@localhost ~]# su - zhangsan  root用户切换不需要密码
上一次登录:三 7月  1 17:22:44 CST 2020pts/3 上
[root@localhost ~]# su - lisi
上一次登录:三 7月  1 17:23:28 CST 2020pts/3 上

限制用户使用su命令的用户

以减少有机会反复尝试登录密码,将允许使用su命令的用户加入wheel组

[root@localhost ~]# id mike    查看是否在wheel中
uid=1002(mike) gid=1004(mike) 组=1004(mike)
[root@localhost ~]#  gpasswd -a mike wheel    添加到wheel中
正在将用户“mike”加入到“wheel”组中
[root@localhost ~]# id mike
uid=1002(mike) gid=1004(mike) 组=1004(mike),10(wheel)
[root@localhost ~]# vi /etc/pam.d/su
...省略部分内容
auth            sufficient pam_roottok.so
auth            required        pam_wheel.so use_uid        '进入编辑,将此行开头的#删除,随后wq退出即可[root@localhost ~]# su lisi
[lisi@localhost /]$ su root
密码:
su: 拒绝权限
[root@localhost ~]# su mike
[mike@localhost root]$ su root
[root@localhost ~]# su  mike
[ mike@localhost root]$ id
uid=1001( mike) gid=1001( mike) 组=1001( mike),10(wheel) 环境 在whell中可以直接登录root    =unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

sudo命令–提升执行权限

用过su命令可以非常方便的切换为另一个用户,但前提条件是必须知道目标用户的登录密码

对于生产环境中的Linux服务器,每多一个人知道特权密码,其安全风险也就增加一分,而sudo命令就诞生了,既可以让部分普通用户拥有管理权限还可以不要root密码

配置文件/etc/sudoers中添加

sudo机制的配置文件为/etc/sudoers,文件的默认权限是440,需要使用专门的visudo工具进行编辑。若使用vi编辑,保存时必须执行“:w!”命令强制操作,否则系统将提示为只读文件而拒绝保存

授权配置包括用户,主机,命令

[root@localhost ~]# visudo      '或者使用vi /etc/sudoers 命令进入sudo配置文件'
...此处省略部分信息
root    ALL=(ALL)       ALL        '发现root用户拥有所有权限'
## Allows members of the 'sys' group to run networking, software,
## service management apps and more.
# %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS
## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)       ALL        '发现wheel组中的用户也拥有所有权限'

认识了解pam_wheel认证模块

启用pam_wheel认证以后,未加入到wheel组内的其他用户将无法使用su命令 尝试进行切换时将会按照“拒绝权限”来处理,以减少有机会反复尝试登录密码

[root@localhost ~]# vi /etc/pam.d/su
...省略部分内容
#auth            required        pam_wheel.so use_uid       '进入编辑,将此行开头的#删除,随后wq退出即可'
su: 拒绝权限
[wangwu@localhost ~]$ su - mike        '无法使用su命令'
密码:
su: 拒绝权限

PAM安全认证

su 命令的隐患

限制用户使用su命令的用户,以减少有机会反复尝试登录密码,将允许使用su命令的用户加入wheel组

PAM认证原理

PAM认证一般遵循的顺序:Service(服务)→PAM(配置文件)→pam_*.so(.so 后缀代表模块文件)

PAM认证首先要确定哪一项服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证文件(位于/lib/security下)进行安全认证

PAM认证的构成

查看su的PAM配置文件:cat /etc/pam.d/su

每一行都是一个独立的认证过程

每一行可以区分为三个字段(认证类型,控制类型,PAM模块及其参数)

[root@localhost ~]# cat /etc/pam.d/su
#%PAM-1.0
auth        sufficient  pam_rootok.so
# Uncomment the following line to implicitly trust users in the "wheel" group.
#auth       sufficient  pam_wheel.so trust use_uid
# Uncomment the following line to require a user to be in the "wheel" group.
auth        required    pam_wheel.so use_uid
auth        substack    system-auth
auth        include     postlogin
account     sufficient  pam_succeed_if.so uid = 0 use_uid quiet
account     include     system-auth

PAM安全认证流程

控制类型也可以称作Control Flags,用于PAM验证类型的返回结果

1.required验证失败时仍然继续,但返回Fail

2.requisite验证失败则立即结束整个验证过程,返回Fail

3.sufficient验证成功则立即返回,不在继续,否则忽略结果并继续

4.optional不用于验证,只显示信息(通常用于session(会话)类型)

系统引导和登录控制

调整BIOS引导设置

将第一引导设备设为当前系统所在硬盘

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

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

更改GRUB引导参数

使用grub2-mkpasswd-pbkdf2生成秘钥

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

生成新的grub.cfg配置文件

localhost ~]# cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak       '将grub配置文件备份'
[root@localhost ~]# cp /etc/grub.d/00_header /etc/grub.d/00_header.bak     '将/etc/grub.d/00_header文件也备份一下'
[root@localhost ~]# grub2-mkpasswd-pbkdf2      '开始加密自己的密码'
输入口令:        '例如输入 123123'
Reenter password:       '重复输入123123'
PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.E95B023DE28491A5F5A34B18C5C6CE9F74695A15FB17F48E04630B04DCB8E9A21EE3322C02311DEF3049654B5F64DD7A455BDF707FD304F4DB6ABC51A0F12321.08CF42CC9225D539DB130989F5445BDE2995B3691CE5806F075CBB51AD3084BA5E9B7C04EFC9D5BEEA8782CCDAA3105FA45AD9F534B5473FD91EB20556453EEB      'is 后面的内容就是通过加密算法将123123生成的加密密码'
[root@localhost ~]# vi /etc/grub.d/00_header       '编辑配置文件头文件'
'将以下内容输入进去,刚刚生成的加密密码也输入进去'
cat << EOF
set superusers="root"
passwd_pbkdf2 root grub.pbkdf2.sha512.10000.E95B023DE28491A5F5A34B18C5C6CE9F74695A15FB17F48E04630B04DCB8E9A21EE3322C02311DEF3049654B5F64DD7A455BDF707FD304F4DB6ABC51A0F12321.08CF42CC9225D539DB130989F5445BDE2995B3691CE5806F075CBB51AD3084BA5E9B7C04EFC9D5BEEA8782CCDAA3105FA45AD9F534B5473FD91EB20556453EEB
EOF[root@localhost ~]# grub2-mkconfig -o /boot/grub2/grub.cfg      '将生成的配置文件覆盖掉原来的grub.cfg配置文件'
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-693.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-693.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-b02d514a7e824ce7b6ea15214bb43466
Found initrd image: /boot/initramfs-0-rescue-b02d514a7e824ce7b6ea15214bb43466.img
done
[root@localhost ~]# init 6     '重启'

终端登录安全控制

禁止root用户登录


[root@192 ~]# vi /etc/securetty
vc/11
tty1
tty2
tty3
tty4
#tty5   '禁止终端tty5登录,在其前方输           入#即可'
#tty6       '禁止终端tty6登录,在其前方输入#即可'

禁止普通用户登录

维护时候不希望有新的用户登录

建立/etc/nologin文件

删除nologin文件或重启后即恢复正常

[root@localhost ~]# touch /etc/nologin      '禁止普通用户登录'
[root@localhost ~]# rm -rf /etc/nologin        '取消上述登录限制'
'一般做维护的时候使用(只有root用户可以登录,其他用户不可登录)'

弱口令检测

弱命令检查

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

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

弱口令实验:通过john工具查看自己的密码

[root@localhost ~]# ll
总用量 5336
-rw-------. 1 root root    1423 6月  17 01:34 anaconda-ks.cfg
-rw-r--r--. 1 root root 5450412 6月  22 23:56 john-1.8.0.tar.gz
-rw-r--r--. 1 root root    2158 6月  22 23:58 John BUG  ???ϴ?????Loaded 5 password hashes with 5 different salts (crypt, generic crypt(3) [64]).txt
----------. 1 root root     867 6月  23 10:08 shadow.txt
[root@localhost ~]# tar zxvf john-1.8.0.tar.gz
john-1.8.0/README
john-1.8.0/doc/CHANGES
john-1.8.0/doc/CONFIG
john-1.8.0/doc/CONTACT
john-1.8.0/doc/COPYING
john-1.8.0/doc/CREDITS
john-1.8.0/doc/EXAMPLES
john-1.8.0/doc/EXTERNAL
john-1.8.0/doc/FAQ
john-1.8.0/doc/INSTALL
[root@localhost 111]# cd /root/john-1.8.0/ [root@localhost john-1.8.0]# ls    '查看压缩包'
doc  README  run  src       'doc是说明文档,README是说明书,run是脚本,src是源码文件'
接下来是手工编译安装的过程
[root@localhost src]# cd src 源码中编辑
[root@localhost src]# yum install gcc gcc-c++ -y
[root@localhost src]# make linux-x86-64        'make编译'
[root@localhost john-1.8.0]# cd run
[root@localhost run]# ls       '此时已经有john脚本'
ascii.chr   john       lm_ascii.chr  makechr       relbench  unique
digits.chr  john.conf  mailer        password.lst  unafs     unshadow
[root@localhost run]# ./john /etc/passwd /etc/shadow   '运行脚本查看/etc/passwd /etc/shadow文件'
123123           (zhangsan)        已经出来密码
1g 0:00:00:40 0% 2/3 0.02488g/s 228.7p/s 252.6c/s 252.6C/s leslie..boston

四:端口扫描

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

可以探测局域网中那些主机在线,或者某台主机中开了那些端口

NMAP的扫描语法nmap [扫描类型] [选项] <扫描目标…>常用的扫描类型
-sS:tcp syn扫描-sF:tcp fin扫描-P0:跳过ping扫描-sT:TCP连接扫描-sU:UDP端口扫描,查看主机提供哪些UDP-sP:类似于ping,查看主机是否在线

nmap实验

[root@localhost run]# yum install nmap -y
[root@localhost ~]# nmap -sP 192.168.136.0/24Starting Nmap 6.40 ( http://nmap.org ) at 2020-06-23 11:11 CST
Nmap scan report for 192.168.136.1
Host is up (0.00016s latency).
MAC Address: 00:50:56:F6:EF:9A (VMware)
Nmap scan report for 192.168.136.2
Host is up (0.00014s latency).
MAC Address: 00:50:56:C0:00:08 (VMware)
Nmap scan report for 192.168.136.254
Host is up (-0.11s latency).
MAC Address: 00:50:56:F9:0A:A8 (VMware)
Nmap scan report for 192.168.136.158
Host is up.
Nmap done: 256 IP addresses (4 hosts up) scanned in 6.32 secon
[root@localhost ~]# nmap -sT 192.168.136.158 查看tcp端口Starting Nmap 6.40 ( http://nmap.org ) at 2020-06-23 11:12 CST
Nmap scan report for 192.168.136.158
Host is up (0.0012s latency).
Not shown: 999 closed ports
PORT   STATE SERVICE
22/tcp open  ssh

8.136.254
Host is up (-0.11s latency).
MAC Address: 00:50:56:F9:0A:A8 (VMware)
Nmap scan report for 192.168.136.158
Host is up.
Nmap done: 256 IP addresses (4 hosts up) scanned in 6.32 secon
[root@localhost ~]# nmap -sT 192.168.136.158 查看tcp端口

Starting Nmap 6.40 ( http://nmap.org ) at 2020-06-23 11:12 CST
Nmap scan report for 192.168.136.158
Host is up (0.0012s latency).
Not shown: 999 closed ports
PORT STATE SERVICE
22/tcp open ssh


系统安全及应用(账户安全控制,系统引导和登录,弱口令检测和登录控制,PAM认证,端口扫描,用户切换和提权)相关推荐

  1. 系统安全应用——系统引导、登录控制、弱口令检测、端口扫描

    目录 引言 一.账号安全 1.系统账号清理 将非登录用户的Shell设为/sbin/nologin 锁定长期不使用的账号 删除无用的账号 锁定账号文件passwd.shadow 2.密码安全设置 设置 ...

  2. Linux系统安全与应用(二)——安全机制、安全控制、弱口令检测JR、网络扫描NMAP和控制台命令Netstat

    Linux系统安全与应用(二)--安全机制.安全控制.弱口令检测JR.网络扫描NMAP和控制台命令Netstat 一.使用sudo机制提升权限 1.su命令的缺点 2.sudo的用途和用法 3.配置s ...

  3. Linux系统弱口令检测和网络端口扫描方法(JR、NMAP)

    Linux系统弱口令检测和网络端口扫描方法JR.NMAP 一.系统弱口令检测 1.Joth the Ripper ,简称JR 2.安装JR工具 3.检测弱口令账号 4.密码文件的暴力破解 5.基本步骤 ...

  4. 系统弱口令检测与网络端口扫描

    文章目录 一.系统弱口令检测 1.命令代码 2.实际操作 二.网络端口扫描 1.nmap命令常用选项与对应扫描类型 一.系统弱口令检测 Joth the Ripper,简称JR ●一款开源的密码分析工 ...

  5. linux《十》——系统安全之弱口令检测与网络端口扫描

    内容要点: 弱口令检测 网络端口扫描 一.弱口令检测 1.Joth the Ripper,简称为JR 一款密码分析工具,支持字典式的暴力破解 通过对shadow文件的口令分析,可以检测密码强度 官方网 ...

  6. 新品发布丨盛邦安全发布基于15万+指纹库的新一代弱口令检测系统——密码猎人

    弱口令问题一直是网络安全中的"老大难"问题.尤其是近两年,随着企业数字化转型的推进,业务应用与互联网交互不断深入,大量重要数据与信息存储.流转于业务系统内,成为被黑客觊觎的焦点之一 ...

  7. 系统安全及应用——弱口令检测,端口扫描

    John the Ripper和NMAP,前者用来检测系统账号的密码强度,后者用来执行端口扫描任务. 在Internet环境中,过于简单的口令是服务器面临的最大风险.尽管大家都知道设置一个更 长.更复 ...

  8. 系统安全及应用--账号安全控制

    文章目录 前言 一.基本安全措施 1.系统账号清理 2.密码安全控制 3.命令历史限制 4.终端自动注销 二.用户切换与提权 1.切换用户--su 2.在/etc/pam.d/su文件里设置禁止用户使 ...

  9. 系统安全和应用及实验部分(弱口令扫描、密码破解、NMAP嗅探)

    文章目录 一.账号安全控制 1.基本安全措施 (1)系统账号的清理 (2)密码安全控制 (3)历史命令.自动注销 二.用户切换.提权 1.用户切换 2. 提升执行权限 三.PAM安全认证 1.PAM认 ...

最新文章

  1. 摩卡签约印尼五大运营商之一CSM,进军东南亚市场
  2. kafka高可用集群课程介绍
  3. Game of Lines(POJ-3668)
  4. POJ-Prime Gap 素数筛选+二分查找
  5. unable to verify the first certificate
  6. Laravel 速记表
  7. 那些年用过的机械键盘
  8. python实现商品进销存管理系统
  9. Fastlane使用说明
  10. Android实战技巧之三十九:短信收发
  11. ArcGIS 地理数据库(GDB)/Tolerance/Resolution简介
  12. 双臂14轴机器人YuMi
  13. C语言--getchar()函数超详细解析(多维度分析,小白一看就懂!!!)
  14. java class.getmethod_java 反射使用 Class.getMethod 应注意
  15. 仿造百度换肤功能的实现
  16. GCC源代码分析(1): GCC中的树
  17. 介绍3.3和3.4 Linux内核
  18. 《java编程思想》读书笔记【前言】
  19. 3D Studio 文件格式 (3ds)
  20. 计算机数控的发展历程,CNC的发展史

热门文章

  1. mac下Clion与QT引入FFmpeg库
  2. 腾讯基于全时态数据库技术的数据闪回
  3. 国内下载 Python 源码特别慢
  4. python 第三方库
  5. Nginx RTMP 功能研究
  6. 深度学习、机器学习与NLP的前世今生
  7. PackStack安装OpenStack Pike
  8. 关于机器学习的训练数据、验证数据和测试数据的形象比喻
  9. 真正理解红黑树,真正的
  10. 初探Apache Kylin【麒麟】