Linux·系统安全及应用

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档加粗样式



一、账户安全控制

(一)、账户安全基本措施

1、passwd和usermod、userdel命令

系统账户清理
将非登录用户的Shell设为/sbin/nologin
锁定长期不使用的账号
删除无用的账号
锁定**账户文件**passwd、shadow
#passwd————passwd -l(锁定) -u(解锁)-S(查看用户状态)-f (强制执行)
#usermod————usermod -L(锁定) -U(解锁) -s(修改登录权限)
#userdel -r 用户名     #删除无用账户

passwd -l 锁定
passwd -u 解锁

在这里插入图片描述
passwd -S 查看用户状态
在这里插入图片描述
在这里插入图片描述

usermod -L 锁定密码

在这里插入图片描述
usermod -U 解锁密码
在这里插入图片描述
usermod -s 修改账号登录的权限,后面要加选项
在这里插入图片描述

将用户liu的Shell设为/sbin/nologin
假设“zhou”这个用户不用做登录选项可以这样设定

在这里插入图片描述
当然你也可以用同样的方式设置成、/bin/bash 就可以了

在这里插入图片描述

2、chattr命令和lsattr命令

如果服务器中的用户账户已经固定,不再进行更改,还可以采用锁定账户配置文件的方式,使用chattr命令,来锁定,解锁文件,使用lsattr命令查看文件锁定情况。

这里的chattr命令相当于将文件冻结
,讲白了冻结后的文件啥也做不了,chattr命令对文件的锁定功能比较强大。

#chattr +i + 目标文件		#锁定文件
#chattr -i + 目标文件		#解锁文件
#lsattr + 目标文件		#查看文件锁定状态
#+i  #锁定————了解passwd和shadow的作用
	##passwd锁定后无法创建用户
	##shadow锁定后无法修改密码

锁定/etc/passwd和/etc/shadow文件,
在这里插入图片描述

此时无法添加,删除账户,也无法更改密码、登录shell、宿主目录等属性信息。

在这里插入图片描述

解锁这两个文件在这里插入图片描述
再次尝试创建lisi用户
在这里插入图片描述
解锁文件就可以重新创建用户。

(二)、密码安全控制

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

可以通过chage -M +指定天数+目标用户

#chage -M +指定天数+目标用户

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

#chage -d 0 用户名  强制下次登陆时修改密码

首先chage -l 查看账户信息
在这里插入图片描述
第一种方法:chage -M +指定天数+目标用户
在这里插入图片描述
第二种方法:也可以通过vi /etc/login.defs进去登录文本文件查询修改

#PASS_MAX_DAYS [数字] 设置密码有效期
#PASS_MIN_DAYS [数字] 表示自上次修改密码以来,最少隔多少天用户才能再次修改密码,默认值0
#PASS_MIN_LEN [数字] 密码最小长度,对于root无效
#PASS_WARN_AGE [数字] 指定在密码到期前多少天,系统就开始提醒用户密码即将到期,默认为7天

在这里插入图片描述

拓展

通过pam模块来防止暴力破解ssh
vim /etc/pam.d/ssh
在第一行下面添加一行:
auth required pam_tally2.so deny=3 unlock_time=600 even_deny_root root_unlock_time=1200

效果:尝试登录失败次数超过三次,普通用户600秒解锁,root用户1200秒解锁

(三)、命令历史限制,终端自动注销

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

bash配置文件读取

/etc/profile: 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行, 并从/etc/profile.d目录的配置文件中搜集shell的设置
/etc /bashrc: 为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取
~/.bash_profile: 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,然后执行用户的.bashrc文件,交互式登录shell调用此文件
~/.bashrc: 该文件包含专用于你的bash,shell的bash信息,当登录时以及每次打开新的shell时,该文件被读取。这里可以设置别名。若删除此文件, 提示符会变成 -bash-3.2$,可以复制/etc/skel/.bashrc到自己的家目录下。交互式非登录shell调用此文件
~/.bash_logout:当每次退出系统(退出bash shell)时,执行该文件,另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承 /etc/profile中的变量,他们是"父子"关系
注意:~/.bash_profile 是交互式、login 方式进入 bash 运行的;~/.bashrc 是交互式non-login 方式进入 bash 运行的。
通常二者设置大致相同,所以通常前者会调用后者

用户登录——>加载~/.bash_profile——>bash_profile中配置了首先是使~/.bashrc生效

.bash_profile 文件中的命令将在该用户每次登录时被执行
.bashrc 文件中的命令会在每次加载 /bin/bash(Shell解释器)
.bash_logout 在退出shell时被读取

/etc/profile 中配置影响全局
~/.bashrc 是生效于用户的

vi /etc/profile		#进入配置用户环境信息的文档
	HISTSIZE=1000		#history存放1000条命令
source /etc/profile   #重新加载用户环境信息的文档
vi .bash_logout		#用户登出系统配置文件
##删除历史指令方法如下
	history c 临时清除
	clear

在这里插入图片描述

在这里插入图片描述

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

这里只会显示20条

vim .bash_history 查看历史命令记录
在这里插入图片描述

在这里插入图片描述

ehco " " > .bash_history #清空记录
在这里插入图片描述

在这里插入图片描述

终端自动注销

闲置600秒后自动注销
vi /etc/profile #适用于新用户登录
export TMOUT=600

在这里插入图片描述

在这里插入图片描述

