linux系统加固

Posted 山兔1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux系统加固相关的知识,希望对你有一定的参考价值。

linux安全加固
linux系统安全包括用户安全、权限安全、文件安全
从那些方面进行加固
身份鉴别
访问控制
安全审计
资源控制
入侵防范
在linux当中一切皆文件
身份鉴别
/etc/login.defs
文件功能
查看密码策略
/etc/login.defs文件定义了与/etc/passwd和/etc/shadow配套的用户限制设置。这个文件是一定要存在的,缺失并不会影响系统的使用,但是也许会产生意想不到的错误。

如果/etc/shadow文件里有相同的选项,则以/etc/shadow里的设置为准,也就是说/etc/shadow的配置优先级高于/etc/login.defs。
文件内容

PASS_MAX_DAYS     99999      #密码最大有效期。推荐90
PASS_MIN_DAYS     0          #两次修改密码的最小间隔时间
PASS_MIN_LEN      5          #密码最小长度,对于root无效。#16位字符以上,包含大写字母、小写字母、数字、符号
PASS_WARN_AGE    7           #密码过期前多少天开始提示
CREATE_HOME       yes         #使用useradd的时候是能够创建用户目录
UMASK             077         #创建的用户目录的UMASK值
ENCRYPT_METHOD    SHA512      #Linux用户的密码使用 SHA512 散列模式加密

/etc/passwd
文件功能
在Linux/etc/passwd文件中每个用户都有一个对应的记录行,它记录了这个用户的一些基本属性。系统管理员经常会接触到这个文件的修改以完成对用户的管理工作。
文件内容

cat /etc/passwd
root      :x :0 : :root :/root :/bin/bashroot: 用户名:代表用户账号的字符串
X:密码:加密后的用户口令字。虽然这个字段存放的只是用户口令的加密串,不是明文,但是由于/etc/passwd文件对所有用户都可读,所以这仍是一个安全隐患。因此,现在许多Linux系统都使用了shadow技术,把真正的加密后的用户口令字存放到/etc/shadow文件中,而在/etc/passwd文件的口令字段中只存放一个特殊的字符,例如“x”或者“*”
0:UID:用户标识号
0:GID:用户组标识号
root:注释性描述
root: 主目录
/bin/bash:用户she11

在linux当中的任何一个用户,没有两个id是一样的,如果id是一样,那会在使用的时候出问题
/etc/shadow
文件功能
检查空密码
前面介绍了/etc/passwd 文件,由于该文件允许所有用户读取,易导致用户密码泄露,因此 Linux 系统将用户的密码信息从/etc/passwd 文件中分离出来,并单独放到了此文件中。
/etc/shadow 文件只有root 用户拥有读权限,其他用户没有任何权限,这样就保证了用户密码的安全性。
注意,如果这个文件的权限发生了改变,则需要注意是否是恶意攻击。
文件内容

cat /etc/shadow
root:
$6$k9s8Byzkt8sDNgBXSpT1H/2DWmmWHEzZWgyWBV70m0buUBDVEcD.9QyW4iPdVK59C1cC6rBYL7THt4nnI47zd.QuT08crrJY.wxufx0 : :0 :99999 :7 : : :
用户名
加密密码
最后一次修改时间
最小修改时间间隔
密码有效期
密码需要变更前的警告天数
密码过期后的宽限天数          #7天
账号失效时间
保留

访问控制
/etc/ssh/sshd_config
文件功能
ssh功能配置
文件内容
测试前先创建用户与密码

useradd test
passwd test
Changing password for user test.
New password:2
BAD PASSWORD: The password is a palindromeRetype new password: 2
passwd: al authentication tokens updated successfully.
~]# egrep -v"#|S” /etc/ssh/sshd_config
Port 22                 #端口
ListenAddress 0.0.0.0   #监听地址,只能使用这个地址访问,一般配置内网地址
LoginGraceTime 2m       #连接主机时,输入密码的时间超过多长时间就断开,30s
PermitRootLogin yes     #是否允许root登入    #创建用户与密码 useradd   passwd
MaxAuthTries 6           #可以测试案码的次数 使用本地xshe11测试,3
MaxSessions 3            #同时发起登录请求的数量,3
CTientATiveCountMax       #客户端超时次数(输密码的次数),3

