1 操作系统安全加固

1.1 Linux安全加固

1.1.1 对系统账号进行登录限制

1.1.2 设置登录超时时间

1.1.3 设置关键目录的权限

1.1.4 设置关键文件的属性

1.1.5 修改umask 值

1.1.6 记录用户登录信息

1.1.7 记录系统安全事件

1.1.8 记录系统服务日志

1.1.9 更改主机解析地址的顺序

1.1.10 打开 syncookie

1.1.11 不响应ICMP请求

1.1.12 防syn 攻击优化

1.1.13 禁止ICMP重定向

1.1.14 关闭网络数据包转发

1.1.15 补丁装载

1.1.16 禁用无用inetd/xinetd服务

1.1.17 为空口令用户设置密码

1.1.18 删除root之外 UID 为0 的用户

1.1.19 缺省密码长度限制

1.1.20 缺省密码生存周期限制

1.1.21 口令过期提醒

1.1 Linux安全加固

1.1.1 对系统账号进行登录限制(风险高)

实施目的

对系统账号进行登录限制,确保系统账号仅被守护进程和服务使用。

问题影响

可能利用系统进程默认账号登陆,账号越权使用。

系统当前状态

cat /etc/passwd 查看各账号状态。

实施步骤

一.执行命令

# chsh username -s /bin/false

举例:

[root@localhost ~]# chsh sheng -s /sbin/nologin

Changing shell for sheng.

Shell changed.

[root@localhost ~]# cat /etc/passwd

......

sheng:x:1002:1002::/home/sheng:/sbin/nologin

此命令通过修改用户的shell来禁止用户登录;

对于suse操作系统使用/bin/false,其他操作系统使用/sbin/nologin

二.补充操作说明

1.禁止交互登录的系统账号,比如daemon、bin、sys、adm、lp、

uucp、nuucp、smmsp等等

2.数据库用户mysql需要禁止登录

3.禁止所有用户登录。

touch /etc/nologin

除root以外的用户不能登录了。

回退方案

将用户的shell修改成原来的。

判断依据

/etc/passwd 中的禁止登陆账号的shell 是 /bin/false

1.1.2 设置登录超时时间(风险中)

实施目的

对于具备字符交互界面的设备,应配置定时帐户自动登出。

问题影响

管理员忘记退出被非法利用。

系统当前状态

查看/etc/profile 文件的配置状态,并记录。

实施步骤

编辑文件/etc/profile

#vi /etc/profile

文件末尾增加如下行:

TMOUT=180

export TMOUT

改变这项设置后,重新登录才能有效。

回退方案

修改/etc/profile 的配置到加固之前的状态。

判断依据

TMOUT=180   TMOUT=180单位秒

 1.1.3 设置关键目录的权限(风险高)

实施目的

在设备权限配置能力内,根据用户的业务需要,配置其所需的最小权限。

问题影响

非法访问文件。

系统当前状态

运行ls -al /etc/ 记录关键目录的权限。

实施步骤

1、参考配置操作

通过chmod 命令对目录的权限进行实际设置。

2、补充操作说明

/etc/passwd  必须所有用户都可读, root 用户可写

–rw-r—r—

/etc/shadow 只有root 可读 –r--------

/etc/group  必须所有用户都可读, root 用户可写

–rw-r—r—

使用如下命令设置:

chmod 644 /etc/passwd

chmod 400 /etc/shadow

chmod 644 /etc/group

如果是有写权限,就需移去组及其它用户对/etc 的写权限

(特殊情况除外)

执行命令#chmod -R go-w /etc

回退方案

通过chmod 命令还原目录权限到加固前状态。

判断依据

[root@localhost sysconfig]# ls -al /etc/passwd | grep '^...-.--.--'

-rw-r--r-- 1 root root 720 Mar  8 15:45 /etc/passwd

[root@localhost sysconfig]# ls -al /etc/group | grep '^...-.--.--'

-rw-r--r-- 1 root root 347 Jan 27 19:25 /etc/group

[root@localhost sysconfig]# ls -al /etc/shadow | grep '^...-------'

-r-------- 1 root root 436 Mar  6 19:39 /etc/shadow

举例:

