Linux安全加固

为什么要做安全加固?

防患于未然!

基线检查

基线检查

  • 基线

概念:一般指配置和管理系统的详细描述,或者说是最低的安全要求,包括服务和应用程序设置、操作系统组件的配置、权限和权利分配、管理规则等

意义:意义在于通过在系统生命周期不同阶段对目标系统展开各类安全检查,找出不符合基线定义的安全配置项并选择和实施安全措施来控制安全风险,并通过对历史数据的分析获得系统安全状态和变化趋势

安全加固

身份鉴别加固

主要针对SSH密码暴力破解的攻击方式

  • 用户管理

方法:删除多余、无用账号(特别是无用账号是无密码或者弱密码的情况)

cat /etc/passwd  #放用户信息
cat /etc/shadow   #影子文件存放密码
userdel xxx  #删除用户

详细命令可以见Linux用户和文件管理

  • 密码策略

1)检查空口令

有些用户没有密码,需要检查!

awk -F: '($2 == ""){print $1}' /etc/shadow   #检查到如果用户密码不存在,
passwd xxx(用户名)

2)口令有效期
如果密码的有效时间是系统默认的99999(永久有效),那么黑客迟早会爆破出来,因此,我们需要设置口令有效期

vim /etc/login.defs
PASS_MAX_DAYS: 密码最长有效期
PASS_MIN_DAYS: 密码最短有效期
PASS_MIN_LEN: 密码最小长度
PASS_WARN_AGE: 在口令失效前多少天开始通知用户更改密码

3)口令强度
采用如下命令打开文件:

vim /etc/pam.d/system-auth

格式

password requisite pam_cracklib.so retry=3 difok=2 minlen=8 lcredit=-1 dcredit=-1
单词含义
retry重试多少次后返回密码修改错误
difok本次密码与上次密码至少不同字符数
minlen密码最小长度,此配置优先于login.defs中的PASS_MAX_DAYS
ucredit最少大写字母
lcredit最少小写字母
ocredit最少的字符数量
dcredit最少数字

生成高强度密码

pwmake  数字

密码强度检测

echo "密码"|cracklib-check

4) 登陆失败策略

密码输入错误次数过多时,应该要禁用账户,否则密码容易被破译

采用如下命令打开文件

vim /etc/pam.d/sshd

格式

auth required pam_tally2.so deny=3 unlock_time=300  even_deny_root root_unlock_time=1800
单词含义
even_deny_root也限制root用户
deny最大次数,超过则锁定该用户
unlock_time设定普通用户锁定后,多少时间后解锁,单位是秒
root_unlock_time设定root用户锁定后,多少时间后解锁,单位是秒

解锁
作为用户,忘记密码登录不上服务器怎么办?

pam_tally2 --user=root --reset

访问控制加固

IP要固定,不然有时候没有意义(例如黑白名单)

  • IP是否允许访问

1)允许访问的IP
其实就是设置了能够访问服务器的白名单
如何设置:

vim /etc/hosts.allow

在文件中修改:

sshd:192.168.142.*:allow    #表示192.168.142.* ip段都能ssh访问
sshd:all:allow              #表示允许所有ip 的ssh访问
sshd:192.168.142.74:allow   #表示允许192.168.142.74ssh访问

修改完成后,需要重启SSH服务

service sshd restart

2)防范端口扫描

黑客会扫描端口来收集信息,因此,需要防范端口扫描

  • 关闭不必要的端口服务

eg.

systemctl list-unit-files | grep enable  #查看和字体有关的服务,关闭不需要的
systemctl stop xxx
systemctl disable xxx
  • 修改默认端口号
vim /etc/ssh/sshd_config
  • 防火墙策略
vim /etc/sysconfig/iptables #需要安装
-A INPUT-p tcp --tcp-flags ALL FIN,URG,PSH -j REJECT
-A INPUT-p tcp --tcp-flags SYN,RST SYN,RST -j REJECT
-A INPUT-p tcp --tcp-flags SYN,FIN SYN,FIN -j REJECT

3)root权限控制

  • 禁止root用户远程登录

修改配置

vim /etc/ssh/sshd_config

在里面修改

PermitRootLogin no
  • 禁止其它用户用su切换用户

修改配置

vim /etc/pam.d/su

在里面修改

#只允许wheel组用户
auth sufficient pam_rootok.so
auth required pam_wheel.so group=wheel
  • 禁止其它用户sudo提权
visudo
  • 禁止SUID提权

SUID权限:让普通用户临时拥有该文件的属主的执行权限,SUID权限只能应用在二进制可执行文件(命令)上,而且SUID权限只能设置在属主位置上。

find / -user root -perm -4000 -print 2>/dev/null  #找到所有有s权限的用户
chmod ugo-s xxx #去除xxx文件的s权限

安全审计加固

1)auditd审计

记录文件变化

配置文件:

/var/log/audit/audit.log

如果需要关注某个文件的变化,则需要修改配置文件的内容。
可以使用ausearch工具去搜索相关事件。
auditd官网教程
码农教程
CSDN教程

漏洞补丁加固

1)安装更新

yum check-update #列出可更新的软件清单
yum info updates #列出可更新的软件包详细信息
yum upgrade #升级指定软件
yum updateinfo list updates security #列出可用的安全补丁
yum update #升级系统版本和所有软件
yum --enablerepo=elrepo-kernel install kernel-lt -y #更新到最新内核(需要设置引导)

参考资料

如何加固

参考资料里的清单以及脚本

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值