linux加固手册v10正式版文档格式.docx

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

linux加固手册v10正式版文档格式.docx

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

linux加固手册v10正式版文档格式.docx

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:

example:

/bin/example

操作指南

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

#cat/etc/passwd

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

2.1.2缺省密码长度限制

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

对于采用静态口令

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

cat/etc/login.defs

查看是否有如下行:

PASS_MIN_LEN8

1、参考配置操作

#vi/etc/login.defs

把下面这行

PASS_MIN_LEN5改为

2.1.3缺省密码生存周期限制

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

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

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

PASS_MAX_DAYS90

PASS_MIN_DAYS0

1、参考配置操作

2.1.4口令过期提醒

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

PASS_WARN_AGE7

2、参考配置操作

PASS_WARN_AGE7

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

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

远程执行管理员

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

管理员权限账。

/etc/ssh/sshd_config中PermitRootLoginno

SSH:

#vi/etc/ssh/sshd_config

PermitRootLoginyes

改为

PermitRootLoginno

重启sshd服务

#servicesshdrestart

CONSOLE:

在/etc/securetty文件中配置:

CONSOLE=/dev/tty01

2.1.6使用ssh加密传输

提高远程管理安全性

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

2.2访问控制

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

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

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

为用户创建账号:

#useraddusername#创建账号

#passwdusername#设置密码

修改权限:

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

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

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

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

#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

Vi/etc/passwd

例如修改

lynn:

x:

500:

/home/lynn:

/sbin/bash

更改为:

/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/记录关键目录和文件的权限

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

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

–rw-r—r—

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

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

使用如下命令设置:

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值

设置默认权限:

vi/etc/profile

vi/etc/csh.login

vi/etc/csh.cshrc

vi/etc/bashrc

在末尾增加umask027

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

#chmod444dir;

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

根据实际情况设置权限;

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

3、补充说明

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

umask的计算:

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

对于文件,该值等于八进制数据代码666减去需要的默认权限对应的八进制数据代码值。

2.2.7设置目录权限

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

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

ls–l

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

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

判断属性

#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’

类似的定义

#vi~/.bashrc

加入

aliasls=ls-aol

aliasrm=rm-i

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

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

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

cat/etc/pam.d/su

编辑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

cat/etc/syslog.conf

#Theauthprivfilehasrestrictedaccess.

authpriv.*/var/log/secure

*auth,authpriv:

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

2.3.2记录系统安全事件

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

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

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

配置如下类似语句:

*.err;

kern.debug;

daemon.notice;

/var/adm/messages

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

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

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

Cat/etc/syslog.conf|grepcron

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

#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个文件的配置状态,

并记录。

使用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.

#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请求:

/proc/sys/net/ipv4/icmp_echo_ignore_all

2.5.5防syn攻击优化

提高未连接队列大小

sysctlnet.ipv4.tcp_max_syn_backlog值为2048

sysctl-wnet.ipv4.tcp_max_syn_backlog="

2048"

2.5.6补丁装载

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

Uname–a

Rpm–qa

cat/proc/version

查看http:

//www.redhat

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

当前位置:首页 > 表格模板 > 合同协议

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

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