IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> linux系统安全措施 -> 正文阅读

[系统运维]linux系统安全措施


账号安全控制

基本安全措施

系统账号的清理
将非登录用户的Shell设为/sbin/nologin
在我们使用Linux系统时,除了用户创建的账号之外,还会产生系统或程序安装过程中产生的许多其他账号,除了超级用户root外,其他账号都是用来维护系统运作的,一般不允许登录,常见的非登录用户有bin、adm、mail、lp、ftp等。
usermod -s /sbin/nologin yysn
在这里插入图片描述

锁定长期不使用的账号
usermod -L test1 锁定用户账号方法一
passwd -l test2 锁定用户账号方法二
usermod -U test1 解锁用户账号方法一
passwd -u test2 解锁用户账号方法二

删除无用账号
userdel test1 (完全清理继续用userdel -rf test1)
userdel -r test2

锁定账号文件passwd、shadow
chattr +i /etc/passwd /etc/shadow 锁定文件,包括root也无法修改
chattr -i /etc/passwd /etc/shadow 解锁文件
lsattr /etc/passwd /etc/shadow 查看文件状态属性
在这里插入图片描述
密码安全控制
设置密码有效期
chage -M 60 yysn 这种方法适合修改已经存在的用户
在这里插入图片描述

vim /etc/login.defs
PASS_MAX_DAYS 30 这种适合以后添加新用户
在这里插入图片描述
要求用户下次登录时修改密码
chage -d 0 yysn强制要求用户下次登陆时修改密码

命令历史、自动注销
命令历史限制:
减少记录命令的条数
注销时自动情况命令历史

减少记录命令的条数
vim /etc/profile进入配置文件修改限制命令条数。适合新用户
HISTSIZE=200修改限制命令为200条,系统默认是1000条profile
source /etc/刷新配置文件,使文件立即生效
在这里插入图片描述

export HISTSIZE=200适用于当前用户
source /etc/profile
source /etc/profile刷新配置文件,使文件立即生效

vim ~/.bash_history进入文件,删除所有记录

注销时自动清空命令:
vim ~/.bashrc
echo “” >~ /.bash_history

终端自动注销
闲置600秒后自动注销:
vim .bash_profile进入配置文件
export TMOUT=600全局声明超过600秒闲置后自动注销终端
source bash_profile
echo $TMOUT 查询自动注销时间
在这里插入图片描述

在这里插入图片描述

export TMOUT=600
如果不在配置文件输入这条命令,那么是对当前用户生效

vim .bash_profile
#export TMOUT=600注释掉这条命令,就不会自动注销了

用户切换与提权(加入wheel组)

su命令—切换用户

1.用途及用法
用途:Substitute User,切换用户
格式: su - 目标用户(横杠“-”代表切换到目标用户的家目录)
root - - ->任意用户,不验证密码
普通用户- - ->其他用户,验证目标用户的密码带“-”表示将使用目标用户的登录shell环境

查看su操作记录
安全日志文件:/var/ log/secure