[root@localhost ~]# ls -al /etc/passwd

-rw-r--r--. 1 root root 2378 Jan 24 19:42 /etc/passwd

[root@localhost ~]# ls -al /etc/group

-rw-r--r--. 1 root root 994 Jan 24 19:41 /etc/group

[root@localhost ~]# ls -al /etc/shadow

----------. 1 root root 1337 Jan 24 19:42 /etc/shadow

1.1.4 设置关键文件的属性(风险高)

实施目的

增强关键文件的属性,减少安全隐患。 使 messages文件只可追加。 使轮循的 messages文件不可更改。

问题影响

非法访问目录,或者删除日志。

系统当前状态

# lsattr /var/log/messages

# lsattr /var/log/messages.*

# lsattr /etc/shadow

# lsattr /etc/passwd

# lsattr /etc/group

实施步骤

# chattr +a /var/log/messages

# chattr +i /var/log/messages.*

# chattr +i /etc/shadow

# chattr +i /etc/passwd

# chattr +i /etc/group

用chattr命令防止系统中某个关键文件被修改:

chattr +i /etc/fstab

然后试一下rm、mv、rename等命令操作于该文件,都是得到Operation not permitted的结果。

让某个文件只能往里面追加内容,不能删除,一些日志文件适用于这种操作:

chattr +a /data1/user_act.log

建议管理员对关键文件进行特殊设置(不可更改或只能追加等)

/var/log/目录下有可能不存在message.*的文件。

回退方案

使用chattr 命令还原被修改权限的目录。

chattr -i /etc/fstab

chattr -a /data1/user_act.log

判断依据

# lsattr /var/log/messages

# lsattr /var/log/messages.*

# lsattr /etc/shadow

# lsattr /etc/passwd

# lsattr /etc/group

判断属性

当linux的文件系统为Reiserfs时,不支持使用lsattr命令。

1.1.5 修改umask 值(风险高)

实施目的

控制用户缺省访问权限,当在创建新文件或目录时,屏蔽掉新文件或目录不应有的访问允许权限。防止同属于该组的其它用户及别的组的用户修改该用户的文件或更高限制。

问题影响

非法访问目录。

系统当前状态

more /etc/profile

检查是否包含umask 值

实施步骤

步骤 1   设置全局默认权限:

在/etc/profile修改或添加umask 077

#vi /etc/profile

umask 077

步骤 2   设置单个用户默认权限:

如果用户需要使用一个不同于默认全局系统设置的umask,可以编辑该用户目录下的.profile文件或.bash_profile文件:

#vi $home/.profile (或.bash_profile)

修改或者添加umask 077

#具体值可以根据实际需要进行设置,umask 的默认设置一般为 022,这给新创建的文件默认权限755(777-022=755),这会给文件所有者读、写权限,但只给组成员和其他用户读权限。

umask 的计算:

umask 是使用八进制数据代码设置的,对于目录,该值等于八进制数据代码777减去需要的默认权限对应的八进制数据代码值;对于文件,该值等于八进制数据代码 666 减去需要的默认权限对应的八进制数据代码值。

回退方案

修改

/etc/profile

文件到加固前状态。

判断依据

 1.1.6 记录用户登录信息(风险低)

实施目的

设备应配置日志功能,对用户登录进行记录,记录内容包括用户登录使用的账号,登录是否成功、登录时间、以及远程登录时、用户使用的IP地址

问题影响

无法对用户的登陆进行日志记录

系统当前状态

cat /etc/login.defs,记录LASTLOG_ENAB当前配置。

实施步骤

编辑/etc/login.defs:

#vi /etc/login.defs

修改LASTLOG_ENAB的属性:

LASTLOG_ENAB            yes

回退方案

还原“LASTLOG_ENAB”的设置到加固之前配置。

判断依据

1.    验证方法:

使用last命令察看登陆日志

2.    预期结果:

# last

root     :0/10.164.10 10.164.104.73    Fri Feb 20 14:29 - 16:53  (02:24)

root     10.164.104.7 10.164.104.73    Fri Feb 20 14:29 - 16:53  (02:23)

root     pts/3                                         Fri Feb 20 14:21 - 14:28  (00:06)

