ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Linux系统安全

2021-09-22 23:31:58  阅读:218  来源: 互联网

标签:lisi 系统安全 密码 passwd etc Linux root localhost


Linux系统安全

一.账号安全基本措施

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 ~]# passwd -S 用户名    查看用户状态
  • 删除无用的账号
    [root@localhost ~]# userdel -r 用户名
  • 锁定账号文件passwd、shadow
[root@localhost ~]# chattr +i /etc/passwd /etc/shadow   锁定文件
[root@localhost ~]# chattr -i /etc/passwd /etc/shadow   解锁文件
[root@localhost ~]# lsattr /etc/passwd /etc/shadow      查看文件状态

[root@localhost ~]# lsattr /etc/passwd /etc/shadow
---------------- /etc/passwd
---------------- /etc/shadow
[root@localhost ~]# useradd lisi
[root@localhost ~]# passwd lisi
更改用户 lisi 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# id lisi
uid=1001(lisi) gid=1001(lisi) 组=1001(lisi)
[root@localhost ~]# chattr +i /etc/passwd /etc/shadow
[root@localhost ~]# lsattr /etc/passwd /etc/shadow
----i----------- /etc/passwd
----i----------- /etc/shadow
[root@localhost ~]# useradd qiaozhi
useradd:无法打开 /etc/passwd
[root@localhost ~]# passwd lisi
更改用户 lisi 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
123passwd: 鉴定令牌操作错误
[root@localhost ~]# chattr -i /etc/passwd /etc/shadow
[root@localhost ~]# lsattr /etc/passwd /etc/shadow
---------------- /etc/passwd
---------------- /etc/shadow
[root@localhost ~]# useradd qiaozhi
[root@localhost ~]# passwd qiaozhi
更改用户 qiaozhi 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

1.2、密码安全控制

  • 设置密码有效期
    [root@localhost ~]# chage -M 30 用户名 适用于已有用户
    18885:0:99999:7:::变成了18885:0:30:7:::
​`[root@localhost ~]# cat /etc/shadow|grep lisi
lisi:$6$lI.TDhRs$lqTvhvybf2njN7/7eKS3ff56hEQDzbp0mxKk0yM/OSX6qj97j4lS4P2t44mT2Gf7IoVEA2GXkSv88/btLtkaf1:18885:0:99999:7:::
[root@localhost ~]# chage -M 30 lisi
[root@localhost ~]# cat /etc/shadow|grep lisi
lisi:$6$lI.TDhRs$lqTvhvybf2njN7/7eKS3ff56hEQDzbp0mxKk0yM/OSX6qj97j4lS4P2t44mT2Gf7IoVEA2GXkSv88/btLtkaf1:18885:0:30:7:::`

[root@localhost ~]# vim /etc/login.defs 适用于已有用户
PASS_MAX_DAYS 30
cat /etc/shadow | grep 用户名 查看密码有效日期是否配置成功在这里插入图片描述
在这里插入图片描述
这里有效期就变成了30天了
在这里插入图片描述
在这里插入图片描述

  • 强制在下次登录时修改密码
    [root@localhost ~]# chage -d 0 用户名 强制要求用户下次登陆时修改密码

1.3、命令历史限制

  • 减少记录命令的条数
减少记录命令的条数:
[root@localhost ~]# vim /etc/profile          编辑全局变量配置文件    
export HISTSIZE=10                 默认1000条 输入=10
:wq
[root@localhost ~]# source /etc/profile       相当使/etc/profile内的命令重载一遍
[root@promote ~]#history

history -c 临时清除
在这里插入图片描述
在这里插入图片描述

  • 注销时自动情况命令历史
[root@localhost ~]# vim ~/.bashrc
echo " " > ~/.bash_history       
:wq
reboot
history

在这里插入图片描述

[root@localhost ~]# vim ~/.bashrc 
[root@localhost ~]# source .bashrc
[root@localhost ~]# reboot 
Connection closing...Socket close.

Connection closed by foreign host.

Disconnected from remote host(haoyang1) at 20:26:45.