加固前,要先修改端口号,这样可以隐藏服务器对外提供的服务
一个服务器会有两个IP地址,一个是公网IP地址、另一个是内网地址
如果手上没有掌握漏洞的话,那只能通过暴力破解的方式
/etc/bashrc
文件功能
环境变量,初始化整个系统bash的设置
文件内容

if[ $UID -gt 199 ]&&[“/usr/bin/id -gn"="/usr/bin/id -un'"];then
   umask 002
else
   umask 022                         #027,077
...
#history
HISTTIMEFORMAT="%F %T
//在/etc/bashrc和/etc/profile进行配置,就可以使用histroy查看之前执行的命令,并且显示出时分秒
          7             7                  7
-        rwx           rwx                rwx      root roota.txt
文件   文件所有者的权限   文件所有者同用户组    其他用户权限
r       4
w       2
x       1
文件   6          666-022=644
目录   7          777-022=755

/etc/hosts.deny
文件功能
主机黑名单
文件内容
sshd:ALL
禁止所有的机器登录
/etc/hosts.allow
文件功能
主机白名单
文件内容
sshd:10.0.0.248
//允许那台机器登录,就配置那台机器
通过黑白名单,我们就可以把不想让登录的主机限制住
安全审计
/etc/rsyslog.conf
文件功能
系统日志管理,配置安全日志的完备性
文件内容

*.err;kern.debug;daemon.notice1  /var/log/adm.log     //想要输出的日志    输出的文件名
*.* @192.168.0.1:514(可以将"*.*"替换为你实际需要的日志信息。比如: kern.*/mail.* 等等。可以将此处192.168.0.1 替换为实际的IP 或域名。)
//日志存放的主机

安全审计就是配置一下各种各样的日志,将系统中各种各样的日志打印出来
经验老到的黑客,入侵成功的时候,第一步就是把登录信息给删除掉了,所以我们要把日志给打印出来,放到别的地方
source命令可以让文件生效,安全审计这一块,主要是运维在做,有了时间就可以方便责任划分
资源控制(防止快捷键重启)
因为快捷键任何一个用户都可以使用,所以我们要限制他
centos7

cat /etc/inittab
# inittab is no longer used when using systemd.
# ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
# ctrl-A1t-Delete is handled by /usr/1ib/systemd/system/ctrI-alt-del.target
# systemd uses 'targets' instead of runlevels. By default, there are two main targets:
#
# multi-user.target: analogous to runlevel 3
# graphical.target: analogous to runleve] 5
# To view current default target, run:14 
# systemct get-default
#
# To set a default target, run:
#systemctl set-default TARGET.target
#

vim /usr/1ib/systemd/system/ctrl-alt-del.target
全部注释
init q

在这个文件里面把这些都给注释掉,然后init q重载就行了

centos6

vim /etc/init/control-alt-delete.conf


把图片上的内容注释掉,然后init q重载一下内容
入侵防范(关闭不必要的服务)
centos7

systemctl list-unit-files |grep enable
//查看系统安装的各种服务   |开机启动的
systemctl disabled nginx

centos6

chkconfig --list
//查看系统的服务
chkconfig --level service 35 off
关闭系统的服务

系统加固非常容易,但是你要想对各种各样的服务进行安全加固,有点难,要熟知每一种安全服务后面是怎么考虑的,你才能对他进行加固,所以最简单的方法是把不必要的服务干掉,相当于把你入侵的路径给炸掉,你就进不来了

以上是关于linux系统加固的主要内容,如果未能解决你的问题,请参考以下文章

SSH + Google Authenticator 安全加固

Linux服务器系统安全加固(centos7系列)

Linux服务器加固

企业如何快速安全盘点混乱IT固定资产信息加固桌面终端安全-原始固定资产系统模式

系统加固之Linux安全加固

【OS】CentOS7 系统服务器初始化配置、安全加固、内核升级优化