Linux上的系统安全应用和控制

引言:Linux服务器以安全、高效、稳定等优势被广泛应用,Linux系统提供了很多机制来确保系统安全。

目录

一、系统账号清理

二、密码安全控制

三、命令历史限制

四、终端自动注销

五、限制su命令切换用户

六、PAM安全认证

七、使用sudo机制提升权限

八、限制更改GRUB引导参数

九、系统弱口令检测

十、网络端口扫描

1.NMAP

2.nmap命令常用的选项和描类型


一、系统账号清理

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

锁定长期不使用的账号

删除无用账号

锁定账号文件passwd,shadow

chattr命令

“+”:在原有参数设定基础上,追加参数;

“-”:在原有参数设定基础上,移除参数;

“=”;更新为指定参数设定。

“A”:文件或目录的atime(access time)不可被修改(modified),可以有效预防例如手提电脑,磁盘I/O错误的发生;

“S”:硬盘I/O同步选项,功能类似sync;

“a”:即append,设定参数后,只能向文件中添加数据,而不能删除,多用来服务器日志文件安全,只有root才能设定这个属性;

“c”,即compresse,设定文件是否经压缩后再存储,读取时需要经过自动解压操作;

“d”:即no dump 设定文件不能成为dump程序的备份目标;

“i”:设定文件不能被删除、改名、设定链接关系,同时不能写入或新增内容。i参数对文件系统的安全设置有很大帮助;

“j”:即journal,设定此参数使得当通过mount参数:data=ordered或者data=writeback挂载的文件系统,文件在写入时会被记录

(在journal中)。如果filesystem被设定参数为data=journal,则该参数自动失效;

“s”:保密性地删除文件或者目录,即硬盘空间被全部收回;

“u”:与s相反,当设定为u时,数据内容其实还存在磁盘中,可以用于undeletion各参数选项中常用到的是a和i。a选项强制只可添加不可删除,多用于日志系统的安全设定。而i是更为严格的安全设定,只有superuser(root)或具有CAP_LINUX、IMMUTABLE处理能力(标识)的进程能够施加该选项。

二、密码安全控制

设置密码有效期

要求用户下次登陆修改密码

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

PASS_MAX_DAYS 30

chage –M 30 abc 适用于已有用户

chage -d 0 abc 强制在下次登录时,更改密码

三、命令历史限制

减少记录的命令条数

vim /etc/profile

HISTSIZE=200

source /etc/profile

注销时自动清空命令历史

vim ~/.bash_logout

history -c

clear

四、终端自动注销

闲置600秒后自动注销

vim /etc/profile

export TMOUT=600

五、限制su命令切换用户

在/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为0的用户,即root用户能够直接通过认证而不用输入密码。)
c)如果开启第二行,表示只有root用户和wheel组内的用户才可以使用su命令
d)如果注释第一行,开启第二行,表示只有whee1组内的用户才能使用su命令,root用户也被禁用su命令。

使用 su 命令切换用户的操作将会记录到安全日志/var/log/secure 文件中,可以根据需要进行查看。

六、PAM安全认证

Linux-PAM,是linux可插拔认证模块,是一套可定制、 可动态加载的共享库,使本地系统管理员可以随意选择程序的认证方式。
PAM使用/etc/pam.d/下的配置文件,来管理对程序的认证方式。应用程序调用相应的PAM配置文件,从而调用本地的认证模块,模块放置在/1ib64/security下,以加载动态库的形式进行认证。比如使用su命令时,系统会提示输入root用户的密码,这就是su命令通过调用PAM模块实现的。

PAM认证原理:
1.PAM认证一般遵循的顺序: Service (服务) --> PAM (配置文件) --> pam_ *.so;
2. PAM认证首先要确定哪一项应用 服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证模块(位于
/lib64/security/下)进行安全认证。
3.用户访问服务器的时候,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证。不同的应用程序所对应的PAM模块也是不同的。
如果想查看某个程序是否支持PAM 认证,可以用ls命令进行查看/etc/pam.d/

七、使用sudo机制提升权限

sudo命令的用途及用法

用途:以其他用户身份(如root)执行授权的命令
用法:sudo授权命令
配置sudo授权
visodu或者vi /etc/sudoers
语法格式:
用户 主机名=命令程序列表
用户 主机名=(用户)命令程序列表

用户:直接授权指定的用户名,或采用“%组名”的形式(授权一个组的所有用户)。
主机名:使用此规则的主机名。没配置过主机名时可用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/ki1l, /usr/bin/killall
gpasswd -M lisi wheel  ##李四加入wheel组

sudo 命令

sudo 【选项】命令

-l 列出用户在主机上可用的和被禁止的命令;一般配置好/etc/sudoers后,要用这个命令来查看和测试是不是配置正确的
-v 验证用户的时间戳;如果用户运行sudo 后,输入用户的密码后,在短时间内可以不用输入口令来直接进行sudo 操作;用-v 可以跟踪最新的时间戳
-u 指定以以某个用户执行特定操作
-k 删除时间戳,下一个sudo 命令要求用求提供密码

当使用相同授权的用户较多,或者授权的命令较多时,可以采用集中定义的别名。用户、 主机、命令部分都可以定义为别名(必须为大写),分别通过关键字User_Alias、Host_Alias、Cmnd_Alias来进行设置。

查看组下面的用户 grep "wheel" /etc/group

用户别名的语法格式:
1)User_Alias  用户别名:包含用户、用户组(%组名(使用%引导))、还可以包含其他其他已经用户的别名
 User_Alias OPERATORS=zhangsan,tom,lisi 
2)Host_Alias
主机别名:主机名、IP、网络地址、其他主机别名 !取反
 Host_Alias MAILSVRS=smtp,pop 
3)Cmnd_Alias
命令路劲、目录(此目录内的所有命令)、其他事先定义过的命令别名
Cmnd_Alias PKGTOOLS=/bin/rpm,/usr/bin/yum 
 

用户别名
使用关键字User_ Alias、 Host_ Alias、 Cmnd Alias 来进行设置别名(别名必须为大写)
1)
Host_Alias MYHOSTS = kgc,localhost
User_Alias MYUSERS = zhangsan,wangwu,lisi
Cmnd_Alias MYCMNDS = /sbin/*,!/sbin/reboot,!/sbin/poweroff,!/sbin/init,!/usr/bin/rm
MYUSERS MYHOSTS=NOPASSWD:MYCMNDS

2)
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

八、限制更改GRUB引导参数

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

九、系统弱口令检测

弱口令检测一 -John the Ripper.
JohntheRipper是一-款开源的密码破解工具,可使用密码字典(包含各种密码组合的列表文件)来进行暴力破解。
#解压工具包
cd /opt
tar. zxf john-1.8.0.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
#使用指定的字典文件进行破解

十、网络端口扫描

1.NMAP

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

官网:http://nmap.org//

CentOS7.7光盘安装包:nmap-6.40-7el.x86-64.rpm(rpm -qa | grep namp)

2.nmap命令常用的选项和描类型

nmap 【扫描类型】【选项】<扫描目标……>

常用的扫描选项

-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检测,快速判断目标主机是否存活,不做其他扫描。
-P0:跳过ping检测, 这种方式认为所有的目标主机是存活的,当对方不响应ICMP请求时,使用这种方式可以避免因无法
ping通而放弃扫描。

控制位
SYN  建立链接
ACK  确认
FIN  结束断开
PSH  传送 0 数据缓存   上层应用协议
RST  重置
URG  紧急

总结:系统安全极为重要,应对各种安全攻击,面临攻击时需即时采取针对性的防护措施。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值