exprot TMOUT=600 #适用于当前用户
注意,当正在执行的程序代码编译、修改系统配置等耗时较长的操作时,应避免设置TMOUT变量。

二、系统引导和登录控制

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

测试

将授权使用su命令的用户添加到wheel组,修改/etc/pam.d/su 认证配置以启用 pam_wheel认证。
在/etc/pam.d/su文件里设置禁止用户使用su命令
vi /etc/pam.d/su

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

在这里插入图片描述

2 # auth sufficient pam_rootok.os
6 # auth required pam_wheel.so use_uid

①以上两行是默认状态(即开启第一行,注释第二行),这种状态下是允许所有用户间使用su命令进行切换的。
②两行都注释也是允许所有用户都能使用su命令,但root下使用su切换到其他普通用户需要输入密码,如果第一行不注释,则root使用su切换普通用户就不需要输入密码
③如果开启第二行,表示只有root用户和wheel组内的用户才可以使用su命令
④如果注释第一行,开启第二行,表示只有wheel组内的用户才能使用su命令,root用户也被禁用su命令。

auth sufficient pam_wheel.so trust use_uid
这条使得wheel组成员su到root不用输密码

auth required pam_wheel.so use_uid
这条使得非wheel组成员无法切换到root

使用su命令切换用户命令会记录到安全日志/var/log/secure文件中,可以根据需要查看。
在这里插入图片描述

1、sudo命令-提升执行权限

sudo机制介绍:
通过su命令可以非常方便的切换为另一个用户,但是前提条件是必须知道目标用户的登录密码,例如,若要从liu用户切换到root用户,必须知道root用户的密码,对于生产环境中的Linux服务器,每多一个人知道特权密码,都会增加安全风险。

etc/sudoers文件的默认权限为440,需要专门的visudo工具进行编辑,虽然也可以使用vi进行编辑,但保存必须执行":w!"来强制操作,否则系统将提示为只读文件,而拒绝保存,配置文件/etc/sudoers中,授权记录的基本配置格式是

user MACHINE=COMMANDS

用户(user):直接授权指定的用户名,或采用"%组名"的形式(授权一个组的所有用户)
主机(MACHINE):使用此配置文件的主机名称,此部分主要是方便在多个主机间共用同一份sudoers文件,一般设为localhost或者实际的主机名即可。
命令(COMMANDS):允许授权的用户提供sudo方式执行的特权命令,需填写命令程序的完整路径,多个命令之间以逗号“,”进行分隔。
sudo [参数选项] 命令
-l 列出用户在主机上可用的和被禁止的命令,一般配置好/etc/sudoers后,要用这个命令来查看和测试是不是配置正确的
-v 验证用户的时间戳,如果用户运行sudo后,输入用户的密码后,短时间内可以不用输入口令来直接进行sudo操作,用-v可以跟踪最新的时间戳
-u 指定以某个用户执行特定操作
-k 删除时间戳,下一个sudo命令要求用户提供密码

先查看命令路径

在这里插入图片描述
此时用zhou用户是不能使用ifconfig命令的
在这里插入图片描述

进入visudo修改
在这里插入图片描述

在这里插入图片描述

2、启动sudo操作日志

visudo
Defaults logfile = “/var/log/sudq”

sudo日志记录以备管理员查看,应在/etc/sudoers文件中增加"Defaults logfile"设置,如果已经 启动sudo日志,则可以从/var/log/sudo文件中看到用户的sudo操作记录。
注:启用日志:Defaults logfile=/var/log/sudo
另外一个方法是/var/log/secure日志可以查看到sudo操作用户步骤

sudo输入命令第一个默认5分钟

3、终端登录安全控制

限制root用户只在安全终端登录
禁止普通用户登录,当服务器正在进行备份或者调试等维护工作时,可能不希望再有新用户登录系统,这时候只需要简单的建立一个/etc/nologin文件即可,login程序会检测/etc/nologin文件是否存在,如果存在,则拒绝普通用户登录系统

touch /etc/nologin   #除了root以外的用户不能登录

此方法实际上是利用了shutdown延迟关机的限制机制,只建议在服务器维护期间临时使用,当手动删除/etc/nologin文件或者重新启动主机后,即可恢复正常。

指定终端id进行登录
虚拟机内 远程不可用
虚拟控制台的选择可以通过按下Ctrl+Alt建和功能键Fn(n=1~6)来实现(tty1-tty6)tty1图像界面 tty2-6字符界面

4、网络端口扫描nmap

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

测试

nmap -sT 127.0.0.1 #扫描常用的TCP端口

在这里插入图片描述

nmap -sU 127.0.0.1 #扫描常用的UDP端口
在这里插入图片描述

5、netstate——查看当前操作系统的网络连接状态、路由表、接口统计等信息,它是了解网络状态及排除网络服务故障的有效工具

-n 以数字的形成显示相关的主机地址,端口等信息。
-r 显示路由表信息
-a 显示主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口)
-l 显示处于监听(Listening)状态的网络连接及端口信息。
-t 查看TCP相关的信息
-u 查看UDP相关的信息
-p 显示与网络连接相关的进程号,进程 名称信息(该选项需要root权限)

Proto 显示连接使用的协议
RefCnt 表示连接到本套接口上的进程数量
Types 显示套接口的类型
State 显示套接口当前的状态
Path 表示连接到套接口的其他进程使用的路径名

在这里插入图片描述


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值