rokay  pts/3         10.164.104.73         Fri Feb 20 14:16 - 14:19

 1.1.7 记录系统安全事件(风险高)

实施目的

通过设置让系统记录安全事件,方便管理员分析

问题影响

无法记录系统的各种安全事件

系统当前状态

cat /etc/syslog-ng/syslog-ng.conf

实施步骤

# vi /etc/syslog-ng/syslog-ng.conf

添加以下行:

destination d_errors { file("/var/log/errors"); };

filter f_errors { level(err); };

log { source(src); filter(f_errors); destination(d_errors); };

destination d_authpriv { file("/var/log/authpriv_info"); };

filter f_authpriv { level(info) and facility(authpriv); };

log { source(src); filter(f_authpriv); destination(d_authpriv); };

destination d_auth { file("/var/log/auth_none"); };

filter f_auth { level(none) and facility(auth); };

log { source(src); filter(f_auth); destination(d_auth); };

destination d_info { file("/var/log/info"); };

filter f_info { level(info); };

log { source(src); filter(f_info); destination(d_info); };

重启syslog-ng服务

# rcsyslog restart

其中log { source(s_sys); filter(f_errors); destination(d_errors); }; “src”视其源不同可能会为“s_sys”,配置时需注意。

1.    增加安全日志后,日志将会大大增加。要注意监控磁盘可用空间,及时备份清理安全日志文件。

2.    对维护有要求,需询问客户后确定是否实施。

回退方案

还原/etc/syslog-ng/syslog-ng.conf的设置到加固之前配置,重启syslog-ng服务。

判断依据

1.    验证方法:

查看/var/log/errors,/var/log/messages

#more /var/log/errors

#more /var/log/authpriv_info

#more /var/log/info

#more /var/log/auth_none

2.    预期结果:

记录有需要的设备相关的安全事件

1.1.8 记录系统服务日志(风险低)

实施目的

系统上运行的应用/服务也应该配置相应日志选项,比如cron

问题影响

无法记录 cron 服务(计划任务)

系统当前状态

cat /etc/syslog-ng/syslog-ng.conf

实施步骤

# vi /etc/syslog-ng/syslog-ng.conf

添加以下行:

destination d_cron { file("/var/log/cron"); };

filter f_cron { level(info) and facility(cron); };

log { source(src); filter(f_cron); destination(d_cron); };

重启syslog-ng服务

# rcsyslog restart

其中log { source(src); filter(f_cron); destination(d_cron); }; “src”视其源不同可能会为“s_sys”,配置时需注意。

另外,实施此项需要开启cron服务

回退方案

还原/etc/syslog-ng/syslog-ng.conf的设置到加固之前配置,重启syslog-ng服务。

判断依据

1.    验证方法

执行crontab -l命令,然后查看日志文件:#more /var/log/cron

2.    预期结果:

日志中能够列出cron服务的详细日志信息

1.1.9 更改主机解析地址的顺序(风险高)

实施目的

更改主机解析地址的顺序,减少安全隐患。

问题影响

对本机未经许可的IP欺骗。

系统当前状态

cat /etc/host.conf

实施步骤

“/etc/host.conf”  说明了如何解析地址。编辑“/etc/host.conf”  文件( vi /etc/host.conf ), 加 入 下 面 该 行 :

# Lookup names via DNS first then fall back to /etc/hosts.

order bind,hosts

# We have machines with multiple IP addresses.

multi on

# Check for IP address spoofing

nospoof on

第一项设置首先通过 DNS 解析 IP 地址,然后通过 hosts 文

件解析。第二项设置检测是否“/etc/hosts”文件中的主机是

否拥有多个 IP 地址(比如有多个以太口网卡)。第三项设置

说明要注意对本机未经许可的 IP欺骗。

回退方案

恢复/etc/host.conf 配置文件。

判断依据

查看/etc/host.conf 文件中的以下配置:

order bind,hosts

multi on

nospoof on

1.1.10 打开 syncookie(风险高)

实施目的

打开 syncookie 缓解 syn flood攻击。

问题影响

syn flood 攻击

系统当前状态

cat /proc/sys/net/ipv4/tcp_syncookies

实施步骤

