安全指南LINUX安全配置.docx
《安全指南LINUX安全配置.docx》由会员分享,可在线阅读,更多相关《安全指南LINUX安全配置.docx(38页珍藏版)》请在冰豆网上搜索。
![安全指南LINUX安全配置.docx](https://file1.bdocx.com/fileroot1/2023-5/23/b9ba84ff-726a-4327-9642-345342dcb4a4/b9ba84ff-726a-4327-9642-345342dcb4a41.gif)
安全指南LINUX安全配置
目录
1.范围3
2.术语和定义3
3.安全配置3
3.1综述3
3.2补丁5
3.2.1系统补丁5
3.2.2其他应用补丁5
3.3最小化xinetd网络服务5
3.3.1停止默认服务5
3.3.2其他6
3.4最小化启动服务6
3.4.1设置daemon权限unmask6
3.4.2关闭xinetd服务7
3.4.3关闭邮件服务7
3.4.4关闭图形登录服务7
3.4.5关闭X字体服务器8
3.4.6关闭其他默认启动服务8
3.4.7调整SMB服务9
3.4.8调整NFS服务器服务9
3.4.9调整NFS客户端服务9
3.4.10调整NIS服务器服务10
3.4.11调整NIS客户端服务10
3.4.12调整RPC端口映射服务10
3.4.13调整netfs服务11
3.4.14调整打印机服务11
3.4.15调整Web服务器服务11
3.4.16调整SNMP服务12
3.4.17调整DNS服务器服务12
3.4.18调整SSHD服务器服务12
3.4.19调整SQL服务器服务13
3.4.20调整Webmin服务13
3.4.21调整Squid服务13
3.4.22调整kudzu硬件探测服务14
3.5内核参数14
3.5.1网络参数调整14
3.5.2更多的网络参数调整15
3.6日志15
3.6.1系统认证日志配置15
3.6.2FTP进程日志配置16
3.6.3确认系统日志权限17
3.7文件/目录权限18
3.7.1/etc/fstab中适当分区增加“nodev”选项18
3.7.2/etc/fstab中移动设备增加“nosuid”“nodev”选项18
3.7.3禁止用户挂接可移动文件系统18
3.7.4检查passwd,shadow和group文件权限19
3.7.5全局可写目录应设置粘滞位19
3.7.6找出未授权的全局可写目录20
3.7.7找出未授权的SUID/SGID文件20
3.7.8找出异常和隐藏的文件20
3.8系统访问,授权和认证20
3.8.1删除.rhosts文件20
3.8.2创建危险文件的链接21
3.8.3创建ftpuser文件22
3.8.4关闭X-Windows的开放端口22
3.8.5限制只有授权用户可以访问at/cron24
3.8.6限制crontab文件的权限24
3.8.7创建警示BANNER25
3.8.8配置xinetd访问控制28
3.8.9限制root只能在控制台登录28
3.8.10设置LILO/GRUB密码29
3.8.11设置单用户默认认证30
3.8.12限制NFS客户端特权端口30
3.9用户帐户和环境31
3.9.1系统无用帐户31
3.9.2确认没有空密码帐户32
3.9.3设置活动帐户的过期时间32
3.9.4确认没有“+”存在于passwd,shadow和group文件33
3.9.5确认没有root之外的UID0帐户33
3.9.6删除root路径中的“.”或其他全局可写目录33
3.9.7用户主目录应为755或更少权限34
3.9.8没有用户.开头的文件全局可写34
3.9.9删除用户.netrc文件35
3.9.10设置用户的默认umask35
3.9.11禁止coredumps36
1.范围
本部分规定了网络系统中所使用的LINUX操作系统所应遵循的安全配置指南。
2.术语和定义
Xinetd
Xinetd是旧的inetd服务的替代,他提供了一些网络相关服务的启动调用方式。
X
XWindow系统(也常称为X11或X)是一种以位图方式显示的软体视窗系统。
最初是1984年麻省理工学院的研究,之后变成UNIX、类UNIX、以及OpenVMS等操作系统所一致适用的标准化软体工具套件及显示架构的运作协定。
3.安全配置
3.1综述
本文档以典型安装的RedHatLinux为对象撰写而成,其他版本均基本类似,根据具体情况进行适当修改即可。
文档中的操作需要以root用户登录至控制台进行,不推荐使用网络远程的方式进行补丁及配置修改等加固操作。
部分操作需要重新启动服务器才会生效,注意某些数据库等应用需要先停止应用,然后才可以重新启动。
加固之前首先应对系统中的重要文件及可能修改的文件进行备份,可参照使用以下脚本:
forfilein/etc/inetd.conf/etc/hosts.equiv\
/etc/ftpusers/etc/passwd/etc/shadow/etc/hosts.allow\
/etc/hosts.deny/etc/proftpd.conf\
/etc/rc.d/init.d/functions/etc/inittab\
/etc/sysconfig/sendmail/etc/security/limits.conf\
/etc/exports/etc/sysctl.conf/etc/syslog.conf\
/etc/fstab/etc/security.console.perms/root/.rhosts\
/root/.shosts/etc/shosts.equiv/etc/X11/xdm/Xservers\
/etc/X11/xinit/xserverrc/etc/X11/gdm/gdm.conf\
/etc/cron.allow/etc/cron.deny/etc/at.allow\
/etc/at.deny/etc/crontab/etc/motd/etc/issue\
/usr/share/config/kdm/kdmrc/etc/X11/gdm/gdm.conf\
/etc/securetty/etc/security/access.conf/etc/lilo.conf\
/etc/grub.conf/etc/login.defs/etc/group/etc/profile\
/etc/csh.login/etc/csh.cshrc/etc/bashrc\
/etc/ssh/sshd_config/etc/ssh/ssh_config\
/etc/cups/cupsd.conf/etc/{,vsftpd/}vsftpd.conf\
/etc/logrotate.conf/root/.bashrc/root/.bash_profile\
/root/.cshrc/root/.tcshrc/etc/vsftpd.ftpusers;do
[-f$file]&&/bin/cp$file$file-preCIS
done
fordirin/etc/xinetd.d/etc/rc[0123456].d\
/var/spool/cron/etc/cron.*/etc/logrotate.d/var/log\
/etc/pam.d/etc/skel;do
[-d$dir]&&/bin/cp-r$dir$dir-preCIS
done
3.2补丁
3.2.1系统补丁
系统内核版本使用uname-a查看。
软件版本和补丁使用rpm-qa查看。
使用up2date命令自动升级或去http:
//mirrors.kernel.org/(2009-3-17测试可用)下载对应版本补丁手工单独安装。
3.2.2其他应用补丁
除RedHat官方提供的系统补丁之外,系统也应对根据开放的服务和应用进行补丁,如APACHE、PHP、OPENSSL、MYSQL等应用进行补丁。
具体升级方法:
首先确认机器上安装了gcc及必要的库文件。
然后去应用的官方网站下载对应的源代码包,如*.tar.gz
再解压
tarzxfv*.tar.gz
再根据使用情况对编译配置进行修改,或直接采用默认配置
cd*
./configure
再进行编译和安装
make
makeinstall
3.3最小化xinetd网络服务
3.3.1停止默认服务
说明:
Xinetd是旧的inetd服务的替代,他提供了一些网络相关服务的启动调用方式。
Xinetd应禁止以下默认服务的开放:
chargenchargen-udpcups-lpddaytimedaytime-udpechoecho-udpekloginfingergssftpimapimapsipop2ipop3krb5-telnetkloginkshellktalkntalkpop3srexecrloginrshrsyncserversservices
操作:
停止一个服务
chkconfig服务名off
打开一个服务
chkconfig服务名on
也可以使用ntsysv命令进行服务开关调整
3.3.2其他
说明:
对于xinet必须开放的服务,应该注意服务软件的升级和安全配置,并推荐使用SSH和SSL对原明文的服务进行替换。
如果条件允许,可以使用系统自带的iptables或tcp-wrapper功能对访问IP地址进行限制。
操作:
Xinetd、SSH和SSL、防火墙配置参见对应系统的用户手册,此不详述。
3.4最小化启动服务
3.4.1设置daemon权限unmask
说明:
默认系统umask至少为022,以防止daemon被其他低权限用户修改。
操作:
vi修改/etc/rc.d/init.d文件,umask值为022。
同时检查/etc/rc.d/init.d中其他启动脚本权限是否为755。
3.4.2关闭xinetd服务
说明:
如果前面第二章关闭xinetd服务中所列的服务,都不需要开放,则可以直接关闭xinetd服务。
操作:
chkconfig--level12345xinetdoff
3.4.3关闭邮件服务
说明:
1)如果系统不需要作为邮件服务器,并不需要向外面发邮件,可以直接关闭邮件服务。
2)如果不需要作为邮件服务器,但是允许用户发送邮件,可以设置Sendmail不运行在daemon模式。
操作:
1)chkconfig--level12345sendmailoff
2)编辑/etc/sysconfig/senmail文件
增添以下行
DAEMON=no
QUEUE=1h
设置
cd/etc/sysconfig
/bin/chownroot:
rootsendmail
/bin/chmod644sendmail
3.4.4关闭图形登录服务
说明:
一般来说,大部分软件的安装和运行都不需要图形环境。
如果不需要图形环境进行登录和操作,可以关闭XWindows的运行。
操作:
cp/etc/inittab/etc/inittab.bak
编辑/etc/inittab文件
修改id:
5:
initdefault:
行为id:
3:
initdefault:
chownroot:
root/etc/inittab
chmod0600/etc/inittab
如需要XWindows的时候,可运行startx命令启动图形界面。
3.4.5关闭X字体服务器
说明:
如果关闭了XWindows服务,则Xfont服务器服务也应该进行关闭。
操作:
chkconfigxfsoff
3.4.6关闭其他默认启动服务
说明:
系统启动时会启动很多不必要的服务,这些不必要的服务均存在一定的安全隐患。
一般可能存在以下不必要的服务:
apmdcannaFreeWnngpmhpojinndirdaisdnkdcrotatelvsmars-nweoki4daemonprivoxyrstatdrusersdrwalldrwhodspamassassinwinenfsnfslockautofsypbindypservyppasswddportmapsmbnetfslpdapachehttpdtuxsnmpdnamedpostgresqlmysqldwebminkudzusquidcups
加固时,应根据机器具体配置使用和应用情况对开放的服务进行调整,关闭不需要的服务。
服务运行脚本一般都放在/etc/rc.d/rc*.d进行启动,可以使用chkconfig工具直接进行管理。
对于必须通过/etc/rc.d/rc*.d开放的服务,应确保都已打上过最新的补丁。
操作:
chkconfig--level12345服务名off
如果关闭了特定的服务,也应该同时对这些服务在系统中的用户加以锁定或删除
可能包括以下用户rpcrpcuserlpapachehttphttpdnameddnsmysqlpostgressquid
usermod-L要锁定的用户
3.4.7调整SMB服务
说明:
Samba服务器一般用来提供与Windows类似的文件和打印共享服务。
除非十分必要,否则应关闭SMB(Windows文件共享)服务。
可采用以下方式开放SMB服务。
操作:
chkconfigsmbon
3.4.8调整NFS服务器服务
说明:
NFS漏洞较多,经常被利用来取得未授权的文件或系统权限。
除非十分必要,否则应关闭NFS服务。
可采用以下方式开放SMB服务,并应该限制export文件系统的中的IP地址范围,以及增添只读权限。
操作:
chkconfig--level345nfson
3.4.9调整NFS客户端服务
说明:
NFS客户端服务一般用来访问其他NFS服务器。
除非十分必要,否则应关闭此服务。
可采用以下方式开放此服务。
操作:
chkconfig--level345nfslockon
chkconfig--level345autofson
3.4.10调整NIS服务器服务
说明:
NIS用来提供基于UNIX的域管理和认证手段。
除非十分必要,否则应关闭此服务。
可采用以下方式开放此服务。
操作:
chkconfigypservon
chkconfigyppasswddon
3.4.11调整NIS客户端服务
说明:
NIS客户端用来访问其他NIS服务器。
除非十分必要,否则应关闭此服务。
可采用以下方式开放此服务。
操作:
chkconfigypbindon
3.4.12调整RPC端口映射服务
说明:
RPC协议一般经过比较简单的或不经认证就可以得到一些非常敏感的信息。
并且RPC系列服务都存在一些缓冲区溢出问题。
在以下情况下可以考虑关闭RPC端口映射服务:
服务器不是NFS服务器或客户端;
服务器不是NIS服务器或客户端;
服务器没有运行其它依赖于RPC服务的第三方软件;
服务器不运行图形界面(x-windows)。
操作:
chkconfig--level345portmapon
3.4.13调整netfs服务
说明:
此服务会作为客户端挂接网络中的磁盘。
如果没有网络文件共享协议如NFS,NovellNetware或Windows文件共享使用,则可以关闭此服务。
操作:
chkconfig--level345netfson
3.4.14调整打印机服务
说明:
UNIX打印服务存在较多的安全漏洞。
如果系统不作为网络中的打印机服务器,则可以关闭此服务。
如果必须使用此服务,首先应保证软件都经过最新的补丁,然后设置cupsd进程运行在非root用户和组。
操作:
if[-e/etc/init.d/cups];then
chkconfigcupson
sed's/^\#Userlp/Userlp/'/etc/cups/cupsd.conf\
>/etc/cups/cupsd.conf.new
sed's/^\#Groupsys/Groupsys/'\
/etc/cups/cupsd.conf.new>/etc/cups/cupsd.conf
rm-f/etc/cups/cupsd.conf.new
/bin/chownlp:
sys/etc/cups/cupsd.conf
/bin/chmod600/etc/cups/cupsd.conf
fi
chkconfighpojon
chkconfiglpdon
3.4.15调整Web服务器服务
说明:
如果服务器必须开放Web,则需要作如下设置。
应注意web目录权限设置,不要允许目录list。
操作:
chkconfigapahceon
或
chkconfighttpdon
3.4.16调整SNMP服务
说明:
简单网络管理协议SNMP一般用来监控网络上主机或设备的运行情况。
如果必须打开,则必须更改默认通讯字。
操作:
chkconfigsnmpdon
编辑/etc/snmp/snmpd.conf
com2secnotConfigUserdefaultpublic
修改public为其他一个足够复杂的密码。
3.4.17调整DNS服务器服务
说明:
DNS服务器服务用来为其他机器提供DNS解析,一般来说都可以关掉。
如果必须进行开放,则必须升级至最新版本,并推荐设置chroot环境,还需要注意限制DNS配置文件中的区域传输等设置(加密码或加IP地址限制)。
操作:
chkconfignamedon
3.4.18调整SSHD服务器服务
说明:
SSHD服务器服务用来提供SSHServer的服务。
如果必须进行开放,则必须升级至最新版本,并推荐设置chroot环境,还需要注意限制SSH配置文件中的区域传输等设置,需要在SSHD配置文件中禁用ssh1方式连接,因ssh1方式连接是非完全加密。
操作:
Ø如使用Openssh,则检查/etc/ssh/sshd_config
grepProtocol/etc/ssh/sshd_config
Ø如使用SSH.com的SSHD,需要检查/etc/ssh2/sshd2_config
grepProtocol/etc/ssh2/sshd2_config
3.4.19调整SQL服务器服务
说明:
如果不需要数据库服务,则可以关闭此服务。
如果必须进行开放,则注意修改数据库用户的密码,并增加数据库用户IP访问限制。
操作:
chkconfigpostgresqlon
chkconfigmysqldon
3.4.20调整Webmin服务
说明:
Webmin是一个通过HTTP协议控制linux的工具,一般推荐使用SSH进行系统管理而不要使用此工具。
操作:
chkconfigwebminon
3.4.21调整Squid服务
说明:
Squid服务是客户端与服务器之间的代理服务。
Squid服务已出现过很多安全漏洞,并且如果设置不当的话,可能导致被利用来作为内外网之间的跳板。
如果不需要,则可以关闭此服务。
如果必须打开,则需要设置允许访问的地址列表及认证。
操作:
chkconfigsquidon
3.4.22调整kudzu硬件探测服务
说明:
Kudzu服务是linux的硬件探测程序,一般设置为启动系统的时候运行。
他会检测系统中的硬件的改变,并且会提示进行配置等。
XX的新设备存在的一定的安全风险,系统启动时控制台就可以配置任何新增添的设备。
如果不需要经常的改动硬件,则需要进行关闭。
可以在增添新设备时手工运行/etc/rc.d/init.d/kudzu启动此服务。
操作:
chkconfig--level345kudzuon
3.5内核参数
3.5.1网络参数调整
说明:
Linux支持对网络参数进行调整。
具体参数详细说明,可参见
http:
//lxr.linux.no/source/Documentation/networking/ip-sysctl.txt。
操作:
编辑/etc/sysctl.conf
增加
net.ipv4.tcp_max_syn_backlog=4096
net.ipv4.conf.all.rp_filter=1
net.ipv4.conf.all.accept_source_route=0
net.ipv4.conf.all.accept_redirects=0
net.ipv4.conf.all.secure_redirects=0
net.ipv4.conf.default.rp_filter=1
net.ipv4.conf.default.accept_source_route=
net.ipv4.conf.default.accept_redirects=0
net.ipv4.conf.default.secure_redirects=0
/bin/chownroot:
root/etc/sysctl.conf
/bin/chmod0600/etc/sysctl.conf
3.5.2更多的网络参数调整
说明:
如果系统不作为在不同网络之间的防火墙或网关时,可进行如下设置。
具体参数详细说明,可参见
http:
//lxr.linux.no/source/Documentation/networking/ip-sysctl.txt
操作:
编辑/etc/sysctl.conf
增加
net.ipv4.ip_forward=0
net.ipv4.conf.all.send_redirects=0
net.ipv4.conf.default.send_redirects=0
/bin/chownroot:
root/etc/sysctl.conf
/bin/chmod0600/etc/sysctl.conf
3.6日志
3.6.1系统认证日志配置
说明:
不是所有版本的linux都会在日志之中记录登陆信息。
一般需要对这些重要的安全相关的信息进行保存,(如成功或失败su,失败的登陆,root登陆等)。
这些将会被记录在/var/log/secure文件里。
操作:
编辑/etc/syslog.conf
确认有如下行
authpriv.*/var/log/secure
touch/var/log/secure
/bin/chownroot:
root/var/log/secure
/bin/chmod600/var/log/secure
3.6.2FTP进程日志配置
说明:
系统默认会记录wu-ftpd和vsftpd所有的连接和文件传输。
以下将会确认所有发送到服务器的命令将会被记录。
wu-ftpd将会把安全相关的或是策略边界的行为记忆文件传输记录到syslog里,默认位于/var/log/xferlog。
操作:
编辑/etc/xinetd.d/wu-ftpd文件
确认有如