linux加固手册v10正式版文档格式.docx
- 文档编号:19168965
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:29
- 大小:31.79KB
linux加固手册v10正式版文档格式.docx
《linux加固手册v10正式版文档格式.docx》由会员分享,可在线阅读,更多相关《linux加固手册v10正式版文档格式.docx(29页珍藏版)》请在冰豆网上搜索。
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- linux 加固 手册 v10 正式版