限制su命令用户
默认情况下,任何用户都允许使用su命令,从而有机会反复尝试其他用户(如 ropt)的登录密码,这样带来了安全风险。为了加强su命令的使用控制,可以借助于 pam_wheel认证模块,只允许极个别用户使用su命令进行切换。实现过程如下:将授权使用su命令的用户添加到wheel组,修改/etc/pam.d/su认证配置以启用pam_wheel认证。
在/etc/pam.d/su文件里设置禁止用户使用su命令
vim /etc/pam.d/su
2 # auth sufficient pam_ rootok.so
6 #auth required pam_ wheel.so use__uid
a)以上两行是默认状态(即开启第一行,注释第二行),这种状态下是允许所有用户间使用su命令进行切换的。
b)两行都注释也是运行所有用户都能使用su命令,但root’下使用su切换到其他普通用户需要输入密码;如果第一行不注释,则root使用su切换普通用户就不需要输入密码(pam rootok.
so模块的主要作用是使uid为o的用户,即root用户能够直接通过认证而不用输入密码。)c)如果开启第二行,表示只有root用户和wheel组内的用户才可以使用su命令
d)如果注释第一行,开启第二行,表示只有wheel组内的用户才能使用su命令,root用户也被禁用su命令。
gpasswd -a zhangsan wheel #添加授权用户 zhangsan正在将用户"zhangsan"加入到"wheel"组中
grep wheel /etc/group #确认 wheel组成员wheel?10 : zhangsan
在这里插入图片描述
vim /etc/pam.d/su 取消第六行的注释,启用命令
在这里插入图片描述
sudo机制提升权限
使用sudo机制提升
visudo
或vi /etc/sudoers(此文件的默认权限为440,[保存退出时必须执行":wq!“命令来强制操作)
语法格式:
用户 主机名=命令程序列表
用户 主机名=(用户) 命令程序列表
用户:直接授权指定的用户名,或采用”%组名"的形式(授权一个组的所有用户)。主机名:使用此规则的主机名。没配置过主机名时可用localhost,有配过主机名则用实际的主机名,ALL则代表所有主机
用户:用户能够以何种身份来执行命令。此项可省略,缺省时以root用户的身份来运行命令
命令程序列表:允许授权的用户通过sudo方式执行的特权命令,需填写命令程序的完整路径,多个命令之间以逗号",“进行分隔。ALL则代表系统中的所有命令
示例
Tom ALL=/ sbin/ifconfig
Jerry localhost=/sbin/* , ! /sbin/reboot, ! /sbin/poweroff#通配符"太"表示所有、取反符号”!"表示排除
wheel ALL=NOPASSWD:ALL
#表示wheel组成员无需验证密码即可使用sudo执行任何命令
Mike ALL=(root) NOPASSWD: /bin/kill,/usr/bin/killall
gpasswd -M lisi wheel##李四加入wheel组

sudo [参数选项]命令

-l列出用户在主机上可用的和被禁止的命令;一般配置好/etc/sudoers后,要用这个命令来查看和测试是不是配置正确的;

-v验证用户的时间戳;如果用户运行sudo,输入用户的密码后,在短时间内可以不用输入口令来直接进行sudo操作;用-v可以跟踪最新的时间戳;

-u指定以以某个用户执行特定操作;

-k删除时间戳,下一个sudo命令要求用求提供密码。

案例一用户别名
使用关键字User_Alias、Host_ Alias、Cmnd Alias来进行设置别名(别名必须为大写)
Host_Alias MYHOSTS = kgc,localhost
User_Alias MYUSERS =zhangsan , wangwu, lisi2

User_Alias USERS=Tom, Jerry ,Mike
Host_Alias HOSTS=localhost, bogon
Cmnd_Alias CMNDS=/sbin/ifconfig,/usr/sbin/useradd,/usr/sbin/userdel
USERS HOSTS=CMNDS

案列二用户别名
例如,以下操作通过别名方式来添加授权记录,允许用户wangliu、wangliu组、useradmin组并且定义命令别名。
User_Alias USERADMIN = wangliu, 8wangliu ,8useradmin
Cmnd_Alias USERADMINCMND=/usr/sbin/useradd,/usr/sbin/usermod,/usr/sbin/userdel,/usr/bin/passwd, !/usr/bin/passwd root取反的优先级最高
USERADMIN ALL=(root) NOPASSWD:USERADMINCMND

验证别名以及命令路径

sudo passwd root测试
解决方法
Cmnd_Alias US8RADNINCMND =/usr/sbin/useradd,/usr/sbin/usermod,/usr/sbin/userdel,/usr/bin/passwd[A-za-z]*,! /usr/ bin/passwd root

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

PAM安全认证

PAM概念

默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root)的登录密码,带来安全风险;为了加强su命令的使用控制,可借助于PAM认证模块,只允许极个别用户使用su命令进行切换。
什么是PAM?
PAM(Pluggable Authentication Modules)可插拔式认证模块
是—种高效而且灵活便利的用户级别的认证方式;
也是当前Linux服务器普遍使用的认证方式。
PAM提供了对所有服务进行认证的中央机制,适用于login,远程登陆,su等应用
系统管理员通过PAM配置文件来制定不同的应用程序的不同认证策略

在这里插入图片描述

PAM认证原理
PAM认证一般遵循的顺序: Service(服务)–>PAM(配置文件)–> pam_*.so;

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

用户访问服务器的时候,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证。不同的应用程序所对应的PAM模块也是不同的。

如果想查看某个程序是否支持PAM认证,可以用ls命令进行查看letc/pam.d/。
ls /etc/pam.d/ | grep su
在这里插入图片描述

PAM的配置文件中的每一行都是一个独立的认证过程,它们按从上往下的顺序依次由PAM模块调用。

开关机安全控制—grup2引导

限制更改GRUB引导参数
通常情况下在系统开机进入GRUB菜单时,按e键可以查看并修改GRUB引导参数,这对服务器是一个极大的威胁。可以为GRUB菜单设置一个密码,只有提供正确的密码才被允许修改引导参数。
方法一:
grub2-mkpasswd-pbkdf2#根据提示设置GRUB菜单的密码
PBKDF2 hash of your password is grub . pbkd…#省略部分内容为经过加密生成的密码字符串
cp / boot/grub2/ grub.cfg / boot/grub2lgrub.cfg.bak
cp letclgrub.d/00_header letclgrub.d/ 0o_header.bakvim letcl grub.d/ 0o_header
cat <<EOF
set superusers=“root”#设置用户名为root
password pbkdf2 root grub .pbkd2…#设置密码,省略部分内容为经过加密生成的密码字符串EOF
grub2-mkconfig -o /boot/grub2/grub.cfg#生成新的grub.cfg文件
重启系统进入GRUB菜单时,按e键将需要输入账号密码才能修改引导参数。
方法二:一步到位
grub2-setpassword

终端及登录控制

限制root只在安全终端登录
禁止普通用户登录:当服务器正在进行备份或调试等维护工作时,可能不希望再有新的用户登录系统。这时候只需要简单地建立/etc/nologin 文件即可。
login 程序会检查/etc/nologin 文件是否存在, 如果存在,则拒绝普通用户登录系统(root 用户不受限制)。
touch /etc/nologin #除root以外的用户不能登录了。
此方法实际上是利用了shutdown 延迟关机的限制机制,只建议在服务器维护期间临时使用。当手动删除/etc/nologin文件或者重新启动主机以后,即可恢复正常。
vi /etc/securetty

虚拟机内 远程不可
虚拟控制台的选择可以通过按下Ctrl+Alt键和功能键Fn(n=1~6)来实现(tty1-tty6) tty1 图形界面 tty2-6 字符界面,注释 tty4,root 就不能登录。

使用last命令显示用户或终端登录情况。
Linux命令last
该命令用来列出口前与过去登录系统的用户相关信息。指令英文原义: show listing of last logged in users执行权限:有些需要特殊权限
指令所在路径: /usr/ bin/ last
执行last指令时,它会读取位于/var/log目录下名称为wtmp的文件,并把该给文件的内容记录的登录系统的用户名单全部显示出来。默认是显示wtmp的记录,btmp能显示的更详细,可以显示远程登录,例如ssh登录。
utmp文件中保存的是当前正在本系统中的用户的信息。
wtmp文件中保存的是登录过本系统的用户的信息。

系统弱口令检测-John the Ripper

John the Ripper,简称为JR,通过对shadow文件的口令分析,可以检测密码强度。
官方网站: http://www.openwall.com/john/。
JohntheRipper是一-款开源的密码破解工具,可使用密码字典(包含各种密码组合的列表文件)来进行暴力破解。
解压工具包:
cd / opt
tar.zxf.john-1.8.o.tar.gz
#安装软件编译工具:
yum install -y gcc gcc-c++ make
#切换到src子目录:
cd /opt/john-1.8.0/src
#进行编译安装:
make clean linux-x86-64
#准备待破解的密码文件:
cp /etc/shadow /opt/shadow.txt
#执行暴力破解:
cd /opt/john-1.8.0 /run
./john /opt/shadow.txt
#查看已破解出的账户列表:
./john --show /opt/ shadow .txt

使用密码字典文件:

john. pot #清空己破解出的账户列表,以使便重新分析
./john --wordlist=./password.1st /opt/ shadow.txt #使用指定的字典文件进行破解

网络端口扫描

SYN建立链接工ACK确认
FIN结束断开
PSH传送 0 数据缓存上层应用协议
RST重置
URG紧急
rpm -qa l grep nmap查看nmapyum install -y nmap
nmap命令常用的选项和描类型-p:指定扫描的端口。
-n:禁用反向DNS解析(以加快扫描速度)
-sS:TCP的SYN扫描(半开扫描),只向目标发出sYn数据包,如果收到SYN/ACK响应包就认为目标端口正在监听,并立即断开连接;否则认为目标端口并未开放。
-sT:TCP连接扫描,这是完整的rce扫描方式(默认扫描类型),用来建立一个TCP连接,如果成功则认为目标端口正在监听服务,否则认为目标端口并未开放。
-sF:TCP的FIN扫描,开放的端口会忽略这种数据包,关闭的端口会回应RST数据包。许多防火墙只对srw数据包进行简单过滤,而忽略了其他形式的TCP攻击包。这种类型的扫描可间接检测防火墙的健壮性。
-su: UDP扫描,探测目标主机提供哪些UDP服务,UDP扫描的速度会比较慢。
-sP: ICMP扫描,类似于ping检测,快速判断目标主机是否存活,不做其他扫描。
-P0:跳过ping检测,这种方式认为所有的目标主机是存活的,当对方不响应ICMP请求时,使用这种方式可以避免因无法ping通而放弃扫描。

示例:
#分别查看本机开放的TCP端口、UDP端口
nmap -sT 127.0.0.1
nmap -sU 127.0.0.1
#检测192.168.49.0/24网段有哪些主机提供HTTP服务
nmap -p 80 192.168.80.0/24
#检测192.168.49.0/24网段有哪些存活主机
nmap -n -sP 192.168.80.0/24

再扩展
通过pam模块来防止暴力破解ssh l[root@benet ~]# vim /etc/pam.d/ sshd在第一行下面添加一行:
auth requiredpam_tally2.so deny=3unlock_time=600 even_deny_root root_unlock_time=1200说明:尝试登陆失败超过3次,普通用户600秒解锁,root用户1200秒解锁
手动解除锁定:
查看某一用户错误登陆次数:pam_tally2 --user
例如,查看work用户的错误登陆次数:pam_tally2 --user work
清空某一用户错误登陆次数:pam_tally2 —-user --reset
例如,清空work用户的错误登陆次数,pam_tally2 —-user work --reset

总结

账号基本安全措施:
系统账号清理、密码安全控制、命令历史清理、自动注销用户
切换与提权:
su、sudo
开关机安全控制:
BIOS引导设置、禁止Ctrl+Alt +Del快捷键、GRUB菜单设置密码
终端控制:
John the Ripper工具 、namp命令

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-01-04 13:49:25  更:2022-01-04 13:49:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 6:24:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码