Linux系统安全及应用

文章目录

一、账号安全基本措施

1.系统账号清理

usermod -s /sbin/nologin 用户名

将非登录用户的Shell设为/sbin/nologin

锁定长期不使用的账号(passwd -l 锁定用户;passwd -u 解锁用户)

删除无用的账号(userdel -r 用户名)

chattr +i 锁定账号文件 chattr -i 解锁

lsattr 查看文件拓展属性

2.密码安全控制

vim /etc/login.defs ------适用于新建用户

PASS_MAX_DAYS 修改密码最大间隔天数,一般设置为30,60,90

PASS_MIN_DAYS 修改密码最小间隔天数

PASS_MIN_LEN 密码最小长度,对root用户无效

PASS_WARN_AGE 密码到期前提示的天数

例: 修改现有用户yy的密码最大有效期为60天

chage:用来修改帐号和密码的有效期限,针对目前系统已经存在的用户

-m:密码可更改的最小天数。为零时代表任何时候都可以更改密码。

-M:密码保持有效的最大天数。chage -M 60 root

-w:用户密码到期前,提前收到警告信息的天数。

-E:帐号到期的日期。过了这天,此帐号将不可用。

chage -E 2019-04-29 test //其中,test为用户,用户将在2019年4月29日失效(不可登录)

-d:上一次更改的日期。

-i:停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。

-l:例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期

3.命令历史限制

vim /etc/profile 默认限制为1000条

history -c 临时清除所有历史命令

或者在/root/.bash_logout里设置退出就删除历史命令记录

4.终端自动注销

vim /etc/profile

export TMOUT=60 设置新登陆的用户超时时间为60秒

设置当前用户超时时间为30秒 (一定要设置)

unset TMOUT 可以取消设置的超时

二、su命令

1.用途及用法

su 目标用户 切换用户

2.限制使用su命令的用户

在/etc/pam.d/su文件里设置禁止用户使用su命令

2 # auth sufficient pam_ rootok.so

6 #auth required pam_ wheel.so use_ _uid

1.以上两行是默认状态(即开启第一行,注释第二行),这种状态下是允许所有用户间使用su命令进行切换的。

2.两行都注释也是运行所有用户都能使用su命令,但root'下使用su切换到其他普通用户需要输入密码;如果第一行不注释,则root使用su切换普通用户就不需要输入密码(pam rootok. so模块的主要作用是使uid为0的用户,即root用户能够直接通过认证而不用输入密码。)

3.如果开启第二行,表示只有root用户和wheel组内的用户才可以使用su命令

4.如果注释第一行,开启第二行,表示只有whee1组内的用户才能使用su命令,root用户也被禁用su命令。

实例:

1.启用wheel认证模块(取消第6行注释)

2.将yy用户加入wheel组

3.只有在wheel组里的成员才能进行su切换

4.查看su操作记录

安全日志文件:/var/log/secure

3.使用sudo提升权限

允许一部分用户拥有管理员的部分权限

1.visudo进入/etc/sudoers

授权配置主要包括用户、主机、命令三个部分,即授权哪些人在哪些主机上执行哪些命 令。各部分的具体含义如下。

注:Runas_Alias:在哪些主机以谁的身份运行 的别名 这个不怎么使用

用户组设置sudo提权

用户(user):直接授权指定的用户名,或采用"%组名"的形式(授权一个组的所有用户)。

主机(MACHINE):使用此配置文件的主机名称。此部分主要是方便在多个主机间共用同一份 sudoers 文件,一般设为 localhost 或者实际的主机名即可。

命令(COMMANDS):允许授权的用户通过 sudo方式执行的特权命令,需填写命令程序的完整路径,多个命令之间以逗号","进行分隔。

实例1:

1.输入visudo进入配置文件,设yy用户能在所有主机上拥有创建和删除用户的root权限

2.测试

sudo -l 可以查看当前用户可以执行的sudo命令

实例2:

设置yy01只能在localhost这台终端上使用无密码登陆

在visudo里设置别名

