linux加固手册v10试行版.docx

上传人:b****0 文档编号:12818151 上传时间:2023-04-22 格式:DOCX 页数:30 大小:29.16KB
下载 相关 举报
linux加固手册v10试行版.docx_第1页
第1页 / 共30页
linux加固手册v10试行版.docx_第2页
第2页 / 共30页
linux加固手册v10试行版.docx_第3页
第3页 / 共30页
linux加固手册v10试行版.docx_第4页
第4页 / 共30页
linux加固手册v10试行版.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

linux加固手册v10试行版.docx

《linux加固手册v10试行版.docx》由会员分享,可在线阅读,更多相关《linux加固手册v10试行版.docx(30页珍藏版)》请在冰豆网上搜索。

linux加固手册v10试行版.docx

linux加固手册v10试行版

 

LINUX操作系统

安全加固手册

 

 

北京####有限公司

版本v1.0.0

目录

1概述1

1.1适用范围1

1.2外部引用说明1

1.3术语和定义1

1.4符号和缩略语1

2LINUX主机安全加固1

2.1身份鉴别1

2.1.1为空口令用户设置密码1

2.1.2缺省密码长度限制2

2.1.3缺省密码生存周期限制2

2.1.4口令过期提醒2

2.1.5限制超级管理员远程登录3

2.1.6使用ssh加密传输3

2.2访问控制3

2.2.1为不同的管理员分配不同的账号3

2.2.2去除不需要的帐号、修改默认帐号的shell变量4

2.2.3对系统账号进行登录限制4

2.2.4除root之外UID为0的用户5

2.2.5设置关键目录的权限5

2.2.6修改umask值5

2.2.7设置目录权限6

2.2.8设置关键文件的属性6

2.2.9对root为ls、rm设置别名7

2.2.10使用PAM禁止任何人su为root7

2.3安全审计8

2.3.1启用日志记录功能8

2.3.2记录系统安全事件8

2.3.3启用记录cron行为日志功能8

2.3.4增加ftpd审计功能9

2.4剩余信息保护9

2.5入侵防范9

2.5.1设置访问控制列表9

2.5.2更改主机解析地址的顺序10

2.5.3打开syncookie10

2.5.4不响应ICMP请求11

2.5.5防syn攻击优化11

2.5.6补丁装载11

2.5.7关闭无效服务11

2.5.8关闭无效服务和进程自动启13

2.5.9禁止/etc/rc.d/init.d下某些脚本的执行13

2.5.10加固snmp服务13

2.5.11修改ssh端口14

2.6恶意代码防范14

2.7资源控制15

2.7.1隐藏系统提示信息15

2.7.2设置登录超时时间15

2.7.3资源限制16

3推荐安装工具17

前言

近几年来Internet变得更加不安全了。

网络的通信量日益加大,越来越多的重要交易正在通过网络完成,与此同时数据被损坏、截取和修改的风险也在增加。

只要有值得偷窃的东西就会有想办法窃取它的人。

Internet的今天比过去任何时候都更真实地体现出这一点,基于Linux的系统也不能摆脱这个“普遍规律”而独善其身。

因此,优秀的系统应当拥有完善的安全措施,应当足够坚固、能够抵抗来自Internet的侵袭,这正是Linux之所以流行并且成为Internet骨干力量的主要原因。

但是,如果你不适当地运用Linux的安全工具,它们反而会埋下隐患。

配置拙劣的安全系统会产生许多问题,本文将为你解释必须掌握的Linux安全知识。

 本文讲述了如何通过基本的安全措施,使Linux系统变得可靠。

1概述

1.1适用范围

1.2外部引用说明

1.3术语和定义

1.4符号和缩略语