Type `help' to learn how to use Xshell prompt.
[C:\~]$ 
[C:\~]$ 
[C:\~]$ 

Connecting to 192.168.32.99:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.

Last login: Wed Sep 15 20:27:12 2021
[root@localhost ~]# history 
    1  history 

1.4、终端自动注销

闲置600秒后自动注销:
[root@localhost ~]#vim .bash_profile  编辑全局变量配置文件
    export TMOUT=60  输出timeout=60
[root@localhost ~]# source .bash_profile  刷新
[root@localhost ~]# echo $TMOUT 查看注销时间

在这里插入图片描述

[root@localhost ~]# vim .bash_profile 
[root@localhost ~]# source .bash_profile
[root@localhost ~]# echo $TMOUT
60

二.使用su命令切换用户

2.1、su命令用途及用法

用途:Substitute User,切换用户
格式:su -目标用户

[root@localhost ~]# su - lisi 
上一次登录:三 9月 15 20:52:09 CST 2021pts/0 上
[lisi@localhost ~]$ pwd
/home/lisi
[lisi@localhost ~]$ echo $PATH 
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/lisi/.local/bin:/home/lisi/bin

2.2、密码验证

  • root—任意用户,不验证密码
  • 普通用户—其他用户,验证目标用户的密码
  • su - root 带-选项表示将使用目标用户的登陆Shell环境

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

  • 将允许使用su命令的用户加入wheel组
  • 启用pam_wheel认证模块
gpasswd -a 用户名 wheel     将用户名加入到wheel组中
vim /etc/pam.d/su 

auth    sufficient   pam_rootok.so
............
#auth   required     pam_wheel.so use_uid
#%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
password        include         system-auth
session         include         system-auth
session         include         postlogin
session         optional        pam_xauth.so

三.Linux中的PAM安全认证

1.su命令的安全隐患
默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root)的登录密码,带来安全风险为了加强su命令的使用控制,可借助于PAM认证模块,只允许极个别用户使用su命令进行切换

2.PAM(Pluggable Authentication Modules)可插拔式认证模块
是一种高效而且灵活便利的用户级别的认证方式
也是当前Linux服务器普遍使用的认证方式

3.PAM认证原理
一般遵循的顺序
Service(服务)->PAM(配置文件)一pam_*.so
首先要确定哪一项服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证文件(位于/lib64/security下)进行安全认证
用户访问服务器时,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证
不同的应用程序所对应的PAM模块是不同的

4.PAM认证的构成
查看某个程序是否支持PAM认证,可以用ls命令
示例:查看su是否支持PAM模块认证
Is /etc/pam.d | grep su
查看su的PAM配置文件:cat/etc/pam.d/su
每一行都是一个独立的认证过程
每一行可以区分为三个字段
认证类型
控制类型
PAM模块及其参数
cat /etc/pam.d/system-auth
第一列代表PAM认证模块类型
auth;对用户身份进行识别,如提示输入密码,判断是否为root
accounl:对账号各项属性进行检查,如是否允许登录系统,帐号是否已经过期,是否达到最大用户数等。
password:使用用户信息来更新数据,如修改用户密码。
session:定义登录前以及退出后所要进行的会话操作管理,如登录连接信息,用户数据的打开和关闭,挂载文件系统。能连接几个终端
第二列代表PAM控制标记
required:表示需要返回一个成功值,如果返回失败,不会立刻将失败结果返回,而是继续进行同类型的下一验证,所有此类型的模块都执行完成后,再返回失败。
requisite:与required类似,但如果此模块返回失败,则立刻返回失败并表示此类型失败。
sufficient:如果此模块返回成功,则直接向程序返回成功,表示此类成功,如果失败,也不影响这类型的返回值
optional:不进行成功与否的返回,也不影响这类型的返回值。一般不用于验证,只是显示信息(通常用于session类型),
include:表示在验证过程中调用其他的PAM配置文件。
比如很多应用通过完整调用/etc/pam.d/ayatem-auth(主要负责用户登录系统的认证工作)来实现认证而不需要重新逐一去写配置项。
第三列代表PAM模块,默认是在/lib64/security/目录下,如果不在此默认路径下,要填写绝对路径。同一个模块,可以出现在不同的模块类型中,它在不同的类型中所执行的操作都不相同,这是由于每个模块针对不同的模块类型编制了不同的执行函数。
第四列代表PAM模块的参数,这个需要根据所使用的模块来添加。
传递给模块的参数。参数可以有多个,之间用空格分隔开

5.PAM安全认证流程
控制类型也称做Control Flags,用于PAM验证类型的返回结果
1.required验证失败时仍然继续,但返回Fail
2.requisite验证失败则立即结束整个验证过程,返回Fail
3.sufficient验证成功则立即返回,不再继续,否则忽略结果并继续
4.optional不用于验证,只显示信息

四.使用sudo机制提权

4.1、sudo命令用途及用法

用途:以其他用户身份(如root)执行授权命令
用法:sudo 授权命令

4.2、配置授权

visudo 或者 vim /etc/sudoers
格式:用户 主机名列表=命令程序列表
可以使用通配符“ * ”号任意值和“ !”号进行取反操作。

4.3、别名创建

[root@localhost ~]# vim /etc/sudoers
Host_Alias MYHOST = localhost
User_Alias MYUSER = zhangsan,lisi,liwu
Cmnd_Alias MYCMD = /usr/sbin/useradd,/usr/bin/passwd

MYUSER         MYHOST = NOPASSWD : MYCMD

在这里插入图片描述

[lisi@localhost root]$ sudo useradd liba
[lisi@localhost root]$ id liba
uid=1005(liba) gid=1005(liba) 组=1005(liba)
[lisi@localhost root]$ sudo passwd liba
更改用户 liba 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

4.4、查看sudo操作记录

[root@localhost ~]# vim /etc/sudoers
Defaults logfile = /var/log/sudo   //将该命令添加至最后一行:wq保存并退出即可

五.开关机安全控制

5.1、调整BIOS引导设置原则

  • 将第一引导设备设为当前系统所在硬盘
  • 禁止从其他设备(光盘、 U盘、网络)引导系统
  • 将安全级别设为setup,并设置管理员密码

5.2、GRUB限制及实现

方法1:直接设置grub2—setpasswd 设置grub密码
在这里插入图片描述
方法2

  • 通常情况下在系统开机进入GRUB菜单时,按e键可以查看并修改GRUB引导参数,这对服务器是一个极大的威胁。
  • 可以为GRUB菜单设置一个密码,只有提供正确的密码才被允许修改引导参数。
[root@localhost ~]# grub2-mkpasswd-pbkdf2 
输入口令:
Reenter password: 
PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.2D96787097EB717901FC663B72435E8E3A20D4C293A4977486A09E9039535711B402A5135FA758CADF5A6FCAA9E0354FFF336C44379EE7C36A2ED144178058E9.EEFD95507926800D13491280B75E30A8049C08A7EA007032F3E083B38C9A5B29530D1A2A716AF174FEA05F898D69BA2C6E26F92615511BEFECFB3EAA0D0AD05C

[root@localhost grub.d]# vim 00_header把grub2-mkpasswd-pbkdf2 查看的内容复制过来
在这里插入图片描述
[root@localhost grub.d]# grub2-mkconfig -o /boot/grub2/grub.cfg生成新的grub.cfg 文件

[root@localhost grub.d]# grub2-mkconfig -o /boot/grub2/grub.cfg 
Generating grub configuration file ...
/etc/grub.d/00_header: line 361: warning: here-document at line 359 delimited by end-of-file (wanted `EOF')
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-4bf736ee567f4452a7da314101d15437
Found initrd image: /boot/initramfs-0-rescue-4bf736ee567f4452a7da314101d15437.img
error: out of memory.
error: syntax error.
error: Incorrect command.
error: syntax error.
Syntax error at line 143
Syntax errors are detected in generated GRUB config file.
Ensure that there are no errors in /etc/default/grub
and /etc/grub.d/* files or please file a bug report with
/boot/grub2/grub.cfg.new file attached.

在这里插入图片描述

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

6.1、系统弱口令

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

解压
[root@localhost opt]#tar zxvf john-1.8.0.tar.gz 
​
安装软件编译工具
[root@localhost src]#yum install gcc gcc-c++ make -y
​
进行编译安装
[root@localhost src]#make clean linux-x86-64
​
准备待破解的密码文件
[root@localhost src]#cd ..   切换至上级目录
[root@localhost john-1.8.0]#cp /etc/shadow /opt/shadow.txt  准备密码文件
 
执行暴力破解
[root@localhost john-1.8.0]#cd /opt/john-1.8.0/run/
[root@localhost run]#./john /opt/shadow.txt 
​


[root@localhost src]# yum install gcc gcc-c++ make -y
[root@localhost src]# make clean linux-x86-64

[root@localhost src]# cd ..
[root@localhost john-1.8.0]# ls
doc  README  run  src
[root@localhost john-1.8.0]# cp /etc/shadow /opt/shadow.txt
[root@localhost john-1.8.0]# ls /opt/
john-1.8.0  john-1.8.0.tar.gz  rh  shadow.txt
[root@localhost john-1.8.0]# cd /opt/john-1.8.0/run/
[root@localhost run]# ls
ascii.chr   john       lm_ascii.chr  makechr       relbench  unique
digits.chr  john.conf  mailer        password.lst  unafs     unshadow
[root@localhost run]# ./john /opt/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 status
123123           (liba)
123123           (root)
123123           (kehuailunnade)
3g 0:00:00:46 100% 2/3 0.06478g/s 200.4p/s 221.1c/s 221.1C/s leslie..boston
Use the "--show" option to display all of the cracked passwords reliably
Session completed

6.2、网络端口扫描

一.NMAP概述:
1.是一个强大的端口扫描类安全评测工具,支持 ping 扫描、多端口检测等多种技术
2.官方网站:http://nmap.org/
3.CentOS 7.7光盘中安装包nmap-6.40-7.el7.x86_64.rpm
二.安装 NMAP 软件包
yum install -y nmap //然后安装nmap软件包

三.nmap命令常用选项与对应扫描类型

常见 的选 项选项的作用
-p指定扫描的端口。
-n禁用反向DNS解析(以加快扫描速度)
-sSTCP的SYN扫描(半开扫描),只向目标发出SYN数据包,如果收到SYNACK响应包就认为目标端口正在监听,并立即断开连接; 否则认为目标端口并未开放。
-sTTCP连接扫描,这是完整的TCP扫描方式(默认扫描类型),用来建立一个TCP连接,如果成功则认为目标端口正在监听服务,否 则认为目标端口并未开放。
-sFTCP的FIN扫描,开放的端口会忽略这种数据包,关闭的端口会回应RST数据包。许多防火墙只对SYN数据包进行简单过滤,而 忽略了其他形式的TCP攻击包。这种类型的扫描可间接检测防火墙的健壮性。
-sUUDP扫描,探测目标主机提供哪些UDP服务,UDP扫描的速度会比较慢。
-sPICMP扫描,类似于ping检测,快速判断目标主机是否存活,不做其他扫描。
-P0跳过ping检测,这种方式认为所有的目标主机是存活的,当对方不响应ICMP请求时,使用这种方式可以避免因无法ping通而放 弃扫描。

[root@localhost ~]# nmap -sT 127.0.0.1查看本机开放的TCP端口
[root@localhost ~]# nmap -sU 127.0.0.1 查看本机开放的UDP端口
[root@localhost ~]# nmap -n -sP 192.168.32.0/24 检测192.168.32.0/24网段有多少存活的主机

[root@localhost ~]# nmap -sT 127.0.0.1

Starting Nmap 6.40 ( http://nmap.org ) at 2021-09-22 21:14 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00063s 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.05 seconds

[root@localhost ~]# nmap -sU 127.0.0.1

Starting Nmap 6.40 ( http://nmap.org ) at 2021-09-22 21:16 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00012s latency).
Not shown: 998 closed ports
PORT     STATE         SERVICE
111/udp  open          rpcbind
5353/udp open|filtered zeroconf

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


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

Starting Nmap 6.40 ( http://nmap.org ) at 2021-09-22 21:18 CST
Nmap scan report for 192.168.32.1
Host is up (0.00071s latency).
MAC Address: 00:50:56:C0:00:08 (VMware)
Nmap scan report for 192.168.32.2
Host is up (0.000087s latency).
MAC Address: 00:50:56:E7:1B:08 (VMware)
Nmap scan report for 192.168.32.254
Host is up (0.00013s latency).
MAC Address: 00:50:56:EC:A5:43 (VMware)
Nmap scan report for 192.168.32.96
Host is up.
Nmap done: 256 IP addresses (4 hosts up) scanned in 2.00 seconds

标签:lisi,系统安全,密码,passwd,etc,Linux,root,localhost
来源: https://blog.csdn.net/wanghaoyang0324/article/details/120399868

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有