当使用相同授权的用户较多时,或者相同命令较多时,可以定义别名

User_Alias: 用户别名

Host_Alias: 主机别名

Cmnd_Alias: 命令别名

实例1:

1.设置用户的别名,只允许YYHOST里的终端,可以使用YYCMND里的命令

YYUSER YYHOST=NOPASSWD:YYCMND
如果添加的是组的话(只需要在组号前添加%):

USER_Alias YYUSER=yy,%yy01

如果有不允许的命令可以添加 !

Cmnd_Alias YYCMND =/usr/bin/passwd,!usr/bin/passwd root

允许修改其他用户的密码,但是不允许修改root用户的

2.检查用户yy的权限

三、设置GRUB密码

1.使用 grub2-setpasswd 设置密码

2.设置成功,非root用户无法编辑GRUB

3.取消密码设置

四、禁止终端登陆

1.vi /etc/securetty

选定tty2前加#

2.crtl+alt+f2 进入tty2终端,发现无法登陆

3.其他用户不受影响

五、系统弱口令检测

Joth the Ripper,简称JR

一款开源的密码分析工具,支持字典式的暴力破解

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

1.把安装包放入liunx中

2.输入安装命令

cd /opt

tar zxvf john-1.9.0.tar.gz #解压工具包

yum -y install gcc gcc-c++ make #安装软件编译工具

cd /opt/john-1.9.0/src

make clean linux-x86-64 #切换到src子目录,进行编译安装

cp /etc/shadow /opt/shadow.txt #准备待破解的密码文件

cd /opt/john-1.9.0/run

./john /opt/shadow.txt #切换到run子目录,执行暴力破解

./john --show /opt/shadow.txt #查看已破解出的账户列表

john. pot #清空己破解出的账户列表,以便重新分析

3.查看破解的密码

六、网络端口扫描

NMAP是一个强大的端口扫描类安全评测工具,支持 ping 扫描、多端口检测等多种技术

1.安装NMAP 软件包

yum install -y nmap

2.扫描常用的 TCP 端口

nmap -sT 127.0.0.1


3.扫描常用的 UTP 端口

nmap -sU 127.0.0.1

4.ICMP 扫描

nmap -sP 127.0.0.1

七、通过pam 模块来防止暴力破解ssh

vim /etc/pam.d/sshd #进入配置文件

注解:

deny 指定最大几次认证错误,如果超出此错误,将执行后面的策略。如锁定N秒,如果后面没有其他策略指定时,默认永远锁定,除非手动解锁。

lock_time 锁定多长时间,按秒为单位;

unlock_time 指定认证被锁后,多长时间自动解锁用户;

even_deny_root root用户在认证出错时,一样被锁定

root_unlock_time root用户在登录失败时,锁定多长时间。该选项一般是配合even_deny_root 一起使用的。

相关推荐
糖豆豆今天也要努力鸭11 分钟前
torch.__version__的torch版本和conda list的torch版本不一致
linux·pytorch·python·深度学习·conda·torch
烦躁的大鼻嘎19 分钟前
【Linux】深入理解GCC/G++编译流程及库文件管理
linux·运维·服务器
乐大师19 分钟前
Deepin登录后提示“解锁登陆密钥环里的密码不匹配”
运维·服务器
ac.char26 分钟前
在 Ubuntu 上安装 Yarn 环境
linux·运维·服务器·ubuntu
敲上瘾26 分钟前
操作系统的理解
linux·运维·服务器·c++·大模型·操作系统·aigc
长弓聊编程1 小时前
Linux系统使用valgrind分析C++程序内存资源使用情况
linux·c++
cherub.1 小时前
深入解析信号量:定义与环形队列生产消费模型剖析
linux·c++
梅见十柒1 小时前
wsl2中kali linux下的docker使用教程(教程总结)
linux·经验分享·docker·云原生
Koi慢热1 小时前
路由基础(全)
linux·网络·网络协议·安全
传而习乎1 小时前
Linux:CentOS 7 解压 7zip 压缩的文件
linux·运维·centos