(对于规范出现的英文缩略语或符号在这里统一说明。

缩写

英文描述

中文描述

2LINUX主机安全加固

本规范所指的设备为采用LINUX操作系统的设备。

本规范提出的安全配置要求,在未特别说明的情况下,均适用于采用LINUX操作系统的设备。

本规范从运行LINUX操作系统设备的身份鉴别、访问控制、安全审计、剩余信息保护、入侵防范、恶意代码防范、资源控制七个方面提出安全配置要求。

2.1身份鉴别

2.1.1为空口令用户设置密码

实施目的

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

检测方法

查看文件中每行的第二个值是为空还是“X”,“X”则有密码,空则为无密码。

如example:

:

3:

3:

example:

/bin/example

操作指南

root身份登录后,在命令行状态下可直接输入命令,或在图形界面状态下右键点击桌面空白处,选择“打开终端”,执行下列命令

#cat/etc/passwd

查看文件中每行的第二个值是为空还是“X”,“X”则有密码,空则为无密码。

使用passwd命令,给空密码的用户添加密码。

2.1.2缺省密码长度限制

实施目的

防止系统弱口令的存在,减少安全隐患。

对于采用静态口令

认证技术的设备,口令长度至少8位。

检测方法

cat/etc/login.defs

查看是否有如下行:

PASS_MIN_LEN8

操作指南

1、参考配置操作

#vi/etc/login.defs

把下面这行

PASS_MIN_LEN5改为

PASS_MIN_LEN8

2.1.3缺省密码生存周期限制

实施目的

对于采用静态口令认证技术的设备,帐户口令的生存期不长

于90天,减少口令安全隐患。

检测方法

运行cat/etc/login.defs查看是否有如下行:

PASS_MAX_DAYS90

PASS_MIN_DAYS0

操作指南

1、参考配置操作

#vi/etc/login.defs

PASS_MAX_DAYS90

PASS_MIN_DAYS0

2.1.4口令过期提醒

实施目的

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

检测方法

运行cat/etc/login.defs查看是否有如下行:

PASS_WARN_AGE7

操作指南

2、参考配置操作

#vi/etc/login.defs

PASS_WARN_AGE7

2.1.5限制超级管理员远程登录

实施目的

限制具备超级管理员权限的用户远程登录。

远程执行管理员

权限操作,应先以普通权限用户远程登录后,再切换到超级

管理员权限账。

检测方法

/etc/ssh/sshd_config中PermitRootLoginno

操作指南

1、参考配置操作

SSH:

#vi/etc/ssh/sshd_config

PermitRootLoginyes

改为

PermitRootLoginno

重启sshd服务

#servicesshdrestart

CONSOLE:

在/etc/securetty文件中配置:

CONSOLE=/dev/tty01

2.1.6使用ssh加密传输

实施目的

提高远程管理安全性

检测方法

运行#ps–elf|grepssh查看状态,是否存在ssh进程。

操作指南

1、参考配置操作

#servicesshdrestart

2.2访问控制

2.2.1为不同的管理员分配不同的账号

实施目的

根据不同类型用途设置不同的帐户账号,提高系统安全

检测方法

cat/etc/passwd查看当前用户列表

操作指南

1、参考配置操作

为用户创建账号:

#useraddusername#创建账号

#passwdusername#设置密码

修改权限:

#chmod750directory#其中755为设置的权限,可根据实际情况设置相应的权限,directory是要更改权限的目录)使用该命令为不同的用户分配不同的账号,设置不同的口令及权限信息等。

2.2.2去除不需要的帐号、修改默认帐号的shell变量

实施目的

删除系统不需要的默认帐号、更改危险帐号缺省的shell变量

检测方法

cat/etc/passwd记录当前用户列表,cat/etc/shadow记录当前密码配置

操作指南

1、参考配置操作

#userdellp

#groupdellp

如果下面这些系统默认帐号不需要的话,建议删除。

lp,sync,shutdown,halt,news,uucp,operator,games,gopher等

修改一些系统帐号的shell变量,例如uucp,ftp和news等,还有一些仅仅需要FTP功能的帐号,一定不要给他们设置/bin/bash或者/bin/sh等Shell变量。

可以在/etc/passwd中将它们的shell变量设为/bin/false或者/dev/null等,也可以使用usermod-s/dev/nullusername命令来更改username的shell为/dev/null。

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

实施目的

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

检测方法

/etc/passwd中的禁止登陆账号的shell是/sbin/nologin

操作指南

1、参考配置操作

Vi/etc/passwd

例如修改

lynn:

x:

500:

500:

:

/home/lynn:

/sbin/bash

更改为:

lynn:

x:

500:

500:

:

/home/lynn:

/sbin/nologin

该用户就无法登录了。

禁止所有用户登录。

touch/etc/nologin

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

2、补充操作说明

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

uucp、nuucp、smmsp等等

2.2.4除root之外UID为0的用户

实施目的

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

检测方法

awk-F:

'($3==0){print$1}'/etc/passwd

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

操作指南

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

2.2.5设置关键目录的权限

实施目的

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

的最小权限。

检测方法

运行ls–al/etc/记录关键目录和文件的权限

操作指南

1、参考配置操作

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

2、补充操作说明

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

–rw-r—r—

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

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

–rw-r—r—

使用如下命令设置:

chmod644/etc/passwd

chmod600/etc/shadow

chmod644/etc/group

如果是有写权限,就需移去组及其它用户对/etc的写权限(特殊情况除外)执行命令#chmod-Rgo-w/etc

2.2.6修改umask值

实施目的

控制用户缺省访问权限,当在创建新文件或目录时,屏蔽掉

新文件或目录不应有的访问允许权限。

防止同属于该组的其

它用户及别的组的用户修改该用户的文件或更高限制。

检测方法

more/etc/profile

more/etc/csh.login

more/etc/csh.cshrc

more/etc/bashrc

检查是否包含umask值

操作指南

1、参考配置操作

设置默认权限:

vi/etc/profile

vi/etc/csh.login

vi/etc/csh.cshrc

vi/etc/bashrc

在末尾增加umask027

修改文件或目录的权限,操作举例如下:

#chmod444dir;#修改目录dir的权限为所有人都为只读。

根据实际情况设置权限;

2、补充操作说明

如果用户需要使用一个不同于默认全局系统设置的umask,可以在需要的时候通过命令行设置,或者在用户的shell启动文件中配置

3、补充说明

umask的默认设置一般为022,这给新创建的文件默认权限755(777-022=755),这会给文件所有者读、写权限,但只给组成员和其他用户读权限。

umask的计算:

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

2.2.7设置目录权限

实施目的

设置目录权限,防止非法访问目录

检测方法

查看重要文件和目录权限:

ls–l

判断/etc/init.d/*下的文件权限750以下

操作指南

1、参考配置操作

查看重要文件和目录权限:

ls–l

更改权限:

对于重要目录,建议执行如下类似操作:

#chmod-R750/etc/init.d/*

这样只有root可以读、写和执行这个目录下的脚本。

2.2.8设置关键文件的属性

实施目的

增强关键文件的属性,减少安全隐患。

使messages文件只可追加。

使轮循的messages文件不可更改。

检测方法

#lsattr/var/log/messages

#lsattr/var/log/messages.*

#lsattr/etc/shadow

#lsattr/etc/passwd

#lsattr/etc/group

判断属性

操作指南

1、参考配置操作

#chattr+a/var/log/messages

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

#chattr+i/etc/shadow

#chattr+i/etc/passwd

#chattr+i/etc/group

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

2.2.9对root为ls、rm设置别名

实施目的

为ls设置别名使得root可以清楚的查看文件的属性(包括不

可更改等特殊属性)。

为rm设置别名使得root在删除文件时进行确认,避免误操作。

检测方法

查看当前shell:

#echo$SHELL

如果是csh:

#vi~/.cshrc

如果是bash:

#vi~/.bashrc

查看内容是否有

aliasls=’ls-aol‘

aliasrm=’rm–i’

类似的定义

操作指南

1、参考配置操作

查看当前shell:

#echo$SHELL

如果是csh:

#vi~/.cshrc

如果是bash:

#vi~/.bashrc

加入

aliasls=ls-aol

aliasrm=rm-i

重新登录之后查看是否生效。

2.2.10使用PAM禁止任何人su为root

实施目的

避免任何人可以su为root,减少安全隐患。

检测方法

cat/etc/pam.d/su

操作指南

1、参考配置操作

编辑su文件(vi/etc/pam.d/su),在开头添加下面两行:

authsufficient/lib/security/pam_rootok.so

authrequired/lib/security/pam_wheel.sogroup=wheel

这表明只有wheel组的成员可以使用su命令成为root用户。

你可以把用户添加到wheel组,以使它可以使用su命令成为root用户。

添加方法为:

#chmod–G10username

2.3安全审计

2.3.1启用日志记录功能

实施目的

登陆认证服务记录

检测方法

运行cat/etc/syslog.conf查看状态,是否有如下行

authpriv.*/var/log/secure

操作指南

1、参考配置操作

cat/etc/syslog.conf

#Theauthprivfilehasrestrictedaccess.

authpriv.*/var/log/secure

*auth,authpriv:

主要认证有关机制,例如telnet,login,ssh等需要认证的服务都是使用此一机制

2.3.2记录系统安全事件

实施目的

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

检测方法

Cat/etc/syslog.conf是否记录系统安全事件

操作指南

1、参考配置操作

修改配置文件vi/etc/syslog.conf,

配置如下类似语句:

*.err;kern.debug;daemon.notice;/var/adm/messages

定义为需要保存的设备相关安全事件。

2.3.3启用记录cron行为日志功能

实施目的

对所有的cron行为进行审计。

检测方法

Cat/etc/syslog.conf|grepcron

操作指南

1、参考配置操作

Vi/etc/syslog.conf

#Logcronstuff

cron.*/var/log/cron

2.3.4增加ftpd审计功能

实施目的

增加ftpd审计功能,增强ftpd安全性。

检测方法

Cat/etc/inetd.conf是否有如下行:

ftpd-l-r-A–S

cat/etc/syslog.conf是否有如下行:

ftp.*/var/log/ftpd

操作指南

1、参考配置操作

#vi/etc/inetd.conf

ftpstreamtcpnowaitroot/usr/libexec/ftpd

ftpd-l-r-A-S

其中:

-l成功/失败的ftp会话被syslog记录

-r使ftpd为只读模式,任何命令都不能更改文件系统

-A允许anonymous用户登录,/etc/ftpwelcome是欢迎信息

-S对anonymousftp传输进行记录

在/etc/syslog.conf中,增加

ftp.*/var/log/ftpd

使日志产生到/var/log/ftpd文件

重新启动inetd进程:

#kill-1`cat/var/run/inetd.pid`

2.4剩余信息保护

暂无。

2.5入侵防范

2.5.1设置访问控制列表

实施目的

设置访问控制列表,使得只有可信主机才能访问服务器在/etc/(x)inetd.conf中启用的特定网络服务。

检测方法

查看/etc/hosts.allow和/etc/hosts.deny2个文件的配置状态,

并记录。

操作指南

1、参考配置操作

使用TCP_Wrappers可以使系统安全面对外部入侵。

最好的

策略就是阻止所有的主机(在“/etc/hosts.deny”文件中加入

“ALL:

ALL@ALL,PARANOID”),然后再在

“/etc/hosts.allow”文件中加入所有允许访问的主机列表。

第一步:

编辑hosts.deny文件(vi/etc/hosts.deny),加入下

面该行:

#Denyaccesstoeveryone.

ALL:

ALL@ALL,PARANOID

第二步:

编辑hosts.allow文件(vi/etc/hosts.allow),加入允

许访问的主机列表,比如:

ftp:

202.54.15.99

202.54.15.99和是允许访问ftp服务的IP地址和主

机名称。

第三步:

tcpdchk程序是TCP_Wrapper设置检查程序。

它用

来检查你的TCP_Wrapper设置,并报告发现的潜在的和真实

的问题。

设置完后,运行下面这个命令:

#tcpdchk

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

实施目的

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

检测方法

Cat/etc/host.conf

/etc/host.conf

orderbind,hosts

nospoofon

操作指南

“/etc/host.conf”说明了如何解析地址。

编辑“/etc/host.conf”

文件(vi/etc/host.conf),加入下面该行:

#LookupnamesviaDNSfirstthenfallbackto/etc/hosts.

orderbind,hosts

#WehavemachineswithmultipleIPaddresses.

multion

#CheckforIPaddressspoofing

nospoofon

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

件解析。

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

否拥有多个IP地址(比如有多个以太口网卡)。

第三项设置

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

2.5.3打开syncookie

实施目的

打开syncookie缓解synflood攻击

检测方法

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

操作指南

#echo1>/proc/sys/net/ipv4/tcp_syncookies

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

2.5.4不响应ICMP请求

实施目的

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

检测方法

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

操作指南

不响应ICMP请求:

#echo1>/proc/sys/net/ipv4/icmp_echo_ignore_all

2.5.5防syn攻击优化

实施目的

提高未连接队列大小

检测方法

sysctlnet.ipv4.tcp_max_syn_backlog值为2048

操作指南

1、参考配置操作

sysctl-wnet.ipv4.tcp_max_syn_backlog="2048"

2.5.6补丁装载

实施目的

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

检测方法

Uname–a

Rpm–qa

cat/proc/version

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 艺术创意

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1