Redhat安全加固Word文档格式.docx
- 文档编号:19411736
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:36
- 大小:82.18KB
Redhat安全加固Word文档格式.docx
《Redhat安全加固Word文档格式.docx》由会员分享,可在线阅读,更多相关《Redhat安全加固Word文档格式.docx(36页珍藏版)》请在冰豆网上搜索。
执行:
awk-F:
'
($2=="
"
){print$1}'
/etc/shadow,检查是否存在空口令账号
1.1.3密码复杂度(必做)
redhat公司专门开发了cracklib这个安装包来判断密码的复杂度
检查是否安装了cracklib模块,
#rpm-qa|grepcracklib
cracklib-2.8.9-3.3
cracklib-dicts-2.8.9-3.3
在/etc/pam.d/system-auth中修改:
(原文件自带pam_cracklib.so模块)
passwordrequisitepam_cracklib.sotry_first_passretry=3
修改为
passwordrequisitepam_cracklib.sotry_first_passretry=3difok=3minlen=8dcredit=-1ucredit=-1lcredit=-1ocredit=-1
下一行后边追加remember=5,表示5次更改密码不能有重复,并且每次修改密码都会将历史密码记录在/etc/security/opasswd文件中
passwordsufficientpam_unix.somd5shadownulloktry_first_passuse_authtokremember=5
retry=N----改变输入密码的次数,默认值是1,一般设置为3。
就是说,如果用户输入的密码强度不够可以重复输入的次数。
minlen=N----密码最小长度(除了credit信用度的字符长度以外)
dcredit=N----密码中至少(N<
0)或至多(N>
=0)有几个数字
ucredit=N----密码中至少(N<
=0)有几个大写字母
lcredit=N----密码中至少(N<
=0)有几个小写字母
ocredit=N----密码中至少(N<
=0)有几个特殊字符
difok=M----新密码与前一个旧密码之间至少有M个字符不相同
dcredit、ucredit、lcredit、ocredit为信用度字符,如果N<
0,表示至少,则新密码长度最小长度就等于minlen.。
而当N>
0时,表示至多,比如ocredit=1,至多有1个特殊字符,这样的话,即使没有特殊字符也会允许设置新密码。
还有,此时新密码长度会大于minlen。
算法交复杂,这里不赘述。
因此,通常情况下推荐使用N<
0来做密码复杂度限制。
另外,此密码规则对root用户无效,只针对普通用户修改自身密码
1.2登录验证规则
1.2.1记录用户登录失败次数并锁定(必做)
在/etc/pam.d/system-auth中“#%PAM-1.0”下面一行加入
authrequiredpam_tally2.soonerr=faildeny=10no_magic_rootunlock_time=300
一定要加在#%PAM-1.0下面一行
参数说明:
deny[=n]----用户连续错误登陆的最大次数,超过则锁定
unlock_time----设定普通用户锁定后,多少时间后解锁,单位是秒
even_deny_root----也限制root用户
root_unlock_time[=n]----设定root用户锁定后,多少时间后解锁,单位是秒
quiet----不对已锁定的用户发出提示信息
以上参数根据实际需要取舍,如果使用了even_deny_root参数限制root用户登录错误次数,而没有配置root_unlock_time的话,一旦root用户被锁,解锁将很麻烦。
1.2.2查看用户登录失败次数(查看)
通过以下命令可以查看用户登录失败次数以及
#pam_tally2-utest
LoginFailuresLatestfailureFrom
test305/23/1114:
46:
07192.168.7.25
当登录错误次数达到最大限制后,用户再次登录时,会提示:
Youraccountislocked.Maximumamountoffailedattemptswasreached.
1.2.3解锁已锁定用户
自动解锁:
如果配置了unlock_time或root_unlock_time(针对root用户)参数,则等待超过这个时长后,帐户会自动解锁。
手动解锁:
只能以root用户通过以下命令可以手动解锁因登录错误次数达到最大限制后自动锁定的用户,同时登录错误次数会被重置为0
#pam_tally2-utest-r
1.3访问控制
1.3.1禁止root用户直接远程ssh登录(必做)
#vi/etc/ssh/sshd_config
将#PermitRootLoginyes改为
PermitRootLoginno
重启ssh服务
#servicesshdrestart
1.3.2禁止root用户直接远程telnet登录(必做)
系统安装telnet-server服务后,默认就是禁止root用户直接远程telnet登录的。
确认只要存在/etc/securetty文件,就可以限制root直接远程telnet登录。
注:
以下是移动安全加固规范里的描述,已不适应rhel5.x系统
1.3.3禁止无用的系统用户登录(必做)
#usermod-s/sbin/nologinusername
一般以下这几个系统用户根据实际需要可以进行禁止登陆,可能现网系统还存在其他用户
foriin\
bin\
daemon\
adm\
lp\
sync\
shutdown\
halt\
mail\
news\
uucp\
operator\
games\
gopher\
ftp\
nobody\
nscd\
vcsa\
ntp\
pcap\
dbus\
avahi\
rpc\
mailnull\
smmsp\
sshd\
oprofile\
pegasus\
xfs\
rpcuser\
nfsnobody\
haldaemon\
avahi-autoipd\
gdm\
netdump\
pvm\
cyrus\
mysql\
postgres\
amanda\
;
dousermod-s/sbin/nologin$i;
done
1.3.4删除系统特殊的的用户帐号(必做)
事先备份好以下文件,以防删除后出现问题
/etc/passwd
/etc/group
/etc/shadow
/etc/gshadow
foriinadmlpsyncshutdownhaltnewsuucpoperatorgamesgopher;
douserdel$i;
1.3.5删除特殊的组(必做)
foriinadmlpnewsuucpgamesdippppuserspopusersslipusers;
dogroupdel$i;
1.3.6登录超时控制(必做)
对于bash用户,修改/etc/profile或/etc/bashrc,所有使用bash的用户都会继承
#vi/etc/profile
TMOUT=180
exportTMOUT
对于csh用户,修改/etc/csh.cshrc,所有使用csh的用户都会继承
#vi/etc/csh.cshrc
setenvTMOUT180
1.3.7检查是否存在除root之外UID为0的用户(必做)
执行
($3==0){print$1}'
/etc/passwd
UID为0的任何用户都拥有系统的最高特权,保证只有root用户的UID为0
1.3.8允许或禁止指定用户或组直接ssh远程登录(可选)
1.允许(白名单)
vi/etc/ssh/sshd_config
增加
AllowUserstest1test2#表示只有列表中的用户允许直接登录,其他都禁止
或
AllowGroupstestgrp1testgrp2#表示只有列表中组内的用户允许直接登录,其他都禁止
如果AllowUsers和AllowGroups同时配置,则取交集。
建议还是使用其中一种,避免引起混乱
2.禁止(黑名单)
DenyUserstest1
DenyGroupstestgrp1testgrp2
如果DenyUsers和DenyGroups同时配置,则取并集。
1.3.9允许或禁止指定用户或组直接telnet远程登录
系统不支持限制普通用户telnet远程登录
1.3.10允许或禁止指定IP地址ssh远程登录(可选)
/etc/hosts.allow控制可以访问本机的IP地址,/etc/hosts.deny控制禁止访问本机的IP。
如果两个文件的配置有冲突,以/etc/hosts.deny为准。
/etc/hosts.allow
sshd:
192.168.1.10192.168.1.11
/etc/hosts.deny
ALL
表示只有192.168.1.10和192.168.1.11地址可以访问ssh服务,其他IP全都禁止
all:
192.168.4.44:
allow#允许单个IP访问所有服务进程
192.168.1.:
allow#允许192.168.1的整个网段访问SSH服务进程
1.3.11允许或禁止指定IP地址telnet远程登录(可选)
in.telnetd:
1.3.12指定wheel组的用户可以su作为root(可选,先不做,测试有问题)
#vi/etc/pam.d/su
#%PAM-1.0
authsufficientpam_rootok.so
#Uncommentthefollowinglinetoimplicitlytrustusersinthe"
wheel"
group.
#authsufficientpam_wheel.sotrustuse_uid
#Uncommentthefollowinglinetorequireausertobeinthe"
#authrequiredpam_wheel.souse_uid
去掉红色行前面的#号
这样以来只有wheel组的用户可以su作为root
指定某个用户可以su到root用户,需要将该用户加入到wheel组中
#usermod-Gwheelusername
注意,如果禁止root用户直接登录,也不存在wheel组的用户,就无法进入root用户了
1.4用户和文件权限
Linux文件系统的安全主要是通过设置文件的权限来实现的。
每一个Linux的文件或目录,都有3组属性,分别定义文件或目录的所有者,用户组和其他人的使用权限(只读、可写、可执行、允许SUID、允许SGID等)。
特别注意,权限为SUID和SGID的可执行文件,在程序运行过程中,会给进程赋予所有者的权限,如果被黑客发现并利用就会给系统造成危害。
1.4.1查找未授权的SUID/SGID文件(必做)
find/-xdev-typef\(-perm-04000-o-perm-02000\)-print
建议经常性的对比suid/sgid文件列表,以便能够及时发现可疑的后门程序
举例,普通用户无法直接vi修改/etc/passwd文件,但却可以通过passwd命令来修改自身的密码。
这时就利用了/bin/passwd的SUID的权限。
如果一个程序被设置成了S位标志,那么普通用户就可以以root身份来运行这个程序。
对系统安全性有较大不利影响,所以应禁止所有不必要的SUID/SGID程序。
修改部分系统文件的SUID和SGID的权限:
chmoda-s/usr/bin/chage
chmoda-s/usr/bin/gpasswd
chmoda-s/usr/bin/wall
chmoda-s/usr/bin/chfn
chmoda-s/usr/bin/chsh
chmoda-s/usr/bin/newgrp
chmoda-s/usr/bin/write
chmoda-s/usr/sbin/usernetctl
chmoda-s/bin/mount
chmoda-s/bin/umount
chmoda-s/sbin/netreport
1.4.2设定用户创建目录和文件的默认权限(必做)
使用umask指定当前用户创建文件夹和文件的默认权限属性
•若使用者建立为『文件』,则预设『没有可执行(x)项目』,亦即只有rw这两个项目,也就是最大为666分
--rw-rw-rw-
•若使用者建立为『目录』,则由于x与是否可以进入此目录有关,因此预设为所有权限均开放,亦即为777分
drwxrwxrwx
修改/etc/profile、/etc/bashrc、/etc/csh.login、/etc/csh.cshrc
举例:
umask002
生成目录的权限为777-002=775,即drwxrwxr-x
生成文件的权限为666-002=664,即-rw-rw-r--
umask022
生成目录的权限为777-022=755,即drwxrwxr-x
生成文件的权限为666-022=644,即-rw-r--r--
注意,不要单纯的进行数字加减
比如,umask003,如果以数字加减,则文件权限为666-003=663,相当于-rw-rw--wx,显然不正确,应该先转换成权限属性再相减-rw-rw-rw-减去--------wx,即应该为-rw-rw-r--
影响:
移动规范要求umask027,这样生成的文件默认权限为-rw-r-----,只有本用户可读、写、执行。
如果业务需要,其他用户也需要操作该用户的文件,就会有问题。
可以使用默认的022。
1.4.3root用户环境变量的安全性(必做)
echo$PATH|egrep'
(^|:
)(\.|:
|$)'
检查是否包含父目录
检查是否包含组目录权限为o+w的目录或者g+w的目录
find`echo$PATH|tr'
:
'
`-typed\(-perm-002-o-perm-020\)-ls
-002表示任何目录或文件,只要带o+w就匹配
+002表示目录或文件只有o+w权限,-------w-
可能会出现报错提示/root/bin目录不存在,PATH里有该路径,而实际上没有,可以先在/root下建立一个bin目录
1.4.4检查root用户环境变量path规范(必做)
检查系统root用户环境变量path中是否包含“.”
env|grepPATH
修改文件/etc/profile、/etc/bashrc或/root/.bash_profile在“PATH=……”这句中删除
1.4.5远程连接的安全性配置(必做)
find/-name.netrc,检查系统中是否有.netrc文件,
find/-name.rhosts,检查系统中是否有.rhosts文件
如无必要,删除这两个文件
在多机互备的环境中,需要保留其他主机的IP可信任。
。
如果确实需要保留,应确认该文件内不存在"
+"
符号,,更不能存在"
++"
,因为++表示允许来自任何主机的任何用户无须密码就可以使用rlogin登陆。
1.4.6重要目录和文件的权限设置(必做)
执行以下命令检查目录和文件的权限设置情况:
ls-l/etc/
ls-l/etc/rc.d/init.d/
ls-l/tmp
ls-l/etc/inetd.conf
ls-l/etc/passwd
ls-l/etc/shadow
ls-l/etc/group
ls-l/etc/security
ls-l/etc/services
ls-l/etc/rc*.d
对于重要目录,建议执行如下类似操作:
#chmod-R750/etc/rc.d/init.d/*
这样只有root可以读、写和执行这个目录下的脚本。
chmod644/etc/passwd
chmod600/etc/shadow
chmod644/etc/group
chmod600/etc/gshadow
chmod700/bin/rpm//只有root用户可以使用rpm命令,安装软件包
chmod644/usr/bin/xhost
chmod664/etc/hosts
chmod644/etc/exports
chmod644/etc/issue
chmod664/var/log/wtmp
chmod644/etc/services
chmod600/etc/xinetd.conf
chmod600/etc/login.defs
chmod600/etc/hosts.allow
chmod600/etc/hosts.deny
chmod600/etc/securetty
chmod600/etc/ssh/ssh_host_key
chmod600/etc/ssh/sshd_config
chmod600/var/log/lastlog
chmod600/var/log/messages
chmod600/etc/security
有的移动安全加固标准要求/etc目录是750权限,但如果/etc目录是权限是750(drwxr-x---)的话,由于其他组没有x权限,那么普通用户就无权访问/etc目录以及以下所有文件,用户获取不到基本的环境变量/etc/profile和/etc/passwd、group等文件,一些基本命令都会出现问题,本用户的文件只有uid、gid,无法对应名用户名称和组名称。
1.4.7检查任何人都有写权限的目录(必做)
带有stickybit标志校验的命令
find/-xdev-typed\(-perm-0002-a!
-perm-1000\)-print
不带stickybit标志校验的
find/-typed-perm-2-execls-ldg{}\;
之前在福建做的检查中,使用了这条不带stickybit标志校验的命令,结果把/tmp、/dev/shm、/var/tmp这类目录也搜索出来了。
这些目录是存放每个用户临时文件的,目录本身是带stickybit粘滞位的,即使里面的文件有o+w权限也没问题,系统本身有保护性措施。
1.4.8查找任何人都有写权限的文件(必做)
find/-xdev-typef\(-perm-0002-a!
find/-typef-perm-2-execls-lg{}\;
解释同上
1.4.9检查没有属主的文件(必做)
find/-nouser-o-nogroup-print
发现没有属主的文件往往就意味着有黑客入侵你的系统了。
不能允许没有主
人的文件存在。
如果在系统中发现了没有属主的文件或目录,先查看它的完
整性,如果一切正常,给它一个属主。
有时候卸载程序可能会出现一些没有
主人的文件或目录,在这种情况下可以把这些文件和目录删除掉。
在我的安全加固脚本中,把没有属主或属组的文件直接赋予了nobody用户和组
find/-path"
/proc"
-prune-nouser-o-nogroup-execchownnobody:
nobody{}\;
说明:
命令中排除了/proc目录
不用管“/dev”目录下的那些文件。
(移动新规范)
1.4.10检查异常隐含文件(必做)
#find/-xdev-name"
..*"
...*"
-print|cat-v
..^G"
同时也要注意象“.xx”和“.mail”这样的文件名的。
(这些文件名看起来都很象正常的文件名)在系统的每个地方都要查看一下有没有异常隐含文件(点号是起始字符的,用“ls”命令看不到的文件),因为这些文件可能是隐藏的黑客工具或者其它一些信息(口令破解程序、其它系统的口令文件,等等)。
在UNIX下,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Redhat 安全 加固
![提示](https://static.bdocx.com/images/bang_tan.gif)