linux安全加固,蚂蚁金服内推四面

3.补丁管理

4.服务进程与启动

5.banner与 自动注销

账号管理与认证授权⭐

为不通的管理员分配不通的账号

目的:根据不同用途设置不同账户账号,提高安全层级

# 创建多用途账号
useradd username
passwd username


# 修改目录权限
chmod 750 dir
chown user:group dir


# 普通账户使用特定授权命令
sudo ifconfig

修改sudo的提权应用

vim /etc/sudoers   或者 命令visudo 
testn   localhost=NOPASSWD:ALL,usr/sbin/useradd,/usr/sbin/ifconfig
testn   localhost=NOPASSWD:ALL,!/usr/sbin/ifconfig
# jerry可以在本地使用useradd命令
jerry localhost=/usr/sbin/useradd

# 注释
testn:用户名
localhost:主机名
NOPASSWD:ALL:sudo时不需要密码
!:不能执行什么命令
usr/sbin/useradd,/usr/sbin/ifconfig:多个命令用,隔开

检查高权限文件

过高的权限或在不应该时间段创建或修改的文件

find / -type f \( -perm -00007 \) -a -ctime -1 |xargs -I {} ls -lh {}
-ctime:属性变更
-mtime:内容修改
atime:被访问

删掉不需要的账号,修改默认账号shell环境

目的:删除系统不需要的默认账号、更改危险账号的默认shell变量,降低被利用的可能性

# 删除/锁定多余用户与组
userdel -r username
groupdel groupname
passwd -l username

# 修改程序账号的登录shell
usermod -s /sbin/nologin username

限制超级管理员远程登录

目的:限制具备超级权限的用户远程登录

1.vim /etc/ssh/sshd_config 
# 进制root用户远程登录
PermitRootLogin no


2.重启sshd服务
systemctl restart sshd

删除root以外UID为0的用户

目的:减少被越权使用的可能性

1.检查哪些账户的UID为0
awk -F: '($3 == 0) { print $1 }' /etc/passwd

2.删除账户,或编辑passwd与shadow文件
userdel -r username

安全日志

# 显示所有登录用户的信息
last

# 显示登录失败的用户信息
lastb

# 安全日志
cat /var/log/secure

不应存在位于高权组的账户

目的:检查是否有账号获取过高权限

# 检查哪些账户属于其他组

1.uid起始值:正常1000以后,特别关注少于1000
grep -v ^# /etc/login.defs |grep "^GID_MIN"|awk '{print $2}'


2.能登录系统用户的组id
awk -F: '$3>1000{print $1}' /etc/passwd |xargs -I {} grep {} /etc/group


3.能登录系统用户的用户id
grep -v "/sbin/nologin" /etc/passwd |awk -F : '{print $1}' | xargs -I {} grep {} /etc/group

缩短默认密码生存周期

目的:对于采用静态密码认证的设备,账户密码的生存周期不长于90天。

# 修改文件密码策略文件
vim /etc/login.defs 
PASS_MAX_DAYS 90    # 最长使用期限
PASS_MIN_DAYS 0     # 最短使用期限
PASS_MIN_LEN  8     # 密码最小长度
PASS_WARN_AGE 7     # 最长期限到期前7天提醒更改密码

设置密码强度策略

目的:规范使用高强度密码,延长被爆破的时间

# 修改pam认证文件
vim /etc/pam.d/system-auth
# 添加、修改内容
password requisite pam_cracklib.so try_first_pass retry=3 dcredit=-1 lcredit=-1 ucredit=-1 ocredit=-1 minclass=3 minlen=8

# 注释
try_first_pass:修改密码前输入当前密码
local_users_only:本地用户
retry:重试次数
authtok_type:修改密码的提示内容
dcredit=-1:至少一个数字
lcredit=-1:至少一个小写字母
ucredit=-1:至少一个大写字母
ocredit=-1:至少一个特殊字符
minclass=3:至少三个字符(大小写字母,数字,特殊字符)
minlen=8:至少八位密码
remember=3:防止使用前三次内设置过的密码

centos7以后设置密码复杂性

文件位置 /etc/security/pwquality.conf 

命令:authconfig
authconfig --passminlen=8 --update        # 密码最短8位
authconfig --enablereqlower --update	  # 包含一个小写	
authconfig --enablerequpper --update	  # 包含一个大写
authconfig --enablereqdigit --update	  # 包含一个数字
authconfig --enablereqother --update		  # 包含一个字符