# echo 1 > /proc/sys/net/ipv4/tcp_syncookies

可以加入/etc/rc.d/rc.local中。

回退方案

echo 0 > /proc/sys/net/ipv4/tcp_syncookies

判断依据

cat /proc/sys/net/ipv4/tcp_syncookies 值为  1

1.1.11 不响应ICMP请求(风险高)

实施目的

不响应ICMP请求,避免信息泄露。

问题影响

信息泄露

系统当前状态

cat /proc/sys/net/ipv4/icmp_echo_ignore_all

实施步骤

不响应ICMP请求:

# echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

回退方案

echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all

判断依据

cat /proc/sys/net/ipv4/icmp_echo_ignore_all  返回1

本地计算机内系统原因,

怀疑是信任关系或者注册表中某些键值

本地计算机内系统原因,

怀疑是信任关系或者注册表中某些键值

本地计算机内系统原因,

怀疑是

本地计算机内系统原因,

怀疑是信任关系或者注册表中某些键值

1.1.12 防syn 攻击优化(风险高)

实施目的

提高未连接队列大小

问题影响

SYN flood attack

系统当前状态

sysctl net.ipv4.tcp_max_syn_backlog

实施步骤

sysctl -w net.ipv4.tcp_max_syn_backlog="4096"

回退方案

sysctl -w net.ipv4.tcp_max_syn_backlog= 恢复加固之前的值

判断依据

sysctl net.ipv4.tcp_max_syn_backlog 值为 4096

1.1.13 禁止ICMP重定向(风险高)

实施目的

主机系统应该禁止ICMP重定向,采用静态路由。

问题影响

系统当前状态

sysctl -a,记录待修改属性的当前值。

实施步骤

禁止系统发送ICMP重定向包:

# vi /etc/sysctl.conf

只接受有可靠来源的重定向。

net.ipv4.conf.default.secure_redirects=0

net.ipv4.conf.all.secure_redirects=0

net.ipv4.conf.default.send_redirects=0

net.ipv4.conf.all.send_redirects=0

net.ipv4.conf.default.accept_redirects = 0

net.ipv4.conf.all.accept_redirects = 0

执行以下命令使设置生效:

# sysctl -p

根据业务需求情况确定是否禁止ICMP重定向。

回退方案

编辑/etc/sysctl.conf,恢复原设置,执行sysctl -p使设置生效。

判断依据

1.    验证方法:

使用sysctl -a查看配置:

#sysctl -a

2.    预期结果:

相关设置符合预期

1.1.14 关闭网络数据包转发(风险高)

实施目的

对于不做路由功能的系统,应该关闭数据包转发功能。

问题影响

系统当前状态

sysctl -a,记录待修改属性的当前值。

实施步骤

关闭数据包转发功能:

# vi /etc/sysctl.conf

关闭IP转发:

net.ipv4.ip_forward = 0

关闭转发源路由包:

net.ipv4.conf.all.accept_source_route = 0

net.ipv4.conf.default.accept_source_route = 0

执行以下命令使设置生效:

# sysctl -p

回退方案

编辑/etc/sysctl.conf,恢复原设置,执行sysctl –p使设置生效。

判断依据

1.    验证方法:

使用sysctl -a查看配置:

#sysctl -a

2.    预期结果:

相关设置符合预期

1.1.15 补丁装载(风险高)

实施目的

可以使系统版本为最新并解决安全问题。

问题影响

系统存在严重的安全漏洞

系统当前状态

uname -a

rpm -qa

cat /proc/version

实施步骤

可以使用Online Update或Patch CD Update等方式升级系统补丁。

回退方案

patchrm

判断依据

1.    验证方法:

# uname -a

2.    预期结果:

系统安装必要的补丁。

重要等级

应根据需要及时进行补丁装载。对服务器系统应先进行兼容性测试。

1.1.16 禁用无用inetd/xinetd服务(风险高)

实施目的

关闭无效的服务,提高系统性能,增加系统安全性。

ISO和VHD安装包不需要执行该加固项目。

问题影响

不用的服务会带来很多安全隐患。

系统当前状态

chkconfig -l记录当前状态。

实施步骤

步骤 1   关闭inetd服务

# chkconfig 服务名 off

