当前位置:   article > 正文

第十章 Linux系统安全及应用

第十章 Linux系统安全及应用

目录

一、账号安全控制

1、账号安全基本措施

(1)系统账号清理

(2)密码安全控住

(3)命令历史限制

(4)终端自动注销

2、使用su命令切换用户

(1)限制使用su命令的用户

3、Linux中的PAM安全认证

(1)su命令的安全隐患

(2)PAM(Pluggable Authentication Modules)可插拔式认证模版

4、PAM认证原理

(1)一般遵循的顺序

5、PAM认证的构成

6、PAM安全认证流程

(1)控制类型也称做Contril Flags,用于PAM验证类型的返回结果

7、使用sudo机制提升权限

(1)su命令的缺点

(2)sudo命令的用途及用法

(3)配置sudo授权

(4)查看sudo操作记录

(5)查询授权的sudo操作

二、系统引导和登录控制

1、开关机安全控制

(1)调整BIOS引导设置

(2)GRUB限制

2、终端登录安全控制

(1)限制root只在安全终端登录

(2)禁止普通用户登录

三、弱口令检测

1、系统弱口令检测

(1)Joth the Ripper,简称为JR

(2)安装JR工具

(3)检测弱口令账号

(4)密码文件的暴力破解

四、端口扫描

1、网络端口扫描

(1)NMAP

(2)NMAP的扫描    ​编辑

(3)常用的扫描类型


一、账号安全控制

1、账号安全基本措施

(1)系统账号清理

a、将非登录用户的Shall设为/sbin/nologin

usermod -s/sbin/nologin 用户名

b、锁定长期不使用的账号

usermod -L 用户名            passwd -l 用户名

passwd -S 用户名

c、删除无用的账号

userdel[-r]用户名

d、锁定账号文件passwd、shadow

chattr +i/etc/passwd/etc/shadow(锁定文件并查看状态)

isattr /etc/passwd/etc/shadow

chattr -i/etc/passwd/etc/shadow(解锁文件)

账号安全管理
禁止程序用户登录             usermod -s /sbin/nologin 用户名
锁定禁用长期不使用的用户     passwd -l 用户名       usermod -L 用户名        #查看锁定账号状态  passwd -S 用户名
删除无效用户                 userdel -r 用户名
禁止账号和密码的修改         chattr +i /etc/passwd /etc/shadow               #查看锁定文件状态  lsattr
文件名
 

(2)密码安全控住

a、设置密码有效期

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

[root@localhost~]# vi/etc/login.defs(修改密码配置文件适用于新建用户)

PASS_MAX_DAYS    30

[root@localhost~]# chage-M 30 lisi(适用于已有用户)

[root@localhost~]# cat/etc/shadow | grep lisi

 [root@localhost~]# chage -d 0 zhangsan(强制在下次登录时更改密码)

[root@localhost~]# cat /etc/shadow | grep zhangsan(shadow文件中的第三个字段被修改为0)

密码安全管理
设置密码有效期               chage -M 天数  用户名                            #针对已存在的用户,天数为 99999 表示为永不过期
                             vim /etc/login.defs  -->  PASS_MAX_DAYS 天数     #针对新建的用户
强制用户下一次登录修改密码   chage -d 0 用户名

 

(3)命令历史限制

a、减少记录的命令条数

b、登录时自动清空命令历史

(4)终端自动注销

a、闲置600秒后自动注销

历史命令安全管理
查看历史命令        history
限制历史命令数量    vim /etc/profile  -->  export HISTSIZE=XX  -->  source /etc/profile
清空历史命令        history -c      #临时清空
                    vim /etc/profile  -->  > ~/.bash_history

2、使用su命令切换用户

(1)限制使用su命令的用户

a、将允许使用su命令的用户加入wheel组

b、启用pam_wheel认证模块

限制su切换用户
1)将信任的用户加入到wheel组中     gpasswd wheel -a 用户名
2)修改su的PAM认证配置文件         vim /etc/pam.d/su -> 开启 auth   required   pam_wheel.so use_uid 的配置

3、Linux中的PAM安全认证

(1)su命令的安全隐患

a、默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root)的登录密码,带来安全风险

b、为了加强su命令的使用控制,可借助于PAM认证模版,只允许极个别用户使用su命令进行切换

(2)PAM(Pluggable Authentication Modules)可插拔式认证模版

a、是一种高效而灵活便利的用户级别的认证方式

b、也是当前Linux服务器普遍使用的认证方式

4、PAM认证原理

(1)一般遵循的顺序

a、Service(服务)—>PAM(配置文件)—>pam_*.so

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

(3)不同的应用程序对应的PAM模块是不同的

5、PAM认证的构成

(1)查看某个程序是否支持PAM认证,可以使用ls命令

实例:查看su是否支持PAM模块认证

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

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

b、每一行可以区分为三个字段

  • 认证类型
  • 控制类型
  • PAM模块及其参数

6、PAM安全认证流程

(1)控制类型也称做Contril Flags,用于PAM验证类型的返回结果

a、required验证失败时仍继续,但返回Fail

b、requiste验证失败则立即结束整个验证过程,返回Fail