设置强制密码历史

目的:防止被社工字典破解

# 修改pam认证文件
vim /etc/pam.d/system-auth
# 添加、修改内容
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok remember=5

设置账户锁定策略

目的:防止被连续试探密码,降低爆破可能性

vim /etc/pam.d/system-auth
# 加在注释文档后一行就行,连续6次失败,就拉黑
auth required pam_tally2.so deny=6 unlock_time=300 even_deny_root root_unlock_time=60


# 查看登录失败次数
[root@bogon ~]# pam_tally2 --user hello
Login           Failures Latest failure     From
hello               6    05/31/23 10:36:23  pts/0


# 重置登录失败
pam_tally2 --user hello --reset

设置关键目录的权限

目的:在设备权限配置能力内,根据用户的企业需要,配置其所需的最小权限,以减少非法访问的可能性。

# 更改账户组文件的权限设置
chmod 644 /etc/passwd
chmod 600 /etc/shadow
chmod 644 /etc/group


# 去除多余的写入操作,例如
chmod -R go-w /etc

修改umask值

目的:修改创建文件或目录时的默认权限,防止属于该组的其他用户级别组的用户修改该用户的文件。

# 修改启动脚本文件
/etc/profile
/etc/csh.login
/etc/csh.cshrc
/etc/bashrc

在文件末尾加入umask值
umask 027

限制硬件资源

目的:限制用户对系统资源的使用,减缓DDOS等攻击危害。

1.修改限制文件
vim /etc/security/limits.conf 
# 加入如下内容
*	soft	core	0
*	hard	core	0
*	hard	rss	    5000
*	hard	nproc	20
# *     soft   nproc    4096  # 所有的用户默认可以打开最大的进程数为 4096
# root  soft   nproc    unlimited # root 用户默认可以打开最大的进程数 无限制的。


2.修改pam的本地登录文件
vim /etc/pam.d/login
# 在文件末尾加入信息
session required /lib64/security/pam_limits.so


3.日常收集进程数使用
ps aux |grep httpd |wc -l

对用户使用ls、rm设置别名

目的:让ls随时看清文件属性,让rm需要确认后删除目标实施方法

1.修改当前用户的登录启动脚本
vim ~/.bashrc 
# 追加别名命令
alias ls="ls -alh"
alias rm="rm -i"

禁止任何人su至root账户

目的:避免任何人使用su切换到root,减少提权风险

1.修改su的配置文件
vim /etc/pam.d/su
auth	sufficient	/lib/security/pam_rootok.so
auth	required	/lib/security/pam_wheel.so group=wheel


2.如果需要su切换,将用户加入wheel组
usermod -g wheel luobo

去掉所有人SUID和SGID

目的:防止被利用提权

# 查找具有SUID和SGID的对象
find / -type f \( -perm -04000 -o -perm -02000 \) -exec ls -1g {} \;

chmod ugo-s file

对开放目录设置粘滞位

目的:允许小规模开放目录,用户作为暂存目录使用

# 为/tmp目录添加粘滞位
chmod +t /tmp/


我们都知道,/tmp常被我们用来存放临时文件,是所有用户。但是我们不希望别的用户随随便便的就删除了自己的文件,于是便有了粘连位,它的作用便是让用户只能删除属于自己的文件。
也就是说,即便该目录是任何人都可以写,但也只有文件的属主才可以删除文件。

启用日志记录功能,使用日志服务器

目的:增加审计记录,分布保存日志

机器准备:

主机名IP
node0110.0.1.110
log(日志服务器)10.0.1.111

node01操作:

1.修改应用服务器日志配置文件
vim /etc/rsyslog.conf

# 确认关键日志审计是否存在
*.info;mail.none;authpriv.none;cron.none     /var/log/messages

authpriv.*                                   /var/log/secure


# 添加两行转发日志信息
*.info;mail.none;authpriv.none;cron.none         @10.0.1.111
authpriv.*                                       @@10.0.1.111

注释:
@:使用tcp协议
10.0.1.111:把日志内容写入到10.0.1.111机器上
@@:协议udp协议


2.重启rsyslog
systemctl restart rsyslog.service

log(日志服务器):开启配置文件