步骤 2   关闭xinetd服务

修改其配置文件,在其属性中修改Disable 为yes,如没有,请添加

#vi /etc/xinetd.d/服务名

disable       =  yes

步骤 3   重启inetd服务

# /etc/init.d/xinetd restart

回退方案

恢复记录的原inetd/xinetd服务状态。

判断依据

1.    验证方法:

# chkconfig -l

2.    预期结果:

仅有允许的服务处于开启状态

重要等级

建议关闭的服务:

chargen、chargen-udp、cups-lpd、cvs、daytime、daytime-udp、echo、echo-udp、fam、netstat、rsync、servers、services、systat、time、time-udp

请根据需要开启相应的服务

1.1.17 为空口令用户设置密码(风险高)

实施目的

禁止空口令用户,存在空口令是很危险的,用户不用口令认证就能进入系统。

问题影响

用户被非法利用。

系统当前状态

awk -F: '($2 == ""){print $1}' /etc/passwd

实施步骤

awk -F: '($2 == ""){print $1}' /etc/passwd ,查询空口令用户

用root 用户登陆Linux 系统,执行passwd 命令,给用户增加口令。

例如:passwd test test

回退方案

root 身份设置用户口令,取消口令

如做了口令策略则失败

判断依据

awk -F: '($2 == ""){print $1}' /etc/passwd

返回值为空

1.1.18 删除root之外 UID 为0 的用户(风险高)

实施目的

帐号与口令-检查是否存在除 root 之外 UID 为0 的用户。

问题影响

账号权限过大,容易被非法利用。

系统当前状态

awk -F: '($3 == 0) { print $1 }' /etc/passwd

实施步骤

删除 除root 以外的 UID 为  0 的用户。

回退方案

判断依据

返回值包括“root”以外的条目,则低于安全要求。

重要等级

UID 为0 的任何用户都拥有系统的最高特权,保证只有 root用户的 UID 为0

1.1.19 缺省密码长度限制(风险低)

实施目的

防止系统弱口令的存在,减少安全隐患。对于采用静态口令认证技术的设备,口令长度至少 8 位。

问题影响

增加密码被暴力破解的成功率。

系统当前状态

cat /etc/login.defs

实施步骤

# vi /etc/login.defs

按如下设置

PASS_MIN_LEN  8

退出root用户重新登录,密码设置生效。

回退方案

vi /etc/login.defs ,修改设置到系统加固前状态。

判断依据

PASS_MIN_LEN  8

重要等级

 1.1.20 缺省密码生存周期限制

实施目的

对于采用静态口令认证技术的设备,帐户口令的生存期不长于90 天,减少口令安全隐患。

问题影响

密码被非法利用,并且难以管理。

系统当前状态

运行 cat /etc/login.defs  查看状态,并记录。

实施步骤

# vi /etc/login.defs

按如下设置

PASS_MAX_DAYS  90

PASS_MIN_DAYS  0

回退方案

vi /etc/login.defs ,修改设置到系统加固前状态。

判断依据

PASS_MAX_DAYS  90

PASS_MIN_DAYS  0

实施风险

1.1.21 口令过期提醒

实施目的

口令到期前多少天开始通知用户口令即将到期。

问题影响

密码被非法利用,并且难以管理。

系统当前状态

运行 cat /etc/login.defs  查看状态,并记录。

实施步骤

# vi /etc/login.defs

按如下设置

PASS_WARN_AGE  7

回退方案

vi /etc/login.defs ,修改设置到系统加固前状态。

判断依据

PASS_WARN_AGE  7

实施风险

本文转自 Mr_sheng 51CTO博客,原文链接:http://blog.51cto.com/sf1314/2064733

