LINUX系统安全及应用

前言

Linux是完全免费使用和自由传播的符合POSIX标准的类Unix操作系统,遵循公共版权许可证(GPL),源代码公开.自由修改、自由发布,能在各类硬件平台上运行的多用户。多任务的操作系统。
Linux在服务器、嵌人式等领域应用广泛并取得了很好的成绩,在桌面系统方面,也逐渐受到人们的欢迎, Linux系统的安全问题也逐渐受到人们的重视。用户可以根据自已的环境定制Linux系统.提供补丁。
检查源代码中的安全漏洞,也可以对Linux系统作- - 些简单的防范措施来增强系统的安全。

一、账号安全基本措施

1.1、系统账号清理

●将非登录用户的ShelI设为/sbin/nologin
●锁定长期不使用的账号
●删除无用的账号
●锁定账号文件passwd、shadow

查看当前不可登录用户
在这里插入图片描述
查看当前可登录用户
在这里插入图片描述

锁定长期不用的账号
passwd,usermod命令都可以用来锁定和解锁账号
在这里插入图片描述
锁定文件和解锁文件
如果服务器中的用户账号已经固定,不在进行更改,还可以采取锁定账号配置文件的方法
使用chattr命令,分别结合“+i”“-i”选项来锁定,解锁文件,使用lsattr命令可以查看文件锁定情况
在这里插入图片描述

1.2、密码安全控制

●设置密码有效期
●要求用户下次登录时修改密码

对于未创建的用户,使用此命令修改配置文件在这里插入图片描述
对于已创建的用户,用这条命令

[root@localhost ~]# chage -M 30 tom2

要求用户下次登录时修改密码
在某些情况下会要求用户初次登录的时候必须更改密码

[root@localhost ~]# chage -d 0 tom1

1.3、命令历史限制

●减少记录的命令条数
●注销时自动清空命令历史

设置最多只记录200条历史命令
[root@localhost ~]# vi /etc/profile
将其中的HISTSIZE=1000,修改为HISTSIZE=200
[root@localhost ~]# source /etc/profile   

在这里插入图片描述

[root@localhost ~]# vi .bash_logout 
#~/.bash_logout
rm -rf .bash_history                               ##删除此文件
history -c                                         ##清除历史命令
clear

在这里插入图片描述

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

[root@localhost ~]# vi /etc/profile                ##适用于新登录用户
export TMOUT=60                                    ##将闲置时间设为60S
[root@localhost ~]# source /etc/profile            ##使设置生效
[root@localhost ~]# export TMOUT=30                ##对当前用户生效

在这里插入图片描述

1.4、使用su命令切换用户

默认情况下,任何用户都允许使用su 命令,从而有机会反复尝试其他用户(如root)
的登录密码,这样带来了安全风险。为了加强su命令的使用控制,可以借助于pam _wheel
在这里插入图片描述
将允许使用su命令的用户加入wheel组
在这里插入图片描述

1.5、Linux中的PAM安全认证

1.5.1、su命令的安全隐患

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

1.5.2、PAM(Pluggable Authentication Modules)可插拔式认证模块

●是一种高效而且灵活便利的用户级别的认证方式
●也是当前Linux服务器普遍使用的认证方式

1.5.3、PAM认证原理

●PAM认证一-般遵循的顺序: Service (服务) - >PAM (配置文件) - -pam *.so;

●PAM认证首先要确定哪一项服务,然后加载相应的PAM的配置文件(位于/etc/pam.d
下),最后调用认证文件(位于lib/security下)进行安全认证;
用户访问服务器的时候,服务器的某- -个服务程序把用户的请求发送到PAM模块进行
认证。不同的应用程序所对应的PAM模块也是不同的。
●如果想查看某个程序是否支持PAM认证,可以用Is 命令进行查看,例如执行以下命令
可以查看su是否支持PAM模块认证。

1.5.4、PAM认证的构成

■查看某个程序是否支持PAM认证,可以用Is命令
●示例:查看su是否支持PAM模块认证

Is /etc/pam.d | grep su

查看su的PAM配置文件: cat /etc/pam.d/su
●每一-行都是一个独立的认证过程:
●每一-行可以区分为三个字段
认证类型
◆控制类型
◆PAM模块及其参数

1.5.5、PAM安全认证流程

■控制类型也称做Control Flags,

在这里插入图片描述
用于PAM验证类型的返回结果
1.required验证失败时仍然继续,但返回Fail
2.requisite验证失败则立即结束整个验证过程,返回Fail
3. sufficient验证成功则立即返回,不再继续,否则忽略结果并继续
4.optional不用于验证,只显示信息(通常用于session类型)

1.6使用sudo机制提升权限

1.6.1、su命令的缺点

用过su命令可以非常方便的切换为另一个用户,但前提条件是必须知道目标用户的登录密码
对于生产环境中的Linux服务器,每多一个人知道特权密码,其安全风险也就增加一分

1.6.2、sudo命令的用途及用法

sudo 是一种权限管理机制,管理员可以授权于一些普通用户去执行一些 root 执行的操作,而不需要知道 root 的密码
语法格式:sudo [参数]

1.6.3、配置sudo授权

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

