安全生产管理某安全配置手册.docx
《安全生产管理某安全配置手册.docx》由会员分享,可在线阅读,更多相关《安全生产管理某安全配置手册.docx(29页珍藏版)》请在冰豆网上搜索。
安全生产管理某安全配置手册
{安全生产管理}某安全配置手册
Linux安全配置手册
综述
本文档以典型安装的RedHatLinux为对象撰写而成,其他版本均基本类似,根据具体情况进行适当修改即可。
文档中的操作需要以root用户登录至控制台进行,不推荐使用网络远程的方式进行补丁及配置修改等加固操作。
部分操作需要重新启动服务器才会生效,注意某些数据库等应用需要先停止应用,然后才可以重新启动。
加固之前首先应对系统中的重要文件及可能修改的文件进行备份,可参照使用以下脚本:
forfilein\
ftpuserspasswdshadow\
\
rc.d/init.d/functionsinittab\
sysconfig/sendmailsecurity/\
exports\
fstab.perms.rhosts\
.shostsX11Xservers\
X11xserverrcX11\
\
crontabmotdissue\
sharekdm/kdmrcX11\
securettysecurity/\
groupprofile\
bashrc\
ssh/sshd_configssh/ssh_config\
cups/{,vsftpd/}\
.bashrc.bash_profile\
.cshrc.tcshrc;do
[-f$file]&&cp$file$file-preCIS
done
fordirinxinetd.drc[].d\
spool/croncron.*logrotate.dlog\
pam.dskel;do
[-d$dir]&&cp-r$dir$dir-preCIS
done
补丁
系统补丁
系统内核版本使用uname-a查看。
软件版本和补丁使用rpm-qa查看。
使用up2date命令自动升级或去ftp:
//.下载对应版本补丁手工单独安装。
其他应用补丁
除RedHat官方提供的系统补丁之外,系统也应对根据开放的服务和应用进行补丁,如APACHE、PHP、OPENSSL、MYSQL等应用进行补丁。
具体升级方法:
首先确认机器上安装了gcc及必要的库文件。
然后去应用的官方网站下载对应的源代码包,如*.
再解压
tarzxfv*.
再根据使用情况对编译配置进行修改,或直接采用默认配置
cd*
./configure
再进行编译和安装
make
makeinstall
最小化xinetd网络服务
停止默认服务
说明:
Xinetd是旧的inetd服务的替代,他提供了一些网络相关服务的启动调用方式。
Xinetd应禁止以下默认服务的开放:
chargenchargen-udpcups-lpddaytimedaytime-udpechoecho-udpekloginfingergssftpimapimapsipop2ipop3krb5-telnetkloginkshellktalkntalkpop3srexecrloginrshrsyncserversservices
操作:
停止一个服务
chkconfig服务名off
打开一个服务
chkconfig服务名on
也可以使用ntsysv命令进行服务开关调整
其他
说明:
对于xinet必须开放的服务,应该注意服务软件的升级和安全配置,并推荐使用SSH和SSL对原明文的服务进行替换。
如果条件允许,可以使用系统自带的iptables或tcp-wrapper功能对访问IP地址进行限制。
操作:
Xinetd、SSH和SSL、防火墙配置参见对应系统的用户手册,此不详述。
最小化启动服务
设置daemon权限unmask
说明:
默认系统umask至少为022,以防止daemon被其他低权限用户修改。
操作:
vi修改rc.d/init.d文件,umask值为022。
同时检查rc.d/init.d中其他启动脚本权限是否为755。
关闭xinetd服务
说明:
如果前面第二章关闭xinetd服务中所列的服务,都不需要开放,则可以直接关闭xinetd服务。
操作:
chkconfig--level12345xinetdoff
关闭邮件服务
说明:
1)如果系统不需要作为邮件服务器,并不需要向外面发邮件,可以直接关闭邮件服务。
2)如果不需要作为邮件服务器,但是允许用户发送邮件,可以设置Sendmail不运行在daemon模式。
操作:
1)chkconfig--level12345sendmailoff
2)编辑sysconfig/senmail文件
增添以下行
DAEMON=no
QUEUE=1h
设置
cdsysconfig
chownroot:
rootsendmail
chmod644sendmail
关闭图形登录服务
说明:
一般来说,大部分软件的安装和运行都不需要图形环境。
如果不需要图形环境进行登录和操作,可以关闭XWindows的运行。
操作:
cpinittab
编辑inittab文件
修改id:
5:
initdefault:
行为id:
3:
initdefault:
chownroot:
rootinittab
chmod0600inittab
如需要XWindows的时候,可运行startx命令启动图形界面。
关闭X字体服务器
说明:
如果关闭了XWindows服务,则Xfont服务器服务也应该进行关闭。
操作:
chkconfigxfsoff
关闭其他默认启动服务
说明:
系统启动时会启动很多不必要的服务,这些不必要的服务均存在一定的安全隐患。
一般可能存在以下不必要的服务:
apmdcannaFreeWnngpmhpojinndirdaisdnkdcrotatelvsmars-nweoki4daemonprivoxyrstatdrusersdrwalldrwhodspamassassinwinenfsnfslockautofsypbindypservyppasswddportmapsmbnetfslpdapachehttpdtuxsnmpdnamedpostgresqlmysqldwebminkudzusquidcups
加固时,应根据机器具体配置使用和应用情况对开放的服务进行调整,关闭不需要的服务。
服务运行脚本一般都放在rc.d/rc*.d进行启动,可以使用chkconfig工具直接进行管理。
对于必须通过rc.d/rc*.d开放的服务,应确保都已打上过最新的补丁。
操作:
chkconfig--level12345服务名off
如果关闭了特定的服务,也应该同时对这些服务在系统中的用户加以锁定或删除
可能包括以下用户rpcrpcuserlpapachehttphttpdnameddnsmysqlpostgressquid
usermod-L要锁定的用户
调整SMB服务
说明:
Samba服务器一般用来提供与Windows类似的文件和打印共享服务。
除非十分必要,否则应关闭SMB(Windows文件共享)服务。
可采用以下方式开放SMB服务。
操作:
chkconfigsmbon
调整NFS服务器服务
说明:
NFS漏洞较多,经常被利用来取得未授权的文件或系统权限。
除非十分必要,否则应关闭NFS服务。
可采用以下方式开放SMB服务,并应该限制export文件系统的中的IP地址范围,以及增添只读权限。
操作:
chkconfig--level345nfson
调整NFS客户端服务
说明:
NFS客户端服务一般用来访问其他NFS服务器。
除非十分必要,否则应关闭此服务。
可采用以下方式开放此服务。
操作:
chkconfig--level345nfslockon
chkconfig--level345autofson
调整NIS服务器服务
说明:
NIS用来提供基于UNIX的域管理和认证手段。
除非十分必要,否则应关闭此服务。
可采用以下方式开放此服务。
操作:
chkconfigypservon
chkconfigyppasswddon
调整NIS客户端服务
说明:
NIS客户端用来访问其他NIS服务器。
除非十分必要,否则应关闭此服务。
可采用以下方式开放此服务。
操作:
chkconfigypbindon
调整RPC端口映射服务
说明:
RPC协议一般经过比较简单的或不经认证就可以得到一些非常敏感的信息。
并且RPC系列服务都存在一些缓冲区溢出问题。
在以下情况下可以考虑关闭RPC端口映射服务:
服务器不是NFS服务器或客户端;
服务器不是NIS服务器或客户端;
服务器没有运行其它依赖于RPC服务的第三方软件;
服务器不运行图形界面(x-windows)。
操作:
chkconfig--level345portmapon
调整netfs服务
说明:
此服务会作为客户端挂接网络中的磁盘。
如果没有网络文件共享协议如NFS,NovellNetware或Windows文件共享使用,则可以关闭此服务。
操作:
chkconfig--level345netfson
调整打印机服务
说明:
UNIX打印服务存在较多的安全漏洞。
如果系统不作为网络中的打印机服务器,则可以关闭此服务。
如果必须使用此服务,首先应保证软件都经过最新的补丁,然和设置cupsd进程运行在非root用户和组。
操作:
if[-einit.d/cups];then
chkconfigcupson
sed's/^\#Userlp/Userlp/'cups/\
>cups/.new
sed's/^\#Groupsys/Groupsys/'\
cups/.new>cups/
rm-fcups/.new
chownlp:
syscups/
chmod600cups/
fi
chkconfighpojon
chkconfiglpdon
调整Web服务器服务
说明:
如果服务器必须开放Web,则需要作如下设置。
应注意web目录权限设置,不要允许目录list。
操作:
chkconfigapahceon
或
chkconfighttpdon
调整SNMP服务
说明:
简单网络管理协议SNMP一般用来监控网络上主机或设备的运行情况。
如果必须打开,则必须更改默认通讯字。
操作:
chkconfigsnmpdon
编辑snmp/
2secnotConfigUserdefaultpublic
修改public为其他一个足够复杂的密码。
调整DNS服务器服务
说明:
DNS服务器服务用来为其他机器提供DNS解析,一般来说都可以关掉。
如果必须进行开放,则必须升级至最新版本,并推荐设置chroot环境,还需要注意限制DNS配置文件中的区域传输等设置(加密码或加IP地址限制)。
操作:
chkconfignamedon
调整SSHD服务器服务
说明:
SSHD服务器服务用来提供SSHServer的服务。
如果必须进行开放,则必须升级至最新版本,并推荐设置chroot环境,还需要注意限制SSH配置文件中的区域传输等设置,需要在SSHD配置文件中禁用ssh1方式连接,因ssh1方式连接是非完全加密。
操作:
Ø如使用Openssh,则检查ssh/sshd_config
grepProtocolssh/sshd_config
Ø如使用的SSHD,需要检查ssh2/sshd2_config
grepProtocolssh2/sshd2_config
调整SQL服务器服务
说明:
如果不需要数据库服务,则可以关闭此服务。
如果必须进行开放,则注意修改数据库用户的密码,并增加数据库用户IP访问限制。
操作:
chkconfigpostgresqlon
chkconfigmysqldon
调整Webmin服务
说明:
Webmin是一个通过HTTP协议控制linux的工具,一般推荐使用SSH进行系统管理而不要使用此工具。
操作:
chkconfigwebminon
调整Squid服务
说明:
Squid服务是客户端与服务器之间的代理服务。
Squid服务已出现过很多安全漏洞,并且如果设置不当的话,可能导致被利用来作为内外网之间的跳板。
如果不需要,则可以关闭此服务。
如果必须打开,则需要设置允许访问的地址列表及认证。
操作:
chkconfigsquidon
调整kudzu硬件探测服务
说明:
Kudzu服务是linux的硬件探测程序,一般设置为启动系统的时候运行。
他会检测系统中的硬件的改变,并且会提示进行配置等。
XX的新设备存在的一定的安全风险,系统启动时控制台就可以配置任何新增添的设备。
如果不需要经常的改动硬件,则需要进行关闭。
可以在增添新设备时手工运行rc.d/init.d/kudzu启动此服务。
操作:
chkconfig--level345kudzuon
内核参数
网络参数调整
说明:
Linux支持的对网络参数进行调整。
具体参数详细说明,可参见
.noDocumentationip-。
操作:
编辑
增加
4.tcp_max_syn_backlog=4096
4..rp_filter=1
4..accept_source_route=0
4..accept_redirects=0
4..secure_redirects=0
4..rp_filter=1
4..accept_source_route=
4..accept_redirects=0
4..secure_redirects=0
chownroot:
root
chmod0600
更多的网络参数调整
说明:
如果系统不作为在不同网络之间的防火墙或网关时,可进行如下设置。
具体参数详细说明,可参见
.noDocumentationip-
操作:
编辑
增加
4.ip_forward=0
4..send_redirects=0
4..send_redirects=0
chownroot:
root
chmod0600
日志
系统认证日志配置
说明:
不是所有版本的linux都会在日之中记录登陆信息。
一般需要对这些重要的安全相关的信息进行保存,(如成功或失败su,失败的登陆,root登陆等)。
这些将会被记录在log/secure文件里。
操作:
编辑
确认有如下行
authpriv.*log/secure
touchlog/secure
chownroot:
rootlog/secure
chmod600log/secure
FTP进程日志配置
说明:
系统默认会记录wu-ftpd和vsftpd所有的连接和文件传输。
以下将会确认所有法发送到服务期的命令将会被记录。
wu-ftpd将会把安全相关的或是策略边界的行为记忆文件传输记录到syslog里,默认位于log/xferlog。
操作:
编辑xinetd.d/wu-ftpd文件
确认有如下行
server_args=-l-a-d
chownroot:
rootwu-ftpd
chmod644wu-ftpd
编辑或vsftpd/文件
确认有如下行
xferlog_std_format=NO
log_ftp_protocol=YES
log_ftp_protocol=YES
chmod0600
chownroot:
root
确认系统日志权限
说明:
保护系统日志文件不会被非授权的用户所修改。
操作:
cdlog
chmodo-w*cron*dmesgksyms*httpd/*\
maillog*messages*news/*pgsqlrpmpkgs*samba/*\
secure*spooler*squid/*vbox/*wtmp
chmodo-rx*cron*maillog*messages*pgsql\
secure*spooler*squid/*
chmodg-w*cron*dmesghttpd/*ksyms*\
maillog*messages*pgsqlrpmpkgs*samba/*\
secure*spooler*
chmodg-rx*cron*maillog*messages*pgsql\
secure*spooler*
chmodo-wgdm/httpd/news/samba/squid/vbox/
chmodo-rxhttpd/samba/squid/
chmodg-wgdm/httpd/news/samba/squid/vbox/
chmodg-rxhttpd/samba/
chown-Rroot:
root.
chgrputmpwtmp
chown-Rnews:
newsnews
chownpostgres:
postgrespgsql
chown-Rsquid:
squidsquid
文件/目录权限
fstab中适当分区增加“nodev”选项
说明:
在我们已知不包含设备的分区增添nodev参数,防止用户挂接分区中未授权设备。
此项加固要比较慎重。
操作:
编辑fstab文件
在非/的ext2和ext3分区后增添nodev参数
chownroot:
rootfstab
chmod0644fstab
fstab中移动设备增加“nosuid”“nodev”选项
说明:
可移动的媒体可能导致恶意的程序进入系统。
可以将这些文件系统设置nosuid选项,此选项可以防止用户使用CD-ROM或软盘将设置了SUID的程序带到系统里。
参照上节,这些文件系统也应当设置nodev选项。
操作:
编辑fstab文件
在floppy和cdrom分区后增添nosuid,nodev参数
chownroot:
rootfstab
chmod0644fstab
禁止用户挂接可移动文件系统
说明:
PAM模块中的pamconsole参数给控制台的用户临时的额外特权。
其配置位于security/文件。
默认设置允许控制台用户控制可以与其他主机共享的软盘和CD-ROM设备。
这些可移动媒体存在着一定的安全风险。
以下禁止这些设备的额外特权。
操作:
编辑security/文件
修改其中的console行,删除以下设备之外的行
/sound|fb|kbd|joystick|v4l|mainboard|gpm|scanner
chownroot:
root
chmod0600
检查passwd,shadow和group文件权限
说明:
检查以下文件的默认权限。
操作:
cd/etc
chownroot:
rootpasswdshadowgroup
chmod644passwdgroup
chmod400shadow
全局可写目录应设置粘滞位
说明:
当一个目录设置了粘滞位之后,只有文件的属主可以删除此目录中的文件。
设置粘滞位可以防止用户覆盖其他用户的文件。
如/tmp目录。
操作:
find/-xdev-typed-perm-0002-a!
-perm-1000-print
找出未授权的全局可写目录
说明:
全局可写文件可以被任意用户修改。
全局可写文件可能造成一些脚本或程序被恶意修改后造成更大的危害,一般应拒绝其他组的用户的写权限。
操作:
find/-perm-0002-typef-xdev-print
chmodo-w
找出未授权的SUID/SGID文件
说明:
管理员应当检查没有其他非授权的SUID/SGID在系统内。
操作:
find/-perm-04000-o-perm-02000-typef-xdev-print
找出异常和隐藏的文件
说明:
入侵者容易将恶意文件放在这目录中或命名这样的文件名。
对于检查出来的数据需要核对与否系统自身的文件。
操作:
find/-name".."-execls-ldb{}\;
find/-name".*"-execls-ldb{}\;
系统访问,授权和认证
删除.rhosts文件
说明:
R系列服务(rlogin,rsh,rcp)使用.rhosts文件,它使用基于网络地址或主机名的远端机算计弱认证(很容易被伪造)。
如果必须使用R系列服务,则必须保证.rhosts文件中没有“+”,并且同时指定对方系统和用户名。
如果有防火墙,则应该在过滤外部网段至内部的全部R系列服务访问。
同时需要保证.rhosts文件仅可以被所有者读取(600)。
操作:
forfileinpam.d/*;do
grep-vrhosts_auth$file>${file}.new
mv${file}.new$file
chownroot:
root$file
chmod644$file
done
创建危险文件的链接
说明:
防止创建危险的.rhosts,.shosts,和文件。
操作:
rm.rhosts
ln-snull.rhosts
rm.shosts
ln-snull.shosts
rm
ln-snull
rm
ln-snull
创建ftpuser文件
说明:
Øftpusers和文件里的用户列表里的用户将拒绝通过WU-FTPD和vsftpd访问系统。
通常情况下,应当不允许一些系统用户访问FTP,并且任何时候都不应当使用root用户访问FTP。
Ø类似上述功能。
操作:
fornamein`cut-d:
-f1passwd`
do
if[`id-u$name`-lt500]
then
echo$name>>ftpusers
fi
done
chownroot:
rootftpusers
chmod600ftpusers
if[-e]||\
[-evsftpd/];then
rm-f
cpftpusers
fi
关闭X-Windows的开放端口
说明:
X服务器在6000/tcp监听远端客户端的连接。
X-Windows使用相对不安全的认证方式,取得X认证的用户很容易就可以控制整台服务器。
删除选项中的“-nolistentcp”可以使X服务器不再监听6000/tcp端口。
操作:
if[-eX11Xservers];then
cdX11/xdm
awk'($1!
~/^#/&&$3=="X11R6X")\
{$3=$3"-nolistentcp"};
{print}'Xservers>
mvXservers
chownroot:
rootXservers
chmod444Xservers
fi
if[-eX11];then
cdX11/gdm
awk-F='($2~/\/X$/)\
{printf("%s-nolistentcp\n",$0);next};
{print}'>.new
mv.new
chownroot:
root
chmod644
fi
if[-dX11/xinit];then
cdX11/xinit
if[-exserverrc];then
awk'&&!
/^#/\
{print$0":
0-nolistentcp\$@";next};\
{print}'xserverrc>
mvxserverrc
else
cat<xserverrc
#!
bash
execX:
0-nolistentcp\$@
END
fi
chownroot:
rootxserverrc
chmod755xserverrc
fi
限制只有授权用户可以访问at/cron
说明:
和可以指定允许运