1 操作系统安全加固相关推荐

  1. 【windows】windows操作系统安全加固

    1. 账户管理和认证授权 1.1 账户 默认账户安全 禁用Guest账户. 禁用或删除其他无用账户(建议先禁用账户三个月,待确认没有问题后删除.) 操作步骤 打开 控制面板 > 管理工具 > ...

  2. Windows操作系统安全加固基线检测脚本

    一.背景信息      在我们的安全运维工作中经常需要进行安全基线配置和检查,所谓的安全基线配置就是系统的最基础的安全配置,安全基线检查涉及操作系统.中间件.数据库.甚至是交换机等网络基础设备的检查, ...

  3. Ubuntu 16.04.3 LTS操作系统安全加固

    Ubuntu 16.04.3 LTS操作系统安全加固 操作系统下载链接:https://releases.ubuntu.com/16.04/ubuntu-16.04.3-desktop-amd64.i ...

  4. CentOS Linux release 7.4.1708 (Core)操作系统安全加固

    CentOS Linux release 7.4.1708 (Core)操作系统安全加固 操作系统下载链接:https://vault.centos.org/ https://vault.centos ...

  5. linux 操作系统安全加固

    操作系统安全加固 顾名思义:将操作系统的安全环境,提升至尽可能安全的状态. 系统通用的安全加固可以从下面几个方面进行考虑: 通用软件的加固,如openssh,实现方式就是将修改其配置文件,让opens ...

  6. 服务器操作系统加固软件,服务器操作系统安全加固软件

    服务器操作系统安全加固软件 内容精选 换一换 云耀云服务器的镜像分公共镜像和市场镜像两种.暂不支持使用私有镜像创建云耀云服务器.了解更多公共镜像支持的操作系统版本.市场镜像类型请参考<云耀云服务 ...

  7. 服务器操作系统加固厂家,服务器操作系统安全加固软件

    服务器操作系统安全加固软件 内容精选 换一换 已成功登录Java性能分析.待安装分析辅助软件的服务器已开启sshd.Java性能分析优先选用非交互shell(non-interactive shell ...

  8. Windows Server操作系统安全加固

    Windows Server 2012 R2操作系统安全加固 操作系统下载链接: https://msdn.itellyou.cn/ ed2k://|file|cn_microsoft_hyper-v ...

  9. 云服务器运维 - Linux 操作系统安全加固/防范黑客攻击

    文章目录 云服务器运维 - Linux 操作系统安全加固/防范黑客攻击 1.帐号 1.1 禁用或删除无用账号 1.2 检查特殊账号 1.3 添加口令策略 1.4 限制用户su 1.5 禁止root用户 ...

  10. Linux操作系统安全加固指导

    适用版本 redhat5.x,6.x,7.x centos5.x,6.x,7.x suse9.10.11.12 加固要求 检查口令生存周 加固方法 在文件/etc/login.defs中设置 PASS ...

最新文章

  1. 首例利用智能路由网关犯罪嫌疑人被捕:罪名流量劫持
  2. C#PDF转Word
  3. PHP,操作多个用户,多个线程的session,实现用户登陆状态session值的自动更新
  4. vue Method 事件
  5. mysql 查询语句性能优化
  6. android布局layout中的一些属性
  7. 微信支付id出现的重复支付解决方法和app应用中多种支付方式之间的对比
  8. MFC对话框响应ON_UPDATE_COMMAND_UI事件
  9. list转datatable,SqlBulkCopy将DataTable中的数据批量插入数据库
  10. 2013年1月第1个周末
  11. jQuery特效:实现抽奖
  12. 多功能照片图片处理器小程序源码/流量主系列小程序源码
  13. kaggle注册没有验证码
  14. 大B公司自己做AI,都是九死一生——To B AI 平台的1.0 模式,已几乎宣告失败?...
  15. smart原则_用SMART原则,定位好副业目标
  16. 用python祝节日快乐_节日快乐祝福语有哪些?
  17. java俄罗斯方块七中图形类_shell脚本编写的俄罗斯方块游戏源码
  18. 怎么做好宝贝标题优化?
  19. 360度全景摄像是什么?360度全景摄像有什么用?
  20. 怎样做一个好的网管?

热门文章

  1. Git钩子:自定义你的工作流
  2. python核心编程笔记--chapter2
  3. Base64 的 JavaScript 实现 js-base64
  4. 解决电脑各种 dll 文件丢失问题
  5. html to pdf
  6. P1019 单词接龙
  7. 来教你用什么泡脚好,泡脚的好处有那些?
  8. Reverse Interger
  9. WordPress超级基本教程(转)
  10. 一个嵌入Flash的Gadget小程序