linux系统加固,centos安全加固
【史上最全】centOS/Linux系统安全加固方案手册
史上最全 CentOS/Linux系统安全加固指南
针对 CentOS 8.1版本,以下是一系列详细的系统安全强化措施,其他版本可参考执行:
1.账号和口令安全
1.1删除或锁定无用账号
执行:`userdel`删除不必要的账号,`passwd-l`锁定,`passwd-u`解锁。
1.2检查特殊账号
检查空口令和 root权限,通过 `awk`命令进行筛选并锁定异常账号。
1.3添加口令策略
修改 `/etc/login.defs`和 `/etc/pam.d`文件,设置复杂度限制和输错次数锁定。
1.4限制 su到 root
编辑 `/etc/pam.d/su`,限制特定用户对 root的权限。
1.5禁止 root直接登录
创建新用户并限制 root登录,修改 SSH配置。
1.6 SSH认证限制
限制 SSH登录尝试次数,修改 `/etc/ssh/sshd_config`。
2.服务安全
2.1关闭非必要服务
使用 `systemctl`或 `chkconfig`禁止开机启动。
2.2 SSH安全加固
修改 SSH配置,包括禁止 root登录、协议版本、错误次数和 IP访问。
2.3 selinux权限
禁用 selinux,设置核心转储限制。
2.4删除 rpcgen工具
检查并移除可能存在的 rpcgen工具。
2.5记录登录事件
启用审计规则,记录登录和登出信息。
3.文件系统与umask
3.1设置 umask
修改 `/etc/profile`,设置默认 umask为 027。
3.2登录超时
设置 `/etc/profile`中的 TMOUT为 180秒。
3.3配置 grub.cfg权限
限制/boot/efi/EFI/centos/grub.cfg的权限为 600。
4.日志管理
4.1 syslogd日志
启用默认日志并配置详细记录。
4.2记录用户操作日志
在 `/etc/profile`中编写脚本,记录用户操作到指定目录。
4.3安全组件日志
调整 SSH和日志服务设置,确保记录详细信息。
5.内核升级
定期执行内核升级,确保系统安全补丁。
如何利用可信计算对linux系统进行安全加固
linux系统安全加固是根据系统和应用特点,用一系列规范或原则来进行安全配置,理论上和可信计算扯不上,如果一定要扯上,可用于批量在线系统的后期安全维护。
可信计算包括5个关键技术概念,他们是完整可信系统所必须的,这个系统将遵从TCG(Trusted Computing Group)规范
Endorsement key签注密钥
签注密钥是一个2048位的RSA公共和私有密钥对,它在芯片出厂时随机生成并且不能改变。这个私有密钥永远在芯片里,而公共密钥用来认证及加密发送到该芯片的敏感数据
Secure input and output安全输入输出
安全输入输出是指电脑用户和他们认为与之交互的软件间受保护的路径。当前,电脑系统上恶意软件有许多方式来拦截用户和软件进程间传送的数据。例如键盘监听和截屏。
Memory curtaining储存器屏蔽
储存器屏蔽拓展了一般的储存保护技术,提供了完全独立的储存区域。例如,包含密钥的位置。即使操作系统自身也没有被屏蔽储存的完全访问权限,所以入侵者即便控制了操作系统信息也是安全的。
Sealed storage密封储存
密封存储通过把私有信息和使用的软硬件平台配置信息捆绑在一起来保护私有信息。意味着该数据只能在相同的软硬件组合环境下读取。例如,某个用户在他们的电脑上保存一首歌曲,而他们的电脑没有播放这首歌的许可证,他们就不能播放这首歌。
Remote attestation远程认证
远程认证准许用户电脑上的改变被授权方感知。例如,软件公司可以避免用户干扰他们的软件以规避技术保护措施。它通过让硬件生成当前软件的证明书。随后电脑将这个证明书传送给远程被授权方来显示该软件公司的软件尚未被干扰(尝试破解)
系统加固之Linux安全加固
Linux系统基本操作
文件结构图及关键文件功能介绍
Linux文件结构
Linux文件结构图
二级目录
|目录|功能|
|/bin|放置的是在单人维护模式下能被操作的指令,在/bin底下的指令可以被root与一般账号所使用|
|/boot|这个目录只要在放置开机会使用到的文件,包括 Linux核心文件以及开机选单与开机所需配置的文件等等|
|/dev|在Linux系统上,任何装置与接口设备都是以文件的形态存在于这个目录当中的|
|/etc|
系统主要的配置文件几乎都放在这个目录内,例如人员账号密码各种服务的启动档,系统变量配置等
|
|/home|这个是系统默认的用户家目录(home directory)|
|/lib|/lib放置的则是在开机时会用到的函式库,以及在/lib或/sbin底下的指令会呼叫的函式库|
|/media|/media底下放置的是可以移出的装置,包括软盘、光盘、DVD等等装置都挂载于此|
|/opt|给第三方协议软件放置的目录|
|/root|系统管理员(root)的家目录|
|/sbin|放置/sbin底下的为开机过程中所需要的,里面包括了开机、修复、还原系统所需的指令。|
|/srv| srv可视为[service]的缩写,是一些网络服务启动之后,这些服务所需要取用的数据目录|
|/tmp|这是让一般使用者或是正在执行的程序暂时放置文件的地方|
文件
账号和权限
系统用户
超级管理员 uid=0
系统默认用户系统程序使用,从不登录
新建普通用户 uid大于500
/etc/passwd
/etc/shadow
用户管理
权限管理
解析文件权限
文件系统安全
查看权限:ls-l
修改权限:
**chmod**
** chgrp**
设置合理的初始文件权限
很奇妙的UMASK:
umask值为0022所对应的默认文件和文件夹创建的缺省权限分别为644和755
文件夹其权限规则为:777-022-755
文件其权限规则为:777-111-022=644(因为文件默认没有执行权限)
修改UMASK值:
1、直接在命令行下 umask xxx(重启后消失)
2、修改/etc/profile中设定的umask值
系统加固
锁定系统中多余的自建账号
检查shadow中空口令账号
检查方法:
加固方法:
使用命令passwd-l<用户名>锁定不必要的账号
使用命令passwd-u<用户名>解锁需要恢复的账号
使用命令passwd<用户名>为用户设置密码
设置系统密码策略
执行命令查看密码策略设置
加固方法:
禁用root之外的超级用户
检测方法:
awk-F":"'( 1}'/etc/passwd
加固方法:
** passwd-l<用户名>**
****
限制能够su为root的用户
查看是否有auth required/libsecurity/pam_whell.so这样的配置条目
加固方法:
重要文件加上不可改变属性
把重要文件加上不可改变属性
Umask安全
SSH安全:
禁止root用户进行远程登陆
检查方法:
加固方法:
更改服务端口:
屏蔽SSH登陆banner信息
仅允许SSH协议版本2
防止误使用Ctrl+Alt+Del重启系统
检查方法:
加固方法:
设置账号锁定登录失败锁定次数、锁定时间
检查方法:
修改账号TMOUT值,设置自动注销时间
检查方法:
cat/etc/profile| grep TMOUT
加固方法:
vim/etc/profile
增加
TMOUT=600无操作600秒后自动退出
设置BASH保留历史命令的条目
检查方法:
cat/etc/profile| grep HISTSIZE
加固方法:
vim/etc/profile
修改HISTSIZE=5即保留最新执行的5条命令
设置注销时删除命令记录
检查方法:
cat/etc/skel/.bash_logout增加如下行
rm-f$HOME/.bash_history
这样,系统中的所有用户注销时都会删除其命令记录,如果只需要针对某个特定用户,,如root用户进行设置,则可只在该用户的主目录下修改/$HOME/.bash_history文件增加相同的一行即可。
设置系统日志策略配置文件
日志的主要用途是系统审计、监测追踪和分析。为了保证 Linux系统正常运行、准确解决遇到的各种样统问题,认真地读取日志文件是管理员的一项非常重要任务。
UNIX/ Linux采用了syslog工具来实现此功能,如果配置正确的话,所有在主机上发生的事情都会被记录下来不管是好还是坏的。
检查方法:
cat/etc/profile| grep HISTSIZE
确定syslog服务是否启用
查看syslogd的配置,并确认日志文件是否存在
阻止系统响应任何从外部/内部来的ping请求
加固方法:
echo 1>/proc/sys/net/ipv4/icmp_echo_ignore_all