c、suffcient验证成果则立即返回,不在继续,否则忽略结果并继续

d、optional不用于验证,只显示信息(通常用于session类型)

7、使用sudo机制提升权限

(1)su命令的缺点
(2)sudo命令的用途及用法

a、用途:以其他用户身份(如root)执行授权的命令

b、用法:sudo 授权命令

(3)配置sudo授权

a、visudo或者vi /etc/sudoers

b、记录格式:用户 主机名=命令程序列表

sudo提权
visudo     vim /etc/sudoers (要用 wq! 强制保存)
#用户/组授权
用户名  主机名=程序列表                 #命令要用绝对路径表示,支持使用通配符 * 表示所有, ! 表示取反
%组名 主机名=程序列表
用户名  主机名=NOPASSWD: 程序列表       #NOPASSWD: 表示sudo不用密码验证

su切换用户

创建用户及密码

(4)查看sudo操作记录

a、需启用Defaults logfile 配置

b、默认日志文件:/var/log/sudo

启用日志配置以后,sudo操作过程才会被记录

(5)查询授权的sudo操作

a、sudo -l

别名设置
User_Alias  大写别名=用户1, 用户2, ...
Host_Alias  大写别名=主机名1, 主机名2, ...
Cmnd_Alias  大写别名=命令路径1, 命令路径2, ...
用户别名  主机别名=命令别名

#设置sudo日志路径
Defaults logfile = "/var/log/sudo.log"


sudo -l           #普通用户查看有哪些sudo权限   

二、系统引导和登录控制

1、开关机安全控制

(1)调整BIOS引导设置

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

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

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

(2)GRUB限制

a、使用grub2-mkpasswd-pdkbf2生成密钥

b、修改/etc/grub.cfg配置文件

c、生成新的grub。cfg配置文件

服务器一般从第一次开机一直到天荒地老使用设备寿命到达时 (除了中途维护保养)

生成密钥信息

修改文件前先备份

先进去su的PAM认证配置文件  :用户名和密钥的设置中间部分

2、终端登录安全控制

(1)限制root只在安全终端登录

a、安全终端配置:/etc/securetty

(2)禁止普通用户登录

a、建立/etc/nologin文件

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

三、弱口令检测

1、系统弱口令检测

(1)Joth the Ripper,简称为JR

a、一款密码分析工具,支持字典式的百里破解

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

c、官方网站:http://www.openwall.com/john/

(2)安装JR工具

a、安装方法   make   clean   系统类型

b、主程序文件为john

(3)检测弱口令账号

a、获得Linux/unix服务器的shadow文件

b、执行john程序,将shadow文件作为参数

(4)密码文件的暴力破解

a、准备好密码字典文件,默认为password.lst

b、执行john程序,结合--wordlist=字典文件

四、端口扫描

1、网络端口扫描

(1)NMAP

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

b、官方网站:http://nmap.org/

c、CentOS 7.3光盘中安装包nmap-6.40-7.el.x86_64.rpm


 

(2)NMAP的扫描    

(3)常用的扫描类型

a、-sS、-sT、-sF、-sU、-sP、-PO

b、分别查看本机开放的TCP端口、DUP端口

nmap -sT 127.0.0.1

nmap -sU 127.0.0.1

c、检测192.168.4.0/24网段哪些主机提供FTP服务

nmap -p 21 192.168.4.0/24

d、检测192.168.4,0/24网段有哪些存活主机

nmap -n-sP 192.1968.4,0/24

如何查看进程是否已经开启?
systemctl status 进程名
ps aux/-elf | grep 进程名 
netstat/ss -lntup | grep 进程名/:端口
lsof -i :端口  


如何通过端口查看进程号?
netstat -lntup | grep :端口
ss -lntup | grep :端口
lsof -i :端口  


对新服务器做过哪些初始化操作?
安装操作系统
设置网络,比如 网卡IP、网关、路由、DNS服务器地址、双网卡绑定bond(在物理机环境中使用)
设置主机名         hostnamectl set-hostname
设置ntp时间同步    ntpd    chronyd    ntpdate
设置防火墙规则     iptables  firewalld
关闭selinux        setenforce 0      /etc/selinux/config
精简开机启动服务   systemctl enable crond rsyslog network sshd
设置yum仓库镜像源  /etc/yum.repos.d/
磁盘使用lvm或raid   
升级linux内核


对服务器初始化后做过哪些安全加固?
禁止 root 用户远程登陆        /etc/ssh/sshd_config   --> PermitRootLogin no
修改 ssh 端口号               /etc/ssh/sshd_config   --> Port
普通用户限制 su 切换用户      /etc/pam.d/su
普通用户通过 sudo 授权管理    visudo   /etc/sudoers
锁定关键系统文件              chattr +i
设置历史命令保存条数          /etc/profile   HISTSIZE
设置账户超时时间              /etc/profile   TMOUT
限制用户的登录次数            /etc/pam.d/sshd
设置用户密码强度              /etc/pam.d/system-auth
接入堡垒机或跳板机

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/614226
推荐阅读
相关标签
  

闽ICP备14008679号