1.修改应用服务器日志配置文件
vim /etc/rsyslog.conf
 15 $ModLoad imudp
 16 $UDPServerRun 514

 19 $ModLoad imtcp
 20 $InputTCPServerRun 514
 
 22 $template Remote,"/var/log/%$YEAR%-%$MONTH%-%$DAY%/%fromhost-ip%.log" 

 47 #### RULES ####
 48 :fromhost-ip, !isequal, "127.0.0.1" ?Remote
 49 & stop



2.重启rsyslog
systemctl restart rsyslog.service


3.查看日志是否有时间段的目录,有了则成功
ls /var/log



4.日志服务器实时查看日志,在客户机器输入 logger luobo
tail -f /var/log/2023-05-31/10.0.1.110.log

重要日志权限不应该高于640

防止日志泄露敏感信息
ls -la /var/log/
chmod -R 640 /var/log

设置关键文件底层属性

目的:增强关键文件的底层属性,降低篡改风险

1.修改关键文件的日志和底层属性
chattr +a /var/log/messages 
chattr +i /etc/shadow
chattr +i /etc/passwd
chattr +i /etc/group

不只限于上述文件,可用lsattr查看更改结果

通信协议⭐

关闭非加密远程管理telnet

目的:降低被抓包后获取系统关键信息

vim /etc/xinetd.d/telnet
disable=yes

使用加密的远程管理

目的:使用安全套接字层加密传输信息,避免被侦听敏感信息。

1.修改sshd配置文件
vim /etc/ssh/sshd_config 
# 更改默认端口
Port 2020

# 禁止root远程登录
PermitRootLogin no

# 开启v2版本
Protocol 2


2.重启sshd服务
systemctl restart sshd.service 

设置访问控制列表

设置访问控制白名单,减少被入侵的风险

# 修改拒绝策略
vim /etc/hosts.deny 
ALL:ALL

# 修改允许策略
vim /etc/hosts.allow
# sshd:来访者IP地址
sshd:10.0.1.110
sshd:10.0.1.111

固化常用DNS解析

目的:降低被DNS劫持的可能性

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Linux运维工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Linux运维知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip1024b (备注Linux运维获取)
img

为了做好运维面试路上的助攻手,特整理了上百道 【运维技术栈面试题集锦】 ,让你面试不慌心不跳,高薪offer怀里抱!

这次整理的面试题,小到shell、MySQL,大到K8s等云原生技术栈,不仅适合运维新人入行面试需要,还适用于想提升进阶跳槽加薪的运维朋友。

本份面试集锦涵盖了

  • 174 道运维工程师面试题
  • 128道k8s面试题
  • 108道shell脚本面试题
  • 200道Linux面试题
  • 51道docker面试题
  • 35道Jenkis面试题
  • 78道MongoDB面试题
  • 17道ansible面试题
  • 60道dubbo面试题
  • 53道kafka面试
  • 18道mysql面试题
  • 40道nginx面试题
  • 77道redis面试题
  • 28道zookeeper

总计 1000+ 道面试题, 内容 又全含金量又高

  • 174道运维工程师面试题

1、什么是运维?

2、在工作中,运维人员经常需要跟运营人员打交道,请问运营人员是做什么工作的?

3、现在给你三百台服务器,你怎么对他们进行管理?

4、简述raid0 raid1raid5二种工作模式的工作原理及特点

5、LVS、Nginx、HAproxy有什么区别?工作中你怎么选择?

6、Squid、Varinsh和Nginx有什么区别,工作中你怎么选择?

7、Tomcat和Resin有什么区别,工作中你怎么选择?

8、什么是中间件?什么是jdk?

9、讲述一下Tomcat8005、8009、8080三个端口的含义?

10、什么叫CDN?

11、什么叫网站灰度发布?

12、简述DNS进行域名解析的过程?

13、RabbitMQ是什么东西?

14、讲一下Keepalived的工作原理?

15、讲述一下LVS三种模式的工作过程?

16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?

17、如何重置mysql root密码?

一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

Varinsh和Nginx有什么区别,工作中你怎么选择?

7、Tomcat和Resin有什么区别,工作中你怎么选择?

8、什么是中间件?什么是jdk?

9、讲述一下Tomcat8005、8009、8080三个端口的含义?

10、什么叫CDN?

11、什么叫网站灰度发布?

12、简述DNS进行域名解析的过程?

13、RabbitMQ是什么东西?

14、讲一下Keepalived的工作原理?

15、讲述一下LVS三种模式的工作过程?

16、mysql的innodb如何定位锁问题,mysql如何减少主从复制延迟?

17、如何重置mysql root密码?

一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值