[root@localhost ~]# visudo
...
## Same thing without a password
tom1 localhost=/sbin/ifconfig                                  ##tom1在本地主机拥有ifconfig权限
%wheel  ALL=(ALL)       NOPASSWD: ALL
[root@localhost ~]# su - tom2                                  ##我们先切换到tom2用户
[tom2@localhost ~]$ sudo ifconfig ens33 11.11.11.11            ##尝试更改IP地址
[sudo] tom2 的密码:                              
tom2 不在 sudoers 文件中。此事将被报告。                         ##无法修改IP地址
[tom2@localhost ~]$ exit                                       ##登出
[root@localhost ~]# su - tom1                                  ##切换到tom1用户
[tom1@localhost ~]$ sudo ifconfig ens33:2 11.11.11.11          ##修改网卡地址
[sudo] tom1 的密码:
[tom1@localhost ~]$ ifconfig                                   ##修改成功

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

二、系统引导和登录控制

2.1、开关机安全控制

2.1.1、调整BIOS引导设置

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

2.1.2、GRUB限制

●使用grub2-mkpasswd-pbkdf2生成密钥
●修改/etc/grub.d/0O_ header文件中,添加密码记录
●生成新的grub.cfg配置文件

[root@localhost ~]# grub2-setpassword                                   ##生成grub2菜单密码
Enter password: 
Confirm password: 
[root@localhost ~]# cat /boot/grub2/user.cfg                            ##查看密码是否添加
GRUB2_PASSWORD=grub.pbkdf2.sha512.10000.C3428AF0D7A62E00D540E2C8F9014F64CE6CDAD3632BD5B1D388AA09F6EE038B9494BD1E5B98AA7C7E97BC4936BDF34D8B08158E04009461BB4807BA13953D5D.DBAE85EFE16710D093B543E210F1636880957802C82141ECCB688E5D021B46DFA42778BDAF4E72C63BFC25427B78EE28BA92917A800B444556DA4D8968E1035E
[root@localhost ~]# reboot                                              ##重新启动

在这里插入图片描述

在grub引导界面按e进去,发现需要输入用户名密码
在这里插入图片描述
在这里插入图片描述

2.2、终端及登录控制

在Linux服务器中,默认开启了六个ty 终端,允许任何用户进行本地登录。关于本地
登录的安全控制,可以从以下几个方面着手。

2.2.1、禁止root用户登录

在Linux系统中,login 程序会读取/etc/securetty文件,以决定允许root 用户从哪些终
端(安全终端)登录系统。若要禁止root 用户从指定的终端登录,只需从该文件中删除或
者注释掉对应的行即可。例如,若要禁止root用户从tty5、tty6登录,可以修改/etc/securetty
文件,将tty5、 tty6 行注释掉。
在这里插入图片描述

限制root登录6和7终端

2.2.2、禁止普通用户登录

当服务器正在进行备份或调试等维护工作时,可能不希望再有新的用户登录系统。这时
候,只需要简单地建立/etc/nologin文件即可。login 程序会检查/etc/nologin文件是否存在,
如果存在,则拓绝普通用户吞录系统(root用户不受限制)。

建立/etc/nologin文件
删除nologin文件或重启后即恢复正常

[root@localhost ~]# touch /etc/nologin      ##创建此文件后其他用户已经无法登陆
[root@localhost ~]# rm -rf /etc/nologin     ##删除此文件即可取消限制

在这里插入图片描述

三、弱口令检测

3.1、Joth the Ripper

Joth the Ripper, 简称为JR
款密码分析工具,支持字典式的暴力破解
●通过对shadow文件的口令分析,可以检测密码强度

3.2通过john工具查看自己的密码

使用xftp将John软件放到opt目录,进行解压
在这里插入图片描述

[root@localhost opt]# tar zxvf john-1.8.0.tar.gz                   ##进行解压
[root@localhost opt]# cd john-1.8.0/                               ##进入解压后的目录
[root@localhost john-1.8.0]# cd src/                               ##进入src目录
[root@localhost src]# make clean linux-x86-64                      ##进行编译
[root@localhost src]# cd /opt/john-1.8.0
[root@localhost john-1.8.0]# cd run                                ##进入run目录
[root@localhost run]# cp /etc/shadow /root/shadow.tx     ##拷贝shadow文件到/root/shadow.txt    
[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 status
123456           (root)                                            ##破解成功
123456           (tom2)
2g 0:00:01:42 17% 2/3 0.01947g/s 355.0p/s 356.9c/s 356.9C/s kevin2..rocky2
Use the "--show" option to display all of the cracked passwords reliably
Session aborted 

四、端口扫描

4.1、NMAP

一款强大的网络扫描,安全检测工具
可以探测局域网中那些主机在线,或者某台主机中开了那些端口
NMAP的扫描语法
nmap [扫描类型] [选项] <扫描目标…>
其中,扫描目标可以是主机名、IP地址或网络地址等,多个目标以空格分隔;常用的选项有“-p“"-n”,分别用来指定扫描的端口、禁用反向DNS解析(以加快扫描速度);扫描类型决定着检测的方式,也直接影响扫描的结果。

比较常用的几种扫描类型如下

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

Starting Nmap 6.40 ( http://nmap.org ) at 2020-06-22 20:48 CST
Nmap scan report for 192.168.50.129
Host is up.
Nmap done: 101 IP addresses (1 host up) scanned in 4.12 seconds

[root@localhost run]# nmap -sT 192.168.50.129    ##查看主机192.168.50.129开了哪些TCP端口
Starting Nmap 6.40 ( http://nmap.org ) at 2020-06-22 20:51 CST
Nmap scan report for 192.168.50.129
Host is up (0.0013s latency).
Not shown: 999 closed ports
PORT   STATE SERVICE
22/tcp open  ssh

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值