LINUX安全配置手册修订版.docx
《LINUX安全配置手册修订版.docx》由会员分享,可在线阅读,更多相关《LINUX安全配置手册修订版.docx(32页珍藏版)》请在冰豆网上搜索。
LINUX安全配置手册修订版
Linux平安配置手册
综述
本文档以典型安装的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
补丁
系统补丁
系统内核版本使用uname-a查看。
软件版本和补丁使用rpm-qa查看。
使用up2date命令自动升级或去ftp:
//update下载对应版本补丁手工单独安装。
其他应用补丁
除RedHat官方提供的系统补丁之外,系统也应对根据开放的效劳和应用进行补丁,如APACHE、PHP、OPENSSL、MYSQL等应用进行补丁。
具体升级方法:
首先确认机器上安装了gcc及必要的库文件。
再解压
再根据使用情况对编译配置进行修改,或直接采用默认配置
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修改/etc/rc.d/init.d文件,umask值为022。
同时检查/etc/rc.d/init.d中其他启动脚本权限是否为755。
关闭xinetd效劳
说明:
如果前面第二章关闭xinetd效劳中所列的效劳,都不需要开放,那么可以直接关闭xinetd效劳。
操作:
chkconfig--level12345xinetdoff
关闭邮件效劳
说明:
1)如果系统不需要作为邮件效劳器,并不需要向外面发邮件,可以直接关闭邮件效劳。
2)如果不需要作为邮件效劳器,但是允许用户发送邮件,可以设置Sendmail不运行在daemon模式。
操作:
1)chkconfig--level12345sendmailoff
2)编辑/etc/sysconfig/senmail文件
增添以下行
DAEMON=no
QUEUE=1h
设置
cd/etc/sysconfig
/bin/chownroot:
rootsendmail
/bin/chmod644sendmail
关闭图形登录效劳
说明:
一般来说,大局部软件的安装和运行都不需要图形环境。
如果不需要图形环境进行登录和操作,可以关闭XWindows的运行。
操作:
cp/etc/inittab/etc/inittab.bak
编辑/etc/inittab文件
修改id:
5:
initdefault:
行为id:
3:
initdefault:
chownroot:
root/etc/inittab
chmod0600/etc/inittab
如需要XWindows的时候,可运行startx命令启动图形界面。
关闭X字体效劳器
说明:
如果关闭了XWindows效劳,那么Xfont效劳器效劳也应该进行关闭。
操作:
chkconfigxfsoff
关闭其他默认启动效劳
说明:
系统启动时会启动很多不必要的效劳,这些不必要的效劳均存在一定的平安隐患。
一般可能存在以下不必要的效劳:
apmdcannaFreeWnngpmhpojinndirdaisdnkdcrotatelvsmars-nweoki4daemonprivoxyrstatdrusersdrwalldrwhodspamassassinwinenfsnfslockautofsypbindypservyppasswddportmapsmbnetfslpdapachedtuxsnmpdnamedpostgresqlmysqldwebminkudzusquidcups
加固时,应根据机器具体配置使用和应用情况对开放的效劳进行调整,关闭不需要的效劳。
效劳运行脚本一般都放在/etc/rc.d/rc*.d进行启动,可以使用chkconfig工具直接进行管理。
对于必须通过/etc/rc.d/rc*.d开放的效劳,应确保都已打上过最新的补丁。
操作:
chkconfig--level12345效劳名off
如果关闭了特定的效劳,也应该同时对这些效劳在系统中的用户加以锁定或删除
可能包括以下用户rpcrpcuserlpapachednameddnsmysqlpostgressquid
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[-e/etc/init.d/cups];then
chkconfigcupson
sed's/^\#Userlp/Userlp/'/etc/cups/cupsd.conf\
sed's/^\#Groupsys/Groupsys/'\
fi
chkconfighpojon
chkconfiglpdon
调整Web效劳器效劳
说明:
如果效劳器必须开放Web,那么需要作如下设置。
应注意web目录权限设置,不要允许目录list。
操作:
chkconfigapahceon
或
chkconfigdon
调整SNMP效劳
说明:
简单网络管理协议SNMP一般用来监控网络上主机或设备的运行情况。
如果必须翻开,那么必须更改默认通讯字。
操作:
chkconfigsnmpdon
com2secnotConfigUserdefaultpublic
修改public为其他一个足够复杂的密码。
调整DNS效劳器效劳
说明:
DNS效劳器效劳用来为其他机器提供DNS解析,一般来说都可以关掉。
如果必须进行开放,那么必须升级至最新版本,并推荐设置chroot环境,还需要注意限制DNS配置文件中的区域传输等设置〔加密码或加IP地址限制〕。
操作:
chkconfignamedon
调整SSHD效劳器效劳
说明:
SSHD效劳器效劳用来提供SSHServer的效劳。
如果必须进行开放,那么必须升级至最新版本,并推荐设置chroot环境,还需要注意限制SSH配置文件中的区域传输等设置,需要在SSHD配置文件中禁用ssh1方式连接,因ssh1方式连接是非完全加密。
操作:
Ø如使用Openssh,那么检查/etc/ssh/sshd_config
grepProtocol/etc/ssh/sshd_config
Ø如使用SSH的SSHD,需要检查/etc/ssh2/sshd2_config
grepProtocol/etc/ssh2/sshd2_config
调整SQL效劳器效劳
说明:
如果不需要数据库效劳,那么可以关闭此效劳。
如果必须进行开放,那么注意修改数据库用户的密码,并增加数据库用户IP访问限制。
操作:
chkconfigpostgresqlon
chkconfigmysqldon
调整Webmin效劳
说明:
Webmin是一个通过协议控制linux的工具,一般推荐使用SSH进行系统管理而不要使用此工具。
操作:
chkconfigwebminon
调整Squid效劳
说明:
Squid效劳是客户端与效劳器之间的代理效劳。
Squid效劳已出现过很多平安漏洞,并且如果设置不当的话,可能导致被利用来作为内外网之间的跳板。
如果不需要,那么可以关闭此效劳。
如果必须翻开,那么需要设置允许访问的地址列表及认证。
操作:
chkconfigsquidon
调整kudzu硬件探测效劳
说明:
Kudzu效劳是linux的硬件探测程序,一般设置为启动系统的时候运行。
他会检测系统中的硬件的改变,并且会提示进行配置等。
XX的新设备存在的一定的平安风险,系统启动时控制台就可以配置任何新增添的设备。
如果不需要经常的改动硬件,那么需要进行关闭。
可以在增添新设备时手工运行启动此效劳。
操作:
chkconfig--level345kudzuon
内核参数
网络参数调整
说明:
Linux支持的对网络参数进行调整。
具体参数详细说明,可参见
。
操作:
增加
ax_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
更多的网络参数调整
说明:
如果系统不作为在不同网络之间的防火墙或网关时,可进行如下设置。
具体参数详细说明,可参见
操作:
增加
net.ipv4.ip_forward=0
net.ipv4.conf.all.send_redirects=0
net.ipv4.conf.default.send_redirects=0
/b
日志
系统认证日志配置
说明:
不是所有版本的linux都会在日之中记录登陆信息。
一般需要对这些重要的平安相关的信息进行保存,〔如成功或失败su,失败的登陆,root登陆等〕。
这些将会被记录在/var/log/secure文件里。
操作:
确认有如下行
authpriv.*/var/log/secure
touch/var/log/secure
/bin/chownroot:
root/var/log/secure
/bin/chmod600/var/log/secure
FTP进程日志配置
说明:
系统默认会记录wu-ftpd和vsftpd所有的连接和文件传输。
以下将会确认所有法发送到效劳期的命令将会被记录。
wu-ftpd将会把平安相关的或是策略边界的行为记忆文件传输记录到syslog里,默认位于/var/log/xferlog。
操作:
确认有如下行
server_args=-l-a-d
/bin/chownroot:
rootwu-ftpd
/bin/chmod644wu-ftpd
编辑或文件
确认有如下行
xferlog_std_format=NO
log_ftp_protocol=YES
log_ftp_protocol=YES
/bin/chmod0600f
/bin/chownroot:
rootf
确认系统日志权限
说明:
保护系统日志文件不会被非授权的用户所修改。
操作:
cd/var/log
/bin/chmodo-wboot.log*cron*dmesgksyms*d/*\
maillog*messages*news/*pgsqlrpmpkgs*samba/*\
scrollkeeper.logsecure*spooler*squid/*vbox/*wtmp
/bin/chmodo-rxboot.log*cron*maillog*messages*pgsql\
secure*spooler*squid/*
/bin/chmodg-wboot.log*cron*dmesgd/*ksyms*\
maillog*messages*pgsqlrpmpkgs*samba/*\
scrollkeeper.logsecure*spooler*
/bin/chmodg-rxboot.log*cron*maillog*messages*pgsql\
secure*spooler*
/bin/chmodo-wgdm/d/news/samba/squid/vbox/
/bin/chmodo-rxd/samba/squid/
/bin/chmodg-wgdm/d/news/samba/squid/vbox/
/bin/chmodg-rxd/samba/
/bin/chown-Rroot:
root.
/bin/chgrputmpwtmp
/bin/chown-Rnews:
newsnews
/bin/chownpostgres:
postgrespgsql
/bin/chown-Rsquid:
squidsquid
文件/目录权限
/etc/fstab中适当分区增加“nodev〞选项
说明:
在我们不包含设备的分区增添nodev参数,防止用户挂接分区中未授权设备。
此项加固要比较慎重。
操作:
编辑/etc/fstab文件
在非/的ext2和ext3分区后增添nodev参数
/bin/chownroot:
root/etc/fstab
/bin/chmod0644/etc/fstab
/etc/fstab中移动设备增加“nosuid〞“nodev〞选项
说明:
可移动的媒体可能导致恶意的程序进入系统。
可以将这些文件系统设置nosuid选项,此选项可以防止用户使用CD-ROM或软盘将设置了SUID的程序带到系统里。
参照上节,这些文件系统也应当设置nodev选项。
操作:
编辑/etc/fstab文件
在floppy和cdrom分区后增添nosuid,nodev参数
/bin/chownroot:
root/etc/fstab
/bin/chmod0644/etc/fstab
禁止用户挂接可移动文件系统
说明:
PAM模块中的pamconsole参数给控制台的用户临时的额外特权。
其配置位于文件。
默认设置允许控制台用户控制可以与其他主机共享的软盘和CD-ROM设备。
这些可移动媒体存在着一定的平安风险。
以下禁止这些设备的额外特权。
操作:
编辑文件
修改其中的console行,删除以下设备之外的行
/sound|fb|kbd|joystick|v4l|mainboard|gpm|scanner
/bin/chown
检查passwd,shadow和group文件权限
说明:
检查以下文件的默认权限。
操作:
cd/etc
/bin/chownroot:
rootpasswdshadowgroup
/bin/chmod644passwdgroup
/bin/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{}\;
系统访问,授权和认证
说明:
R系列效劳“+〞,并且同时指定对方系统和用户名。
如果有防火墙,那么应该在过滤外部网段至内部的全部R系列效劳访问。
同时需要保证.rhosts文件仅可以被所有者读取〔600〕。
操作:
forfilein/etc/pam.d/*;do
grep-vrhosts_auth$file>${file}.new
/bin/mv${file}.new